shell從廣義上分為兩類: GUI:GNOME KDE XFACE等 CLI:sh csh bash shell啟動:當用戶登錄完成後,系統會自動啟動shelll程式 進程:應用程式的副本,用PID區分(在系統中,進程只認為自己存在) root student用戶 shell:父shell程式和子 ...
shell從廣義上分為兩類:
- GUI:GNOME KDE XFACE等
- CLI:sh csh bash
shell啟動:當用戶登錄完成後,系統會自動啟動shelll程式
進程:應用程式的副本,用PID區分(在系統中,進程只認為自己存在)
root student用戶
shell:父shell程式和子shell程式(父子shell之間設置環境互相獨立)
# cat /etc/shells //查看支持哪些shell
# yum -y install ksh csh
#exit//退出當前shell
shell是一個程式
bash的特性:
- 命令歷史history:Linux會自動記錄系統過去執行的命令,並保存在記憶體的緩衝區中,
- 在每個用戶的家目錄下,有個隱藏文件.bash_history保存命令歷史
-c:清空命令歷史
-d:刪除某一條命令歷史
-w:將命令歷史保存到某個文件中
變數:PATH命令路徑變數
HISTSIZE:命令歷史大小變數
# echo HISTSIZE//查看HISTSIZE(命令歷史大小)變數的值,預設1000
- !n:執行命令歷史中的第n個命令
- !-n:倒數第n個命令
- !Word:執行命令歷史中最近一個匹配的命令
- !!:執行上一條命令
- !$:引用一個命令的最後一個參數
- esc+.:引用一個命令的最後一個參數
管道,重定向
命令別名(alias定義的別名只在當前shell生效)
alias comm_alias=command
unalias comm_alias//取消別名
註意:執行alias命令時,command最好用‘’標識出來
# alias cdnet='cd /etc/sysconfig/network-scripts'
命令行編輯
- ctrl+a:命令行行首
- ctrl+e:命令行行尾
- ctrl+u:刪除游標到行首
- ctrl+k:刪除游標到行尾
- ctrl+l:清屏
命令行展開
命令補齊:在PATH變數搜索命令並補齊(PATH變數必須正常)
路徑和文件補齊:(在系統路徑中查找)
命令替換:把命令中的子命令替換為子命令執行結果的過程
$(command)或者`command`
# echo "Dirctory is $(pwd)"
“”:弱引用,實現變數的替換,將變數的名字編程變數值
‘’:強引用,不能實現變數的替換
命令行通配:globbing
*:匹配任意長度的任意字元
?:匹配任意單個字元
[]:匹配指定範圍內的任意單個字元
[ab][a-m][a-Z][A-Z][a-zA-Z][0-9][a-zA-Z0-9]
[^]:匹配指定範圍外的任意單個字元
[:space:]:表示空格
[:punct:]:表示所有標點
[:lower:]:表示所有小寫字母
[:upper:]:表示所有大寫字母
[:alpha:]:表示所有字母(包括大小寫)
[:dgit:]:表示所有的數字
[:alnum:]:表示所有數字和大小寫字母