日期:2014-05-16 浏览次数:20728 次
1、> file 前面没有命令,shell会创建一个空文件(长度为0个字符),如果文件以前已经存在,其内容就会丢失。 2、一行中可以键入多条命令,命令之间用分好分隔。 3、如果在键入的命令之后跟一个&符号,该命令就发送到后台执行,也就是说,该命令不再占住终端,可以继续处理其他工作。 4、$字符是shell的特殊字符,如果$后跟一个合法的变量名,shell会把它当作在此处用变量所存储的值来替换的指令。表达式可以写为$((expression))。 5、shell变量$#,里面存的是命令行中所键入的参数个数。 6、$*可以引用传递给程序的所有的参数,在参数不确定或者参数数目可变的程序中,通常是很有用的。 "$@" 它会被替换成“$n”,这里$@前后的双引号是必不可少的,如果没有,变量$@和$*完全一样。 7、如果要给一个程序传递9个以上的参数,不能用$10、$11的方法来取第10个以及以后的参数,要用${n}这种格式。 8、shell自动将最后所执行命令的退出状态设置到shell变量$?中。 $cp phonebook phone2 $echo $? $0 0操作成功 非0操作失败 9、内部命令test,它用来在if命令中测试一种或几种条件,格式为 test expression。 -n string 检测string不为空为真 -n string 检测string为空为真 test命令的另外一种模式[expression] -eq 等于 -ge 大于等于 -gt 大于 -le 小于等于 -lt 小于 -ne 不等于 文件判断 -d 为目录 -e 存在 -f 普通文件 -r 可读文件 -s 长度不为0 -w 可写文件 -x 可执行文件 -L 链接文件 逻辑判断 ! 逻辑非 -a 逻辑与 -o 逻辑或 10、小括号格式 \( \) 11、else结构 if command1 then command else command fi 12、内部命令exit 它可以立即终止shell程序的执行。exit n n为希望返回的退出状态,不指定为最后一条命令的退出状态。 13、elif结构 if command1 then command elif command2 then command else command fi 14、case结构 case value in pat1) command command ... command;; pat2) command command ... command;; ... patn) command command ... command;; esac case语句中的特殊字符指定匹配模式: ?表示任一个字符 *表示0或若干个任意字符一个 15、-x 调试程序选项 sh -x 程序名 程序参数 16、空命令 : 其目的是什么也不做,多用于条件语句 17、&&和||结构 && 如果在任何需要shell命令的位置写了 command1 && command2 则先执行command1,如果返回的退出状态为0则执行command2;如果command1返回的退出状态不为0,则跳过command2。 || 结构功能也差不多,区别在于只有当第一条命令的退出状态不为0时才执行第二条命令。 在这种结构的左右两边都可以用管道线。如果用在左边,检测的是管道线中最后一条命令的退出状态。 18、for命令 for var in word1 word2 ... wordn/filenames[1-n]/$* do command command ... done 19、while命令 while command1 do command command ... done while 经常与shift命令共同使用。shift命令使位置变量向下移(即$n到$n-1),并且$#递减。 20、until命令 until command1 do command command ... done 与while模式相反 21、sleep n 程序挂起n秒 22、break n、continue n从循环中退出 23、PATH PATH是执行命令时shell要搜索的目录,这些目录彼此之间用冒号{:}分隔 24、exec 命令 exec program 以新shell代替当前程序?