Linux | 文件编辑命令

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:“\b” 删除前面的一个字符
  • -e:“\c” 结尾不加换行符
  • -e:“\f” 换行,光标扔停留在原来的坐标位置
  • -e:“\n” 换行,光标移至行首
  • -e:“\r” 光标移至行首,但不换行
  • -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\nb\nc"
a
b
c

输出信息中删除某个字符

[root@localhost ~]# echo -e "a\bbc"

14、cut命令:连接文件并打印到标准输出设备上

【语法格式】

cut [参数] [文件]

【常用参数】

  • -b:以字节为单位进行分割
  • -c:以字符为单位进行分割
  • -d:自定义分隔符,默认为制表符TAB
  • -f:显示指定字段的内容
  • -n:取消分割多字节字符
  • --complement:补足被选择的字节、字符或字段
  • --out-delimiter:指定输出内容是的字段分割符

【注意】

cut命令有两个主要功能,第一是显示文件内容,第二是连接多个文件。若不指定参数,则命令将读取标准输入。

【实例】

按列形式提取passwd文件中用户名信息

posted @ 2020-09-27 22:49  Cyzhouke  阅读(763)  评论(0编辑  收藏  举报