E

EdwardWong

V1

2022/12/02阅读:40主题:姹紫

Linux文本处理之基本命令

cat命令

cat命令可以用来显示文本文件的内容,类似于DOS下的type命令,也可以把几个文件内容附加到另一个文件中,即连接合并文件。

cat的基本格式是:

cat 文件名

cat 文件1 文件2 > 文件3

cat命令不适合查看太大的文件,当用cat命令查看文件内容时,不管文件内容有多少,都会一次性显示。

cat -n 会显示行号,cat -A 选项则相当于-vET选项,可以查看文件中的所有隐藏行号,包括回车符$Tab^l等。

cat -A anaconda-ks.cfg

cat file1.txt file2.txt>file3.txt //将file1.txtfile2.txt文件的内容输出到file3

more命令

当使用cat命令查看文件内容时,如果文件过大,就需要使用PageUp向上翻页,有时即使使用方向键也无法查看全文件中的内容,这就需要使用more命令。

more命令可以允许操作者分页显示文本文件的内容,下面列出了常见的选项:

使用more命令会打开一个交互界面,可以使用一些交互命令,常见的交互命令如下:

more -c -10 anaconda-ks.cfg 这个命令会每10行显示一屏,同时清楚屏幕。

head命令

head命令可以显示指定文件前若干行的文件内容

head -选项 文件名

less命令

less命令和more命令非常相似,都可以用来浏览文本中的内容,不同之处在于,less命令既可以向前翻看,也可以向后翻看,而more命令只能向后翻看。

tail命令

tail命令和head命令相反,用来查看文件末尾的数据

tail -选项 文件名

tail -n 3 /etc/passwd 等价于etc -3 /etc/passwd 表示查看文件最后3行的数据内容

tail -c 100 /etc/passwd 用于查看文件末尾100个字节的数据内容。

使用tail命令可以监听文件的新增内容。

tail -f anaconda-ks.cfg

这条命令会显示文件最后10行内容,而且光标不会退出命令,每隔1s就会检查以下文件是否有新增的内容,如果有增加就追加到原来的输出结果后面显示。在新终端下可以通过echo命令向文件中追加数据

echo 222 >> anaconda-ks.cfg

echo 333 >> anaconda-ks.cfg

这样在原始监听的终端中,会看到以下信息:

输入输出重定向

linux中标准的输入设备默认是键盘,标准的输出设备是显示器。

输入重定向: 重新指定设备来代替键盘作为新的输入设备

输出重定向:重新指定设备来代替显示器作为新的输出设备。

通常用文件或命令的执行结果来代替键盘作为新的输入设备,而新的输出设备通常指的就是文件。

输入重定向

cat /etc/passwdcat < /etc/passwd虽然命令执行的结果是相同的,但是第一行代表的是以键盘作为输入设备,而第二行代码是以etc/passwd文件作为输入设备。

cat << 0

可以看到当使用了0作为分界符,只要不输入0,就可以一直输入数据。

cat a.txt

cat < /etc/passwd >a.txt

cat a.txt

通过重定向/etc/passwd作为输入设备,并输出重定向到a.txt,最终实现将/etc/passwd文件中内容复制到a.txt中。

输出重定向

输出重定向可以细分为标准输出重定向错误输出重定向技术,而且标准输入重定向和错误输出重定向又分别包含清空写入追加写入两种模式。

对于2>&1,表示把标准错误输出到标准输出中,其中>&是一个整体,两者不能分开。

要理解2>&1,首先要理解文件标识符,1表示标准输出,2表示标准输入,0表示标准输入。

不能书写为2>1,因为这将表示将标准错误输出到名字为1的文件中。

下面深刻理解java -jar app.jar >log 2>&1这句代码中为何2>&1要放在后面的原因:

可以理解12为指针,上面的指针指向可以看作下面的过程:

1--> 指向显示屏

执行>log后,1--> log文件

执行2>&1后,2--> 1(因为此时1指向log文件,所以2也指向log文件)

所以java -jar app.jar >log 2>&1的含义是将标准输入和输出重定向到log文件中。

当然java -jar app.jar >log 2>&1可以简写为java -jar app.jar &>log

分类:

后端

标签:

运维部署

作者介绍

E
EdwardWong
V1