z7369 发表于 2018-8-23 11:17:59

shell基础(一)

  shell基础(一)
  * 代表零个或者多个任意字符
  ?代表一个任意字符
  # 注释符号,注释说明的意思,即#后面的内容Linux忽略掉,或者是在shell脚本中作解释符号、解释说明用,用在需要说明注释的文字行首
  \ 脱意字符,将后面的特殊符号(例如*)还原为普通字符,例子如下:
  #ls -d test\*
  无法访问test*:没有那个文件或目录
  | 管道符,将前面的命令的结果丢给符号后面的命令。
  需要注意的是:后面的命令,并非所有命令都可以,一般针对文档操作的命令比较常用,例如
  cat,less,head,tail,grep,cut,sort,wc,uniq,tee,tr,split,sed,awk等等。
  其中grep,sed,awk 为正则表达式必须掌握的工具。
  例子:#cat testb.txt |wc -l
  0
  wc -l 用来计算一个文档有多少行。
  $ 特殊符号
  用于变量前面的标识符号,$PATH $HOME
  和!一起使用,#!$ 上条命令中最后一个参数,就是上条命令中最后出现的东西如路径、文件名等等。
  ; 特殊符号
  可以在一行运行多条命令
  #ls -d test*; touch test111; ls-d test*
  test1 test2
  test1 test2 test111
  ~ 特殊符号
  用户的家目录,如果是root则是/root,普通用户/home/username
  & 特殊符号
  把命令放到后台执行,需要加上这个符号。通常用于命令运行时间比较长的情况。
  #sleep 30 &
   3260
  #jobs
  + running sleep 30 &
  > >> 2> 2>> < 重定向符号
  > 重定向
  >> 追加重定向
  2> 错误重定向
  2>> 错误追加重定向
  < 反向重定向
  反向重定向,会将右边的文档的内容,重定向给左边的这个命令,比如 # wc -l < 1.txt
  当运行一条命令报错时,报错信息会输入到当前屏幕,如果想重定向到一个文本里,则要用2>和2>>。
  #ls aaa
  没有那个文件或目录
  #ls aaa 2>/tmp/error
  #cat /tmp/error
  没有那个文件或目录
  [ ] 中括号
  中间为字符组合,代表中间字符中的任意一个。括号内只能是完全匹配,不可以使用*
  #ls -d test*
  test1 test2 test3 testa testb testc
  #ls -d test
  test1 test2 test3
  #ls -d test
  test1 test3 testa
  #ls -d test
  test1 test2 test3
  #ls -d test
  test1 test2 test3 testa testb testc

页: [1]
查看完整版本: shell基础(一)