原文地址:https://www.linuxprobe.com/chapter-01.html
最近想着要发布原来做的一个javaweb小项目 域名 云服务器都买好了,然后很尴尬,不会在云服务器上搭建环境,我的是centOS6.8,百度下来有各种版本参差不齐,本身对liunx系统也不太熟悉,只会简单的操作,然后 看到网上说《Linux就该这么学》挺好的,然后就想深入学习下linux系统,虽然我不是运维但是多个技能不压身,多少总要了解下,我是按照老师的教程写的,只不过是想加深一下自己的印象。
RPM(红帽软件包管理器)
在RPM(红帽软件包管理器)公布之前,要想在Linux系统中安装软件只能采取源码包的方式安装。早期在Linux系统中安装程序是一件非常困难、耗费耐心的事情,而且大多数的服务程序仅仅提供源代码,需要运维人员自行编译代码并解决许多的软件依赖关系,因此要安装好一个服务程序,运维人员需要具备丰富知识、高超的技能,甚至良好的耐心。而且在安装、升级、卸载服务程序时还要考虑到其他程序、库的依赖关系,所以在进行校验、安装、卸载、查询、升级等管理软件操作时难度都非常大
RPM机制则为解决这些问题而设计的。RPM有点像Windows系统中的控制面板,会建立统一的数据库文件,详细记录软件信息并能够自动分析依赖关系。
常用的RPM软件包命令
安装软件的命令格式 rpm -ivh filename.rpm (filename是软件包的名字)
升级软件的命令格式 rpm -Uvh filename.rpm
卸载软件的命令格式 rpm -e filename.rpm
查询文件描述信息的命令格式 rpm -qpi filename.rpm
列出软件文件信息的命令格式 rpm -qpl filename.rpm
查询文件输入哪个RPM的命令格式 rpm -qf filename
Yum软件仓库
尽管RPM能够帮助用户查询软件相关的依赖关系,但问题还是要运维人员自己来解决,而有些大型软件可能与数十个程序都有依赖关系,在这种情况下安装软件会是非常痛苦的。Yum软件仓库便是为了进一步降低软件安装难度和复杂度而设计的技术。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 软件包组 |
查询指定的软件包组信息 |
Systemd初始化进程
Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程。初始化进程作为Linux系统的第一个进程,它需要完成Linux系统中相关的初始化工作,为用户提供合适的工作环境。红帽RHEL 7系统已经替换掉了熟悉的初始化进程服务System V init,正式采用全新的systemd初始化进程服务
RHEL 7系统选择systemd初始化进程服务已经是一个既定事实,因此也没有了“运行级别”这个概念,Linux系统在启动时要进行大量的初始化工作,比如挂载文件系统和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元(Unit),systemd用目标(target)代替了System V init中运行级别的概念,这两者的区别
systemd与System V init的区别以及作用
System V init运行级别 | systemd目标名称 | 作用 |
0 | runlevel0.target, poweroff.target | 关机 |
1 | runlevel1.target, rescue.target | 单用户模式 |
2 | runlevel2.target, multi-user.target | 等同于级别3 |
3 | runlevel3.target, multi-user.target | 多用户的文本界面 |
4 | runlevel4.target, multi-user.target | 等同于级别3 |
5 | runlevel5.target, graphical.target | 多用户的图形界面 |
6 | runlevel6.target, reboot.target | 重启 |
emergency | emergency.target | 紧急Shell |
systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令
System V init命令(RHEL 6系统) | systemctl命令(RHEL 7系统) | 作用 |
service foo start | systemctl start foo.service | 启动服务 |
service foo restart | systemctl restart foo.service | 重启服务 |
service foo stop | systemctl stop foo.service | 停止服务 |
service foo reload | systemctl reload foo.service | 重新加载配置文件(不终止服务) |
service foo status | systemctl status foo.service | 查看服务状态 |
systemctl设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令
System V init命令(RHEL 6系统) | systemctl命令(RHEL 7系统) | 作用 |
chkconfig foo on | systemctl enable foo.service | 开机自动启动 |
chkconfig foo off | systemctl disable foo.service | 开机不自动启动 |
chkconfig foo | systemctl is-enabled foo.service | 查看特定服务是否为开机自启动 |
chkconfig --list | systemctl list-unit-files --type=service | 查看各个级别下服务的启动与禁用情况 |