##特殊符号与正则表达式的区别
#()在awk/sed/grep中使用的特殊符号-->正则表达式
#()在命令行或脚本中使用的特殊符号-->以下特殊意义
##特殊符号(通配符)列表
< 0< | 输入重定向 | mail -s 1091*****@qq.com </etc/hosts.txt ##将host.txt中的内容写入的邮件内容 |
> | 输出重定向 | |
>> | 追加输出重定向 | 不覆盖之前的内容,在文档最后继续写入追加的内容 |
| | 管道 | 将前一个命令得到的结果,通过管道传给下一个命令作为参数使用 |
\ | 转义字符 | 让有特殊意义的字符去除特殊意义,例如"."(代表当前目录),“\.”则只代表".";例如"$"(代表以...结尾),"\$"即表示$本身 |
* | 匹配所有 | 即任意字符重复n次,类似正则中".*" |
? | 匹配任意一个字符 | 类似正则中"." |
$ | 引用变量 | 正则中表示行尾 |
# | 注释符 | 一般为配置文件中注释,使该行不解释 |
~ | 当前用户家目录 | |
.和./ | 当前目录或隐藏文件 | 例如:ll -a /root/.bash_rc |
..和../ | 当前目录上一级目录 | cd . ##当前目录 cd .. ##返回当前目录的上一级目录 cd - ##返回上一次所在的目录 |
/ | 根目录或路径分隔符 | |
; | 命令分隔符 | 两个命令在同一行执行,则用";"隔开 |
{} | (1)生成字符或字符序列 (2)find里面使用的意思是“前面命令的结果” | (1)一般配合echo等命令使用,类似seq. mkdir /data/{3306,3307,3308}/data ##同时创建3306和3307、3308目录 mkdir stu{001..100} ##同时创建100个目录,stu001.stu002...stu100 echo {1..100} ##产生1 2 3...100的序列 (2)配合find -exec命令一起使用 find /et/ -type f -name "ssh.bak*" -exec rm -f {} \; |
|| | 或 | 只有前面的命令不能正确执行,才执行后面的命令 ech 12 >>/dev/null || echo 2 |
&& | 且,与 | 只有当前面的命令执行成功后才执行后面的命令 echo && echo 1 |
`` | 两个反引号 (引用命令的参数) | echo `date` |
‘‘ | 两个单引号 (不具有变量置换功能) | 输出所见所得,看到啥就输出啥 (只是对‘‘内的变量引用不能生效,但是特殊符号的意义保留) |
"" | 两个双引号 (具有变量置换功能) | 能够解析调用的变量输出 (若引用的内容中有‘‘,保持引用符号不同,需使用"",反之亦然) |
! | 调用最近一次使用的命令、参数或者取反 | !+数字 表示调出历史的第几条命令 !! 表示使用最近一次操作的命令 !+commond 表示调用最近一次使用该命令开头的命令 !$ 表示调用上一次使用的参数(变量) cat/etc/sysconfig/network-scripts/ifcfg-em1 cat !$ 显示同样的结果 "非”,取反:(!在哪个参数前面,即对该参数取反) find /home/jason/ ! -type f-name "a.sh" ##搜索不是文件类型,但是名字为a.sh find /home/jason/ -type f ! -name "a.sh" ##搜索文件名不为a.sh的文件 find取“或”"-o" find/home/jason/ -type f -name "a.sh" -o -name "b.sh" ##搜索文件名为a.sh或者b.sh的文件 find取“且”"-a" find/home/jason/ -type f -name "*a.sh" -a ctime -15 ##搜索包含a.sh的文件,并且该文件修改时 |
原文地址:http://jschu.blog.51cto.com/5594807/1852772