Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2168800
  • 博文数量: 317
  • 博客积分: 5670
  • 博客等级: 大校
  • 技术积分: 3677
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-10 17:51
文章分类

全部博文(317)

文章存档

2016年(2)

2015年(44)

2014年(68)

2013年(42)

2012年(23)

2011年(51)

2010年(67)

2009年(17)

2008年(3)

分类: LINUX

2010-04-11 15:00:10

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 3bar  # 打开文件
     $ 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命令解释程序的输入取自指定的程序文件。 用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以内的素数
阅读(1530) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~