4 系统管理
4.1 Linux 中的进程和服务
计算机中, 一个正在执行的程序或命令, 被叫做“进程”(process)。
启动之后一只存在、 常驻内存的进程, 一般被称作“服务”(service)。
4.2 service 服务管理(CentOS 6版本-了解)
在 Linux 系统中所有的服务都是要常驻内存的,一般情况下控制台是看不到具体服务的执行过程的。所有的服务相当于都是后台进程,后台运行的。 从系统开始到关闭都存在执行的服务叫做守护服务,执行这些服务的进程就叫做守护进程
1) 基本语法
service 服务名 start | stop |· restart | status
2) 经验技巧
查看服务的方法: /etc/init.d/服务名 ,发现只有两个服务保留在 service
~ cd /etc/init.d
~ ls -al
total 40
drwxr-xr-x. 2 root root 70 May 31 2021 .
drwxr-xr-x. 10 root root 127 Oct 13 2020 ..
-rw-r--r-- 1 root root 18281 May 22 2020 functions
-rwxr-xr-x 1 root root 4569 May 22 2020 netconsole
-rwxr-xr-x 1 root root 7928 May 22 2020 network
-rw-r--r--. 1 root root 1160 Oct 2 2020 README
3)案例实操
(1)查看网络服务的状态
~ service network status
(2)停止网络服务
~ service network stop
(3)启动网络服务
~ service network start
(4)重启网络服务
~ service network restart
4.3 chkconfig 设置后台服务的自启配置(CentOS6版本)
1)基本语法
chkconfig # 功能描述:查看所有服务器自启配置
chkconfig 服务名 off # 功能描述:关掉指定服务的自动启动
chkconfig 服务名 on # 功能描述:开启指定服务的自动启动
chkconfig 服务名 --list # 功能描述:查看服务开机启动状态
~ chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2)案例实操
(1)开启/关闭network(网络)服务的自动启动
~ chkconfig network on
~ chkconfig network off
(2)开启/关闭network(网络)服务指定级别的自动启动
~ chkconfig --level <指定级别> network on
~ chkconfig --level <指定级别> network off
4.4 systemctl (CentOS7版本-重点掌握)
1)基本语法
systemctl start | stop | restart | status 服务名
2)经验技巧
查看服务的方法:
~ cd /usr/lib/systemd/system
~ ls -al
total 796
# .service 结尾的文件就是服务文件
# .target 结尾的文件就相当于是一组服务集合的文件
-rw-r--r--. 1 root root 590 Apr 11 2018 acpid.service
-rw-r--r--. 1 root root 275 Aug 9 2019 arp-ethers.service
-rw-r--r--. 1 root root 1384 Aug 8 2019 auditd.service
lrwxrwxrwx. 1 root root 14 Oct 30 2020 autovt@.service -> getty@.service
-rw-r--r--. 1 root root 517 Oct 2 2020 basic.target
drwxr-xr-x. 2 root root 67 Oct 30 2020 basic.target.wants
......
3)案例实操
(1)查看防火墙服务的状态
~ systemctl status firewalld
(2)停止防火墙服务
~ systemctl stop firewalld
(3)启动防火墙服务
~ systemctl start firewalld
(4)重启防火墙服务
~ systemctl restart firewalld
4.5 systemctl 设置后台服务的自启配置
~ setup
SysV initscriptes:SystemV 的启动脚本 Systemd services:Systemd 的服务 在 Linux System V第五个版本(稳定高效),系统启动的第一个用户进程叫 init 初始化进程,所有的服务进程都是由 init 进程调用启动。init 进程会调用 init.d 目录下的所有脚本启动相应服务的守护进程。init 根据不同的运行级别来运行不同的服务进程。 init 进程只能单机启动,单线程(CentOS6之前版本)。systemd 可以并行启动(CentOS7之后版本) systemd是目前Linux系统上主要的系统守护进程管理工具,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理。所以从CentOS 7开始也由systemd取代了init作为默认的系统进程管理工具。 systemd所管理的所有系统资源都称作Unit,通过systemd命令集可以方便的对这些Unit进行管理。比如systemctl、hostnamectl、timedatectl、localctl等命令,这些命令虽然改写了init时代用户的命令使用习惯(不再使用chkconfig、service等命令),但确实也提供了很大的便捷性。
1)基本语法
systemctl list-unit-files # (功能描述: 查看服务开机启动状态)
systemctl disable service_name # (功能描述: 关掉指定服务的自动启动)
systemctl enable service_name # (功能描述: 开启指定服务的自动启动)
systemctl [command] [unit](配置的应用名称)
command可选项
· start:启动指定的unit systemctl start nginx
· stop:关闭指定的unit systemctl stop nginx
· restart:重启指定unit systemctl restart nginx
· reload:重载指定unit systemctl reload nginx
· enable:系统开机时自动启动指定unit,前提是配置文件中有相关配置 systemctl enable nginx
· disable:开机时不自动运行指定unit systemctl disable nginx
· status:查看指定unit当前运行状态 systemctl status nginx
2)案例实操
(1)开启/关闭iptables(防火墙)服务的自动启动
~ systemctl start firewalld.services
~ systemctl disable firewalld.services
4.6 系统运行级别
1) Linux 运行级别[CentOS 6],
2)CentOS 7的运行级别简化为:
multi-user.target 等价于原运行级别 3(多用户有网, 无图形界面)
graphical.target 等价于原运行级别 5(多用户有网, 有图形界面)
3)查看当前运行级别
~ systemctl get-default
4)修改当前运行级别
~ systemctl set-default TARGET.target (这里 TARGET 取 multi-user 或者 graphical)
4.7 关闭防火墙
1)临时关闭防火墙
(1)查看防火墙状态
~ systemctl status firewalld
(2)临时关闭防火墙
~ systemctl stop firewalld
2)开机启动时关闭防火墙
(1)查看防火墙开机启动状态
~ systemctl enable firewalld
(2)设置开机时关闭防火墙
~ systemctl disable firewalld
4.8 关机重启命令
Linux 为了提高磁盘的读写效率,对磁盘做了设置,预先读取延迟写入。因为磁盘的IO是很低的。所以Linux会设置一个缓存区buffer。文件的保存未必是写到磁盘中,而是会写入到 buffer 缓存区中。当 buffer 缓存区满了之后再来将数据写入到磁盘。 缺点:buffer 缓存区有可能会因为不可抗力(立马关机,断电)会导致数据的丢失。
在 linux 领域内大多用在服务器上, 很少遇到关机的操作。 毕竟服务器上跑一个服务是永无止境的, 除非特殊情况下, 不得已才会关机。
1)基本语法
(1)sync (功能描述:将数据由内存同步到硬盘中)
(2)halt (功能描述:停机,关闭系统,但是不断电【低水平的维护状态】)
(3)poweroff (功能描述:关机,断电)
(4)reboot (功能描述:就是重启,等同于 shutdown -r now)
(5)shutdown [选项] 时间
选项 | 功能 | 参数 | 功能 |
---|---|---|---|
-H | 相当于—halt, 停机 | now | 立刻关机 |
-r | -r=reboot 重启 | 时间 | 等待多久后关机(时间单位是分钟)。 |
-c | 将关机的指令取消掉 | ||
-h | 指定关机的时间,单位:min 分钟 |
2)经验技巧
Linux 系统中为了提高磁盘的读写效率, 对磁盘采取了 “预读迟写”操作方式。 当用户保存文件时, Linux 核心并不一定立即将保存数据写入物理磁盘中, 而是将数据保存在缓冲区中, 等缓冲区满时再写入磁盘, 这种方式可以极大的提高磁盘写入数据的效率。 但是,也带来了安全隐患, 如果数据还未写入磁盘时, 系统掉电或者其他严重问题出现, 则将导致数据丢失。 使用 sync 指令可以立即将缓冲区的数据写入磁盘。
3)案例实操
(1)将数据由内存同步到硬盘中
~ sync
(2)重启
~ reboot
(3)停机(不断电)
~ halt
(4)计算机将在1分钟后关机,并且会显示在登录用户的当前屏幕中
~ shutdown -h 1 'This server will shutdown after 1 mins'
(5)立马关机(等同于poweroff)
~ shutdown -h now
(6)系统立马重启(等同于reboot)
~ shutdown -r now
5 常用基本命令(重要)
Shell 可以看作是一个命令解释器, 为我们提供了交互式的文本控制台界面。 我们可以通过终端控制台来输入命令, 由 shell 进行解释并最终交给内核执行。 本章就将分类介绍常用的基本 shell 命令。
Shell 命令解释器,Shell 类型有很多,例如 bash csh sh zsh等
5.1 帮助命令
5.1.1 man 获取帮助信息
1)基本语法
man [命令或配置文件] # (功能描述: 获得帮助信息)
2)显示说明
信息 | 功能 |
---|---|
NAME | 命令的名称和单行描述 |
SYNOPSIS | 怎样使用命令 |
DESCRIPTION | 命令功能的深入讨论 |
EXAMPLES | 怎样使用命令的例子 |
SEE ALSO | 相关主题(通常是手册页) |
3)案例实操
(1)查看 ls 命令的帮助文档
~ man ls
5.1.2 help 获取 shell 内置命令的帮助信息
一部分基础功能的系统命令是直接内嵌在 shell 中的, 系统加载启动之后会随着 shell 一起加载, 常驻系统内存中。 这部分命令被称为“内置(built-in) 命令”; 相应的其它命令被称为“外部命令”。
1)基本语法
# 查看所有的内置命令
~ help
# 查看某个命令是内置命令和外部命令
~ type ls
help 命令 # (功能描述: 获得 shell 内置命令的帮助信息)
2)案例实操
(1)查看 cd 命令的帮助信息
~ cd --help
5.1.3 常用快捷键
常用快捷键 | 功能 |
---|---|
ctrl + c | 停止进程 |
ctrl + l | 清屏, 等同于 clear; 彻底清屏是: reset |
善于用 tab 键 | 提示(更重要的是可以防止敲错) |
上下键 | 查找执行过的命令 |