《Linux基础》06. 网络配置 · 进程管理 · 服务管理


本文以 CentOS 7.6 为例。

1:网络配置

1.1:相关指令

1.1.1:ifconfig

功能描述:用于显示或设置网络配置。

基本语法
ifconfig [选项]

ifconfig 指令也可搭配相关选项参数来进行网络配置设置。

常用参数

参数 说明
不使用参数 查看启用的网卡。
-a 查看所有网卡。
<网卡接口> down 禁用指定网卡或接口。
<网卡接口> up 运行指定网卡或接口。

1.1.2:ping

功能描述:用于检测主机,测试是否可以连接目的主机。

基本语法
ping [选项] <target>

“ target ” 可以是 ip 地址,可以是域名,也可以是主机名。

常用选项

参数 说明
-c <数字> 设置收到指定次数包后,自动停止
-i <数字> 指定收发信息的间隔时间,单位为秒。
-s <数字> 设置发送包的大小。
-t <数字> 设置存活数值 TTL 的大小。

1.1.3:netstat

功能描述:用于查看网络状态。

基本语法
netstat [选项]

常用选项

参数 说明
-a--all 显示所有连接和监听端口。
-n 以数字形式显示地址和端口号。
-p 显示建立相关连接的程序名。
-t 仅显示 tcp 相关。
-u 仅显示 udp 相关。

1.1.4:其他指令

重启网络服务
service network restart

查看主机名
hostname

1.2:网络环境配置

1.2.1:指定静态 ip

Linux 启动后会通过 DHCP 自动获取 IP 地址。如果需要指定固定的 ip 地址,需要在 /etc/sysconfig/network-scripts/ifcfg-ens33 文件中配置。

不同 Linux 系统配置静态 ip 的相关文件与方法不同。

ifcfg-ens33文件参数

参数 说明
TYPE 网卡类型(通常是 Ethemet 以太网)
PROXY_METHOD 代理方式
BROWSER_ONLY 只是浏览器
BOOTPROTO 网卡的引导协议(static:静态IP。dhcp:动态IP。bootp:BOOTP 协议。none:不指定)
DEFROUTE 默认路由
IPV4_FAILURE_FATAL 是否开启 IPv4 致命错误检测
IPV6INIT IPV6是否自动初始化
IPV6_AUTOCONF IPv6 是否自动配置
IPV6_DEFROUTE IPv6 是否可以为默认路由
IPV6_FAILURE_FATAL 是否开启 IPv6 致命错误检测
IPV6_ADDR_GEN_MODE IPv6 地址生成模型
NAME 网卡物理设备名称
UUID 通用唯一识别码
DEVICE 网卡设备名称,必须和 “ NAME ” 值一样
ONBOOT 是否开机启动
IPADDR 本机IP,通常与静态 ip 配合使用。
NETMASK 子网掩码,通常与静态 ip 配合使用。
GATEWAY 默认网关,通常与静态 ip 配合使用。
DNS1 域名解析器,通常与静态 ip 配合使用。

设置静态 ip,一般情况只需更改 BOOTPROTO、IPADDR、GATEWAY、DNS1。如果没有参数自己添加即可。

然后重启网络服务或者重启系统即可生效。

示例(ip 部分改为自己的相应设置):

1
2
3
4
BOOTPROTO="static"
IPADDR=192.168.200.130
GATEWAY=192.168.200.2
DNS1=192.168.200.2

1.2.2:设置主机名

为了方便记忆,可以给 Linux 主机设置主机名,也可以根据需要修改主机名。

只需编辑 /etc/hostname 配置文件即可。重启后生效。

不同 Linux 系统有不同的文件与方法。

1.2.3:设置 hosts 映射

为了能够通过主机名找到某个 linux 主机(比如 ping),需要设置 hosts 映射。

只需配置 /etc/hosts 文件:

不同 Linux 系统有不同的文件与方法。

1
2
# 在文件中添加:
ip 主机名

示例:

1
192.168.200.1 myThinkPad

对于 Windows 系统,hosts 映射在 C:\Windows\System32\drivers\etc\hosts 文件配置。

1.3:防火墙

在真实生产环境,需要将防火墙打开,并打开指定的端口。

关闭防火墙
systemctl stop firewalld

开启防火墙
systemctl start firewalld

重载防火墙
firewall-cmd --reload

查询端口是否开放
firewall-cmd --query-port=<端口>/<协议>

打开端口
firewall-cmd --permanent --add-port=<端口>/<协议>

关闭端口
firewall-cmd --permanent --remove-port=<端口>/<协议>

2:进程管理

在 Linux 中,每个执行的程序都称为一个进程。每一个进程都分配一个 ID(pid,进程号)。

每个进程都可能以两种方式存在:前台后台

前台进程就是用户目前的屏幕上可以进行操作的程序。后台进程则是实际在运行,但在屏幕上看不到的程序。

一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。

2.1:查看进程

2.1.1:ps

功能描述:显示当前进程的状态。(process status)

由于查询到的信息很多,常搭配 grep 使用。

基本语法
ps [选项]

常用选项

参数 说明
-a 显示当前终端下的所有进程信息。
-u 以用户的格式显示进程信息。
-x 显示后台进程运行的参数。
-e 显示系统内的所有进程信息。
-f 以全格式显示,且显示父进程 pid。

查询结果说明:

字段 说明
USER 用户名称
PID 进程号
%CPU 进程占用 CPU 的百分比
%MEM 进程占用物理内存的百分比
VSZ 进程占用的虚拟内存大小(单位:KB)
RSS 进程占用的物理内存大小(单位:KB)
TTY 终端名称
STAT 进程状态。S:睡眠;s:表示该进程是会话的先导进程;N:表示进程拥有比普通优先级更低的优先级;R:正在运行;D:短期等待;Z:僵死进程;T:被跟踪或者被停止
STARTED 进程的启动时间
TIME 进程占用 CPU 的总时间
COMMAND 启动进程所用的命令和参数
PPID 父进程 pid
UID 用户 ID
C CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
STIME 进程启动的时间

示例:

1
2
# 仅查看和 sshd 有关的进程信息
ps -aux | grep sshd

在这里插入图片描述

1
2
# 查看 sshd 的父进程信息
ps -ef | grep sshd

在这里插入图片描述

2.1.2:pstree

功能描述:将所有进程以树状图显示。(display a tree of processes)

基本语法
pstree [选项]

常用选项

参数 说明
-p 显示进程的 PID
-u 显示进程的所属用户

2.1.3:top

功能描述:用于实时监控进程状态。在监控时也可以进行交互操作。

基本语法
top [选项]

常用选项

参数 说明
-d <数字> 指定每隔几秒更新。(默认3秒)
-i 不显示闲置或僵死进程。
-p <数字> 显示指定进程号的进程信息。
-n <数字> 指定更新次数,完成后将会退出 top。
-s 安全模式,取消交互,避免潜在危机。

交互操作

操作 说明
Shift + P 以 CPU 使用率排序。
Shift + M 以内存使用率排序。
Shift + N 以 pid 排序。
U,输入 用户名 后按 Enter 监视特定用户。
K,输入 pid 后按 Enter,再输入 相应数字 后按 Enter 终止指定的进程。
Q 退出 top。

2.2:终止进程

如果某个进程执行中需要停止,或是已消了很大的系统资源,此时可以考虑停止该进程。

2.2.1:kill

功能描述:用于终止执行中的程序或工作。

kill 命令其实是向进程发送信号,可将指定的信息送至程序。预设的信息为 SIGTERM(15),可将指定程序终止。可使用 SIGKILL(9)信息尝试强制删除程序。

基本语法
kill [选项] <进程>

进程可用进程号(pid)或进程名称表示。

常用选项

参数 说明
-9-KILL 强制终止进程。

2.2.2:killall

功能描述:终止指定名字的所有进程。

kill 命令通过 pid 终止指定进程需要配合 ps 使用,而 killall 直接通过进程名操作,更加方便。

基本语法
killall <进程名>

常用选项

参数 说明
-9 强制终止进程。
-e 进程需要和名字完全相符。
-I 忽略大小写。

3:服务管理

服务(service)本质就是进程,但是运行在后台,通常会监听某个端口,等待其它程序的请求,(比如 mysqld、sshd、防火墙等),因此又称为守护进程

3.1:运行级别

运行级别(Running Level),也可以称之为运行模式。

Linux 系统有 7 个运行级别,用数字 0~6 表示:

运行级别 说明
0 系统停机状态。其实就是关机
1 单用户工作状态。为 root 权限,用于系统维护
2 多用户状态,没有 NFS(Network File Syetem)。即没有网络服务的多用户状态
3 完全的多用户状态,有 NFS。即有网络服务的多用户状态
4 被保留的模式。没有被使用的模式
5 X11 控制台,完整的图形化界面模式。就是图形界面模式
6 系统正常关闭并重启状态。其实就是重启

切换运行级别
init <运行级别>

init 指令需要超级管理员的权限,普通用户无法执行。

系统运行级别配置文件,存放在 /etc/inittab

3.2:服务查看

  • 方式一

/etc/init.d/ 下查看部分服务。(这部分服务可由 service、chkconfig 与 systemctl 指令管理)
指令:ls -l /etc/init.d

/usr/lib/systemd/system/ 下查看部分服务。(可由 systemctl 指令管理)
指令:ls -l /usr/lib/systemd/system

  • 方式二

查看全部系统服务:
setup

3.3:服务管理指令

3.3.1:service

功能描述:可用于部分系统服务管理。

在 Linux 新版本后,很多服务不再使用 service,而是 systemctl。

基本语法
service <服务名> [选项]

常用选项

参数 说明
start 开启服务。
stop 关闭服务。
restart 重启服务。
reload 重载服务。
status 查看服务状态。

3.3.2:chkconfig

功能描述:可以设置部分服务在不同运行级别下是否自启动。

也可用 systemctl 进行平替。

基本语法
chkconfig [选项]

常用选项

参数 说明
--list 查看由 chkconfig 管理的指令。
<服务名> <状态> 管理某一服务。“ on ” 为开启,“ off ” 为关闭。
--level <运行级别> <服务名> <状态> 设置服务在某一运行级别下是否自启动。“ on ” 为自启动,“ off ” 为关闭自启动。

3.3.3:systemctl

功能描述:用于服务管理。

systemctl 命令兼容了 service 与 chkconfig。

基本语法
systemctl [选项]

常用选项

参数 说明
start <服务名> 开启服务。
stop <服务名> 关闭服务。
restart <服务名> 重启服务。
status <服务名> 查看服务状态。
list-unit-files 查看所有服务开机自启动状态
is-enabled <服务名> 查询某个服务是否开机自启动。
enable <服务名> 打开服务开机启动。
disable <服务名> 关闭服务开机启动。

谦,美德也,过谦者怀诈。默,懿行也,过默者藏奸。

——《格言联璧》(清)金缨