# 《Shell企業級應用》
> 歡迎閱讀《Shell企業級應用》,筆者平日工作有些忙大部分是業余時間來整理,由于個人能力有限如有刊誤請郵件8851970@qq.com謝謝。
# 為什么寫這本書
最近在轉型,從一名運維工程師轉型到產品經理,做了多年的運維寫了多年的程序總是在與機器打交道,如果把我做的事情比作程序語言,之前的工作經歷更多的像程序中的常量沒有變化,后續更多希望與人打交道而人更像變量,我想這也可以更多的豐富我的人生經歷,所以在這個背景的基礎上整理了《Shell企業級應用》這本書也是對過去的一個總結,在整理資料的過程中吃驚的發現多年前甚至在上學時整理的資料目前依然適用,重新整理其實也是重新學習它的過程,這里我也在想多年前的人是在什么基礎上設計出了這么nb的系統直到目前依然適用且目前還看不到邊際,我們從中學到的不應該是程序而是做事情的一些方法。
我在最早接觸Shell編程時應該看得是《Shell編程第三版》這本書不過很早就已經絕版了,我看到的應該是印刷的版本這本書反復看了幾次,隨著時間推移每看一次都會有新的收獲確實是一本不錯的書除了這本書外還看過一本可口可樂公司系統管理員寫的Bash在企業應用的書,另外就是網上當年Chinaunix.net一些熱心人士整理的文章,推薦的網絡版本書等,但是發現這些書大部分情況沒有結構和連貫性,所以將這些書進行了匯總并由淺入深結合自己的工作經歷和經驗來介紹Bash學習過程,希望對大家能有幫助。
最后,這本書送給Bash設計者和曾經的參與者也送給自己還有那些懂得珍惜時間的人。
2018.11.3 by 研究僧 \* 深圳南山科技園。
# 學前資源
之前筆者在錄制了Linux相關課程可以作為學習Shell的前置資源,視頻相關地址見:https://edu.csdn.net/course/detail/8123
# 
# 書的目錄
# 
# 本書參考
1.Bash高級編程指南 [http://teliute.org/linux/abs-3.9.1/testconstructs.html](http://teliute.org/linux/abs-3.9.1/testconstructs.html)
2.Shell十三問 [https://github.com/wzb56/13\_questions\_of\_shell](https://github.com/wzb56/13_questions_of_shell)
3.[https://toutiao.io/search?utf8=?&q=orroz](https://toutiao.io/search?utf8=?&q=orroz)
4.Bash最佳實踐\[[http://bash.cumulonim.biz/BashPitfalls.html](http://bash.cumulonim.biz/BashPitfalls.html)\]
# 感謝
本書介紹內容均使用騰訊云的云主機特此感謝。
# 
- Introduction
- 1.Shell編程基礎
- 什么是Shell
- 編寫第一個Bash程序
- 2.變量
- 什么是變量
- 變量四種賦值方式
- 指定變量類型
- 變量的類型
- 特殊變量
- 3.Bash符號相關
- Bash符號相關
- 特殊符號
- 數學運算符號
- 4.內建命令與外部命令
- 內建命令與外部命令
- 5.read命令
- read命令
- 6.條件語句
- if..then..fi
- if..then..else..fi
- if..then..elif..fi
- 空命令
- 文件測試符
- 字符串判斷、與、或和非
- []與[[]]符號
- 7.Bash循環 && 分支語句
- while循環語句
- for循環
- for..in循環
- until循環
- select循環
- case分支語句
- 8.正則表達式
- 正則表達式
- 9.子Shell和受限Shell
- 子Shell
- 受限Shell
- 10.函數與函數的加載
- 函數語法與案例
- 遞歸函數
- 函數的加載
- 11.Bash腳本風格
- Bash腳本風格
- 12.Bash腳本調試
- Bash腳本調試
- 13.sed && awk
- sed
- 14.awk
- awk
- 15 Bash雜項 && 案例
- while循環的陷阱
- Bash的生命周期
- IO重定向
- /bin/bash和/bin/sh區別
- 命令雜項
- Shell加密
- 16.10.2.案例
- Bash版回收站
- 17.Bash中文速查表
- 中文速查表