速查 Linux 常用指令 II

目录

  • 一、网络管理命令
    • [1. 查看和配置网络设备:ifconfig](#1. 查看和配置网络设备:ifconfig)
    • [2. 查看与设置路由:route](#2. 查看与设置路由:route)
    • [3. 追踪网络路由:traceroute](#3. 追踪网络路由:traceroute)
    • [4. 查看端口信息和使用情况](#4. 查看端口信息和使用情况)
      • [1)netstat 命令](#1)netstat 命令)
      • [2)lsof 命令](#2)lsof 命令)
  • 二、进程管理命令
    • [1. 显示当前系统进程状态:ps](#1. 显示当前系统进程状态:ps)
    • [2. 显示系统性能信息和进程信息:top](#2. 显示系统性能信息和进程信息:top)
    • [3. 向进程发送信号:kill](#3. 向进程发送信号:kill)
    • [4. 管理定时任务:crontab(了解)](#4. 管理定时任务:crontab(了解))
    • [5. 继续运行命令:bg](#5. 继续运行命令:bg)
    • [6. 重启 / 关闭 Linux 系统](#6. 重启 / 关闭 Linux 系统)
  • 三、补充

一、网络管理命令

第11章 Linux的网络管理

1. 查看和配置网络设备:ifconfig

当网络环境发生改变时可通过 ifconfig 命令对网络进行相应的配置,只有 root 权限才可以配置网络。

1)重启网络命令

service network-manager restart or sudo systemctl restart NetworkManager

以下两种重启网络的指令可能会有如下图所示错误:

  • sudo /etc/init.d/networking restart

  • sudo service networking restart

2)重启网卡命令

  • 重启网卡:sudo ifconfig ens33 up ,其中 ens33 是网卡名。

  • 修改 ens33 的 IP :sudo ifconfig ens33 xxx.xxx.xxx.xxx

2. 查看与设置路由:route

命令:route -n ,当网络不通时,通过执行 route 查看路由,查看网关配置是否正确。

3. 追踪网络路由:traceroute

Linux 的 traceroute 和 Windows 的 tracert 都是用于网络路由追踪的命令,主要作用是显示从本机到目标主机之间经过的路由节点(路由器)列表,分析网络路径和故障点。

相同点:

  • 目的相同:追踪数据包从源头到目标之间经过的路由路径。

  • 原理相似:通过发递递增 TTL(生存时间,Time To Live)值的报文,使路由器返回超时的响应包,从而获得每一跳的信息。

不同点:

项目 (Linux)traceroute (Windows)tracert
默认协议 UDP 数据包(默认) ICMP 回显请求包(默认)
参数用法 选项丰富,支持多种协议和参数 参数较少,功能更简单
输出格式 通常显示每一跳三个时间(RTT),有些系统支持更多 显示每跳三个往返时间
兼容性 需要安装(大部分发行版自带) Windows 自带
高级功能 支持 TCP、ICMP、UDP 等多种协议作为探测包 主要使用 ICMP

总结:

  • Linux 下的 traceroute 功能更灵活,可以通过参数选择不同的协议。

  • Windows 的 tracert 更简单,默认用 ICMP ,更适合普通用户快速诊断。

使用示例:

Linux:(bash)

bash 复制代码
traceroute www.baidu.com
traceroute -I www.baidu.com  # 使用 ICMP
traceroute -T www.baidu.com  # 使用 TCP(有些版本不支持)

Windows:(cmd)tracert www.baidu.com

4. 查看端口信息和使用情况

1)netstat 命令

netstat(network statistics)是一个用于显示网络连接、路由表、接口统计等信息的命令行工具,广泛用于网络故障排查和流量监控。

基本语法:netstat [选项]

参数

选项 作用说明
-a 显示所有连接和监听端口,包括 TCP 和 UDP
-t 只显示 TCP 连接
-u 只显示 UDP 连接
-n 显示数字形式的地址和端口号(不进行域名解析)
-l 只列出监听状态的 socket
-p 显示使用该连接的程序的进程 ID 和进程名(需要 root 权限)
-r 显示路由表
-i 显示网络接口列表
-s 按协议显示统计信息
-c 每隔一段时间重复显示上述内容(用于动态监控)
-e 显示扩展的网络接口信息

如何查看机器的网络状态?用 netstat -an 命令显示网络连接的状态信息,以查看端口状态。比如查看 TCP 或 UDP 使用的端口情况,使用命令:netstat -an|grep tcp or netstat -an|grep udp ,它的输出内容通常包含以下列:

列名 含义
Proto 协议类型
Local Address 本地 IP 地址和端口号
Foreign Address 远程 IP 地址和端口号
State 连接状态,表示该 TCP 连接的当前状态

State(状态)是显示当前的连接状态,又分为:

  • LISTENING :正在监听连接请求

  • ESTABLISHED :连接已建立

  • SYN_SENT :客户端已发送SYN请求,等待响应

  • SYN_RECEIVED :收到SYN请求,等待确认

  • FIN_WAIT_1,FIN_WAIT_2,CLOSE_WAIT,TIME_WAIT 等:表示连接关闭过程的不同阶段

  • CLOSED :连接关闭

【注】:查看进程信息时需要 root 权限,否则相关信息可能无法显示。

2)lsof 命令

lsof(List Open Files)用于列出当前系统中打开的文件信息。它不仅能列出普通文件,还可以显示打开的网络连接、管道、设备等,因此常用于系统和网络故障排查。

基本语法:lsof [选项] [文件或目录或用户...]

参数

选项 作用说明
-i 显示所有网络连接(网络文件),可以加协议或端口过滤,例如 -i tcp 或 -i :80
-i4 / -i6 只显示 IPv4 或 IPv6 的网络连接
-p <PID> 显示指定进程 ID 打开的所有文件
-u <user> 显示某个用户打开的文件
-c <command> 只显示指定命令名对应进程打开的文件
-t 只输出 PID ,常用于脚本中过滤
-n 不解析网络地址成主机名,直接显示 IP
-P 不解析端口名为服务名,直接显示端口号
+D <目录> 递归查找指定目录下被打开的文件
+L1 仅显示链接数超过 1 的文件
-r <秒数> 每隔指定秒数重复执行命令,用于动态监控
-s 显示文件大小
-F <输出选项> 以指定格式输出,用于脚本应用

比如查看指定端口的所有连接,即查看哪个进程使用了这个端口,输入命令:sudo lsof -i [tcp/udp]:[指定端口号] 即可查看。

【注】:

  • 有些信息需要 root 权限查看,比如查看其他用户进程打开的文件,通常需要用 sudo 。

  • lsof 能反映系统中非常详细的 "打开文件" 情况,包括网络端口、管道、设备文件,非常强大。

二、进程管理命令

第10章 Linux的进程管理

命令 含义
ps 查看系统中的进程
top 动态显示系统中的进程
kill 向进程发送信号(包括后台进程)
crontab 用于安装、删除或者列出用于驱动 cron 后台进程的任务
bg 将挂起的进程放到后台执行

1. 显示当前系统进程状态:ps

ps [选项] 命令可以帮助用户查看进程的详细信息,包括进程号、发起者、CPU 和内存使用情况等。常用选项包括:

选项 作用说明
aux 显示所有进程的详细状态
-ef 显示系统中所有进程的列表,包括其他用户的进程
-l 以长格式显示进程信息
-u 显示面向用户的格式,包括用户名、CPU 及内存的使用情况等信息

使用 ps 命令可以及时发现进程异常情况,并与 kill 命令搭配使用以中断不必要的服务进程。

① 查看系统内所有进程:ps -elf ,可以显示父子进程关系。

  • F :进程标志(flags)
  • S :进程状态(sleeping, running, stopped等)
    • R → 运行状态
    • S → 睡眠状态
    • T → 暂停状态(调试)
    • Z (zombie)→ 僵尸状态,进程结束后,资源没有被回收
  • UID:进程所有者的用户 ID
  • PID:进程的进程 ID
  • PPID :进程双亲的进程 ID
  • C :CPU 使用率的调度优先级相关信息
  • PRI :进程优先级
  • NI :进程的 nice 值(优先级调整)
  • ADDR :进程的地址(内存地址)信息
  • SZ :进程使用的内存页数(虚拟内存大小)
  • WCHAN :进程正在等待的内核函数地址(等待通道)
  • TTY :进程启动时的终端设备
  • TIME :进程占用 CPU 的累计时间
  • CMD :启动该进程的命令名称和参数

② 查看指定进程是否还在:ps -elf |grep tcp_server or ps -elf |grep udp_server

③ 显示所有进程的详细状态:ps aux

  • USER :启动这些进程的用户
  • %CPU :进程占用的 CPU 百分比
  • %MEM :占用内存的百分比
  • VSZ :该进程使用的虚拟内存量(KB)
  • RSS :该进程占用的固定内存量(KB)
  • STAT :进程的状态
  • START :进程启动的时间
  • COMMAND :启动的程序名称或命令行

注:cat /proc/cpuinfo 查看 Linux 的 CPU 的核数。

2. 显示系统性能信息和进程信息:top

top 显示前 20 条进程,动态的改变,按 q 退出。

1)系统总体信息

  • 时间和运行时长:如 15:40:11 up 3:25 表示当前时间和系统已运行 3 小时 25 分钟。
  • 用户数:当前登录用户数。
  • 负载平均值:系统 1、5、15 分钟的负载。
  • 任务(进程)数量和状态:总进程数,运行、睡眠、停止、僵尸进程数。
  • CPU 使用详情(us 用户空间,sy 系统空间,ni 用户设定优先级进程,id 空闲,wa 等待 I/O,hi 硬件中断,si 软件中断,st 被虚拟机偷取的资源)。
  • 内存使用详情(总内存,空闲,已用,缓存等)--- free 命令。
  • 交换空间(swap) 使用情况。

2)进程信息列表

  • PR :优先级
  • VIRT :虚拟内存大小
  • RES :常驻内存大小
  • SHR :共享内存大小
  • TIME+ :进程使用 CPU 累计时间

优先级(PR)和 NI(nice 值)间关系:nice 值越小,优先级越高。

3)top 命令常用快捷键

快捷键 功能说明 快捷键 功能说明
h 显示帮助界面 q 退出 top
P 以 CPU 使用率排序 M 以内存使用率排序
T 以累计 CPU 时间排序 k 杀死一个进程(输入 PID)
r 改变某个进程的优先级(输入 PID 和新优先级) space 立即刷新
1 显示 / 隐藏各 CPU 核心的使用情况

4)top 命令常用参数

参数 说明
-d 秒数 设置刷新间隔时间
-p PID 监控指定进程
-u 用户名 仅显示指定用户的进程
-n 次数 设置刷新次数,执行指定次数后退出
-b 批处理模式(适合脚本使用)

示例:top -d 1 -n 10 -u root 表示每 1 秒刷新一次,刷新 10 次后退出,只显示 root 用户的进程。

3. 向进程发送信号:kill

kill [选项] <pid> 命令是 Unix / Linux 系统中用来向进程发送信号的命令,最常用于终止进程。

  • <pid>:进程 ID ,指定要发送信号的目标进程。
  • 支持一次给多个进程发信号。

1)常用信号

信号名称 数字 作用
SIGTERM (15) 15 终止进程,默认信号,进程可捕获,优雅退出
SIGKILL (9) 9 强制杀死进程,不能被捕获或忽略
SIGSTOP (19) 19 暂停进程(不能捕获)
SIGCONT (18) 18 继续暂停的进程
SIGHUP (1) 1 终端挂起信号,通常用于重读配置文件

2)常用用法示例

  • 默认杀死进程(发送 SIGTERM):kill 1234

  • 强制杀死进程(发送 SIGKILL):kill -9 1234

  • 发送其他信号:
    kill -s SIGSTOP 1234 # 暂停进程
    kill -SIGCONT 1234 # 继续进程

  • 给多个进程发送 9 号信号:kill -9 1234 2345 3456

  • 查看系统的所有信号:kill -l

注意事项:

  • 使用 kill 需要对目标进程有足够权限,一般只能杀自己启动的进程,或使用 root 权限。

  • 优先用默认的 SIGTERM ,给进程机会清理资源,然后再考虑 SIGKILL 。

  • 信号传递不是命令 "杀死" 进程的绝对保证,进程可以捕获和自定义信号处理(除 SIGKILL 和 SIGSTOP)。

3)pkill 命令

pkill 是一个在类 Unix 系统中用于根据进程名或其他属性来终止进程的命令。它是 kill 命令的增强版本,能够通过匹配进程名、用户、终端等条件来批量发送信号给进程。

pkill [选项] <模式>

  • <模式> 通常是指进程名的模式(可以是完整进程名,也可以是正则表达式)。

  • 默认发送 SIGTERM 信号(即请求终止进程)。

常用选项及说明:

选项 说明
-signal 发送指定信号,例如 -9 (SIGKILL, 强制终止),-15 (SIGTERM) 等
-f 匹配完整命令行,而不仅仅是进程名
-u <用户> 只匹配该用户的进程
-t <终端> 只匹配指定终端的进程(如pts/0
-n 只作用于最新启动的匹配进程(PID 最大的那个)
-o 只作用于最早启动的匹配进程(PID 最小的那个)
-x 进程名必须完全匹配(不允许模糊匹配)
-v 反转匹配,即杀死不匹配模式的进程
-l 列出所有信号名称
-c 仅显示将会被杀死的匹配进程数(不实际杀死)

注意:

  • pkill 通过向进程发送信号来终止进程,默认信号是 SIGTERM ,这允许进程清理资源后退出。若想强制终止进程,用 -9 (SIGKILL) ,但这样进程无法清理资源,可能引发数据丢失。

  • pkill 需对目标进程有足够权限,否则可能杀死失败。

  • 在生产环境,使用 pkill 时要特别注意匹配规则,避免误杀重要进程。

相关命令:

  • kill : 按 PID 杀进程。

  • pgrep : 查找匹配条件的进程 ID ,配合 pkill 可做更复杂处理。

  • killall : 根据名字杀死进程,某些系统与 pkill 相似但细节不同。

4. 管理定时任务:crontab(了解)

crontab [选项] [文件] 是 Linux / Unix 系统中用来管理定时任务的命令,允许用户根据时间周期自动执行脚本或命令。

基本功能:

  • 管理用户的 "cron 任务表" ,用于周期性执行任务。

  • 每个用户有独立的 crontab 文件。

  • 常用来自动执行备份、监控脚本等。

1)常用选项和命令

设置定时任务:vim /etc/crontab

命令 / 选项 说明
-e 编辑当前用户的定时任务(打开编辑器)
-l 列出当前用户的定时任务
-r 删除当前用户的所有定时任务
-u 用户名 -l 查看指定用户的定时任务(需要权限)
filename 从文件导入定时任务(覆盖当前用户 crontab)

2)crontab 文件格式与字段值说明

crontab 文件格式:crontab 文件每一行定义一个定时任务,格式为:分 时 日 月 周 命令。

字段 说明 取值范围
分钟 0 - 59
小时 0 - 23
月内日期 1 - 31
月份 1 - 12
星期几(0 - 7,0 和 7 都是星期日) 0 - 7
命令 要执行的命令或脚本路径

字段值说明:

  • * 代表任意值

  • 多值用逗号分隔,如 1, 5, 10

  • 区间用连字符,如 1-5

  • 步进用斜杠,如每 10 分钟:*/10

  • 星期和日期字段:如果同时指定,两个条件满足之一即可执行

3)示例

  • 每天凌晨 1 点执行 /home/user/backup.sh :0 1 * * * /home/user/backup.sh

  • 每 5 分钟执行脚本:*/5 * * * * /path/to/script.sh

  • 每周一早上 7 点执行任务:0 7 * * 1 /path/to/script.sh

  • 每月 1 号 0 点执行:0 0 1 * * /path/to/script.sh

  • 每天晚上 10 点执行关机命令:0 22 * * * /sbin/shutdown -h now

    注:需要执行 which shutdown 查看 shutdown 的路径,如果不是 /sbin/shutdown 则需要替换。

注意事项:

  • 命令中的环境变量可能不完整,最好使用完整路径或在脚本中设置环境。

  • crontab 里写的命令不显示输出(不输出到控制台),推荐重定向输出到日志文件,如:0 1 * * * /home/user/backup.sh >> /home/user/backup.log 2>&1

  • 编辑结束保存后,cron 会自动加载新任务。

5. 继续运行命令:bg

bg [作业号] :如果不指定作业号,则默认对最近的被暂停的作业执行 bg 操作。

作用:

  • 把暂停(stop)状态的作业放到后台继续运行。

  • 让命令继续运行,但不占用当前终端。

使用场景:

  • 你运行了一个命令,按 Ctrl+Z 暂停它(将其挂起,放到后台停止状态)。

  • 接着你用 bg 让该任务在后台继续执行,而终端可以继续做其他事情。

相关命令:

  • Ctrl+Z :暂停当前前台任务(发送 SIGTSTP 信号)。

  • jobs :列出当前用户的所有后台作业及状态。

  • bg :将暂停的作业放到后台继续运行。

  • fg :把后台作业调回前台继续运行。

示例:

假设你启动了一个命令:sleep 100 ,然后按下 Ctrl+Z,终端显示:

bash 复制代码
[1]+  Stopped                 sleep 100

这时,任务暂停了,如果输入:bg ,会看到:

bash 复制代码
[1]+ sleep 100 &

这表示任务在后台继续运行,终端可继续输入其他命令。

注意事项:

  • bg 只能作用于已经暂停的作业,运行中的或不存在的作业用不了。

  • 需要通过 jobs 或直接写作业号,比如:bg %1 ,表示让作业号为 1 的任务放后台运行。

6. 重启 / 关闭 Linux 系统

  • reboot :重启正在运行的 Linux 操作系统

  • poweroff :关闭正在运行的 Linux 操作系统并切断系统电源

参考文章:【Linux关机和重启详解(shutdown、halt、poweroff、reboot、init)

三、补充

1. 查看物理内存:free

free 命令是 Linux 系统中查看内存使用情况的常用命令。它可以快速显示系统的物理内存和交换空间(swap)的使用状况,帮助用户了解系统内存的分配和剩余情况。

1)常用选项

free [选项]

选项 作用说明
-h 以更易读的格式显示内存信息(自动使用 KB / MB / GB)
-b 以字节为单位显示
-k 以 KB 为单位显示(默认单位)
-m 以 MB 为单位显示
-g 以 GB 为单位显示
-t 显示总计(内存 + 交换空间的总计信息)
-s 秒数 每隔指定秒数刷新一次显示,直到用户退出
-c 次数 配合 -s ,指定刷新次数

2)输出字段说明

  • total :内存总量(物理内存或者交换空间总量)。

  • used :已使用内存,包括内核占用的缓存和缓冲区,所以不代表 "实际使用" 的内存。

  • free :未用的内存,是没有被任何用途占用的内存。

  • shared :多个进程共享使用的内存(shared memory)。

  • buff / cache :缓存和缓冲区占用的内存,它们是可以随时释放给程序使用的。

  • available :应用程序可用的内存(是估算值,比 free 更准确、更实际的可用内存指标),不仅包含 free 内存,还包括了部分缓存中能够被回收的内存。

3)总结

  • Linux 会尽量利用空闲内存做缓存,提高系统性能。

  • free 命令快速反映内存使用状态,是排查内存瓶颈的重要工具。

  • 结合 buff / cache 和 available 字段判断内存使用情况,更准确。

  • 默认输出单位是 KB ,推荐加 -h 参数提升可读性。

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式