Linux系统管理
计算机中,一个正在执行的程序或命令,被叫做“进程”,启动一次之后一直存在、常驻内存的进程,一般被称作“服务”。
Linux系统管理常用命令
service命令 (CentOS)
用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
查看服务的方法: /etc/init.d/服务名
service 服务名 start | stop | restart | status
语法 | 说明 |
---|---|
status-all | 显示所服务的状态 |
-h | 显示帮助信息 |
显示所有服务的状态
service --status-all
systemctl命令
systemctl命令来自于英文词组”system control“的缩写,其功能是用于管理系统服务。从RHEL/CentOS7版本之后初始化进程服务init被替代成了systemd服务,systemd初始化进程服务的管理是通过systemctl命令完成的,从功能上涵盖了之前service、chkconfig、init、setup等多条命令的大部分功能。
查看服务的方法:/usr/lib/systemd/system
service start | stop | restart | status 服务名
语法 | 说明 |
---|---|
start | 启动服务 |
stop | 停止服务 |
restart | 重启服务 |
enable | 使某服务开机自启 |
disable | 关闭某服务开机自启 |
status | 查看服务状态 |
list -units --type=service | 列举所有已启动服务 |
参考实例
启动指定的服务
systemctl start sshd
停止指定的服务
systemctl stop sshd
重启指定的服务
systemctl restart sshd
查看指定服务的运行状态
systemctl status sshd
将指定的服务加入到开机启动项中
systemctl enable sshd
将指定的服务从开机启动项中取消
systemctl disable sshd
显示系统中所有已启动的服务列表信息
systemctl list-units --type=service
setup命令
setup命令是一个基于文本界面的系统管理工具,集成了用户认证管理、防火墙管理、网络管理和系统服务管理。
setup面板 | 说明 |
---|---|
Authentication configuration | 用户管理认证 |
Firewall configuration | 防火墙管理 |
Network configuration | 网络管理 |
System services | 系统服务自动启动管理 |
进入setup管理界面
setup
chkconfig命令
用于检查,设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。
chkconfig [–add][–del][–list][系统服务] 或 chkconfig [–level <等级代号>][系统服务][on/off/reset]
参数 | 说明 |
---|---|
–add | 增加所指定的系统服务,让 chkconfig 指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。 |
–del | 删除所指定的系统服务,不再由 chkconfig 指令管理,并同时在系统启动的叙述文件内删除相关数据。 |
–level<等级代号> | 指定读系统服务要在哪一个执行等级中开启或关闭。 |
chkconfig |没有参数运行时,显示用法。如果在服务名后面指定了on,off或者reset,那么chkconfig 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开关,系统默认只对运行级2,3,4,5有效,但是reset可以对所有运行级有效。
level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。
参考实例
chkconfig --list # 列出所有的系统服务
chkconfig --add httpd # 将httpd添加为受chkconfi管理的服务:
chkconfig --del httpd # 删除httpd服务
chkconfig --level 35 httpd on # 在级别3和5上设定服务为“on”,开机自动启动也是配置这个
chkconfig --level 01246 httpd off # 在其级别上设为off
#为了确认你的配置被正确的修改了,我们可以列出服务运行级别,如下所示:
#chkconfig --list httpd
httpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
firewall-cmd命令
用于防火墙策略管理,是firewalld服务的配置工具。使用firewall-cmd命令修改的防火墙策略会立即生效,但重启后失效,因此推荐要加上permanent参数。
参数 | 说明 |
---|---|
–state | 显示当前服务运行状态 |
–zone=public --list-ports | 查看所有打开运行的端口 |
–permanent | 策略写入到永久生效表中 |
–reload | 不重启立即加载 |
–list-all-zones | 查看区域信息情况 |
–panic-on | 拒绝所有包 |
–panic-off | 取消拒绝状态 |
–query-panic | 查看是否拒绝 |
#查看当前防火墙状态
firewall-cmd --state#查看防火墙当前放行端口号列表
firewall-cmd --zone=public --list-ports#重新加载防火墙策略,立即生效
firewall-cmd --reload#查看当前防火墙默认使用区域名称
firewall-cmd --get-default-zone
参考实例
# 开放某个端口,如8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent#重新加载配置
firewall-cmd --reload# 查看防火墙锁开放的端口
firewall-cmd --zone=public --list-ports# 查看某个端口的访问权限,如8080
firewall-cmd --zone=public --query-port=8080/tcp# 关闭某个端口的防火墙,如8080端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent# 放通某个端口段
firewall-cmd --permanent --zone=public --add-port=1000-2000/tcp# 放通某个IP访问,默认允许
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.1.169 accept'# 禁止某个IP访问
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.0.0.42 drop'# 放通某个IP访问某个端口
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.1.169 port protocol=tcp port=6379 accept'# 移除以上规则
firewall-cmd --permanent --remove-rich-rule='rule family=ipv4 source address=192.168.1.169 port protocol=tcp port=6379 accept'# 放通某个IP段访问
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.0.0.0/24 accept'
运行级别
CentOS7 的运行级别简化为:
multi-user.target 等价于原运行级别3,多用户有网,无图形界面)graphical.target 等价于原运行级别5,多用户有网,有图形界面
查看当前运行级别
systemctl get-default
修改当前运行级别
systemctl set-default xxx.target
防火墙开闭
CentOS 7版本后防火墙默认使用的是firewalld
查看防火墙状态
systemctl status firewalld.service
#运行上述命令后,如果看到有绿色字样标注的“active(running)”,说明防火墙是开启状态。
关闭运行的防火墙systemctl stop firewalld.service
#关闭后,可查看防火墙状态,当显示disavtive(dead)的字样,说明CentOS 7防火墙已经关闭。
上面的命令只是临时关闭了CentOS 7防火墙,当重启操作系统后,防火墙服务还是会再次启动。如果想要永久关闭防火墙则还需要开机禁用防火墙服务。
开机禁用防火墙服务
#开机禁用防火墙服务
systemctl disable firewalld.service#启动防火墙
systemctl start firewalld#开机启用防火墙
systemctl enable firewalld
关机重启命令
在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是不会停止的,除非特殊情况下,不得已才会关机。
shutdown命令
可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。shutdown命令作用同于poweroff命令。
参数 | 说明 |
---|---|
-f | 重新启动时不执行fsck |
-F | 重新启动时执行fsck |
-h | 将系统关机 |
-c | 取消关机任务 |
-k | 发送信息给所有用户 |
-n | 不调用init程序进行关机 |
-r | 将系统重启 |
-t | 送出警告信息和删除信息之间要延迟多少秒 |
参考实例
立即关机
shutdown -h now
指定 10 分钟后关机
shutdown -h 10
立即重新启动计算机
shutdown -r now
设定当前的服务器指定时间自动关机,格式为”小时:分钟“:
shutdown -h 21:00
设定当前的服务器5分钟后关机,同时发送警告信息给所有已登录的用户:
shutdown +5 "System will shutdown after 5 minutes"
取消当前服务器上已有的关机任务:
shutdown -c
sync命令
用于数据同步,sync命令是在关闭Linux系统时使用的。
sync命令用于强制被改变的内容立刻写入磁盘,更新信息速度非常快, 在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。
sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令,系统会自动执行update或bdflush操作,将缓冲区的数据写入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时,才需手动执行sync命令。
参数 | 说明 |
---|---|
–help | 显示命定详细帮助信息 |
–version | 显示版本号 |
参考实例
显示帮助信息
sync --help
显示版本
sync --version
halt命令
用于关闭当前服务器系统,类似于poweroff与shutdown命令,没有太大差别。
参数 | 说明 |
---|---|
-n : | 在关机前不做将记忆体资料写回硬盘的动作 |
-w | 模拟关机,把过程写入到日志文件 |
-d | 不写入日志纪录 |
-f | 强制关机或重启 |
-i | 关机或重启前关掉所有的网络服务 |
-p : | 当关机的时候,顺便做关闭电源的动作 |
参考实例
关闭系统
halt
关闭系统并关闭电源
halt -p
关闭系统,但不留下纪录
halt -d
强制关闭当前服务器系统:
halt -f
poweroff命令
用来关闭计算机操作系统并且切断系统电源。如果确认系统中已经没有用户存在且所有数据都已保存,需要立即关闭系统,可以使用poweroff命令。
参数 | 说明 |
---|---|
-n | 关闭操作系统时不执行sync操作 |
-w | 不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中 |
-d | 关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录 |
-f | 强制关闭操作系统 |
-i | 关闭操作系统之前关闭所有的网络接口 |
-h | 关闭操作系统之前将系统中所有的硬件设置为备用模式 |
参考实例
#关闭计算机操作系统并且切断系统电源:poweroff#使用-h参数关闭操作系统之前将系统中所有的硬件设置为备用模式poweroff -h
reboot命令
用于重新启动计算机。
参数 | 说明 |
---|---|
-n | 直接重启系统,不保存当前资料 |
-w | 模拟重启过程,将过程写入到日志中 |
-d | 重启系统但不将过程写入到日志中 |
-f | 强制重启系统 |
-i | 关闭所有的网络服务,然后重启系统 |
参考实例
重启当前系统
reboot
模拟重启当前系统:
reboot -w