第三章:重定向,管道符,环境变量
3.1 输入输出重定向
-
定义:输入重定向是指将文件导入命令中,输出重定向是指将原本显示到屏幕的信息输出问文件。相较于输入重定向,输出重定向使用的更多,下面重点介绍输出重定向
-
输出重定向用到的符号和作用如下所示
符号 作用 命令 > 文件 将标准输出重定向到一个文件中(同时清空文件中原有内容) 命令 2> 文件 将错误输出重定向到一个文件中(同时清空文件中原有内容) 命令 >> 文件 将标准输出重定向到一个文件中(在文件中原有内容后追加) 命令 2>> 文件 将错误输出重定向到一个文件中(在文件中原有内容后追加) 命令 &>> 文件 将标准和错误重定向到一个文件中(在文件中原有内容后追加) -
示例
# 在用户家目录下输入命令ls,并将输出到屏幕的内容写入到文件list中ls > list.txt
-
# 错误重定向cd list.txt 2> cd list.txt
-
# 标准输出重定向在文件中原有内容追加ls >> list.txt
3.2 管道符
-
命令格式:“命令1 | 命令2”
-
作用:把前一个命令原本要输入到屏幕的数据当作是后一个命令的标准输入
-
示例
# 找出被限制登录的用户的数量grep \"/sbin/nologin\" /etc/passwd | wc -l
-
# 翻页形式查看/etc目录下的列表ls -l /etc/ | more
-
# 一句话完成密码重置操作echo \"newpasswd\" | passwd --stdin root
管道符不仅仅局限于两个命令的组合,可以有“命令1 | 命令2 | 命令3”
3.3 命令行通配符
-
(*)表示匹配零个或多个字符,(?)表示匹配单个字符,中括号中添加字符([0-9] ,[a-z],[abc])表示匹配其中某个字符
-
以RHEL8中/dev目录做演示
# 输出所有以tty开头的文件ls -l /dev/tty*
-
# 输出结束符号在0-9范围的tty文件ls -l /dev/tty[0-9]
-
# 输出只紧跟一个字符的tty文件ls -l /dev/tty?
3.4 常用的转义符
-
四个常用的转义符
反斜杠(\\): 使得斜杠后面的一个变量变为单纯的字符串
- 单引号(\’\’): 转义其中所有的变量为单纯的字符串
- 双引号(\”\”): 保留其中的变量属性,不进行转义处理
- 反引号 (“): 把其中的命令执行后返回结果
示例:首先定义一个变量
# 如果我们希望输出“Price is $5\"# 使用转义符(\\)echo \"Price is \\$$PRICE\"
# 如果需要某个命令的输出值,可以使用`命令`# 如,查看本机的Linux版本信息echo uname -a
3.5 重要的环境变量
-
环境变量定义:Linux变量名称一般都是大写的(约定俗成),我们可以通过变量名来提取对应的变量值
-
格式:\”echo $变量名称\”
-
常用的变量名称
变量名称 作用 HOME 用户的主目录 SHELL 用户在使用的SHELL解释器名称 MAIL 邮件的保存路径 PATH 定义解释器搜索用户执行命令的路径 -
示例