Linux操作系統(第二版)(RHEL 8/CentOS 8)
http://www.tup.tsinghua.edu.cn/booksCenter/book_08172501.html
Linux操作系統(第二版)(RHEL 8/CentOS 8)——勘誤表
鏈接: https://pan.baidu.com/s/1ZbP3g__Vnei7tMuDIcsOkw 提取碼: 879h
本科教材
主編: 張同光
ISBN號: 9787302538455
出版日期: 2020-1
出版社: 清華大學出版社
頁碼:382 定價:¥59 元
內 容 簡 介
本書以紅帽公司的Linux最新版本Red Hat Enterprise Linux 8為藍本,堅持理論夠用,側重實用的原則,用案例/示例來講解每個知識點,對Linux做了較為詳盡的闡述,結構清晰,通俗易懂,力爭做到使讀者在興趣中學習Linux。本書是一本比較好的Linux入門教材。本書針對的是技術型讀者,主要是計算機及相關專業的學生。
本書共8章,主要內容包括:Linux簡介與安裝、Linux的用戶接口與文本編輯器、系統管理、磁盤與文件管理、軟件包管理、Linux中的Shell編程、網絡服務與管理、系統管理高級。
本書適合作為高等院校計算機及相關專業學生的教材,也可供培養技能型緊缺人才的機構使用。
前 言
Linux是一款免費的類UNIX操作系統,它繼承了UNIX操作系統的強大功能和極高的穩定性。Linux最初由芬蘭赫爾辛基大學的學生Linus Torvalds創建,並於1991年首次公布於眾。Linus允許免費和自由的使用該系統的源代碼,並鼓勵其他人進一步對其進行開發。為了對Linux的發展有利,根據GNU GPL(General Public Lience,GNU通用公共許可證)對其內核進行發布,這樣就贏得了許多專業人員的支持,將GNU項目的許多成果移植到了Linux操作系統上。在許多技術人員、研究人員和眾多Linux愛好者的支持下,原Linux版本中的錯誤逐漸消除,並且不斷添加新的功能。現在Linux已經成為一個功能強大、穩定可靠的操作系統。
RHEL是美國RedHat公司開發的一種Linux發行版本,是當今世界上最流行的Linux發行版之一,其版權遵循GNU GPL。它給PC機帶來了UNIX工作站的強大功能和靈活性,並且提供了全套的因特網應用軟件和功能齊全、簡單易用的GUI桌面環境。
RHEL 7於2014年6月發布至今,經過了5個年頭,在這5年中IT領域出現了許多新技術,RedHat公司與時俱進,將多種理論與技術成果集成在RHEL 8中。為了滿足Linux操作系統教學方面的需求,筆者編寫了《Linux操作系統》(第2版)這本書,本書在第1版的基礎上,刪除冗余陳舊的知識和技能,補充了新出現的理論與技術,介紹了在實際項目中常用的知識點和操作技巧,是廣大讀者步入Linux殿堂不可多得的一本指導書,為讀者以后深入學習Linux打下堅實的基礎。
一本好的入門教材可以讓讀者快速領悟Linux的操作方式和系統的基本使用。
目前Linux的入門教材主要針對兩類讀者:非技術型、技術型。
非技術型讀者:對Linux不是真的感興趣,只是用Linux上網、聽音樂、編輯文檔等。針對非技術型用戶的入門教材以插圖為主,講的內容主要是在GUI下的操作(鼠標),所以,這種使用Linux的方式還是Windows的思維方式。
技術型讀者:對Linux很感興趣,針對技術型用戶的入門教材,一開始就從系統的基本命令開始講解,脫離Windows的思維方式,這樣會給讀者以后進一步的學習帶來很大幫助,也能使讀者逐步領悟Linux的精髓(命令行)所在。
本書針對的是技術型讀者,主要是計算機專業(或相關專業)的學生。
本書共有8章,介紹了Red Hat Enterprise Linux 8的許多方面。在第1章,主要介紹了RHEL 8的詳細安裝過程、引導工具GRUB的使用、RHEL 8的啟動流程;在第2章,介紹了Linux中的用戶接口,特別是命令行,通過這部分的學習,讀者可以真正成為Linux命令行的入門者,然后詳細的介紹了Vim編輯器的使用,當遠程維護Linux服務器時,Vim是常用的。RHEL 8在系統和文件管理方面,與標准的UNIX操作系統水平相當,這些功能在第3、4章中介紹。在第5章,主要介紹如何使用rpm和yum命令進行軟件包的管理。在第6章,介紹了如何在Shell環境中進行編程,編寫的Shell腳本程序可以被Shell(如bash)解釋執行。一直以來,Linux的長處在於網絡服務方面,在第7章,對RHEL 8中的常用網絡服務進行介紹,這些網絡服務有:DHCP、Samba服務器、WWW以及防火牆管理。第8章大概介紹了Linux系統管理的若干高級方面的內容:邏輯卷管理、磁盤陣列、磁盤配額、虛擬技術、虛擬化技術、cgroups與systemd、namespace等。
本書的重點在前4章,只有學好前4章,讀者才算對Linux真正入門,后面幾章的學習才會比較輕松,甚至可以自學。隨着讀者學習、掌握越來越多的計算機主要課程的相關知識,你就可以在Linux的世界里縱深發展了。因此,本書是一本比較好的入門教材。也希望讀者在學習的過程中重基礎、重理論,切忌浮躁。
第1章 Linux簡介與安裝 1
1.1 Linux簡介 1
1.1.1 Linux的起源 2
1.1.2 Linux的特點 4
1.1.3 Linux的版本 4
1.2 硬盤分區 7
1.2.1 MBR分區 7
1.2.2 GPT分區 9
1.3 實例—U盤安裝RedHat Enterprise Linux 8 11
1.4 引導工具GRUB Legacy的設置與應用 17
1.4.1 GRUB的設置 18
1.4.2 實例—GRUB的應用 20
1.5 引導工具GRUB2的設置與應用 21
1.5.1 GRUB2與GRUB Legacy的區別 22
1.5.2 GRUB2配置文件 22
1.5.3 GRUB2腳本修改 24
1.5.4 GRUB2刪除多余引導項 26
1.5.5 GRUB2命令行環境的常用命令 26
1.5.6 實例—GRUB2的應用 29
1.6 RHEL 8的啟動流程 30
1.6.1 RHEL 8的啟動流程—BIOS+MBR 30
1.6.2 RHEL 8的啟動流程—UEFI+GPT 36
1.7 本章小結 36
1.8 習題 37
第2章 Linux的用戶接口與文本編輯器 1
2.1 GNOME及其配置工具 1
2.1.1 GNOME 1
2.1.2 GNOME Shell和GNOME Classic 2
2.1.3 GNOME配置工具:dconf、gsettings、dconf-editor 4
2.1.4 GDM 6
2.1.5 gnome-session 6
2.1.6 輸入法 7
2.2 Shell 7
2.2.1 控制台與終端 8
2.2.2 Shell命令行 9
2.2.3 命令、子命令、選項和參數的自動補全功能 9
2.2.4 歷史命令:history 10
2.2.5 命令別名:alias 11
2.2.6 通配符與文件名 12
2.2.7 輸入/輸出重定向與管道 14
2.2.8 Linux快捷鍵 17
2.3 Linux中的文本編輯器簡介 18
2.3.1 GNOME中的文本編輯器 18
2.3.2 Vi、Vim與Emacs文本編輯器 19
2.4 實例—使用Vim編輯文件 19
2.5 本章小結 26
2.6 習題 26
第3章 系統管理 1
3.1 用戶管理 1
3.1.1 用戶管理:useradd、passwd、userdel、usermod、chage 1
3.1.2 組管理:groupadd、groupdel、groupmod、gpasswd、newgrp 5
3.1.3 用戶查詢:who、w、id、whoami、last、lastlog 7
3.1.4 su和sudo命令 10
3.2 進程管理 16
3.2.1 監視進程:ps、pstree、top 16
3.2.2 搜索進程:pgrep、pidof、ps|grep 22
3.2.3 終止進程:kill、killall、pkill、xkill 22
3.2.4 進程的優先級:nice、renice 24
3.2.5 前台進程與后台進程:command &、ctrl+z、jobs、fg、bg 25
3.2.6 周期性/定時執行任務:crontab、at、batch、watch 26
3.2.7 以守護進程方式執行任務:nohup 31
3.2.8 終端復用:tmux 31
3.3 系統和服務管理 31
3.3.1 系統和服務管理器:systemd 32
3.3.2 監視和控制systemd的命令:systemctl 33
3.3.3 系統資源:Unit 34
3.3.4 Unit的配置文件 36
3.3.5 目標(target)、運行級別(runlevel) 39
3.3.6 Systemd定時器 41
3.3.7 開機啟動:Systemd 43
3.3.8 開機啟動:rc.local 44
3.3.9 Systemd系統管理 45
3.3.10 日志管理:journalctl 46
3.4 其它系統管理 47
3.4.1 查詢系統信息:uname、hostname、free、uptime、dmidecode、lscpu、lsmem、lspci、lsusb 47
3.4.2 /proc目錄和sysctl命令 50
3.4.3 系統日志和dmesg命令 52
3.4.4 關機等命令:shutdown、halt、reboot、init、runlevel、logout、startx 53
3.4.5 其它命令:man、date/hwclock、cal、eject、clear/reset 54
3.5 系統監視 57
3.5.1 GNOME系統監視器:gnome-system-monitor 57
3.5.2 系統活動情況報告:sar 57
3.6 本章小結 59
3.7 習題 60
第4章 磁盤與文件管理 1
4.1 磁盤管理 1
4.1.1 文件系統掛載:fdisk -l、mount、umount、findmnt、lsblk、blkid、partx、/etc/fstab、e2label/xfs_admin 1
4.1.2 查看磁盤空間:df、du 8
4.1.3 其它磁盤相關命令:fdisk、mkfs、mkswap、fsck、vmstat、iostat 10
4.1.4 制作鏡像文件:dd、cp、mkisofs 17
4.1.5 數據同步:sync 19
4.2 文件與目錄管理 19
4.2.1 Linux文件系統的目錄結構 20
4.2.2 查看目錄內容:cd、pwd、ls、nautilus 21
4.2.3 查看文件內容:more、less、cat、tac、nl、head、tail、wc 25
4.2.4 檢查文件類型:file、stat 27
4.2.5 文件完整性:cksum、md5sum 28
4.2.6 文件與目錄的創建、復制、刪除、轉移及重命名:touch、mkdir、rmdir、mv、rm、cp 30
4.2.7 文件搜索命令:find、locate、which、whereis、type 35
4.2.8 文件操作命令:grep、sed、awk、tr 38
4.2.9 文件的追加、合並、分割:echo、cat、uniq、cut、paste、join、split 44
4.2.10 文件的比較、排序:diff、patch、cmp、sort 49
4.2.11 文件的鏈接:ln 52
4.2.12 設備文件:mknod 54
4.2.13 進程與文件:lsof 54
4.2.14 文件下載命令:curl、wget、HTTPie 57
4.3 文件與目錄的安全 58
4.3.1 chmod與umask命令 58
4.3.2 chown命令 61
4.3.3 chgrp命令 62
4.3.4 chroot命令 62
4.4 強制位與粘貼位 63
4.5 文件隱藏屬性:lsattr、chattr 64
4.6 訪問控制列表(ACL):getfacl、setfacl、chacl、+ 66
4.7 文件的壓縮與解壓縮 70
4.7.1 gzip和gunzip命令 71
4.7.2 bzip2、bunzip2命令 73
4.7.3 顯示壓縮文件的內容:zcat、zless、bzcat、bzless 73
4.7.4 tar命令 74
4.7.5 cpio命令 76
4.8 文件關聯 76
4.8.1 MIME類型 77
4.8.2 添加自定義MIME類型 78
4.9 本章小結 79
4.10 習題 79
第5章 軟件包管理 1
5.1 RPM 1
5.1.1 RPM簡介 1
5.1.2 RPM的使用 3
5.2 YUM與DNF 7
5.2.1 YUM與DNF簡介 7
5.2.2 使用yum命令 8
5.2.3 YUM的配置文件 10
5.2.4 BaseOS和Application Stream 12
5.2.5 安裝第三方源 13
5.2.6 創建本地倉庫 15
5.2.7 升級系統(Fedora) 16
5.3 軟件包管理GUI:gnome-software 16
5.4 本章小結 16
5.5 習題 16
第6章 Linux中的Shell編程 1
6.1 Shell編程基礎 1
6.1.1 Shell腳本的建立和執行 1
6.1.2 有效期與環境配置文件 3
6.1.3 Shell變量 4
6.1.4 控制Shell提示符 7
6.1.5 測試命令:test 7
6.1.6 算術運算 10
6.1.7 內部命令 11
6.2 Shell程序設計的流程控制 12
6.2.1 復合結構:{}、() 12
6.2.2 條件分支:if、case 13
6.2.3 循環結構:for、while、until 15
6.2.4 循環退出:break、continue 17
6.3 Shell腳本中的函數 19
6.4 Shell腳本的調試 20
6.5 本章小結 21
6.6 習題 21
第7章 網絡服務與管理 1
7.1 網絡接口配置 1
7.1.1 GUI方式:gnome-control-center、nm-connection-editor 1
7.1.2 CLI方式:ifconfig、dhclient、route、/etc/resolv.conf 2
7.1.3 NetworkManager:nmcli 5
7.1.4 net-tools與iproute2 7
7.2 DHCP服務及配置 10
7.2.1 DHCP概述 11
7.2.2 實例—設置DHCP服務器 12
7.2.3 實例—設置DHCP客戶機 17
7.3 Samba服務器的設置 19
7.3.1 Samba概述 19
7.3.2 實例—配置Samba服務器 20
7.3.3 Samba服務器的配置文件 22
7.3.4 SELinux:getsebool、setsebool、chcon、restorecon 24
7.4 WWW服務器的設置 28
7.4.1 Apache 28
7.4.2 Apache服務器的默認配置 29
7.4.3 實例—靜態網站建設 30
7.4.4 實例—為每個用戶配置Web站點 32
7.4.5 實例—配置基於IP的虛擬主機 33
7.4.6 實例—基於主機的授權 34
7.4.7 實例—基於用戶的認證 35
7.4.8 實例—組織和管理Web站點 37
7.4.9 CGI運行環境的配置 38
7.5 防火牆的設置—iptables 39
7.5.1 Netfilter/iptables簡介 40
7.5.2 iptables的語法及其使用 41
7.5.3 實例—防火牆的設置:iptables 43
7.5.4 實例—NAT的設置:iptables 45
7.6 防火牆的設置—firewalld 48
7.6.1 firewalld簡介 48
7.6.2 firewalld配置:firewall-config、firewall-cmd 52
7.6.3 實例—NAT的設置:firewall-cmd 58
7.7 防火牆的設置—TCP-Wrappers 59
7.8 基於xinetd的服務 60
7.9 本章小結 60
7.10 習題 61
第8章 系統管理高級 1
8.1 邏輯卷管理 1
8.1.1 邏輯卷管理概述 1
8.1.2 邏輯卷管理組成部分 1
8.1.3 邏輯卷創建過程:pvcreate、pvdisplay、vgcreate、vgdisplay、lvcreate、lvdisplay 2
8.1.4 邏輯卷的擴展與縮小:lvextend、resize2fs、lvreduce 4
8.1.5 卷組的擴展與刪除:vgextend、lvremove、vgremove、pvremove 5
8.2 磁盤陣列 5
8.2.1 RAID概述及常用的RAID規范 5
8.2.2 SoftWare RAID描述 9
8.2.3 mdadm管理工具 9
8.2.4 SoftWare Raid創建過程 10
8.2.5 SoftWare Raid配置文件 10
8.2.6 查看、停止與啟動Soft陣列 10
8.3 磁盤配額 11
8.3.1 相關命令:quota、quotacheck、edquota、quotaon、quotaoff 11
8.3.2 實例—實現磁盤限額 13
8.4 虛擬化技術 16
8.4.1 虛擬化技術概述 16
8.4.2 QEMU、KVM、QEMU-KVM、libvirt、virsh和virt-manager 17
8.4.3 實例—虛擬機的安裝與管理 18
8.5 cgroups 20
8.5.1 cgroups概述 20
8.5.2 cgroups的默認層級 21
8.5.3 cgroups的子系統 23
8.6 cgroups與systemd 24
8.6.1 創建cgroup:systemd-run 24
8.6.2 刪除cgroup 26
8.6.3 修改cgroup 26
8.6.4 獲得關於cgroup的信息:systemd-cgls、systemd-cgtop 28
8.7 namespace 29
8.8 容器和雲 30
8.8.1 容器 30
8.8.2 雲 31
8.9 服務器管理軟件Cockpit 32
8.10 本章小結 34
8.11 習題 34