Linux学习--04

一、文本文件编辑命令

1、cat 命令:用于查看内容较少的纯文本文件

一般结合使用cat -n 文件名 用于显示行号。

2、more 命令:用于查看纯文本文件(内容较多的),“more [参数] 文件名称”

使用此命令会显示进度条,课使用空格键或回车键向下翻页。

3、head 命令:用于查看纯文本文件的前N行。

查看anaconda-ks.cfg文件的前10行。

 4、tail 命令:用于查看纯文本文件的后N行或持续刷新文件的最新内容。

tail命令的特点是能够持续刷新一个文件的内容,当想要实时查看最新日志文件时,这特别有用,此时的命令格式为“tail -f 文件名”:

5、tr 命令:用于替换文本内容中的字符。

tr 命令只是临时改变文件内容,不会真正改变文件内容。

tr不能读取文件内容,所以需要先将文件内容通过管道符传过来。

  6、wc 命令:用于统计指定文本文件的行数、字数或字节数。

 7、stat 命令:用于查看文件的具体存储细节和时间等信息。

在Linux系统中文件包含三种时间状态,分别是:

Access Time:最后一次内容被访问的时间,简称Atime;

Modify Time:最后一次内容被修改的时间,简称Mtime;

Change Time:文件属性最后一次被修改的时间,简称Ctime。

 

 8、grep 命令:用于按行提取文本内容。

 -n参数用来显示搜索到信息的行号;

-v参数用于反选信息(即没有包含关键词的所有信息行)。

在Linux系统中,/etc/passwd文件是保存着所有的用户信息,而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统。

查看不含/sbin/login的行及行数。

 9、cut 命令:用于按列提取文本内容。

如果按列搜索,不仅要使用-f参数来设置需要看的列数,还需要使用-d参数来设置间隔符号。

提取以冒号(:)为间隔符号的第一列内容。

 

 10、diff 命令:用于比较多个文件之间内容的差异。
不加参数,显示出文件之间存在不同的行。

使用diff --brief命令显示比较后的结果,判断文件是否相同:

 

 使用带有-c参数的diff命令来描述文件内容具体的不同:

行前带有“!”标识存在不同之处。

 

 11、uniq 命令:用于去除文本中连续的重复行。

注:用来去除文本文件中连续的重复行,中间不能夹杂其他文本行。

 12、sort 命令:用于对文本内容进行再排序。sort命令执行后默认会按照字母顺序进行排序

-u 去除重复行:

注:与uniq命令不同,sort命令不论内容之间是否夹杂有其它内容,只要有两个一摸一样的内容行,立马就可以使用-u参数进行去重操作:

 -n 以数值型排序:

 

 -t 指定间隔符;-k 设置字段范围

 将sort_A.txt如果想以第三个字段中的数字作为排序依据,那么就可以用-t参数指定间隔符,-k参数指定第几列,-n参数进行数字排序来搞定:

 

 二、文件目录管理命令

 1、touch 命令:用于创建空白文件或设置文件的时间。

touch命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面。

先使用ls命令查看一个文件的修改时间,随后修改它,然后再查看一下文件时间发生了变化:

 

 如果不想让别人知道我们修改了它,那么这时候可以用touch命令把修改后的文件时间设置成修改之前的时间:(要同时修改atime和ctime)

2、mkdir 命令:用于创建空白的目录。

 还可以结合-p参数来递归创建出具有嵌套叠层关系的文件目录:

 

3、cp 命令:用于复制文件或目录。

 Linux系统中,复制操作具体分为3种情况:

1、如果目标文件是目录,则会把源文件复制到该目录中;

2、如果目标文件也是普通文件,则会询问是否要覆盖它;

3、如果目标文件不存在,则执行正常的复制操作。

 复制目录时记得要加上-r参数

 4、mv 命令:用于剪切或重命名文件。

剪切操作会把源文件删除掉,只保留剪切后的文件。如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实本质就是对文件进行了重命名操作:

 5、rm 命令:用于删除文件或目录。

 

效果如下: 

 6、dd 命令:用于按照指定大小的数据块个数来复制文件或转换文件。

 语法格式为:“dd if=参数值 of=参数值 count=参数值 bs=参数值”。

 dd命令能够让用户按照指定大小和个数的数据块来复制文件的内容。

 

用文件中取出一个大小为100的数据块,然后保存成名为a_file的文件:

 

 转换文件:如将光驱设备中的光盘制作成iso格式的镜像文件。

#dd if=/dev/cdrom of=RHEL-server-8.0-x86_64.iso

 7、file 命令:用于查看文件的类型。

 

 8、tar 命令:用于对文件进行打包压缩或解压。

 注:-c参数用于创建压缩文件,-x参数用于解压文件,因此这两个参数不能同时使用。其次,-z参数指定使用Gzip格式来压缩或解压文件,-j参数指定使用bzip2格式来压缩或解压文件。用户使用时则是根据文件的后缀来决定应使用何种格式参数进行解压。在执行某些压缩或解压操作时,可能需要花费数个小时,如果屏幕一直没有输出,您一方面不好判断打包的进度情况,另一方面也会怀疑电脑死机了,因此非常推荐使用-v参数向用户不断显示压缩或解压的过程。-C参数用于指定要解压到哪个指定的目录-f参数特别重要,它必须放到参数的最后一位,代表要压缩或解压的软件包名称。

先使用tar命令把/etc目录通过gzip格式进行打包压缩,并把文件命名为etc.tar.gz: 

三、输入输出重定向

1、输入重定向:是指把文件导入到命令中;

2、输出重定向:是指把原本要输出到屏幕的数据信息写入到指定文件中。(频率更高)

     输出重定向分为:标准输出重定向和错误输出重定向,以及清空写入追加写入两种模式。

 

 

要想把原本输出到屏幕上的数据转而写入到文件当中,就要区别对待这两种输出信息。

对于输入重定向来讲,用到的符号及其作用如下表所示。

                                              输入重定向中用到的符号及其作用

符号作用
命令 < 文件将文件作为命令的标准输入
命令 << 分界符从标准输入中读入,直到遇见分界符才停止
命令 < 文件1 > 文件2将文件1作为命令的标准输入并将标准输出到文件2

对于输出重定向来讲,用到的符号及其作用如下表所示。

                                             输出重定向中用到的符号及其作用

符号作用
命令 > 文件将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1

命令 &>> 文件
将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

首先是输出重定向:

对于重定向中的标准输出模式,可以省略文件描述符1不写,而错误输出模式的文件描述符2是必须要写的。

如将一段文字写入readme.txt文件中。 

 

那么此时若多次执行写入命令,readme.txt的内容会改变吗?  并不会,清空写入每一次都会覆盖掉上一次的输出内容,所以最终文件中只有最后一次的输出结果:

可以使用追加写入:

使用标准输出即可将原本要输出到屏幕的信息写入到文件中,而错误的输出重定向则依然把信息输出到了屏幕上。

注:文件anaconda-ks.cfg是真实存在的,所以ls -l命令会正确执行,使用“错误输出重定向”向文件中写入结果并不正确,所以会输出到屏幕上,且文件中不会写入结果。反之使用标准输出重定向向文件中写入命令执行的报错信息也不能成功。 

不能成功执行的命令使用错误输出重定向将报错信息写入文件中: 

若不想区分标准还是错误输出信息,只要命令有输出信息就全部追加写入到文件中,就要使用到&>>操作符了,全部写入到文件中:

然后是输入重定向:

输入重定向的作用是把文件直接导入到命令中。接下来使用输入重定向把readme.txt文件导入给wc -l命令,统计一下文件中的内容行数:

注:第二条命令的输出结果相较于第一条的结果有所不同,没有了文件名称。

这是因为“wc -l readme.txt”是一种非常标准的“命令+参数+对象”的执行格式,而“wc -l < readme.txt”则是将readme.txt文件内的内容通过操作符导入到命令中,没有被当作命令对象进行执行的过程,因此wc命令只能读到信息流的数据,没有文件名称的信息。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值