Linux中的systemctl命令使用

学习目标

1、了解systemctl命令用途

2、掌握使用systemctl开启,关闭,重启服务

3、了解常见自有服务ntpd的作用

4、掌握ntpdate时间同步原理与实现

6、了解源码包和二进制包的区别

7、掌握rpm包的卸载、安装以及更新操作

 

Linux自有服务与软件包管理

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

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

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

systemctl管理系统服务

systemctl概述

CentOS6版本:

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

service network start|stop|restart

CentOS7版本:

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

systemctl start|stop|restart network

显示系统服务

基本语法:

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

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热重载技术

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

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

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

systemctl reload crond

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

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

开机自启

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
​
Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.

Centos6中的chkconfig

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

chkconfig network on

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

chkconfig --list | grep network
​
network 0:关1:关2:开3:开4:开5:开6:关
​
θ 关机模式
1 单用户模式
2 多用户模式(无NFS)
3 字符模式自定义模式
5 图形模式
6 重启模式

NTP时间同步服务

什么是NTP服务

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

工作场景:

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

NTP时间同步的原理

标准时间是哪里来的?

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

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

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

找合适的NTP服务器

NTP授时网站:全球可用的NTP服务器列表与解析服务

NTP时间同步操作

手工同步

基本语法:

ntpdate 服务器的IP地址或域名

案例:查看Linux系统时间

date

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

ntpdate cn.ntp.org.cn

自动同步

基本语法:

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

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

启动后就自动同步了

需不需要让ntpd服务,开机自动运行?

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

Linux下的软件包管理

什么是软件包

这是什么?

由以上图解可知,这个是Windows中的软件安装包。

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

Linux下软件的安装方式

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

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

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

二进制软件包

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

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

RPM 包管理系统

功能强大,安装、升级、查询和卸载非常简单方便,因此很多Linux发行版都默认使用此机制作为软件安装的管理方式,例如Fedora、CentOs等。

DPKG包管理系统

由DebianLinux所开发的包管理机制,通过DPKG包,Debian,Linux就可以进行软件包管理,主要应用在Debian和Ubuntu中。

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

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

获取*.rpm软件包

a.去官网去下载(Search the RPM repository on www.rpmfind.net);

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

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

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

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

rpm -qa

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

rpm -qa |grep firefox

卸载Centos系统中的rpm软件包

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

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

rpm -qa | grep firefox
firefox-91.11.0-2.el7.centos.x86_64
​
rpm -e firefox-91.11.0-2.el7.centos.x86_64
rpm软件包的安装
rpm -ivh 软件包的名称.rpm
​
选项说明:
-i: install,安装
-v: 显示进度条
-h: 表示以“#”形式显示进度条
rpm软件包的获取(光盘)

第一步:在VMware虚拟机中加载CentOS7.6的安装光盘

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

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  9.6G  0 rom
df -T
​
文件系统                类型        1K-块    已用     可用 已用% 挂载点
devtmpfs                devtmpfs  1913548       0  1913548    0% /dev
tmpfs                   tmpfs     1930624       0  1930624    0% /dev/shm
tmpfs                   tmpfs     1930624   13156  1917468    1% /run
tmpfs                   tmpfs     1930624       0  1930624    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs      17811456 3954568 13856888   23% /
/dev/sda1               xfs       1038336  191088   847248   19% /boot
tmpfs                   tmpfs      386128       0   386128    0% /run/user/0
tmpfs                   tmpfs      386128      16   386112    1% /run/user/42

blkid /dev/sr0

/dev/sr0: UUID="2022-07-26-18-09-05-00" LABEL="CentOS 7 x86_64" TYPE="iso9660"

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

mount /dev/sr0 /mnt/cdrom

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

cd /mnt/cdrom

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

cd Packages

第五步:查询我们要安装的软件包

ls |grep firefox
​
firefox-91.11.0-2.el7.centos.x86_64.rpm

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

rpm -ivh firefox-91.11.0-2.el7.centos.x86_64.rpm
输入 firefox + Tab 让其自动补全

rpm软件包的升级

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

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

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

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.e17.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
查看文件所属的包名

基本语法:

rpm -qf 文件名称

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

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

rpm -qf /etc/ntp.conf
​
ntp-4.2.6p5-28.e17.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

光盘的挂载与解挂

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

问题:为什么当我们直接访问 /run/media/CentOS7x86_64 就相当于访问光盘

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

解挂
umount /run/media/itheima/CentOS\ 7\ x86_64

常见问题:当我们执行以上命令时,系统提示Device 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进行解挂操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值