Linux命令行與Shell腳本編程 ( 簡體 字) |
作者:何偉娜 郝軍 | 類別:1. -> 作業系統 -> Linux |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 54780 詢問書籍請說出此書號!【有庫存】 NT售價: 495 元 |
出版日:7/1/2021 |
頁數:390 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302582229 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:讀懂本書 當前Unix/Linux操作系統已經占據了操作系統的半壁江山,能操作這些系統的人才卻非常缺乏,大部分初學者都習慣使用Windows。即使許多初學者學會了使用Linux系統,對一些Linux下的腳本開發和運維技能卻無法快速掌握。本書的目的就是解決這兩個痛點: 一是讓初學者平滑地從Windows過渡到Linux,書中有很多Windows和Linux系統的對比,初學者可以通過對比深入了解Linux系統的文檔結構。 二是讓初學者掌握Linux系統下提高運維效率的工作技巧,這就是使用Shell實現更多的自動化運維。目前,掌握Shell腳本基本編程技能已經成為各大公司面試運維人員的主要要求。 也就是說,只有學好了Shell腳本,才能更高效地做好Linux的日常維護工作。 目前圖書市場上關于Shell編程開發的圖書不少,但真正從實際應用出發,能夠詳盡地介紹相關知識,以供沒有任何Linux基礎的讀者來學習的圖書卻很少。本書使用Ubuntu Server 20系統,以簡明和入門為主旨,講解從易到難、由淺及深,讓讀者全面、深入地理解Shell編程開發以及Linux系統管理的基本知識,從而從根本上提高讀者的系統管理水平,幫助讀者掌握利用腳本進行自動化運維的技能。 本書特色 1. 源碼單獨成章 本書中的源代碼按照章節的順序單獨放置,并且每個示例腳本都通過了驗證,便于讀者借鑒和使用。 2. 涵蓋Shell編程開發用到的幾乎全部常用知識 本書涵蓋Shell編程開發過程中常用的、幾乎全部的知識,內容詳盡。既可以作為初級學者的學習教材,也可以作為一般Linux系統運維人員的工具書,方便隨時查閱。 3. 項目案例典型,實戰行強,有較高的應用價值 本書最后三章分別提供了三類腳本實戰案例。這些案例來源于作者所開發的實際應用,具有較高的應用價值和參考價值。這些案例功能分析詳細,便于讀者融會貫通地理解本書中所介紹的腳本編程技術。另外,這些案例稍加修改,便可用于實際腳本開發中。 本書內容 第1章 初識Linux系統 本章主要介紹Linux系統的基礎知識。內容包括Linux系統基礎、文件系統基礎、Linux系統的登錄與退出以及系統基本選項配置。 第2章 走進Shell 本章主要介紹Shell腳本的基礎知識。內容包括Shell腳本基礎內容、如何使用Shell終端、Shell命令格式,以及如何編寫最簡單的Shell腳本。 第3章 Bash Shell基礎命令 本章主要介紹Shell命令使用基礎。內容包括文件類型、文件路徑、文件屬性、文件權限、用戶和用戶組以及幾個特殊目錄。除此之外,還介紹用戶和用戶組管理的相關命令、文件和目錄操作的相關命令、系統管理的相關命令等。 第4章 更多的Bash Shell命令 本章主要介紹Linux系統下程序監測相關命令、磁盤空間監測相關命令、文件處理相關命令,這些命令能夠幫助我們更好地使用Linux系統。 第5章 變量和環境變量 本章主要介紹如何在Shell腳本中使用變量。內容涉及變量的簡單使用、如何輸入和輸出變量、特殊變量的使用、環境變量的設定與使用、特殊的變量數組和字符串的使用。 第6章 使用特殊符號 本章主要介紹特殊符號在編寫Shell腳本時的使用方式。內容涉及引號在Shell腳本中的應用(包括單引號、雙引號和倒引號)、通配符和元字符的使用、管道的使用、其他特殊字符(如后臺運行符、括號、分號等)的使用。 第7章 管理文件系統 本章主要介紹如何管理Linux文件系統。內容涵蓋日志文件系統基礎、創建分區、創建文件系統、文件系統的檢查與修復等。 第8章 使用編輯器 本章主要介紹如何在Linux系統中使用文本編輯器進行腳本的編寫。內容包括Linux系統中常用的文本編輯器vim、nano、Emacs、GNOME編輯器的使用。 第9章 結構化命令 本章主要介紹結構化命令的使用方式。內容包括條件測試命令的使用、if分支結構的使用、case分支結構的使用。 第10章 Shell中的循環結構 本章主要介紹如何在Shell腳本中使用循環結構。內容涵蓋for循環結構的使用、while循環結構的使用、循環嵌套的使用、循環控制符break、continue的使用等。 第11章 創建函數 本章主要介紹函數在Shell腳本中的使用方式。內容涉及函數的基本用法、函數的返回值、函數中全局變量和局部變量的區別,以及數組在函數的中的作用、函數的遞歸使用、函數的嵌套。 第12章 處理用戶輸入 本章主要介紹如何在腳本執行時處理用戶輸入信息。內容涉及命令行參數、特殊參數變量、處理選項、選項標準化、獲取用戶輸入。 第13章 呈現數據 本章主要介紹Shell編程時如何處理輸出信息。內容包括輸入和輸出的基本知識、重定向輸出、重定向輸入、創建自己的重定向,以及在處理輸出時的常用操作,如列出文件描述符、清空命令輸出、記錄消息等。 第14章 圖形化桌面環境中的腳本編程 本章主要介紹如何使用Shell腳本來進行圖形化編程。內容涉及dialog軟件包的使用、在Shell腳本運行時添加顏色效果、菜單的創建等。 第15章 安裝軟件程序 本章主要介紹如何安裝軟件程序。內容包括包管理基礎、基于Debian的包管理以及基于Red Hat的包管理。 第16章 正則表達式 本章主要介紹正則表達式的使用。內容包括正則表達式的基本介紹、正則表達式中的常用符號,以及正則表達式的實戰練習。 第17章 grep命令 本章主要介紹如何在Shell腳本中使用grep命令。內容涉及grep的基本使用方式以及常用選項的使用、grep命令和正則表達式的協同使用、grep命令和系統命令的協同使用。 第18章 sed編程 本章主要介紹如何在Shell腳本中使用sed命令。內容涉及sed基本知識、sed的使用及其使用示例。 第19章 gawk編程 本章主要介紹gawk命令的使用方式。內容涵蓋gawk概述、變量在gawk中的使用、各種結構在gawk中的使用、函數在gawk中的使用。 第20章 腳本控制 本章主要介紹如何在Linux系統中控制腳本的執行。內容包括Linux信號控制機制、開機運行腳本的方法、后臺運行腳本的方法、腳本運行優先級管理。 第21章 Shell腳本系統管理實戰 本章主要介紹Shell腳本來完成系統的管理。內容涉及系統監測腳本的編寫、計劃任務的實現、網絡管理、日志管理。 第22章 Shell腳本數據庫操作實戰 本章主要介紹如何在Shell腳本中操作數據庫。內容涵蓋Linux系統中的基本數據庫:SQLite、MySQL、SQL語言,以及如何在Shell中執行SQL語句,最后還有一個圖書管理系統的操作實例。 第23章 兩個Shell腳本編程實戰 本章主要通過創建日志文件和遠程復制文件兩個操作來介紹Shell腳本的編程方法。內容包括date命令和cut命令、scp命令和fput命令、如何創建日志文件、如何進行遠程復制文件。 本書讀者 ? Linux系統管理員與網絡管理員; ? Linux系統運維人員; ? Shell編程初學者; ? Linux系統初學者; ? 希望提高Shell編程水平的人員; ? 高等院校和專業培訓機構Linux課程教學的師生; ? 需要一本案頭必備查詢手冊的從業人員。 本書作者 本書第1~15章由平頂山學院的何偉娜創作,第16~23章由郝軍創作。 源碼下載 源碼下載,請用微信掃描右邊二維碼,可按掃描出來的頁面填寫自己的郵箱,把鏈接轉發到郵箱中下載。如果學習本書過程中發現問題,請聯系,郵件主題為“Linux命令行與Shell腳本編程”。
作者 2021年4月 |
內容簡介:現在Linux系統的應用越來越廣泛,而在Linux系統下的自動化運維工作也越來越多,使用Shell腳本可以通過自動化運維來提高運維效率。本書是一本純粹的Linux系統管理與Shell編程入門書,目的是幫助讀者理解Linux系統,并學會使用Shell腳本來完成Linux下各種復雜的運維工作。 本書共23章,內容包括初識Linux和Shell、走進Shell、Bash Shell基礎命令、更多的Bash Shell命令、變量和環境變量、使用特殊符號、管理文件系統、使用編輯器、結構化命令、Shell中的循環結構、創建函數、處理數據的輸入、處理數據的輸出、圖形化Shell編程、安裝軟件程序、正則表達式、grep命令、sed編程、gawk編程、腳本控制、Shell腳本系統管理實戰、Shell腳本數據庫操作實戰、兩個Shell腳本編程實戰。 本書內容詳盡、示例豐富,適合Linux初學者、Shell編程初學者、自動化運維腳本開發人員閱讀,可作為Linux系統運維人員的參考書,也可作為高等院校和培訓機構計算機相關專業的補充教材。 |
目錄:第1章初識Linux和Shell 1 1.1Linux系統基礎 1 1.1.1Linux系統的發展 1 1.1.2Linux系統和Windows系統的 區別 2 1.1.3Linux的啟動過程 3 1.2Linux文件系統基礎 6 1.2.1必須了解的節點inode 6 1.2.2Linux系統文件結構 7 1.3學會Linux系統的基本使用 10 1.3.1系統的登錄與退出 10 1.3.2系統的基本配置 12 1.4初識Shell 13 1.4.1什么是Shell 13 1.4.2Shell在Linux系統中的 作用 13 1.4.3Shell的種類 14 1.5小結 15 第2章走進Shell 16 2.1Shell腳本語言概述 16 2.1.1Shell腳本語言的定義 16 2.1.2Shell終端的基本使用 17 2.1.3Shell終端菜單的使用 17 2.2Shell命令格式介紹 18 2.2.1Shell命令格式 19 2.2.2命令行界面介紹 19 2.2.3在Linux系統中如何獲取 幫助 20 2.3第一個Shell程序:Hello, BashShell 22 2.3.1創建Shell腳本 22 2.3.2Shell腳本中的格式 26 2.3.3如何執行Shell程序 26 2.4小結 28 第3章BashShell基礎命令 29 3.1Shell命令使用基礎 29 3.1.1文件類型 29 3.1.2絕對路徑和相對路徑 30 3.1.3文件屬性和文件權限 31 3.1.4用戶和用戶組 32 3.1.5特殊目錄介紹 37 3.2用戶和用戶組管理 38 3.2.1用戶管理常用命令 38 3.2.2用戶組管理常用命令 41 3.2.3其他常用命令 43 3.3文件和目錄操作 46 3.3.1文件操作常用命令 46 3.3.2目錄操作常用命令 50 3.3.3文件權限管理常用命令 54 3.3.4查找文件常用命令 56 3.4系統管理 57 3.4.1網絡操作常用命令 57 3.4.2磁盤信息查看常用命令 61 3.5小結 62 第4章更多的BashShell命令 63 4.1監測程序 63 4.1.1探查進程——ps命令 63 4.1.2實時監測進程——top命令 64 4.1.3結束進程——kill命令 66 4.1.4查看內存空間——free命令 66 4.2監測磁盤空間 67 4.2.1掛載外部存儲—— mount命令 67 4.2.2卸載外部存儲—— umount命令 68 4.2.3顯示剩余磁盤空間—— df命令 69 4.2.4計算磁盤使用量—— du命令 69 4.3處理數據文件 70 4.3.1排序數據——sort命令 70 4.3.2搜索數據——grep命令 71 4.3.3壓縮數據——gzip命令 73 4.3.4打包數據——ar命令 74 4.4小結 75 第5章變量和環境變量 77 5.1變量的簡單使用 77 5.1.1變量的使用 77 5.1.2變量的輸入 79 5.1.3變量的輸出命令echo 84 5.2Shell中特殊變量的使用 88 5.2.1位置參數介紹 88 5.2.2$@和$*的區別 89 5.3環境變量的使用 90 5.3.1Shell中的環境變量 90 5.3.2環境變量的配置文件 93 5.3.3全局環境變量和本地環境 變量 95 5.3.4環境變量的設定 97 5.3.5環境變量的取消 98 5.4小結 99 第6章使用特殊符號 100 6.1引號的使用 100 6.1.1單引號的使用 101 6.1.2雙引號的使用 102 6.1.3倒引號的使用 103 6.2通配符和元字符 103 6.2.1使用通配符 104 6.2.2使用元字符 107 6.3管道 110 6.4其他特殊字符介紹 111 6.4.1后臺運行符 111 6.4.2括號 112 6.4.3分號 114 6.5小結 115 第7章管理文件系統 116 7.1探索Linux文件系統 116 7.1.1日志文件系統 116 7.1.2必備的基礎知識 117 7.2管理文件系統 117 7.2.1創建分區 117 7.2.2創建文件系統 121 7.2.3文件系統的檢查與修復 122 7.3小結 122 第8章使用編輯器 123 8.1vim編輯器 123 8.1.1檢查vim軟件包 123 8.1.2vim基礎 125 8.1.3編輯數據 127 8.1.4復制和粘貼 130 8.1.5查找和替換 131 8.2nano編輯器 132 8.2.1檢查nano軟件包 132 8.2.2nano編輯器的基本操作 132 8.3Emacs編輯器 134 8.3.1檢查Emacs軟件包 134 8.3.2使用Emacs 136 8.4GNOME編輯器 138 8.4.1啟動Gedit 138 8.4.2基本的Gedit功能 139 8.5小結 141 第9章結構化命令 142 9.1測試命令的使用 142 9.1.1測試命令的基礎結構 142 9.1.2測試文件類型 144 9.1.3測試字符串 148 9.1.4測試數值 150 9.1.5復合測試條件 151 9.2if分支結構 153 9.2.1if-then結構 153 9.2.2if-then-else結構 154 9.2.3嵌套結構 156 9.3case多條件分支結構 159 9.3.1case結構基礎 159 9.3.2在Shell腳本中使用 case結構 161 9.3.3select命令的使用 162 9.4小結 163 第10章Shell中的循環結構 164 10.1for循環 164 10.1.1使用for-in結構 164 10.1.2C式for結構 168 10.2while命令的使用 170 10.2.1使用while結構 171 10.2.2多條件的while結構 172 10.2.3使用until命令 172 10.3命令的嵌套 174 10.3.1for命令的嵌套 174 10.3.2while命令的嵌套 177 10.3.3until命令的嵌套 179 10.4循環控制符 180 10.4.1使用break中斷 180 10.4.2使用continue命令 183 10.5小結 184 第11章創建函數 185 11.1腳本函數的基本用法 185 11.1.1函數的創建與使用 185 11.1.2函數的參數 187 11.2函數的返回值 189 11.2.1返回值基礎 189 11.2.2函數的默認返回值 190 11.2.3return命令的使用 191 11.2.4使用函數的返回值 192 11.3函數中的全局變量和局部變量 193 11.3.1全局變量 193 11.3.2局部變量 194 11.4數組與函數 195 11.4.1數組作為函數參數 195 11.4.2數組作為函數返回值 196 11.5腳本函數遞歸 197 11.6函數的嵌套調用 199 11.7小結 200 第12章處理數據的輸入 201 12.1命令行參數 201 12.1.1讀取參數 202 12.1.2讀取腳本名 203 12.1.3測試參數 204 12.2特殊參數變量 206 12.2.1參數統計 206 12.2.2獲取所有的參數 207 12.3特殊的輸入方式 208 12.3.1移動變量 208 12.3.2讀取文件 209 12.4將選項標準化 210 12.5小結 211 第13章處理數據的輸出 212 13.1理解輸入和輸出 212 13.1.1標準文件描述符 213 13.1.2重定向 213 13.2在腳本中重定向輸出 214 13.2.1重定向 214 13.2.2追加重定向 215 13.2.3永久重定向 216 13.3在腳本中重定向輸入 217 13.4創建自己的重定向 218 13.4.1創建輸出文件描述符 219 13.4.2創建輸入文件描述符 219 13.4.3關閉文件描述符 220 13.5其他常用操作 221 13.5.1列出打開的文件 描述符 222 13.5.2清空命令輸出 223 13.5.3記錄消息 224 13.6小結 225 第14章圖形化Shell編程 226 14.1創建文本菜單 226 14.1.1創建菜單 226 14.1.2創建子菜單函數 227 14.1.3腳本的整合——實現一個 計算器 229 14.1.4使用select命令實現 菜單 230 14.2制作窗口 232 14.2.1使用dialog包 232 14.2.2dialog幫助選項 232 14.2.3dialog命令的使用 234 14.2.4常用窗口示例 238 14.3顏色的使用 243 14.4小結 246 第15章安裝軟件程序 247 15.1包管理基礎 247 15.2基于Debian的系統 248 15.2.1包倉庫 248 15.2.2搜索軟件包 250 15.2.3安裝軟件包 251 15.2.4更新軟件包 252 15.2.5卸載軟件包 252 15.3基于RedHat的系統 253 15.3.1yum命令使用簡介 253 15.3.2列出已安裝包 254 15.3.3使用yum安裝軟件 256 15.3.4使用yum更新軟件 258 15.3.5使用yum卸載軟件 258 15.3.6處理損壞的包依賴 關系 260 15.4小結 260 第16章正則表達式 261 16.1正則表達式基礎 261 16.1.1正則表達式的定義 261 16.1.2正則表達式的分類 262 16.2基本正則表達式的常用符號 263 16.2.1使用點字符匹配 單字符 263 16.2.2使用定位符 264 16.2.3使用“*”匹配字符串中的 單字符或其重復序列 266 16.2.4使用“”屏蔽一個特殊 字符的含義 267 16.3擴展正則表達式的常用符號 267 16.3.1使用“[]”匹配一個范圍 或集合 268 16.3.2使用“\{\}”匹配模式結果出現的次數 268 16.3.3問號的使用 269 16.4小結 270 第17章grep命令 271 17.1grep的基礎使用 271 17.1.1grep命令的基本使用 方式 271 17.1.2grep選項 273 17.1.3行數 273 17.1.4大小寫敏感 274 17.1.5顯示非匹配行 276 17.1.6查詢多個文件或多個 關鍵字 277 17.2grep和正則表達式 279 17.2.1模式范圍以及范圍 組合 279 17.2.2定位符的使用 280 17.2.3字符匹配 281 17.2.4模式出現機率 282 17.2.5匹配特殊字符 283 17.3grep命令的擴展使用 284 17.3.1類名的使用 284 17.3.2egrep命令的使用 285 17.3.3fgrep命令的使用 287 17.4grep命令使用示例 288 17.4.1目錄搜索——查找特定 目錄或文字 288 17.4.2使用ps命令檢索特定的 進程 289 17.5小結 289 第18章sed編程 291 18.1認識sed 291 18.1.1sed工作模式 291 18.1.2sed常用指令 292
18.1.3sed常用選項 293 18.1.4sed地址范圍 294 18.2sed編輯器常用命令 295 18.2.1替換命令的使用 296 18.2.2刪除命令的使用 297 18.2.3文本的添加和替換 298 18.3高級sed編程 300 18.3.1同時處理多行數據 300 18.3.2sed編輯器的空間 301 18.3.3sed編輯器的反向 302 18.3.4重定向sed的輸出 303 18.4小結 304 第19章gawk編程 305 19.1gawk概述 305 19.1.1gawk基本介紹 305 19.1.2gawk基本使用 307 19.2變量的使用 310 19.2.1內置變量的使用 310 19.2.2自定義變量的使用 312 19.2.3數組的使用 313 19.3結構的使用 314 19.3.1條件結構的使用 314 19.3.2循環結構的使用 317 19.3.3循環結構控制語句 319 19.4函數的使用 320 19.4.1算術函數的使用 321 19.4.2字符串處理函數的 使用 322 19.4.3時間函數的使用 324 19.5小結 326
第20章腳本控制 327 20.1Linux信號控制 327 20.1.1Linux信號機制簡介 327 20.1.2使用Shell腳本操作 信號 329 20.2進程的控制 331 20.2.1后臺運行符介紹 331 20.2.2運行進程的控制 333 20.2.3nohup命令的使用 334 20.3腳本運行的優先級 335 20.3.1優先級介紹 335 20.3.2使用nice指定優先級 336 20.3.3使用renice重置 優先級 337 20.4小結 338 第21章Shell腳本系統管理實戰 339 21.1系統監測 339 21.1.1系統監控基礎 339 21.1.2Ubuntu自帶的系統監控 工具 343 21.1.3監控腳本的編寫 344 21.2計劃任務的實現 345 21.2.1at命令的使用 346 21.2.2atq命令的使用 351 21.2.3cron的使用 352 21.3網絡管理 354 21.3.1網絡配置 354 21.3.2服務器的安裝 358 21.4日志管理 360 21.4.1日志簡介 360 21.4.2守護進程syslogd 361
21.4.3日志的備份操作 364 21.4.4日志的定時操作 365 21.5小結 366 第22章Shell腳本數據庫操作 實戰 367 22.1Linux系統中的數據庫 367 22.1.1SQLite簡介 367 22.1.2SQLite的圖形化操作 370 22.1.3MySQL簡介 372 22.2SQL語句 375 22.2.1SQL語言基本介紹 375 22.2.2基本的SQL操作 376 22.2.3在Shell腳本中執行SQL 語句 378 22.3實戰:圖書管理系統中數據庫 操作 379 22.3.1數據庫操作基本流程 380 22.3.2創建表 380 22.3.3增加圖書信息 381 22.3.4修改圖書信息 382 22.3.5刪除圖書信息 383 22.4小結 383 第23章兩個Shell腳本編程實戰 384 23.1創建日志文件 384 23.1.1功能分析 384 23.1.2創建腳本 386 23.2遠程復制文件 387 23.2.1功能分析 387 23.2.2創建腳本 389 23.3小結 390 |
序: |