类Unix系统常用Tips
基础概念
POSIX 标准
文件系统
常用命令
查询
grep -rn “strings” [file]
在file指定的文件中查找包含“strings”字符的文件,并打印出行号
find [path] -name “filename”
在path指定的目录下查找文件名为filename的文件
awk
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。
awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file
echo -e "A line 1nA line 2" | awk 'BEGIN{ print "Start" } { print } END{ print "End" }'
awk 'BEGIN{ print "Start" } { print } END{ print "End" }' /log.txt
常用工具
Python
Tmux
命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称”窗口”),在里面输入命令。用户与计算机的这种临时的交互,称为一次”会话”(session) 。
会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。
一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,会话与窗口可以”解绑”:窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话”绑定”其他窗口。
基础操作
安装
sudo apt-get install tmux
1
2
3
4
5
2. 新建session
- ```bash
tmux new -s <session name>
窗口分离
tmux detach
1
2
3
4
5
4. 查看已有session
- ```bash
tmux ls
恢复session
tmux attach -t <session id> tumx attach -t <session name>
1
2
3
4
5
6
7
6. 退出tmux
- ```bash
exit
tmux kill-session -t <session id>
tmux kill-session -t <session name>
进阶操作
session切换
tmux switch -t <session id>
1
2
3
- ```bash
tmux switch -t <session name>
Putty
SSH免输入密码登录
参考链接颜色配置,Winodw->Colours->Adjust the precise colours PuTTY displays , 保存到Session中才能一致保存
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44; Default Foreground
"Colour0"="217,216,216"
; Default Bold Foreground
"Colour1"="217,216,216"
; Default Background
"Colour2"="28,28,28"
; Default Background
"Colour3"="28,63,149"
; Cursor Text
"Colour4"="28,28,28"
; Cursor Color
"Colour5"="231,231,232"
; ANSI Black
"Colour6"="115,113,113"
; ANSI Black Bold
"Colour7"="115,113,113"
; ANSI Red
"Colour8"="251,38,8"
; ANSI Red Bold
"Colour9"="251,38,8"
; ANSI Green
"Colour10"="167,226,46"
; ANSI Green Bold
"Colour11"="167,226,46"
; ANSI Yellow
"Colour12"="102,217,238"
; ANSI Yellow Bold
"Colour13"="102,217,238"
; ANSI Blue
"Colour14"="0,157,220"
; ANSI Blue Bold
"Colour15"="0,157,220"
; ANSI Magenta
"Colour16"="255,85,255"
; ANSI Magenta Bold
"Colour17"="255,85,255"
; ANSI Cyan
"Colour18"="255,210,4"
; ANSI Cyan Bold
"Colour19"="255,210,4"
; ANSI White
"Colour20"="217,216,216"
; ANSI White Bold
"Colour21"="255,255,255"
Shell
显示git的分支名称
在
~/.bashrc
文件末尾添加如下代码1
2
3
4
5
6
7
8
9
10
11
12
13
14
15136 # enable git branch name showing
137 git_branch()
138 {
139 branch=`git rev-parse --abbrev-ref HEAD 2>/dev/null`
140 if [ "${branch}" != "" ]
141 then
142 if [ "${branch}" = "(no branch)" ]
143 then
144 branch="(`git rev-parse --short HEAD`...)"
145 fi
146 echo "($branch)"
147 fi
148 }
149
150 PS1='\u@\h \[\033[0;36m\]\w\[\033[0m\]\[\033[0;31m\]$(git_branch)\[\033[0m\] \$ '■显示git的分支名称 2
安装bash完整版
1
sudo apt-get install bash-completion
在
~/.bashrc
文件末尾添加如下代码1
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[0;35m\]$(__git_ps1 "[%s]")\[\033[00m\]\$ '
lftp
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。lftp的界面非常想一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。
命令 | 作用 |
---|---|
ls | 显示远端文件列表(!ls 显示本地文件列表)。 |
cd | 切换远端目录(lcd 切换本地目录)。 |
get | 下载远端文件。 |
mget | 下载远端文件(可以用通配符也就是 *)。 |
pget | 使用多个线程来下载远端文件, 预设为五个。 |
mirror | 下载/上传(mirror -R)/同步 整个目录。 |
put | 上传文件。 |
mput | 上传多个文件(支持通配符)。 |
mv | 移动远端文件(远端文件改名)。 |
rm | 删除远端文件。 |
mrm | 删除多个远端文件(支持通配符)。 |
mkdir | 建立远端目录。 |
rmdir | 删除远端目录。 |
pwd | 显示目前远端所在目录(lpwd 显示本地目录)。 |
du | 计算远端目录的大小 |
! | 执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代) |
lcd | 切换本地目录 |
lpwd | 显示本地目录 |
alias | 定义别名 |
bookmark | 设定书签。 |
exit | 退出ftp |
登录
下载, get, mget
mget -c a.txt #断点续传下载文件
上传, put mput
put a.txt
unzip
ubuntu 下解压缩 .zip 文件
1 | $ unzip -h # manual |
系统设置
代理设置
cntlm
生成密码 -d 声明domain -u声明用户名
1
cntlm -H -d de -u abc1fg
修改配置 /etc/cntlm.conf
settings/network/proxy 设置 localhost:3128
启动cntlm
重新加载配置
1
sudo systemctl reload cntlm
重新启动服务
1
sudo systemctl restart cntlm
镜像下载
软件源
- 清华源
- 阿里源