shell編程基礎(chǔ)

shell

    1. shell是一個(gè)命令解釋器,處于內(nèi)核和用戶之間,負(fù)責(zé)把用戶的指令傳遞給內(nèi)核并且把執(zhí)行結(jié)果回顯給用戶.
    2. Shell 是一個(gè)用C語(yǔ)言編寫(xiě)的程序绍弟,它是用戶使用Linux的橋梁张峰,同時(shí)腻格,shell也可以作為一門(mén)強(qiáng)大的編程語(yǔ)言
    *我們常說(shuō)的shell是命令行解釋器的意思串慰,也有內(nèi)核上的一層殼的含義*
    3. shell常見(jiàn)的幾種類(lèi)型有sh栋盹、csh绞灼、bash利术、zsh等提供的腳本支持.
    4. shell的功能點(diǎn)在于外部命令的使用,其內(nèi)部數(shù)據(jù)處理方面低矮,側(cè)重文本(或者說(shuō)字符串印叁,或字符流)處理.
    而對(duì)運(yùn)算和其他基本數(shù)據(jù)結(jié)構(gòu)的原生較弱(例如常用的array、set军掂、map等等)轮蜕,功能目標(biāo)在于實(shí)現(xiàn)命令自動(dòng)化.
    但是呢,實(shí)現(xiàn)命令自動(dòng)化的同時(shí)蝗锥,Shell需要依賴(lài)其他程序才能完成大部分的工作跃洛,這是它的缺陷也是一個(gè)優(yōu)點(diǎn)吧.
    但它不容置疑的長(zhǎng)處是:簡(jiǎn)潔的腳本語(yǔ)言標(biāo)記方式,而且比C語(yǔ)言編寫(xiě)的程序執(zhí)行更快终议、更有效率汇竭。
    所以我們?nèi)绻凶鲞\(yùn)維甚至是基礎(chǔ)管理Linux服務(wù)器的同學(xué),只要學(xué)會(huì)了shell編程穴张,大大的可以節(jié)約我們的時(shí)間细燎,更快捷的管理我們的服務(wù)器了。
    bash是Linux標(biāo)準(zhǔn)默認(rèn)的shell陆馁,是BourneAgain Shell的縮寫(xiě).
    因?yàn)閎ash有很多特性找颓,比如:
    1. 可以使用類(lèi)似DOS下面的doskey的功能,
    2. 用方向鍵查閱和快速輸入并修改命令叮贩,
    3. 自動(dòng)通過(guò)查找匹配的方式給出以某字符串開(kāi)頭的命令击狮,
    4. 還有就是bash包含了自身的幫助功能佛析,你只要在提示符下面鍵入help就可以得到相關(guān)的幫助。
    在Linux系統(tǒng)中我們經(jīng)潮肱睿看見(jiàn)以:
    #!/bin/bash 
   開(kāi)頭的文件內(nèi)容寸莫,這就是聲明了該文件是一個(gè)基于bash的shell編程文件

關(guān)于shell的小程序

  1. m.sh:
    #!/bin/bash cd /home/liwei/mongodb/bin ./mongod --dbpath=../liwei_db

加入要執(zhí)行這個(gè)文件,則輸入:
sh m.sh

  1. 執(zhí)行shell的過(guò)程中档冬,我們可以通過(guò)>或者>>來(lái)記錄下一些節(jié)點(diǎn)的結(jié)果報(bào)告,
    #!/bin/bash cd /lamp ls *.tar.gz > ls.list for TAR in \cat ls.list`
    do
    tar -zxf $TAR
    done`

將lamp目錄里面所有的壓縮包膘茎,批量解壓出來(lái),這樣我們可以看出ls的結(jié)果集可以拿出來(lái)參與下一個(gè)指令的執(zhí)行酷誓。

  1. 將某個(gè)文件夾下所有的文件名字里的大寫(xiě)字母改成小寫(xiě)字母
    #!/bin/bash for file in \ls | grep '[A-Z]'`
    do
    str=`echo $file|tr 'A-Z' 'a-z'`
    mv $file $str
    done`

tip:tr表示替換

  1. 將空文件披坏,沒(méi)用的文件,多余的文件刪除掉
    for filename in \ls`
    do
    if test -d $filename
    then b=0
    else
    a=$(ls -l $filename | awk '{ print $5 }')
    if test $a -eq 0
    then rm $filename
    fi
    fi
    done`

tip:test -d:如果文件為一個(gè)目錄盐数,則為真
fi:為if的結(jié)束語(yǔ)棒拂,相當(dāng)于end if
awk:就是把文件逐行的讀入,以空格為默認(rèn)分隔符將每行切片玫氢,切開(kāi)的部分再進(jìn)行各種分析處理帚屉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市漾峡,隨后出現(xiàn)的幾起案子攻旦,更是在濱河造成了極大的恐慌,老刑警劉巖生逸,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牢屋,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡牺陶,警方通過(guò)查閱死者的電腦和手機(jī)伟阔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)掰伸,“玉大人皱炉,你說(shuō)我怎么就攤上這事∈ㄑ迹” “怎么了合搅?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)歧蕉。 經(jīng)常有香客問(wèn)我灾部,道長(zhǎng),這世上最難降的妖魔是什么惯退? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任赌髓,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锁蠕。我一直安慰自己夷野,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布荣倾。 她就那樣靜靜地躺著悯搔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舌仍。 梳的紋絲不亂的頭發(fā)上妒貌,一...
    開(kāi)封第一講書(shū)人閱讀 52,184評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音铸豁,去河邊找鬼灌曙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛节芥,可吹牛的內(nèi)容都是我干的平匈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼藏古,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了忍燥?” 一聲冷哼從身側(cè)響起拧晕,我...
    開(kāi)封第一講書(shū)人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎梅垄,沒(méi)想到半個(gè)月后厂捞,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡队丝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年靡馁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片机久。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡臭墨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出膘盖,到底是詐尸還是另有隱情胧弛,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布侠畔,位于F島的核電站结缚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏软棺。R本人自食惡果不足惜红竭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧茵宪,春花似錦最冰、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至憾股,卻和暖如春鹿蜀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背服球。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工茴恰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人斩熊。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓往枣,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親粉渠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子分冈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359

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

  • 1.創(chuàng)建文件夾 !/bin/sh mkdir -m 777 "%%1" 2.創(chuàng)建文件 !/bin/sh touch...
    BigJeffWang閱讀 10,082評(píng)論 3 53
  • shell基礎(chǔ)介紹 shell是一個(gè)命令解釋器,處于內(nèi)核和用戶之間霸株,負(fù)責(zé)把用戶的指令傳遞給內(nèi)核并且把執(zhí)行結(jié)果回顯給...
    小子加油閱讀 409評(píng)論 0 3
  • Bash內(nèi)置基本變量 PWD : 顯示當(dāng)前的工作目錄 OLDPWD : 顯示上一次的工作目錄 ~:用戶家目錄 - ...
    魏鎮(zhèn)坪閱讀 1,534評(píng)論 0 6
  • 1. shell腳本: 包含一些命令或聲明雕沉,并符合一定格式的文本文件 ? 格式要求:首行shebang(#!)機(jī)制...
    尛尛大尹閱讀 1,891評(píng)論 0 1
  • 基礎(chǔ)命令 主要的命令和快捷鍵 Linux系統(tǒng)命令由三部分組成:cmd + [options]+[operation...
    485b1aca799e閱讀 1,103評(píng)論 0 0