本次内容:
- 系统内核与发行套件系统
- VM虚拟机软件提供的三种上网模式
- RPM(红帽软件包管理器)
- Yum软件仓库
- systemd初始化进程
《Linux就该这么学》这本书使用的Linux系统版本为 RHEL7
1.系统内核与发行套件
- Linux系统内核:Linux系统内核指的是一个由Linus Torvalds负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。
- Linux发行套件系统:Linux发行套件系统是我们常说的 Linux 操作系统,也即是由Linux内核与各种常用软件的集合产品,例如CentOS、Debian、RHEL等。
2.VM虚拟机软件提供的三种上网模式
- 桥接模式:相当于在物理主机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理主机的网卡访问外网。
- NAT模式:让VM虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟的主机可以通过物理主机访问外网,在真机中NAT虚拟机网卡对应的物理网卡是VMnet8。
- 仅主机模式:仅让虚拟机内的主机与物理主机通信,不能访问外网,在真机中仅主机模式模拟网卡对应的物理网卡VMnet1。
3.RPM(红帽软件包管理器)
在RPM发布之前,想要在Linux安装软件仅能通过源码包的方式安装,这是一件非常困难的事情,RPM解决了这个问题。RPM红帽包管理器类似于Windows系统的控制面板,我们可以通过RPM的一些命令行直接对软件进行操作,以下为RPM的部分常用命令:
| 命令格式 | 命令 |
|---|---|
| 安装软件 | rpm -ivh filename.rpm |
| 升级软件 | rpm -Uvh filename.rpm |
| 卸载软件 | rpm -e filename.rpm |
| 查询软件的描述信息 | rpm -qpi filename.rpm |
| 列出软件的文件信息 | rpm -qpl filename.rpm |
| 查询文件属于哪个RPM命令格式 | rpm -qf filename |
4.Yum软件仓库
尽管RPM为我们操作软件提供了很大的便利,但是有时安装一个软件往往会发现它与数十个程序都有依赖关系,在这种情况下安装程序仍然比较困难。Yum软件仓库可以根据用户的要求分析出需要的软件包及相关依赖,然后自动从Yum软件仓库服务器下载安装包并安装到系统。可见,RPM是简化了软件安装的复杂度而Yum软件仓库解决了软件包之间的依赖关系。以下为部分常见的Yum命令:
| 命令 | 作用 |
|---|---|
| yum repolist all | 列出所有仓库 |
| yum list all | 列出仓库中所有软件包 |
| yum info 软件包名称 | 查看软件包信息 |
| yum install 软件包名称 | 安装软件包 |
| yum reinstall 软件包名称 | 重新安装软件包 |
| yum update 软件包名称 | 升级软件包 |
| yum remove 软件包名称 | 移除软件包 |
| yum clean all | 清除所有仓库缓存 |
| yum check-update | 检查可更新的软件包 |
| yum grouplist | 查看系统中已经安装的软件包组 |
| yum groupinstall 软件包组 | 安装指定的软件包组 |
| yum groupremove 软件包组 | 移除指定的软件包组 |
| yum groupinfo 软件包租 | 查询指定的软件包租信息 |
5.systemd初始化进程
Linux操作系统的开启过程是这样的:从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化线程。初始化进程是Linux系统的第一个进程,它需要完成Linux系统中相关的初始化工作并为用户提供合适的工作环境。红帽RHEL 7系统采用systemd初始化进行服务,下面是systemctl管理服务的部分常用命令:
| 命令 | 作用 |
|---|---|
| systemctl start foo.service | 启动服务 |
| systemctl restart foo.service | 重启服务 |
| systemctl stop foo.service | 停止服务 |
| systemctl reload foo.service | 重新加载配置文件(不终止服务) |
| systemctl status foo.service | 查看服务状态 |
| systemctl enable foo.service | 开机自动启动 |
| systemctl disable foo.service | 开机不自动启动 |
| systemctl is-enabled foo.service | 查看特定服务是否开机自动启动 |
| systemctl list-unit-files --type=service | 查看各个级别下服务的启动与禁用情况 |