管道命令符
管道命令符 “|” 的作用是将前一个命令的标准输出当做后一个命令的标准输入,格式为:命令A | 命令B
例子:
输入命令 grep "/sbin/nologin" /etc/passwd | wc -l
。将搜索命令的输出值传递给统计命令,统计出所有不允许登录系统的用户个数。
输入输出重定向
输出重定向符:
符号 | 作用 |
---|---|
命令 > 文件 | 将标准输出重定向到一个文件中 (清空原有文件的数据) |
命令 2> 文件 | 将错误输出重定向到一个文件中 (清空原有文件的数据) |
命令 >> 文件 | 将标准输出重定向到一个文件中 (追加到原有内容的后面) |
命令 2>> 文件 | 将错误输出重定向到一个文件中 (追加到原有内容的后面) |
输入重定向符:
符号 | 作用 |
---|---|
命令 < 文件 | 将文件作为命令的标准输入 |
命令 << 分界符 | 从标准输入中读入,知道遇见分界符才停止 |
命令 < 文件 1 > 文件 2 | 将文件 1 作为命令的标准输入并将标准输出到文件 2 |
例子:
① 输入命令:man ls > /root/ls.txt
,将 ls 的命令帮助文档写入到 /root/ls.txt 中。
② 向文件中写入一行文字,输入命令:echo "Hello" > helloword.txt
;向文件中追加写入一行文字,输入命令:echo "World >> helloword.txt"
命令行通配符
Bash 解释器支持的文本通配符:
通配符 | 含义 |
---|---|
* | 匹配 零个 或者 多个 字符 |
? | 匹配任意 单个 字符 |
[0-9] | 匹配范围内的数字 |
[abc] | 匹配列出的任意字符 |
另外 Bash 解释器还支持特殊字符的扩展:
字符 | 作用 |
---|---|
\ (反斜杠) | 转义后面单个字符 |
’ ’ (单引号) | 转义引号内的所有字符 |
" " (双引号) | 变量依然有效 |
`` (反引号) | 执行命令语句 |
例子:
环境变量
PATH 环境变量
在 Linux 中一切皆文件,命令也不例外。
当用户执行一条 ls 命令后:
- ① 如果是以 绝对/相对路径输入的命令则直接执行 (如执行 /bin/ls)
- ②检查是否为 alias 别名命令
- ③由 bash 判断其是 “内部命令” 还是 “外部命令”
- ④ 通过 $PATH 变量中定义的路径进行命令查找
输入命令:echo $PATH
查看 $PATH变量
$PATH 变量负责告诉 bash 用户要执行的命令可能存放在哪里,然后 bash 就会在这些目录里寻找。
其余重要的环境变量
可以使用 env
命令来查看环境变量有哪些。
变量名称 | 含义 |
---|---|
HOME | 用户的主目录 “home” |
SHELL | 当前的 shell 是哪个程序 |
HISTSIZE | 历史命令记录条数 |
邮件信箱文件 | |
RANDOM | 随机数字 |
PS1 | bash 提示符 |
HISTFILESIZE | history 命令存储数量 |
PATH | 在路径中的目录查找执行文件 |
EDITOR | 默认文本编辑器 |
例子:
假设需要设置一个变量 “DESKTOP”,让每个用户执行 “cd $DESKTOP” 都登录到 /root/Desktop 目录中。
定义变量: DESKTOP=/root/Desktop
所需要让所有用户都能使用,则需要使用 export
命令将局部变量提升为全局变量。格式为:export 变量名 [=变量值]