1. 重定向符号及含义

  注意:箭头流向即是数据的流向.

数字0:标准输入(standard input,简写stdin),数据从右往左方向流动
数字1:标准正确输出(standard output,简写stdout),数据从左往右流动
数字2:标准错误输出(standard error output,简写stderr),数据从左往右流动
>  或  1> 把正确的进行输出(标准输出),覆盖
>>  或  1>> 把正确的进行输出(标准输出),追加
2> 把错误的进行输出,覆盖
2>> 把错误的进行输出,追加
<  或  0< 一般通过文件来输入重定向,如tr命令使用较多(0一般省略不写)
<<  或  0<< 追加输入重定向,一般cat命令用的多,在shell脚本中(0一般省略不写)
&> 合并正确和错误输出,覆盖重定向
&>> 合并正确和错误输出,追加重定向
COMMAND > /path 2> /path2 正确或错误(标准输出和标准输入)输出至不同位置
COMMAND > /path 2> &1 把错误输出导入正确输出的文件中
COMMAND > /path 2>> &1 追加
&>/dev/null 正确和错误的都重定向到空
COMMAND > /dev/null 2>&1 定向到空(同上一个)

2. 特殊符号/通配符及含义

  通配符:通配符是bash的内置功能,其适用范围在命令行中的普通命令及脚本编程中,跟linux正则表达式有一些区别. 

  通配符的目的:bash中用于实现文件名"通配",通配符仅仅匹配字符. 

符号 含义
######路径位置
. 当前目录
.. 上一级目录
- 上一次所在目录
~ 用户家目录
######模糊匹配
* 匹配任意长度的任意字符
? 匹配任意单个字符,有且只有一个字符
! 取反(正则表达式中,不支持在grep中使用;在find/sed/awk中表示取反)
[] 匹配指定范围内(中括号内)的任意单个字符
[^] 匹配指定范围外(中括号之外)的任意单个字符(非)
[!] 取反,等价于[^]
######引号
'' 单引号,强引用,所见即所得,不会做解释
"" 双引号,弱引用,双引号中的变量或命令或转移字符会先被解释
`` 反引号,引用命令,解释命令(等价于 $() 或 ${} )
######其他特殊符号
\ 转义字符,还原原本的意义
; 多个命令之间的分隔符(-exec命令中,分号;代表bash的特殊意义)
|

管道COMMAND1 | COMMAND2 | COMMAND3| …后一个命令会将前一个

命令的标准输出,当做要执行的对象

$ 1)代表普通用户的提示符;  2)$(string)代表字符串变量内容
# 1)在文本中,前面加#代表行内容被注释;  2)超级管理员的提示符
{}

1)可以生成序列;  2)shell脚本编程中,用作引用变量,作为变量与普通字符的

分隔,让变量成为一个整体

3. 专用字符集合及其含义

  注意:专用字符在命令行中一般需加中括号[]括起来,所以,下表整理成对出现.

字符 含义
[[:alnum:]] 任意数字或字母,匹配大小写字母和数字,等价于字符类'[:alpha:]'与字符类'[:digit:]'的和
[[:alpha:]] 任意大小写字母,匹配大小写字母,等价于字符类'[:lower:]'和字符类'[:upper:]'的和
[[:blank:]] 空白字符类,包括:空格和制表符
[[:cntrl:]] 控制字符
[[:digit:]] [0-9]  中的任意数字
[[:graph:]] 图片和图形
[[:lower:]] [a-z]  任意小写字母
[[:print:]] 可打印字符,字符类'[:alnum:]'与字符类'[:punct:]'和空格的和
[[:punct:]] 任意标点符号
[[:space:]] 任意空格字符
[[:upper:]] [A-Z] 任意大写字母
[[:xdigit:]] 十六进制字符

4. bash中的逻辑运算符

  注意:

  1)逻辑运算符遵循从左往右的顺序进行运算,逻辑运算符&&和||是短路符号,符号左右两边的命令之间具有逻辑关系.

  2)联合使用 && 和 || 的时候,先判断 逻辑与 再判断 逻辑或

符号 含义

&&

(COMMAND1 && COMMAND2)

与运算and.COMMAND1执行成功,没有报错,COMMAND2才会执行;

若COMMAND1执行报错,则COMMAND2不会被执行.

判断命令执行是否成功的依据是echo $? ,若结果是0,

则是命令执行成功,若是其他数值,都是代表命令执行失败.

||

(COMMAND1 || COMMAND2)

或运算or.当COMMAND1执行成功,没有报错,COMMAND2不会被执行;

若COMMAND1执行报错,则COMMAND2会被执行

! 1)在bash中表示取反;  2)调用history最近历史命令

;

(COMMAND1;COMMAND2)

分号前面的命令出错也不影响后面的命令执行,即COMMAND 1;

COMMAND2都会被执行

&

(COMMAND1 & COMMAND2)

将命令放到后台去执行;如果&两边都是命令,则前面的命令会被放到后台执行,

后面的命令也会同时执行,这两者之间没有逻辑关系,命令是并行执行的.

最新文章

  1. 【转】iOS动态库和静态库的简要介绍
  2. PL/SQL连接Oracle数据库,中文乱码,显示问号
  3. Photoshop投影和CSS box-shadow转换
  4. linux 系统下 ngnix 显示目录形式
  5. 11个很棒的 jQuery 图表库
  6. 【面经】用递归方法对二叉树进行层次遍历 &amp;&amp; 二叉树深度
  7. C++_Eigen函数库用法笔记——Advanced Initialization
  8. 28.USB的传输类型
  9. IE9 JSON未定义
  10. [string]Codeforces158C Cd and pwd commands
  11. poj2140---herd sums
  12. aop代理方式引起的spring注入bean(实现类)与获取bean(实现类)出错
  13. 使用nodeJS的 crypto模块来为你的密码hash加盐
  14. nginx 动静分离 以及 负载均衡配置
  15. Linux 备份 文件夹的权限 然后在其他机器进行恢复
  16. Python无限元素列表实例教程
  17. LevelDB Compaction操作
  18. Thrift IDL使用方式
  19. mongo 一次插入多条
  20. CSS——优先级

热门文章

  1. 不止开源,不止跨平台。微软的 .NET Core 还有哪些强大之处值得我们学习?
  2. 开源导入导出库Magicodes.IE 导出教程
  3. 16. 产生Javadoc
  4. Navicat Premium 15 永久激活版安装教程
  5. react元素获取e时,点击target为空的现象
  6. 机器学习环境配置系列三之Anaconda
  7. 使用Route Prefix 使用属性路由 精通ASP-NET-MVC-5-弗瑞曼
  8. 将DataTable数据转换成List泛型数据
  9. 创建dynamics CRM client-side (五) - 使用regular expression (正则表达式)来检查phone number
  10. 代码中理解CPU结构及工作原理