命令提示符
創(chuàng)新互聯(lián)公司長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為石家莊企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站制作,石家莊網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
“$在linux里是命令提示符的意思。 對于Linux系統(tǒng)來說,無論是中央處理器、內(nèi)存、磁盤驅(qū)動器、鍵盤、鼠標(biāo),還是用戶等都是文件,Linux系統(tǒng)管理的命令是正常運(yùn)行的核心,與之前的DOS命令類似。linux命令在系統(tǒng)中有兩種類型:內(nèi)置Shell(外殼)命令和Linux命令
$ 在linux里是用來給變量命令的,例如$JAVA_HOME,是指JAVA_HOME的環(huán)境變量。
echo $JAVA_HOME 可以在linux終端輸出jdk的home目錄。
在Shell 腳本中向腳本傳遞參數(shù)也會用到$,例如腳本內(nèi)獲取參數(shù)的格式為:$n,n?代表一個數(shù)字,1 為執(zhí)行腳本的第一個參數(shù),2 為執(zhí)行腳本的第二個參數(shù),以此類推。
實(shí)例-向腳本傳遞三個參數(shù),并分別輸出,其中?$0?為執(zhí)行的文件名:
#!/bin/bash
Shell 傳遞參數(shù)實(shí)例!";
echo "執(zhí)行的文件名:$0";
echo "第一個參數(shù)為:$1";
echo "第二個參數(shù)為:$2";
echo "第三個參數(shù)為:$3";
擴(kuò)展資料
另外$還可以配合幾個特殊字符用來處理參數(shù):
1、$#:傳遞到腳本的參數(shù)個數(shù)。 ??
2、$* :以一個單字符串顯示所有向腳本傳遞的參數(shù)。
如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數(shù)。 ??
3、$$:腳本運(yùn)行的當(dāng)前進(jìn)程ID號 。??
4、$!:后臺運(yùn)行的最后一個進(jìn)程的ID號。 ??
5、$@:與$*相同,但是使用時加引號,并在引號中返回每個參數(shù)。
如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數(shù)。 ??
6、$-:顯示Shell使用的當(dāng)前選項(xiàng),與set命令功能相同。 ??
7、$? :顯示最后命令的退出狀態(tài)。0表示沒有錯誤,其他任何值表明有錯誤。 ?
#符號 是系統(tǒng)用戶 root
$符號 是你創(chuàng)建的用戶 沒指定權(quán)限!
刪除用戶: # userdel testuser 刪除用戶后 ,還要刪除home下屬于這個用戶的文件
切換用戶: #su testuser2 $exit:返回到上一級目錄. 新用戶登錄的時候,用戶默認(rèn)的當(dāng)前目錄是用戶的住目錄 home
給a文件增加相應(yīng)的權(quán)限: # chmod +x a (相應(yīng)的-x就是去掉某個權(quán)限)
linux中的$即“命令提示符”就是你可以一在后面輸入命令的,命令提示符前面可能提示當(dāng)前用戶的一些信息,在linux下會提示用戶當(dāng)前目錄以及當(dāng)前用戶。
$* 是以一個單字符串顯示所有向腳本傳遞的參數(shù),與位置變量不同,參數(shù)可超過9個。關(guān)于Linux命令的詳細(xì)介紹可查詢“Linux命令大全”。
$-記錄著當(dāng)前設(shè)置的shell選項(xiàng),himBH是默認(rèn)值,5個字母分別有各自含義。解釋如下:
h:hashall,打開這個選項(xiàng)后,Shell 會將命令所在的路徑記錄下來,避免每次都要查詢。舉例:當(dāng)h選項(xiàng)開啟時,如果將某個自定義命令從/usr/bin/目錄下移動到/usr/local/bin/,再運(yùn)行,會提示無此命令。而當(dāng)通過set +h將h選項(xiàng)關(guān)閉后,上述情況就不會出現(xiàn)。
i:interactive-comments,包含這個選項(xiàng)說明當(dāng)前的 shell 是一個交互式的 shell。所謂的交互式shell,就是輸入命令后,shell解釋執(zhí)行,然后返回一個結(jié)果。在腳本中,i選項(xiàng)是關(guān)閉的。
m:monitor,打開監(jiān)控模式,就可以通過Job control來控制進(jìn)程的停止、繼續(xù),后臺或者前臺執(zhí)行等。
B:braceexpand,大括號擴(kuò)展。舉例如下:
lenovo@lenovo-DK?~
$?ls
A_File
lenovo@lenovo-DK?~
$?cp?A_File{,.back_up}
lenovo@lenovo-DK?~
$?ls
A_File??A_File.back_up
如果關(guān)閉B選項(xiàng),那么shell就不會將大括號擴(kuò)展。
5.? H:history,Shell 會把我們執(zhí)行的命令記錄下來,可以通過 history 命令查看,每一行是序號 + 執(zhí)行的命令,在 shell 退出時,會將這些信息保存到~/.bash_history 文件中。如果H選項(xiàng)打開,就可以展開歷史列表中的命令,可以通過!感嘆號來完成,例如"!!"返回上最近的一個歷史命令,"!n"返回第 n 個歷史命令,等等。
【參考資料如下,但愿能幫到你^_^】
題主你好,
前提: 我們知道每個進(jìn)程運(yùn)行后,系統(tǒng)都會分配給其一個id號,這個id號和進(jìn)程是關(guān)聯(lián)的,我們可以通過操作該id來實(shí)現(xiàn)操作對應(yīng)進(jìn)程的目的,如通過id殺死進(jìn)程等.
$!很多人解釋為后臺運(yùn)行的最后一個進(jìn)程的id號(我覺得解釋為最近一次后臺運(yùn)行的id號更容易理解). 舉個例子說一下吧,這樣更直觀一點(diǎn).
我們先準(zhǔn)備一個簡單的腳本1.sh, 里面內(nèi)容很簡單,就是睡眠100秒:
下面我們在后臺運(yùn)行這個腳本,看一下$!的輸出結(jié)果:
從上圖可以看出, 腳本運(yùn)行后,系統(tǒng)分配給它的進(jìn)程id是54821, 后面我們連續(xù)輸出三次$!,得到的結(jié)果是一樣的,都是54821.? 因?yàn)?.sh這個腳本就是我們最近一次后臺運(yùn)行的腳本,所以此時無論輸出多少次$!結(jié)果都是一樣的.
-----
接下來, 我們再運(yùn)行一個內(nèi)容同1.sh相同的2.sh:
可以看到, $!的輸出結(jié)果變?yōu)榱?4860,不再是上面的54821. 因?yàn)榇藭r2.sh是我們最近一次后臺運(yùn)行的腳本,因此,$!結(jié)果變?yōu)榱?4860.
=====
希望可以幫到題主, 歡迎追問.