鸟哥的Linux私房菜 第十一章 认识与学习 BASH

Bash Shell的操作环境

  路径与指令搜寻顺序:

    1 以绝对/相对路径执行指令

    2 由alias找到该指令来执行

    3 由bash内建的指令来执行

    4 透过$PATH这个变数的顺序搜寻到的第一个指令来执行

  type -a ls可以查询指令搜寻的顺序

 

bash的环境设定档

  两种环境:

    1 login shell :取得bash时需要完整的登入流程,就称为login shell

      2 non-login shell:取得bash界面的方法不需要重复登入的举动,

      1 以x window登入linux后,再以X的图形化界面启动终端机,没有输入账号和密码,这个环境就是non-login shell

      2 在原本bash环境下再次下达bash这个指令,也没有输入账号密码,第二个bash也是non-login shell

  login shell 会读取两个设定档

    1 /etc/profile:这是系统整体的设定,最好不要修改这个档案

    2 ~/.bash_profile或~/.bash_login或~/.profile:属于使用者个人设定

    如果你将自己的偏好设定写入上述的档案后,通常都是得登出再登入后,该设定才会生效。

    利用 source 或小数点 (.) 都可以将设定档的内容读进来目前的 shell 环境中

  non-login shell会读取的设定档:

    ~/.bashrc

  其他相关设定档:

    /etc/man.config:规范了使用man的时候,man page的路径到哪里去寻找

    ~/.bash_history:历史命令的记录

    ~/.bash_logout:当等出bash后,系统再执行什么动作

 

资料流重导向

  资料流重导向就是将某个指令执行后应该要出现在屏幕上的资料,传输到其他的地方:

    标准输入  (stdin) :代码为 0 ,使用 < 或 << ;

    标准输出  (stdout):代码为 1 ,使用 > 或 >> ;

    标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ; 

  在标准输出和标准错误输出时,>代表覆盖,>>该表累加

  /dev/null 垃圾桶黑洞装置与特殊写法:可以丢弃任何导向这个装置的信息

  > list 2>&1 或者 &> list:正确和错误资料都写入一个档案

  在标准输入中,<代表,原本需要由键盘输入的资料,改由档案内容来取代,<<代表输入之后的字母,本次输入就结束了

 

命令执行的判断依据: ; , &&, ||

  cmd ; cmd   可以一次执行多个指令

  cmd1 && cmd2   cmd1正确,则执行cmd2;cmd1错误,不执行cmd2

  cmd1 || cmd2     cmd1正确,不执行cmd2;cmd1错误,执行cmd2

 

 

 

管线命令

  "|" 仅能处理经由前面一个指令传来的正确资讯

    管线命令仅会处理standard output,对于standard error output会予以忽略

    管线命令必须要能够接受来自前一个指令的资料成为standard input继续处理才行

 

  cut:将一段讯息的某一段给他‘切’出来

    cut -d'分隔字元' -f fields 

    cut -c 字元区间  

      选项与参数: -d :后面接分隔字元。与 -f 一起使用;

      -f :依据 -d 的分隔字元将一段讯息分割成为数段,用 -f 取出第几段的意思;

      -c :以字元 (characters) 的单位取出固定字元区间;

    例子:

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

      export | cut -c 12-

 

 

  grep:分析一行讯息, 若当中有我们所需要的资讯,就将该行拿出来

    grep [-acinv] [--color=auto] '搜寻字串' filename

    选项与参数:

      -a :将 binary 档案以 text 档案的方式搜寻资料

      -c :计算找到 '搜寻字串' 的次数

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

      -n :顺便输出行号

      -v :反向选择,亦即显示出没有 '搜寻字串' 内容的那一行!

      --color=auto :可以将找到的关键字部分加上颜色的显示喔!

 

    例子:

      last | grep 'root'

 

  排序命令: sort, wc, uniq

    sort [-fbMnrtuk] [file or stdin]

    选项与参数:

      -f :忽略大小写的差异,例如 A 与 a 视为编码相同;

      -b :忽略最前面的空白字元部分;

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

      -n :使用‘纯数字’进行排序(预设是以文字型态来排序的);

      -r :反向排序;

      -u :就是 uniq ,相同的资料中,仅出现一行代表;

      -t :分隔符号,预设是用 [tab] 键来分隔;

      -k :以那个区间 (field) 来进行排序的意思

 

    uniq [-ic]

    选项与参数:

      -i :忽略大小写字元的不同;

      -c :进行计数

 

    wc [-lwm]

    选项与参数:

      -l :仅列出行;

      -w :仅列出多少字(英文单字);

      -m :多少字元;

 

 

  双向重导向: tee

    tee 会同时将资料流分送到档案去与荧幕

 

posted @ 2014-12-08 10:50  褐色键盘  阅读(128)  评论(0)    收藏  举报