shell讲解
一、用户登陆进入系统后的系统环境变量$HOME 使用者自己的目录 $PATH 执行命令时所搜寻的目录 $TZ 时区 $MAILCHECK 每隔多少秒检查是否有新的信件 $PS1 在命令列时的提示号 $PS2 当命令尚未打完时,Shell 要求再输入时的提示号 $MANPATH man 指令的搜寻路径 二、特殊变量 $0 这个程序的执行名字 $n 这个程序的第n个参数值,n=1..9 $* 这个程序的所有参数 $# 这个程序的参数个数 $$ 这个程序的PID $! 执行上一个指令的PID $? 执行上一个指令的返回值三、shell中的变元 * 任意字符串之前的那个普通字条. 任意字条^ 行首$ 行尾+ 一个或多个之前的普通字符 ? 0个或1个之前的普通字条| 表示或() 表示一个字条集合 a, b, c三者中之一 从a到n的任一字符 四、几个特殊字符表示 \b 退回 \c 打印一行时没有换行符 \f 换页 \r 回车 \t 制表 \v 垂直制表 \\ 反斜线本身 五、判断文件的属性 格式:-操作符 filename -e 文件存在返回1, 否则返回0 -r 文件可读返回1,否则返回0 -w 文件可写返回1,否则返回0 -x 文件可执行返回1,否则返回0 -o 文件属于用户本人返回1, 否则返回0 -z 文件长度为0返回1, 否则返回0. -f 文件为普通文件返回1, 否则返回0 -d 文件为目录文件时返回1, 否则返回0 六、测试两个整数关系 数字1 -eq 数字2 两数相等为真 数字1 -ne 数字2 两数不等为真 数字1 -gt 数字2 数字1大于数字2为真 数字1 -ge 数字2 数字1大于等于数字2为真 数字1 -lt 数字2 数字1小于数字2为真 数字1 -le 数字2 数字1小于等于数字2为真七、逻辑测试 -a 与 -o 或 ! 非八、shell中特殊字符 1、$ 美元符 2、\ 反斜杠 3、` 反引号 4、" 双引号 5、< ,>,*,?,[,] 举列说明 1、echo $? 显示的是上一条指令退出状态 2、echo "$?" 效果同上 3、echo '$?' 显示的是$? 4、echo \$? 显示的是$? 5、echo "\$?" 显示的是$?$符号双引号对$符号不起作用单引号可以将特殊字符的的特殊意义屏蔽掉反斜杠也可以将特殊字符的特殊含义屏蔽掉 \ 反斜杠反斜杠的作用是将特殊符号字符的特殊含义屏蔽掉A=1234 echo \$A 显示为$A 如果不加\将显示为1234 echo \` 显示为` echo \" 显示为双引号 echo \\ 显示为\` 反引号反引号的功能是命令替换,将反引号中的字符串做为命令来执行。A=`date` echo $A 显示的不是date而是当时的时间串如有一文件A的内容如下 ABCDEFG 1234456 abcdefg B=`cat A|grep 234` # 检索文件A中含有字符串234的行 echo $B 将显示为1234456 echo "$B" 将显示为123456echo "\$B" $B" 双引号在系统中有些特殊字符,为避免引用这些特殊字符 往往用双引号或单引号将这些特殊字符引起来,使其不具有特殊含义。 但有一部分特殊字符在引号中还是具有特殊含义,用双引号引起来是不起作用的。本文中所列的前四个特殊字符在双引号中还是特殊字符。为了使其不具有特殊含义一是用单引号引进来二是用\反斜线使其失去作用。 我们想输出这些特殊字符 " $ \ ` echo """ echo "$" echo "\" echo "`" 但是如上不能帮你完成,我们可以使用如下的命令完成echo "\"" echo "\$" echo "\\" echo "\`"
页:
[1]