內容簡介
基礎篇:包含系統簡介、系統入門和shell與shell命令等三章。通過本篇的學習,用戶可以掌握Linux相關的入門知識,且可以處理一般問題。管理篇:包含用戶和密碼管理、檔案系統管理、進程與任務和管理、系統安裝與系統管理、設備管理和網路管理等六章。本篇是UNIX/Linux系統的管理核心,通過本篇的學習,用戶可以掌握UNIX/Linux系統的核心管理內容,勝任日常管理工作。編程與開發篇:包含shell編程和C編程環境兩章。通過本篇的學習,為系統管理和開發打下基礎,從而使用戶的管理水平提升一個新層次。網路套用篇:包含DHCP、ftp與tftp、telnet與ssh、samba、防火牆與系統安全、Internet接入與代理伺服器、DNS、郵件服務和WEB服務等九章。本篇重點介紹的是Linux的網路套用和網路安全。通過本篇的學習可以使用戶了解和掌握常用伺服器的工作原理和配置方法。
圖書目錄
目 錄
基礎篇
第1章 系統簡介 2
1.1 UNIX系統簡介 3
1.1.1 UNIX系統的發展歷史 3
1.1.2 UNIX系統的特點 6
1.2 Linux系統簡介 8
1.2.1 Linux系統的發展歷史 8
1.2.2 Linux系統的特點 9
1.2.3 Linux系統的發行版本介紹 10
1.2.4 Linux系統的套用 12
習題1 13
第2章 系統入門 14
2.1 系統的開機與界面切換 15
2.1.1 系統的開機 15
2.1.2 兩種操作界面及切換 16
2.2 用戶的登錄與註銷 17
2.2.1 系統的登錄 17
2.2.2 註銷 19
2.2.3 CLI終端仿真界面 20
2.2.4 程式的啟動 20
2.3 Linux系統的關閉與重啟動 21
2.3.1 字元界面 21
2.3.2 系統的運行級別及切換 22
2.3.3 圖形界面 23
2.4 Linux系統的圖形界面介紹 23
2.4.1 GNOME桌面簡介 24
2.4.2 Ubuntu的Unity桌面簡介 26
2.4.3 設定中心(Settings) 27
2.5 Linux系統的線上幫助與資源 29
2.5.1 man 29
2.5.2 textinfo 31
2.5.3 yelp 31
2.5.4 Linux系統的其他幫助和
資源 31
2.6 LibreOffice辦公套件簡介 32
2.6.1 LibreOffice Writer 33
2.6.2 LibreOffice Calc 33
2.6.3 LibreOffice Impress 34
2.6.4 LibreOffice Draw 34
習題2 34
實驗2 35
第3章 shell與shell基本操作 36
3.1 shell基本功能與基本概念 37
3.1.1 shell基本功能 37
3.1.2 字元與保留字 37
3.1.3 檔案命名及檔案類型 39
3.1.4 目錄結構與路徑 41
3.1.5 shell命令格式與命令編輯 43
3.1.6 標準流與輸入/輸出重定向 45
3.1.7 管道與三通 47
3.1.8 環境變數與變數 48
3.1.9 引號機制、命令替換與變數
替換 49
3.1.10 shell命令的執行 50
3.1.11 shell種類 51
3.2 Linux系統的基本命令 52
3.2.1 目錄基本操作命令 52
3.2.2 檔案操作基本命令 54
3.2.3 檔案屬性基本操作 60
3.2.4 文本檔案編輯與操作基本
命令 62
3.2.5 日期、時間與時區管理
命令 70
3.2.6 進程管理基本命令 73
3.2.7 檔案或目錄比較命令 78
3.2.8 其他操作命令 82
習題3 88
實驗3 89
系統管理篇
第4章 用戶、組和密碼管理 92
4.1 UNIX系統的用戶和組 93
4.1.1 用戶與uid 93
4.1.2 組與gid 93
4.2 與用戶和組管理相關的檔案 93
4.2.1 /tc/passwd 93
4.2.2 /tc/shadow 94
4.2.3 /tc/group 95
4.2.4 /tc/login.defs 95
4.2.5 其他檔案 95
4.3 用戶管理命令 96
4.3.1 增加用戶(useradd) 96
4.3.2 用戶刪除(userdel) 98
4.3.3 用戶修改(usermod) 98
4.4 組管理命令 98
4.4.1 組創建(groupadd) 99
4.4.2 組刪除(groupdel) 99
4.4.3 組修改(groupmod) 99
4.5 密碼管理 100
4.5.1 密碼管理綜述 100
4.5.2 密碼管理命令(passwd) 100
4.5.3 密碼管理示例 101
4.6 用戶、組和密碼管理圖形界面 101
4.6.1 添加用戶 102
4.6.2 用戶屬性修改 102
4.6.3 用戶刪除 103
4.7 與用戶身份和位置相關的其他
命令 103
4.7.1 顯示與用戶和組相關的
身份信息(id) 103
4.7.2 顯示已登錄用戶的信息
(who) 104
4.7.3 顯示使用者的用戶名
(whoami) 105
4.7.4 向系統中的指定用戶發信息
(write) 105
4.7.5 向系統中已登錄的所有用
戶發信息(wall) 105
4.7.6 確定用戶所使用的終端
設備(tty) 105
4.7.7 不退出系統而將自己切換
成其他用戶(su) 106
4.7.8 以其他用戶身份執行程式
(sudo) 107
習題4 109
實驗4 109
第5章 檔案系統管理及使用 110
5.1 檔案系統許可權及管理 111
5.1.1 三種許可權 111
5.1.2 三類人 111
5.1.3 許可權控制 111
5.1.4 默認許可權與umask 112
5.2 許可權管理命令 113
5.2.1 設定檔案創建掩碼
(umask) 113
5.2.2 改變檔案的許可權
(chmod) 114
5.2.3 改變檔案的所有者
(chown) 114
5.2.4 改變檔案的組(chgrp) 115
5.2.5 ext2+檔案系統的新增屬性
及其管理 115
5.3 檔案系統管理 117
5.3.1 UNIX/Linux支持的檔案
系統 117
5.3.2 UNIX/Linux系統使用的存
儲設備 119
5.3.3 磁碟分區管理與檔案系統
的創建 120
5.3.4 檔案系統的使用 125
5.3.5 檔案系統的檢查、修復與
同步 130
5.4 與檔案系統管理相關的其他命令 132
5.4.1 檔案綜合查找命令
(find) 132
5.4.2 檔案按名查找命令
(locate) 134
5.4.3 檔案複製命令(dd) 135
5.4.4 連結管理命令(ln) 136
5.4.5 特別檔案創建(mknod,
mkfifo) 136
5.4.6 磁碟空間和檔案系統的使
用情況統計(df) 137
5.4.7 目錄使用磁碟空間情況
統計(du) 138
5.4.8 數據備份與檔案歸檔管理
(tar,cpio) 138
5.4.9 檔案的壓縮與解壓縮 142
5.5 圖形界面下的檔案和目錄管理 145
習題5 146
實驗5 147
第6章 進程、任務與作業管理 148
6.1 程式和進程的概念 149
6.1.1 程式、進程、作業和任務 149
6.1.2 調度策略與優先權的計算 149
6.1.3 Linux作業系統的啟動 149
6.1.4 0#進程與1#進程 150
6.1.5 進程狀態及查詢(ps) 151
6.1.6 三類進程 152
6.2 登錄shell的啟動與定製 153
6.2.1 用戶登錄過程與登錄shell
的啟動 153
6.2.2 用戶登錄控制與shell的
定製 154
6.3 Linux系統的啟動過程分析 155
6.3.1 SysVinit 155
6.3.2 upstart 158
6.3.3 systemd 161
6.4 服務管理 165
6.4.1 systemctl 165
6.4.2 早期的服務管理 166
6.4.3 超級伺服器(xinetd) 168
6.4.4 rc-local.service 171
6.5 進程管理與調度命令 171
6.5.1 執行檔的setuid、
setgid許可權和目錄的sticky
屬性 171
6.5.2 進程管理與調度命令 173
6.5.3 改變進程的家目錄
(chroot) 177
6.6 任務的自動調度 179
6.6.1 at和batch 179
6.6.2 crontab 181
6.6.3 系統crontab 183
6.7 進程管理圖形界面 183
習題6 183
實驗6 184
第7章 系統安裝、擴充、啟動與管理 185
7.1 系統安裝 186
7.1.1 安裝任務與準備 186
7.1.2 硬碟的物理結構與分區
劃分 186
7.1.3 安裝Linux系統所需的基本
分區 190
7.1.4 安裝過程 191
7.1.5 虛擬機的安裝與使用 195
7.2 引導器(grub) 196
7.2.1 grub常用術語 196
7.2.2 操作界面 197
7.2.3 grub及其配置 198
7.2.4 系統的啟動及啟動參數
修改 203
7.3 軟體包管理 205
7.3.1 紅帽系統的軟體包管理 205
7.3.2 ubuntu的軟體包管理 209
7.3.3 其他格式軟體包管理 212
7.3.4 圖形界面 214
7.4 系統升級 214
7.5 日誌管理 215
7.5.1 日誌系統 215
7.5.2 常見日誌檔案及閱讀 217
7.5.3 日誌滾動 219
7.6 系統管理 220
7.6.1 系統管理的任務 220
7.6.2 系統管理工具與命令 221
7.7 核心配置與參數線上調整 226
7.7.1 核心配置、編譯與安裝 227
7.7.2 編譯與安裝新核心 229
7.7.3 模組管理 230
7.7.4 核心參數線上調整 231
習題7 231
實驗7 232
第8章 設備管理 233
8.1 設備管理概述 234
8.1.1 Linux系統支持的設備 234
8.1.2 設備發現與udev簡介 235
8.1.3 系統設定與查看 236
8.2 印表機的管理與使用 238
8.2.1 cups的安裝 239
8.2.2 印表機安裝與配置 239
8.2.3 cups系統的啟動管理 242
8.2.4 印表機使用 243
8.2.5 列印任務管理 244
8.2.6 cups的配置檔案 245
8.3 交換區管理 245
8.3.1 概述 245
8.3.2 使用交換設備 246
8.3.3 使用交換檔案 247
8.4 串口的管理與使用 247
8.4.1 Linux系統的串口設備 247
8.4.2 串口管理程式(setserial) 248
8.4.3 串口和數據機管理及
通信程式(minicom) 249
習題8 251
實驗8 252
第9章 網路配置、管理與基本套用 253
9.1 TCP/IP基礎知識 254
9.1.1 IP位址 254
9.1.2 連線埠及服務 256
9.1.3 物理地址與邏輯地址 257
9.1.4 主機名及設定 257
9.1.5 網卡命名方案 258
9.2 TCP/IP配置 259
9.2.1 與網路有關的配置檔案 259
9.2.2 網路服務及管理 264
9.2.3 IP位址配置 265
9.3 網路管理命令 268
9.3.1 測試網路是否通(ping) 268
9.3.2 檢查網路狀態(netstat) 269
9.3.3 地址解析協定快取中的
項目管理(arp) 271
9.3.4 網路接口配置(ifconfig) 272
9.3.5 網路IP管理(ip) 273
9.3.6 網路接口的啟用與停止
(ifup/ifdown) 274
9.3.7 路由表維護(route) 274
9.3.8 主機及地址查詢
(nslookup/host) 276
9.3.9 網路路由跟蹤
(traceroute) 277
9.4 網路套用常用命令簡介 277
9.4.1 遠程登錄 277
9.4.2 檔案傳輸 278
9.4.3 郵件收發 278
9.4.4 檔案下載 280
習題9 280
實驗9 281
第10章 Linux系統的安全 282
10.1 Linux系統安全概述 283
10.1.1 Linux作業系統的基本安
全機制 283
10.1.2 Linux系統可能遇到的安
全問題及防範策略 284
10.2 檢查和監督系統的運行情況 287
10.2.1 檢查網路 287
10.2.2 用ps或pstree檢查進程 287
10.2.3 檢查系統的日誌檔案 287
10.2.4 停止不需要的服務 287
10.2.5 去掉多餘的具有SUID和
SGID屬性的檔案 288
10.3 入侵檢測和事件報告 288
10.3.1 使用完整性檢查工具 288
10.3.2 事件報告制度 289
10.4 防火牆 290
10.4.1 iptables 290
10.4.2 Firewalld 292
10.4.3 ufw 296
10.5 SELinux 297
10.5.1 SELinux中的安全類型和
角色 297
10.5.2 SELinux中的策略 299
10.5.3 SELinux的Targeted
策略 299
10.5.4 SELinux的策略及改變 300
10.5.5 SELinux中的布爾值及
改變 301
10.5.6 檢查SELinux的狀態 301
10.5.7 SELinux安全上下文
管理 302
10.5.8 SELinux的套用 304
習題10 306
實驗10 306
編程與開發篇
第11章 bshell編程 308
11.1 正則表達式 309
11.1.1 字元集 309
11.1.2 shell正則表達式 311
11.2 流編輯(sed) 311
11.2.1 功能及用法 311
11.2.2 參數與說明 312
11.2.3 腳本命令 312
11.2.4 sed示例 313
11.3 模式搜尋與處理(awk) 314
11.3.1 功能及用法 314
11.3.2 參數說明 314
11.3.3 記錄和域 314
11.3.4 變數 314
11.3.5 操作符 315
11.3.6 控制語句 316
11.3.7 常用函式 316
11.3.8 awk程式的執行 317
11.3.9 awk使用示例 317
11.4 Bourne shell及其編程 318
11.4.1 特殊字元 318
11.4.2 I/O重定向 319
11.4.3 變數與參數 320
11.4.4 shell的狀態 321
11.4.5 shell的調用與變數傳遞 322
11.4.6 shell程式設計 323
11.4.7 命令行參數與選項的
處理 336
11.4.8 shell程式調試 340
11.4.9 shell腳本程式格式 341
習題11 344
實驗11 345
第12章 C/C++及其他編程環境 347
12.1 編譯器 348
12.1.1 功能及用法 348
12.1.2 參數及說明 348
12.1.3 示例 349
12.1.4 gcc/g++的工作過程 351
12.2 頭檔案 351
12.3 連結器與庫檔案 352
12.4 靜態庫 352
12.4.1 靜態庫的管理 352
12.4.2 構造靜態庫 353
12.4.3 使用自己的庫 353
12.5 共享庫 354
12.5.1 共享庫構造 354
12.5.2 共享庫的管理 354
12.5.3 共享庫編程 355
12.5.4 共享庫使用示例 356
12.6 make與Makefile 357
12.6.1 make的用法簡介 357
12.6.2 Makefile檔案 358
12.6.3 Makefile示例 360
12.7 調試器(gdb) 363
12.7.1 gdb功能 363
12.7.2 gdb基本命令 364
12.7.3 程式調試方法 364
12.8 UNIX/Linux其他編程工具簡介 366
12.8.1 常用庫與GNOME/GTK
開發 366
12.8.2 KDevelop/Qt開發 367
12.8.3 eclipse 367
12.8.4 Java開發 368
12.8.5 Perl開發 369
12.8.6 資料庫開發 370
12.8.7 PHP開發 371
12.8.8 Objective-C開發 371
12.8.9 Python 372
12.8.10 R語言 373
12.8.11 虛擬化、雲計算和大數
據套用 376
習題12 377
實驗12 378
網路服務與套用篇
第13章 網路時間服務NTP 380
13.1 NTP協定 381
13.1.1 NTP簡介 381
13.1.2 NTP的工作模式 381
13.1.3 NTP伺服器選擇 382
13.2 通過ntp配置NTP 382
13.2.1 軟體包安裝 382
13.2.2 服務管理 382
13.2.3 配置檔案及配置 383
13.2.4 檔案/etc/sysconfig/ntpd和
/etc/default/ntp 385
13.2.5 防火牆設定 385
13.2.6 配置檔案實例 385
13.2.7 配置測試 386
13.2.8 無NTP服務的NTP客
戶端 388
13.3 通過chrony配置NTP 389
13.3.1 chrony軟體包安裝 389
13.3.2 服務管理 389
13.3.3 配置檔案chrony.conf及
默認配置 390
13.3.4 配置實例 391
13.3.5 配置測試 392
13.3.6 其他說明 394
習題13 394
實驗13 394
第14章 基礎服務OpenSSH和VNC 395
14.1 OpenSSH 396
14.1.1 OpenSSH協定 396
14.1.2 軟體安裝與啟動管理 396
14.1.3 配置檔案與伺服器設定 397
14.1.4 客戶端及套用 400
14.1.5 與防火牆和SELinux的
關係 402
14.2 VNC 403
14.2.1 紅帽的TigerVNC 403
14.2.2 客戶端及使用 405
14.2.3 Ubuntu的x11vnc 405
習題14 406
實驗14 406
第15章 Web伺服器Apache 407
15.1 Apache概述 408
15.2 Apache的安裝和啟動 408
15.2.1 Apache的安裝 408
15.2.2 Apache伺服器啟動管理 409
15.2.3 Apache服務的測試 410
15.3 Apache的配置檔案和配置指令 410
15.3.1 Apache主配置檔案的
結構 410
15.3.2 Apache的配置指令 411
15.4 Web伺服器配置實例 420
15.4.1 Web伺服器配置實例 421
15.4.2 Fedora的圖形配置工具 425
15.5 httpd與防火牆和SELinux的
關係 425
15.5.1 httpd與防火牆的關係 426
15.5.2 httpd與SELinux的關係 426
習題15 427
實驗15 427
第16章 DHCP伺服器 428
16.1 DHCP介紹 429
16.1.1 DHCP協定 429
16.1.2 DHCP的工作過程 430
16.2 DHCP伺服器的安裝與啟動
管理 431
16.2.1 DHCP伺服器軟體安裝 431
16.2.2 啟動管理 431
16.3 DHCP的配置 432
16.3.1 配置檔案 432
16.3.2 配置檔案中的定義、參數
和選項及意義 434
16.4 DHCP規劃 436
16.4.1 在不同的網路中使用
DHCP 436
16.4.2 設定DHCP中繼 436
16.4.3 設定備份DHCP 437
16.5 DHCP客戶端設定 438
16.6 DHCP與防火牆的關係 438
習題16 439
實驗16 439
第17章 FTP與TFTP伺服器 440
17.1 FTP與FTP伺服器概述 441
17.1.1 FTP的相關概念 441
17.1.2 Linux系統的FTP服
務器 443
17.2 vsftpd伺服器 444
17.2.1 vsftpd伺服器的安裝與
啟動 444
17.2.2 vsftpd的配置 445
17.2.3 vsftpd.conf的常見套用
配置 450
17.3 FTP伺服器的使用 451
17.3.1 用瀏覽器訪問 451
17.3.2 使用客戶端命令ftp 451
17.4 TFTP與TFTP伺服器的使用
簡介 457
17.4.1 TFTP協定 457
17.4.2 TFTP的安裝和配置及
套用 457
17.5 與防火牆和SELinux的關係 459
17.5.1 與防火牆的關係 459
17.5.2 與SELinux的關係 460
習題17 460
實驗17 461
第18章 網路資源共享服務 462
18.1 網路資源共享簡介 463
18.2 Samba服務 463
18.2.1 SMB協定與 Samba 463
18.2.2 Samba的安裝與啟動
管理 465
18.2.3 Samba的配置 466
18.2.4 配置共享印表機 471
18.2.5 Samba共享服務使用 472
18.2.6 Samba圖形界面配置 474
18.2.7 關於防火牆和SELinux的
說明 475
18.3 NFS伺服器 476
18.3.1 NFS介紹 476
18.3.2 NFS檔案系統配置 477
18.3.3 NFS系統使用 480
18.3.4 NFS的其他功能 481
18.3.5 關於NFS的其他說明 484
習題18 485
實驗18 485
第19章 域名伺服器DNS 486
19.1 DNS概述 487
19.1.1 IP與域名的轉換 487
19.1.2 域名空間和區域 488
19.1.3 DNS查詢 489
19.1.4 客戶端與域名解析相關的
配置檔案 490
19.1.5 DNS伺服器的類型 490
19.2 BIND 491
19.2.1 BIND簡介 491
19.2.2 安裝BIND 491
19.2.3 bind的啟動管理 492
19.2.4 DNS伺服器的運行方式及
工作目錄 492
19.2.5 DNS伺服器配置基礎 493
19.3 DNS伺服器配置示例 499
19.4 測試DNS伺服器 501
19.5 DNS與防火牆和SELinux的
關係 503
19.5.1 DNS與防火牆的關係 503
19.5.2 DNS與SELinux的關係 504
習題19 504
實驗19 504
參考文獻 505