
# 搜寻文件或目录:
$find ./ -name "core*" | xargs file
# 查找目标文件夹中是否有obj文件:
$find ./ -name '*.o'
# 递归当前目录及子目录删除所有.o文件
$find ./ -name "*.o" -exec rm {} \;
# 寻找包含有string的路径
$updatedb
$locate string
find命令用来在指定目录下查找文件。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。
一般来说,其语法格式为:
find path -option [ -print ] [ -exec -ok command ] {} \;
find 后分为两部分: path 和 expression ,以 第一个 - 为分隔线。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
常用的expression选项
| 选项 | 含义 |
|---|---|
| -mount, -xdev | 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件 |
| -amin n | 在过去 n 分钟内被读取过 |
| -anewer file | 比文件 file 更晚被读取过的文件 |
| -atime n | 在过去 n 天内被读取过的文件 |
| -cmin n | 在过去 n 分钟内被修改过 |
| -cnewer file | 比文件 file 更晚被更新过的文件 |
| -ctime n | 在过去 n 天内被修改过的文件 |
| -empty | 空的文件 |
| -gid n , -group name | gid 是 n 或是 group 名称是 name的文件 |
| -ipath p , path p | 路径名称符合 p 的文件,ipath 会忽略大小写 |
| -name name , -iname name | 文件名称符合 name 的文件。iname 会忽略大小写 |
| -size n | 文件大小 是 n 单位。b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组 |
| -type c | 文件类型是 c 的文件。d 代表目录,c 代表字型装置文件,b 代表区块装置文件,p 代表具名贮列,f 代表一般文件,l 代表符号连结,s 代表socket |
| -pid n | process id 是 n 的文件 |
另外,在find查找文件也是可以使用正则表达式的。
使用正则表达式查询需要的选项有两个:-regextype 和 -regex。----regextype 指定正则匹配的类型,可用的选项有很多,常见的有:‘awk‘ , ‘egrep‘ , ‘ed‘, ‘emacs‘, ‘grep‘, ‘sed‘ 等,不同匹配模式匹配的结果不一样。默认是emacs。
-regex pattern 表示文件名与正则表达式 pattern 匹配。这是对整个路径的匹配,不是搜索文件。即书写正则表达式时要考略前面的路径。
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。
其一般语法为:
grep [ options ] pattern [file]
常见的 options 选项
| 短命令 | 长命令 | 含义 |
|---|---|---|
| -a | --text | 不要忽略二进制的数据 |
| -A | --after-context = 行数 | 除了显示符合范本样式的那一行之外,并显示该行之后的内容 |
| -b | --byte-offset | 在显示符合样式的那一行之前,标示出该行第一个字符的编号 |
| -c | --count | 计算符合样式的列数 |
| -C | --context = 行数 | 除了显示符合样式的那一行之外,并显示该行之前后的内容 |
| -d | --directories = 动作 | 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作 |
| -e | --regexp = 范本样式 | 指定字符串做为查找文件内容的样式 |
| -E | --extended-regexp | 将样式为延伸的正则表达式来使用 |
| -f | --file = 规则 | 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式 |
| -F | --fixed-regexp | 将样式视为固定字符串的列表 |
| -G | --basic-regexp | 将样式视为普通的表示法来使用 |
| -h | --no-filename | 在显示符合样式的那一行之前,不标示该行所属的文件名称 |
| -H | --with-filename | 在显示符合样式的那一行之前,表示该行所属的文件名称 |
| -i | --ignore-case | 忽略字符大小写的差别 |
| -l | --file-with-match | 列出文件内容符合指定的样式的文件名称 |
| -L | --file-without-match | 列出文件内容不符合指定的样式的文件名称 |
| -n | --line-number | 在显示符合样式的那一行之前,标示出该行的列数编号 |
| -o | --only-matching | 只显示匹配 pattern 部分 |
| -q | --quiet , --silent | 不显示任何信息 |
| -r | --recursive | 此参数的效果和指定"-d recurse"参数相同 |
| -s | --no-messages | 不显示错误信息 |
| -v | --revert-match | 显示不包含匹配文本的所有行 |
| -V | --version | 显示版本信息 |
| -w | --word-regexp | 只显示全字符合的列 |
| -x | --line-regexp | 只显示全列符合的列 |
| -y | 此参数的效果和指定 -i 参数相同 |
xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令。xargs 一般是和管道一起使用。
其一般语法为:
somecommand | xargs -item command
常见的item选项
| 选项 | 含义 |
|---|---|
| -a file | 从文件中读入作为sdtin |
| -e flag | 当xargs分析到含有flag这个标志的时候就停止,默认为‘_‘ |
| -p | 当每次执行一个argument的时候询问一次用户 |
| -n num | 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的 |
| -t | 先打印命令,然后再执行 |
| -r | no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了 |
| -s num | 命令行的最大字符数,指的是 xargs 后面那个命令的最大命令行字符数 |
| -L num | 从标准输入一次读取 num 行送给 command 命令 |
| -d delim | 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符 |
| -x | exit的意思,主要是配合-s使用 |
| -P | 修改最大的进程数,默认是1,为0时候为as many as it can |
uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
# 消除重复行
$ sort unsort.txt | uniq
# 统计各行在文件中出现的次数
$ sort unsort.txt | uniq -c
# 找出重复行
$ sort unsort.txt | uniq -d
tr 命令用于转换或删除文件中的字符。它从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
其一般语法为:
tr [options] SET1 [SET2]
常见options选项
| 短命令 | 长命令 | 含义 |
|---|---|---|
| -c | --complement | 反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换 |
| -d | --delete | 删除指令字符 |
| -s | --squeeze-repeats | 缩减连续重复的字符成指定的单个字符 |
| -t | --truncate-set1 | 削减 SET1 指定范围,使之与 SET2 设定长度相等 |
常见SET字符含义
| 字符 | 含义 |
|---|---|
| \NNN | 八进制值为NNN的字符 |
| \\ | 反斜杠 |
| \a | 终端鸣响 |
| \b | 退格 |
| \f | 换页 |
| \n | 换行 |
| \r | 回车 |
| \t | 水平制表符 |
| \v | 垂直制表符 |
| char1-char2 | 从char1到char2的升序递增过程中经历的所有字符 |
| [:alnum:] | 所有的字母和数字 |
| [:alpha:] | 所有的字母 |
| [:blank:] | 所有呈水平排列的空白字符 |
| [:cntrl:] | 所有的控制字符 |
| [:digit:] | 所有的数字 |
| [:graph:] | 所有的可打印字符,不包括空格 |
| [:lower:] | 所有的小写字母 |
| [:print:] | 所有的可打印字符,包括空格 |
| [:punct:] | 所有的标点字符 |
| [:space:] | 所有呈水平或垂直排列的空白字符 |
| [:upper:] | 所有的大写字母 |
| [:xdigit:] | 所有的十六进制数 |
| [=char=] | 所有和指定char相等的字符 |
cut命令用于显示每行从开头算起 num1 到 num2 的文字。
cut 取的范围
N- 第N个字段到结尾
-M 第1个字段为M
N-M N到M个字段
cut 取的单位
-b 以字节为单位
-c 以字符为单位
-f 以字段为单位(使用定界符)
paste 指令会把每个文件以列对列的方式,一列列地加以合并。
其一般语法为:
$ paste [-s] [-d <间隔字符>] [文件...]
参数:
sed 命令可依照脚本的指令来处理、编辑文本文件,它主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。sed 命令是一行一行的处理文件内容的,一般在动作前加数字以确定对应的行。
其一般语法为:
$ sed [-hnV][-e<script>][-f<script文件>][文本文件]
参数说明:
动作说明:
# sed 命令需要多练习,可参考菜鸟教程实例
awk 是一种处理文本文件的语言,是一个强大的文本分析工具。
其一般语法为:
awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)
选项参数说明:
lsof 命令的全称是 list open files ,它是一个列出当前系统打开文件的工具。在 Linux 环境中,所有的事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。
其一般语法为:
$ lsof [options] filename
常用参数列表:
| 选项 | 含义 |
|---|---|
| lsof filename | 显示打开指定文件的所有进程 |
| lsof -a | 表示两个参数都必须满足时才显示结果 |
| lsof -c string | 显示COMMAND列中包含指定字符的进程所有打开的文件 |
| lsof -u username | 显示所属user进程打开的文件 |
| lsof -g gid | 显示归属gid的进程情况 |
| lsof +d /DIR/ | 显示目录下被进程打开的文件 |
| lsof +D /DIR/ | 显示目录下被进程打开的文件,它会搜索目录下的所有目录,时间相对较长 |
| lsof -d FD | 显示指定文件描述符的进程 |
| lsof -n | 不将IP转换为hostname,缺省是不加上-n参数 |
| lsof -i | 用以显示符合条件的进程情况 |
$ lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
# 46 –> IPv4 or IPv6
# protocol –> TCP or UDP
# hostname –> Internet host name
# hostaddr –> IPv4地址
# service –> /etc/service中的 service name (可以不只一个)
# port –> 端口号 (可以不只一个)
Pmap 提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息
其一般语法为:
$ pmap [options] PID
常见的options选项为:
sar 命令是系统维护的重要工具,主要帮助我们掌握系统资源的使用情况,特别是内存和CPU 的使用情况。
其一般语法为:
$ sar [options] [-A] [-o file] t [n]
其中:t为采样间隔,n为采样次数,默认值是1;-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。
常见的options选项有:
| 选项 | 含义 |
|---|---|
| -A | 所有报告的总和 |
| -u | 输出CPU使用情况的统计信息 |
| -v | 输出inode、文件和其他内核表的统计信息 |
| -d | 输出每一个块设备的活动信息 |
| -r | 输出内存和交换空间的统计信息 |
| -b | 显示I/O和传送速率的统计信息 |
| -a | 文件读写情况 |
| -c | 输出进程统计信息,每秒创建的进程数 |
| -R | 输出内存页面的统计信息 |
| -y | 终端设备活动情况 |
| -w | 输出系统交换活动信息 |
参考材料:
Linux教程|菜鸟教程
Linux Tools Quick Tutorial
Linux 命令帮助文档
原文:https://www.cnblogs.com/fang-ren/p/11647675.html