Linux系統中Shell不僅僅是一個命令,而且是其他命令的解釋器。可以調試其他命令,從而完成編譯。那麼Linux系統中Shell命令應該怎麼使用呢?
其實作為命令語言互動式地解釋和執行用戶輸入的命令只是Shell功能的一個方面,Shell還可以用來進行程序設計,它提供了定義變數和參數的手段以及豐富的程序控制結構。使用Shell編程類似於DOS中的批處理文件,稱為Shell script,又叫Shell程序或Shell命令文件。
Shell基本語法
像高級程序設計語言一樣,Shell也提供說明和使用變數的功能。對Shell來講,所有變數的取值都是一個字串,Shell程序採用$var的形式來引用名為var的變數的值。
Shell有以下幾種基本類型的變數。
(1)Shell定義的環境變數:
Shell在開始執行時就已經定義了一些和系統的工作環境有關的變數,用戶還可以重新定義這些變數,常用的Shell環境變數有:
HOME 用於保存注冊目錄的完全路徑名。
PATH 用於保存用冒號分隔的目錄路徑名,Shell將按PATH變數中給出的順序搜索這些目錄,找到的第一個與命令名稱一致的可執行文件將被執行。
TERM 終端的類型。
UID 當前用戶的識別字,取值是由數位構成的字串。
PWD 當前工作目錄的絕對路徑名,該變數的取值隨cd命令的使用而變化。
PS1 主提示符,在特權用戶下,默認的主提示符是#,在普通用戶下,默認的主提示符是$。
PS2 在Shell接收用戶輸入命令的過程中,如果用戶在輸入行的末尾輸入「/」然後回車,或者當用戶按回車鍵時Shell判斷出用戶輸入的命令沒有結束時,就顯示這個輔助提示符,提示用戶繼續輸入命令的其餘部分,默認的輔助提示符是》。
(2)用戶定義的變數:
用戶可以按照下面的語法規則定義自己的變數:
變數名=變數值
要注意的一點是,在定義變數時,變數名前不應加符號$,在引用變數的內容時則應在變數名前加$;在給變數賦值時,等號兩邊一定不能留空格,若變數中本身就包含了空格,則整個字串都要用雙引號括起來。
在編寫Shell程序時,為了使變數名和命令名相區別,建議所有的變數名都用大寫字母來表示。
有時我們想要在說明一個變數並對它設置為一個特定值後就不在改變它的值時,可以用下面的命令來保證一個變數的只讀性:
readonly 變數名
在任何時候,創建的變數都只是當前Shell的局部變數,所以不能被Shell運行的其他命令或Shell程序所利用,而export命令可以將一個局部變數提供給Shell執行的其他命令使用,其格式為:
export 變數名
也可以在給變數賦值的同時使用export命令:
export 變數名=變數值
使用export說明的變數,在Shell以後運行的所有命令或程序中都可以訪問到。
(3)位置參數:
位置參數是一種在調用Shell程序的命令行中按照各自的位置決定的變數,是在程序名之後輸入的參數。位置參數之間用空格分隔,Shell取第一個位置參數替換程序文件中的$1,第二個替換$2,依次類推。$0是一個特殊的變數,它的內容是當前這個Shell程序的文件名,所以,$0不是一個位置參數,在顯示當前所有的位置參數時是不包括$0的。
(4)預定義變數:
預定義變數和環境變數相類似,也是在Shell一開始時就定義了的變數。所不同的是,用戶只能根據Shell的定義來使用這些變數,而不能重定義它。所有預定義變數都是由$符和另一個符號組成的,常用的Shell預定義變數有:
$# 位置參數的數量。
$* 所有位置參數的內容。
$? 命令執行後返回的狀態。
$$ 當前進程的進程號。
$! 後台運行的最後一個進程號。
$0 當前執行的進程名。
其中,$?用於檢查上一個命令執行是否正確。(在Linux中,命令退出狀態為0表示該命令正確執行,任何非0值表示命令出錯。)
$$變數最常見的用途是用做暫存文件的名字以保證暫存文件不會重復。
(5)參數置換的變數:
Shell提供了參數置換功能以便用戶可以根據不同的條件來給變數賦不同的值。參數置換的變數有4種,這些變數通常與某一個位置參數相聯系,根據指定的位置參數是否已經設置類決定變數的取值,它們的語法和功能分別如下。
a. 變數=${參數-word}:如果設置了參數,則用參數的值置換變數的值,否則用word置換。即這種變數的值等於某一個參數的值,如果該參數沒有設置,則變數就等於word的值。
b. 變數=${參數=word}:如果設置了參數,則用參數的值置換變數的值,否則把變數設置成word,然後再用word替換參數的值。注意,位置參數不能用於這種方式,因為在Shell程序中不能為位置參數賦值。
c. 變數=${參數?word}:如果設置了參數,則用參數的值置換變數的值,否則就顯示word並從Shell中退出,如果省略了word,則顯示標准信息。這種變數要求一定等於某一個參數的值。如果該參數沒有設置,就顯示一個信息,然後退出,因此這種方式常用於出錯指示。
d. 變數=${參數+word}:如果設置了參數,則用word置換變數,否則不進行置換。
所有這4種形式中的「參數」既可以是位置參數,也可以是另一個變數,只是用位置參數的情況比較多。
2. linux 用戶退出怎麼命令
用戶退出登錄的方法有以下三種:
1、在shell提示符下輸入 exit 按回車確認
2、在shell提示符下輸入 logout 按回車確認
3、按快捷鍵crtl+d (此方法同logout效果)
Linux常用命令之——退出、切換用戶exit、su
exit命令同於退出shell,並返回給定值,在shell腳本中可以終止當前腳本執行,執行exit可使shell以指定的狀態值退出。
若不設置狀態值參數,則shell以預設值退出,狀態值0代表執行成功,其他值代表執行失敗。
su命令用於切換當前用戶身份到其他用戶身份,變更時須輸入所要變更的用戶帳號與密碼。
選項:
-c<指令>或--command=<指令>:執行完指定的指令後,即恢復原來的身份;
-f或——fast:適用於csh與tsch,使shell不用去讀取啟動文件;
-l或——login:改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,logname。此外,也會變更PATH變數;
-m,-p或--preserve-environment:變更身份時,不要變更環境變數;
-s<shell>或--shell=<shell>:指定要執行的shell;
--help:顯示幫助;
--version;顯示版本信息。
3. linux保存退出命令
linux退出命令如下:
操作設備:戴爾筆記本電腦
操作系統:win10
操作程序:linux 2.91
1、首先連接相應linux主機,等待輸入shell指令。
4. linux shell 怎麼退出
不同的進入方法的退出方法也不一樣。
使用su root的退出方法:
輸入su 用戶名,回車。
輸入此用戶密碼,回車即可切換回此用戶。
使用sudo -i的退出方法:
輸入exit回車,退出即可。
如果運行了其它需要退出的命令,可能要輸入多次exit依次退出。
直接使用logout也可以退出。