输入输出重定向

输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。

  • 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。
  • 标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。
  • 错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。

输入重定向中用到的符号及其作用

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

输出重定向中用到的符号及其作用

符号 作用
命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件 将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1

命令 &>> 文件
将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

man bash 输出到文件查看
录制_2019_04_10_08_36_39_406.gif
演示 > 是会清空内容的,而 >> 只是在后面追加
录制_2019_04_10_08_37_46_785.gif
演示将报错信息输入到文件中
录制_2019_04_10_08_41_49_440.gif
演示将某个文件进行输入重定向,然后显示行数
录制_2019_04_10_08_43_44_675.gif

管道命令符

把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入
统计有多少用户限制登录系统
录制_2019_04_10_08_47_11_85.gif
使用more来将大量输出结果慢慢看
录制_2019_04_10_08_48_32_227.gif
在脚本命令用修改用户密码
录制_2019_04_10_08_50_04_67.gif
在发送电子邮件时,默认采用交互式的方式来进行,我们完全可以利用一条结合了管道符的命令语句,把编辑好的内容与标题一起“打包”,最终用这一条命令实现邮件的发送。
录制_2019_04_10_09_12_59_912.gif
管道命令符在一个命令组合中可以使用多次,比如,“命令A | 命令B | 命令C”

命令行的通配符

  1. [root@node-1 ~]# ls -l /dev/sda
  2. brw-rw----. 1 root disk 8, 0 Apr 5 05:46 /dev/sda
  3. [root@node-1 ~]# ls -l /dev/sda*
  4. brw-rw----. 1 root disk 8, 0 Apr 5 05:46 /dev/sda
  5. brw-rw----. 1 root disk 8, 1 Apr 5 05:46 /dev/sda1
  6. brw-rw----. 1 root disk 8, 2 Apr 5 05:46 /dev/sda2
  7. [root@node-1 ~]# ls -l /dev/sda?
  8. brw-rw----. 1 root disk 8, 1 Apr 5 05:46 /dev/sda1
  9. brw-rw----. 1 root disk 8, 2 Apr 5 05:46 /dev/sda2
  10. [root@node-1 ~]# ls -l /dev/sda[0-9]
  11. brw-rw----. 1 root disk 8, 1 Apr 5 05:46 /dev/sda1
  12. brw-rw----. 1 root disk 8, 2 Apr 5 05:46 /dev/sda2
通配符 作用
* 匹配零个或多个字符
? 匹配单个字符
[] 匹配一个范围

常用的转义字符

4个最常用的转义字符

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

录制_2019_04_10_09_38_28_888.gif

重要的环境变量

用户执行了一条命令之后
第1步:
判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话则直接执行。
第2步:
Linux系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替换原本的命令名称。可以用alias命令来创建一个属于自己的命令别名,格式为“alias 别名=命令”。若要取消一个命令别名,则是用unalias命令,格式为“unalias 别名”。

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

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

变量是由固定的变量名与用户或系统设置的变量值两部分组成
我们自己创建的变量作用范围有限,可以使用 export 将其提升为全局变量