1、rmdir命令:删除空目录
【语法格式】
rmdir [参数] [目录名称]
【常用参数】
- -p:用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
- -v:显示命令的详细执行过程
- -- --help:显示命令的帮助信息
- -- --version:显示命令的版本信息
- -- --ignore-fail-on-non-empty:忽略由于删除非空目录时导致命令出错而产生的错误信息
【注意】
rmdir命令只能删除空目录,rmdir命令的“-p”参数可以递归删除指定的多级目录,但是要求每个目录也必须是空目录。
【实例】
删除空目录
[root@localhost ~]# rmdir dir
递归删除指定的目录树
[root@localhost ~]# rmdir -p dir/dir1/dir2
显示指令详细执行过程
[root@localhost ~]# rmdir -p -v dir/dir1/dir2
显示命令的版本信息
[root@localhost ~]# rmdir --version
2、rm命令:删除文件或目录
【语法格式】
rm [参数] [文件]
【常用参数】
- -f:忽略不存在的文件,不会出现警告信息
- -i:删除前会询问用户是否操作
- -r/R:递归删除
- -v:显示指令的详细执行过程
【注意】
rm命令是一个危险的命令,使用的时候需要特别当心。
【实例】
执行删除操作前,给出提示
[root@localhost ~]# rm -i file.txt
直接删除,不给出提示
[root@localhost ~]# rm -f file.txt
递归删除目录下的所有文件
[root@localhost ~]# rm -r dir
3、cat命令:在终端设备上显示文件内容
【语法格式】
cat [参数] [文件]
【常用参数】
- -n:显示行数(空行也编号)
- -s:显示行数(多个空行算一个编号)
- -b:显示行数(空行不编号)
- -E:每行结束处显示$符号
- -T:将TAB字符显示为^符号
- -V:使用^和M-引用,除了LFD和TAB之外
- -e:等价于”-vE”组合
- -t:等价于”-vT”组合
- -A:等价于 -vET组合
- --help:显示帮助信息
- --version:显示版本信息
【注意】
cat命令一般用来查看内容较少的纯文本文件。当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!
【实例】
查看文件内容
[root@localhost ~]# cat filename.txt
查看文件内容,并显示行数编号
[root@localhost ~]# cat -n filename.txt
查看文件内容,并添加行数编号后输出到另一个文件中
[root@localhost ~]# cat -n filename.txt > filenames.txt
清空文件的内容
[root@localhost ~]# cat /dev/null > filename.txt
持续写入文件内容,碰到EOF符后结束并保存
[root@localhost ~]# cat > filenames.txt <<EOF
> Hello,world
> EOF
将软盘设备制作成镜像文件
[root@linuxcool ~]# cat /dev/fd0 > fdisk.iso
4、more命令:显示文本文件内容
【语法格式】
more [参数] [文件]
【常用参数】
- -num:指定每屏显示的行数
- -f:计算实际的行数,而非自动换行的行数
- -p:先清除屏幕再显示文本文件的剩余内容
- -c:与-p相似,不滚屏,先显示内容再清除旧内容
- -s:多个空行压缩成一行显示
- -u:禁止下划线
- +/pattern:在每个文档显示前搜索该字(pattern),然后从该字串之后开始显示
- +num:从第num行开始显示
【命令快捷键】
- 空格键:显示文本的下一屏内容
- H键:显示帮助屏
- B键:显示上一屏内容
- Q键:退出more命令
- =:输出当前的行号
- :f:输出文件名和当前的行号
- V:调用vi编辑器
- !:调用shell,并执行命令
- Enter键:向下n行,需要定义,默认为1行
- :接着输入一个模式,可以在文本寻找下一个相匹配的模式
【实例】
显示文件内容,显示之前先清屏,附已显示的百分比
[root@linuxcool ~]# more -c /var/log/messages
显示文件内容,每10行显示一次,而且在显示之前先清屏
[root@linuxcool ~]# more -c -10 /var/log/messages
显示文件file的内容,每5行显示一次,而且在显示之后再清屏
[root@linuxcool ~]# more -p -5 /var/log/messages
逐页显示 file 文档内容,如有连续两行以上空白行则以一行空白行显示
[root@linuxcool ~]# more -s /var/log/messages
从第 20 行开始显示 file 之文档内容
[root@linuxcool ~]# more +20 /var/log/messages
5、head命令:显示文件开头内容
【语法格式】
head [参数] [文件]
【常用参数】
- -n:后面接数字,代表显示几行的意思
- -c:指定显示头部内容的字符数
- -v:总是显示文件名的头信息
- -q:不显示文件名的头信息
【注意】
head命令以行为单位,取文件的内容,后面不接参数时默认打印前10行
【实例】
显示前3行内容
[root@linuxcool ~]# head -n 3 /var/log/messages
显示文件名信息,并显示文件前2行
[root@linuxcool ~]# head -v -n 2 /var/log/messages
显示文件前5个字符
[root@linuxcool ~]# head -c 5 /var/log/messages
6、tail命令:显示文件尾部内容
【语法格式】
tail [参数]
【常用参数】
- --retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用
- -c
或——bytes= :输出文件尾部的N(N为整数)个字节内容 - -f<name/descriptor>:--follow
:显示文件最新追加的内容 - -F:与选项“-follow=name”和“--retry”连用时功能相同
- -n
或——line= :输出文件的尾部N(N位数字)行内容 - --pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令
- --help:显示指令的帮助信息
- --version:显示指令的版本信息
【注意】
tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
【实例】
显示/var/log/message日志的最后10行
[root@localhost ~]# cat /var/log/messages
显示/var/log/message日志的内容,从第20行至文件末尾
[root@localhost ~]# cat +20 /var/log/messages
显示/var/log/message日志的最后10个字符
[root@localhost ~]# cat -c 10 /var/log/messages
动态查看日志,总是显示后10行
[root@localhost ~]# tail -f 10 /var/log/messages
显示帮助信息
[root@localhost ~]# tail --help
7、fail命令:识别文件类型
【语法格式】
file [参数] [文件]
【常用参数】
- -b:列出识别结果时,不显示文件名称
- -c:详细显示指令执行过程,便于排错或分析程序执行的情形常与 -m 一起使用,用来在安装幻数文件之前调试它
- -f:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称
- -L:直接显示符号连接所指向的文件类别
- -m:指定魔法数字文件
- -v:显示版本信息
- -z:尝试去解读压缩文件的内容
- -i:显示MIME类别
【注意】
file命令用来识别文件类型,也可用来识别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像windows通过扩展名来确定文件类型的。
【实例】
显示文件类型
[root@localhost ~]# file /var/log/messages
显示文件类型,不显示文件名称
[root@localhost ~]# file -b /var/log/messages
显示文件类型,显示MIME类别,不显示文件名称
[root@localhost ~]# file -b -i /var/log/messages
显示符号连接所指向的文件类别
[root@localhost ~]# file -L /var/log/messages
8、find命令:查找和搜索文件
【语法格式】
find [参数] [路径] [查找和搜索范围]
【常用参数】
- -name:按名称查找
- -size:按大小查找
- -user:按属性查找
- -type b/d/c/p/l/f:按类型查找(设备、目录、字符设备、管道、链接文件、文本文件)
- -iname:忽略大小写
- -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旧的文件
- -prune:忽略某个目录
【注意】
find如不加如何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令搜索还是比较消耗系统资源。
【实例】
使用-name参数查看/etc目录下所有的.conf结尾的配置文件
[root@localhost ~]# find /etc -name *.conf
使用-size参数查看/etc目录下大于1M的文件
[root@localhost ~]# find /etc -size +1M
查找当前用户主目录下的所有文件
[root@localhost ~]# find $HOME -print
搜索范围时间超过10分钟的所有文件
[root@localhost ~]# find . -type f -amin +10
找出/home目录下不是以.txt结尾的文件
[root@localhost ~]# find /home ! -name "*.txt"
9、grep命令:关键字搜索
【语法格式】
grep [参数]
【常用参数】
- -i:搜索时,忽略大小写
- -c:只输出匹配行的数量
- -l:只列出符号匹配的文件名,不列出具体的匹配行
- -n:列出所有的匹配行,显示行号
- -s:不显示不存在、没有匹配文本的错误信息
- -v:显示不包含匹配文本的所有行
- -w:匹配整词
- -x:匹配整行
- -r:递归搜索
【实例】
支持多文件查询并支持使用通配符
[root@localhost ~]# grep Getting dir/*
输出匹配字符串行的数量
[root@localhost ~]# grep -c Getting dir/*
10、wc命令:统计文件的字节数、字数、行数
【语法格式】
wc [参数] [文件]
【常用参数】
- -w:统计字数,或--words:只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
- -c:统计字节数,或--bytes或--chars:只显示Bytes数
- -l:统计行数,或--lines,只显示列数
- -m:统计字符数
- -L:打印最长行的长度
- --help:显示帮助信息
- --version:显示版本信息
【实例】
统计字数
[root@localhost ~]# wc -b file.txt
统计字节数
[root@localhost ~]# wc -c file.txt
11、diff命令:比较文件差异
【语法格式】
diff [参数] [目录]
【常用参数】
- -a:diff预设只会逐行比较文本文件
- -b:不检查空格字符的不同
- -c:比较两个文件的差异
- -W:在使用-y参数时,指定栏宽
- -x:不比较选项中所指定的文件或目录
- -X:您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件
- -y:以并列的方式显示文件的异同之处
- --help:查看帮助信息
- --brief:判断两个文件是否相同
- --left-column:在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容
- --suppress-common-lines:在使用-y参数时,仅显示不同之处
【注意】
diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录 。
【实例】
比较两个文件,并排格式输出
[root@localhost ~]# diff log2014.log log2013.log -y -W 50
12、tr命令:字符转换
【语法格式】
tr [参数] [字符串1] [字符串2]
【常用参数】
- -c:选定字符串1中字符集的补集,即反选字符串1的补集
- -d:删除字符串1中出现的所有字符
- -s:删除所有重复出现的字符序列,只保留一个
【注意】
tr命令的作用是一种可将字符进行替换、压缩、删除,它可以将一组字符转换为另一组字符。tr只能从标准输入中读取数据,因此,tr要么将输入文件重定向到标准输入,要么从管道读入数据。tr命令类似于sed命令,但是比sed更简单。
【实例】
将file.txt中的大小写字母进行转换
13、echo命令:输出字符串或提取Shell变量的值
【语法格式】
echo [参数] [字符串]
【常用参数】
- -n:不输出结尾的换行符
- -e:“a” 发出警告音
- -e:“” 删除前面的一个字符
- -e:“c” 结尾不加换行符
- -e:“f” 换行,光标扔停留在原来的坐标位置
- -e:“ ” 换行,光标移至行首
- -e:“ ” 光标移至行首,但不换行
- -E:禁止反斜杠转移,与-e参数功能相反
- —version:查看版本信息
- --help:查看帮助信息
【实例】
输出一段字符串
[root@localhost ~]# echo "你好"
输出变量提取后的值
[root@localhost ~]# echo $PATH
对内容进行转义,不让$符号的提取变量值功能生效
[root@localhost ~]# echo $PATH
结合输出重定向符,将字符串信息导入文件中
[root@localhost ~]# echo "你好">a.txt
使用反引号符执行命令,并输出其结果到终端
[root@localhost ~]# echo `date`
2020年 08月 25日 星期二 16:09:04 CST
输出带有换行符的内容
[root@localhost ~]# echo -e "a
b
c"
a
b
c
输出信息中删除某个字符
[root@localhost ~]# echo -e "abc"
14、cut命令:连接文件并打印到标准输出设备上
【语法格式】
cut [参数] [文件]
【常用参数】
- -b:以字节为单位进行分割
- -c:以字符为单位进行分割
- -d:自定义分隔符,默认为制表符TAB
- -f:显示指定字段的内容
- -n:取消分割多字节字符
- --complement:补足被选择的字节、字符或字段
- --out-delimiter:指定输出内容是的字段分割符
【注意】
cut命令有两个主要功能,第一是显示文件内容,第二是连接多个文件。若不指定参数,则命令将读取标准输入。
【实例】
按列形式提取passwd文件中用户名信息