1、給命令起別名:alias
執行下面命令后,可以使用dir代替ls –l 命令,顯示目錄中的文件詳細信息:
還可以用一個別名表示幾個命令 的結合:
2、ps:顯示當前登錄會話的所有活動進程:
3、更改默認shell:chsh
chsh命令沒有預安裝,執行時,需要先聯網安裝。
執行chsh命令,過一會兒就會提示該命令找不到,是否要進行安裝,輸入y,即可下載包進行安裝:
命令安裝完了之后,再次執行chsh命令,即可為當前用戶更改shell,輸入新的shell即可實現更改。
查看環境變量SHELL或者查看/ect/passwd文件,即可發現當前用戶使用的shell類型已更改:
4、echo命令
echo命令用於在屏幕上顯示消息:
Echo命令顯示文本,會在文本末尾放置一個新行字符,新行字符會在顯示文本后將光標移動到下一行。
使用選項-n可以將光標保持在同一行:
5、創建shell腳本
Shell腳本文件是一個文件,所以可以使用文本編輯器進行操作。
下面我們創建一個shell腳本文件,文件名為hello.sh。在Linux中,文件類型不重要,或者可以說沒有文件類型的概念。想要該文件是shell腳本文件,我們只要在文件里書寫的是shell命令就可以了。
在命令提示符時候,執行vi hello.sh
打開文件編輯后,編寫shell命令:
#! 字符必須是shell腳本的前兩個字符,用來告訴系統它后面的參數是用來執行該文件程序。
在shell腳本里,#是注釋符號。我們要養成良好的寫注釋的習慣。
Shell腳本執行有三種方式:
A、sh/bash shell腳本文件名
將文件名作為shell命令sh/bash的參數執行。要執行任何shell腳本,必須對腳本有讀的權限。
B、提示符之后直接執行shell腳本,需要先對腳本文件擁有執行權限
默認,創建文件后,文件所有者對文件沒有執行權限,所以想要在提示符之后,通過腳本文件的絕對路徑名,需要先使用chmod命令先給文件添加執行權限:
因為使用上述方式執行腳本文件時,會在當前shell創建一個新的子shell並在新創建的shell中執行腳本。
C、使用點(.)在當前shell中執行腳本
5、創建變量,引用變量:$
在Bash Shell 中,不必顯式聲明變量。可以在任何時間通過簡單賦值來創建它們。創建變量語法:
<variable_name>=<value>
可以通過賦值運算符右邊留空來創建沒有值的變量。
聲明變量時,賦值運算符(=)的兩邊都不能有空格。
$符號用來引用變量,$符號引用變量時,一般情況加變量名字可以不用加雙引號:
Shell創建的變量一般被視為字符串。
注意上面變量var不是數字變量,而是字符串變量,var包含的是字符1和字符5組成的字符串,而不是數字15.
$變量名來引用變量的值,可以用大括號在界定變量名稱,一般情況下{}可以省略。但是當涉及到連接操作時,{}不可以省略:
上面命令中,day變量值為20,如果變量x想要包含day變量值,並在值之后連接字符串th,則day變量在引用時,必須加{},否則就會把day當做普通字符串處理,不會認為是變量名。
6、將值讀取到變量:read
read命令允許用戶在執行shell腳本期間從鍵盤將值輸入到變量。read命令可以用在shell提示符之后,但通常用在shell腳本中。
需要注意的是,執行read命令后,不會提示用戶輸入數據,只是進行光標閃爍。
如果要提示用戶進行輸入,我們必須自己使用echo命令。
上面腳本文件執行后效果:
7、本地和全局shell變量
在shell中創建的變量對於創建它的shell是本地變量,在shell中創建一個新shell。新shell不知道父shell的變量,新shell可以對父shell同名的變量賦新值,而父shell不會知道這一情況。bash命令可以創建新shell,從新shell退回,返回父shell使用exit命令。
有時候可能需要所有的子Shell了解父Shell的變量,所以需要把本地變量導出為全局變量。實現這一操作,可以使用export命令:
使用export命令導出變量后,子shell可以知曉父shell的變量,可以引用該變量,也可以給該變量賦新值。但是退出子shell,返回父shell顯示后,父shell的該全局變量的值沒有發生改變。也就是子shell修改父shell中創建的變量值,該修改只在子shell生效。
8、環境變量
導出的所有變量都是環境變量。
A、HOME變量
環境變量HOME用於存儲用的主目錄的位置:
B、PATH變量
PATH變量包含以冒號分隔的目錄列表,Shell會通過它定位用戶調用的命令。
設置路徑時,用戶不必轉到可執行程序文件所在的目錄,不管當前目錄是什么,用戶都可以執行程序。
不像MS-DOS,在Linux中不會自動搜索當前目錄。只會搜索PATH中指定的目錄。所以如果要搜索當前目錄,必須在PATH中執行。可以通過在PATH中加入一點.(.表示當前目錄)或提供一個空路徑來指定當前目錄:
a. PATH=/bin:/usr/bin: [以下列順序搜索:/bin、/usr/bin、當前目錄]
b. PATH=:/bin:/usr/bin [以下列順序搜索:當前目錄、/bin、/usr/bin]
c. PATH=/bin: :/usr/bin [以下列順序搜索:/bin、當前目錄、/usr/bin]
C、PS1變量
PS1(提示符變量)變量包含Shell提示符:默認為$符號。(Root用戶的提示符為#,其他用戶提示符為$)。我們可以通過該環境變量修改提示符:
PS1變量中還可以包含特定的預定義提示符字符串。例如:\w提示符字符串用於顯示用戶的當前工作目錄;\u表示當前用戶;\h表示主機名。
如果想要重新設置成默認提示符,root用戶可以使用:PS1="[\u@\h \W]# ",非root用戶可以使用:PS1="[\u@\h \W]# "
D、PS2變量
PS2變量用於設置次提示符的值的環境變量,默認情況為>。當在命令行提供了不完整的目命令時,會顯示次提示符。
退出次提示符可以使用ctrl+c或Ctrl+d:
ctrl+c,會顯示^C,然后退出;Ctrl+d會顯示原因,然后退出
E、LOGNAME變量
LOGNAME變量包含用戶的登錄名:
F、SHLVL變量
SHLVL變量包含當前工作的Shell層
登錄Shell,該變量值被賦為1.無論何時創建一個新的Shell,該變量的值都會加1.
G、SHELL變量
SHELL變量存儲用戶的默認Shell
9、env命令
env命令可以查看所有導出的環境變量及其各自值的列表:
10、補充:創建空文件,且不進入編輯狀態:touch
使用touch命令可以創建空文件,並且不進入文件的編輯狀態。也可以根據命令后給出的文件名列表同時創建多個空文件