linux-基础学习-08 管道符、重定向与环境变量
重定向
输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。
- 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。
- 标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。
- 错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。
输入重定向中用到的符号以及作用
符号 | 作用 |
---|---|
命令 < 文件 | 将文件作为命令的标准输入 |
命令 << 分界符 | 从标准输入中读入,直到遇见分界符才停止 |
命令 < 文件1 > 文件2 | 将文件1作为命令的标准输入并将标准输出到文件2 |
输出重定向中用到的符号及其作用
符号 | 作用 |
---|---|
命令 > 文件 | 将标准输出重定向到一个文件中(清空原有文件的数据) |
命令 2> 文件 | 将错误输出重定向到一个文件中(清空原有文件的数据) |
命令 >> 文件 | 将标准输出重定向到一个文件中(追加到原有内容的后面) |
命令 2>> 文件 | 将错误输出重定向到一个文件中(追加到原有内容的后面) |
命令 >> 文件 2>&1 或 命令 &>> 文件 | 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) |
将当前的网络信息保存到当前目录中的network_info.txt文件中(输出重定向)
1 | [root@localhost ~]# ifconfig > network_info.txt |
追加一个日期到network_info.txt文件中(输出重定向)
1 | [root@localhost ~]# date >> network_info.txt |
管道符命令
用于把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入
案例:统计当前Linux系统中有多少用户不能交互式登录系统
1 | [root@localhost ~]# grep nologin /etc/passwd | wc -l |
命令行通配符
通配符就是通用的匹配信息的符号,比如星号(*)代表匹配零个或多个字符,问号(?)代表匹配单个字符,中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符。
案例1:
查看系统中有哪些硬盘
1 | [root@localhost ~]# ll /dev/sd* |
案例2:
查看系统中有哪些分区
1 | [root@localhost ~]# ll /dev/sd*[0-9] |
常用转义字符
Shell解释器还提供了特别丰富的转义字符来处理输入的特殊数据
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串。
单引号(’’):转义其中所有的变量为单纯的字符串。
双引号(””):保留其中的变量属性,不进行转义处理。
反引号():把其中的命令执行后返回结果。
在一串字符串中输出$符号
1 | 直接echo无法输出$符号,而且对其他的字符和字符串还会造成影响 |
alias命令别名
临时让命令别名生效
1 | [root@localhost ~]# curl myip.ipip.net |
永久对当前用户生效
1 | [root@localhost ~]# vim ~/.bashrc |
修改了~/.bashrc文件后必须使用source命令刷新才会生效
1 | [root@localhost ~]# source ~/.bashrc |
Linux系统中最重要的10个环境变量
变量名称 | 作用 |
---|---|
HOME | 用户的主目录(即家目录) |
SHELL | 用户在使用的Shell解释器名称 |
HISTSIZE | 输出的历史命令记录条数 |
HISTFILESIZE | 保存的历史命令记录条数 |
邮件保存路径 | |
LANG | 系统语言、语系名称 |
RANDOM | 生成一个随机数字 |
PS1 | Bash解释器的提示符 |
PATH | 定义解释器搜索用户执行命令的路径 |
EDITOR | 用户默认的文本编辑器 |