注:本文参考了day08-Linux自有服务&软件包管理_爪蛙毁一生的博客-优快云博客,文章可能会有重复部分
今日学习任务
1.了解systemctl命令用途
2.掌握使用systemctl开启,关闭,重启服务
3.了解常见自有服务ntpd,firewalld,crond的作用
4.掌握ntpdate时间同步原理与实现
5.掌握防火墙的相关操作(添加和删除简单规则,开启,关闭防火墙)
6.了解源码包和二进制包的区别
7.掌握rpm包的卸载、安装以及更新操作
8.了解计划任务的作用
9.掌握计划任务的编辑
一、自由服务概述
服务就是一些特定的进程,自由服务是系统开机后就自动运行的一些进程。
二、systemctl管理服务命令
首先,在CentOS7之前Linux通过service和chkconfig来进行管理服务。
service:用于管理系统服务,如启动、停止、重启、查看状态等
chkconfig:用于管理系统服务的自启动设置。
在CentOS7后我们用systemctl来管理服务,且兼具service和chkconfig的功能。
1.列出服务
用法1: systemctl list-units --type service --all
列出所有服务(包含启动和没启动的)
用法2:systemctl list-units --type service
列出所有启动的程序
2.查看启动停止重启重载服务
用法4:systemctl stop sshd 停止运行服务
用法5:systemctl start sshd 启动服务
用法6:systemctl restart sshd 重启服务
用法7:重新加载服务配置文件 重载 systemctl reload sshd
3、服务持久化
用法8:systemctl disable sshd 取消服务的开机自启
用法9:systemctl enable sshd 指定服务开机
参数 | 含义 |
---|---|
list-units --type service --all | 列出所有服务 |
list-units --type service | 列出所有已启动服务 |
status | 查看服务运行状态 |
stop | 停止运行服务 |
start | 启动服务 |
restart | 重启服务 |
reload | 重载 |
disable | 取消服务的开机自启 |
enable | 指定服务开机自启 |
三、常见的自由服务
ntpd 用于同步计算机系统时间
firewalld 防火墙
crond 计划任务
1.ntp时间同步
NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。
服务器列表 - 全球可用的NTP服务器列表与解析服务 - ntp.org.cn & ntpdate.net
时间同步操作
手动同步操作:
ntpdate + ip
例如:ntpdate 120.25.115.20
从服务器 120.25.115.20 同步标准网络时间 到我们的计算机 服务器由阿里云提供 建立在我们的计算机能访问互联网的前提
自动同步操作
启动ntpd服务并配置为开机自启,启动后服务会帮助我们自动同步网络事件
systemctl start ntpd
systemctl enable ntpd
ntpd服务配置文件位置 /etc/ntp.conf
2、firewalld防火墙
防火墙:防范一些网络攻击。有软件防火墙、硬件防火墙之分。防火墙让正常请求通过,从而保证网络安全性
防火墙的概念
在CentOS6中防火墙叫做iptables
在CentOS7中默认使用的防火墙是firewalld
firewalld 增加了区域的概念,预先准备了几套策略 类似于策略模板 用户根据需求去选择区域
常见的区域以及相应的策略规则
区域 | 默认策略 |
---|---|
trusted | 允许所有数据包 |
home | 拒绝流入的流量,除非与流出的流量相关,允许ssh,mdns,ippclient,amba-client,dhcpv6-client服务通过 |
internal | 等同于home |
work | 拒绝流入的流量,除非与流出的流量相关,允许ssh,ipp-client,dhcpv6-client服务通过 |
public | 拒绝流入的流量,除非与流出的流量相关,允许ssh,dhcpv6-client服务通过 |
external | 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过 |
dmz | 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过 |
block | 拒绝流入的流量,除非与流出的流量相关,非法流量采取拒绝操作 |
drop | 拒绝流入的流量,除非与流出的流量相关,非法流量采取丢弃操作 |
运行模式和永久模式
运行模式:配置的策略立即生效,但是不写入配置文件(在关机前都有效)
永久模式:配置的策略写入配置文件,但是需要重载才能生效
firewall的默认采用运行模式
管理防火墙
firewall-cmd
作用:管理firewall的具体配置
①查看默认使用的区域
firewall-cmd --get-default-zone
②查看所有可用区域
firewall-cmd --get-zones
③列出当前使用区域配置
firewall-cmd --list-all
④列出所有区域的配置
firewall-cmd --list-all-zones
⑤添加允许通过的服务或端口
firewall-cmd --zone=public --add-port=1024/tcp
firewall-cmd --zone=public --add-service=ftp
⑥去掉允许通过的服务或端口
firewall-cmd --zone=public --remove-port=1024/tcp
firewall-cmd --zone=public --remove-service=ftp
⑦永久模式参数permanent
firewall-cmd --permanent --zone=public --add-port=1024/tcp
⑧重新加载配置reload
firewall-cmd --reload
四、计划任务
作用:可以定时的在某个时间让系统帮我们去完成某件事
查看计划任务
crontab [选项]
-l:list,列出指定用户的计划任务列表
-e:edit,编辑指定用户的计划任务列表,简单来说,计划任务就是一个文件
-u:user,指定的用户名,如果不指定,则表示当前用户
-r:remove,删除指定用户的计划任务列表
编辑计划任务
crontab -e
打开计划任务编辑文件,我们可以在文件中定义我们的计划任务
计划任务的规则语法格式,以行为单位,一行则为一个计划:
分 时 日 月 周 需要执行的命令
* * * * * command
- - - - -
| | | | |
| | | | ----- Day of the week (0 - 7) (Sunday is both 0 and 7)
| | | ------- Month (1 - 12)
| | --------- Day of the month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)
在 crontab 中,共有4个字段来定义计划任务的时间和日期,其中前四个字段是由空格分隔的时间字段,每个时间字段都有一个特定的符号来表示时间的不同方面。这四个符号的含义如下:
-
*
(星号):匹配该时间字段的所有可能值,例如在分钟字段中使用*
表示每分钟都执行。 -
,
(逗号):用于分隔不连续的时间值,例如2,4,6
表示 2、4 和 6。 -
-
(短横线):用于指定连续的时间范围,例如1-5
表示从 1 到 5。 -
/
(正斜杠):用于指定时间的间隔值,例如在小时字段中使用*/2
表示每隔两小时执行一次。
特别补充:在Linux系统中,有些命令不能直接在计划任务中使用,使用后,其也不会生效。如useradd命令。如果想让其生效必须使用完整路径。
如何查看命令完整路径 : whereis
特殊字符 | 含义 |
---|---|
@reboot | 在每次启动时运行一次 |
@yearly | 每年运行一次,例如:“0 0 1 1 *” |
@annually | 与@yearly用法一致 |
@monthly | 每月运行一次,例如:“0 0 1 * *” |
@weekly | 每周运行一次,例如:“0 0 * * 0” |
@daily | 每天运行一次,例如:“0 0 * * *” |
@midnight | 与@daily用法一致 |
@hourly | 每小时运行一次,例如:“0 * * * *” |
crontab权限问题
黑名单配置文件 vim /etc/cron.deny
白名单还有一个配置文件
/etc/cron.allow (本身不存在,自己创建)
注意:白名单优先级高于黑名单,如果一个用户同时存在两个名单文件中,则会被默认允许创建计划任务。
查看计划任务的保存路径
/var/spool/cron/用户名文件
计划任务的日志信息
/var/log/cron
五、软件包
1.源码包
一大堆源代码程序,由程序员按照特定的格式语法编写,机器只能识别二进制语言,所以使用源码包安装需要进行编译
2.二进制包
二进制包,是由源码包编译之后产生的,Linux下默认的安装包,目前主要有一下2大主流的二进制包管理系统:
- RPM 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,因此很多 Linux 发行版都默认使用此机制作为软件安装的管理方式,例如 Fedora、CentOS、SuSE 等。
- DPKG 包管理系统:由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理,主要应用在 Debian 和 Ubuntu 中。
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写
在光盘中获取软件包
1.在虚拟机加载光盘
2.使用lsblk
查询某个软件安装情况
rpm-qa | grep 软件名称
-q:查询,query
-a:全部,all
代表firefox已经安装
没有任何回显表示没有安装
卸载软件
rpm -e 软件完整名称
rpm -qa |grep firefox 首先查询firefox软件的完整名称
firefox-45.7.0-2.el6.centos.x86_64
rpm -e firefox-45.7.0-2.el6.centos.x86_64#卸载
安装软件
rpm -ivh
-i install安装
-v 显示进度条
-h 表示以#形式显示进度条
cd /run/media/root/CentOS\ 7\ x86_64/Packages/ 进入到目录中
ll |grep firefox
rpm -ivh firefox-52.7.0-1.el7.centos.x86_64.rpm
更新软件
rpm -Uvh
-U upgrade 升级
rpm -Uvh firefox-102.13.0-2.el9_2.alma.x86_64.rpm
rpm依赖
一个软件包必须先有其他软件才能运行,这个关系称之为依赖。
WAMP(Windows + Apache + MySQL + PHP)安装前必须先安装VC++ 2014 x86_64,这种情况就称之为有依赖关系。
查看文件所属的包名
-f 查询文件所属包
rpm -qf /etc/ntp.conf 查询ntp.conf属于哪个软件包
查询软件安装完成后,生成了哪些文件
rpm -ql
软件安装后一般会生成:
配置文件:/etc
程序文件本身,二进制文件命令:/usr/sbin
文档手册 /usr/share/man
光盘的挂载与解挂
解挂:
umount 路径
umount /run/media/root/CentOS\ 7\ x86_64/
挂载:
mount
moubt 设备文件原始地址(/dev目录) 要挂载的位置路径(盘符)
mount /dev/sr0 /mnt/dvd
将光驱设备/dev/sr0 挂载到 /mnt/dvd这个挂载点
df -T可以看到已经成功挂载