管道符重定向与环境变量

Posted 脱下长日的假面

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了管道符重定向与环境变量相关的知识,希望对你有一定的参考价值。

1.输入输出重定向

1.输入重定向:把文件导入到命令中。

符号及作用:

  • 命令 < 文件 : 将文件作为命令的标准输入
  • 命令 << 分界符 : 从标准输入中读入,直到遇到分界符才停止
  • 命令 < 文件1 > 文件2 : 将文件1作为命令的标准输入并将标准输出到文件2

使用输入重定向把readme.txt文件导入给wc -l 命令,统计文件中的内容行数。

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

符号及作用:

  • 命令 > 文件 : 将标准输出重定向到一个文件中(清空文件原有数据)
  • 命令 2> 文件 : 将错误输出重定向到一个文件中(清空文件原有数据)
  • 命令 >> 文件 : 将标准输出重定向到一个文件中(追加到原有内容的后面)
  • 命令 2>> 文件 : 将错误输出重定向到一个文件中(追加到原有内容的后面)
  • 命令 &>> 文件 :将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
  • 命令 >> 文件 2>&1 :将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

错误的输出重定向依然把信息输出到了屏幕上。

把命令的错误信息写入到文件中。

2.管道命令符

按下键盘上的Shift+\\ 即可输入管道符,执行格式为 “命令A | 命令B”。命令符的作用可以用一句话概括:“把前一个命令原本要输出到屏幕的数据当做后一个命令的标准输入”。

通过管道命令符,可以合并命令,如:

① 找出被限制登陆的命令是 grep "/sbin/nologin" /etc/passwd
② 统计文本行数的命令是 wc -l

即找到了限制登陆的用户数为35,再如:

以翻页形式查看/etc文件中的文件列表及属性信息,避免了信息一股脑的显示在屏幕上,根本看不清楚。

用户修改密码时需要二次确认,这在编写自动化脚本时成为一个致命缺陷。上图则是通过管道符以一条命令的形式完成密码重置。

管道命令符可以在一行命令中使用多次。

3.命令行的通配符

通配符就是通用的匹配信息的符号,如 * 代表匹配零个或多个字符, ? 代表匹配单个字符, 中括号内加上数字[0-9]代表匹配0~9中的单个数字的字符,中括号内加上字母[abc]代表

匹配abc三个字符中的任意一个。

匹配以sda开头的文件。

匹配以sda开头并且后面跟一个数字的文件。

匹配sda1,sda3或sda5。

4.常用的转义字符

4个最常用的转义字符:

  • 反斜杠(\\):使反斜杠后面的一个变量变为单纯的字符串。
  • 单引号(\' \'):转义其中所有的变量为单纯的字符串。
  • 双引号(" "):保留其中的变量属性,不进行转义处理。
  • 反引号( ):把其中的命令执行后返回结果。

定义变量PRICE

如果希望输出内容为 PRICE is $5,则需要添加转义字符

$ 即输出为$ , $PRICE输出为5.

上图展示了反引号的使用。通过反引号执行 uname -a 命令,并通过 echo 输出命令执行结果。

5.重要的环境变量

变量是计算机系统用于保存可变值的数据类型。在Linux系统中,变量名称一般都是大写的,这是一种约定俗成的规范。我们可以直接通过变量名称来提取到对应的变量值。Linux系统中的环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录、邮件存放位置等。

命令在Linux中的执行分为4个步骤:
第1步:判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话则直接执行。
第2步:Linux系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替换原本的命令名称。可以用alias命令来创建一个属于自己的命令别名,格式为“alias 别名=
命令”。若要取消一个命令别名,则是用unalias命令,格式为“unalias 别名”。我们在使用rm命令删除文件时,Linux系统都会要求我们再确认是否执行删除操作,其实这就是Linux系> 统为了防止用户误删除文件而特意设置的rm别名命令,接下来我们把它取消掉:

第3步:Bash解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令交由步骤4继续> 处理。可以使用“type命令名称”来判断用户输入的命令是内部命令还是外部命令。
第4步:系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉Bash解释器待执行的命令可能存
放的位置,然后Bash解释器就会乖乖地在这些位置中逐个查找。PATH是由多个路径值组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到Bash解释
器对Linux命令的查找。

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

变量名称 作用
HOME 用户的主目录(即家目录)
SHELL 用户在使用的Shell解释器名称
HISTSIZE 输出的历史命令记录条数
HISTFILESIZE 保存的历史命令记录条数
MAIL 邮件保存路径
LANG 系统语言、语系名称
RANDOM 生成一个随机数字
PS1 Bash解释器的提示符
PATH 定义解释器搜索用户执行命令的路径
EDITOR 用户默认的文本编辑器

以上是关于管道符重定向与环境变量的主要内容,如果未能解决你的问题,请参考以下文章

管道符重定向与环境变量

管道符重定向与环境变量

Linux管道符重定向与环境变量

管道符重定向与环境变量

第三章:管道符重定向与环境变量

linux就该这么学——第三章管道符重定向与环境变量