1、点(.)字符匹配.作为正则表达式的一部分,匹配字符时,单点(.)表示匹配任意一个字符
2、: [冒号].
空命令 这个命令意思是空操作(即什么操作也不做). 它一般被认为是和shell的内建命令true是一样的
e.g. 死循环
while :
do
.....
done
域分割符。比如说在/etc/passwd和环境变量$PATH里. /usr/local/bin:/bin:/usr/bin:。。。。
3、* 通配符[星号].
用于匹配文件名扩展的一个通配符.它自动匹配给定的目录下的每一个文件
也用于正则表达式中匹配任意数字字符
两个星号(**)表示求幂运算符
4、$
变量替换 (引用一个变量的内容).
正则表达式,行的结尾
5、()
6、{}
a)扩展支持. {xxx,yyy,zzz,...}
cat {file1,file2,file3} > combined_file # 连接file1,file2,和file3的内容并写到文件combined_file里去.
echo {file1,file2}\ :{\ A," B",' C'}
file1 : A file1 : B file1 : C file2 : A file2 : B file2 : C
b)花括号括起的代码块可以引起输入输出的I/O重定向
{echo "a" ; echo "b"} > file1
7、 |
管道以新进程方式运行
8、 -
用于stdin或stdout重定向的源或目的
e.g. 当用管道时,对于多参数,就可以用-解决啦,重定向源: grep Linux file1 | diff file2 -
重定向目的: tar -cvf - file1 > file2.tar
感叹号表历史命令
在命令行上,把感叹号"!"放在双引号里执行命令会出错(译者注:比如说:echo "hello!"). 因为感叹号被解释成了一个历史命令. 然而在一个脚本文件里,这么写则是正确的,因为在脚本文件里Bash的历史机制被禁用了。
10、双引号 单引号
使用双引号除了变量名前缀($)、后引符(`)和转义符(\)外,其余均只解释为字面
在单引号内,除了字符',每个特殊字符都只是字面的意思。单引号(全局引用)比双引号(部分引用)更严格的处理引用部分。
若想打印 ‘号: echo \'
echo 'can' \' 't' #can ' t
echo 'can'\''t' #can't
11、转义
\v : 垂直制表符
\a : 蜂鸣声(禁止操作声音)
echo -e “\n” == echo $'\n'
$'\xxx' : 转义字符取值 e.g. ABC=$'\101\102\103\010\t'
出乎意料:
echo \z # z
echo "\z" # \z
echo `echo \\z` # z
echo `echo \\\z` # \z 未转义过的还可加\转义,已转义过的之前\只能输出字面啦
echo `echo "\z"` # \z 双引号一加,就绝对化啦
转义\的赋值
variable=\
23skidoo
echo "$variable" # 23skidoo 这样就能工作,因为\将其后的换行符转义了哦
12、快捷操作