shell與變量的聲明的操作


1、給命令起別名:alias

執行下面命令后,可以使用dir代替ls –l 命令,顯示目錄中的文件詳細信息:

wps60F5.tmp

還可以用一個別名表示幾個命令 的結合:

wps60F6.tmp

2、ps:顯示當前登錄會話的所有活動進程:

wps6107.tmp

3、更改默認shell:chsh

chsh命令沒有預安裝,執行時,需要先聯網安裝。

執行chsh命令,過一會兒就會提示該命令找不到,是否要進行安裝,輸入y,即可下載包進行安裝:

wps6108.tmp

命令安裝完了之后,再次執行chsh命令,即可為當前用戶更改shell,輸入新的shell即可實現更改。

查看環境變量SHELL或者查看/ect/passwd文件,即可發現當前用戶使用的shell類型已更改:

wps6109.tmp

4echo命令

echo命令用於在屏幕上顯示消息:

wps611A.tmp

Echo命令顯示文本,會在文本末尾放置一個新行字符,新行字符會在顯示文本后將光標移動到下一行。

使用選項-n可以將光標保持在同一行:

wps611B.tmp

5、創建shell腳本

Shell腳本文件是一個文件,所以可以使用文本編輯器進行操作。

下面我們創建一個shell腳本文件,文件名為hello.sh。在Linux中,文件類型不重要,或者可以說沒有文件類型的概念。想要該文件是shell腳本文件,我們只要在文件里書寫的是shell命令就可以了。

在命令提示符時候,執行vi hello.sh

wps611C.tmp

打開文件編輯后,編寫shell命令:

wps612C.tmp

#! 字符必須是shell腳本的前兩個字符,用來告訴系統它后面的參數是用來執行該文件程序。

在shell腳本里,#是注釋符號。我們要養成良好的寫注釋的習慣。

Shell腳本執行有三種方式:

A、sh/bash  shell腳本文件名

將文件名作為shell命令sh/bash的參數執行。要執行任何shell腳本,必須對腳本有讀的權限。

wps612D.tmp

B、提示符之后直接執行shell腳本,需要先對腳本文件擁有執行權限

默認,創建文件后,文件所有者對文件沒有執行權限,所以想要在提示符之后,通過腳本文件的絕對路徑名,需要先使用chmod命令先給文件添加執行權限:

wps612E.tmp

因為使用上述方式執行腳本文件時,會在當前shell創建一個新的子shell並在新創建的shell中執行腳本。

C、使用點(.)在當前shell中執行腳本

wps613F.tmp

5、創建變量,引用變量:$

在Bash Shell 中,不必顯式聲明變量。可以在任何時間通過簡單賦值來創建它們。創建變量語法:

<variable_name>=<value>

可以通過賦值運算符右邊留空來創建沒有值的變量。

聲明變量時,賦值運算符(=)的兩邊都不能有空格。

wps6140.tmp

$符號用來引用變量,$符號引用變量時,一般情況加變量名字可以不用加雙引號:

wps6141.tmp

Shell創建的變量一般被視為字符串。

wps6151.tmp

注意上面變量var不是數字變量,而是字符串變量,var包含的是字符1和字符5組成的字符串,而不是數字15.

$變量名來引用變量的值,可以用大括號在界定變量名稱,一般情況下{}可以省略。但是當涉及到連接操作時,{}不可以省略:

wps6152.tmp

上面命令中,day變量值為20,如果變量x想要包含day變量值,並在值之后連接字符串th,則day變量在引用時,必須加{},否則就會把day當做普通字符串處理,不會認為是變量名。

6、將值讀取到變量:read

read命令允許用戶在執行shell腳本期間從鍵盤將值輸入到變量。read命令可以用在shell提示符之后,但通常用在shell腳本中。

需要注意的是,執行read命令后,不會提示用戶輸入數據,只是進行光標閃爍。

wps6153.tmp

如果要提示用戶進行輸入,我們必須自己使用echo命令。

wps6164.tmp

上面腳本文件執行后效果:

wps6165.tmp

7、本地和全局shell變量

在shell中創建的變量對於創建它的shell是本地變量,在shell中創建一個新shell。新shell不知道父shell的變量,新shell可以對父shell同名的變量賦新值,而父shell不會知道這一情況。bash命令可以創建新shell,從新shell退回,返回父shell使用exit命令。

wps6166.tmp

有時候可能需要所有的子Shell了解父Shell的變量,所以需要把本地變量導出為全局變量。實現這一操作,可以使用export命令:

wps6177.tmp

使用export命令導出變量后,子shell可以知曉父shell的變量,可以引用該變量,也可以給該變量賦新值。但是退出子shell,返回父shell顯示后,父shell的該全局變量的值沒有發生改變。也就是子shell修改父shell中創建的變量值,該修改只在子shell生效。

8、環境變量

導出的所有變量都是環境變量。

A、HOME變量

環境變量HOME用於存儲用的主目錄的位置:

wps6178.tmp

B、PATH變量

PATH變量包含以冒號分隔的目錄列表,Shell會通過它定位用戶調用的命令。

設置路徑時,用戶不必轉到可執行程序文件所在的目錄,不管當前目錄是什么,用戶都可以執行程序。

wps6188.tmp

不像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用戶的提示符為#,其他用戶提示符為$)。我們可以通過該環境變量修改提示符:

wps6189.tmp

PS1變量中還可以包含特定的預定義提示符字符串。例如:\w提示符字符串用於顯示用戶的當前工作目錄;\u表示當前用戶;\h表示主機名。

wps618A.tmp

如果想要重新設置成默認提示符,root用戶可以使用:PS1="[\u@\h \W]# ",非root用戶可以使用:PS1="[\u@\h \W]# "

wps619B.tmp

D、PS2變量

PS2變量用於設置次提示符的值的環境變量,默認情況為>。當在命令行提供了不完整的目命令時,會顯示次提示符。

wps619C.tmp

退出次提示符可以使用ctrl+c或Ctrl+d:

wps619D.tmp

ctrl+c,會顯示^C,然后退出;Ctrl+d會顯示原因,然后退出

E、LOGNAME變量

LOGNAME變量包含用戶的登錄名:

wps61AD.tmp

F、SHLVL變量

SHLVL變量包含當前工作的Shell層

wps61AE.tmp

登錄Shell,該變量值被賦為1.無論何時創建一個新的Shell,該變量的值都會加1.

G、SHELL變量

SHELL變量存儲用戶的默認Shell

wps61AF.tmp

9、env命令

env命令可以查看所有導出的環境變量及其各自值的列表:

wps61B0.tmp

10、補充:創建空文件,且不進入編輯狀態:touch

使用touch命令可以創建空文件,並且不進入文件的編輯狀態。也可以根據命令后給出的文件名列表同時創建多個空文件

wps61C1.tmp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM