linux中的特殊符号及其含义梳理
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) |
将命令放到后台去执行;如果&两边都是命令,则前面的命令会被放到后台执行, 后面的命令也会同时执行,这两者之间没有逻辑关系,命令是并行执行的. |
linux中的特殊符号及其含义梳理的更多相关文章
- Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)
case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) 默认执行的命令序列 ...
- Linux中shell变量$0,$?等含义
linux中shell变量$#,$@,$0,$1,$2的基本含义: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...
- Linux中一些目录名称的含义
挖Linux中的古老缩略语[2005-06-22 15:23][Nigel McFarlane][TechTarget] Unix已经有35年历史了.许多人认为它开始于中世纪,这个中世纪是相对于计算机 ...
- Linux中删除特殊符号文件名文件
Linux 系统下的文件名长度最多可到256个字符.通常情况下,文件名的字符包括:字母.数字.“.”(点).“_”(下划线)和“-”(连字符). Linux 允许在文件名中使用除上述符号之外的其它符号 ...
- 第十九章 Linux中常用字符的特殊含义
一.引入 在Linux Shell中有很多的特殊符号,要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果. 二.常用符号 # ; ;; . , / \ 'string'| ! {} ? $ ...
- shell 中的特殊符号的含义
来源:http://blog.sina.com.cn/s/blog_62a151be0100x9rn.html 第四章 基本功 - 特殊符号 学习撰写 script 最迅速的捷径是观摩别人的 scri ...
- Linux中的常用符号
>, 1> 输出重定向符stdout,代码为1,重定向内容到文件,清除已有的内容,然后加入新内容,如果文件不存在还会创建文件 >>, 1>> 追加输出重 ...
- linux中[gcc -shared -fPIC]的含义
linux在gcc编译时加上 -shared 参数时,目的是使源码编译成动态库 .so 文件: 而-fPIC的作用是 告知编译器 生成位置无关代码(编译产生的代码没有绝对位置,只有相对位置):从而可以 ...
- linux中$#,$0,$1,$2,$@,$*,$$,$?的含义
$# 是传给脚本的参数个数$0 是脚本本身的文件名$1 是脚本后接的第一个参数$2 是脚本后接的第二个参数$@ 是传给脚本的所有参数列表,"$1" "$2" & ...
随机推荐
- Adobe Acrobat DC 安装
Adobe Acrobat DC 制作pdf模板 下载:http://www.downza.cn/soft/20562.html 安装出错解决: 可以将C:\Program Files (x86)\C ...
- play framework 相关
1.下载 官网下载解压,安装有jkd即可使用 2.helloworld $ activator new my-first-app play-java https://www.playframework ...
- vue拦截器
1.在路由添加 meta:{ requireAuth:true } 完整 { path: '/xx', name: 'xx', component: xx, meta:{ requireAuth:tr ...
- lisp学习总结(二)-----lisp应该探索发展的方向
现在流行一种语言叫做Clojure,他是lisp直接嫁接到java的结果,但是我就感觉这却成为lisp的失败. 因为lisp最强大最有优势的能力是构造抽象,构造设计思想,而不是运行期以确定的方式运行, ...
- Codeforces I Wanna Be the Guy 题解
这道题非常简单,有两种做法: 1. 用一个数组标记是不是每个关卡小X或小Y都可以通过 2. 用set储存小X和小Y能够通过的关卡(set有去重功能),最后判断set的长度是否等于n 因为楼上已经有第一 ...
- SpringBoot初级知识总结,太难了,未完待续.......
idea如何打包发布springboot 1.1.环境准备window系统,jdk8环境,springboot项目,maven3.5.4环境 1.2.进行打包发布 打开idea编辑器,打开一个写好的d ...
- java web 项目中基础技术
1. 选择版本控制器(git, svn) 2. 用户登录的时候, 你需要进行认证, 权限受理 可以使用 spring shiro 框架,进行上面的工作 3. 过滤器(filter),监听器(liste ...
- Java错误:找不到类文件或者未加载主类
使用java命令执行.class文件时,java只会查找环境变量CLASSPATH中的目录,并会不查找当前目录,所以只要把当前目录”."加入到CLASSPATH中就可以了.
- 找不到文件异常java.io.IOException: Resource [classpath:shiro.ini] could not be found.
情景 tomcat启东时,老是报错,在classpath下找不到配置文件,但是配置文件已经放在resource目录下了 解决方案 出现该异常的原因,是因为新建的conf文件夹,识别不了,因为没有设置成 ...
- 【干货】零基础30分钟让你拥有一个完整属于自己的短视频APP系统
目录 一.附言: 1 二.购买域名和购买服务器: 2 三.搭建服务器环境: 5 四.配置APP前端部分: 8 1.工具以及文件准备: 9 2.配置后端接口地址 11 3.配置APP启动图和启动图标 ...