【Shell】基礎(chǔ)知識(shí)

1.命名和編寫規(guī)范

1.1 命名規(guī)范

文件名.sh.sh 是 linux下 bash shell 的默認(rèn)后綴

1.2 編寫規(guī)格和執(zhí)行

vi test.sh

#!/bin/bash              [指定告知系統(tǒng)當(dāng)前這個(gè)腳本要使用的shell解釋器]

echo "begin"
content="xyz"
content=$(cat /root/flink/data.txt)
echo $content > /root/flink/tmp.txt
# 執(zhí)行命令1
./test.sh

# 執(zhí)行命令2
sh test.sh

# 執(zhí)行命令3
bash test.sh

2.輸入輸出重定向

命令 文件描述符 設(shè)備 類型
/dev/stdin 0 鍵盤 標(biāo)準(zhǔn)輸入
/dev/stdout 1 顯示器 標(biāo)準(zhǔn)輸出
/dev/stderr 2 顯示器 標(biāo)準(zhǔn)錯(cuò)誤輸出

2.1 輸入重定向

輸入重定向就是不使用標(biāo)準(zhǔn)輸入端口輸入文件莲兢,而是使用指定的文件作為標(biāo)準(zhǔn)輸入設(shè)備阎姥,簡單理解就是使用 < 符來修改標(biāo)準(zhǔn)輸入設(shè)備著恩。

命令 類型 說明
命令 < fileA 標(biāo)準(zhǔn)輸入 命令把文件A的內(nèi)容作為標(biāo)準(zhǔn)輸入設(shè)備
命令 << 標(biāo)識(shí)符 標(biāo)識(shí)符限定輸入 命令把標(biāo)準(zhǔn)輸入中讀入內(nèi)容煌贴,直到遇到“標(biāo)識(shí)符”分解符為止
# "<" 樣例1
config=/usr/config.ini
...
while read server ip;
do
...
done < $config
# read 會(huì)逐行讀取 /usr/config.ini 文件中的字段,其中每行兩個(gè)字段说榆,即分別作為 server 和 ip

# "<" 樣例2
cat < tmp.txt

# "<<" 樣例1
cat >> command.txt << EOF
function getser() {
  if [ \$2 ]; then
      kubectl exec -niot -it \`getser "\$1" |grep "\$2" -m 1| awk '{print \$1}' \` -- bash
  else
      kubectl get pods -niot -o wide | grep "\$1" |grep -v Evicted
  fi
}
EOF

# "<<" 樣例2
FLINK_CONFIG=$(cat << END
security.kerberos.login.keytab: /home/hadoop-user/hadoop-user.keytab
security.kerberos.login.principal: hadoop-user
slot.request.timeout: 120000
END
)

2.2 輸出重定向

重定向輸出就是把要輸出的文件信息寫入到一個(gè)文件中去虚吟,而不是將要輸出的文件信息輸出到控制臺(tái)。在linux中签财,默認(rèn)的標(biāo)準(zhǔn)輸出設(shè)備是控制臺(tái)串慰,即用戶輸出的信息默認(rèn)情況下都會(huì)顯示到控制臺(tái)。

命令 類型 說明
命令 > fileA 輸出重定向 以覆蓋方式把命令的正確輸出內(nèi)容輸出到指定的文件或設(shè)備當(dāng)中
命令 >> fileA 輸出重定向 以追加方式把命令的正確輸出內(nèi)容輸出到指定的文件或設(shè)備當(dāng)中
命令 2> fileA 標(biāo)準(zhǔn)錯(cuò)誤輸出重定向 以覆蓋方式把命令的錯(cuò)誤輸出輸出到指定的文件或設(shè)備當(dāng)中
命令 2>> fileA 標(biāo)準(zhǔn)錯(cuò)誤輸出重定向 以追加方式把命令的錯(cuò)誤輸出輸出到指定的文件或設(shè)備當(dāng)中
命令 > fileA 2>&1 正確輸出和錯(cuò)誤輸出同時(shí)保存 以覆蓋方式把正確輸出和錯(cuò)誤輸出都保存到同一個(gè)文件當(dāng)中
命令 >> fileA 2>&1 正確輸出和錯(cuò)誤輸出同時(shí)保存 以追加方式把正確輸出和錯(cuò)誤輸出都保存到同一個(gè)文件當(dāng)中
命令 &> fileA 正確輸出和錯(cuò)誤輸出同時(shí)保存 以覆蓋方式把正確輸出和錯(cuò)誤輸出都保存到同一個(gè)文件當(dāng)中
命令 &>> fileA 正確輸出和錯(cuò)誤輸出同時(shí)保存 以追加方式把正確輸出和錯(cuò)誤輸出都保存到同一個(gè)文件當(dāng)中
命令 >> fileA 2>>文件B 正確輸出和錯(cuò)誤輸出同時(shí)保存 把正確的輸出追加到文件A中唱蒸,把錯(cuò)誤的輸出追加到文件B中
# ">" 樣例
echo "  { \"master\": \"127.0.0.1\"}" > conf/node_ip.json
kill -9 $FLINK_PID > /dev/null

# ">>" 樣例
echo "FROM ${FLINK_IMAGE_NAME}" >> Dockerfile

# "2>" 樣例
rm $FLINK_DIR/log/* 2> /dev/null
kill -9 $FLINK_PID 2> /dev/null

# "2>&1" 樣例
rm -rf $FLINK_DIR/log/* > /dev/null 2>&1
kill -9 $FLINK_PID >> /dev/null 2>&1
com.huawei.xx.AppMain 2>&1 &
# 后臺(tái)執(zhí)行 main 函數(shù)并以覆蓋方式把正確輸出和錯(cuò)誤輸出

# "&>" 樣例
rm -rf $FLINK_DIR/log/* &> /dev/null
kill -9 $FLINK_PID &>> /dev/null

3.命令執(zhí)行順序

符號(hào) 樣例 說明
; 命令A(yù) ; 命令B 命令A(yù)和命令B順序執(zhí)行邦鲫,且兩者之間沒有任何邏輯聯(lián)系
&& 命令A(yù) && 命令B 只有在 && 左邊的命令A(yù)返回真,&& 右邊的命令B才會(huì)被執(zhí)行
|| 命令A(yù) || 命令B 只有在 || 左邊的命令A(yù)返回家假油宜,|| 右邊的命令B才會(huì)被執(zhí)行
# "&&" 樣例
[ -e "/root/flink/start.sh" ] && echo "file exits"

# "||" 樣例
kill ${FLINK_PID } 2> /dev/null || true

【參考】
1.Shell 教程
2.markdown表格中怎么插入邏輯或符號(hào)|

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市怜姿,隨后出現(xiàn)的幾起案子慎冤,更是在濱河造成了極大的恐慌,老刑警劉巖沧卢,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚁堤,死亡現(xiàn)場離奇詭異,居然都是意外死亡但狭,警方通過查閱死者的電腦和手機(jī)披诗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門撬即,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人呈队,你說我怎么就攤上這事剥槐。” “怎么了宪摧?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵粒竖,是天一觀的道長。 經(jīng)常有香客問我几于,道長蕊苗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任沿彭,我火速辦了婚禮朽砰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喉刘。我一直安慰自己瞧柔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布饱搏。 她就那樣靜靜地躺著非剃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪推沸。 梳的紋絲不亂的頭發(fā)上备绽,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音鬓催,去河邊找鬼肺素。 笑死,一個(gè)胖子當(dāng)著我的面吹牛宇驾,可吹牛的內(nèi)容都是我干的倍靡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼课舍,長吁一口氣:“原來是場噩夢啊……” “哼塌西!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起筝尾,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤捡需,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后筹淫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體站辉,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了饰剥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片殊霞。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖汰蓉,靈堂內(nèi)的尸體忽然破棺而出绷蹲,到底是詐尸還是另有隱情,我是刑警寧澤古沥,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布瘸右,位于F島的核電站,受9級(jí)特大地震影響岩齿,放射性物質(zhì)發(fā)生泄漏太颤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一盹沈、第九天 我趴在偏房一處隱蔽的房頂上張望龄章。 院中可真熱鬧,春花似錦乞封、人聲如沸做裙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锚贱。三九已至,卻和暖如春关串,著一層夾襖步出監(jiān)牢的瞬間拧廊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國打工晋修, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吧碾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓墓卦,卻偏偏與公主長得像倦春,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子落剪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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