https://blog.csdn.net/ztguang/article/details/26748213
https://blog.csdn.net/ztguang/article/details/88710646
本科教材
主编: 张同光
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