天天看點

跟老男孩學Linux運維:Shell程式設計實戰1.2 學好Shell程式設計所需的基礎知識

<b>1.2 學好shell程式設計所需的基礎知識</b>

<b></b>

本節首先來探讨一下在學習shell程式設計之前需要掌握的基礎知識,需要說明的是,并不是必須具備這些基礎知識才可以學習shell程式設計,而是,如果具備了這些基礎知識,那麼就可以把shell程式設計學得更好,領悟得更深。如果隻是想簡單地了解shell腳本語言,那麼就無須掌握太多的系統基礎知識,隻需要會一些簡單的指令行操作即可。

學好shell程式設計并通過shell腳本輕松地實作自動化管理企業生産系統的必備基礎如下:

1)能夠熟練使用vim編輯器,熟悉ssh終端及“.vimrc”等的配置。

在linux下開發shell腳本最常使用的編輯器是vim,是以如果能夠熟練使用并配置好vim的各種進階功能設定,就可以讓開發shell腳本達到事半功倍的效果。這部分内容在本書的第16章有相應的講解,讀者在開始編寫腳本之前可以考慮先看看第16章并搭建出高效的shell開發環境。

說明: 在本書的第16章講解shell腳本開發環境的配置調整和優化時,提到了高效搭建shell開發環境的方法,之是以把這部分内容安排在第16章,是希望讀者能體驗一下比較原始的shell開發過程,然後再來掌握搭建高效的開發環境的方法,老男孩從教學的角度認為這是一個比較好的過程,讀者可以根據自身的情況來決定要不要提前學習第16章,搭建好高效的shell開發環境。

2)要有一定的linux指令基礎,至少需要掌握80個以上linux常用指令,并能夠熟練使用它們(linux系統的常用指令請參見本書的附錄)。

和其他的開發語言(例如python)不同,shell腳本語言很少有可以直接使用的外部函數庫,老男孩就将linux系統的指令看作shell的函數庫,是以,對linux系統常用指令的掌握程度就直接決定了運維人員對shell腳本程式設計的掌握高度。一些shell類圖書在開篇花費大量章節來講解linux基礎指令也許就是因為這點,本書主要側重于shell程式設計企業案例實戰講解,是以不會進行大且全的介紹,也不會過多地講解linux的常用指令,而是采用小而美的實戰政策,本書結尾會以附錄的形式給出常用的linux基礎指令的相關知識。此外,如果讀者想學習linux基礎指令,可以關注老男孩即将出版的新書——《跟老男孩學習linux運維:常用指令實戰》,或者其他相關圖書。

3)要熟練掌握linux正規表達式及三劍客指令(grep、sed、awk)。

linux正規表達式及三劍客指令(grep、sed、awk)是linux系統裡所有指令中最核心的3個指令,每個指令加上正規表達式的知識後,功能都會變得異常強大。如果能夠掌握它們,就可以在編寫shell腳本時輕松很多。如讀者想學習這部分知識,可以關注老男孩即将出版的新書——《跟老男孩學習linux運維:三劍客指令實戰》,或者其他相關圖書。

4)熟悉常見的linux網絡服務部署、優化、日志分析及排錯。

學習shell程式設計最直接的目的就是在工作中對系統及服務等進行自動化管理,是以,如果不熟悉工作中的網絡服務,就會很難使用shell程式設計處理這些服務;如果不掌握網絡服務等知識,就會讓shell開發者的能力大打折扣,甚至學習到的僅僅是shell的文法及簡單的基礎,那麼想要學好shell程式設計的想法也就落空了。需要掌握的基礎網絡服務包括但不限于:crond、rsync、inotify、nginx、php、mysql、keepalived、memcached、redis、nfs、iptables、svn、git,老男孩it教育的老師在教學的過程中也是先講解linux常用指令和系統網絡服務,然後再講解shell程式設計,目的就是不要讓學員僅僅掌握shell的文法皮毛,而是讓他們能在學完shell程式設計之後,自動搭建中型叢集架構等,有關基礎網絡服務的知識可以參考機械工業出版社的《跟老男孩學習linux運維:web叢集實戰》一書,或者其他相關圖書。

繼續閱讀