Linux命令、編輯器與Shell編程

Linux命令、編輯器與Shell編程

本書闡述了如何通過命令行方式使用Linux作業系統。本書前幾章面向沒有計算機使用經驗的讀者,閱讀這部分內容將能夠使其快速上手。剩餘部分則主要針對經驗豐富的計算機用戶。本書並不針對特定的Linux版本或者某個發布版,而是適用於所有近期發布的Linux版本。

內容推薦

您已有Linux基礎,想要進一步學習伺服器架設?還想了解如何維護與管理您的伺服器?《Linux命令、編輯器與Shell編程》是您最佳的選擇。
目前有關Linux架站的書籍大多只教導讀者如何架設伺服器,很少針對伺服器的維護與管理,以及發生問題時的應對策略加以說明,以至於一旦伺服器遭受攻擊,眼見的就是一場手忙腳亂。因此,作者先從系統基礎以及網路基礎講起,再談到網路攻擊與防火牆防護主機後,才進入伺服器的架設。本書共分為四篇:第一篇,伺服器搭建前的進修專區,主要介紹架設伺服器之前必須具備的基本知識,看完這一篇,不論您的Linux是以何種方式進行Internet連線,都將不成問題;第二篇,主機的簡易安全防護措施,這一篇將告訴您如何保護您的主機,以及如何養成良好的操作習慣,使您的主機能夠百毒不侵,安然渡過一次次的考驗;第三篇,區域網路內常見伺服器的搭建,介紹內部網路經常使用的遠程連線服務(SSH、VNC、XRDP),網路參數設定服務(DHCP、NTP),網路磁碟服務(Samba、NFS、iSCSI),以及代理伺服器等服務。其中SSH密鑰系統,對於異地備份更是相當有幫助,您絕對不能錯過;第四篇,常見網際網路伺服器的搭建,介紹DNS、WWW、FTP及Mail Server等常見的服務。

目錄

第1篇 Linux命令

第1章 Linux簡介與安裝(教學視頻:52分鐘)2

1.1 Linux系統簡介2

1.1.1 Linux能做什麼2

1.1.2 Linux的主要發行版3

1.1.3 Linux系統的優勢4

1.2 Linux的存儲設備和目錄結構5

1.2.1 Linux系統中的存儲設備5

1.2.2 Linux系統中的目錄結構7

1.3 虛擬化技術的套用8

1.3.1 虛擬化和VMware公司9

1.3.2 VMware Workstation簡介10

1.3.3 VMware Workstation的網路連線方式11

1.3.4 VMware Workstation的使用技巧13

1.3.5 VMware ESX Server簡介13

1.4 Linux安裝過程14

1.4.1 安裝前的準備工作14

1.4.2 創建虛擬機並使用光碟引導15

1.4.3 安裝模式和光碟檢測18

1.4.4 圖形安裝環境配置19

1.4.5 磁碟分區21

1.4.6 引導程式和網路配置23

1.4.7 設定時區和根用戶密碼25

1.4.8 定製軟體包並開始安裝26

1.4.9 第一次啟動27

1.5 小結30

第2章 Linux系統入門(教學視頻:109分鐘)31

2.1 如何使用本書學習31

2.1.1 本書的知識結構和約定31

2.1.2 學習Linux系統的建議33

2.2 登錄系統33

2.2.1 圖形界面登錄33

2.2.2 命令行登錄35

2.2.3 SSH遠程登錄36

2.2.4 Telnet遠程登錄38

2.2.5 VNC遠程登錄38

2.2.6 SFTP登錄39

2.3 關閉、重啟系統41

2.3.1 關閉系統命令之shutdown41

2.3.2 關閉系統命令之poweroff41

2.3.3 掛起系統命令halt42

2.3.4 重啟系統命令reboot42

2.3.5 切換系統運行級別命令init42

2.4 Linux命令基礎及幫助43

2.4.1 Linux系統中的命令43

2.4.2 幫助之help命令和選項45

2.4.3 幫助之man手冊46

2.4.4 幫助之info信息頁48

2.5 系統與用戶的互動程式Shell50

2.5.1 Shell分類50

2.5.2 更改默認Shell51

2.6 Bash中的命令基本操作54

2.6.1 命令行編輯功能54

2.6.2 綁定快捷鍵和命令55

2.6.3 命令行補全功能59

2.6.4 命令歷史功能61

2.6.5 命令別名功能63

2.7 管道和輸入/輸出65

2.7.1 管道65

2.7.2 命令的輸入/輸出和錯誤66

2.7.3 重定向命令的輸入/輸出和錯誤66

2.8 小結69

第3章 常用命令(教學視頻:115分鐘)70

3.1 Linux基本命令70

3.1.1 切換工作目錄命令cd70

3.1.2 查看當前路徑命令pwd71

3.1.3 查看檔案列表命令ls72

3.1.4 檔案連結命令ln75

3.2 檔案操作命令76

3.2.1 檔案命名規則76

3.2.2 創建檔案命令touch77

3.2.3 創建目錄命令mkdir77

3.2.4 移動、重命名檔案命令mv78

3.2.5 複製檔案命令cp79

3.2.6 刪除檔案命令rm80

3.2.7 刪除空目錄命令rmdir81

3.2.8 查看檔案類型命令file81

3.3 文本檔案內容相關命令82

3.3.1 查看文本檔案內容命令cat82

3.3.2 從文本尾查看文本內容命令tail83

3.3.3 從文本首行查看文本內容命令head84

3.3.4 分屏顯示文本內容命令more和less85

3.3.5 文本內容比較命令diff87

3.3.6 文本統計命令wc89

3.4 日期時間命令89

3.4.1 查看日期時間命令date90

3.4.2 查看日曆命令cal90

3.4.3 修改日期時間命令date和clock91

3.5 聯線用戶命令92

3.5.1 查看聯線用戶命令who、finger和w92

3.5.2 與聯線用戶通信的命令wall、write和mesg93

3.5.3 斷開聯線用戶命令fuser94

3.6 切換用戶命令94

3.6.1 臨時切換用戶命令su94

3.6.2 以root用戶身份運行命令sudo95

3.7 定位和查找96

3.7.1 搜尋命令 which96

3.7.2 檔案搜尋命令locate96

3.7.3 特殊檔案搜尋命令whereis97

3.7.4 關鍵字搜尋命令apropos97

3.8 輸入/輸出相關命令98

3.8.1 回顯命令echo98

3.8.2 接收用戶輸入命令read99

3.8.3 顯示並保存文本命令tee102

3.8.4 郵件命令mail103

3.8.5 啟動新Shell命令exec106

3.9 小結107

第4章 Linux命令中的特殊字元和正則表達式(教學視頻:48分鐘)108

4.1 命令中的特殊字元108

4.1.1 字元串引用符雙引號和單引號108

4.1.2 命令引用符反引號110

4.1.3 變數引用和命令轉換符美元符號111

4.1.4 反斜線禁止符111

4.2 檔案名稱通配符111

4.2.1 單字元匹配元字元“?”112

4.2.2 多字元匹配元字元“*”112

4.2.3 字元範圍匹配符“[]”113

4.2.4 排除範圍匹配符“[!]”114

4.3 多條命令中的邏輯運算符和括弧115

4.3.1 邏輯或“||”115

4.3.2 邏輯與“&&”116

4.3.3 括弧116

4.4 命令中的正則表達式117

4.4.1 單字元匹配符“.”117

4.4.2 單字元或字元串重複匹配符“*”118

4.4.3 行首匹配符“^”118

4.4.4 行尾匹配符“$”119

4.4.5 反斜槓禁止符“\”119

4.4.6 範圍匹配符“[]”和排除範圍匹配符“[^]”120

4.4.7 詞首、詞尾匹配符“\”120

4.4.8 重複次數匹配符“x\{\}”120

4.4.9 組合併使用正則表達式121

4.5 小結121

第5章 查找和篩選工具(教學視頻:93分鐘)123

5.1 查找檔案工具find123

5.1.1 find的基本格式123

5.1.2 按檔案名稱稱查找125

5.1.3 按檔案許可權查找125

5.1.4 按檔案類型查找126

5.1.5 按檔案的時間戳記和大小查找126

5.1.6 按檔案屬主或屬組查找127

5.1.7 find工具的其他參數128

5.1.8 使用exec和ok處理查找到的檔案128

5.1.9 使用xargs命令處理查找到的檔案129

5.1.10 find工具套用實例130

5.2 查找文本工具grep131

5.2.1 grep的基本格式131

5.2.2 使用grep查找文本132

5.2.3 行首、行尾匹配查找134

5.2.4 配合常用的正則表達式查找135

5.2.5 使用或、與多匹配模式查找136

5.2.6 grep工具套用實例137

5.3 流編輯器sed138

5.3.1 sed基本格式138

5.3.2 顯示和刪除行140

5.3.3 插入和修改文本142

5.3.4 替換文本和其他編輯指令145

5.3.5 處理文本中的控制字元148

5.3.6 分支結構149

5.4 格式化文本數據抽取工具awk152

5.4.1 awk命令基本格式152

5.4.2 正則表達、元字元、運算符和關係運算符153

5.4.3 在awk命令中使用變數156

5.4.4 在awk命令中使用流程控制159

5.4.5 awk命令中的函式162

5.5 轉換和刪除重複命令tr170

5.5.1 tr命令的基本格式170

5.5.2 字元轉換171

5.5.3 刪除字元172

5.6 合併和分割工具173

5.6.1 排序命令sort174

5.6.2 數據剪下命令cut179

5.6.3 數據貼上命令paste181

5.6.4 數據連線命令join183

5.6.5 去除重複命令uniq186

5.6.6 分割檔案命令split188

5.7 小結190

第6章 用戶和檔案許可權管理(教學視頻:73分鐘)191

6.1 用戶管理191

6.1.1 系統用戶檔案概述191

6.1.2 添加用戶命令useradd193

6.1.3 設定用戶密碼命令passwd196

6.1.4 刪除用戶命令userdel197

6.1.5 用戶管理命令usermod197

6.2 用戶組管理199

6.2.1 用戶組檔案概述199

6.2.2 添加用戶組命令groupadd201

6.2.3 刪除用戶組命令groupdel201

6.2.4 用戶組管理202

6.3 基本許可權及管理命令203

6.3.1 檔案的屬主和屬組203

6.3.2 修改檔案屬主和屬組命令chown、chgrp203

6.3.3 檔案許可權及表示方法205

6.3.4 檔案許可權管理命令chmod207

6.3.5 suid、sgid和sticky許可權概述208

6.3.6 許可權掩碼命令umask211

6.4 POSIX ACL許可權系統及其管理命令212

6.4.1 POSIX ACL許可權系統概述213

6.4.2 ACL許可權管理和查看命令setfacl、getfacl213

6.4.3 ACL許可權管理214

6.5 小結217

第7章 磁碟和檔案系統管理(教學視頻:70分鐘)218

7.1 磁碟及分區管理218

7.1.1 查看磁碟設備列表命令fdisk218

7.1.2 查看磁碟設備命令hdparm220

7.1.3 磁碟分區工具fdisk221

7.1.4 利用fdisk工具對磁碟分區222

7.2 檔案系統管理225

7.2.1 Linux系統支持的檔案系統225

7.2.2 創建檔案系統命令mkfs226

7.2.3 查看和修改卷標命令e2label227

7.2.4 掛載檔案系統228

7.2.5 卸載檔案系統命令umount231

7.2.6 利用fstab自動掛載檔案系統232

7.3 RAID設備233

7.3.1 磁碟陣列的種類233

7.3.2 磁碟陣列級別234

7.3.3 創建組成陣列的磁碟分區236

7.3.4 創建磁碟陣列237

7.3.5 為陣列添加熱備盤239

7.3.6 使用熱備盤替換損壞磁碟239

7.3.7 擴展陣列240

7.4 LVM邏輯卷管理241

7.4.1 LVM的基本概念241

7.4.2 創建物理卷243

7.4.3 創建卷組244

7.4.4 創建邏輯卷245

7.4.5 添加物理卷247

7.4.6 擴充邏輯卷248

7.4.7 減小邏輯卷249

7.4.8 移動數據並移除物理卷250

7.4.9 邏輯卷快照252

7.5 磁碟配額管理253

7.5.1 為磁碟配額提供支持253

7.5.2 檢查磁碟配額命令quotacheck254

7.5.3 查看磁碟使用情況命令repquota255

7.5.4 建立磁碟配額命令edquota255

7.5.5 開啟磁碟配額命令quotaon257

7.5.6 關閉磁碟配額命令quotaoff258

7.5.7 管理磁碟配額258

7.6 檔案系統維護基礎259

7.6.1 查看檔案系統使用情況命令df259

7.6.2 追蹤大檔案命令du260

7.6.3 修復檔案系統命令fsck261

7.7 小結264

第8章 Linux系統管理(教學視頻:70分鐘)265

8.1 系統服務管理265

8.1.1 查看系統服務265

8.1.2 設定服務自啟動狀態267

8.1.3 添加刪除系統服務269

8.1.4 啟動和關閉服務命令service270

8.2 進程管理命令271

8.2.1 查看進程命令ps271

8.2.2 進程樹274

8.2.3 實時顯示進程命令top274

8.2.4 將任務放在後台執行277

8.2.5 查看後台任務命令jobs277

8.2.6 後台任務調至前台命令fg278

8.2.7 終止進程命令kill278

8.2.8 查看進程優先權281

8.2.9 指定進程運行優先權命令nice282

8.2.10 改變進程優先權命令renice283

8.3 計畫任務命令crontab、at284

8.3.1 為計畫任務提供支持284

8.3.2 cron計畫任務格式285

8.3.3 添加計畫任務命令crontab286

8.3.4 備份及恢復計畫任務288

8.3.5 用戶計畫任務288

8.3.6 系統計畫任務289

8.3.7 使用at執行一次性計畫任務289

8.4 日誌管理292

8.4.1 syslogd守護進程及其配置文本292

8.4.2 日誌訊息的格式295

8.4.3 記錄日誌訊息命令logger295

8.4.4 日誌輪循296

8.4.5 監視系統日誌297

8.5 小結299

第9章 數據備份和應用程式管理(教學視頻:74分鐘)301

9.1 數據備份基礎301

9.1.1 數據備份概述301

9.1.2 備份數據存放的介質302

9.1.3 備份類型302

9.1.4 備份時間選擇304

9.2 tar備份工具304

9.2.1 tar命令的基本格式304

9.2.2 tar歸檔和備份檔案305

9.2.3 查看歸檔檔案中的檔案列表306

9.2.4 從歸檔檔案中還原檔案306

9.3 cpio備份命令307

9.3.1 cpio命令的基本格式308

9.3.2 使用cpio歸檔檔案308

9.3.3 查看歸檔檔案中的檔案列表309

9.3.4 恢復cpio歸檔檔案310

9.4 壓縮工具和整盤備份工具dd311

9.4.1 使用gzip壓縮檔案311

9.4.2 使用bzip2壓縮檔案313

9.4.3 整盤備份命令dd314

9.5 RPM包管理命令rpm317

9.5.1 RPM包管理器簡介317

9.5.2 rpm命令基本格式318

9.5.3 使用rpm命令查詢軟體包319

9.5.4 使用rpm命令安裝軟體包321

9.5.5 使用rpm命令卸載軟體包323

9.5.6 使用rpm命令升級軟體包324

9.6 編譯安裝相關命令和工具324

9.6.1 安裝編譯環境324

9.6.2 獲取軟體工具wget、links325

9.6.3 編譯前的配置327

9.6.4 編譯軟體命令make329

9.6.5 安裝命令make install329

9.6.6 運行及環境配置330

9.6.7 卸載軟體命令make uninstall332

9.7 利用yum工具安裝應用程式332

9.7.1 yum簡介333

9.7.2 配置yum333

9.7.3 查詢源上的軟體包336

9.7.4 利用yum安裝軟體包337

9.7.5 利用yum卸載軟體包339

9.7.6 安裝、卸載軟體包組339

9.8 小結341

第10章 網路管理(教學視頻:81分鐘)343

10.1 網路接口配置命令343

10.1.1 查看網路接口信息343

10.1.2 配置網路接口347

10.1.3 重新啟用網路接口351

10.1.4 配置DNS伺服器地址352

10.2 路由命令route354

10.2.1 查看系統中的路由表355

10.2.2 添加默認路由356

10.2.3 添加路由條目357

10.3 主機名稱命令hostname360

10.3.1 查看主機名稱360

10.3.2 修改主機名稱361

10.4 設定網路冗餘363

10.4.1 bonding簡介364

10.4.2 bonding的模式365

10.4.3 設定網路接口366

10.4.4 載入模組生成新的網路連線367

10.4.5 驗證設定368

10.5 網路工具370

10.5.1 測試連通命令ping370

10.5.2 網路路徑測試命令traceroute374

10.5.3 查看網路狀態命令netstat374

10.5.4 域名解析工具dig和nslookup377

10.5.5 排除網路故障380

10.6 小結382

第2篇 文本編輯器

第11章 Vi和Vim文本編輯器(教學視頻:37分鐘)386

11.1 文本編輯器概述386

11.1.1 文本編輯器的發展及分類386

11.1.2 Linux系統中的文本編輯器387

11.2 認識Vi和Vim編輯器388

11.2.1 啟動Vim編輯器388

11.2.2 Vim編輯器幫助390

11.2.3 退出Vim編輯器391

11.2.4 Vim編輯器的模式391

11.2.5 Vim編輯器的工作界面392

11.3 向Vim編輯器邁出第1步393

11.3.1 讀取檔案393

11.3.2 保存檔案394

11.3.3 進入插入模式並插入文本394

11.3.4 移動游標395

11.3.5 刪除文本396

11.3.6 撤銷和恢復396

11.4 快速移動游標396

11.4.1 按單詞移動游標396

11.4.2 快速移動游標至行首和行尾397

11.4.3 移動游標至指定的行397

11.4.4 滾動螢幕398

11.4.5 使用滑鼠移動游標398

11.4.6 其他移動游標的技巧399

11.5 Vim編輯器的查找和替換功能400

11.5.1 簡單的查找功能401

11.5.2 反向查找401

11.5.3 查找時忽略大小寫402

11.5.4 高亮顯示查找結果403

11.5.5 增量查找403

11.5.6 簡單的查找替換功能404

11.5.7 區域性查找替換405

11.5.8 謹慎的查找替換405

11.6 Vim編輯器中的視窗操作406

11.6.1 分割視窗406

11.6.2 關閉視窗409

11.6.3 控制視窗大小409

11.6.4 視窗中的操作410

11.6.5 移動視窗410

11.7 Vim編輯器的高級技巧411

11.7.1 複製和貼上411

11.7.2 剪下和貼上411

11.7.3 編輯多個檔案411

11.7.4 Visual模式413

11.7.5 在Vim編輯器中執行Shell命令415

11.8 定製Vim編輯器及災難恢復415

11.8.1 定製檔案vimrc416

11.8.2 定製Vim編輯器416

11.8.3 災難恢復417

11.9 小結418

第12章 Emacs編輯器(教學視頻:28分鐘)419

12.1 Emacs編輯器概述與入門419

12.1.1 Emacs編輯器概述419

12.1.2 啟動Emacs編輯器420

12.1.3 Emacs編輯器啟動界面421

12.1.4 退出Emacs編輯器423

12.2 Emacs基本操作424

12.2.1 使用Emacs選單欄424

12.2.2 打開新檔案425

12.2.3 保存檔案426

12.2.4 簡單編輯操作426

12.3 快速移動游標427

12.3.1 按字元移動游標427

12.3.2 按句子移動游標428

12.3.3 按單詞移動游標428

12.3.4 按段落移動游標428

12.3.5 滾動螢幕428

12.3.6 其他移動游標的技巧429

12.4 Emacs編輯器的常用功能430

12.4.1 撤銷與恢復430

12.4.2 搜尋功能431

12.4.3 查找並替換432

12.4.4 複製、剪下和貼上433

12.5 Emacs編輯器的高級技巧434

12.5.1 刪除環435

12.5.2 編輯文本區域436

12.5.3 書籤功能436

12.5.4 災難恢復440

12.5.5 使用多視窗441

12.6 目錄模式444

12.6.1 查看檔案445

12.6.2 刪除、複製、重命名檔案446

12.6.3 操作壓縮檔案447

12.6.4 其他檔案操作447

12.7 Emacs編輯器的其他功能448

12.7.1 在Emacs編輯器中執行Shell命令449

12.7.2 傳送電子郵件450

12.7.3 閱讀電子郵件450

12.8 小結453

第13章 Eclipse編輯器(教學視頻:29分鐘)454

13.1 Eclipse開發平台概述與安裝454

13.1.1 Eclipse平台概述454

13.1.2 Eclipse平台安裝前的準備455

13.1.3 安裝Eclipse平台457

13.2 Eclipse界面入門459

13.2.1 第1次啟動459

13.2.2 Eclipse界面介紹460

13.2.3 操作視窗461

13.3 使用Eclipse開發Java程式463

13.3.1 建立編程項目463

13.3.2 建立Java類464

13.3.3 輸入編程內容465

13.3.4 運行Java程式467

13.3.5 調試程式468

13.4 小結470

第14章 常用的文本編輯器(教學視頻:28分鐘)471

14.1 Nano編輯器471

14.1.1 Nano編輯器簡介471

14.1.2 安裝Nano編輯器471

14.1.3 Nano啟動及工作界面472

14.1.4 快速移動游標474

14.1.5 複製貼上文本474

14.1.6 查找和替換475

14.2 Gedit文本編輯器477

14.2.1 Gedit文本編輯器概述477

14.2.2 Gedit工作界面介紹478

14.2.3 快速移動游標479

14.2.4 顯示行號479

14.2.5 語法高亮480

14.2.6 拼寫檢查480

14.2.7 查找和替換482

14.3 Kate編輯器482

14.3.1 Kate編輯器概述483

14.3.2 Kate基本界面484

14.3.3 快速移動游標485

14.3.4 查找和替換485

14.3.5 拼寫檢查487

14.3.6 語法高亮488

14.3.7 腳本編程環境488

14.4 小結490

第3篇 Shell編程

第15章 Shell腳本編程基礎、變數(教學視頻:56分鐘)492

15.1 Bash腳本編程基礎492

15.1.1 Shell腳本概述492

15.1.2 Shell腳本的基本內容493

15.1.3 腳本的運行方式495

15.1.4 接收用戶輸入496

15.1.5 向腳本傳遞參數497

15.2 Tcsh腳本編程498

15.2.1 輸出字元串Hello的示例腳本498

15.2.2 Tcsh與Bash腳本的區別499

15.3 Shell中的變數499

15.3.1 保存系統運行情況的環境變數500

15.3.2 傳遞參數的位置變數503

15.3.3 系統預先定義的變數504

15.3.4 用戶自定義變數505

15.4 Shell中的數組509

15.4.1 數組的定義509

15.4.2 數組的使用510

15.4.3 清除數組512

15.5 小結512

第16章 系統腳本和登錄環境(教學視頻:32分鐘)513

16.1 系統啟動過程513

16.1.1 Linux系統的啟動步驟513

16.1.2 引導裝載程式GRUB514

16.2 系統初始化過程518

16.2.1 INIT進程的配置檔案518

16.2.2 設定系統默認運行級別519

16.2.3 初始化系統腳本520

16.2.4 啟動系統服務520

16.2.5 重啟快捷鍵522

16.2.6 UPS選項522

16.2.7 運行終端523

16.3 系統初始化過程中使用的腳本523

16.3.1 系統初始化腳本524

16.3.2 rc.local腳本525

16.4 用戶環境526

16.4.1 全局用戶配置檔案/etc/profile526

16.4.2 個人用戶配置檔案.bash_profile527

16.4.3 定製用戶環境529

16.5 小結529

第17章 函式和腳本參數(教學視頻:22分鐘)531

17.1 Shell中的函式531

17.1.1 在腳本中定義函式531

17.1.2 在腳本中使用函式532

17.1.3 向函式傳遞參數和返回值533

17.1.4 返回函式執行狀態535

17.2 在Shell中使用函式檔案536

17.2.1 函式檔案的編寫536

17.2.2 函式檔案的調用537

17.3 兩個示例腳本538

17.3.1 示例1:檢查包的依賴性538

17.3.2 示例2:監控檔案系統541

17.4 向腳本傳遞參數545

17.4.1 使用shift命令處理參數545

17.4.2 使用shift命令處理選項參數548

17.5 小結549

第18章 控制Shell腳本執行順序(教學視頻:29分鐘)550

18.1 條件測試和捕獲信號550

18.1.1 退出狀態550

18.1.2 檔案測試553

18.1.3 變數測試558

18.1.4 字元串和數值測試559

18.1.5 邏輯操作符561

18.1.6 捕獲系統信號562

18.2 條件判斷語句if564

18.2.1 簡單if語句的使用564

18.2.2 if else語句的使用566

18.2.3 if elif語句的使用569

18.2.4 多if語句嵌套572

18.3 多條件判斷語句case573

18.3.1 多條件判斷語句case的基本格式573

18.3.2 利用case語句處理選項參數574

18.3.3 利用case語句處理用戶輸入577

18.4 步進循環語句for578

18.4.1 for語句的基本格式578

18.4.2 利用for語句處理數組579

18.4.3 一個設定防火牆的例子580

18.5 循環語句until581

18.5.1 until語句的基本格式581

18.5.2 利用until語句監控檔案系統狀態582

18.6 while循環語句583

18.6.1 while語句的基本格式583

18.6.2 while語句與until語句的區別584

18.6.3 利用while語句監控系統網路狀態585

18.7 利用break和continue控制循環586

18.7.1 使用break語句控制循環586

18.7.2 使用continue語句控制循環588

18.8 小結589

第19章 Shell編程技巧和套用實例(教學視頻:56分鐘)591

19.1 運行級別腳本591

19.1.1 運行級別腳本的結構591

19.1.2 編寫運行級別腳本593

19.1.3 添加和管理運行級別腳本595

19.2 怎樣寫好Shell腳本596

19.2.1 一般性原則596

19.2.2 良好的編程習慣596

19.2.3 Shell腳本的安全性597

19.3 調試腳本599

19.3.1 排除錯誤599

19.3.2 腳本調試601

19.4 Shell編程實例——自動備份檔案腳本603

19.4.1 需求和設計思路603

19.4.2 完全備份模組604

19.4.3 差異備份模組605

19.4.4 遠程備份模組606

19.4.5 主體和日誌功能607

19.4.6 自動運行備份腳本610

19.5 Shell編程實例——防火牆快速配置腳本610

19.5.1 設定防火牆狀態610

19.5.2 添加防火牆規則612

19.5.3 保存防火牆規則616

19.6 快速初始化系統腳本617

19.6.1 初始化系統網路617

19.6.2 更改SSH服務的連線埠625

19.6.3 設定SELinux狀態626

19.6.4 關閉不必要的系統服務626

19.7 服務監控和主備切換腳本627

19.7.1 測試主伺服器狀態627

19.7.2 切換備用伺服器狀態628

19.8 小結629

內容簡介

為了真正掌握Linux必須全面理解shell和命令行。以前,讀者必須購買兩本書才能掌握這些知識:一本介紹Linux基本概念和技術的指南,再加一本參考手冊。現在,著名Linux專家Mark Sobell通過《Linux命令、編輯器與shell編程》一本書,不僅全面深入地介紹了系統管理員、開發人員和高級用戶最需要的工具,而且涵蓋了日常工作中最常用的參考資源。

《Linux命令、編輯器與shell編程》完全適用於所有發布版,可以把它用於任意Linux系統,包括現在和將來發布的Linux系統。《Linux命令、編輯器與shell編程》還全面介紹了Mac OS X命令行。包括其他Linux/UNIX圖書忽略的僅用於OS X的工具和實用程式。

《Linux命令、編輯器與Shell編程》結構清晰.包含數百個優秀的實際範例,從最基礎的知識開始,介紹了Linux中最有用的知識,包捶文體系統、shell、編輯器、實用程式、編程工具、正則表達式等。還添加了Perl的入門介紹,Perl是Linux管理員自動完成複雜、耗時的任務最重要的編程工具。

《Linux命令、編輯器與shell編程》 是目前所能找到的最實用、最全面的Linux指南和參考手冊,也是唯一涵蓋以下全部內容的書籍

·更好、更實用的範例,涵蓋了用戶實際中需要執行的任務

·深入淺出地介紹了Linux和OSX的每個知識點

·適用於每個系統管理員的Pe門完整入門指南

·深入剖析如何使用bash和tcsh進行基本和高級的Linux shell編程

·從aspell到xargs的100個核心實用程式的全面闡述,包括從ditto到SetFile的Mac OS X專用實用程式

·新增了如何使用rsync自動完成遠程備份的內容

·數十個系統安全提示:包括使用ssh和scp實現安全通信的詳細步驟

·定製shell和從命令行互動使用shell的提示和技巧

·使用vim和emacs進行高效編輯的完全指南

·全面的命令參考部分——現在包含修訂過和擴展過的索引,以便讀者快速查找需要的信息

·使用apt-get和yum自動更新系統的指令

·數十個練習有助於讀者提升實踐能力和自信心

·還包括BitTorrent、gawk、Sed、find、sort、bzip2和正則表達式等內容

作者簡介

索貝爾(Mark G.Sobell),是Sobell Associates公司的總裁。該諮詢公司致力於UNIX/Linux培訓、支持和定製軟體開發。他在使用UNIX和Linux系統方面有超過25年的經驗,編寫了許多暢銷書.包括Prentice Hall出版社出版的A Practical Guide to Fedora and Red HatEnterprise Ltnux.Fourth Edition、A Practicat Guide to Ubuntu Linux,Second Edition、A Practical Guide to UNtX for Mac 0S X Users(與Pete r Seebach合著),以及Addison-Wesley出版社出版的A Practical Guide to UNIX System。

目錄

第1章 歡迎進入Linux世界

1.1 UNIX和GNU-Linux的發展史

1.1.1 Linux的起源:UNIX

1.1.2 回顧1983年

1.1.3 下一場景,1991年

1.1.4 自由代碼

1.1.5 Linux的關鍵

1.2 Linux的優點

1.2.1 Linux在硬體公司和開發人員中流行的原因

1.2.2 Linux的可移植性

1.2.3 C程式語言

1.3 Linux概述

1.3.1 Linux具有核心編程接口

l.3.2 Linux支持多用戶

1.3.3 Linux支持多任務

1.3.4 Linux支持安全的分層檔案系統

1.3.5 shell命令解釋器和程式語言

1.3.6 大量有用的實用程式

1.3.7 進程問的通信

1.3.8 系統管理

1.4 Linux的其他特性

1.4.1 GUI

1.4.2 (互聯的)網路實用程式

1.4.3 軟體開發

1.5 本章小結

練習

第Ⅰ部分 Linux作業系統

第2章 入門

2.1 本書約定

2.2 從終端或終端模擬器登錄

2.3 shell

2.3.1 識別當前運行的是哪種shell

2.3.2 校正錯誤

2.4 su/sudo:慎用root許可權

2.5 如何查找相關文檔

2.5.1 -help選項

2.5.2 man:顯示系統手冊頁

2.5.3 apropos:搜尋關鍵字

2.5.4 info:顯示實用程式的相關信息

2.5.5 HOWT0文檔

2.5.6 利用系統獲取幫助

2.6 登錄的更多方面

2.6.1 使用虛擬控制台

2.6.2 如何處理登錄失敗

2.6.3 退出

2.6.4 更改密碼

2.7 本章小結

練習

高級練習

第3章實用程式

3.1 特殊字元

3.2 基本工具

3.2.1 1s:顯示檔案名稱

3.2.2 cat:顯示文本檔案內容

3.2.3 rm:刪除檔案

3.2.4 少即多:分屏顯示檔案

3.2.5 hostname:顯示系統名

3.3 檔案操作

3.3.1 cp:複製檔案

3.3.2 mv:更改檔案名稱

3.3.3 lpr:列印檔案

3.3.4 grep:查找字元串

3.3.5 head:顯示檔案頭部

3.3.6 tail:顯示檔案尾部

3.3.7 sort:按順序顯示檔案內容

3.3.8 uniq:忽略檔案中重複的行

3.3.9 dim比較兩個檔案

3.3.10 file:識別檔案內容

3.4 l(管道):實現進程間的通信

3.5 4個有用的實用程式

3.5.1 echo:顯示文本

3.5.2 date:顯示日期和時間

3.5.3 script:記錄shell會話信息

3.5.4 todos/unix2dos:將L,inux和.MacOSX檔案轉換為Windows格式

3.6 壓縮和歸檔檔案

3.6.1 bzip2:壓縮檔案

3.6.2 bunzip2和bzcat:解壓縮檔案

3.6.3 gzip:壓縮檔案

3.6.4 tar:打包和解包檔案

3.7 定位命令

3.7.1 which和whereis:定位實用程式

3.7.2 slocate/Iocate:搜尋檔案

3.8 獲取用戶和系統信息

3.8.1 who:列出系統上的用戶

3.8.2 finger:列出系統上的用戶

3.8.3 w:列出系統上的用戶

3.9 與其他用戶通信

3.9.1 write:傳送訊息

3.9.2 mesg:拒絕或接受訊息

3.10 電子郵件

3.11 本章小結

練習

高級練習

第4章 Linux檔案系統

4.1 分層檔案系統

4.2 目錄檔案和普通檔案

4.2.1 檔案名稱

4.2.2 工作目錄

4.2.3 主目錄

4.3 路徑名

4.3.1 絕對路徑名

4.3.2 相對路徑名

4.4 目錄操作

4.4.1 mkdir:創建目錄

4.4.2 cd:更改工作目錄

4.4.3 rmdir:刪除目錄

4.4..4 路徑名

4.4.5 mv/cp:移動/複製檔案

4.4.6 mv:移動目錄

4.4.7 重要的標準目錄和檔案

4.5 訪問許可權

4.5.1 ls.1 :顯示訪問許可權

4.5.2 chmod:改變訪問許可權

4.5.3 setuid和setgid許可權

4.5.4 目錄訪問許可權

4.6 ACL

4.6.1 啟用ACL

4.6.2 處理訪問規則

4.6.3 設定目錄的默認規則

4.7 連結

4.7.1 硬連結

4.7.2 符號連結

4.7.3 nn:刪除連結

4.8 本章小結

練習

高級練習

第5章 shell

5.1 命令行

5.1.1 語法

5.1.2 處理命令行

5.1.3 執行命令行

5.1.4 編輯命令行

5.2 標準輸入輸出

5.2.1 作為檔案的螢幕

5.2.2 作為標準輸入的鍵盤和作為標準輸出的螢幕

5.2.3 重定向

5.2.4 管道

5.3 在後台運行命令

5.4 生成檔案名稱/擴展路徑名

5.4.1 特殊字元“?

5.4.2 特殊字元“*”

5.4.3 特殊字元“[]

5.5 內置命令

5.6 本章小結

練習

高級練習

第Ⅱ部分 編輯器

第6章 vim編輯器

6.1 歷史

6.2 入門:用vim創建和編輯檔案

6.2.1 啟動vim

6.2.2 命令模式和輸入模式

6.2.3 輸入文本

6.2.4 獲取幫助

6.2.5 結束編輯會話

6.2.6 comDatible參數

6.3 介紹vim的特性

6.3.1 在線上幫助

6.3.2 術語

6.3.3 操作模式

6.3.4 顯示

6.3.5 輸入模式下校正文本

6.3.6 工作緩衝區

6.3.7 行長度與檔案大小

6.3.8 視窗

6.3.9 鎖定檔案

6.3.10 非正常結束編輯會話

6.3.11 崩潰後的文本恢復

6.4 在命令模式下移動游標

6.4.1 按字元移動游標

6.4.2 將游標移到某個特定字元

6.4.3 按字移動游標

6.4.4 按行移動游標

6.4.5 按句子和段落移動游標

6.4.6 在螢幕內移動游標

6.4.7 查看工作緩衝區的不同部分

6.5 輸入模式

6.5.1 插入文本

6.5.2 追加文本

6.5.3 為輸入文本打開行

6.5.4 替換文本

6.5.5 在輸入模式下轉義特殊字元

6.6 在命令模式下刪除和修改文本

6.6.1 撤銷修改

6.6.2 刪除字元

6.6.3 刪除文本

6.6.4 修改文本

6.6.5 替換文本

6.6.6 修改大小寫

6.7 查找和替換

6.7.1 查找字元

6.7.2 查找字元串

6.7.3 字元串的替換

6.8 其他命令

6.8.1 連線命令

6.8.2 狀態命令

6.8.3.(句點)

6.9 複製、移動和刪除文本

6.9.1 通用緩衝區

6.9.2 命名緩衝區

6.9.3 編號緩衝區

6.10 檔案的讀寫

6.10.1 讀檔案

6.10.2 寫檔案

6.10.3 識別當前檔案

6.11 參數設定

6.11.1 在vim中設定參數

6.11.2 在啟動檔案中設定參數

6.11.3.vimrc啟動檔案

6.11.4 參數

6.12 高級編輯技巧

6.12.1 使用標記

6.12.2 編輯其他檔案

6.12.3 宏與快捷鍵

6.12.4 在vim中執行shell命令

6.13 度量單位

6.13.1 字元

6.13.2 字

6.13.3 空白分隔字

6.13.4 行

6.13.5 句子

6.13.6 段落

6.13.7 螢幕(視窗)

6.13.8 重複因子

6.14 本章小結

練習

高級練習

第7章 emacs編輯器

7.1 歷史

7.1.1 演化

7.1.2 emacs與vim

7.1.3 命令行emacs和圖形emacs

7.2 入門:開始使用emacs

7.2.1 啟動emacs

7.2.2 退出emacs

7.2.3 插入文本

7.2.4 刪除字元

7.2.5 移動游標

7.2.6 在游標處編輯

7.2.7 保存和檢索緩衝區中的內容

7.3 emacs GUI

7.4 基本編輯命令

7.4.1 按鍵的表示與使用

7.4.2 鍵序列和命令

7.4.3 META+x:運行不帶綁定鍵的命令

7.4.4 數值參數

7.4.5 編輯點與游標

7.4.6 在緩衝區中滾動

7.4.7 刪除文本

7.4.8 搜尋

7.4.9 通過鍵盤使用選單欄

7.5 在線上幫助

7.6 高級編輯

7.6.1 撤銷修改

7.6.2 編輯點標記和區域

7.6.3 剪下與貼上:移出已剪下文本

7.6.4 插入特殊字元

……

第Ⅲ部分 Shell

第8章 Bourne Again Shell

第9章 TC Shell

第Ⅳ部分 編程工具

第10章 BASH程式設計

第11章 Perl腳本語言

第12章 AWK模式處理語言

第13章 Sed編輯器

第14章 rsync安全複製實用程式

第Ⅴ部分 編程工具

第15章 命令參考

第Ⅵ部分 附錄

相關詞條

相關搜尋

熱門詞條

聯絡我們