Linux自有服务与软件包管理
服务是一些特定的进程,自有服务就是系统开机后就自动运行的一些进程,一旦客户发出请求,这些进程就自动为他们提供服务,windows系统中,把这些自动运行的进程,称为"服务"
举例:当我们使用SSH客户端软件连接linux的时候,我们的服务器为什么会对连接做出响应?是因为SSH服务开机就自动运行了。
所谓自有服务,简单来说,可以理解为Linux系统开机自动运行的服务(程序)。
一、systemctl管理系统服务
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:列出所有启动的服务
案例:列出Linux系统中所有的服务(包含启动的和没启动的)
# systemctl list-units --type service --all
案例:只列出已经启动的Linux系统服务
# systemctl list-units --type service
案例:把systemctl显示系统服务与管道命令相结合,筛选我们想要的服务信息
# systemctl list-units --type service | grep sshd
3、Linux系统服务管理
☆ status查看状态
查看系统服务的状态
# systemctl status 系统服务的名称
案例:查询系统中网络服务的状态信息
# systemctl status network
案例:查询系统中sshd服务的状态信息
# systemctl status sshd
☆ stop停止服务
# systemctl stop 系统服务的名称
案例:使用systemctl命令停止network网络服务
# systemctl stop network
☆ start启动服务
# systemctl start 系统服务的名称
案例:使用systemctl命令启动network网络服务
# systemctl start network
☆ restart重启服务
# systemctl restart 系统服务的名称
等价于
# systemctl stop 系统服务的名称
# systemctl start 系统服务的名称
案例:使用systemctl命令重启crond计划任务的服务信息
# systemctl restart crond
☆ reload热重载技术
# systemctl reload 系统服务名称
reload:重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart)
有些服务,如Nginx,更改了配置文件,但是不能重启Nginx服务,只是想立即让我们配置文件的更改生效,则就可以使用热重载技术了。
案例:使用热重载技术重新加载crond服务
# systemctl reload crond
4、服务持久化(开机自启与开机不自启)
所谓服务持久化,就是服务在开机的时候,是否自动启动。
☆ 开机自启
# systemctl enable 系统服务的名称
案例:把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
案例:把crond计划任务的服务信息添加到开机自启动中
# systemctl enable crond
☆ 开机不自启
# systemctl disable 系统服务的名称
案例:把crond计划任务的服务信息从开机自启动中移除
# systemctl disable crond
二、扩展:系统运行级别
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 字符模式
4 无
5 graphical.target 图形模式
6 无
4、init命令(临时更改运行模式)
# init 模式编号
案例:立即关机
# shutdown -h 0或now
或
# halt -p
或
# init 0
案例:立即重启
# reboot
或
# init 6
案例:把计算机切换到字符模式(黑窗口)
# init 3
案例:把计算机切换到图形模式(图形界面)
# init 5
5、CentOS6中的chkconfig
问题:在CentOS7中,设置network开机启动时,系统要求使用chkconfig命令
# chkconfig network on
设置完成后,怎么查看network有没有随开机自动启动呢?
# chkconfig --list |grep network
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
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.php
4、NTP时间同步操作
☆ 手工同步
基本语法:
# ntpdate NTP服务器的IP地址或域名
案例:查看Linux系统时间
# date
案例:从NTP服务器中同步系统时间
# ntpdate cn.ntp.org.cn
☆ 自动同步
基本语法:
① 启动ntpd服务
# systemctl start ntpd
② 把ntpd服务追加到系统开机启动项中
# systemctl enable ntpd
问题1:启动ntpd服务后,是不是时间就自动同步了?
启动后就自动同步了
问题2:需不需要让ntpd服务,开机自动运行?
需要
ntpd服务配置文件位置 /etc/ntp.conf
四、Linux下的软件包管理
1、什么是软件包
这是什么?
由以上图解可知,这个PCQQ2019.exe是Windows中的软件安装包。
所谓的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. 去官网去下载(RPM Search);
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
[root@yunwei ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part├─centos-root 253:0 0 17G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.3G 0 rom /run/media/itheima/CentOS 7 x86_64
由以上图解可知,/dev/sr0代表光驱设备 => 挂载点 => /run/media/itheima/CentOS 7 x86_64文件夹
或
# df -T
Linux操作系统的中所有存储设备必须先挂载后使用
第三步:使用cd命令,切换到挂载目录
# cd /run/media/itheima/CentOS\ 7\ x86_64
第四步:使用cd命令,切换到Packages软件包中
# cd Packages
第五步:查询我们要安装的软件包
# ls |grep firefox
firefox-60.2.2-1.el7.centos.x86_64.rpm
第六步:使用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扩展
☆ 依赖关系
一个软件必须先有其他软件才能运行,例如之前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
☆ 查看文件所属的包名
基本语法:f = file
# rpm -qf 文件名称
主要功能:判断某个文件所属的包名称
案例:查询/etc/ntp.conf 属于哪个软件包
# rpm -qf /etc/ntp.conf
ntp-4.2.6p5-28.el7.centos.x86_64
☆ 查询软件安装完成后,生成了哪些文件
基本语法: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/itheima/CentOS 7 x86_64就相当于访问光盘
答:主要原因就是因为CentOS7的操作系统自动把光驱设备挂载到此目录了,访问这个目录就相当于访问光盘。
☆ 解挂
# cd ~
# umount /run/media/itheima/CentOS\ 7\ x86_64
常见问题:当我们执行以上命令时,系统提示target is busy!
出现以上问题的主要原因在于我们当前所在的目录为挂载目录。
☆ 挂载
# mount 设备文件 挂载目录
提示:光驱的设备文件为/dev/sr0
案例:把光驱挂载到/mnt/cdrom目录
# mkdir /mnt/cdrom
# mount /dev/sr0 /mnt/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
案例:把/mnt/cdrom进行解挂操作
# cd ~
# umount /mnt/cdrom
相关文章:

Linux自有服务与软件包管理
服务是一些特定的进程,自有服务就是系统开机后就自动运行的一些进程,一旦客户发出请求,这些进程就自动为他们提供服务,windows系统中,把这些自动运行的进程,称为"服务" 举例:当我们使…...
Centos7中redis开机自启动设置
以下亲测实践有效。 进入以下目录 cd usr/local/redis/redis-6.2.6/utils/ 编辑修改以下文件内容 vim redis_init_script #修改redis安装启动目录 REDISPORT6379 #修改安装目录 EXEC/usr/local/redis/redis-6.2.6/src/redis-server CLIEXEC/usr/local/redis/redis-6.2.6/sr…...

STM32F4之系统滴答定时器
一、系统滴答定时器概述 传统定时器:如手机闹钟,闹钟等就是一个简单地计数器。 定时器概念:由时钟源计数器计数值组成的计数单元。 系统嘀嗒定时器首先是存在于内核里,系统嘀嗒时钟假如用的是同一个内核那么里面相关的配置&…...
P4 并发控制
文章目录 Task1 锁管理器LockTableUnLockTableLockRowUnLockRow Task2 死锁检测Task3 并发查询执行器Isolation Levelseq_scan_executorinsert_executordelete_executortransaction_manager Task1 锁管理器 LockManager类包含两个属性类,分别是LockRequest和LockRe…...
友元的介绍
实现外部类和外部函数存取类的私有成员和保护成员的方法。 一、友元函数 可访问类所有成员的外部函数 //求两点间的距离:抽象点——>求距离的函数 #include<iostream> #include<cmath> using namespace std; class Point{private:double x,y;publ…...

新手如何找到Docker容器(redis)中的持久化文件?
具体步骤 要查看Docker容器的dump.rdb和appendonly.aof文件(如果启用了AOF持久化)的位置,我们需要知道容器中Redis配置文件的内容或者容器的数据卷的挂载位置。 这里是一般步骤: 查找容器的数据卷挂载位置 使用docker inspect命令…...

python二次开发Solidworks:读取立方体的高度
在SW中新建一个零件文档,建立一个立方体,长度和宽度自定义,高度100mm,下面通过python实现读取该立方体的高度: import win32com.client as win32 import pythoncomswApp win32.Dispatch(sldworks.application) swApp.…...
NPM安装后报错:ERROR: npm v10.2.1 is known not to run on Node.js v10.24.1.
问题描述 NPM卸载高版本后安装低版本运行报错: C:\Users\Administrator>npm -v ERROR: npm v10.2.1 is known not to run on Node.js v10.24.1. This version of npm supports the following node versions: ^18.17.0 || >20.5.0. You can find the latest…...
【Vue】Element开发笔记
Element开发笔记 前言 官网 https://element.eleme.cn/#/zh-CN/component/upload 其它项目网站 https://www.cnblogs.com/qq2806933146xiaobai/p/17180878.html 表格 序号列添加 <el-table-column type"index" :index"handleIndexCalc" label&qu…...
How to install mongodb 7.0 to Ubuntu 22.04
How to install mongodb 7.0 to Ubuntu 22.04 1、安装1.1、添加gpg1.2、添加apt源1.3、更新1.4、安装 2、管理2.1、服务管理2.1.1、查看服务状态2.1.2、启动服务2.1.3、 设置服务为开机启动2.1.4、取消服务开机启动2.1.5、关闭服务2.1.6、服务重启 2.2、mongosh2.2.1、进入mong…...

AFL安全漏洞挖掘
安全之安全(security)博客目录导读 ATF(TF-A)/OPTEE之FUZZ安全漏洞挖掘汇总 目录 一、AFL简介 二、AFL的安装 三、代码示例及种子语料库 四、AFL插桩编译 五、AFL运行及测试 六、AFL结果分析 一、AFL简介 模糊测试(Fuzzing)技术作为漏洞挖掘最有…...
ES6 let const var和解构赋值
1.let/const和var的区别 1.变量提升:var会发生变量提升,let和const不存在变量提升 2.暂时性死区:变量声明之前变量不可用称为暂时性死区。var不存在,let和const存在暂时性死区 3.typeof 不再是百分百不会报错:let声…...

03、MySQL-------数据库中间件MyCat实现读写分离
目录 八、数据库中间件MyCat实现读写分离1、克隆:2、配置分析:1、schema.xml2、启动mycat:3、关闭防火墙:4、代码测试:测试写入:测试读:强制读Master 八、数据库中间件MyCat实现读写分离 作用&…...

虹科活动 | 探索全新AR应用时代,虹科AR VIP研讨会广州场回顾!
文章来源:虹科数字化AR 阅读原文:https://mp.weixin.qq.com/s/7tmYR42Tw5XLn70fm8Nnew 主题演讲 本次研讨会,虹科特邀 “工业AR鼻祖” 美国Vuzix公司的首席应用工程师郑慎方先生进行主题演讲,并邀请到了各界的专业人士和企业代表参…...

非科班,补基础
大家好,我是大彬~ 今天跟大家分享知识星球小伙伴关于【非科班转码如何补基础】的提问。 往期星球提问整理: 读博?找工作? 性格测试真的很重要 想找一份实习工作,需要准备什么 球友提问: 大彬大佬…...
安全性与合规性:IT运维的双重守护
在当今数字化时代,信息技术(IT)已深入渗透到企业的各个层面。随着数据和技术的不断发展,IT运维安全性和合规性逐渐成为了企业运营的两大核心要素。它们不仅保障了企业数据的安全,更维护了公司的声誉和客户信任。本文将…...

session 反序列化
原理详解 ctfshow web 263 ctfshow 新手杯 剪刀石头布 这里我们可以发现服务器使用的处理器为php_serialize,与当前页面处理器不同,在反序列化的时候会造成一些问题。同时cleanup配置没开,关闭了session自动清理,所以我们不需要…...
PostgreSQL中实现数学中的组合问题
记得在学《数值分析》这门课程时,其中有排列组合的相关计算。最近没有想到,自己居然在编程上需要了这个问题,需要在数据库的一张表中,找出任意n条记录的组合,判断组合后的图形是什么,也就是组合问题。从网上搜索的相关资料,发现很多是在Java或者python代码实现的。因为数…...

编译和连接
前言:哈喽小伙伴们,从我们开始学习C语言到实现如今的成果,可以说我们对C语言的掌握已经算是精通级别了,但是我们只学习了怎么写代码,却没怎么了解过代码的背后是怎么工作的。 那么今天这篇文章我们一起来学习C语言的最…...

常见分布整理
概率论 - 常见分布(及其分布表) 常见分布的期望和方差 离散型分布 两点分布 有2种结果,实验只做1次 X~b(1,p)则有 P(X k) pk (1-p)1-k,k 0, 1 数学期望:E(X) p 方差:D(X)p(1-p) 二项分布 P(A) p࿰…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...

基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...

算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...