文本文件编辑命令
cat命令
cat命令用于查看纯文本文件(内容较少的),英文全称为“concatenate”,语法格式为“cat [参数] 文件名称”。
Linux系统中有多个用于查看文本内容的命令,每个命令都有自己的特点,比如这个cat命令就是用于查看内容较少的纯文本文件。如果在查看文本内容时还想顺便显示行号的话,不妨在cat命令后面追加一个-n参数
more命令
more命令用于查看纯文本文件(内容较多的),语法格式为“more [参数] 文件名称”。
如果需要阅读长篇小说或者非常长的配置文件,那么“cat”可就真的不适合了。因为一旦使用cat命令阅读长篇的文本内容,信息就会在屏幕上快速翻滚,导致自己还没有来得及看到,内容就已经翻篇了。因此对于长篇的文本内容,推荐使用more命令来查看。more命令会在最下面使用百分比的形式来提示您已经阅读了多少内容;还可以使用空格键或回车键向下翻页:
head命令
head命令用于查看纯文本文件的前N行,语法格式为“head [参数] 文件名称”。
在阅读文本内容时,谁也难以保证会按照从头到尾的顺序往下看完整个文件。如果只想查看文本中前10行的内容,该怎么办呢?head命令就能派上用场了:
常用参数:
-n | 后面接数字,代表显示几行的意思 |
-c | 指定显示头部内容的字符数 |
-v | 总是显示文件名的头信息 |
-q | 不显示文件名的头信息 |
tail命令
tail命令用于查看纯文本文件的后N行或持续刷新文件的最新内容,语法格式为“tail [参数] 文件名称”。
我们可能还会遇到另外一种情况,比如需要查看文本内容的最后10行,这时就需要用到tail命令了。tail命令的操作方法与head命令非常相似,只需要执行“tail -n 20文件名称”命令就可以达到这样的效果.
常用参数
-f<name/descriptor> | --follow<nameldescript>:显示文件最新追加的内容 |
-F | 与选项“-follow=name”和“--retry”连用时功能相同 |
-n<N>或——line=<N> | 输出文件的尾部N(N位数字)行内容 |
tail命令最强悍的功能是能够持续刷新一个文件的内容,当想要实时查看最新的日志文件时,这特别有用,此时的命令格式为“tail -f文件名称”:
wc命令
wc命令用于统计指定文本文件的行数、字数或字节数,英文全称为“word counts”,语法格式为“wc [参数] 文件名称”。
常用参数
-w | 统计字数,或--words:只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串 |
-c | 统计字节数,或--bytes或--chars:只显示Bytes数 |
-l | 统计行数,或--lines:只显示列数 |
-m | 统计字符数 |
-L | 打印最长行的长度 |
stat命令
stat命令用于查看文件的具体存储细节和时间等信息,英文全称为“status”,语法格式为“stat文件名称”。
大家都知道,文件有一个修改时间。其实,除了修改时间之外,Linux系统中的文件包含3种时间状态,分别是Access Time(内容最后一次被访问的时间,简称为Atime),Modify Time(内容最后一次被修改的时间,简称为Mtime)以及Change Time(文件属性最后一次被修改的时间,简称为Ctime)。
grep命令
grep命令用于按行提取文本内容,语法格式为“grep [参数] 文件名称”。
grep命令是用途最广泛的文本搜索匹配工具。它虽然有很多参数,但是大多数基本上都用不到。
常用参数
-b | 将可执行文件(binary)当作文本文件(text)来搜索 |
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择——仅列出没有“关键词”的行。 |
cut命令
cut命令用于按“列”提取文本内容,语法格式为“cut [参数] 文件名称”。
cut命令有两个主要的功能,第一是显示文件内容,第二是连接多个或多个文件。
常用参数:
-b | 以字节为单位进行分割 ,仅显示行中指定直接范围的内容 |
-c | 以字符为单位进行分割 , 仅显示行中指定范围的字符 |
-d | 自定义分隔符,默认为制表符”TAB” |
-f | 显示指定字段的内容 , 与-d一起使用 |
-n | 取消分割多字节字符 |
diff命令
diff命令用于比较多个文件之间内容的差异,英文全称为“different”,语法格式为“diff [参数] 文件名称A 文件名称B”。
在使用diff命令时,不仅可以使用--brief参数来确认两个文件是否相同,还可以使用-c参数来详细比较出多个文件的差异之处。这绝对是判断文件是否被篡改的有力神器。
常用参数:
-a | diff预设只会逐行比较文本文件 |
-b | 不检查空格字符的不同 |
-W | 在使用-y参数时,指定栏宽 |
-x | 不比较选项中所指定的文件或目录 |
-X | 您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件 |
-y | 以并列的方式显示文件的异同之处 |
例,先使用cat命令分别查看diff_A.txt和diff_B.txt文件的内容。 [root@linuxprobe ~]# cat diff_A.txt Welcome to linuxprobe.com Red Hat certified Free Linux Lessons Professional guidance Linux Course [root@linuxprobe ~]# cat diff_B.txt Welcome tooo linuxprobe.com Red Hat certified Free Linux LeSSonS ..... Professional guidance Linux Course 接下来使用diff --brief命令显示比较后的结果,判断文件是否相同: [root@linuxprobe ~]# diff --brief diff_A.txt diff_B.txt Files diff_A.txt and diff_B.txt differ 最后使用带有-c参数的diff命令来描述文件内容具体的不同: [root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt *** diff_A.txt 2020-08-30 18:07:45.230864626 +0800 --- diff_B.txt 2020-08-30 18:08:52.203860389 +0800 *************** *** 1,5 **** ! Welcome to linuxprobe.com Red Hat certified ! Free Linux Lessons Professional guidance Linux Course --- 1,7 ---- ! Welcome tooo linuxprobe.com ! Red Hat certified ! Free Linux LeSSonS ! ..... Professional guidance Linux Course
uniq命令
uniq命令用于去除文本中连续的重复行,英文全称为“unique”,语法格式为“uniq [参数] 文件名称”。
由uniq命令的英文全称unique(独特的,唯一的)可知,该命令的作用是用来去除文本文件中连续的重复行,中间不能夹杂其他文本行(非相邻的默认不会去重)—去除了重复的,保留的都是唯一的,自然也就是“独特的”“唯一的”了。
例:
[root@linuxprobe ~]# cat uniq.txt Welcome to linuxprobe.com Welcome to linuxprobe.com Welcome to linuxprobe.com Welcome to linuxprobe.com Red Hat certified Free Linux Lessons Professional guidance Linux Course [root@linuxprobe ~]# uniq uniq.txt Welcome to linuxprobe.com Red Hat certified Free Linux Lessons Professional guidance Linux Course
sort命令
sort命令用于对文本内容进行再排序,语法格式为“sort [参数] 文件名称”。
有时文本中的内容顺序不正确,一行行地手动修改实在太麻烦了。此时使用sort命令就再合适不过了,它能够对文本内容进行再次排序。
-f | 忽略大小写 |
-b | 忽略缩进与空格 |
-n | 以数值型排序 |
-r | 反向排序 |
-u | 去除重复行 |
-t | 指定间隔符 |
-k | 设置字段范围 |
此外,与uniq命令不同,sort命令是无论内容行之间是否夹杂有其他内容,只要有两个一模一样的内容行,立马就可以使用-u参数进行去重操作
[root@linuxprobe ~]# cat sort.txt Welcome to linuxprobe.com Red Hat certified Welcome to linuxprobe.com Free Linux Lessons Linux Course [root@linuxprobe ~]# sort -u sort.txt Free Linux Lessons Linux Course Red Hat certified Welcome to linuxprobe.com
文件目录管理命令
touch命令
touch命令用于创建空白文件或设置文件的时间,语法格式为“touch [参数] 文件名称”。touch命令有两个功能:一是创建新的空文件,二是改变已有文件的时间戳属性。
常用参数:
-a | 改变档案的读取时间记录(atime) |
-m | 改变档案的修改时间记录(mtime) |
-r | 使用参考档的时间记录,与 --file 的效果一样 |
-c | 不创建新文件 |
-d | 设定时间与日期,可以使用各种不同的格式。可同时修改atime和mtime |
-t | 设定档案的时间记录,格式与 date 命令相同 |
TIPS
也因此命令存在,若单纯的通过时间判断文件是否被修改过,是很不严谨的。
mkdir命令
mkdir命令用于创建空白的目录,英文全称为“make directory”,语法格式为“mkdir [参数] 目录名称”
常用参数:
-p | 递归创建多级目录 |
-m | 建立目录的同时设置目录的权限 |
-z | 设置安全上下文 |
-v | 显示目录的创建过程 |
cp命令
cp命令用于复制文件或目录,英文全称为“copy”,语法格式为“cp [参数] 源文件名称 目标文件名称”。cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。唯一需要记住的就是在复制目录时要加上-r参数。
在Linux系统中,复制操作具体分为3种情况:
如果目标文件是目录,则会把源文件复制到该目录中;
如果目标文件也是普通文件,则会询问是否要覆盖它;
如果目标文件不存在,则执行正常的复制操作。
常用参数:
-f | 若目标文件已存在,则会直接覆盖原文件 |
-i | 若目标文件已存在,则会询问是否覆盖 |
-p | 保留源文件或目录的所有属性 |
-r | 递归复制文件和目录 |
-b | 覆盖已存在的文件目标前将目标文件备份 |
-v | 详细显示cp命令执行的操作过程 |
-a | 等价于“dpr”选项 |
mv命令
mv命令用于剪切或重命名文件,英文全称为“move”,语法格式为“mv [参数] 源文件名称 目标文件名称”。
常用参数:
-i | 若存在同名文件,则向用户询问是否覆盖 |
-f | 覆盖已有文件时,不进行任何提示 |
-b | 当文件存在时,覆盖前为其创建一个备份 |
-u | 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作 |
TIPS
剪切不区分目录和文件
rm命令
rm命令用于删除文件或目录,英文全称为“remove”,语法格式为“rm [参数] 文件 名称”。
常用参数:
-f | 忽略不存在的文件,不会出现警告信息 |
-i | 删除前会询问用户是否操作 |
-r/R | 递归删除(删除目录) |
-v | 显示指令的详细执行过程 |
dd命令
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,语法格式为“dd if=参数值of=参数值count=参数值bs=参数值”。
dd命令是一个比较重要而且比较有特色的命令,它能够让用户按照指定大小和个数的数据块来复制文件的内容。当然,如果愿意的话,还可以在复制过程中转换其中的数据。
常用参数:
-v | 显示版本信息 |
-h | 显示帮助信息 |
if | 输入的文件名称 |
of | 输出的文件名称 |
bs | 设置每个“块”的大小 |
count | 设置要复制“块”的个数 |
例,用dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件。在理解了这个命令后,以后就能随意创建任意大小的文件了。
dd命令的功能也绝不仅限于复制文件这么简单。如果想把光驱设备中的光盘制作成iso格式的镜像文件,在Windows系统中需要借助于第三方软件才能做到,但在Linux系统中可以直接使用dd命令来压制出光盘镜像文件,将它变成一个可立即使用的iso镜像。
file命令
file命令用于查看文件的类型,语法格式为“file文件名称”。
在Linux系统中,由于文本、目录、设备等所有这些一切都统称为文件,但是它们又不像Windows系统那样都有后缀,因此很难通过文件名一眼判断出具体的文件类型,这时就需要使用file命令来查看文件类型了。
TIPS
目录和文件的颜色是可以设置的,有的将目录设置为绿色,文件为黄色。因此单纯看文件的颜色来区分目录和文件是很不严谨的。
tar命令
tar命令用于对文件进行打包压缩或解压,语法格式为“tar参数 文件名称”。tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。
常用参数:
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用Gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限与属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
文章摘要至《linux就该这么学》