|
马上注册登陆,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?用户注册
x
对于输出重定向来讲,用到的符号及其作用如表3-2所示。Linux命令大全的相关知识也可以到网站具体了解一下,有专业的客服人员为您全面解读,相信会有一个好的合作!
表3-2 输出重定向中用到的符号及其作用
符号
作用
命令 文件
将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2 文件
将错误输出重定向到一个文件中(清空原有文件的数据)
命令 文件
将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2 文件
将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 文件 21
或
命令 文件
将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
对于重定向中的标准输出模式,可以省略文件描述符1不写,而错误输出模式的文件描述符2是必须要写的。先来小试牛刀。通过标准输出重定向将 命令原本要输出到屏幕的信息写入到文件中,然后显示文件中的内容。具体命令如下:
[@ ~]#
[@ ~]#
BASH(1) G C M BASH(1)
NAME
- GNU B-A SH
SYNOPSIS
[] [_ | ]
COPYRIGHT
B C (C) 1989-2022 F S F, I
DESCRIPTION
B
B ‐r
K C ( )
B S
U IEEE POSIX (IEEE S
10031) B POSIX
………………省略部分输出信息………………
有没有感觉到很方便呢接下来尝试输出重定向技术中的覆盖写入与追加写入这两种不同模式带来的变化。首先通过覆盖写入模式向文件写入多行数据(该文件中已包含上一个验的命令信息)。需要注意的是,在通过覆盖写入模式向文件中写入数据时,每一次都会覆盖掉上一次写入的内容,所以比较终文件中只有比较后一次的写入结果:
[@ ~]# "W LPC"
[@ ~]# "W LPC"
[@ ~]# "W LPC"
[@ ~]# "W LPC"
[@ ~]# "W LPC"
[@ ~]#
W LPC
再通过追加写入模式向文件写入一次数据,然后在执行命令之后,可以看到如下所示的文件内容:
[@ ~]# "Q "
[@ ~]#
W LPC
Q
虽然都是输出重定向技术,但是命令的标准输出和错误输出还是有区别的。例如查看当前目录中某个文件的信息,这里以文件为例。由于这个文件是真存在的,因此使用标准输出即可将原本要输出到屏幕的信息写入到文件中,而错误的输出重定向则依然把信息输出到了屏幕上。
[@ ~]#
[@ ~]# 2
------ 1 0 M 1 13:30
如果想把命令的报错信息写入到文件,该怎么操作呢当用户在执行一个自动化的S脚本时,这个操作会特别有用,而且特别用,因为它可以把整个脚本执行过程中的报错信息都记录到文件中,便于安装后的排错工作。
接下来以一个不存在的文件进行验演示:
[@ ~]#
: N
[@ ~]# 2
[@ ~]#
: : N
还有一种常见情况,就是我们想不区分标准输出和错误输出,只要命令有输出信息则全部追加写入到文件中。这就要用到操作符了:
[@ ~]#
[@ ~]#
------ 1 0 M 1 13:30
: N
输入重定向相对来说有些冷门,在工作中遇到的概率会小一点。输入重定向的作用是把文件直接导入到命令中。接下来使用输入重定向把文件导入给 -命令,统计一下文件中的内容行数:
[@ ~]#
2
大家应该发现这次的输出结果与第2章讲的时候有所不同:没有了文件称。
[@ ~]# -
38
这是因为此前使用的“ - ”是一种非常标准的“命令+参数+对象”的执行格式,而这次的“ ”则是将文件中的内容通过操作符导入到命令中,没有被当作命令对象进行执行,因此命令只能读到信息流数据,而没有文件称的信息。这个小差异同学们可以慢慢琢磨下。
32 管道命令符
细心的读者肯定还记得在26节学习命令时曾经见到过一个为管道符的东西。同时按下键盘上的S+反斜杠(\)键即可输入管道符,其执行格式为“命令A | 命令B”。管道命令符的作用也可以用一句话概括为“把前一个命令原本要输出到屏幕的信息当作后一个命令的标准输入”。在26节讲解文本搜索命令时,我们通过匹配关键词找出了所有被限制登录系统的用户。在学完本节内容后,完全可以把下面这两条命令合并为一条: |
|