Linux操作系统实用教程(Fedora)
Linux操作系统实用教程
主 编:张同光
CIP核准号:2022005905
出版单位:清华大学出版社
ISBN:978-7-302-59974-6
ISBN:9787302599746
出版时间:2022.3
页码:363
Linux之父Linus Torvalds选择Fedora作为他的日常操作系统。
前 言
Linux是一款免费的类UNIX操作系统,它继承了UNIX操作系统的强大功能和极高的稳定性。Linux最初由芬兰赫尔辛基大学的学生Linus Torvalds创建,并于1991年首次公布于众。Linus允许免费和自由的使用该系统的源代码,并鼓励其他人进一步对其进行开发。为了对Linux的发展有利,根据GNU GPL(General Public License,GNU通用公共许可证)对其内核进行发布,这样就赢得了许多专业人员的支持,将GNU项目的许多成果移植到了Linux操作系统上。在许多技术人员、研究人员和众多Linux爱好者的支持下,原Linux版本中的错误逐渐消除,并且不断添加新的功能。现在Linux已经成为一个功能强大、稳定可靠的操作系统。
Fedora是RedHat公司开发的一种Linux发行版,是当今世界上最流行的Linux发行版之一,其版权遵循GNU GPL。它给PC机带来了UNIX工作站的强大功能和灵活性,并且提供了全套的因特网应用软件和功能齐全、简单易用的GUI桌面环境。
目前RedHat系列的Linux操作系统主要包括:RHEL、Fedora、CentOS、Rocky Linux、OEL和SL。Fedora是红帽企业版Linux(RHEL)的上游社区发行版,新功能和更改首先在Fedora中引入,经过一段时间的测试和使用,会将Fedora中一些功能和更改包含在下一版RHEL中,也就是说新版RHEL会基于Fedora的某一个版本进行开发。
为了满足Linux操作系统教学方面的需求,笔者编写了《Linux操作系统实用教程(Fedora)》这本书,介绍了在实际项目中常用的知识点和操作技巧,是广大读者步入Linux殿堂不可多得的一本指导书,为读者以后深入学习Linux打下坚实的基础。
一本好的入门教材可以让读者快速领悟Linux的操作方式和系统的基本使用。
目前Linux的入门教材主要针对两类读者:非技术型、技术型。
非技术型读者:对Linux不是真的感兴趣,只是用Linux上网、听音乐、编辑文档等。针对非技术型用户的入门教材以插图为主,讲的内容主要是在GUI下的操作(鼠标),所以,这种使用Linux的方式还是Windows的思维方式。
技术型读者:对Linux很感兴趣,针对技术型用户的入门教材,一开始就从系统的基本命令开始讲解,脱离Windows的思维方式,这样会给读者以后进一步的学习带来很大帮助,也能使读者逐步领悟Linux的精髓(命令行)所在。
本书针对的是技术型读者,主要是计算机专业或相关专业的学生。
本书共有7章,介绍了Fedora 35的许多方面。在第1章,主要介绍了Fedora的详细安装过程、引导工具GRUB2的使用;在第2章,介绍了Linux中的用户接口,特别是命令行,通过这部分的学习,读者可以真正成为Linux命令行的入门者,然后详细的介绍了Vim编辑器的使用,当远程维护Linux服务器时,Vim是常用的。Fedora在系统和文件管理方面,与标准的UNIX操作系统水平相当,这些功能在第3、4章中介绍。在第5章,主要介绍如何使用rpm和dnf命令进行软件包的管理。一直以来,Linux的长处在于网络服务方面,第6章介绍了组建Linux局域网方面的内容,有DHCP、Samba、NFS服务器以及防火墙等的设置;第7章对Fedora中的常用网络服务进行了介绍,这些网络服务有:DNS、WWW、FTP以及邮件服务器。
本书的重点在前4章,只有学好前4章,读者才算对Linux真正入门,后面几章的学习才会比较轻松,甚至可以自学。随着读者学习、掌握越来越多的计算机主要课程的相关知识,你就可以在Linux的世界里纵深发展了。因此,本书是一本比较好的入门教材。也希望读者在学习的过程中重基础、重理论,切忌浮躁。
本书编写时选用Fedora的最新发行版Fedora 35为蓝本。由于Fedora每隔半年会有新的发行版释出,因此,读者拿到本书时,很可能有Fedora 36/37/38/39/40等新的版本可以使用。在此,编者建议读者选用最新的Fedora发行版进行学习。因为本书的目的是为读者使用Linux打下坚实的基础,因此,本书所写多数内容为红帽系列Linux操作系统共性的知识和技术,仍然适用于Fedora 35的若干后续版本。
Linux操作系统实用教程(Fedora)—三级目录
第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分区 8
1.2.2 GPT分区 10
1.3 实例—VirtualBox中安装Fedora
1.3.1 安装VirtualBox 12
1.3.2 VirtualBox中安装Fedora
1.4 U盘安装Fedora
1.4.1 硬盘分区示例 17
1.4.2 实例—Fedora中制作BIOS启动的U盘安装盘 18
1.4.3 实例—Fedora中制作UEFI/BIOS启动的U盘安装盘 19
1.5 引导工具GRUB2的设置与应用 20
1.5.1 GRUB2与GRUB Legacy的区别 20
1.5.2 GRUB2配置文件 21
1.5.3 GRUB2脚本的修改 22
1.5.4 GRUB2多余引导项的删除 24
1.5.5 GRUB2命令行环境的常用命令 25
1.5.6 实例—GRUB2的应用 28
1.6 本章小结 29
1.7 习题 29
第2章 Linux的用户接口与文本编辑器 1
2.1 GNOME及其配置工具 1
2.1.1 GNOME 1
2.1.2 GNOME Shell和GNOME Classic 2
2.1.3 GNOME配置工具:gsettings、dconf、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 输入/输出重定向与管道 13
2.2.8 Linux快捷键 17
2.3 Linux中的文本编辑器简介 18
2.3.1 GNOME中的文本编辑器 18
2.3.2 Vi、Vim与Emacs文本编辑器 19
2.3.3 nano 19
2.4 Vim的5种编辑模式 20
2.5 实例—使用Vim编辑文件 22
2.6 本章小结 26
2.7 习题 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 进程管理 15
3.2.1 监视进程:ps、pstree、top 16
3.2.2 搜索进程:pgrep、pidof、ps|grep 21
3.2.3 终止进程:kill、killall、pkill、xkill 22
3.2.4 进程的优先级:nice、renice 24
3.2.5 前台进程与后台进程:command &、ctrl+z、jobs、fg、bg 26
3.2.6 周期性/定时执行任务:crontab、at、batch、watch 27
3.2.7 以守护进程方式执行任务:nohup 32
3.2.8 终端复用器:tmux 32
3.3 系统和服务管理 32
3.3.1 系统和服务管理器:systemd 32
3.3.2 监视和控制systemd的命令:systemctl 34
3.3.3 系统资源:Unit 35
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、poweroff、runlevel、logout、startx 53
3.4.5 其它命令:man、date/hwclock、cal、eject、clear/reset 54
3.5 系统监视 56
3.5.1 GNOME系统监视器:gnome-system-monitor 56
3.5.2 系统活动情况报告:sar 57
3.6 本章小结 60
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 53
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命令 60
4.3.3 chgrp命令 61
4.3.4 chroot命令 62
4.4 强制位与粘贴位 62
4.5 文件隐藏属性:lsattr、chattr 64
4.6 访问控制列表(ACL):getfacl、setfacl、chacl、+ 65
4.7 文件的压缩与解压缩 70
4.7.1 gzip和gunzip命令 70
4.7.2 bzip2、bunzip2命令 72
4.7.3 xz命令 73
4.7.4 7z、7za命令 74
4.7.5 显示压缩文件的内容:zcat、zless、bzcat、bzless 74
4.7.6 tar命令 75
4.7.7 cpio命令 77
4.8 文件关联 78
4.8.1 MIME类型 78
4.8.2 添加自定义MIME类型 79
4.9 本章小结 80
4.10 习题 80
第5章 软件包管理 1
5.1 RPM 1
5.1.1 RPM简介 1
5.1.2 RPM的使用 3
5.2 DNF 7
5.2.1 DNF简介 7
5.2.2 使用dnf命令 8
5.2.3 DNF的配置文件 10
5.2.4 BaseOS和Application Stream 11
5.2.5 安装第三方源 13
5.2.6 创建本地仓库 14
5.2.7 升级系统(Fedora) 15
5.3 软件包管理GUI:gnome-software 15
5.4 本章小结 15
5.5 习题 16
第6章 组建Linux局域网 1
6.1 网络接口配置 1
6.1.1 GUI方式:gnome-control-center、nm-connection-editor 2
6.1.2 CLI方式:nmcli 2
6.1.3 systemd-resolved和resolvectl 4
6.1.4 ifconfig、dhclient、route、ping、traceroute 6
6.1.5 net-tools与iproute2 9
6.2 DHCP服务器 12
6.2.1 DHCP概述 12
6.2.2 实例—设置DHCP服务器 14
6.2.3 实例—设置DHCP客户机 19
6.3 Samba服务器 20
6.3.1 Samba概述 20
6.3.2 实例—配置Samba服务器 21
6.3.3 Samba服务器的配置文件 23
6.3.4 SELinux:getsebool、setsebool、chcon、restorecon 25
6.4 NFS服务器 29
6.4.1 NFS服务简介 29
6.4.2 NFS服务器端的配置 29
6.4.3 NFS客户端的配置 31
6.5 防火墙的设置—iptables 31
6.5.1 Netfilter/iptables简介 32
6.5.2 iptables的语法及其使用 33
6.5.3 实例—防火墙的设置:iptables 35
6.5.4 实例—NAT的设置:iptables 37
6.6 防火墙的设置—firewalld 40
6.6.1 firewalld简介 40
6.6.2 firewalld配置:firewall-config、firewall-cmd 44
6.6.3 实例—NAT的设置:firewall-cmd 49
6.7 代理服务器Squid的设置 51
6.7.1 代理服务器Squid简介 52
6.7.2 实例—局域网使用Squid共享上网 52
6.8 本章小结 57
6.9 习题 57
第7章 提供Internet服务 1
7.1 SSH 1
7.1.1 SSH简介 1
7.1.2 SSH服务器的设置 2
7.1.3 SSH客户端的应用 2
7.1.4 SSH客户端通过密钥访问SSH服务器 2
7.2 Linux终端复用器——Tmux 3
7.2.1 Tmux简介 3
7.2.2 Tmux的会话、窗口、窗格 4
7.2.3 实例—登录远程服务器使用Tmux 6
7.3 DNS服务及配置 7
7.3.1 DNS概述 7
7.3.2 Bind 9
7.3.3 实例—设置DNS服务器 9
7.3.4 view指令 16
7.3.5 测试DNS服务器:nslookup、host、dig 19
7.3.6 辅助DNS服务器 20
7.3.7 缓存Cache-only服务器 21
7.4 WWW服务器的设置——Apache 21
7.4.1 Apache 21
7.4.2 Apache服务器的默认配置 22
7.4.3 实例—静态网站建设 23
7.4.4 实例—为每个用户配置Web站点 24
7.4.5 实例—配置基于IP的虚拟主机 25
7.4.6 实例—基于主机的授权 27
7.4.7 实例—基于用户的认证 28
7.4.8 实例—组织和管理Web站点 30
7.4.9 CGI运行环境的配置 31
7.5 WWW服务器的设置——Nginx 32
7.5.1 安装 Nginx 32
7.5.2 安装PHP和PHP-FPM 32
7.5.3 安装 MariaDB 32
7.5.4 MariaDB的简单使用 33
7.5.5 实例—动态网站建设(LNMP) 36
7.6 FTP服务器的设置 37
7.6.1 FTP概述 37
7.6.2 实例—设置FTP服务器(vsftpd) 39
7.6.3 FTP客户端(FileZilla) 42
7.7 邮件服务器简介 42
7.8 本章小结 45
7.9 习题 45
ISBN:978-7-302-59974-6
ISBN:9787302599746