shell相關(guān)

hell 簡(jiǎn)單點(diǎn)理解伤柄,就是系統(tǒng)跟計(jì)算機(jī)硬件交互時(shí)使用的中間介質(zhì)馍管,它只是系統(tǒng)的一個(gè)工具。用戶(hù)直接面對(duì)的不是計(jì)算機(jī)硬件而是 shell更振,用戶(hù)把指令告訴 shell,然后 shell 再傳輸給系統(tǒng)內(nèi)核饭尝,接著內(nèi)核再去支配計(jì)算機(jī)硬件去執(zhí)行各種操作肯腕。Redhat/CentOS 系統(tǒng)默認(rèn)安裝的 shell 叫做 bash,即 Bourne Again Shell钥平,它是 sh(Bourne Shell)的增強(qiáng)版本

我們敲過(guò)的命令实撒,linux 是會(huì)有記錄的,默認(rèn)可以記錄 1000 條歷史命令涉瘾。這些命令保存在用

戶(hù)的家目錄中的.bash_history 文件中知态。有一點(diǎn)需要您知道的是,只有當(dāng)用戶(hù)正常退出當(dāng)前shell 時(shí)立叛,在當(dāng)前 shell 中運(yùn)行的命令才會(huì)保存至.bash_history 文件中负敏。

與命令歷史有關(guān)的有一個(gè)有意思的字符那就是 ‘!’ 了。常用的有這么幾個(gè)應(yīng)用:

1) !! 連續(xù)兩個(gè) ‘!’, 表示執(zhí)行上一條指令;

2) !n 這里的 n 是數(shù)字囚巴,表示執(zhí)行命令歷史中第 n 條指令原在,例如 !12 表示執(zhí)行命令歷史中

第 12 個(gè)命令;

指令和文件名補(bǔ)全

它就是按 tab 鍵友扰,它可以幫您補(bǔ)全一個(gè)指令彤叉,也可以幫您補(bǔ)全一個(gè)路徑或者一個(gè)文件名庶柿。連

續(xù)按兩次 tab 鍵,系統(tǒng)則會(huì)把所有的指令或者文件名都列出來(lái)秽浇。

別名

我們可以通過(guò)

alias 把一個(gè)常用的并且很長(zhǎng)的指令別名一個(gè)簡(jiǎn)潔易記的指令浮庐。如果不想用了,

還可以用 unalias 解除別名功能柬焕。直接敲 alias 會(huì)看到目前系統(tǒng)默認(rèn)的 alias.

系統(tǒng)默認(rèn)的 alias 指令也就這幾個(gè)而已审残,您也可以自定義您想要的指令別名。alias 語(yǔ)法很簡(jiǎn)

單斑举, alias [命令別名]=['具體的命令']

通配符

在bash 下搅轿,可以使用 * 來(lái)匹配零個(gè)或多個(gè)字符,而用 ? 匹配一個(gè)字符富玷。

輸入輸出重定向

輸入重定向用于改變命令的輸入璧坟,輸出重定向用于改變命令的輸出。輸出重定向更為常用赎懦,

它經(jīng)常用于將命令的結(jié)果輸入到文件中雀鹃,而不是屏幕上。輸入重定向的命令是<励两,輸出重定

向的命令是>黎茎,另外還有錯(cuò)誤重定向 2>,以及追加重定向>>

管道符

前面已經(jīng)提過(guò)過(guò)管道符 “|”, 就是把前面的命令運(yùn)行的結(jié)果丟給后面的命令当悔。

作業(yè)控制

當(dāng)運(yùn)行一個(gè)進(jìn)程時(shí)傅瞻,您可以使它暫停(按Ctrl+z),然后使用 fg 命令恢復(fù)它盲憎,利用 bg 命令使

他到后臺(tái)運(yùn)行嗅骄,您也可以使它終止(按 Ctrl+c)。

環(huán)境變量

環(huán)境變量分為系統(tǒng)環(huán)境變量和用戶(hù)環(huán)境變量焙畔。系統(tǒng)環(huán)境變量掸读,對(duì)所有用戶(hù)起作用,而用戶(hù)環(huán)

境變量只對(duì)當(dāng)前用戶(hù)起作用宏多。

系統(tǒng)環(huán)境變量:

/etc/profile:此文件為系統(tǒng)的每個(gè)用戶(hù)設(shè)置環(huán)境信息,當(dāng)用戶(hù)第一次登錄時(shí),該文件被執(zhí)行.并

從/etc/profile.d 目錄的配置文件中搜集 shell 的設(shè)置.

/etc/bashrc:

為每一個(gè)運(yùn)行 bash shell 的用戶(hù)執(zhí)行此文件.當(dāng) bash shell 被打開(kāi)時(shí),該文件被讀取.當(dāng)前用戶(hù)變量:

~/.bash_profile:

每個(gè)用戶(hù)都可使用該文件輸入專(zhuān)用于自己使用的 shell 信息,當(dāng)用戶(hù)登錄時(shí),該

文件僅僅執(zhí)行一次!默認(rèn)情況下,他設(shè)置一些環(huán)境變量,執(zhí)行用戶(hù)的.bashrc 文件.

~/.bashrc:該文件包含專(zhuān)用于你的 bash shell 的 bash 信息,當(dāng)?shù)卿洉r(shí)以及每次打開(kāi)新的 shell 時(shí),該該文件被讀取.

~/.bash_logout:

當(dāng)每次退出系統(tǒng)(退出 bash shell)時(shí),執(zhí)行該文件儿惫。

注:這些文件很多都是隱藏文件,想要查看可以在ls 命令之后加上參數(shù) -a來(lái)顯示隱藏文件伸但。

1.顯示環(huán)境變量 HOME

[azureuser@mono tmp]$ echo $PATH

2.

設(shè)置一個(gè)新的環(huán)境變量 NAME

[azureuser@mono tmp]$ export NAME="lichao"

[azureuser@mono tmp]$ echo $NAME

lichao

3.使用 env 命令顯示所有的環(huán)境變量[azureuser@mono tmp]$ env

Shell 特殊符號(hào)

* 代表零個(gè)或多個(gè)字符或數(shù)字肾请。

? 只代表一個(gè)任意的字符

# 這個(gè)符號(hào)在 linux 中表示注釋說(shuō)明的意思,即 # 后面的內(nèi)容 linux 忽略掉更胖。

\ 脫意字符铛铁,將后面的特殊符號(hào)(例如”*” )還原為普通字符隔显。

| 管道符,前面多次出現(xiàn)過(guò)饵逐,它的作用在于將符號(hào)前面命令的結(jié)果丟給符號(hào)后面的命令括眠。

這里提到的后面的命令,并不是所有的命令都可以的倍权,一般針對(duì)文檔操作的命令比較常

用掷豺,例如 cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk 等等,其中 grep,sed, awk 為正則表達(dá)式必須掌握的工具

$ 除了用于變量前面的標(biāo)識(shí)符外薄声,還有一個(gè)妙用当船,就是和 ‘!’ 結(jié)合起來(lái)使用。

?; 分號(hào)默辨。平時(shí)我們都是在一行中敲一個(gè)命令德频,然后回車(chē)就運(yùn)行了,那么想在一行中運(yùn)

行兩個(gè)或兩個(gè)以上的命令如何呢?則需要在命令之間加一個(gè) ”;” 了缩幸。

?~ 用戶(hù)的家目錄壹置,如果是 root 則是 /root ,普通用戶(hù)則是 /home/username

& 如果想把一條命令放到后臺(tái)執(zhí)行的話(huà)桌粉,則需要加上這個(gè)符號(hào)蒸绩。通常用于命令運(yùn)行時(shí)

間非常長(zhǎng)的情況。

?>, >>, 2>, 2>> 前面講過(guò)重定向符號(hào)> 以及>> 分別表示取代和追加的意思铃肯,然后還有兩

個(gè)符號(hào)就是這里的 2> 和 2>> 分別表示錯(cuò)誤重定向和錯(cuò)誤追加重定向患亿,當(dāng)我們運(yùn)行一

個(gè)命令報(bào)錯(cuò)時(shí),報(bào)錯(cuò)信息會(huì)輸出到當(dāng)前的屏幕押逼,如果想重定向到一個(gè)文本里步藕,則要用2>或者 2>>

[ ] 中括號(hào),中間為字符組合挑格,代表中間字符中的任意一個(gè)咙冗。

&& 與 ||,用于多條命令中間的特殊符號(hào)

Shell 腳本的基本結(jié)構(gòu)

#! /bin/bash

## This is first bash shell on centos

## Written by Geffzhang 2013.8.18

date '+%Y-%m-%d %H:%M:%S'

echo "Hello world!"

Shell 腳本通常都是以.sh 為后綴名的, 大家一看到.sh 文件就知道這是個(gè) Shell 腳本漂彤。helloworld.sh 中第一行要以 “#! /bin/bash” 開(kāi)頭雾消,它代表的意思是,該文件使用的是 bash語(yǔ)法挫望。如果不設(shè)置該行立润,雖然您的shell腳本也可以執(zhí)行,但是這不符合規(guī)范媳板。# 表示注釋?zhuān)谇懊嬷v過(guò)的桑腮。后面跟一些該腳本的相關(guān)注釋內(nèi)容。腳本的注釋雖然不是必須的蛉幸,建議不要省略了破讨。因?yàn)殡S著您寫(xiě)的 shell 腳本越來(lái)越多丛晦,如果有一天您回頭查看自己寫(xiě)過(guò)的某個(gè)腳本時(shí),很有可能忘記該腳本是用來(lái)干什么的以及什么時(shí)候?qū)懙奶崽铡K詫?xiě)上注釋是有必要的烫沙。而且系統(tǒng)管理員并非只有您一個(gè),如果是其他管理員查看您的腳本搁骑,他看不懂豈不是很郁悶.

另外使用 sh 命令去執(zhí)行一個(gè) shell 腳本的時(shí)候是可以加-x 選項(xiàng)來(lái)查看這個(gè)腳本執(zhí)行過(guò)程的斧吐,這樣有利于我們調(diào)試這個(gè)腳本哪里出了問(wèn)題:

[azureuser@mono sbin]$ sh -x helloworld.sh

+ date '+%Y-%m-%d %H:%M:%S'

2013-08-18 07:33:08

+ echo 'Hello world!'

Hello world!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末又固,一起剝皮案震驚了整個(gè)濱河市仲器,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌仰冠,老刑警劉巖乏冀,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異洋只,居然都是意外死亡辆沦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)识虚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)肢扯,“玉大人,你說(shuō)我怎么就攤上這事担锤∥党浚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵肛循,是天一觀(guān)的道長(zhǎng)铭腕。 經(jīng)常有香客問(wèn)我,道長(zhǎng)多糠,這世上最難降的妖魔是什么累舷? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮夹孔,結(jié)果婚禮上被盈,老公的妹妹穿的比我還像新娘滔蝉。我一直安慰自己厌殉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布墨叛。 她就那樣靜靜地躺著闷畸,像睡著了一般尝盼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上佑菩,一...
    開(kāi)封第一講書(shū)人閱讀 52,328評(píng)論 1 310
  • 那天盾沫,我揣著相機(jī)與錄音裁赠,去河邊找鬼。 笑死赴精,一個(gè)胖子當(dāng)著我的面吹牛佩捞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蕾哟,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼一忱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了谭确?” 一聲冷哼從身側(cè)響起帘营,我...
    開(kāi)封第一講書(shū)人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逐哈,沒(méi)想到半個(gè)月后芬迄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡昂秃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年禀梳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肠骆。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡算途,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚀腿,到底是詐尸還是另有隱情嘴瓤,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布唯咬,位于F島的核電站纱注,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏胆胰。R本人自食惡果不足惜狞贱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜀涨。 院中可真熱鬧瞎嬉,春花似錦、人聲如沸厚柳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)别垮。三九已至便监,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背烧董。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工毁靶, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人逊移。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓预吆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親胳泉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拐叉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容