速查 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 参数提升可读性。

相关推荐
斤斤计较14 分钟前
Docker 环境安装(2025最新版)
运维·docker·容器
小锋学长生活大爆炸16 分钟前
【教程】Docker方式本地部署Overleaf
运维·docker·容器
xiaoyaoyou.xyz25 分钟前
嵌入式Linux Qt开发:1、搭建基于ubuntu18.04的Qt开发环境及测试(解决Qt creator输入法问题)
linux·qt
Toky Zhu29 分钟前
ubuntu清除缓存
linux·ubuntu·缓存
掘金者说29 分钟前
docker系列-DockerDesktop报错信息(Windows Hypervisor is not present)
运维·docker·容器
影龙帝皖1 小时前
Linux服务之lvs集群与dr模式部署
linux·服务器·lvs
2302_799525741 小时前
【Linux】第十六章 分析和存储日志
linux·运维·服务器
愚润求学1 小时前
【Linux】Ext系列文件系统
linux·运维·服务器·笔记
微刻时光1 小时前
影刀RPA网页自动化总结
运维·人工智能·python·低代码·自动化·rpa·影刀rpa
2301_787552871 小时前
Lightpanda开源浏览器:专为 AI 和自动化而设计的无界面浏览器
运维·自动化