Bash腳本編程(1)——基礎(chǔ)特性

@(Bash)[基礎(chǔ)特性]


1. 命令別名(alias)

1.1 alias命令實現(xiàn)

  • (1) alias
    顯示當前shell進程所有可用的命令別名;
  • (2) alias NAME='VALUE'
    定義別名NAME撇贺,其相當于執(zhí)行命令VALUE好乐;

注意:在命令行中定義的別名进副,僅對當前shell進程有效叠荠;如果想永久有效墓拜,要定義在配置文件中潮售。
僅對當前用戶:~/.bashrc蚁飒,對所有用戶有效:/etc/bashrc动壤。

Note: 編輯配置給出的新配置不會立即生效;

bash進程重新讀取配置文件:

  • source /path/to/config_file
  • . /path/to/config_file

1.2 撤消別名unalias

unalias [-a] name [name ...]

Note: 如果別名同原命令的名稱淮逻,則如果要執(zhí)行原命令琼懊,可使用"\COMMAND"。

2. glob

bash中用于實現(xiàn)文件名“通配”

2.1 通配符

  • (1) *
    任意長度的任意字符
    a*b

  • (2) ?
    任意單個字符
    a?b

  • (3) []
    匹配指定范圍內(nèi)的任意單個字符
    [0-9]
    [a-z]:不區(qū)分字符大小寫

  • (4) [^]
    匹配指定范圍外的任意單個字符
    [^0-9]

2.2 專用字符集合

  • [:digit:]
    任意數(shù)字爬早,相當于0-9
  • [:lower:]
    任意小寫字母
  • [:upper:]
    任意大寫字母
  • [:alpha:]
    任意大小寫字母
  • [:alnum:]
    任意數(shù)字或字母
  • [:space:]
    空格符號
  • [:punct:]
    標點符號

實戰(zhàn)練習(xí):

1哼丈、顯示/var目錄下所有以l開頭,以一個小寫字母結(jié)尾筛严,且中間出現(xiàn)至少一位數(shù)字的文件或目錄醉旦;
# ls -d /var/l*[0-9]*[[:lower:]]

2、顯示/etc目錄下,以任意一位數(shù)字開頭车胡,且以非數(shù)字結(jié)尾的文件或目錄檬输;
# ls -d /etc/[0-9]*[^0-9]

3、顯示/etc/目錄下匈棘,以非字母開頭褪猛,后面跟了一個字母及其它任意長度任意字符的文件或目錄;
# ls /etc/[^[:alpha:]][[:alpha:]]*

3. Bash的快捷鍵

  • Ctrl+l
    清屏羹饰,相當于clear命令
  • Ctrl+a
    跳轉(zhuǎn)至命令開始處
  • Ctrl+e
    跳轉(zhuǎn)至命令結(jié)尾處
  • Ctrl+c
    取消命令的執(zhí)行
  • Ctrl+u
    刪除命令行首至光村所在處的所有內(nèi)容
  • Ctrl+k
    刪除光標所在處至命令行尾部的所有內(nèi)容

4. Bash的的I/O重定向及管道

打開的文件都有一個 fd : file descriptor (文件描述符),及用來用來描述一個文件的標示符號碳却,其中存放著一些特性信息队秩。

重定向分類:

  • 標準輸入:keyborad, 0
  • 標準輸出:monitor, 1
  • 標準錯誤輸出:monitor, 2

4.1 輸出重定向

格式: COMMAND > NEW_POS, COMMAND >> NEW_POS

相關(guān)標示:

  • >:覆蓋重定向,目標文件中的原有內(nèi)容會被清除昼浦;

  • >>: 追加重定向馍资,新內(nèi)容會追加至目標文件尾部;

  • set -C: 禁止將內(nèi)容覆蓋輸出至已有文件中关噪;強制覆蓋:>|

  • set +C: 打開

  • 2>: 覆蓋重定向錯誤輸出數(shù)據(jù)流鸟蟹;

  • 2>>: 追加重定向錯誤輸出數(shù)據(jù)流;

標準輸出和錯誤輸出各自定向至不同位置

  • COMMAND > /path/to/file.out 2> /path/to/error.out

合并標準輸出和錯誤輸出為同一個數(shù)據(jù)流進行重定向

  • &>:覆蓋重定向

  • &>>:追加重定向

  • COMMAND > /path/to/file.out 2> &1

  • COMMAND >> /path/to/file.out 2>> &1

4.2 輸入重定向

cat << EOF
cat > /path/to/somefile << EOF

4.3 管道使兔、tr命令和tee命令

管道
COMMAND1 | COMMAND2 | COMMAND3 |...

Note:最后一個命令會在當前shell進程的子shell進程中執(zhí)行

tr命令:轉(zhuǎn)換或刪除字符
tr [OPTION]... SET1 [SET2]

tee命令
tee [OPTION]... [FILE]...

將登錄至將前系統(tǒng)上用戶信息中的后3行的信息轉(zhuǎn)換為大寫后保存至/tmp/who.out文件中建钥;
# who | tail -n 3 | tr 'a-z' 'A-Z' > /tmp/who.out

5 文本處理工具

5.1 wc命令

格式:wc [OPTION]... [FILE]...

參數(shù)選項:

  • -l
    lines
  • -w
    words
  • -c
    characters

5.2 cut命令

格式:cut [OPTION]... [FILE]...

參數(shù)選項:

  • -d DELIMITER
    指明分隔符
  • -f FILEDS
  • #: 第#個字段
  • #,#[,#]:離散的多個字段,例如1,3,6
  • #-#:連續(xù)的多個字段, 例如1-6
  • 混合使用:1-3,7

5.3 sort命令

格式:sort [OPTION]... [FILE]...

參數(shù)選項:

  • -f
    忽略字符大小寫
  • -r
    逆序
  • -t DELIMITER
    字段分隔符
  • -k #
    以指定字段為標準排序
  • -n
    以數(shù)值大小進行排序
  • -u
    排序后去重

5.4 uniq命令

格式:uniq [OPTION]... [FILE]...

參數(shù)選項:

  • -c
    顯示每行重復(fù)出現(xiàn)的次數(shù)虐沥;
  • -d
    僅顯示重復(fù)過的行熊经;
  • -u
    僅顯示不曾重復(fù)的行;

Note: 連續(xù)且完全相同方為重復(fù)

留給你一個練習(xí):

以冒號分隔欲险,取出/etc/passwd文件的第6至第10行镐依,并將這些信息按第3個字段的數(shù)值大小進行排序,最后僅顯示的各自的第1個字段

6. 思維導(dǎo)圖

基礎(chǔ)特性
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末天试,一起剝皮案震驚了整個濱河市槐壳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喜每,老刑警劉巖务唐,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異带兜,居然都是意外死亡绍哎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門鞋真,熙熙樓的掌柜王于貴愁眉苦臉地迎上來崇堰,“玉大人,你說我怎么就攤上這事『;澹” “怎么了繁莹?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長特幔。 經(jīng)常有香客問我咨演,道長,這世上最難降的妖魔是什么蚯斯? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任薄风,我火速辦了婚禮,結(jié)果婚禮上拍嵌,老公的妹妹穿的比我還像新娘遭赂。我一直安慰自己,他們只是感情好横辆,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布撇他。 她就那樣靜靜地躺著,像睡著了一般狈蚤。 火紅的嫁衣襯著肌膚如雪困肩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天脆侮,我揣著相機與錄音锌畸,去河邊找鬼。 笑死靖避,一個胖子當著我的面吹牛蹋绽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播筋蓖,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼卸耘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了粘咖?” 一聲冷哼從身側(cè)響起蚣抗,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瓮下,沒想到半個月后翰铡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡讽坏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年锭魔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片路呜。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡迷捧,死狀恐怖织咧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情漠秋,我是刑警寧澤笙蒙,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站庆锦,受9級特大地震影響捅位,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜搂抒,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一艇搀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧求晶,春花似錦焰雕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽右莱。三九已至蚜锨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間慢蜓,已是汗流浹背亚再。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晨抡,地道東北人氛悬。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像耘柱,于是被迫代替她去往敵國和親如捅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

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