shell作為下linux系統中使用者與核心互動的接口,用于将使用者輸入的指令轉化為核心可以了解的指令,進而通過核心操作硬體資源,完成相應的功能。shell分為兩種,圖形shell和指令行shell。圖形shell主要有kde,gnome等,指令行shell有常見的sh,zsh,csh,bash,ksh,tcsh等。
這裡主介紹最常用的bash的相關特性,作為使用者的工作環境,bash主要具有如下的特性:
1.指令曆史
可以通過history指令檢視使用者輸入過那些指令
2.指令補全
可以通過tab鍵進行指令補全和路徑補全
3.管道 重定向
管道:前一個指令的輸出可以作為後一個指令的輸入。
重定向:将原本指令執行結果的标準輸出(通常是螢幕)重定向到其他地方(如某個檔案當中)。
4.指令别名
對于很長的指令可以通過alias為變量設定别名簡化使用者指令輸入
例如alias ls=ls -lhva
5.指令行編輯
常用的在指令行下用來編輯指令的快捷鍵可以幫助使用者快捷的編輯指令
ctrl+a 跳到指令行首
ctrl+e 跳到指令行尾
ctrl+u 删除光标至指令行首的内容
ctrl+k 删除光标至指令行尾的内容
ctrl+l:清屏
6.指令行展開
通過{}可以展開成多條指令,簡化使用者的輸入。
例如mdir ~/{m,n,/x/z} 等價于
mkdir ~/m
mkdir ~/n
mkdir ~/x/z
7.檔案名比對
具體是通過通配符來實作。
8.變量
變量作為命名的記憶體空間,分為兩類。
系統變量 比如path 指令搜尋路徑
使用者自定義變量
9.程式設計
通過bash可以進行shell程式設計,通過shell腳本可以完成複雜的功能。