菜鳥學Linux 第008篇筆記 bash及其特性
bash 及其特性:
shell: 外殼(是一個可執行程式)
GUI: Gnome, KDE, Xfce
CLI: sh, csh, ksh(付費和社群版), bash, tcsh, zsh(不是特别流行)
shell,子shell
shell設定,對子shell無效(反之亦然)
程式隻有一個,程序可以有多個 程序(程序名可以同名)是程式的副本(僅作了解)
bash特性:可以自定義工作環境(預設相同)
1、指令行編輯
2、指令曆史
3、路徑/指令補全
4、指令别名
5、指令替換
6、檔案名通配
7、變量
8、程式設計(shell腳本)
9、管道、重定向
10、指令行展開
……等等
Detail
指令行編輯
光标:
Ctrl+a:行首
Ctrl+e:行尾
Ctrl+u: 删除光标至行首
Ctrl+k: 删除光标至行尾
Ctrl+l: 清屏
指令曆史:
檢視指令曆史:history
-c 清空指令曆史
-d offset [n]删除指定位置的曆史指令
-w 儲存指令曆史至曆史檔案中(每個使用者家目錄隐藏檔案.bash_history)
指令曆史使用技巧
!n 執行指令曆史中第N條指令
!-n 執行指令曆史中倒數第N條指令
!! 執行上一條指令
!string 執行指令曆史中最近一個以指定字元串開頭的指令
!$ 引用前一個指令的最後一個參數
按完Esc 後再按. 也可引用上一個參數
Alt+. 同上
指令補全
搜尋PATH環境變量所指定的每個路徑下以我們給出的字元串開關的可執行檔案,如果多于一個,按兩次TAB,可以給出可選執行指令檔案清單,否則直接補全。
路徑補全
搜尋我們所給出的起始路徑下的每個檔案名,并試圖補全。
指令别名
alias commandalias='COMMAND [options] [arguments]' 定義别名僅在目前shell的生命周期有效
alias 不加任何參數顯示已經定義好的别名清單
unalias aliasname 取消定義的别名
指令替換 $() ``反引号,波浪線上的
把指令中某個子指令替換為其執行結果的過程
touch ./file-$(date +%F-%H-%M-%S).txt 先執行date指令将執行結果傳回做touch建立檔案用的名字
檔案名通配,globbing
* 比對任意長度的任意字元
?比對任意一個字元
[] 比對指定範圍内的任意單個字元 [abc] [a-m] [a-z] [A-Z] [0-9]
[:space:] [:punct:] [:lower:] [:upper:] [:alpha:] [:digit:] [:alnum:]
[^] 比對指定範圍外的任意單個字元
bash支援的引号
``:指令替換
"":弱引用,可以實作變量替換
'':強引用,不完成變量替換
環境變量
PATH: 指令搜尋路徑
HISTORY: 指令曆史大小(預設1000)
本文轉自Winthcloud部落格51CTO部落格,原文連結http://blog.51cto.com/winthcloud/1859709如需轉載請自行聯系原作者
Winthcloud