1. 重定向
作用 改变原来命令的输入输出来源
标准输出重定向:将原本要输出的屏幕的信息输出到文件当中
标准输入重定向:将之前默认从键盘输入的命令改由从文件输入
五种模式
- 标准输出重定向
- 标准追加输出重定向
- 标准覆盖输出重定向
- 错误输出重定向
- 错误追加输出重定向
- 错误覆盖输出重定向
- 标准输入重定向
输出涉及符号
- 命令>文件 :标准输出到一个文件当中
- 命令2> 文件:错误输出到一个文件当中
- 命令 >> 文件 标准输出追加到一个文件当中
- 命令 2>> 文件:错误输出追加到一个文件当中
- 命令 >> 文件 2>&1:标准输出与错误输出共同写入到文件中
输入涉及符号 - 命令< 文件: 将文件作为命令的标准输入
- 命令<< 分界符:从标准输入当中读入,知道遇到分界符才停止
- 命令< 文件1> 文件2:将文件1作为标准输入,将文件2作为标准输出
实例
将ls -l /temp/ 命令执行结果输出到readme.txt文件中
ls -l /temp/ > readme.txt
将ls -l /temp1 temp1目录不存在 ,将命令的错误输出到readme.txt文件中。
ls -l /temp1/ 2 > readme.txt
将 echo ‘read me’ 输出结果追加到readme.txt当中
echo 'read me' >> readme.txt
将命令ls -l /temp1 2>> 错误输出结果追加到readme.txt当中
ls -l /temp1/ 2 >> eadme.txt
2. 管道符
格式:[命令A]|[命令B]|[命令N]
作用:将前面linux命令的输出结果作为后面命令的输入,以此类推。
常用例子
统计被限制登录用户的个数
grep "/sbin/nologin" /etc/passwd | wc -l
通过翻页的形式查看 /etc/目录下所有文件,以及属性信息
ls -l /etc/ | more
通过管道符来修改用户的密码
echo "wangjie" | passwd --stdin wangjie
使用一条命令来发送邮件
echo "hello linux" | mail -s "Subject" linuxProbe
3. 通配符
作用: 一般用来查找文件,目录等内容时进行匹配操作
参数:
- ‘*’(星号):代表零到多个字符
- ‘?’(问号) : 匹配单个字符
- [0-9] : 匹配0~9之间的单个数字
- [139] : 匹配括号当中的任意一个字符,可以是英文字母
示例
匹配所有在/dev目录中而且以sda开头的文件
ls -l /dev/sda*
匹配所有在/dev目录中且以sda开头的文件,并且后面跟其他一个字符的文件的信息
ls -l /dev/sda?
匹配所有在/dev目录中且以sda开头的文件,并且后面匹配0-9的字符的文件信息
ls -l /dev/sda[0~9]
匹配所有在/dev目录中且以sda开头的文件,并且后面跟135任意一个字符信息的文件
ls -l /dev/sda[135]
4. 转义字符
参数:
- 反斜杠(‘\’):使得反斜杠后面的字符,单纯的变为一个字符
- 单引号 (’ ') :转义其中所有的变量为单纯的字符串
- 双引号(" ") :保留其中的变量属性,不进行转移处理
- 反引号 (``):返回其中命令的执行结果
实例
定义一个PRICE变量为5
echo PRICE=5
使用()反斜杠 :还远字符原来的含义
echo "Price is \$$PRICE"
echo Price is $5
查看某个命令的执行结果 echo uname -a
echo 'uname -a'
5. 环境变量
作用:主要用来定义系统运行环境的一些参数信息,例如PATH
说明:
- 变量是计算机系统当中的一些可变值的数据类型
- 在Linux系统当中一般变量是大写的,这是一个约定
- linux是一个多用户多任务的操作系统,一个环境变量会因为用户身份的不同而具有不同的值
重要环境变量
- HOME:用户的主目录
- SHELL:用户在使用的shell解释器的名称
- HISTSIZE:用来设置历史命令的条数
- HISTFILESIZE:保存的历史记录的条数
- MAIL:邮件保存路径
- LANG:系统语言,语系名称
- RANDOM:生成一个随机数
- PS1:bash解释器的提示词
- PATH:定义Bash解释器执行外部命令时查找的命令路径
- EDITOR:用户默认的文本编辑器
6.命令执行流程
第一步:判断当前用户以绝对路径还是相对路径执行了命令
第二步:检测当前用户输入的命令是否为别名
第三步:Bash解释器判断用户输入的命令为内部命令还是外部命令
外部命令的情况:当执行外部命令的时候,系统会在当前配置的系统环境变量当中查找用户输入的命令文件
说明:
- PATH: 是由多个路径组成的变量,每个路径之间使用冒号相隔。
- 实例:/root/.local/bin:/root/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin