宣傳語
暢銷書升級版
全面介紹了Linux系統管理和網路服務的知識,並增加了Linux環境編程的內容。
內 容 簡 介
本書從實用角度出發,對Red Hat Enterprise Linux 5平台下的系統管理及網路服務做了全面、系統的介紹,既便於讀者了解Red Hat Enterprise Linux 5強大的功能,又有利於幫助Linux用戶在較短的時間內快速地學習和掌握Red Hat Enterprise Linux 5。全書分三篇,共24章,內容涵蓋了Linux系統概述、Red Hat Enterprise Linux 5系統安裝及相關配置、圖形桌面管理、用戶和用戶組管理、磁碟管理、檔案和目錄管理、終端常用命令、網路基礎、DNS服務的配置與管理、WWW服務的配置與管理、FTP服務的配置與管理、列印服務的配置與管理、Samba服務的配置與管理、DHCP服務的配置與管理、電子郵件服務的配置與管理、MySQL資料庫的配置與管理、代理服務的配置與管理、VPN服務的配置與管理、Webmin管理工具,以及網路安全與病毒防護、Linux環境下編程等內容。
本書內容豐富、語言通俗易懂、敘述深入淺出,非常適合於初、中級Linux用戶,既可以作為各類院校相關專業的教材及Linux培訓班的教材,也可以作為廣大Linux愛好者的專業參考書。
第2版前言
Linux是一個優秀的、日益成熟的作業系統,經過十幾年的發展,已經擁有了大量的用戶。為了滿足眾多Linux初學者、愛好者及專業人員的使用需要,筆者在多年從事Linux研究、教學及開發工作的基礎上精心編著了本書。本書本著由淺入深、循序漸進的原則,精心組織各章節內容,各知識點前後貫穿又自成體系,既適合作為Linux初學者的入門級教材,也可作為專業人員的參考手冊。同時,本書在詳細講解基本操作的前提下,從理論上對每個知識點的原理和套用背景都進行了詳細的闡述,具有一定的理論深度。
第2版說明
本書第1版自出版以來,受到讀者的歡迎,始終處於同類書銷售前3名。經過一年多的銷售,得到了很多反饋,讀者對本書提出了一些有益的改進意見,同時鼓勵筆者推出第2版。在吸取讀者意見的基礎上,本書做了如下調整:
1.全面修訂原書中的問題,對一些描述不準確的概念,重新表達,力求清楚、明了。
2.增加指令速查附錄,是使用Linux過程中經常會用到的。
3.增加Linux下Shell編程的講解,可以提高Linux使用效率,準備進階學習的讀者對這方面要求迫切。
5.目前Linux下的開發很多,一些小企業都以它為平台建立自己的伺服器,因此最後增加了Linux下C語言,以及Linux下PHP編程的講解。
本書使用的約定
1.為了更好地使讀者理解本書中涉及的代碼和命令,在示例中加入了大量注釋。注釋以“//”開始,並採用斜體字表示。
2.對於圖形界面中的對話框、文本框、下拉列表框、按鈕及下拉選單等的名稱,均使用“【】”加以標註。
3.如非特別說明,所有涉及圖形界面的操作,默認的桌面環境均是GNOME。
本書作者
本書由楊明華、譚勵、於重重主筆編寫,同時參與編寫的還有昊燃、黃葉新、李增輝、劉聰、龍志標、孟劼、米愛中、秦俠、冉劍、任瀟、王大亮、伍雲輝。在此一併表示感謝。
編著者
目錄
第一部分Linux系統配置與管理
第1章Linux系統概述 30
1.1Linux起源及特點 30
1.1.1Linux起源 31
1.1.2Linux的特點及主要優勢 31
1.2Linux版本發展 33
1.2.1Linux核心版本 33
1.2.2Linux發行版本 33
1.3Red Hat Enterprise Linux簡介及其新特點 35
1.3.1Red Hat Enterprise Linux 簡介 35
1.3.2Red Hat Enterprise Linux 5 新特點 37
第2章Linux系統安裝及相關配置 40
2.1準備安裝Linux 40
2.1.1安裝程式的獲取 40
2.1.2硬體需求與兼容性 40
2.2安裝方式的選擇 41
2.2.1從CD-ROM安裝 41
2.2.2從硬碟進行安裝 41
2.2.3另一種從硬碟安裝的方法 42
2.2.4通過 NFS 安裝 43
2.2.5通過FTP安裝 44
2.2.6通過HTTP安裝 45
2.3安裝系統 45
2.3.1啟動安裝程式 45
2.3.2語言和鍵盤支持 47
2.3.3磁碟分區設定 48
2.3.4網路配置 52
2.3.5時區選擇 54
2.3.6設定根口令 55
2.3.7選擇安裝的軟體包 55
2.3.8準備安裝 58
2.3.9安裝完成 58
2.3.10許可協定設定 59
2.3.11防火牆設定 59
2.3.12SELinux設定 60
2.3.13Kdump設定 61
2.3.14日期和時間設定 61
2.3.15設定軟體更新 62
2.3.16創建個人用戶 62
2.3.17音效卡設定 63
2.3.18附加安裝 63
2.4升級和刪除 64
2.4.1升級到Red Hat Enterprise Linux 5 64
2.4.2刪除Linux分區 65
2.4.3刪除Linux引導記錄 66
2.5系統安裝常見問題的分析與處理 66
2.5.1無法找到光碟機 66
2.5.2系統顯示信號11錯誤 67
2.5.3在安裝過程中使用驅動程式盤 67
2.5.4出現“No device found to install Red Hat Enterprise Linux”錯誤 67
2.5.5無法使用全部硬碟空間 67
2.5.6分區表無法識別 68
2.5.7如何保存回溯追蹤訊息 68
第3章圖形桌面管理 69
3.1桌面系統簡介 69
3.2使用GNOME 70
3.2.1進入GNOME桌面 70
3.2.2GNOME面板 73
3.2.3GNOME命令行模式 74
3.2.4輸入法設定 75
3.2.5螢幕解析度和螢幕保護程式設定 76
3.2.6音效卡檢測 77
3.2.7添加和刪除軟體包 77
3.2.8刻錄光碟 78
3.2.9搜尋檔案 78
3.2.10編輯選單 79
3.2.11其他個性化設定 80
3.2.12退出GNOME桌面 81
3.3使用KDE 82
3.3.1進入KDE 82
3.3.2KDE桌面和面板 83
3.3.3Konqueror檔案管理器 85
3.3.4KDE控制中心 88
3.3.5退出KDE桌面 89
3.4桌面常見故障分析與處理 90
3.4.l圖形界面無法正常啟動 90
3.4.2調整顯示器和顯示卡 90
第4章用戶和用戶組管理 92
4.1普通用戶的管理 92
4.1.1添加新用戶 92
4.1.2解析/etc/passwd檔案 96
4.1.3解析/etc/shadow檔案 98
4.1.4修改用戶的賬號 99
4.1.5刪除用戶 101
4.1.6用戶的臨時禁用 102
4.1.7用戶默認配置檔案/etc/login.defs 102
4.1.8使用newusers命令批量添加用戶 103
4.2根用戶的管理 104
4.2.1修改root密碼 105
4.2.2使用su命令切換為root 105
4.2.3root密碼丟失的處理 105
4.3用戶組的管理 107
4.3.1添加新用戶組 107
4.3.2修改用戶組屬性 109
4.3.3刪除用戶組 109
4.3.4解析/etc/group檔案 110
4.3.5解析/etc/gshadow檔案 111
4.4用戶和用戶組的圖形化管理 112
4.4.1添加新用戶 112
4.4.2修改用戶屬性 113
4.4.3刪除用戶 114
4.4.4添加新用戶組 114
4.4.5修改用戶組 115
4.4.6刪除用戶組 115
4.5用戶和用戶組管理常見問題 115
4.5.1對/etc/shadow檔案的編輯導致用戶密碼丟失 115
4.5.2/etc/nologin檔案引起普通用戶無法登錄 116
4.5.3賬戶到期或密碼失效導致用戶無法登錄 116
4.5.4用戶和用戶組管理的安全防範措施 117
4.5.5賬號管理的常用命令 118
4.5.6創建用戶已分享資料夾 119
第5章磁碟管理 121
5.1常用的磁碟管理工具 121
5.1.1Linux磁碟分區簡介 121
5.1.2fdisk磁碟分區工具簡介 123
5.1.3進入fdisk互動模式 124
5.1.4使用fdisk劃分磁碟分區實例 128
5.1.5使用Partition Magic管理磁碟分區 131
5.1.6parted磁碟分區工具簡介 135
5.1.7進入parted互動模式 135
5.1.8使用mkfs創建檔案系統 137
5.1.9使用fdformat格式化磁碟 137
5.1.10使用e2fsck修復磁碟 138
5.2磁碟配額管理 139
5.2.1磁碟配額的系統配置 139
5.2.2對用戶設定磁碟配額 141
5.2.3對用戶組設定磁碟配額 142
5.2.4啟動和終止磁碟配額 144
5.2.5使用quota命令監視磁碟使用 144
5.2.6使用du命令進行磁碟空間統計 144
5.3磁碟管理常見問題 146
5.3.1添加新磁碟 146
5.3.2修復受損檔案系統 147
5.3.3無法引導檔案系統 147
第6章Linux檔案和目錄管理 150
6.1檔案系統的概念 150
6.2Linux檔案系統的組織方式 150
6.3Linux系統的默認安裝目錄 151
6.4Linux檔案系統的類型 152
6.5使用fstab檔案掛載檔案系統 154
6.6LVM——邏輯卷管理 155
6.7Linux檔案系統的組成 157
6.8創建Linux檔案系統 158
6.9Linux檔案的類型 159
6.10檔案和目錄的許可權 161
6.10.1許可權的常規表示 161
6.10.2使用chmod命令進行許可權設定 163
6.10.3設定特殊許可權 165
6.10.4設定檔案或目錄的默認許可權 166
6.10.5訪問控制列表ACL 167
6.10.6許可權的圖形化管理 168
6.11檔案和目錄管理常用命令 169
6.11.1檔案和目錄操作常用通配符 169
6.11.2ls或dir命令:列出當前目錄的內容 170
6.11.3cd命令:更改當前目錄 172
6.11.4cp 命令:複製目錄或檔案 173
6.11.5rm 命令:刪除目錄或檔案 174
6.11.6mkdir命令:創建目錄 174
6.11.7rmdir命令:刪除空目錄 175
6.11.8mv 命令:移動檔案或目錄 176
6.11.9find 命令:查找檔案 176
6.11.10grep 命令:在檔案中搜尋指定的字元串 178
6.11.11chown命令:改變檔案或目錄的擁有者 179
6.11.12chgrp命令:修改檔案或目錄所屬的用戶組 180
6.11.13cat 命令:把一個檔案傳送到標準輸出設備 180
6.11.14more 命令:一次顯示一屏信息 181
6.11.15less 命令:顯示檔案時允許用戶既可以向前又可以向後翻閱檔案 182
6.11.16head 命令:查看檔案前面的部分內容 184
6.11.17touch命令:改變檔案的時間戳 184
6.11.18sort 命令:對檔案中的所有行進行排序 184
6.11.19comm命令:對兩個已排序檔案逐行進行比較 185
6.11.20diff 命令:比較兩個文本檔案,並顯示它們的不同 186
6.11.21cut命令:移出檔案中的部分內容 187
6.11.22locate命令:查找所有名稱中包含指定字元串的檔案 187
6.11.23split命令:將一個檔案拆分成幾個檔案 187
6.11.24IO重定向及管道操作 189
6.12檔案和目錄的圖形化管理 192
6.12.1啟動Nautilus檔案管理器 192
6.12.2打開檔案和目錄 194
6.12.3書籤 194
6.12.4檔案與目錄的創建、重命名和刪除 195
6.12.5檔案和目錄的移動/複製/連結 196
6.12.6修改檔案和目錄的屬性 197
6.12.7使用軟碟、光碟等可移動介質 198
6.13檔案和目錄管理常見問題 199
6.13.1無法卸載已掛載的檔案系統 199
6.13.2修復損壞的檔案系統 200
6.13.3查詢設備上採用的未知檔案系統 200
6.13.4恢復已刪除的檔案 201
第7章Linux終端常用命令 202
7.1Linux的終端視窗 202
7.1.1啟動終端視窗 203
7.1.2終端視窗的常規操作 203
7.1.3命令行自動補全 205
7.2常用的信息顯示命令 206
7.2.1pwd命令 206
7.2.2stat命令 206
7.2.3uname命令 207
7.2.4hostname命令 207
7.2.5dmesg命令 207
7.2.6free命令 207
7.2.7locale命令 207
7.2.8cat/etc/issue命令 208
7.2.9lastb命令 208
7.2.10date命令 208
7.2.11cal命令 208
7.2.12time命令 209
7.2.13clock命令 209
7.2.14cat/proc/cpuinfo命令 209
7.2.15cat/proc/interrupts命令 209
7.2.16cat/proc/filesystems命令 210
7.2.17lsmod命令 210
7.2.18set命令 210
7.2.19runlevel命令 211
7.2.20sysctl -a 命令 211
7.2.21uptime命令 211
7.2.22ps命令 211
7.2.23top命令 212
7.2.24pstree命令 213
7.2.25history命令 213
7.2.26mesg命令 214
7.3常用的系統管理命令 214
7.3.1mkbootdisk命令 214
7.3.2kill命令 214
7.3.3killall命令 215
7.3.4alias和unalias命令 215
7.3.5clear命令 216
7.3.6reboot命令 216
7.3.7shutdown命令 216
7.3.8&命令 216
7.3.9jobs命令 216
7.3.10fg命令 217
7.3.11exit命令 217
7.3.12halt命令 217
7.3.13sync命令 217
7.3.14mknod命令 217
7.3.15chattr命令 218
7.3.16echo 命令 218
7.3.17wc命令 218
7.4軟碟操作命令集mtools 219
7.5Linux與DOS常用命令比較 220
7.6使用mount命令掛載外設 221
7.6.1軟磁碟的掛載 222
7.6.2CDROM的掛載 222
7.6.3USB存儲設備的掛載 223
7.7Linux備份與壓縮的策略 223
7.8打包程式tar 224
7.8.1打包和解包的常規操作 225
7.8.2查看tar包中的內容 225
7.8.3打包連結檔案 225
7.8.4向包中添加新檔案 226
7.8.5生成.tar.gz壓縮檔 226
7.9壓縮程式gzip與gunzip 227
7.9.1常規壓縮與解壓縮操作 227
7.9.2查看.gz壓縮檔中的內容 228
7.9.3自定義壓縮檔後綴名 228
7.10壓縮程式zip與unzip 229
7.10.1使用zip生成壓縮檔案 229
7.10.2使用unzip進行解壓 233
7.11其他常用備份與壓縮工具 234
7.11.1壓縮程式bzip2與bunzip2 234
7.11.2dump與restore命令 236
7.11.3cpio命令 238
7.11.4dd命令 239
7.11.5rsync命令 239
7.11.6使用cp命令製作軟碟鏡像 240
7.11.7製作光碟鏡像 241
7.12常用在線上幫助命令 241
7.12.1man 命令 241
7.12.2info 命令 244
7.12.3help 命令 245
7.12.4其他相關命令 246
第二部分網路伺服器的配置與管理
第8章Linux網路基礎 250
8.1計算機網路的發展 250
8.1.1面向終端的計算機通信網路 250
8.1.2初級計算機網路 251
8.1.3開放式的標準化計算機網路 251
8.1.4新一代的計算機網路 251
8.2網路基本類型 251
8.2.1按地理覆蓋範圍 251
8.2.2按拓撲結構 253
8.3網路體系結構 255
8.3.1OSI/RM參考模型 255
8.3.2TCP/IP參考模型 257
8.4網路配置基本內容 259
8.4.1主機名 260
8.4.2IP位址 260
8.4.3子網與子網掩碼(subnet mask) 262
8.4.4廣播地址(broadcast address) 263
8.4.5網關地址(gateway) 263
8.4.6域名伺服器地址(DNS) 263
8.4.7DHCP伺服器 263
8.5配置乙太網連線 264
8.5.1添加乙太網連線 264
8.5.2修改網路配置 265
8.5.3使用配置檔案 266
8.6連線Internet 267
8.6.1使用modem撥接 267
8.6.2使用xDSL撥接 272
8.6.3使用ISDN撥接 272
8.6.4使用無線連線 274
8.7網路管理常用命令及套用實例 275
8.7.1hostname命令 275
8.7.2ifconfig命令 276
8.7.3ifup命令 278
8.7.4ifdown命令 278
8.7.5route命令 279
8.7.6ping命令 280
8.7.7nslookup命令 282
8.7.8arp命令 282
8.7.9netstat命令 283
8.7.10traceroute命令 284
8.7.11利用常用命令分析區域網路連通故障 284
第9章DNS服務的配置與管理 286
9.1DNS服務概述 286
9.1.1DNS域名空間 287
9.1.2DNS的工作原理 289
9.1.3DNS的分類 290
9.1.4域名的註冊申請 290
9.2DNS的安裝 291
9.2.1Bind軟體包 291
9.2.2Bind的安裝 294
9.3DNS的啟動、停止及測試 295
9.3.1DNS的啟動與停止 295
9.3.2測試DNS伺服器 296
9.4DNS伺服器配置 298
9.4.1根伺服器信息檔案named.root 298
9.4.2DNS配置檔案named.conf 300
9.4.3DNS正向解析區域檔案 305
9.4.4DNS反向解析區域檔案 308
9.5配置DNS伺服器實例 309
9.5.1搭建一個簡單的DNS伺服器 309
9.5.2搭建具有視圖功能的DNS伺服器 313
9.5.3利用DNS伺服器實現負載均衡 315
9.5.4泛域名的解析 316
9.5.5直接解析域名 317
9.6DNS客戶端配置 318
9.6.1Windows客戶端配置 318
9.6.2Linux客戶端配置 319
9.7DNS伺服器的常見問題分析 320
9.7.1DNS伺服器的安全配置 320
9.7.2不能完成反向解析 321
9.7.3缺少主機名後的“.” 321
9.7.4工作目錄設定錯誤 322
9.7.5忘記改變順序號 322
9.7.6重新裝載named進程 323
9.7.7從DNS伺服器不能複製分區資料庫 323
第10章WWW服務的配置與管理 324
10.1WWW服務概述 324
10.1.1WWW的起源 324
10.1.2Apache概述 325
10.1.3Web服務的工作原理 326
10.2Apache伺服器的安裝與運行 326
10.2.1安裝Apache伺服器 326
10.2.2啟動和停止Apache伺服器 330
10.3Apache伺服器的基本配置 332
10.3.1httpd.conf檔案 332
10.3.2配置目錄許可權 333
10.3.3創建虛擬目錄 335
10.3.4用戶認證 336
10.4配置虛擬主機 338
10.4.1虛擬主機概述 338
10.4.2配置基於IP的虛擬主機 338
10.4.3配置基於域名的虛擬主機 340
10.4.4動態虛擬主機技術 341
10.5管理日誌檔案 342
10.5.1日誌檔案類型 342
10.5.2日誌檔案格式 342
10.5.3實現日誌滾動 343
10.5.4Webalizer日誌統計分析工具 344
10.6Apache伺服器的圖形化配置方法 346
10.6.1基本配置 346
10.6.2虛擬主機配置 347
10.6.3伺服器設定 349
10.6.4性能設定 349
10.7配置動態Web服務運行環境 350
10.7.1配置CGI運行環境 350
10.7.2配置PHP運行環境 352
第11章FTP服務的配置與管理 354
11.1FTP概述 354
11.1.1檔案傳輸伺服器FTP工作原理 354
11.1.2Port與Passive傳輸模式 354
11.2Vsftpd簡介 355
11.2.1Vsftpd軟體包的獲取與安裝 355
11.2.2啟動和關閉Vsftpd 358
11.3Vsftpd伺服器配置 359
11.3.1配置vsftpd.conf檔案 359
11.3.2vsftpd/ftpusers與vsfptd/user-list檔案配置 360
11.3.3匿名FTP設定 361
11.3.4真實賬號設定 368
11.4FTP客戶端配置 375
11.4.1FTP常用命令 375
11.4.2Windows環境下訪問FTP伺服器 375
11.4.3Linux環境下訪問FTP伺服器 378
11.5查看FTP日誌 379
第12章列印服務的配置與管理 382
12.1通用UNIX列印系統(CUPS)概述 382
12.2CUPS服務的安裝 383
12.2.1圖形化安裝方式 384
12.2.2命令行安裝方式 384
12.3CUPS的啟動與停止 385
12.3.1使用圖形化方式 385
12.3.2在終端視窗中使用命令方式 385
12.4CUPS的配置檔案 386
12.4.1CUPS伺服器配置檔案 386
12.4.2CUPS印表機類配置檔案 387
12.4.3CUPS印表機配置檔案 388
12.5CUPS列印服務管理 388
12.5.1列印伺服器基本設定 389
12.5.2添加本地印表機 389
12.5.3添加遠程印表機 394
12.5.4添加其他印表機 396
12.5.5修改印表機設定 397
12.6CUPS印表機類管理 398
12.6.1添加印表機類 398
12.6.2修改印表機類 399
12.7基於Web的CUPS管理 400
12.7.1使用Web添加印表機 401
12.7.2使用Web添加印表機類 403
12.7.3使用Web查看CUPS幫助 404
12.7.4使用Web管理列印作業 404
12.7.5使用Web管理印表機 405
12.8常用的列印命令 406
12.8.1lpr命令 406
12.8.2lpc命令 406
12.8.3lpq 命令 407
12.8.4lprm 命令 407
第13章Samba服務的配置與管理 408
13.1Samba服務概述 408
13.1.1SMB協定 408
13.1.2Samba工作原理 408
13.2Samba服務的安裝與啟動 409
13.2.1Samba軟體包的獲取與安裝 409
13.2.2啟動與停止Samba服務 410
13.3配置Samba伺服器 411
13.3.1smb.conf檔案基本配置 411
13.3.2配置Samba用戶認證 414
13.3.3配置Samba日誌檔案 415
13.4Samba伺服器安全設定 415
13.4.1Samba伺服器安全級 416
13.4.2加密口令 417
13.4.3口令伺服器 418
13.5實現Samba資源共享 418
13.5.1已分享資料夾 418
13.5.2共享印表機 419
13.6Samba客戶端配置 419
13.6.1Linux客戶端配置 419
13.6.2Windows客戶端配置 421
13.7Samba伺服器的圖形化配置方法 422
13.7.1添加共享 422
13.7.2編輯已分享資料夾 423
13.7.3伺服器設定 423
13.7.4編輯Samba用戶 424
第14章DHCP服務的配置與管理 425
14.1DHCP服務概述 425
14.1.1DHCP協定簡介 425
14.1.2DHCP服務工作原理 426
14.2DHCP服務的安裝與使用 426
14.2.1安裝DHCP服務 426
14.2.2啟動與停止DHCP服務 427
14.3配置DHCP伺服器 428
14.3.1配置dhcpd.conf檔案 428
14.3.2設定IP位址範圍 431
14.3.3設定客戶端選項 431
14.3.4設定IP租用期限 432
14.3.5靜態IP分配 432
14.3.6動態IP分配 433
14.3.7DHCP伺服器雙機備份 435
14.4配置DHCP客戶端 435
14.4.1Windows環境下DHCP客戶端設定 435
14.4.2Linux環境下DHCP客戶端設定 437
第15章電子郵件服務的配置與管理 439
15.1E-mail概述 439
15.1.1E-mail系統的組成 439
15.1.2E-mail工作原理 440
15.1.3電子郵件協定 440
15.2配置SMTP伺服器 444
15.2.1Sendmail 444
15.2.2Postfix 445
15.3POP和IMAP的實現 454
15.3.1dovecot 454
15.3.2cyrus-imap 455
15.4配置郵件客戶端 458
15.4.1使用客戶端軟體 458
15.4.2Web方式收發郵件 461
15.5郵件服務的安全問題 466
15.5.1垃圾郵件過濾 466
15.5.2郵件防毒 469
第16章MySQL資料庫的配置與管理 470
16.1MySQL概述 470
16.2MySQL服務的安裝與啟動 471
16.2.1MySQL的安裝 471
16.2.2啟動和停止MySQL服務 473
16.3MySQL資料庫的管理 475
16.3.1啟動MySQL客戶端 475
16.3.2修改管理員口令 476
16.3.3MySQL配置檔案 476
16.3.4管理MySQL伺服器 477
16.3.5MySQL客戶端操作 477
16.4MySQL資料庫的備份和修復 489
16.4.1MySQL資料庫備份和恢復 489
16.4.2MySQL資料庫的故障修復 490
16.5phpMyAdmin的安裝與使用 492
16.5.1MySQL的圖形化配置工具 492
16.5.2phpMyAdmin的安裝 493
16.5.3使用phpMyAdmin 495
第17章代理服務的配置與管理 501
17.1代理服務概述 501
17.1.1代理伺服器的工作原理 501
17.1.2Squid代理伺服器簡介 502
17.2Squid軟體包的安裝與運行 502
17.2.1Squid軟體包的獲取與安裝 502
17.2.2啟動和停止Squid 503
17.3配置Squid伺服器 505
17.3.1配置squid.conf檔案 505
17.3.2初始化squid 507
17.4Squid伺服器安全管理 509
17.4.1訪問控制 509
17.4.2用戶認證 512
17.5配置透明代理 514
17.6多級快取 516
17.7Squid伺服器日誌管理 517
17.8客戶端配置 519
17.8.1Firefox中的客戶端設定 519
17.8.2Internet Explorer中的客戶端設定 519
第18章VPN服務的配置與管理 521
18.1VPN服務簡介 521
18.1.1VPN的概念 521
18.1.2VPN協定 521
18.1.3VPN的身份認證方法 522
18.2VPN服務的安裝與使用 522
18.2.1網路設定與軟體下載 523
18.2.2安裝VPN服務 524
18.2.3啟動與停止VPN服務 524
18.3配置VPN伺服器 526
18.4配置VPN客戶端 527
18.4.1配置Windows VPN客戶端 527
18.4.2配置Linux VPN 客戶端 529
第19章Webmin管理工具 531
19.1Webmin管理工具概述 531
19.2Webmin管理工具的安裝與啟動 532
19.2.1安裝前準備 532
19.2.2下載並安裝Webmin 532
19.2.3登錄Webmin 533
19.2.4設定中文界面 533
19.2.5Webmin界面 534
19.2.6啟動與停止Webmin 534
19.3Webmin管理模組簡介 535
19.3.1Webmin配置管理模組 536
19.3.2系統配置管理模組 536
19.3.3伺服器配置管理 537
19.3.4網路配置管理模組 538
19.3.5硬體配置管理模組 539
19.3.6集群配置管理模組 540
19.3.7其他配置管理模組 540
19.4Webmin配置管理 541
19.4.1Webmin用戶管理 541
19.4.2升級Webmin 542
19.5系統配置管理 542
19.5.1用戶與組 542
19.5.2改變口令 543
19.5.3Cron 任務調度 544
19.5.4檔案系統備份 545
19.5.5開機和關機 546
19.6伺服器配置管理 547
19.6.1Apache 服務 547
19.6.2Samba服務 547
19.6.3DNS服務 548
19.6.4DHCP服務 548
19.6.5MySQL資料庫 548
19.6.6Postfix郵件服務 549
19.6.7SSH服務 549
19.6.8Squid代理服務 550
19.6.9Webalizer日誌分析 550
19.7網路配置管理 550
19.7.1網路接口 550
19.7.2路由和網關 551
19.8硬體配置管理 551
19.8.1本地磁碟分區 552
19.8.2系統時間 552
19.9其他配置管理 552
19.9.1系統和伺服器狀態 552
19.9.2Perl 模組 553
19.9.3PHP配置 554
第20章網路安全與病毒防護 556
20.1Linux網路安全對策 556
20.1.1確保連線埠安全 556
20.1.2確保連線安全 557
20.1.3確保系統資源安全 558
20.1.4確保賬號、密碼的安全 559
20.1.5系統檔案的安全性 559
20.1.6日誌檔案的安全性 561
20.2Linux下的防火牆配置 562
20.2.1防火牆的基本概念 563
20.2.2Red Hat安全級別設定 564
20.2.3使用iptable管理防火牆 565
20.3入侵檢測技術(IDS) 571
20.3.1入侵檢測技術簡介 571
20.3.2Snort軟體概述 574
20.3.3安裝Snort 574
20.3.4使用Snort 576
20.3.5snort.conf配置檔案 578
20.3.6配置Snort規則 582
20.4OpenSSH實現網路安全連線 587
20.4.1SSH安裝 587
20.4.2啟動和停止OpenSSH守護進程 588
20.4.3配置OpenSSH伺服器 589
20.4.4配置OpenSSH客戶 592
20.4.5使用ssh客戶端 593
20.4.6使用scp客戶端 596
20.4.7使用sftp客戶端 597
20.4.8使用SSH Secure Shell訪問SSH伺服器 598
20.5計算機病毒與防護 600
20.5.1計算機病毒種類 600
20.5.2計算機病毒特徵 602
20.5.3計算機病毒的危害性 603
20.5.4常見病毒的分析與預防 603
第三部分Linux環境下編程
第21章文本編輯器的使用 608
21.1vim的使用 608
21.1.1vim的啟動 608
21.1.2在桌面上創建vim啟動器 609
21.1.3vim的工作模式 609
21.1.4保存與打開檔案 610
21.1.5移動游標 611
21.1.6插入 612
21.1.7刪除 613
21.1.8取消 613
21.1.9保存 614
21.1.10退出 614
21.1.11查找 614
21.1.12替換 614
21.1.13選項設定 615
21.1.14調用shell命令 615
21.2vim使用實例 615
21.2.1字元的插入與刪除 616
21.2.2字元的查找與替換 616
21.3gvim 617
21.3.1檔案的新建與保存 617
21.3.2查找與替換 618
21.4gedit 619
21.4.1gedit的啟動與打開文本 619
21.4.2gedit編輯檔案 620
21.4.3gedit列印檔案 620
21.4.4gedit的首選項 622
第22章Shell編程 624
22.1概述 624
22.1.1命令補齊功能 624
22.1.2命令通配符 624
22.1.3使用命令的歷史記錄 625
22.1.4命令的別名 625
22.2Shell程式的基本結構 626
22.3局部變數 626
22.4環境變數 627
22.4.1環境變數的查看 627
22.4.2環境變數的訪問 628
22.4.3環境變數的定義 628
22.4.4在系統配置檔案中定義環境變數 628
22.4.5位置變數 629
22.5Shell的運算符 629
22.5.1變數賦值 630
22.5.2算術運算符 630
22.6輸入和輸出 631
22.6.1echo命令輸出結果 631
22.6.2read命令讀取信息 633
22.6.3檔案重定向 634
22.7引號的使用方法 635
22.7.1雙引號 635
22.7.2單引號 635
22.7.3反引號 635
22.7.4反斜線 636
22.8測試語句 636
22.8.1檔案狀態測試 636
22.8.2數值測試 637
22.8.3字元串測試 638
22.8.4邏輯測試 638
22.9流程控制結構 638
22.9.1if語句 639
22.9.2if語句套用實例 640
22.9.3for語句 641
22.9.4for循環套用實例 642
22.9.5until語句 643
22.10Shell編程實例 644
22.10.1程式的功能 644
22.10.2編寫程式的代碼 644
第23章Linux下C語言編程 646
23.1編譯的概念和理解 646
23.1.1程式編譯的過程 646
23.1.2編譯器 647
23.2gcc編譯器 647
23.2.1gcc編譯器簡介 647
23.2.2gcc對源程式擴展名的支持 647
23.3C程式的的編譯 648
23.3.1編寫第一個C程式 648
23.3.2用gcc編譯程式 649
23.3.3查看gcc的參數 649
23.3.4設定輸出的檔案 650
23.3.5查看編譯過程 650
23.3.6設定編譯的語言 651
23.3.7-asci設定ANSIC標準 652
23.3.8g++編譯C++程式 652
23.4編譯過程的控制 653
23.4.1編譯過程簡介 653
23.4.2控制預處理過程 653
23.4.3生成彙編代碼 654
23.4.4生成目標代碼 655
23.4.6連結生成執行檔 655
23.5gdb調試程式 655
23.5.1gdb簡介 655
23.5.4啟動gdb 656
23.5.5在gdb中載入需要調試的程式 656
23.5.6在gdb中查看代碼 656
23.5.7在程式中加入斷點 657
23.5.8查看斷點 657
23.5.9運行程式 658
23.5.10變數的查看 658
23.6程式調試實例 659
23.6.1編寫一個程式 659
23.6.2編譯檔案 660
23.6.3程式的調試 660
23.6.3gdb幫助的使用 662
23.7gdb常用命令 663
23.8編譯程式常見的錯誤與問題 664
23.8.1邏輯錯誤與語法錯誤 664
23.8.2C程式中的錯誤與異常 664
23.8.3編譯中的警告提示 665
23.8.4找不到包含檔案的錯誤 665
23.8.5錯誤的使用逗號 665
23.8.6括弧不匹配錯誤 665
23.8.7小括弧不區配錯誤 666
23.8.8變數類型或結構體聲明錯誤 666
23.8.9使用不存在的函式的錯誤 666
23.8.10大小寫錯誤 667
23.8.11數據類型的錯誤 667
23.8.12賦值類型錯誤 667
第24章Linux下PHP的安裝與配置 668
24.1PHP簡介 668
24.2PHP的優點 668
24.3利用添加/刪除程式安裝PHP軟體包 669
24.4Apache2.2+Mysql5.0+ PHP5.2+GD2.0+Firefox2.0的安裝 670
24.4.1獲取軟體包 672
24.4.2安裝環境的準備 673
24.4.3安裝GD庫 674
24.4.4安裝MySQL 678
24.4.5安裝Apache 681
24.4.6安裝PHP 682
24.4.7安裝Firefox 687
24.5配置PHP 687
24.5.1php.ini檔案 688
24.5.2httpd.conf和.htaccess檔案 688
24.5.3在執行腳本中設定PHP配置指令 688
24.6PHP標記 689
24.6.1默認標記 689
24.6.2短標記 689
24.6.3腳本標記 689
24.6.4ASP標記 689
24.7關鍵字 690
24.8PHP語句 691
24.9空白符的處理 691
24.10在HTML中嵌入多個代碼塊 691
24.11注釋 692
24.11.1Shell風格 692
24.11.2C++風格 692
24.11.3C風格 693
24.12PHP的輸出 693
24.12.1函式print( ):輸出字元串或變數的值 693
24.12.2函式echo( ):輸出字元串或變數的值 694
24.12.3函式printf( ):格式化輸出 694
24.12.4函式sprintf( ):將輸出指定到字元串變數 696
24.12.5函式print_r( ):輸出數組 696
24.13第一個PHP例子 697
附錄ALinux指令功能速查 699