1. 程式人生 > >linux初級學習筆記五:bash特性詳解!(視頻序號:03_2,3)

linux初級學習筆記五:bash特性詳解!(視頻序號:03_2,3)

可執行文件 文件名通配符 內核 引用 完成 -c family man 文件

本節學習的命令:history,alias,ualias,\CMD

本節學習的技能:

       bash的特性
      光標跳轉
      查看命令歷史
      命令歷史的使用技巧
      給命令起別名
      命令替換
      文件名通配符

shell: 外殼

  GUI:Gnome, KDE, Xfce

  CLI: sh, csh, ksh, bash, tcsh, zsh

  進程:在每個進程看來,當前主機上只存在內核和當前進程

  進程是程序的副本,進程是程序執行實例

用戶工作環境

bash:

#:管理員命令提示符

$:普通用戶命令提示符

bash的特性:

  1、命令歷史、命令補全

  2、管道、重定向

  3、命令別名

  4、命令行編輯

  5、命令行展開

  6、文件名通配

  7、變量

  8、編程

命令行編輯

光標跳轉

Ctrl+a:跳到命令行首

Ctrl+e:跳到命令行尾

Ctrl+u: 刪除光標至命令行首的內容

Ctrl+k: 刪除光標至命令行尾的內容

Ctrl+l: 清屏

命令歷史

  history:查看命令歷史

   -c:清空命令歷史

   -d OFFSET [n]: 刪除指定位置的命令

   -w:保存命令歷史至歷史文件中

環境變量

  PATH:命令搜索路徑

  HISTSIZE: 命令歷史緩沖區大小(可以用‘echo $HISTSIZE’查看)

命令歷史的使用技巧

  !n:執行命令歷史中的第n條命令;

  !-n:執行命令歷史中的倒數第n條命令;

  !!: 執行上一條命令;

  !string:執行命令歷史中最近一個以指定字符串開頭的命令

  !$:引用前一個命令的最後一個參數,或使用“Esc + .” ;

文本相關的命令

  查看:cat, tac, more, less, head, tail

  統計:wc

  處理:tr, cut, join

  排序:sort

  Uniq

命令補全,路徑補全

  命令補全:搜索PATH環境變量所指定的每個路徑下以我們給出的字符串開頭的可執行文件,如果多於一個,兩次tab,可以給出列表;否則將直接補全;

  路徑補全:搜索我們給出的起始路徑下的每個文件名,並試圖補全;

命令起別名

  alias CMDALIAS=‘COMMAND [options] [arguments]‘

  在shell中定義的別名僅在當前shell生命周期中有效;別名的有效範圍僅為當前shell進程;

  alias :顯示當前所有起別名的命令

  ualias CMDALIAS :撤銷命令別名

  type COMMAND:查看命令是不是綁定附加參數

  \CMD:使用有參數命令的原有屬性

命令替換: $(COMMAND), 反引號:`COMMAND`

  把命令中某個子命令替換為其執行結果的過程

bash支持的引號

  ``: 命令替換

  "": 弱引用,可以實現變量替換

  ‘‘: 強引用,不完成變量替換

文件名通配, globbing

  *: 任意長度的任意字符

  ?:任意單個字符

  []:匹配指定範圍內的任意單個字符

[abc], [a-m], [a-z], [A-Z], [0-9], [a-zA-Z], [0-9a-zA-Z]

   [:space:]:空白字符

   [:punct:]:標點符號

   [:lower:]:小寫字母

   [:upper:]: 大寫字母

   [:alpha:]: 大小寫字母

   [:digit:]: 數字

   [:alnum:]: 數字和大小寫字母

   獲取這些列表的方法: man 7 glob(我沒成功)

  [^]: 匹配指定範圍之外的任意單個字符

  [[:alpha:]]*[[:space:]]*[[:alpha:]]:獲取以字母開頭,字母結尾,中間有空格的文件

  [[:alpha:]]*[[:space:]]*[^[:alpha:]]:獲取以字母開頭,非字母結尾,中間有空格的文件

練習:

1、創建a123, cd6, c78m, c1 my, m.z, k 67, 8yu, 789等文件;註意,以上文件是以逗號隔開的,其它符號都是文件名的組成部分;

2、顯示所有以a或m開頭的文件;

  ls [am]*

3、顯示所有文件名中包含了數字的文件;

  ls *[0-9]*

  ls *[[:digit:]]*

4、顯示所有以數字結尾且文件名中不包含空白的文件;

  ls *[^[:space:]]*[0-9] ?????????

5、顯示文件名中包含了非字母或數字的特殊符號的文件;

  ls *[^[:alnum:]]*

linux初級學習筆記五:bash特性詳解!(視頻序號:03_2,3)