文件内容查阅
cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
od 以二进制的方式读取文件内容!
cat 查看文件内容
在Linux系统中,cat命令用于以文本格式显示文件的内容。
cat命令的参数使用:
- -n:显示行号。
- -b:显示行号,但对于空白行不加以编号。
- -s:将多个连续空行压缩成一个空行。
例子1:
cat file.txt
这个命令会将文件file.txt的内容显示在终端上。
例子2:
cat -n file.txt
这个命令会将文件file.txt的内容显示在终端上,并在每一行前面加上行号。
tac 反向列式
命令名称: tac
作用说明: 反向显示文件内容,从最后一行开始逐行显示。
参数使用:
- -b, --before: 在每行之前添加指定的字符串。
- -r, --regex: 使用正则表达式而不是字符串进行匹配。
- -s, --separator: 指定列与列之间的分隔符,默认为制表符。
- -v, --version: 显示命令的版本信息。
示例1:
命令: tac file.txt
作用: 逐行反向显示文件file.txt的内容。
示例2:
命令: tac -b "Line " file.txt
作用: 在每行之前添加字符串"Line ",然后反向显示文件file.txt的内容。
nl 添加行号打印
在Linux系统中,nl命令用于给文件添加行号,并将添加了行号的文件输出到标准输出或指定文件。
nl命令常用参数:
- -b:指定行号的方式,有a、t和n三种方式。a代表行号不为空行时就行数,t代表行号不为空行时就行数,n代表行号永远不会为空行。
- -n:设置行号的起始值,默认为1。
- -w:设置行号的位数,不足位数时使用0填充。
两个例子:
- 给文件file.txt添加行号,并输出到标准输出:
nl file.txt
- 给文件file.txt添加行号,起始值为10,输出到newfile.txt:
nl -n 10 file.txt > newfile.txt
nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样,nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能呢。
more 一页一页翻动
more命令用于逐页查看文件的内容,可用于打开文本文件,按页显示文件内容,支持上下翻页、搜索等功能。它在处理大型文件时比cat命令更加方便,因为可以分批加载文件内容,避免一次性加载整个文件。
more命令的常用参数如下:
- num:指定每次显示的行数,默认为10行。
- +num:指定从文件的第num行开始显示。
- /pattern:向下搜索文件中包含指定模式(pattern)的文本。
- -c:显示内容时进行颜色区分。
- -p:通过清屏再显示来避免屏幕闪烁。
- -s:将连续多个空行合并为一个空行。
- -u:不使用下划线来标记反向文本。
实例1:显示文件的前20行
more -20 file.txt
实例2:显示文件的内容,并且高亮显示匹配到的关键词
more -c -p /pattern file.txt
loss 一页一页翻
less 的用法比起 more 又更加的有弹性,怎么说呢?在 more 的时候,我们并没有办法向前面翻只能往后面看,但若使用了 less 时,呵呵!就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,你瞧,是不是更容易使用来观看一个文件的内容了呢!
head 取前面几行
在Linux系统中,head命令用于显示文件的开头部分,默认显示文件的前10行内容。可以通过参数来指定显示的行数或者字节数。
常用参数说明:
- -n :显示文件的前几行,数字代表行数。
- -c [b|k|M]:显示文件的前几个字节,数字可以后跟b(字节,默认)、k(千字节)或M(兆字节)。
例子1:显示文件的前5行内容
head -n 5 filename.txt
例子2:显示文件的前100个字节
head -c 100b filename.txt
tail 取后面几行
命令名称:tail
作用说明:tail命令用于显示文件的末尾内容,默认显示文件末尾的10行内容。
参数使用:
- -n:指定显示文件末尾的行数,为具体的行数。
- -f:实时监控文件的新增内容,当文件有新内容追加时,会自动显示新内容。
示例1:显示文件末尾的20行内容
命令:tail -n20 filename.txt
说明:此命令将显示文件filename.txt末尾的20行内容。
示例2:实时监控文件的新增内容
命令:tail -f filename.txt
说明:此命令会实时监控文件filename.txt的新增内容,当文件有新内容追加时,会自动显示新内容。
例题:假如我想要显示 /etc/man_db.conf 的第 11 到第 20 行呢?
这个应该不算难,想一想,在第 11 到第 20 行,那么我取前 20 行,再取后十行,所以结果就是:“ head -n20 /etc/man_db.conf | tail -n 10 ”,这样就可以得到第 11 到第 20 行之间的内容了!这两个指令中间有个管线(|)的符号存在,这个管线的意思是:“前面的指令所输出的讯息,请通过管线交由后续的指令继续使用”的意思。所以, head -n 20 /etc/man_db.conf 会将文件内的 20 行取出来,但不输出到屏幕上,而是转交给后续的 tail 指令继续处理。因此 tail “不需要接文件名”,因为 tail 所需要的数据是来自于 head 处理后的结果!
od 非纯文本文件
touch 修改文件时间或创建新文件
我们在ls 这个指令的介绍时,有稍微提到每个文件在linux下面都会记录许多的时间参数,其实是有三个主要的变动时间,那么三个时间的意义是什么呢?
modification time (mtime):当该文件的“内容数据”变更时,就会更新这个时间!内容数据指的是文件的内容,而不是文件的属性或权限喔!
status time (ctime):当该文件的“状态(status)”改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间啊。
access time (atime):当“该文件的内容被取用”时,就会更新这个读取时间(access)。举例来说,我们使用 cat 去读取/etc/man_db.conf ,就会更新该文件的 atime 了。这是个挺有趣的现象,举例来说,我们来看一看你自己的 /etc/man_db.conf 这个文件的时间吧!
在Linux系统中,touch命令用于更改文件的访问和修改时间,如果文件不存在则创建一个空文件。
touch命令常用的参数包括:
- -a:只更改访问时间。
- -c:不创建文件,如果文件不存在则忽略操作。
- -d:使用指定的日期和时间而不是当前的时间。
- -m:只更改修改时间。
- -r:使用指定文件的时间戳。
- -t:使用指定的日期和时间 戳。
例1:创建一个空文件
touch file.txt
该命令将在当前目录下创建一个名为file.txt的空文件。
例2:更改文件的访问和修改时间
touch -m -a -r source.txt target.txt
该命令将把source.txt文件的访问和修改时间赋值给target.txt文件。