內容簡介
本書以紅帽公司的Linux最新版本Red Hat Enterprise Linux 8為藍本,堅持理論夠用,側重實用的原則,用案例/示例來講解每個知識點,對Linux做了較為詳盡的闡述,力爭做到使讀者在興趣中學習Linux。
作者簡介
張同光,博士研究生,教授的課程:《Linux 0.11核心分析》、《Linux作業系統》、《嵌入式軟體開發基礎》、《Linux C編程》、《Linux網路服務與編程》等。編寫過9本教材
目錄
第1章Linux簡介與安裝1
1.1Linux簡介1
1.1.1Linux的起源2
1.1.2Linux的特點4
1.1.3Linux的版本4
1.2硬碟分區7
1.2.1MBR分區7
1.2.2GPT分區9
1.3實例——用隨身碟安裝Red Hat Enterprise Linux 811
1.4引導工具GRUB Legacy的設定與套用16
1.4.1GRUB的設定17
1.4.2實例——GRUB的套用19
1.5引導工具GRUB2的設定與套用20
1.5.1GRUB2與GRUB Legacy的區別20
1.5.2GRUB2配置檔案21
1.5.3GRUB2腳本的修改23
1.5.4刪除GRUB2中多餘的引導選單項25
1.5.5GRUB2命令行環境下的常用命令25
1.5.6實例——GRUB2的套用28
1.6RHEL 8的啟動流程29
1.6.1RHEL 8的啟動流程——BIOS+MBR30
1.6.2RHEL 8的啟動流程——UEFI+GPT35
1.7本章小結36
1.8習題36
第2章Linux的用戶接口與文本編輯器38
2.1GNOME及其配置工具38
2.1.1GNOME38
2.1.2GNOME Shell和GNOME Classic392.1.3GNOME配置工具: dconf、gsettings、dconfeditor41
2.1.4GDM43
2.1.5gnomesession43
2.1.6輸入法44
2.2Shell44
2.2.1控制台與終端45
2.2.2Shell命令行46
2.2.3命令、子命令、選項和參數的自動補全功能46
2.2.4歷史命令: history47
2.2.5命令別名: alias48
2.2.6通配符與檔案名稱49
2.2.7輸入/輸出重定向與管道51
2.2.8Linux快捷鍵54
2.3Linux中的文本編輯器簡介56
2.3.1GNOME中的文本編輯器56
2.3.2Vi、Vim與Emacs文本編輯器57
2.4Vim的5種編輯模式57
2.5實例——使用Vim編輯檔案60
2.6本章小結64
2.7習題64
第3章系統管理67
3.1用戶管理67
3.1.1用戶管理: useradd、passwd、userdel、usermod、chage67
3.1.2組管理: groupadd、groupdel、groupmod、gpasswd、newgrp71
3.1.3用戶查詢: who、w、id、whoami、last、lastlog75
3.1.4su和sudo命令78
3.2進程管理84
3.2.1監視進程: ps、pstree、top84
3.2.2搜尋進程: pgrep、pidof、ps|grep91
3.2.3終止進程: kill、killall、pkill、xkill92
3.2.4進程的優先權: nice、renice94
3.2.5前台進程與後台進程: command &、Ctrl+Z、jobs、fg、bg96
3.2.6周期性/定時執行任務: crontab、at、batch、watch96
3.2.7以守護進程方式執行任務: nohup102
3.2.8終端復用: tmux102
3.3系統和服務管理103
3.3.1系統和
服務管理器: systemd103
3.3.2監視和控制systemd的命令: systemctl104
3.3.3系統資源: Unit105
3.3.4Unit的配置檔案107
3.3.5目標(target)、運行級別(runlevel)110
3.3.6systemd定時器113
3.3.7開機啟動: systemd115
3.3.8開機啟動: rc.local115
3.3.9systemd系統管理116
3.3.10日誌管理: journalctl117
3.4其他系統管理119
3.4.1查詢系統信息: uname、hostname、free、uptime、dmidecode、
lscpu、lsmem、lspci、lsusb119
3.4.2/proc目錄和sysctl命令122
3.4.3系統日誌和dmesg命令124
3.4.4關機等命令: shutdown、halt、reboot、init、runlevel、logout、
startx125
3.4.5其他命令: man、date、hwclock/clock、tzselect、cal、eject、
clear/reset127
3.5系統監視130
3.5.1GNOME系統監視器: gnomesystemmonitor130
3.5.2系統活動情況報告: sar130
3.6本章小結133
3.7習題133
第4章磁碟與檔案管理136
4.1磁碟管理136
4.1.1檔案系統掛載: fdisk l、mount、umount、findmnt、lsblk、
blkid、partx、/etc/fstab、e2label/xfs_admin136
4.1.2查看磁碟空間: df、du144
4.1.3其他磁碟相關命令: fdisk、mkfs、mkswap、fsck、vmstat、iostat146
4.1.4製作鏡像檔案: dd、cp、mkisofs155
4.1.5數據同步: sync157
4.2檔案與目錄管理158
4.2.1Linux檔案系統的目錄結構158
4.2.2查看目錄內容: cd、pwd、ls、nautilus160
4.2.3查看檔案內容: more、less、cat、tac、nl、head、tail、wc164
4.2.4檢查檔案類型: file、stat166
4.2.5檔案完整性: cksum、md5sum168
4.2.6檔案與目錄的創建、複製、刪除、轉移及重命名: touch、
mkdir、rmdir、mv、rm、cp170
4.2.7檔案搜尋命令: find、locate、which、whereis、type175
4.2.8檔案操作命令: grep、sed、awk、tr179
4.2.9檔案的追加、合併、分割: echo、cat、uniq、cut、paste、join、split186
4.2.10檔案的比較、排序: diff、patch、cmp、sort192
4.2.11檔案的連結: ln196
4.2.12設備檔案: mknod198
4.2.13進程與檔案: lsof198
4.2.14檔案下載命令: curl、wget、HTTPie201
4.3檔案與目錄的安全203
4.3.1chmod與umask命令203
4.3.2chown命令205
4.3.3chgrp命令207
4.3.4chroot命令208
4.4強制位與貼上位208
4.5檔案隱藏屬性: lsattr、chattr210
4.6訪問控制列表(ACL): getfacl、setfacl、chacl、+212
4.7檔案的壓縮與解壓縮217
4.7.1gzip、gunzip命令218
4.7.2bzip2、bunzip2命令220
4.7.3顯示壓縮檔案的內容: zcat、zless、bzcat、bzless220
4.7.4tar命令221
4.7.5cpio命令223
4.8檔案關聯225
4.8.1MIME類型225
4.8.2添加自定義MIME類型226
4.9本章小結227
4.10習題228
第5章軟體包管理230
5.1RPM230
5.1.1RPM簡介230
5.1.2RPM的使用232
5.2YUM與DNF237
5.2.1YUM與DNF簡介237
5.2.2使用YUM命令238
5.2.3YUM的配置檔案240
5.2.4BaseOS和AppStream242
5.2.5安裝第三方源243
5.2.6創建本地倉庫246
5.2.7升級系統(Fedora)247
5.3軟體包管理GUI: gnomesoftware247
5.4本章小結247
5.5習題247
第6章Linux中的Shell編程249
6.1Shell編程基礎249
6.1.1Shell腳本的建立和執行249
6.1.2有效期與環境配置檔案251
6.1.3Shell變數252
6.1.4控制Shell提示符256
6.1.5測試命令: test257
6.1.6算術運算260
6.1.7內部命令261
6.2Shell程式設計的流程控制263
6.2.1複合結構: 263
6.2.2條件分支: if、case264
6.2.3循環結構: for、while、until266
6.2.4循環退出: break、continue270
6.3Shell腳本中的函式272
6.4Shell腳本的調試274
6.5本章小結275
6.6習題275
第7章網路服務與管理277
7.1網路接口配置277
7.1.1GUI方式: gnomecontrolcenter、nmconnectioneditor277
7.1.2CLI方式: ifconfig、dhclient、route、/etc/resolv.conf277
7.1.3NetworkManager與nmcli282
7.1.4nettools與iproute2285
7.2DHCP服務及配置288
7.2.1DHCP概述288
7.2.3實例——配置DHCP客戶端296
7.3Samba伺服器的設定297
7.3.1Samba概述297
7.3.2實例——配置Samba伺服器298
7.3.3Samba伺服器的配置檔案300
7.3.4SELinux: getsebool、setsebool、chcon、restorecon303
7.4WWW伺服器的設定307
7.4.1Apache308
7.4.2Apache伺服器的默認配置308
7.4.3實例——靜態網站建設310
7.4.4實例——為每個用戶配置Web站點311
7.4.5實例——配置基於IP的虛擬主機313
7.4.6實例——基於主機的授權314
7.4.7實例——基於用戶的認證315
7.4.8實例——組織和管理Web站點317
7.4.9CGI運行環境的配置318
7.5防火牆的設定——iptables319
7.5.1netfilter/iptables簡介320
7.5.2iptables的語法及其使用321
7.5.3實例——防火牆的設定: iptables323
7.5.4實例——NAT的設定: iptables326
7.6防火牆的設定——firewalld329
7.6.1firewalld簡介329
7.6.2firewalld配置: firewallconfig、firewallcmd333
7.6.3實例——NAT的設定: firewallcmd340
7.7防火牆的設定——TCP_Wrappers341
7.8基於xinetd的服務343
7.9本章小結343
7.10習題343
第8章高級系統管理346
8.1邏輯卷管理346
8.1.1邏輯卷管理概述346
8.1.2邏輯卷管理的組成部分346
8.1.3邏輯卷創建過程: pvcreate、pvdisplay、vgcreate、vgdisplay、
lvcreate、lvdisplay347
8.1.4邏輯卷的擴展與縮小: lvextend、resize2fs、lvreduce350
8.1.5卷組的擴展與刪除: vgextend、lvremove、vgremove、pvremove350
8.2磁碟陣列351
8.2.1RAID概述及常用的RAID規範351
8.2.2軟體RAID描述355
8.2.3mdadm管理工具355
8.2.4軟體RAID創建過程355
8.2.5軟體RAID配置檔案356
8.2.6查看、停止與啟動軟體RAID356
8.3磁碟配額356
8.3.1相關命令: quota、quotacheck、edquota、quotaon、quotaoff357
8.3.2實例——實現磁碟限額359
8.4虛擬化技術362
8.4.1虛擬化技術概述362
8.4.2QEMU、KVM、QEMUKVM、libvirt、virsh和virtmanager363
8.4.3實例——虛擬機的安裝與管理364
8.5cgroups366
8.5.1cgroups概述366
8.5.2cgroups的默認層級367
8.5.3cgroups的子系統370
8.6cgroups與systemd371
8.6.1創建cgroup: systemdrun371
8.6.2刪除cgroup372
8.6.3修改cgroup373
8.6.4獲得關於cgroup的信息: systemdcgls、systemdcgtop375
8.7namespace376
8.8容器和雲377
8.8.1容器377
8.8.2雲378
8.9伺服器管理軟體Cockpit379
8.10本章小結381
8.11習題381
參考文獻383
附錄網站資源384