Linux Shell 編程從入門到精通, 2/e
張昊 程國鋼
買這商品的人也買了...
-
$403ELK Stack 權威指南, 2/e
-
$266區塊鏈項目開發指南
-
$653數據密集型應用系統設計 (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems)
-
$834$792 -
$480$408 -
$720$562 -
$551基於 Kubernetes 的 DevOps 實踐:容器加速軟件交付
-
$834$792 -
$352零基礎快速入行入職軟件測試工程師
-
$620$484 -
$653$614 -
$480$360 -
$556MySQL 是怎樣運行的 -- 從根兒上理解 MySQL
-
$352gRPC 與雲原生應用開發 : 以 Go 和 Java 為例
-
$505區塊鏈應用開發指南 : 業務場景剖析與實戰
-
$500$390 -
$403區塊鏈超入門, 2/e
-
$734掌握分佈式跟蹤:微服務和復雜系統性能分析
-
$580$458 -
$806深入理解 Go 並發編程:從原理到實踐,看這本就夠了
相關主題
商品描述
本書由淺入深、循序漸進地詳細講解了LinuxShell編程的基本知識。這些基本知識包括Shell編程的基本知識、文本處理的工具和方法、正則表達式、Linux系統知識等。
本書旨在通過理清Linux Shell編程的脈絡,從基本概念著手,以豐富、實用的範例作為輔助,使讀者能夠深入淺出的學習LinuxShell編程。
本書的每一章節都配有綜合案例,這些綜合案例不僅可以使讀者復習前面所學的知識,還可以增加開發項目的經驗。這些案例實用性很強,許多代碼可以直接應用到Linux系統管理中。
本書配有全程錄像的視頻講解光盤,讀者可以將視頻和書結合起來學習,可以更快、更好地掌握Linux Shell編程技術。
本書適合於Linux Shell編程的初學者,有一定LinuxShell編程基礎,但還需要進一步提高的人閱讀。本書對於有一定編程經驗的程序員也有很好的參考價值。
作者簡介
張昊,畢業於南京大學理學院,南京大學開源愛好者組織創始人、南京Linux 使用者組織(NJLUG) 創始人,曾經任職於千橡互動從事底層引擎的開發,編寫《Linux Shell編程從入門到精通》。
程國鋼,北京航空航天大學博士,有豐富的教學科研技術經驗,開設單片機教學課程,承擔過基於嵌入式的國家863級課題、院級別和國家氣象局項目,有多本圖書編寫經驗。
目錄大綱
第1章初識Shell程序
1.1第一道菜
1.2如何運行程序
1.2.1選婿:位於第一行的#!
1.2.2找茬:程序執行的差異
1.2. 3 shell的命令種類
1.3 Linux Shell的變量
1.3.1變量
1.3.2用echo輸出變量
1.3.3環境變量的相關操作
1.3.4 shell中一些常用環境變量
1. 4 Linux Shell是解釋型語言
1.4.1編譯型語言與解釋型語言
1.4.2 Linux Shell編程的優勢
1.5小結
第2章Shell編程基礎
2.1向腳本傳遞參數
2.1. 1 Shell腳本的參數
2.1.2參數的用途
2.2 I/O重定向
2.2.1標準輸入、標準輸出與標準錯誤
2.2.2管道與重定向
2.2.3文件描述符
2.2.4特殊文件的妙用
2.3基本文本檢索
2.4 UNIX/Linux系統的設計與shell編程
2.4.1一切皆文件
2.4.2 UNIX編程的基本原則
2.5小結
第3章編程的基本元素
3.1再識變量
3.1.1用戶變量
3.1.2位置變量
3.1.3環境變量
3.1.4啟動文件
3.2函數
3.2.1函數定義
3.2.2函數的參數和返回值
3.3條件控制與流程控制
3.3.1 if/else語句
3.3.2退出狀態
3.3.3退出狀態與邏輯操作
3.3.4條件測試
3.4循環控制
3.4.1 for循環
3.4.2 while/until循環
3.4.3跳出循環
3.4.4循環實例
3.5小結
第4章正則表達式
4.1什麼是正則表達式
4.1.1正則表達式的廣泛應用
4.1.2如何學習正則表達式
4.1.3如何實踐正則表達式
4.2正則基礎
4.2.1元字符
4.2.2單個字符
4.2.3單個表達式匹配多個字符
4.2.4文本匹配錨點
4.2.5運算符優先級
4.2.6更多差異
4.3正則表達式的應用
4.3. 1擴展
4.3.2案例研究:羅馬數字
4.3.3案例研究:解析電話號碼
4.4小結
第5章基本文本處理
5.1排序文本
5.1.1 sort命令的行排序
5.1. 2 sort命令的字段排序
5.1.3 sort小結
5.2文本去重
5.3統計文本行數、字數以及字符數
5.4打印和格式化輸出
5.4.1使用pr打印文件
5. 4.2使用fmt命令格式化文本
5.4.3使用fold限製文本寬度
5.5提取文本開頭和結尾
5.6字段處理
5.6.1字段的使用案例
5.6.2使用cut取出字段
5.6.3使用join連接字段
5.6.4其他字段處理方法
5.7文本替換
5.7.1使用tr替換字符
5.7.2其他選擇
5.8一個稍微複雜的例子
5.8 .1實例描述
5.8.2取出記錄的ip字段和id字段
5.8.3將記錄按照IP順序排序
5.8.4使用uniq統計重複IP
5.8.5根據訪問次數進行排序
5. 8.6提取出現次數最多的100條
5.9小結
第6章文件和文件系統
6.1文件
6.1.1列出文件
6.1.2文件的類型
6.1.3文件的權限
6.1.4文件的修改時間
6.2尋找文件
6 .2.1 find命令的參數
6.2.2遍歷文件
6.3比較文件
6.3.1使用comm比較排序後文件
6.3.2使用diff比較文件
6.3.3其他文本比較方法
6 .4文件系統
6.4.1什麼是文件系統
6.4.2文件系統與磁盤分區
6.4.3 Linux分區格式的選擇與安全性
6.4.4文件系統與目錄樹
6.4. 5文件系統的創建與掛載
6.5小結
第7章流編輯
7.1什麼是sed
7.1.1挑選編輯器
7.1.2 sed的版本
7.2 sed示例
7.2.1 sed的工作方式
7.2.2 sed工作的地址範圍
7.2.3規則表達式
7.3更強大的sed功能
7.3.1替換
7.3.2地址範圍的迷惑
7.4組合命令
7 .4.1組合多條命令
7.4.2將多條命令應用到一個地址範圍
7.5實際的例子
7.6 sed實踐
7.6.1第一步替換名字
7.6.2第二步刪除前3行
7.6 .3第三步顯示5~10行
7.6.4第四步刪除包含Lane的行
7.6.5第五步顯示生日在November-December之間的行
7.6.6第六步把3個星號(***)添加到以Fred開頭的行
7.6.7第七步用JOSE HASRETIRED取代包含Jose的行
7.6.8第八步把Popeye的生日改成11/14/ 46
7.6.9第九步刪除所有空白行
7.6.10第十步腳本
7.7小結
第8章文本處理利器awk
8.1來個案例
8.2基本語法
8.2.1多個字段
8.2.2使用其他字段分隔符
8.3 AWK語言特性
8.3.1 AWK代碼結構
8.3.2變量與數組
8.3.3算術運算和運算符
8.3.4判斷與循環
8.3.5多條記錄
8.4用戶自定義函數
8.4.1自定義函數格式
8.4.2引用傳遞和值傳遞
8.4.3遞歸調用
8.5字符串與算術處理
8.5.1格式化輸出
8.5.2字符串函數
8.5.3算術函數
8.6案例分析
8.6.1生成數據報表
8.6.2多文件聯合處理
8.6.3檢驗passwd格式的正確性
8.6.4 sed/awk單行腳本
8.7小結
第9章進程
9.1進程的含義與查看
9.1.1理解進程
9.1 .2創建進程
9.1.3查看進程
9.1.4進程的屬性
9.2進程管理
9.2.1進程的狀態
9.2.2 shell命令的執行
9.2.3進程與任務調度
9.3信號
9.3.1信號的基本概念
9.3.2產生信號
9.4 Linux的第一個進程init
9.5案例分析:Linux系統中管道的實現
9.6調度系統任務
9. 6.1任務調度的基本介紹
9.6.2調度重複性系統任務(cron)
9.6.3使用at命令
9.7進程的窗口/proc
9.7.1 proc——虛擬文件系統
9. 7.2查看/proc的文件
9.7.3從proc獲取信息
9.7.4通過/proc與內核交互
9.8 Linux的線程簡介
9.8.1 Linux線程的定義
9.8.2 Pthread線程的使用場合
9.8. 3 Linux進程和線程的發展
9.9小結
第10章超級工具
10.1不同的shell
10.1.1修改登錄shell和切換shell
10.1.2選擇shell
10.2 SSH
10.2.1 SSH的安全驗證機制
10.2.2使用SSH登錄遠程主機
10.2.3 OpenSSH密鑰管理
10.2.4配置SSH
10.2.5使用SSH工具套裝拷貝文件
10.3 screen工具
10.3. 1任務退出的元兇:SIGHUP信號
10.3.2開始使用screen
10.3.3 screen常用選項
10.3.4實例:ssh+screen管理遠程會話
10.4文本編輯工具Vim
10.4.1為什麼選擇Vim
10.4.2從何處獲取Vim
10.4.3 Vim的工作模式
10.4.4首次接觸:step by step
10.4.5鼠標的移動
10.4.6基本編輯指令
10.4.7複製(yank)
10.4.8搜尋、替換
10.5小結
第11章Linux