linux常用高级命令
本文最后更新于:1 年前
find
功能:用于查找文件
基本格式:
1 |
|
查找条件:
- -name
e.g.:
1 |
|
- -type
e.g.:
1 |
|
linux下文件类型主要有以下几种:
字母 | 文件类型 |
---|---|
f(file) | 普通文件 |
d(directory) | 目录 |
b(block) | 块设备 |
s(socket) | 套接字 |
c(char) | 字符设备 |
l(link含硬链接和软链接) | 链接 |
p(pipe) | 管道 |
- -user
e.g.:
1 |
|
- -group
e.g.:
1 |
|
- -not
e.g.:
1 |
|
-not也可以用!来替换,二者等价
- -a -o
e.g.:
1 |
|
1 |
|
注:默认情况是-a,即查找条件是合取的关系。
- -maxdepth -mindepth
e.g.:
1 |
|
1 |
|
注:当前目录下即为深度为1,往下的每一个子目录深度便加1。
- -size
e.g.:
1 |
|
注:+10K表示比10K大的文件;-10K表示比10K小的文件。
- -perm
e.g.:
1 |
|
注:权限值若是写成-404则表明只要user权限为r且other权限为r即可,只要满足了这两个条件的文件就都会被筛选出来;权限值若是写成了/404则表明只要user权限为r或other权限为r即可,只要满足了两个条件的其中一个就会被筛选出来。
- -atime -ctime -mtime
e.g.:
1 |
|
注:其余两个类似,不赘述。(对数字前添加‘+’/‘-’表示‘大于’/‘小于’)
- -exec 命令 {} ;
此查找条件意思为:对查找到的文件执行(execute)命令,其中**{}代表的是查找到的文件**。
e.g.:
1 |
|
注:有个-ok 命令 {} \;
与该命令相似,但它会询问查找到的文件是否执行该命令(y/n)。
wc
功能:用于统计行数(line)、单词数(word)、字节数(char,内存占1byte)
基本格式:
1 |
|
统计条件:
- -l
e.g.:
1 |
|
- -w
e.g.:
1 |
|
- -c
e.g.:
1 |
|
- -m
e.g.:
1 |
|
- -L
e.g.:
1 |
|
grep
功能:依据条件进行过滤,找到满足条件的行
基本格式;
1 |
|
option:
以下示例所用文本均为下图所示:
- -E
作用:pattern匹配转为扩展正则表达式,等价于egrep命令。 - -i
作用:忽略大小写,ignore。
演示如下:
- -v
作用:反向查询,类似取反,invert。
演示如下:
- -n
作用:输出行号,number。
演示如下:
- -w
作用:匹配整个单词,字符串内出现的不匹配,word。
在原来的文本上补加了一些内容用以演示,演示文本如下图所示:
演示如下:
- -c
作用:统计匹配到的行数,count。
演示如下:
- -o
作用:只显示匹配到的字符串,不显示其所在行的内容。
演示如下:
- -Ax
作用:输出匹配到内容所在行的后x行的内容,after x。
演示如下:
- -Bx
作用:输出匹配到内容所在行的前x行的内容,before x。
演示如下:
- -Cx
作用:输出匹配到内容所在行的前后x行的内容,context x。
演示如下:
- -e
作用:实现多个匹配,相当于or。
演示如下:
- -q
作用:安静模式,只关心结果,即有没有匹配到。匹配到为0,匹配不到为1,文件有误为2,quiet。
演示如下:
注:如果在使用grep匹配关键字时,匹配到的关键字没高亮,可以通过在命令grep --color=auto "word" file
中添加--color=auto
来开启;也可以通过alias命令重申一下grep命令alias "grep=grep --color=auto"
来达到效果。
pattern(均为扩展正则表达式):
以下示例所用文本均为下图所示:
单个字符匹配相关
- .
作用:匹配任意的单个字符
演示如下:
- [ ]
作用:匹配指定范围内的任意单个字符
演示如下:
- [^ ]
作用:匹配指定范围外的任意单个字符
演示如下:
- [0-9] / [[:digit:]]
作用:[0-9]和[[:digit:]]功能一样,匹配[0,9]间任意的单个数字
演示如下:
- [a-zA-z] / [[:alpha:]]
作用:[a-zA-z]和[[:alpha:]]功能一样,匹配单个任意的大小写字母
演示如下:
- [^0-9] / [^[:digit:]]
作用:[^0-9]和[^[:digit:]]功能一样,匹配单个非数字字符
演示如下:
次数匹配相关
- ?
作用:匹配其前面的字符0次或1次
演示如下:
作用:匹配其前面的字符至少1次
演示如下:
- *
作用:匹配其前面的字符至少0次
演示如下:
- {n}
作用:匹配其前面的字符n次
演示如下:
- {n,}
作用:匹配其前面的字符至少n次
演示如下:
- {,m}
在原来的文本上新增一行内容以体现演示效果,文本内容如下:
作用:匹配其前面的字符至多m次,最少可以是0次
演示如下:
- {n,m}
作用:匹配其前面的字符至少n次,至多m次
演示如下:
位置匹配相关
- ^
作用:其后跟着的内容需位于行首
演示如下:
- $
作用:其前跟着的内容需位于行尾
演示如下:
- \< / \b
作用:其后跟着的内容需位于词首
演示如下:
- \> / \b
作用:其前跟着的内容需位于词尾
演示如下:
若是将\<
和\>
同时作用于一单词上,表明它既是词首又是词尾,那其实它就是个独立的单词,示例如下;
- \B
作用:匹配非词首或非词尾的内容(具体看它放在单词前还是后)
演示如下:
分组和后向引用
修改了演示文件以便于展示效果,新的演示文件如下:
- ()
作用:分组内部的内容为一个整体,可嵌套使用
演示如下:
- \x
作用:后向引用分组,匹配分组x相同的内容
演示如下:
其它
- \
作用:转义符
演示如下:
注:对需要转义的字符进行转义时,加上\
即可,但若是对\
本身进行转义,则需要使用''
单引号而非双引号。
- |
作用:表示或
演示如下:
- .*
作用:类似通配符,可匹配任意字符的任意内容
演示如下:
- ^$
作用:表示空行
演示如下:
du
功能:查询磁盘目录下文件的大小 disk usage
常用方式:
1 |
|
1 |
|
df
功能:查询文件系统的使用情况 disk file system
常用方式:
1 |
|
sort
功能:排序(一行一行排,默认按字典序排)
基本格式:
1 |
|
option:
以下示例所用文本均为下图所示:
- -r
作用:逆序输出 reverse
演示如下:
- -t组合-k
作用:-t后跟着分隔符,用以将内容划分成列;-k后跟着数字,用以指明第几列
演示如下:
我们用空格作为分隔符,将其划分成三列,且取第二列作为排序的依据,当结果看起来好像排错了,其实没错,因为sort默认按照字典序排序,10<4是因为利用ASCII码比较完首个字符后,就认为4>10。可以通过后面的-n选项来用数值比较。
-t(field separator) -k(key)
- -n
作用:按数值大小排序,默认是字典序,会出现10<2的情况 numeric sort
演示如下:
我们可以看到,此可第二列是按照正常的升序进行的排序。
- -u
作用:去除重复的行(不要求重复行相邻) unique
演示如下:
uniq
功能:去重(去掉连续的重复行),重复行需要相邻。
基本格式:
1 |
|
此处的演示文本依旧使用sort的文本。
option:
- 不带option时
作用:去除重复的行(需要借助sort来将重复文本弄成相邻的行)
演示如下:
- -c
作用:统计行数,置于行首 count
演示如下:
- -u
作用:不打印重复的行 unique(only print unique lines)
演示如下:
cut
功能:打印列
基本格式:
1 |
|
此处的演示文本依旧使用sort的文本。
option:
- -d -f
作用:-d(delimiter)后跟着分隔符,-f后跟着数字用以选择是哪个域(field)
演示如下:
perl
lsmod
查看已加载在内核中的LKM(loadable kernel module)
lshw
lspci
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!