一、查找定位文件命令
pwd命令 显示用户当前所处的工作目录 “print working directory”cd命令 “change directory” “cd [参数] [目录]”ls命令 目录中的文件信息 “ls [参数] [文件名称]”
-a 查看全部文件(包括隐藏文件)
-l 查看文件的属性、大小等详细信息
tree命令 以树状图的形式列出目录内容及结构find命令 按照指定条件来查找文件所对应的位置 “find [查找范围] 寻找条件”
-name 匹配名称
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件f1新但比f2旧的文件
-type b/d/c/p/l/f 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune 忽略某个目录
-exec …… {}\; 后面可跟用于进一步处理搜索结果的命令(下文会有演示)
# find /etc -name "host*" -print //该目录中所有以host开头的文件列表
# find / -perm -4000 -print // 在整个系统中搜索权限中包括SUID权限的所有文件
locate 命令 按照名称快速搜索文件所对应的位置 “locate文件名称” 在使用locate命令时,先使用updatedb命令生成一个索引库文件,这个库文件的名字是/var/lib/mlocate/mlocate.db,后续在使用locate命令搜索文件时就是在该库中进行查找操作,速度会快很多。 第一次使用locate命令之前,记得先执行updatedb命令来生成索引数据库,然后再进行查找:
# updatedb
# ls -l /var/lib/mlocate/mlocate.db
# locate whereis //使用locate命令搜索出所有包含“whereis”名称的文件所在的位置
whereis 命令 按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的位置 “whereis命令名称”
简单来说,whereis命令也是基于updatedb命令所生成的索引库文件进行搜索,它与locate命令的区别是不关心那些相同名称的文件,仅仅是快速找到对应的命令文件及其帮助文件所在的位置。
# whereis ls
# whereis pwd
which命令 按照指定名称快速搜索二进制程序(命令)所对应的位置 “which命令名称”
which命令是在PATH变量所指定的路径中,按照指定条件搜索命令所在的路径。也就是说,如果我们既不关心同名文件(find与locate),也不关心命令所对应的源代码和帮助文件(whereis),仅仅是想找到命令本身所在的路径,那么这个which命令就太合适了。
# which locate
/usr/bin/locate
# which whereis
/usr/bin/whereis
二、文本文件编辑命令
cat命令 查看纯文本文件(内容较少的) “concatenate” “cat [参数] 文件名称”
# cat -n initial-setup-ks.cfg
more命令 查看纯文本文件(内容较多的) “more [参数] 文件名称”
# more initial-setup-ks.cfg
head命令 查看纯文本文件的前N行 “head [参数] 文件名称”
# head -n 10 initial-setup-ks.cfg //只想查看文本中前10行的内容
tail 命令 查看纯文本文件的后N行或持续刷新文件的最新内容 “tail [参数] 文件名称”
# tail -n 10 initial-setup-ks.cfg //查看文本内容的最后10行
tr命令 替换文本内容中的字符,英文全称为“transform” “tr [原始字符] [目标字符]”
# cat anaconda-ks.cfg | tr [a-z] [A-Z]
wc命令 统计指定文本文件的行数、字数或字节数 “word counts” “wc [参数] 文件名称”
-l 只显示行数
-w 只显示单词数
-c 只显示字节数
stat 查看文件的具体存储细节和时间等信息,英文全称为“status”,语法格式为“stat文件名称”。
除了修改时间之外,Linux系统中的文件包含3种时间状态,分别是Access Time(内容最后一次被访问的时间,简称为Atime),Modify Time(内容最后一次被修改的时间,简称为Mtime)以及Change Time(文件属性最后一次被修改的时间,简称为Ctime)。 state命令查看文件的这3种时间状态信息:
# stat anaconda-ks.cfg
grep命令
按行提取文本内容,语法格式为“grep [参数] 文件名称”用途最广泛的文本搜索匹配工具
cut命令 用于按“列”提取文本内容 “cut [参数] 文件名称”
# cut -d : -f 1 /etc/passwd //提取出passwd文件中的用户名信息,即提取以冒号(:)为间隔符号的第一列内容
10.diff命令 用于比较多个文件之间内容的差异 “different” “diff [参数] 文件名称A 文件名称B”
在使用diff命令时,不仅可以使用–brief参数来确认两个文件是否相同,还可以使用-c参数来详细比较出多个文件的差异之处
# diff --brief diff_A.txt diff_B.txt //使用diff --brief命令显示比较后的结果,判断文件是否相同
# diff -c diff_A.txt diff_B.txt //使用带有-c参数的diff命令来描述文件内容具体的不同
uniq命令 去除文本中连续的重复行 “unique” “uniq [参数] 文件名称”
# uniq uniq.txt
sort命令 对文本内容进行再排序 “sort [参数] 文件名称”
-f 忽略大小写
-b 忽略缩进与空格
-n 以数值型排序
-r 反向排序
-u 去除重复行
-t 指定间隔符
-k 设置字段范围
# sort -t : -k 3 -n user.txt //以第3个字段中的数字作为排序依据,用-t参数指定间隔符,用-k参数指定第几列,用-n参数进行数字排序
|