Linux自有服务与软件包管理

这次来学习一下Linux自有服务与软件包管理相关内容,如下。
在这里插入图片描述

一、systemctl管理系统服务

什么是Linux自有服务?

服务是一些特定的进程,自有服务就是系统开机后就自动运行的一些进程,一旦客户发出请求,这些进程就自动为他们提供服务,windows系统中,把这些自动运行的进程,称为"服务"。

eg:当我们使用SSH客户端软件连接linux的时候,我们的服务器为什么会对连接做出响应?是因为SSH服务开机就自动运行了。

所谓自有服务,简单来说,可以理解为Linux系统开机自动运行的服务(程序)。

1、systemctl概述

CentOS6版本:

service命令(管理服务开启、停止以及重启)+ chkconfig(定义开机启动项)

service network start|stop|restart

CentOS7版本:
systemctl命令 = system系统 + control控制(服务管理+开启启动项管理)

systemctl start|stop|restart network

2、显示系统服务

基本语法:

systemctl [选项]
选项说明:
list-units --type service --all:列出所有服务(包含启动的和没启动的)
list-units --type service:列出所有启动的服务

案例1:列出Linux系统中所有的服务(包含启动的和没启动的)

systemctl list-units --type service --all

在这里插入图片描述

案例2:只列出已经启动的Linux系统服务

systemctl list-units --type service

在这里插入图片描述

注:空格可以翻页,q退出

把systemctl显示系统服务与管道命令相结合,筛选我们想要的服务信息(重点常用)

案例3:列出sshd的服务信息

systemctl list-units --type service | grep sshd

在这里插入图片描述

3、Linux系统服务管理

3.1 status查看状态

查看系统服务的状态

systemctl status 系统服务的名称

案例1:查询系统中网络服务的状态信息

systemctl status network

在这里插入图片描述

案例2:查询系统中sshd服务的状态信息

systemctl status sshd

在这里插入图片描述

3.2 stop停止服务
systemctl stop 系统服务的名称

案例:使用systemctl命令停止network网络服务

systemctl stop network
3.3 start启动服务
systemctl start 系统服务的名称

案例:使用systemctl命令启动network网络服务

systemctl start network
3.4 restart重启服务
systemctl restart 系统服务的名称
等价于
systemctl stop 系统服务的名称
systemctl start 系统服务的名称

案例:使用systemctl命令重启crond计划任务的服务信息

systemctl restart crond
3.5 reload热重载技术

热重载reload是指在不停止当前服务的前提下重新加载配置文件

systemctl reload 系统服务名称

reload:重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart)

有些服务,如Nginx,更改了配置文件,但是不能重启Nginx服务,只是想立即让我们配置文件的更改生效,则就可以使用热重载技术了。

案例:使用热重载技术重新加载crond服务

systemctl reload crond

在这里插入图片描述

4、服务持久化(开机自启与开机不自启)

所谓服务持久化,就是服务在开机的时候,是否自动启动。

4.1 开机自启
systemctl enable 系统服务的名称

案例1:把network网络服务设置为开机自启动

systemctl enable network

结果显示
network.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig network on

以上提示代表network.service不是一个本地的系统服务,所以想设置开机自启需要使用/sbin/chkconfig进行操作
/sbin/chkconfig network on

在这里插入图片描述

案例2:把crond计划任务的服务信息添加到开机自启动中

systemctl enable crond
4.2 开机不自启
systemctl disable 系统服务的名称

案例:把crond计划任务的服务信息从开机自启动中移除

systemctl disable crond

在这里插入图片描述

5、systemctl参数总结

systemctl参数相关总结见下图:
在这里插入图片描述

二、扩展:系统运行级别

1、什么是运行级别

运行级别全称(Running Level),代表Linux系统的不同运行模式。

2、CentOS6的运行级别

vim /etc/inittab

分析

0   系统关机状态   halt (Do NOT set initdefault to this)
1   单用户工作状态   Single user mode (类似Windows的安全模式,Linux忘记密码)
2   多用户状态(没有NFS) Multiuser, without NFS (The same as 3, if you do not have networking)
3   多用户状态(有NFS)   Full multiuser mode (字符模式,服务基本都是此模式)
4   系统未使用,留给用户   unused
5   图形界面    X11 (图形模式,个人计算机都是此模式)
6   系统正常关闭并重新启动   reboot (Do NOT set initdefault to this)

3、CentOS7的运行级别

0   shutdown.target
1   emergency.target
2   rescure.target
3   multi-user.target   字符模式
45   graphical.target    图形模式
6

4、init命令(临时更改运行模式)

init 模式编号

案例1:立即关机

shutdown -h 0或now
或
halt -p
或
init 0

案例2:立即重启

reboot
或
init 6

案例3:把计算机切换到字符模式(黑窗口)

init 3

之前切换到黑窗口是按 Ctrl + Alt + Fn + F2~F6

案例4:把计算机切换到图形模式(图形界面)

init 5

之前切换回图形界面是按 Ctrl + Alt + Fn + F1

5、CentOS6中的chkconfig

问题:在CentOS7中,设置network开机启动时,系统要求使用chkconfig命令

chkconfig network on

设置完成后,怎么查看network有没有随开机自动启动呢?

chkconfig --list |grep network 

在这里插入图片描述

分析(重点是3和5)

0 关机模式
1 单用户模式
2 多用户模式(无NFS)
3 字符模式
4 自定义模式
5 图形模式
6 重启模式

三、NTP时间同步服务

1、什么是NTP服务

NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。

工作场景:

公司开发了一个电商网站,由于访问量很大,网站后端由100台服务器组成集群。50台负责接收订单,50台负责安排发货,接收订单的服务器需要记录用户下订单的具体时间,把数据传给负责发货的服务器,由于100台服务器时间各不相同,记录的时间经常不一致,甚至会出现下单时间是明天,发货时间是昨天的情况。

2、NTP时间同步的原理

问题:标准时间是哪里来的?

现在的标准时间是由原子钟报时的国际标准时间UTC(Universal Time Coordinated,世界协调时),所以NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。

在NTP中,定义了时间按照服务器的等级传播,Stratum层的总数限制在15以内

工作中,通常我们会直接使用各个组织提供的,现成的NTP服务器

在这里插入图片描述

备注:千万不要改Windows系统时间!

3、从哪里找合适的NTP服务器呢?

NTP授时网站:http://www.ntp.org.cn/pool
在这里插入图片描述

4、NTP时间同步操作

同步服务器时间方式有2 个:一次性同步手动同步、通过服务自动同步。

4.1 手工同步

基本语法:

ntpdate NTP服务器的IP地址或域名

案例1:查看Linux系统时间

date

案例2:从NTP服务器中同步系统时间

ntpdate cn.ntp.org.cn

在这里插入图片描述

4.2 自动同步

基本语法:

① 启动ntpd服务
systemctl start ntpd
② 把ntpd服务追加到系统开机启动项中
systemctl enable ntpd

在这里插入图片描述

问题1:启动ntpd服务后,是不是时间就自动同步了?

问题2:需不需要让ntpd服务,开机自动运行?

需要

ntpd服务配置文件位置 /etc/ntp.conf

四、Linux下的软件包管理

1、什么是软件包

这是什么?
在这里插入图片描述

由上图可知,这个QQ.exe是Windows中的软件安装包。

Linux下也有很多可以安装的软件,而这些软件的安装包可细分为两种,分别是源码包和二进制包。

软件安装包即软件的安装程序,所谓的Linux软件包就是Linux下软件的安装程序

2、Linux下软件的安装方式

① RPM软件包安装 => 软件名称.rpm

② YUM包管理工具 => yum install 软件名称 -y

③ 源码安装 => 下载软件的源代码 => 编译 => 安装(最麻烦的,但是也最稳定)

3、二进制软件包

二进制包,也就是源码包经过成功编译之后产生的包。

二进制包是 Linux 下默认的软件安装包,目前主要有以下 2 大主流的二进制包管理系统:

  • RPM 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,因此很多 Linux 发行版都默认使用此机制作为软件安装的管理方式,例如 Fedora、CentOS、SuSE 等。
  • DPKG 包管理系统:由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理,主要应用在 Debian 和 Ubuntu 中。

RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写

作用:rpm 的作用类似于豌豆荚,华为应用市场,App Store,主要作用是对linux 服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装/更新。

4、获取*.rpm软件包

a. 去官网去下载(http://rpm.pbone.net);
在这里插入图片描述

在这里插入图片描述

b. 不介意老版本的话,可以从光盘(或者镜像文件)中读取;CentOS7.6*.iso

5、查询系统中已安装的rpm软件

rpm -qa |grep 要搜索的软件名称
选项说明:
-q :query,查询操作
-a :all,代表所有

案例1:查询计算机中已安装的rpm软件包

rpm -qa

案例2:搜索计算机中已安装的 firefox软件包

rpm -qa |grep firefox

在这里插入图片描述

结合管道搜索指定的软件,提高查找效率

6、卸载CentOS系统中的rpm软件包

rpm -e 软件名称 [选项]
选项说明:
--nodeps :强制卸载

案例:把系统中的firefox浏览器进行卸载操作

先查询完整软件名称:
rpm -qa |grep firefox

查询结果:firefox-60.2.2-1.el7.centos.x86_64

再卸载:
rpm -e firefox-60.2.2-1.el7.centos.x86_64

7、rpm软件包的安装

基本语法:

rpm -ivh 软件包的名称.rpm
选项说明:
-i:install,安装
-v:显示进度条
-h:表示以"#"形式显示进度条

8、rpm软件包的获取(光盘)

第一步:在VMware虚拟机中加载CentOS7.6的安装光盘
在这里插入图片描述

第二步:使用 lsblk(list block devices)或者df -T 查看块状设备的信息

lsblk
或
df -T

在这里插入图片描述

由上图,/dev/sr0代表光驱设备,挂载点为 /run/media/zhengyquan/CentOS 7 x86_64文件夹

注:Linux操作系统的中所有存储设备必须先挂载后使用

第三步:使用cd命令,切换到挂载目录

cd /run/media/zhengyquan/CentOS\ 7\ x86_64

在这里插入图片描述

注:空格的前面都要加上反斜杠 /

第四步:使用cd命令,切换到Packages软件包中

cd Packages

第五步:结合管道查询我们要安装的软件包

ls |grep firefox

第六步:使用rpm -ivh命令安装软件

rpm -ivh firefox-60.2.2-1.el7.centos.x86_64.rpm

在这里插入图片描述

在这里插入图片描述

小技巧:对于软件名称,不用全部手动输入,输入firefox + Tab,让其自动补全

9、rpm软件包的升级

基本语法:

rpm -Uvh 升级后的软件包名称.rpm
选项说明:
-U :Update,更新操作

案例:使用rpm -Uvh对firefox-60.2.2版本进行升级

rpm -Uvh firefox-68.4.1-1.el7.centos.x86_64.rpm

10、rpm扩展

10.1 依赖关系

一个软件必须先有其他软件才能运行,例如之前xmind启动过程中提示的缺少DLL,称之为依赖。

WAMP(Windows + Apache + MySQL + PHP)安装前必须先安装VC++ 2014 x86_64,这种情况就称之为有依赖关系。

60.8.0的firefox可以更新成功

下面我们尝试更新到68.4.1的版本

用法:rpm -Uvh 软件包名称

rpm -Uvh firefox-68.4.1-1.el7.centos.x86_64.rpm
使用rpm命令,安装68.4.1版本的软件包

在这里插入图片描述

错误提示:

error:Failed dependencies:
提示安装68版本的firefox需要依赖nspr4.21的版本,nss的3.44的版本,这就是我们说的依赖关系

为了解决依赖关系的问题,有另外一个管理工具叫做yum,后面会讲到。

A软件
A软件 => 需要依赖B软件
B软件 => 需要依赖C软件
C软件

依赖关系的解决:使用YUM软件包管理工具对其进行安装(自动解决依赖关系)

yum install firefox -y

在这里插入图片描述

10.2 查看文件所属的包名

基本语法:f = file

rpm -qf 文件名称

主要功能:判断某个文件所属的包名称

案例:查询/etc/ntp.conf 属于哪个软件包

rpm -qf /etc/ntp.conf

在这里插入图片描述

10.3 查询软件安装完成后,生成了哪些文件

基本语法:l = list,显示这个软件安装后生成了哪些文件

rpm -ql 软件名称

案例1:查询firefox软件生成了哪些文件

rpm -ql firefox

特别说明:软件安装完成后,一共生成了以下几类文件
配置文件类:/etc目录
程序文件本身,二进制文件命令:/usr/bin或/usr/sbin目录
文档手册:/usr/share/doc或man目录

案例2:查询openssh软件生成了哪些文件

rpm -ql openssh

11、光盘的挂载与解挂

在Linux操作系统中,所有的存储设备都必须先挂载然后才能使用。

问题:为什么当我们直接访问 /run/media/zhengyquan/CentOS\ 7\ x86_64就相当于访问光盘

因为CentOS7的操作系统自动把光驱设备挂载到此目录了,访问这个目录就相当于访问光盘。

11.1 解挂
cd ~
umount /run/media/zhengyquan/CentOS\ 7\ x86_64

常见问题:当我们执行以上命令时,系统提示target is busy!

出现以上问题的主要原因在于我们当前所在的目录为挂载目录。

11.2 挂载
mount 设备文件 挂载目录

提示:光驱的设备文件为/dev/sr0

案例1:把光驱挂载到/mnt/cdrom目录

mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom

mount: /dev/sr0 is write-protected, mounting read-only

案例2:把/mnt/cdrom进行解挂操作

cd ~
umount /mnt/cdrom

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/374448.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Blender_pmx导出fbx

Blender_pmx导出fbx 学无止境? 相关链接: Blender教程: Blender中文手册介绍 — Blender Manualhttps://docs.blender.org/manual/zh-hans/2.79/about/introduction.htmlhttps://www.blendercn.org/https://www.blendercn.org/Blender下载…

智能运维有哪些要素?智能运维模式有哪些

智能化运维因素 数据收集和处理:智能运维必须收集和解决大量数据,包括设备运行数据、环境数据、用户行为分析等。这些信息能够帮助运维人员发现问题,诊断故障,预测故障,并采取相应的措施。 知识库:智能运维必须建立一个知识库&…

【Flink入门修炼】1-1 为什么要学习 Flink?

流处理和批处理是什么? 什么是 Flink? 为什么要学习 Flink? Flink 有什么特点,能做什么? 本文将为你解答以上问题。 一、批处理和流处理 早些年,大数据处理还主要为批处理,一般按天或小时定时处…

模型压缩开源项目:阿里-tinyNAS/微软NNI/华为-vega

文章目录 阿里-TinyNAS使用流程步骤一:搜索模型结构步骤二:导出模型结果步骤三:使用搜索的模型结构图像分类任务目标检测任务 华为-vega简介定位优点缺点 微软NNI简介定位优点缺点 阿里-TinyNAS https://github.com/alibaba/lightweight-neur…

【Mybatis】从0学习Mybatis(2)

前言 本篇文章是从0学习Mybatis的第一篇文章,由于篇幅太长CSDN会限流,因此我打算分开两期来写,这是第二期!第一期在这儿:【Mybatis】从0学习Mybatis(1)-CSDN博客 1.什么是ResultMap结果映射&am…

Vue3快速上手(一)使用vite创建项目

一、准备 在此之前,你的电脑,需要安装node.js,我这边v18.19.0 wangdymb 2024code % node -v v18.19.0二、创建 执行npm create vuelatest命令即可使用vite创建vue3项目 有的同学可能卡主不动,可能是npm的registry设置的问题 先看下&#x…

MES生产制造管理:汽车零部件生产MES解决方案

某某汽车部件科技有限公司是一家铝合金零部件研发、压铸和精加工为一体的高新技术企业,拥有先进压铸、机加、检测等设备,并配套自动化生产线。为解决发动机支架等产品的全程生产质量追溯和实现机台设备联网,梅施科技提供了车间级的MES解决方案,如图所示: 梅施科技采…

IF=82.9!高分文献解读|吉西他滨联合顺铂化疗激活肿瘤免疫新机制

鼻咽癌(nasopharyngeal carcinoma, NPC)是一种发生于鼻咽部上皮细胞的恶性肿瘤,且高发于中国。吉西他滨联合顺铂(GP)化疗作为鼻咽癌的一种全球标准治疗方案,然而治疗的具体机制目前尚不清楚。中山大学肿瘤防…

好“云”来!盘点春节与云计算息息相关的那些事儿

在过去的几年里,因为疫情的缘故好多人都选择了就地过年。春节期间,在科技的推动下,“云拜年”“云团圆”“云聚餐”等过年新模式正成为人们过年的选项,各种新模式让相隔千里的亲朋也能感受到浓浓的亲情和喜庆的年味。 那春节里有…

多线程 --- [ 线程概念,线程控制 ]

目录 1. 补充知识 1.1. 什么叫做进程呢? 1.2. 堆区的知识补充 1.3. 虚拟地址到物理地址的转化过程 2. 线程概念 3. 见见代码 3.1. pthread_create 4. Linux进程 && 线程 4.1. 线程如何看待进程内部的资源 4.2. 进程 vs 线程 4.3. 线程的优点 4.…

JVM 性能调优 - 参数基础(2)

查看 JDK 版本 $ java -version java version "1.8.0_151" Java(TM) SE Runtime Environment (build 1.8.0_151-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode) 查看 Java 帮助文档 $ java -help 用法: java [-options] class [args...] …

vue element 组件 form深层 :prop 验证失效问题解决

此图源自官网 借鉴。 当我们简单单层验证的时候发现是没有问题的,但是有的时候可能会涉及到深层prop,发现在去绑定的时候就不生效了。例如我们在form单里面循环验证,在去循环数据验证。 就如下图的写法了 :prop"pumplist. i .device…

YUM | 起源 | 发展 | 运行逻辑

介绍 YUM(Yellowdog Updater, Modified)起源于 Red Hat Linux 发行版 up2date 工具。 最初,up2date 是由 Red Hat 公司提供的用于管理系统更新的工具。然而,社区逐渐对 up2date 出现一些不满,主要是由于其使用体验和…

【考研408】算法与数据结构笔记

文章目录 绪论数据结构的基本概念算法和算法评价 线性表线性表的定义和基本操作线性表的顺序表示线性表的链式表示 栈和队列栈基本操作栈的顺序存储结构栈的链式存储 队列队列常见的基本操作队列的顺序存储结构队列的链式存储结构双端队列 栈和队列的应用栈在括号匹配中的应用栈…

【C/C++ 17】继承

目录 一、继承的概念 二、基类和派生类对象赋值转换 三、继承的作用域 四、派生类的默认成员函数 五、继承与友元 六、继承与静态成员变量 七、菱形继承与虚拟继承 一、继承的概念 继承是指一个类可以通过继承获得另一个类的属性和方法,扩展自己的功能&…

Mysql-数据库压力测试

安装软件 官方软件 安装插件提供了更多的监听器选项 数据库驱动 数据库测试 配置 这里以一个简单的案例进行,进行连接池为10,20,30的梯度压测: select * from tb_order_item where id 1410932957404114945;新建一个线程组 新增一个连接池配置 新建一…

【Java】MybatisPlus入门

学习目标 能够基于MyBatisPlus完成标准Dao开发 能够掌握MyBatisPlus的条件查询 能够掌握MyBatisPlus的字段映射与表名映射 能够掌握id生成策略控制 能够理解代码生成器的相关配置 一、MyBatisPlus简介 1. 入门案例 问题导入 MyBatisPlus环境搭建的步骤? 1.1 Sp…

在VM虚拟机上搭建MariaDB数据库服务器

例题:搭建MariaDB数据库服务器,并实现主主复制。 1.在二台服务器中分别MariaDB安装。 2.在二台服务器中分别配置my.cnf文件,开启log_bin。 3.在二台服务器中分别创建专用于数据库同步的用户replication_user,并授权SLAVE。&#x…

【ARM 嵌入式 编译系列 2.7 -- GCC 编译优化参数详细介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 GCC 编译优化概述常用优化等级-O1 打开的优化选项-O2 打开的优化选项-O3 打开的优化选项-Os 打开的优化选项优化技术使用优化选项的注意事项GCC 编译优化概述 GCC(GNU Compiler Collection)包含了用于C、C++、Objective-C、Fort…

机器学习之DeepSequence软件使用学习1

简介 DeepSequence 是一个生成性的、无监督的生物序列潜变量模型。给定一个多重序列比对作为输入,它可以用来预测可获得的突变,提取监督式学习的定量特征,并生成满足明显约束的新序列文库。它将序列中的高阶依赖性建模为残差子集之间约束的非…