【Linux】常见命令
说明
在进行软件开发的过程中,避免不了要经常和Linux
系统打交道。这里总结了一些Linux
常见的命令和快捷键。
常见快捷键
Linux
中有如下常见快捷键:
-
Ctrl+c
:终止前台运行的程序 -
Ctrl+z
:将前台运行的程序挂起到后台 -
Ctrl+d
:退出 等价于exit
-
Ctrl+l
:清屏 -
Ctrl+a | Ctrl+home
:光标移到命令行的最前端 -
Ctrl+e | Ctrl+end
:光标移到命令行的后端 -
Ctrl+u
:删除光标前的所有字符 -
Ctrl+k
:删除光标后的所有字符 -
Ctrl+r
:搜索历史命令
grep
语法
|
|
常见选项
-
-i
: 不区分大小写。 -
-v
: 查找不包含指定内容的行。 -
-w
: 按单词搜索 -
-o
: 打印匹配关键字 -
-c
: 统计匹配到的次数 -
-n
: 显示行号 -
-r
: 逐层遍历目录查找 -
-A
: 显示匹配行及后面多少行 -
-B
: 显示匹配行及前方多少行 -
-C
: 显示匹配行及前后多少行 -
-l
: 只列出匹配的文件名 -
-L
: 列出不匹配的文件名 -
-e
: 使用正则表达式 -
-E
: 使用扩展正则表达式 -
^key
: 以关键字开头 -
key$
: 以关键字结尾 -
^$
: 匹配空行 -
--color=auto
: 将找到的内容,加上颜色显示
举例
- 去除空行:
|
|
wc
统计文本的行数、单词数、字符数、字节数。
语法
|
|
常用选项
-
-c
:统计字节数 -
-w
:统计单词数 -
-l
:统计行数 -
-m
:统计字符数
输出结果
输出结果不受选项顺序的影响。
如果选项全选,输出顺序为:
|
|
如果选项缺省,输出顺序为:
|
|
示例
- 统计文件内容行数:
|
|
cut
列截取工具,用于文本列的截取。
语法
|
|
常用选项
-
-b
:以字节为单位,进行分割,然后输出指定范围的内容 -
-c
:以字符为单位,进行分割、然后输出指定范围的内容 -
-d
:自定义分割符,默认为制表符\t
,需要和-f
同时使用 -
-f
:可与-d
同时使用,指定截取的区域(列) -
指定范围:
-
N
:指定第N
个字节、字符或者字段 -
N-
:从N
开始到结束 -
N-M
:从N
到M
,包含M
-
-M
:从开始到M
,包含M
-
示例
- 以空格为分隔符,获取第2,第3,第4和第6个字段
|
|
- 以字节为分割单位,获取第2,第3,第4和第6个字段
|
|
- 以字符为分割单位,获取第2,第3,第4和第6个字段
|
|
sort
将文件的每一行作为一个单位,从首字符向后,依次按照unicode码值进行比较,最后将结果升序输出。
语法
|
|
选项
-
-u
:去除重复行 -
-r
:降序排列,默认升序 -
-o
:将排序结果输出到文件中,类似于重定向符号>
-
-n
:以数字排序,默认是按字符排序 -
-t
:分隔符 -
-k
:第n列 -
-b
:忽略前导空格 -
-R
:随机排序,每次运行结果均不同
示例:
- 去除排序结果的重复行:
|
|
- 根据第2列的数值,进行排序
|
|
uniq
去除并删除文中出现的连续行,一般与sort
命令结合使用。即为了使uniq
起作用,所有的重复行必须是相邻的。
选项
-
-u
:--unique
仅显示出现一次的行。 -
-i
:忽略大小写。 -
-c
:统计重复行次数 -
-d
:只显示重复行
示例
-
统计各行出现的次数
1
sort filename | uniq -c
-
在文中找出重复行
1
sort filename | uniq -d
tee
从标准输入读取,并且写入到标准输出和文件。
选项
-
-a
:追加重定向,默认是覆盖。 -
-i
:忽略中断信号。
示例
-
将输入同时保存到
file1
和file2
1
tee file1 file2
diff
用于逐行比较文件的不同。
diff
描述两个文件不同的方式,是告诉我们怎么改变第一个文件之后,与第二个文件匹配。
语法
|
|
选项
-
-b
:不检查空格 -
-B
:不检查空白行 -
-i
:不检查大小写 -
-w
:忽略所有的空格 -
--normal
:正常格式显示(默认) -
-c
:上下文格式显示 -
-u
:合并格式显示 -
-N
:将不存在的文件当作空文件 -
-q
:比较两个目录不同时,默认情况下,会显示同名文件具体的差异内容。如果使用了-q
参数,则只会显示文件的差异。
显示格式
- 正常模式显示
|
|
- 上下文模式显示
|
|
- 合并格式显示
|
|
sshpass
非交互式密码验证工具。
安装
-
RedHat/Centos
安装:1
yum install sshpass
-
Debian/Ubuntu
安装:1
sudo apt-get install sshpass
-
源码安装:
1 2 3 4 5
-> wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz -> tar -xvf sshpass.tar.gz -> cd sshpass-1.06 -> ./configure -> sudo make install
常用参数
-
-f
:使用文件内容作为密码 -
-p
:通过参数提供密码 -
-e
:通过环境变量SSHPASS
提供密码
示例
-
登录服务器,并且查看文件系统磁盘使用情况:
1
sshpass -p 'my_pass_here' ssh username@host 'df -h'
paste
用于合并文件行。
选项
-
-d
:自定义分隔符,默认是tab。 -
-s
:文件内容按行排布,默认按列排布。
tr
用于字符替换和删除。
用法
-
用法一:命令的执行结果交给
tr
处理。1
commands | tr "string1" "string2"
string1
和string2
的字符一一对应替换。如果
string1
比string2
长,则string2
的最后一个字符会对应多个string1
中的字符。如果
string1
比string2
短,则string2
多余部分被丢弃。 -
用法二:
tr
处理的内容来自文件,需要使用标准输入符号1
tr "string1" "string2" < filename
string1
和string2
的具体用法同上。 -
用法三:匹配
string
进行相应操作,如删除操作1
tr options "string" < filename
常用选项:
-
-d
:删除字符串中所有输入的字符。 -
-s
:删除所有重复出现的字符,只保留第一个,即将重复出现的字符压缩为一个字符。
-