声明:以下内容均学习自《Linux就该这么学》一书。

1、输入输出重定向

输入重定向:

指把文件导入到命令中;

标准输入重定向STDIN

文件描述符为0。对终端界面来说,标准输入就是键盘(默认),也可以从其他文件或命令中输入。

在使用输入重定向符(<)时,Linux会用重定向指定的文件替换标准输入文件描述符,于是,命令就会从文件中读取数据,就好像这些数据是从键盘输入的。

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

很多bash命令都能从STDIN接收输入,尤其是在命令行中没有指定文件的情况下。如下所示的cat命令处理来自STDIN的输入:

 

从文件获取输入。

输出重定向:

指把原本要输出到屏幕的数据信息写入到指定文件中。

标准输出重定向STDOUT

文件描述符为1(可以省略不写)。在终端界面上,标准输出就是终端显示器,即默认输出到屏幕。

shell的所有输出(包括在shell中运行的程序和脚本),都会被送往标准输出,即显示器。

大多数bash命令都会将输出送往STDOUT文件描述符。

通过输出重定向符(<),将原本应该出现在屏幕闪的所有输出重定向到指定文件。

也可以使用 << 将数据追加到文件里面

标准错误输出重定向STDERR

文件描述符为2(必须要写)。shell或运行在shell中的程序和脚本报错时,生成的错误消息都会被送往这个位置。默认输出到显示器。

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

 STDERR的文件描述符 2 必须放在重定向符号之前,且必须紧挨着。

混合使用STDOUT和STDERR错误消息:文件test.txt真实存在,就会直接输出到屏幕上;testfile不存在,就输出到test3文件中。

同时重定向错误消息和正常输出

如下所示,将错误消息重定向到test4文件,正常输出则重定向到test5。

将错误消息和正常输出重定向同一个文件test6,使用重定向符 &> (注:错误消息的优先级更高,所以会排在前面)

 2、管道符

把前一个命令原本要输出到屏幕的标准正常数据当作是最后一个命令的标准输入。

把管道符用于翻页,可以一页一页地查看。

# 管道符用于翻页
ls -l /etc/ | more

3、通配符

星号 * :匹配零个或多个字符

问号 ?:匹配单个字符

中括号加数字:[0-9] 匹配0~9之间的单个数字的字符

中括号加字母:[abc] 匹配a、b、c三个字符中 的任意一个字符

4、转义字符

反斜杠 \ :

作用是让其后面的一个变量变为单纯的字符串

单引号 ' ' :

转义其中的所有变量为单纯的字符串

双引号 " " :

保留其中的变量属性,不进行转义处理

反引号 ` ` :

把其中的命令执行后返回结果。

5、环境变量

可以用env命令查看Linux系统中所有的环境变量(环境变量约定成俗为大写)。以下是10个最重要的环境变量。

# Linux中最重要的10个环境变量

# 查看用户的主目录,或者家目录
echo $HOME

# 查看用户在使用的Shell解释器名称
echo $SHELL

# 查看输出的历史命令记录条数
echo $HISTSIZE

# 查看保存的历史命令记录条数
echo $HISTFILESIZE

# 查看邮件保存路径
echo $MAIL

# 查看系统语言、语系名称
echo $LANG

# 生成一个随机数字
echo $RANDOM

# 查看Bash解释器的提示符
echo $PS1

# 查看定义解释器搜索用户执行命令的路径
echo $PATH

# 查看用户默认的文本编辑器
echo $EDITOR

可以使用export将自定义变量提升为全局变量,这样其他用户也都可以使用。

# 用export将自定义变量WORKDIR提升为全局变量
export WORKDIR

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐