shell命令

if命令

  • if ... fi 語句残家;
  • if ... else ... fi 語句;
  • if ... elif ... else ... fi 語句崇呵。
if [ expression ]; then
  something;
fi

shell括號總結:

  1. []單方括號

    • [ ]中前后必須有空格子檀,
    • 內部操作符與操作變量之間要有空格:如 [ "a" = "b" ]
    • 字符串比較中,> < 需要寫成\> \<進行轉義
    • [ ] 中字符串或者${}變量盡量使用""雙引號擴住丘喻,避免值未定義引用的錯誤
    • [ ] 中可以使用–a, –o進行邏輯運算:
      • -a表示邏輯與;-o表示邏輯或念颈;!表示邏輯否
  2. [[]]雙方括號

    • [[ ]] 兩個符號左右都要有空格分隔
    • 內部操作符與操作變量之間要有空格:如 [[ “a” = “b” ]]
    • 字符串比較中泉粉,可以直接使用 >, < 無需轉義
    • [[ ]] 中字符串或者${}變量盡量如未使用"" 雙引號,會進行模式和元字符匹配
    • [[ ]] 內部可以使用 &&,||進行邏輯運算
  3. $符號后的括號:

    • ${value}表示變量value的值舍肠,在不引起歧義情況下可省略{}
    • $(cmd)表示命令替換搀继,結果為shell執(zhí)行cmd命令的輸出,和`cmd` 結果相同
    • $((exp))`expr exp`效果相同, 計算數(shù)學表達式exp的數(shù)值, 其中exp只要符合C語言的運算規(guī)則即可, 甚至三目運算符和邏輯表達式都可以計算.
  4. 多條命令執(zhí)行:

    • (cmd1;cmd2;cmd3) 新開一個子shell順序執(zhí)行命令cmd1,cmd2,cmd3, 各命令之間用分號隔開, 最后一個命令后可以沒有分號.
    • { cmd1;cmd2;cmd3;} 在當前shell順序執(zhí)行命令cmd1,cmd2,cmd3, 各命令之間用分號隔開, 最后一個命令后必須有分號, 第一條命令和左括號之間必須用空格隔開.
    • {}()而言, 括號中的重定向符只影響該條命令, 而括號外的重定向符影響到括號中的所有命令.
  5. 雙括號的特殊用法:

    • (()) 增強括號的用法, 常用于算術運算比較. 雙括號中的變量可以不使用$符號前綴, 只要括號中的表達式符合C語言運算規(guī)則, 支持多個表達式用逗號分開.
      • 比如:可以直接使用for((i=0;i<5;i++)) , 如果不使用雙括號, 則為:
        for i in `seq 0 4`
        
        或者
        for i in {0..4}
        
      • 再如:可以直接使用if (($i<5)) , 如果不使用雙括號, 則為: if [ $i -lt 5 ]
    • [[]] 增強方括號用法, 常用于字符串的比較. 主要用于條件測試, 雙括號中的表達式可以使用&&, ||, <, >等C語言語法.
      • 比如可以直接使用if [[ $a != 1 && $a != 2 ]] ,如果不適用雙括號, 則為if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ].

  1. ps命令:

之前在部署安全環(huán)境的時候發(fā)現(xiàn)數(shù)據庫明文配置錯誤翠语,需要在配置文件里手動更正數(shù)據庫配置,并重啟服務财边。而當tomcat服務沒有停止的時候肌括,重啟服務報錯,因此需要查詢當前正在運行的tomcat進程id酣难,并強制停止谍夭。需要用到如下命令:

|

$ ps -ef|grep tomcat #查找tomcat進程

$ kill -9 進程ID #停止某個ID的進程

|

ps命令是Process Status的縮寫,為我們提供進程快照憨募,即使用ps命令查看的進程情況只是在用戶執(zhí)行ps命令時刻進程的狀態(tài)紧索,并不是動態(tài)的。如果要動態(tài)查看進程菜谣,需要使用另一個命令--top珠漂,此處不贅述。

例子中使用ps命令帶有-ef參數(shù)尾膊,-e顯示所有進程媳危,-f顯示全格式。

例子中使用的命令用到管道操作符(pipte operator: |)冈敛,’|’操作符的作用是將上一個命令的標準輸出(STDOUT)作為第二個命令的標準輸入(STDIN)待笑。

|

注意:管道操作符使用條件:

1、管道命令只能處理前一個命令的標準輸出抓谴,而不能處理標準錯誤(STDERR)暮蹂;

2寞缝、管道命令右邊命令必須能夠接受標準輸入。

|

grep(global search regular expression and print out the line)使用正則表達式搜索文本仰泻,并將匹配的行打印出來荆陆。

將上述命令分解:

  1. 查找所有進程,并將結果存入output文檔:

|

$ ps –ef > output

|

  1. output中查找tomcat關鍵字:

|

$ grep tomcat output

|

[圖片上傳失敗...(image-625cdd-1539174380174)]

得到結果:

  1. grep命令:強大的搜索命令我纪,一般與|連用慎宾。

  2. sed命令:

a) -i參數(shù):更改原文件;(危險操作)

  1. xargs

  2. linux中 2>&1 的含義:

在CAD的shell腳本中看到很多類似的語句:

|

grep "rpmextract" /etc/sudoers.d/cloudautodeploy >/dev/null 2>&1

|

|

>: cmd > file命令表示將cmd命令的輸出重定向到文件file中浅悉,若file已有內容則清空趟据。

0,1,2為文件描述符(file descriptor):

0:stdin標準輸入,

1:stdout標準輸出术健,文件描述符系統(tǒng)默認為1汹碱,因此“>/dev/null”等同于“1>/dev/null”

2:stderr標準錯誤

/dev/null:空設備,所有重定向到它的信息都會消失荞估。

|

因此咳促,>/dev/null(即1>/dev/null)表示將命令標準輸出(stdout: 1)重定向到/dev/null文件,2>&1表示將命令標準錯誤(stderr: 2)重定向到標準輸出(stdout: 1)的文件位置勘伺。則>/dev/null 2>&1表示命令的標準輸出與標準錯誤都重定向到/dev/null文件跪腹。

參考列表:shell中括號的特殊用法

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市飞醉,隨后出現(xiàn)的幾起案子冲茸,更是在濱河造成了極大的恐慌,老刑警劉巖缅帘,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轴术,死亡現(xiàn)場離奇詭異煤蹭,居然都是意外死亡憋活,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門仍秤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來失暂,“玉大人彼宠,你說我怎么就攤上這事∪は” “怎么了兵志?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長宣肚。 經常有香客問我想罕,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任按价,我火速辦了婚禮惭适,結果婚禮上,老公的妹妹穿的比我還像新娘楼镐。我一直安慰自己癞志,他們只是感情好,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布框产。 她就那樣靜靜地躺著凄杯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秉宿。 梳的紋絲不亂的頭發(fā)上戒突,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機與錄音描睦,去河邊找鬼膊存。 笑死,一個胖子當著我的面吹牛忱叭,可吹牛的內容都是我干的隔崎。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼韵丑,長吁一口氣:“原來是場噩夢啊……” “哼爵卒!你這毒婦竟也來了?” 一聲冷哼從身側響起撵彻,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤技潘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后千康,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡铲掐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年拾弃,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摆霉。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡豪椿,死狀恐怖,靈堂內的尸體忽然破棺而出携栋,到底是詐尸還是另有隱情搭盾,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布婉支,位于F島的核電站鸯隅,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜蝌以,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一炕舵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧跟畅,春花似錦咽筋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至虱痕,卻和暖如春睹耐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背皆疹。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工疏橄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人略就。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓捎迫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親表牢。 傳聞我的和親對象是個殘疾皇子窄绒,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內容