bash及其特性:
shell: 外殼
GUI:Gnome, KDE, Xfce
CLI: sh, csh, ksh, bash, tcsh, zsh
Linux允許同一個用戶登錄多次
root, student
程序:進程
進程:在每個進程看來,當前主機上只存在內核和當前進程
進程是程序的副本,進程是程序執行實例
用戶工作環境:
bash:
#
$
shell,子shell
bash--bash
命令行編輯:
光標跳轉:
Ctrl+a:跳到命令行首
Ctrl+e:跳到命令行尾
Ctrl+u: 刪除光標至命令行首的內容
Ctrl+k: 刪除光標至命令行尾的內容
Ctrl+l: 清屏
令歷史特性: history
shell進程會其會話中保存此前用戶提交執行過的命令
history是shell的內置命令
1. 命令語法格式:
history [-c] [-d OFFSET] [n]
history -anrw [FILENAME]
history -ps VALUE [VALUE...]
-c: 清空命令歷史;
-d offset(偏移量):刪除指定命令歷史,offset爲history顯示出來的命令數字
-r: 從文件讀取命令歷史至歷史列表中;
-w:把歷史列表中的命令追加至歷史文件中;
history #:顯示最近的#條命令;
環境變量:PATH:命令搜索路徑
HISTSIZE :命令歷史緩衝區大小(echo $HISTSIZE)
對命令歷史常用的用法:
!n :執行命令歷史中的第n條命令
!-n :執行命令歷史中的倒數第n條命令
!! :執行上一條命令
!string :執行命令歷史中最近一個以指定字符串開頭的命令
!$:引用上一個命令的最後一個參數 =Esc+.和Alt+.
命令補全:Tab鍵
路徑補全:Tab鍵
命令別名:
#alias CMDALIAS(命令別名)=COMMAND(命令)
在shell中定義的別名僅在當前shell生命週期中有效;別名的有效範圍僅爲當前shell進程。
#alias 查看當前所有定義的命令別名。
#unalias cmdalias
#\CMD 使用不帶參數的命令自身。
命令替換:$(command), 反引號:`command`
把命令中某個子命令替換爲其執行結果的過程
例:創建一個文件文件名爲file-當前時間.txt # touch file-$(date +%F-%H-%M-%S).txt
例:打印當前目錄:#echo “The current directory is $(pwd).”
文件名統配:
*:任意長度的任意字符
?:任意單個字符
[]: 匹配指定範圍內的任意單個字符
[abc] ,[a-z],[A-Z],[0-9],[a-zA-Z],[0-9a-zA-Z]
[:space:]:空白字符
[:punct:]:標點字符
[:lower:]:小寫字母
[:upper:]:大寫字母
[:alpha:]:大小寫字母
[:digit:]:數字
[:alnum:]:數字和大小寫字母
# man 7 glob 獲得以上列表說明
[^]:匹配指定範圍外的任意字符