版权声明: https://blog.csdn.net/UtopiaOfArtoria/article/details/79856015
管道符、重定向与环境变量—Linux就该这么学(二)
学习总览
- 输入输出重定向
- 管道命令符
- 命令行的通配符
- 常用的转义字符
- 重要的环境变量
输入输出重定向
输入重定向:把文件导入到命令中;输出重定向:把原本要输出到屏幕的数据信息写入到指定文件中。工作中常用到的是输出重定向。输出重定向可分为:标准输出重定向(默认)和错误输出重定向(2),也可分为清空输入(>)和追加输入(>>)。
- > 符号的作用:输出重定向。会将目标文件中原内容清空。
- >> 符号的作用:输出重定向。会在目标文件中原内容后追加。
- < 符号的作用:输入重定向。
输出重定向的相关命令测试如下:
# 查看当前目录下有哪些文件,是ls -l的简写
ll
# 新建一个空白文件readme.txt(用来测试的目标文件)
touch readme.txt
# 查看readme.txt中的内容
cat readme.txt
# 学习输出重定向符号 >
echo "学习输入 > 与 >> 的区别" > readme.txt
cat readme.txt
# 学习输出定向符号 > 与 >> 的区别
echo "符号 >> 是将该文本内容追加到目标文件的原内容之后" >> readme.txt
cat readme.txt
echo "符号 > 是清空原文件中的内容后,将该文本的内容写入其中" > readme.txt
cat readme.txt
# 学习错误输出重定向(该目录下不存在xxxxxx的文件)
ll xxxxxx
ll xxxxxx 2>> readme.txt
cat readme.txt
该命令的测试效果图如下:
输入重定向的命令测试如下:
# 统计readme.txt(这三个命令的作用是一样的)
wc < readme.txt
wc readme.txt
cat readme.txt | wc
该命令的测试效果图如下:
管道命令符
管道命令符可以理解为:把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入。
管道符的用法命令(一):
# 搜索被Linux屏蔽的白名单
grep "/sbin/nologin" /etc/passwd
# 用管道符统计白名单中被Linux屏蔽用户的个数
grep "/sbin/nologin" /etc/passwd | wc -l
该命令的测试效果图如下:
管道符的用法命令(二):
# 查询Linux系统中的所有进程
ps aux
# 用管道符查询Linux中与docker有关的进程
ps aux | grep docker
该命令的测试效果图如下:
命令行的通配符
通配符就是通用的匹配信息的符号。(*)代表匹配零个或多个字,(?)代表匹配单个字符,[0-9]代表匹配0~9之间的单个数字的字符,[abc]则是代表匹配 a、b、c 三个字符中的任意一个字符。
通配符的测试命令如下:
# *的用法
ll /dev/vcs*
# ?的用法
ll /dev/vcs?
# []的用法
ll /dev/vcs[0-9]
ll /dev/vcs[a-z]
该命令的测试效果图如下:
常用的转义字符
- 反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串。
- 单引号(’ ‘):转义其中所有的变量为单纯的字符串。
- 双引号(” “):保留其中的变量属性,不进行转义处理。
- 反引号(` `):把其中的命令执行后返回结果。(Esc下面)
# 声明并初始化一个变量PRICE,值为10
PRICE=10
# ""双引号会原样输出其中的内容
echo "PRICE"
# $符号的作用是提取变量PRICE的值
echo "THE PRICE IS $PRICE"
# \转义后,$失去其特殊作用,变为单纯的字符串。
echo "THE PRICE IS \$$PRICE"
# 查询并输出本虚拟机的Linux以及内核版本信息
uname -a
# 转义并输出本虚拟机的Linux以及内核版本信息
echo `uname -a`
该命令的测试效果图如下:
重要的环境变量
变量,是计算机系统用于保存可变值的数据类型。一般是大写。
Linux中执行命令的过程如下:
- 判断用户是否以绝对路径或相对路径的方式输入命令,如果是的话,直接执行。
- Linux系统检查用户输入的命令是否为“别名命令”。(alias 别名=命令)自定义别名,(alias 别名)查询别名对应的实际命令,(unalias 别名)删除别名。如:别名ll的实际命令为:ls -l –color=auto.
- Bash解释器判断用户输入的是内部命令还是外部命令。如果是内部命令,直接执行;如果是外部命令,执行第四步。用(type 命令)可以检验命令是否为内部命令。
- 系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉Bash解释器待执行的命令可能存放的位置,然后Bash解释器就会在这些位置中逐个查找。
Linux 系统中最重要的 10 个环境变量如下:
变量名称 | 作用 |
---|---|
HOME | 用户的主目录(即家目录) |
SHELL | 用户在使用的 Shell 解释器名称 |
HISTSIZE | 输出的历史命令记录条数 |
HISTFILESIZE | 保存的历史命令记录条数 |
邮件保存路径 | |
LANG | 系统语言、语系名称 |
RANDOM | 生成一个随机数字 |
PS1 | Bash解释器的提示符 |
PATH | 定义解释器搜索用户执行命令的路径 |
EDITOR | 用户默认的文本编辑 |
环境变量的相关效果图如下:
Linux作为一个多用户多任务的操作系统,能够为每个用户提供独立的、合适的工作运行环境。因此,一个相同的变量会因为用户身份的不同而具有不同的值。变量是由固定的变量名与用户或系统设置的变量值两部分组成的,使用export命令可以将自定义变量提升为全局变量。