读书笔记:
1.“使用保留字”:Shell 有一些具有特殊意义的字,例如Shell脚本中,do,done,for 等字用来控制循环操作,if,then,等控制条件操作。保留字随Shell环境的不同而不同。
 
2.“通配符”: *  匹配任何位置 
                                ?匹配单个字符
                               [ ]  匹配的字符范围或列表 例如:
                       
                                     $ls [a-c]*  将列出以a-c范围内字符开头的所有文件。
                                     $ ls [a,m,t]*  将列出以e,m或t 开头的所有文件。
3.“程序命令”: “输入输出重定向及管道”
 
                                 ">" 重定向输出
                                 "<" 重定向输入
 而管道符号,是unix功能强大的一个地方,符号是一条竖线“|”用法:
 command 1 | command 2 他的功能是把第一个命令command1 执行的结果作为command2的输入传给command2 例如
 
                 $ls -s | sort -nr | pg     {pg俺没事出啥功能} 是不是跟sed 那里的pg 意思一样?
 
该命令是列出当前目录下的所有文件和文件的大小,并把输出送给sort命令作为输入,sort命令按照数字的递减的顺序把ls的输出排序。
 
 
4.“维护变量”: Shell可以维护一些变量。变量中存放一些数据供以后使用。用户可以用“=”给量赋值,如:
                        
                        $lookup=/usr/mydir
该命令建立一个为lookup的变量并给其赋值/usr/mydir,以后用户可以在命令行中使用lookup来代替/usr/mydir,例如:
 
                        $echo    $lookup
                 结果显示:/usr/mydir
 
为了使变量能被子进程使用,可用export命令 例如:
   $lookup=/usr/mydir
  export lookup
 
 
 
 
>Shell变量
 
Shell变量名使用的特殊字符
$# 传送给命令Shell的参数序号
$-在Shell启动或使用set命令时提供选项
$?上一条命令执行后返回的值
$$当前Shell的进程号
$!上一个子进程的进程号
$@ 所有参数,每个都用双括号括起
$* 所有参数,有双括号括起
$n 位置参数值,n表示位置
$0 当前shell名
 
>产生文件名的特殊字符
   “  *  ”  匹配所有
   “  ?  ”  匹配单个字符
   “ [  ] ” 匹配字符范围或列表
 
>数据或程序控制使用的特殊字符
       >file      输出重定向到文件中(没有文件则创建,有则覆盖)
      >>file     输出重定向到文件中(没有文件则创建,有则追加到文件尾部)
      <  flie     输入重定向的文件
      ;              命令分割符
      |             管道
      &         后台运行
     `  `         命令替换,重定向一条命令的输出作为另一命令的参数
      *>       对于引用 或逃逸的特殊字符
     Shell 的逃逸符是  \
     ""   意思描述不清楚 举个例子吧。
      ' '