文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>shell学习

shell学习

时间:2010-04-11  来源:gron

apropos key-word   找到和 key-word 相关的命令。  man -k key-word 也可以做到 whatis commandname   显示该命令的一句话帮助。 commandname. man -a commandname   显示命令的解释信息。 commandname. (Unix style) info   commandname   显示很长的命令解释 commandname. (GNU style) type -a  commandname   显示命令 commandname 的信息。
一: shell 基本 shell 命令解释器 目前流行的shell有ash、bash、ksh、csh、zsh等,你可以用下面的命令来查看你自己的shell类型:   
#echo $SHELL
查看本机器支持的shell
#cat /etc/shells  或 chsh -l 改变用户的默认shell    #chsh  -s /bin/sh USER 可以直接输入  shell-name 
sunOS 默认是 csh,  linux默认是 bash
shell基本语法 输入输出重定向   > >> <  >&s
     管道pipe   |   command1| command2    command1| &command2
     前台和后台  &   ctrl + z   bg   fg    注意有时 shell 退出时 被 bg的程序也会退出, AIX 的shell 需要系统设置 要使用 nohup
     [n]> file     重定向标准输出(或 n)到file。
     [n]>> file    重定向标准输出(或 n)到file。
     [n]< file     将file重定向到标准输入(或 n)。
     [n1]>&n2      重定向标准输出(或 n1)到n2。
     > file >&2    重定向标准输出和错误输出到file。
     | command     将标准输出通过管道传递给command。
     >&2 | command 将标准输出或错误输出通过管道传递给command。
     $ echo Hello >foo
     $ exec 3<foo 4>bar  # 打开文件
     $ cat <&3 >&4       # 重定向标准输入到 3,标准输出到 4
     $ exec 3<&- 4>&-    # 关闭文件
     $ cat bar
     Hello
     n<&- 和 n>&- 表示关闭文件描述符 n。
shell程序的变量和参数 $0      = shell名称或shel脚本名称
     $1      = 第一个(1)shell参数 ... $9      = 第九个(9)shell参数
     $#      = 位置参数的个数
     "$*"    = "$1 $2 $3 $4 ... $n"
     "$@"    = "$1" "$2" "$3" "$4" ... "$n"
     $?      = 最近执行的命令的退出状态
     $$      = 当前shell脚本的PID
     $!      = 最近启动的后台作业的PID
     需要记住的基本扩展参数: Form        If var is set       If var is not set ${var:-string}  $var                string
     ${var:+string}  string              null
     ${var:=string}  $var                string  (并且执行var=string)
     ${var:?string}  $var                (返回string然后退出)
     ${parameter:offset:length}
             Form        Result ${var%suffix}   删除位于var结尾的suffix最小匹配模式
     ${var%%suffix}  删除位于var结尾的suffix最大匹配模式
     ${var#prefix}   删除位于var开头的prefix最小匹配模式
     ${var##prefix}  删除位于var开头的prefix最大匹配模式
     ${!prefix*}
     ${!prefix@}
     ${!name[@]}
     ${!name[*]}
     ${#parameter}
     ${parameter#word} 
     ${parameter##word}
     ${parameter%word}
     ${parameter%%word}
     ${parameter/pattern/string}
     ${parameter//pattern/string}
     $(command) `command`
     $((expression))
shell程序设计的流程控制 test测试命令  man test 条件表达式 command && if_success_run_this_command_too
         command || if_not_success_run_this_command_too if条件语句 man test if list; then list; [ elif list; then list; ] ... [ else list; ] fi if [ ]          if [ ] ; then
             then echo "" elif [ ]
             then echo "" else echo "" fi for循环 for name [ in word ] ; do list ; done
        for (( expr1 ; expr2 ; expr3 )) ; do list ; done select name [ in word ] ; do list ; done
    while和until循环 while list; do list; done
        until list; do list; done case条件选择 case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac case variable in exp-1)     ;;
              exp-2)     ;;
              *)   其他命令行          esac break和continue
    function
      Function name       {           若干命令行       }       调用函数的格式为:       functionname param1 param2…… 命令分组    “()”和“{}”,
    信号  trap
运行shell程序的方法 sh shell程序文件名    该方法的优点是可以利用shell调试功能
    sh<SHELL程序文件名< p>   这种方式就是利用输入重定向,使shell命令解释程序的输入取自指定的程序文件。 用chmod命令使shell程序成为可执行的
bash程序的调试
    -e:如果一个命令失败就立即退出   -n:读入命令但是不执行它们   -u:置换时把未设置的变量看作出错   -v:当读入shell输入行时把它们显示出来   -x:执行命令时把命令和它们的参数显示出来
bash的内部命令 echo
    eval   shell读入参数args,并将它们组合成一个新的命令,然后执行。 exec
    export
    readonly  将一个用户定义的shell变量标识为不可变的。不带任何参数的readonly命令将显示出所有只读的shell变量。 read   从标准输入设备读入一行,分解成若干字,赋值给shell程序内部定义的变量。 shift  shift语句按如下方式重新命名所有的位置参数变量:$2成为$1,$3成为$2……在程序中每使用一次shift语句,都使所有的位置参数依次向左移动一个位置,并使位置参数“$#”减一,直到减到0。 wait  
    exit
    “.”(点)   使shell读入指定的shell程序文件并依次执行文件中的所有语句。
YYMM=$1 expr $YYMM + 1 > /dev/null 2>&1 if [ $? -ne 0 ] then exit fi
.
一: 常用命令 echo -n   不换行 ls  
   -d 将目录象文件一样显示,而不是显示其下的文件。
   -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
   -l 列出文件的详细信息。
   -m 横向输出文件名,并以“,”作分格符。
   -p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通        文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。
   -1 一行只输出一个文件。 cp 
   -f 删除已经存在的目标文件而不提示。
   -i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
   -r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。 rm
   -f 删除已经存在的目标文件而不提示。
   -i 和f选项相反,在删除目标文件之前将给出提示要求用户确认。。
   -r 若给出的源文件是一目录文件,此时rm 将递归删除该目录下所有的子目录和文件。 mkdir
   -p  创建丢失中间路径名称目录
   -m  标志为新的目录指定许可权
   mkdir -p -m $(umask -S),u+wx $(dirname Directory) && chown chgrp groupadd useradd alias locate basename dirname
paste
   -d List 用指定在 List 参数(缺省是制表符)中的一个或多个字符来更改分隔输出中相应行的定界符。 join diff comm sort
   -k [ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ] [+[FSkip1] [.CSkip1] [Modifier] ] [-[FSkip2] [.CSkip2] [Modifier]]
   -n 按算术值对数字字段排序。数字字段可包含前导空格、可选减号、十进制数字、千分位分隔符和可选基数符。对包含任何非数字字符的字段进行数字排序会出现无法预知的结果。 o OutFile 将输出指向 OutFile 参数指定的文件,而不是标准输出。OutFile 参数值可以与 File 参数值相同。
   -r 颠倒指定排序的顺序。
   -T Directory 将创建的所有临时文件放入 Directory 参数指定的目录中。 uniq 
   -c 在输出行前面加上每行在输入文件中出现的次数。
   -d 仅显示重复行。
   -u 仅显示不重复的行。 cat head tail tac cut wc grep sed tr awk
expect perl
lsof nc
zcat tar gzip gunzip bzip2
bc dc expr find xargs let seq
vim  %!command
ar date mc nm
seq 1000|factor|cut -f2 -d' '|sort -n |uniq 求1000以内的素数
相关阅读 更多 +
排行榜 更多 +
扑击萌兽大逃亡手游下载

扑击萌兽大逃亡手游下载

休闲益智 下载
gate交易平台app免费版

gate交易平台app免费版

金融理财 下载
Uniswap中文版app安卓版

Uniswap中文版app安卓版

金融理财 下载