Linux 系統命令及 Shell 腳本實踐指南
內容描述
<內容簡介>
王軍編著的《Linux系統命令及Shell腳本實踐指南》由淺入深、全面、系統地介紹了Linux系統的基礎命令和Shell腳本的開發。作為一本面向Linux入門用戶的書籍,本書力求語言通俗易懂,用例簡單明瞭,便於讀者閱讀領會。同時,全書穿插了不少要求讀者動手實踐的內容,不但可加深讀者對內容的理解和消化,同時也可通過動手實踐激發讀者對Linux系統和Shell編程的興趣,從而更好地驅動讀者學習。 《Linux系統命令及Shell腳本實踐指南》共計18章,從知識結構上分為三部分。第一部分為前8章,全面介紹了Linux的基礎知識和常用命令;第二部分為第9章和第10章,主要是Linux下交互和非交互編輯器的使用;第三部分為第11?18章,主要是Shell腳本開發。這三部分內容各有偏重,讀者可以根據實際需要選擇閱讀。 《Linux系統命令及Shell腳本實踐指南》根據作者多年來Linux環境運維管理工作的經驗編著而成,內容豐富,且註重實踐講解,非常適合Linux初學者和基於Linux平臺的軟件開發者學習或查閱。從內容結構上來看,本書摒棄了各章獨立的寫作風格,而是採取了各章有機結合的方式,自上而下自成一體,既加深了讀者對單個知識點的理解,也有利於從全局把控Linux系統和Shell編程的精髓。
<目錄>
推薦序推薦序前言第1章 Linux簡介 1.1 Linux的發展歷史 1.2 Linux的特點 1.3 系統安裝 1.3.1 安裝前的規劃 1.3.2 安裝RedHat 1.3.3 安裝CentOS 1.4 系統登錄 1.4.1 第一次登錄系統的設置 1.4.2 使用圖形模式登錄 1.4.3 使用終端模式登錄 1.4.4 開始學習使用Linux的命令 1.5 系統啟動流程 1.5.1 系統引導概述 1.5.2 系統運行級別 1.5.3 服務啟動腳本 1.5.4 Grub介紹 1.6 獲得幫助 1.6.1 使用man page 1.6.2 使用info page 1.6.3 其他獲得幫助的方式第2章 Linux用戶管理 2.1 Linux用戶和用戶組 2.1.1 UID和GID 2.1.2 /etc/passwd和/etc/shadow 2.2 Linux賬號管理 2.2.1 新增和刪除用戶 2.2.2 新增和刪除用戶組 2.2.3 檢查用戶信息 2.3 切換用戶 2.3.1 切換成其他用戶 2.3.2 用其他用戶的身份執行命令:sudo 2.4 例行任務管理 2.4.1 單一時刻執行一次任務:at 2.4.2 周期性執行任務:cron 2.4.3 /etc/crontab的管理第3章 Linux文件管理 3.1 文件和目錄管理 3.1.1 絕對路徑和相對路徑 3.1.2 文件的相關操作 3.1.3 目錄的相關操作 3.1.4 文件時間戳 3.2 文件和目錄的權限 3.2.1 查看文件或目錄的權限:ls -al 3.2.2 文件隱藏屬性 3.2.3 改變文件權限:chmod 3.2.4 改變文件的擁有者:chown 3.2.5 改變文件的擁有組:chgrp 3.2.6 文件特殊屬性:SUID/SGID/Sticky 3.2.7 默認權限和umask 3.2.8 查看文件類型:file 3.3 查找文件 3.3.1 一般查找:find 3.3.2 數據庫查找:locate 3.3.3 查找執行文件:which/whereis 3.4 文件壓縮和打包 3.4.1 gzip/gunzip 3.4.2 tar 3.4.3 bzip2 3.4.4 cpio第4章 Linux文件系統 4.1 文件系統 4.1.1 什麼是文件系統 4.1.2 ext2文件系統簡介 4.1.3 ext3文件系統簡介 4.2 磁盤分區、創建文件系統、掛載 4.2.1 創建文件系統:fdisk 4.2.2 磁盤掛載:mount 4.2.3 設置啟動自動掛載:/etc/fstab 4.2.4 磁盤檢驗:fsck、badblocks 4.3 Linux邏輯捲 4.3.1 什麼是邏輯捲 4.3.2 如何製作邏輯捲 4.4 硬鏈接和軟鏈接 4.4.1 什麼是硬鏈接 4.4.2 什麼是軟鏈接第5章 字符處理 5.1 管道 5.2 使用grep搜索文本 5.3 使用sort排序 5.4 使用uniq刪除重複內容 5.5 使用cut截取文本 5.6 使用tr做文本轉換 5.7 使用paste做文本合併 5.8 使用split分割大文件第6章 網絡管理 6.1 網絡接口配置 6.1.1 使用ifconfig檢查和配置網卡 6.1.2 將IP配置信息寫入配置文件 6.2 路由和網關設置 6.3 DNS客戶端配置 6.3.1 /etc/hosts 6.3.2 /etc/resolv.conf 6.4 網絡測試工具 6.4.1 ping 6.4.2 host 6.4.3 traceroute 6.4.4 常見網絡故障排查第7章 進程管理 7.1 什麼是進程 7.2 進程和程序的區別 7.3 進程的觀察:ps、top 7.4 進程的終止:kill、killall 7.5 查詢進程打開的文件:lsof 7.6 進程優先級調整:nice、renice第8章 Linux下的軟件安裝 8.1 源碼包編譯安裝 8.1.1 編譯、安裝、打印HelloWorld程序 8.1.2 使用源碼包編譯安裝Apache 8.2 RPM安裝軟件 8.2.1 什麼是RPM 8.2.2 RPM包管理命令:rpm 8.2.3 包依賴關係 8.2.4 使用RPM包安裝gcc 8.2.5 使用RPM包安裝Apache 8.3 yum安裝軟件 8.3.1 yum命令的基本用法 8.3.2 使用yum安裝Apache 8.3.3 RedHat使用yum的問題 8.3.4 自建本地yum源 8.3.5 自建網絡yum源 8.4 三種安裝方法的比較 8.5 重建RPM包 8.5.1 創建重建環境 8.5.2 快速重建RPM包 8.5.3 以spec文件重建RPM包 8.5.4 spec文件簡介第9章 vi和vim編輯器 9.1 vi和vim編輯器簡介 9.2 vi編輯器 9.2.1 模式介紹 9.2.2 案例練習 9.3 vim編輯器 9.3.1 多行編輯 9.3.2 多文件編輯 9.3.3 使用vimtutor深入學習vim 9.4 gedit編輯器 9.4.1 gedit編輯器簡介 9.4.2 啟動gedit編輯器第10章 正則表達式 10.1 正則表達式基礎 10.1.1 什麼是正則表達式 10.1.2 基礎的正則表達式 10.1.3 擴展的正則表達式 10.1.4 通配符 10.2 正則表達式示例 10.3 文本處理工具sed 10.3.1 sed介紹 10.3.2 刪除 10.3.3 查找替換 10.3.4 字符轉換 10.3.5 插入文本 10.3.6 讀入文本 10.3.7 打印 10.3.8 寫文件 10.3.9 sed腳本 10.3.10 高級替換 10.3.11 sed總結 10.4 文本處理工具awk 10.4.1 打印指定域 10.4.2 指定打印分隔符 10.4.3 內部變量NF 10.4.4 打印固定域 10.4.5 截取字符串 10.4.6 確定字符串的長度 10.4.7 使用awk求列和第11章 Shell編程概述 11.1 Shell簡介 11.1.1 Shell是什麼 11.1.2 Shell的歷史 11.1.3 Shell的功能 11.1.4 Shell編程的優勢 11.2 第一個Shell腳本 11.2.1 編輯第一個Shell腳本 11.2.2 運行腳本 11.2.3 Shell腳本的排錯 11.3 Shell的內建命令第12章 Bash Shell的安裝 12.1 確定你的Shell版本 12.2 安裝bash 12.3 使用新版本的Bash Shell 12.4 在Windows中安裝bash第13章 Shell編程基礎 13.1 變量 13.1.1 局部變量 13.1.2 環境變量 13.1.3 變量命名 13.1.4 變量賦值和取值 13.1.5 取消變量 13.1.6 特殊變量 13.1.7 數組 13.1.8 只讀變量 13.1.9 變量的作用域 13.2 轉義和引用 13.2.1 轉義 13.2.2 引用 13.2.3 命令替換 13.3 運算符 13.3.1 算術運算符 13.3.2 位運算符 13.3.3 自增自減 13.4 其他算術運算 13.4.1 使用$[]做運算 13.4.2 使用expr做運算 13.4.3 內建運算命令declare 13.4.4 算術擴展 13.4.5 使用bc做運算 13.5 特殊字符 13.5.1 通配符 13.5.2 引號 13.5.3 註釋符 13.5.4 大括號 13.5.5 控制字符 13.5.6 雜項第14章 測試和判斷 14.1 測試 14.1.1 測試結構 14.1.2 文件測試 14.1.3 字符串測試 14.1.4 整數比較 14.1.5 邏輯測試符和邏輯運算符 14.2 判斷 14.2.1 if判斷結構 14.2.2 if/else判斷結構 14.2.3 if/elif/else判斷結構 14.2.4 case判斷結構第15章 循環 15.1 for循環 15.1.1 帶列表的for循環 15.1.2 不帶列表的for循環 15.1.3 類C的for循環 15.1.4 for的無限循環 15.2 while循環 15.2.1 while循環的語法 15.2.2 使用while按行讀取 文件 15.2.3 while的無限循環 15.3 until循環 15.3.1 until循環的語法 15.3.2 until的無限循環 15.4 select循環 15.5 嵌套循環 15.6 循環控制 15.6.1 break語句 15.6.2 continue語句第16章 函數 16.1 函數的基本知識 16.1.1 函數的定義和調用 16.1.2 函數的返回值 16.2 帶參數的函數 16.2.1 位置參數 16.2.2 指定位置參數值 16.2.3 移動位置參數 16.3 函數庫 16.3.1 自定義函數庫 16.3.2 函數庫/etc/init.d/functions簡介 16.4 遞歸函數第17章 重定向 17.1 重定向簡介 17.1.1 重定向的基本概念 17.1.2 文件標識符和標準輸入輸出 17.2 I/O重定向 17.2.1 I/O重定向符號和用法 17.2.2 使用exec 17.2.3 Here Document第18章 腳本範例 18.1 批量添加用戶腳本 18.2 檢測服務器存活 18.3 使用expect實現自動化輸入 18.4 自動登錄ftp備份 18.5 文件安全檢測腳本 18.6 ssh自動登錄備份 18.7 使用rsync備份 18.8 使用netcat備份 18.9 使用iptables建立防火牆 18.10 自定義開機啟動項的init腳本 18.11 使用腳本操作MySQL數據庫 18.12 基於LVM快照的MySQL數據庫備份 18.13 頁面自動化安裝LAMP環境