管道符、重定向与环境变量
一、输入输出重定向
输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。
1、重定向分类
标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。
标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。
错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。
2、输入重定向中符号及其作用
符号 |
作用 |
命令 < 文件 |
将文件作为命令的标准输入 |
命令 << 分界符 |
从标准输入中读入,直到遇见分界符才停止 |
命令 < 文件1 > 文件2 |
将文件1作为命令的标准输入并将标准输出到文件2 |
3、输出重定向中符号及其作用
符号 |
作用 |
命令 > 文件 |
将标准输出重定向到一个文件中(清空原有文件的数据) |
命令 2> 文件 |
将错误输出重定向到一个文件中(清空原有文件的数据) |
命令 >> 文件 |
将标准输出重定向到一个文件中(追加到原有内容的后面) |
命令 2>> 文件 |
将错误输出重定向到一个文件中(追加到原有内容的后面) |
命令 >> 文件 2>&1 |
将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) |
二、| 管道符
作用:把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入。
格式:命令1 | 命令2 | ….| 命令n
备注:在修改密码时:echo "密码" | passwd --stdin 用户名
三、命令行通配符
符号 |
含义 |
* |
匹配零个或多个字符 |
? |
匹配单个字符 |
【0-9】 |
匹配0~9之间的单个数字的字符 |
【abc】 |
匹配a、b、c三个字符中任意一个字符 |
四、转义符
转义符 |
含义 |
反斜杠\ |
使反斜杠后面的一个变量变为单纯的字符串。 |
单引号'' |
转义其中所有的变量为单纯的字符串。 |
双引号"" |
保留其中的变量属性,不进行转义处理。 |
反引号`` |
把其中的命令执行后返回结果。 |
五、环境变量
1 、 常见系统环境变量:
PATH、 PWD 、 BASH 、 LANG 、 USER 、 HOSTNAME 、 HOME 、 SHELL
2、 定义环境变量
ENVIRON-VARIABLE=value # 环境变量赋值
export ENVIRON-VARIABLE # 声明环境变量
注意:环境变量可以在命令行中设置,但用户注销时这些值将丢失,环境变量均为大写,必须用 export 命令导出。
3、 unset命令
作用:清除环境变量
格式:unset 环境变量名
4、 env命令
作用:可以列出已经定义的环境变量
5、环境变量与配置文件
/etc /profile 属于全局环境变量配置文件, bash_profile 、 bashrc 属于用户环境变量文件,此两个文件位于用户根目录下 。
当某 Linux 用户登录时, Shell 会首先执行系统默认的配置文件 etc /profile ,然后会自动执行 bash_profile文件,如果 bash_profile 文件不存在,接着读取 bashrc 文件 。
Bash的初始化环境变量文件顺序
6、source命令
作用:立即执行可以调用配置文件中的环境变量
格式:source 配置文件
环境变量配置文件使用原则:
跟用户相关的环境变量配置均配置到用户目录下面的配置文件中(bash_profile 、 bashrc )
需要对全局生效的环境变量配置,都配置到 etc /profile 文件中。
六、环境变量相关命令
1、alias命令
作用:创建一个属于自己的命令别名;且可以查看别名命令是由什么源命令定义的。
格式:alias 别名=命令
2、unalias命令
作用:取消别名命令
格式:unalias 别名
3、Linux命令执行步骤
①以绝对路径或相对路径的方式输入命令;
②是否为"别名命令",即用一个自定义的命令名称来替换原本的命令名称;
③输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行而用户在绝大部分时间输入的是外部命令,这些命令交由步骤4继续处理。可以使用"type命令名称"来判断用户输入的命令是内部命令还是外部命令;
④多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作PATH,可以简单地把它理解成是"解释器的小助手",作用是告诉Bash解释器待执行的命令可能存放的位置,然后Bash解释器就会乖乖地在这些位置中逐个查找。PATH是由多个路径值组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到Bash解释器对Linux命令的查找。
4、Linux重要的环境变量
使用env命令可以查看Linux系统中所有的环境变量。
变量名称 |
作用 |
HOME |
用户的主目录(即家目录) |
SHELL |
用户在使用的Shell解释器名称 |
HISTSIZE |
输出的历史命令记录条数 |
HISTFILESIZE |
保存的历史命令记录条数 |
|
邮件保存路径 |
LANG |
系统语言、语系名称 |
RANDOM |
生成一个随机数字 |
PS1 |
Bash解释器的提示符 |
PATH |
定义解释器搜索用户执行命令的路径 |
EDITOR |
用户默认的文本编辑器 |