LouZhang

导航

认识与学习bash(2)

1. stty   stty -a 列出目前环境中所有的按键列表

          ctrl+c 终止目前命令

      ctrl+d 输入结束(EOF),例如邮件结束的时候

      ctrl+m 就是Enter

      ctrl+s 暂停屏幕的输出

      ctrl+q 恢复屏幕的输出

      ctrl+u 在提示符下,将事先命令删除

      ctrl+z 暂停目前的命令

2. 通配符

  * 代表0到无穷多个任意字符

  ? 代表一定有一个字符

  [] 例如[abcd]代表一定有a b c d 中的一个字符

  [-] 例如[0-9]代表0到9之间的数字

  [^] 例如[^abc]代表一定有一个字符,只要是非a b c 的其他字符就接受的意思

  # 批注释符,最常用于script中,视为说明,其后的数据均不执行

  \ 转义符号 

  | 管道

  ; 连续命令

  ~ 用户主文件夹

  $ 使用变量前导符,即是变量之前需要加的变量替代值

  / 目录符号

  >,>> 数据流重定向,分别是 替换 和 累加

  <,<< 数据流重定向,导出

  '' 单引号,不具有变量置换的功能

  “” 双引号,具有变量置换的功能

  `` 反单引号,中间的命令可以先执行

  () 在中间为shell的起始与结束

  {} 在中间为命令块的组合

3.  1> 以覆盖的方法将正确的数据输出到指定的文件或设备上

   1>> 以累加的方法将正确的数据输出到指定的文件或设备上

   2> 以覆盖的方法将错误的数据输出到指定的文件或设备上

   2>> 以累加的方法将错误的数据输出到指定的文件或设备上

4. || &&

  cmd1 && cmd2 表示若cmd1执行完毕且正确执行(&?=0),则开始执行cmd2

            若cmd1执行完毕且错误(&?!=0),则cmd2不执行

  cmd1 !! cmd2 表示若cmd1执行完毕且正确执行(&?=0),则cmd2不执行

            若cmd1执行完毕且错误(&?!=0),则开始执行cmd2

5. 管道命令

  ls -al /etc | less 这样就可以慢慢查看内容了,而不会导致将屏幕塞满

  1) cut -d 接分隔字符,与 -f 一起用

    -f 取第几段的意思

    -c 以字符的单位取出固定字符区间

    例如: echo $PATH |cut -d ':' -f 5

  2) grep -a 将binary文件以text文件的方式查找数据

      -c 计算找到‘查找字符串’的次数

      -i 忽略大小写的不同,所以大小写视为相同

      -n 输出行号

      -v 输出没有'查找字符串'内容的那一行

      --color=auto 将查找到的关键字加上颜色显示

    例如: last | grep 'root' | cut -d ' ' -f 1

  3) sort -f 忽略大小写

      -b 忽略最前面的空格符部分

      -M 以月份的名字来排序例如 JAN, DEC等的排序方法

      -n 使用“纯数字”进行排序

      -r 反向排序

      -u 就是uniq,相同的数据中,仅出现一行代表

      -t 分隔符,默认是用[Tab]键来分隔

      -k 以那个区间来进行排序的意思

      例如: cat /etc/passwd | sort -t ':' -k 3

  4) uniq -i 忽略大小写

      -c 进行读数

      例如: last | cut -d ' ' -f 1 | sort | uniq -c

  5) tr, col, join, paste, expand

posted on 2012-11-22 13:12  louzhang_swk  阅读(213)  评论(0编辑  收藏  举报