內容簡介
本書詳細介紹了UNIX的基礎知識,對UNIX作業系統中的概念進行了重點講述,並配合實例加深
對概念的理解。主要內容包括:UNIX作業系統概述;常用的UNIX命令;UNIX檔案系統;如何使用
UNIX編輯器編寫文本;vi的使用;UNIX的進程管理;Shell基礎編程;awk和sed的使用;賬號管理、用戶和系統安全;UNIX下的網路通信以及常用的UNIX網路服務等。
本書可作為高等院校計算機相關專業的教材,也非常適合UNIX初學者選用,對於系統管理員和有一定UNIX系統使用經驗的用戶,相信本書也是一本難得的參考書。
目錄
第1章 UNIX作業系統概述 1
1.1 計算機系統組成 1
1.1.1 計算機硬體系統 2
1.1.2 計算機軟體系統 4
1.2 什麼是作業系統 5
1.2.1 作業系統的概念 5
1.2.2 作業系統的功能 6
1.3 UNIX作業系統的誕生和發展 7
1.3.1 UNIX系統的誕生 7
1.3.2 UNIX系統的發展 7
1.3.3 UNIX 系統發展時間表 9
1.4 UNIX作業系統的特點 11
1.5 UNIX與Windows的比較 13
1.5.1 Windows NT/2000/2003 13
1.5.2 Windows伺服器系統與
UNIX系統的區別 14
1.5.3 UNIX和Windows
的市場競爭 15
1.5.4 UNIX與Windows的進化 15
1.6 UNIX的未來 16
1.7 小結 16
1.8 習題 17
第2章 UNIX作業系統基礎 18
2.1 UNIX作業系統結構 18
2.2 核心 19
2.3 Shell 19
2.3.1 Shell的分類 20
2.3.2 Shell編程 22
2.4 UNIX檔案系統 22
2.4.1 UNIX檔案 23
2.4.2 UNIX目錄 25
2.4.3 UNIX檔案結構 26
2.5 應用程式 31
2.6 用戶界面 31
2.6.1 命令行用戶界面 32
2.6.2 圖形用戶界面 32
2.7 小結 34
2.8 習題 34
第3章 標準UNIX命令 36
3.1 了解命令 36
3.2 UNIX命令語法 38
3.2.1 通配符 38
3.2.2 重定向字元 38
3.2.3 命令行選項 39
3.2.4 管道符 39
3.2.5 後台處理 39
3.3 UNIX系統的登錄和退出 40
3.3.1 登錄 40
3.3.2 修改口令 41
3.3.3 退出 41
3.4 操作檔案和目錄的命令 42
3.4.1 ls命令 42
3.4.2 cp命令 43
3.4.3 mv命令 44
3.4.4 rm命令 44
3.4.5 mkdir命令 45
3.4.6 chdir (cd)命令 45
3.4.7 rmdir命令 45
3.4.8 pwd命令 45
3.4.9 cat/more/less命令 45
3.4.10 chmod命令 46
3.5 網路命令 47
3.5.1 arp命令 47
3.5.2 ping命令 48
3.5.3 telnet命令 48
3.5.4 ftp命令 49
3.5.5 nslookup命令 50
3.6 系統狀態命令 51
3.6.1 w命令 51
3.6.2 date命令 51
3.6.3 ps命令 52
3.7 線上查詢命令 53
3.8 小結 54
3.9 習題 55
第4章 UNIX檔案系統 56
4.1 UNIX檔案的概念 56
4.1.1 什麼是檔案系統 57
4.1.2 樹形結構 58
4.1.3 檔案系統層次 58
4.1.4 一些特殊的目錄 60
4.2 檔案類型 61
4.2.1 普通檔案、目錄、設備
檔案和連結 61
4.2.2 靜態檔案和動態檔案 63
4.3 檔案系統結構 64
4.3.1 檔案系統布局 64
4.3.2 查找和定位檔案 67
4.4 檔案的許可權和存取 69
4.4.1 許可權和存取概述 69
4.4.2 誰有存取一個檔案的權利 69
4.4.3 存取許可權的類型 70
4.4.4 授權與回收許可權 70
4.5 管理設備檔案 74
4.5.1 初識設備檔案 75
4.5.2 設備檔案分類 75
4.5.3 /dev目錄的布局 77
4.6 配置檔案系統 79
4.6.1 檔案系統創建概述 79
4.6.2 配置檔案系統的步驟 79
4.6.3 newfs命令 80
4.6.4 載入新檔案系統 81
4.6.5 卸載一個檔案系統 82
4.6.6 自動載入檔案系統 83
4.6.7 CD-ROM檔案系統 89
4.7 UNIX檔案系統內部組織 89
4.7.1 引導塊 90
4.7.2 超級塊 90
4.7.3 i-node列表塊 91
4.7.4 數據塊 92
4.7.5 UNIX定位檔案的整體過程 92
4.7.6 UNIX硬碟分區簡介 93
4.8 檔案系統的維護 96
4.8.1 監控磁碟使用情況 96
4.8.2 日常維護 97
4.8.3 擴展一個卷組 100
4.8.4 擴展邏輯卷的大小 100
4.8.5 擴展一個檔案系統 101
4.9 小結 102
4.10 習題 102
第5章 UNIX的編輯器 104
5.1 vi的基本概念 104
5.2 vi的基本操作 105
5.2.1 設定終端 105
5.2.2 啟動vi 106
5.2.3 進入輸入模式 107
5.2.4 退出輸入模式 108
5.2.5 退出vi 108
5.2.6 在視窗中移動游標 109
5.2.7 在編輯快取中移動視窗 110
5.2.8 修改文本 111
5.2.9 刪除文本 112
5.2.10 取消更改和刪除 112
5.3 一個實例教程 113
5.4 進一步了解vi 116
5.4.1 搜尋文本 116
5.4.2 複製和移動文本 117
5.4.3 工作緩衝區 118
5.4.4 編輯多個檔案 119
5.4.5 插入Shell命令的輸出 120
5.5 vi的設定選項 120
5.5.1 設定vi選項 120
5.5.2 顯示當前設定 122
5.5.3 vi 選項 123
5.6 套用vi 124
5.6.1 編寫vi宏 124
5.6.2 實用的文本處理宏 126
5.7 使用emacs進行編輯 128
5.7.1 設定終端 129
5.7.2 啟動emacs 130
5.7.3 在emacs中創建文本 131
5.7.4 退出emacs 131
5.7.5 在視窗中移動游標 131
5.7.6 移動緩衝區中的視窗 132
5.7.7 刪除文本 132
5.7.8 emacs的幫助 132
5.8 簡短的emacs實例 133
5.9 進一步了解emacs 136
5.9.1 查找正文 136
5.9.2 用emacs修改文本 137
5.9.3 複製和移動文本 138
5.9.4 在多視窗中編輯 138
5.10 得到emacs 139
5.11 小結 140
5.12 習題 140
第6章 UNIX進程控制 141
6.1 進程概述 141
6.1.1 進程的基本概念 141
6.1.2 父進程與子進程 142
6.1.3 進程的狀態 143
6.1.4 進程間通信 144
6.2 UNIX進程的層次結構 145
6.2.1 使用ps命令查看進程狀態 145
6.2.2 系統進程 147
6.2.3 用戶進程 148
6.3 UNIX進程調度 149
6.3.1 進程優先權 149
6.3.2 nice命令 149
6.3.3 前台進程和後台進程 150
6.3.4 將任務放在後台/前台運行 151
6.3.5 nohup命令 152
6.3.6 kill命令終止進程 152
6.4 作業調度 153
6.4.1 作業調度的概念 153
6.4.2 關於cron 154
6.4.3 at和batch命令 154
6.4.4 crontab命令 154
6.5 小結 155
6.6 習題 156
第7章 Shell 157
7.1 Shell的啟動和主要功能 157
7.1.1 Shell的啟動 158
7.1.2 Shell啟動檔案 158
7.1.3 Shell的功能 160
7.2 各種UNIX Shell 161
7.2.1 細說Shell的生平 161
7.2.2 Bourne Shell 161
7.2.3 C Shell 161
7.2.4 Korn Shell 162
7.2.5 TCSH 162
7.2.6 BASH Shell 162
7.2.7 Shell 的使用 164
7.3 選擇Shell 164
7.3.1 查看當前用戶的默認Shell 164
7.3.2 更改用戶的默認Shell 165
7.4 Shell環境變數 165
7.4.1 用戶環境 165
7.4.2 設定Shell變數 166
7.4.3 兩個重要的變數 167
7.4.4 顯示變數的值 168
7.4.5 傳送局部變數到環境 169
7.4.6 傳遞變數給一個套用 170
7.5 配置Shell 171
7.5.1 別名 171
7.5.2 檔案名稱自動完成 172
7.5.3 命令的歷史機制 173
7.5.4 重新輸入命令 174
7.5.5 Shell內部命令和UNIX
命令 174
7.6 Shell的替代功能 175
7.6.1 Shell 的替代功能簡介 175
7.6.2 Shell 變數存儲 175
7.6.3 變數替代 176
7.6.4 命令替代 178
7.6.5 波浪號替代 179
7.7 小結 180
7.8 習題 180
第8章 Shell編程 181
8.1 Shell編程基礎 181
8.1.1 概述 181
8.1.2 shell程式舉例 182
8.1.3 傳遞數據給shell程式 183
8.1.4 shell程式的參數 184
8.1.5 特殊的shell變數—— #和* 185
8.1.6 shift命令 186
8.1.7 read命令 188
8.1.8 其他技術 189
8.2 test及其他幾個重要的命令 190
8.2.1 返回值 190
8.2.2 test 命令 191
8.2.3 exit命令 196
8.2.4 使用let命令進行算術計算 196
8.3 shell分支語句 198
8.3.1 if語句 198
8.3.2 if-else語句 199
8.3.3 case語句 200
8.4 shell循環語句 201
8.4.1 有關循環的簡單介紹 202
8.4.2 while語句 202
8.4.3 until語句 205
8.4.4 for語句 207
8.4.5 break和continue語句 209
8.5 小結 210
8.6 習題 212
第9章 使用awk和sed 213
9.1 awk概述 213
9.1.1 調用awk 215
9.1.2 awk程式的基本結構 216
9.1.3 awk使用標準的
輸入/輸出設備 217
9.1.4 在多個檔案中運行
awk程式 217
9.1.5 多行awk程式 218
9.2 模式 218
9.2.1 字元串模式 219
9.2.2 複合模式 222
9.2.3 範圍模式 223
9.2.4 數值模式 223
9.2.5 開始與結束模式 224
9.3 動作 224
9.3.1 變數 224
9.3.2 內建變數 225
9.3.3 數值運算符及其操作 227
9.3.4 數組 228
9.3.5 用戶定義函式 229
9.3.6 控制語句 230
9.4 輸入 232
9.4.1 從檔案中讀取輸入 232
9.4.2 從鍵盤讀取輸入 233
9.4.3 從管道中讀取輸入 233
9.4.4 在命令行上將參變數
傳遞給程式 234
9.4.5 多行檔案和記錄分隔設定 234
9.5 輸出 235
9.5.1 print 235
9.5.2 printf 235
9.5.3 傳遞輸出到多個檔案中 236
9.6 用Shell來運行awk 236
9.7 sed檔案和sed命令 237
9.7.1 sed 用法介紹 237
9.7.2 保存sed輸出 238
9.7.3 使用sed在檔案中查詢
文本的方式 238
9.8 小結 239
9.9 習題 240
第10章 UNIX安全機制 241
10.1 系統安全的必要性 241
10.1.1 計算機信息系統的
脆弱性 241
10.1.2 安全威脅 242
10.1.3 UNIX系統的安全管理 243
10.2 用戶安全性 244
10.2.1 口令保護 244
10.2.2 檔案保護 244
10.2.3 目錄許可 245
10.2.4 umask命令 245
10.2.5 設定用戶ID和同組
用戶ID許可 246
10.2.6 cp、mv、ln和cpio命令 246
10.2.7 su和newgrp命令 248
10.2.8 檔案加密 248
10.3 檔案系統安全 248
10.3.1 UNIX檔案系統概述 248
10.3.2 設備檔案 249
10.3.3 /etc/mknod命令 250
10.3.4 安全考慮 251
10.3.5 find命令 251
10.3.6 secure程式 252
10.3.7 ncheck命令 252
10.3.8 安裝和卸載檔案系統 252
10.3.9 系統目錄和檔案 253
10.4 安全相關檔案 253
10.4.1 /etc/passwd檔案 253
10.4.2 /etc/group檔案 255
10.4.3 /etc/profile檔案 255
10.5 安全策略 256
10.5.1 限制訪問 256
10.5.2 防火牆 257
10.5.3 ACL(訪問控制列表) 258
10.5.4 監控系統檔案 258
10.5.5 加密安全工具 259
10.6 防火牆 260
10.6.1 防火牆技術 260
10.6.2 防火牆的類型 261
10.6.3 先進的認證技術 264
10.7 系統管理員意識 264
10.7.1 管理員登錄安全 265
10.7.2 保證系統安全 266
10.7.3 root運行的進程 267
10.7.4 增加、刪除和移走用戶 268
10.8 物理安全 269
10.9 小系統安全 270
10.10 小結 271
10.11 習題 273
第11章 UNIX網路通信 274
11.1 網路簡介 274
11.1.1 OSI分層模型 275
11.1.2 TCP/IP協定簡介 276
11.2 UNIX網路配置的相關檔案 278
11.2.1 網路地址 278
11.2.2 接口名與IP位址
的映射 280
11.2.3 子網掩碼 280
11.2.4 默認網關 282
11.3 網路命令 283
11.3.1 ping命令 283
11.3.2 ifconfig命令 283
11.3.3 netstat命令 284
11.3.4 finger命令 285
11.3.5 route命令 286
11.4 小結 286
11.5 習題 286
第12章 UNIX網路服務與套用 287
12.1 域名解析 287
12.1.1 三種主機名解析的比較 287
12.1.2 DNS的工作原理 289
12.1.3 DNS伺服器配置實例 290
12.1.4 DNS客戶端的配置 298
12.1.5 使用nslookup測試DNS 300
12.1.6 DNS其他知識 302
12.2 WWW服務 303
12.2.1 WWW服務和HTTP
的工作原理 303
12.2.2 非持久連線和持久連線 305
12.2.3 HTTP訊息格式 307
12.2.4 用戶——伺服器互動 310
12.3 檔案傳輸 311
12.3.1 FTP的工作原理 311
12.3.2 FTP配置說明 313
12.3.3 VSFTPD配置舉例 322
12.3.4 虛擬用戶的配置 324
12.4 小結 325
12.5 習題 325
第13章 用戶賬號管理 326
13.1 用戶賬號 326
13.1.1 用戶與用戶組 327
13.1.2 用戶賬號的定義 327
13.1.3 /etc/passwd檔案 327
13.1.4 /etc/group 檔案 329
13.2 用戶賬號的創建、修改
和刪除 330
13.2.1 useradd 330
13.2.2 groupadd 331
13.3 用戶賬號口令字管理 331
13.4 許可權管理 333
13.4.1 更改用戶密碼 333
13.4.2 定製用戶 334
13.5 系統管理員的角色 335
13.5.1 什麼是系統管理員 335
13.5.2 硬體方面的職責 336
13.5.3 軟體方面的職責 336
13.5.4 對用戶的責任 337
13.6 小結 338
13.7 習題 338
附錄 VMware下UNIX的安裝 339
一、VMware的安裝 339
二、使用VMware創建Solaris 10
虛擬機 341
三、Solaris 10的安裝 344
參考文獻 350