bash shell
命令的記錄功能:
bash shell老是記錄上次登入shell時所執行的命令,這些命令都記錄在.bash_history,而此次登入shell後所執行的命令都記錄在內存中,當退出shell的時候,將此次登入shell後執行的命令寫入.bash_history文件。(默承認以記憶1000個命令)
命令與文件名補全功能:
雙擊兩次tab鍵就會自動補全文件名或命令。
命令別名設置功能:
例: alias lm='ls -al';那麼以後運行lm,至關於執行 ls -al.
程序化腳本:
能夠將要運行的命令集合都寫在一個文件中,而後交給bash shell運行,這個文件就是shell腳本。
linux
shell的環境變量
當登陸進入linux系統,用戶就會獲得一個bash的應用程序,負責與linux系統進行交互,既然bash是一個應用程序,那麼在bash運行以前,須要一些參數,而這些參數就是當前運行bash的環境變量,通常環境變量都使用大寫,如PATH,MAIL,SHELL。shell
自定義變量
1.設定變量
myName=hujingwei //設定了一個值爲"hujingwei"的myName變量
注:等號兩邊不能直接接空格,若變量內容有空格,可使用單引號或雙引號將內容結合起來。
雙引號:(特殊字符會保持原有的特性)
var="lang is $LANG"
echo $var //lang is en_US
單引號:(全部的特殊字符都將做爲通常字符處理)
var='lang is $LANG'
echo $var //lang is $LANG
2.在一串指令中還須要其餘指令提供信息,可以使用反單引號或$(指令)。以下:
version=$(uname -r)
echo $version //2.6.18-128.el5
3.能夠經過export將自定義變量變成環境變量,供子程序使用。
export myName;
那麼myName就會變爲當前這個shell程序的環境變量,若是在這個程序中再啓動一個shell程序,那麼新啓動的shell就是以前shell的子shell,那麼這個子shell在初始化的時候,環境變量中就直接包含了myName變量。通常狀況下,父程序自定義的變量,子程序是沒法使用的,可是有了export,父程序定義的變量,子程序也可使用了。
4.取消變量
若是不想使用myName變量了,以下:
unset myName
在bash中,反單引號的意思是,反單引號內的命令先執行,例如:
ls -l `locate crontab`
locate指令能夠列出全部文件的文件名,因此上面的命令就是先使用locate指令列出全部文件的文件名,而後再使用ls指令列出各個文件的權限。bash
若是想要查看bash的環境變量,就使用env、export命令便可。
set指令用於觀察全部的變量(包含環境變量和自定義變量)。less
$自己也是一個變量,表明目前這個shell的進程代號,也就是PID。
?表明執行上個指令的回傳值,若是執行成功,則會回傳一個0值,若是執行後錯誤,則回傳一個非0值。進程
當登陸進入linux並取得一個bash以後,當前bash就是一個獨立的程序,接下來在這個bash底下下達的任何指令都是這個bash衍生出來的,那些被下達的指令就是子程序。crontab
命令的執行順序:
1.以相對路徑/絕對路徑執行指令,例如[/bin/ls]或[./ls]
2.由alias找到該指令來執行
3.由bash內建的命令來執行
4.經過$PATH這個變量的順序搜索到第一個指令來執行。內存
讀取配置文件,如下命令是同樣的:
source ~/.bashrc
. ~/.bashrcio
管道命令:
例: ls -al /etc|less
管道命令由"|"分割,後一個命令只能接收前一個命令執行成功時,本該打印在屏幕上的信息做爲自身的輸入數據,若是前一個命令執行失敗,那麼後一個命令的輸入就爲空。登錄
擷取命令:cut、grep變量