当前位置: 首页 > news >正文

速查 Linux 常用指令 II

目录

  • 一、网络管理命令
    • 1. 查看和配置网络设备:ifconfig
      • 1)重启网络命令
      • 2)重启网卡命令
    • 2. 查看与设置路由:route
    • 3. 追踪网络路由:traceroute
    • 4. 查看端口信息和使用情况
      • 1)netstat 命令
      • 2)lsof 命令
  • 二、进程管理命令
    • 1. 显示当前系统进程状态:ps
    • 2. 显示系统性能信息和进程信息:top
      • 1)系统总体信息
      • 2)进程信息列表
      • 3)top 命令常用快捷键
      • 4)top 命令常用参数
    • 3. 向进程发送信号:kill
      • 1)常用信号
      • 2)常用用法示例
    • 4. 管理定时任务:crontab
      • 1)常用选项和命令
      • 2)crontab 文件格式与字段值说明
      • 3)示例
    • 5. 继续运行命令:bg
    • 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)

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 被虚拟机偷取的资源)。
  • 内存使用详情(总内存,空闲,已用,缓存等)。
  • 交换空间(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 # 继续进程

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

  • 查看所有信号:kill -l

注意事项:

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

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

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

4. 管理定时任务:crontab

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

基本功能:

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

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

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

1)常用选项和命令

命令 / 选项说明
crontab -e编辑当前用户的定时任务(打开编辑器)
crontab -l列出当前用户的定时任务
crontab -r删除当前用户的所有定时任务
crontab -u [用户名] -l查看指定用户的定时任务(需要权限)
crontab 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,终端显示:

[1]+  Stopped                 sleep 100

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

[1]+ sleep 100 &

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

注意事项:

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

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

6. 重启 / 关闭 Linux 系统

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

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

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

http://www.xdnf.cn/news/443053.html

相关文章:

  • 初识C++:类和对象(上)
  • Nexus首次亮相迪拜 TOKEN2049:以“手机 + 钱包 + 公链 + RWA”生态系统引领未来区块链基建
  • C++GO语言微服务之Dockerfile docker-compose②
  • Screen Mirroring App:轻松实现手机与电视的无缝投屏
  • idea springboot 配置文件 中文显示
  • OpenHarmony平台驱动开发(十七),UART
  • DFS算法的学习
  • PyTorch深度神经网络(前馈、卷积神经网络)
  • JVM调优实战
  • 面试--HTML
  • OpenCV CUDA模块中逐元素操作------逻辑运算
  • 代码随想录算法训练营第四十天
  • ubuntu24.04上安装NVIDIA driver+CUDA+cuDNN+Anaconda+Pytorch
  • Webpack其他插件
  • Emacs 折腾日记(二十三)——进一步提升编辑效率
  • Docker 疑难杂症解决指南:从入门到进阶的全面剖析
  • 第五章 LVGL 字库使用
  • 【测试】BUG
  • 深度理解指针(2)
  • map格式可以接收返回 fastjson2格式的数据 而不需要显示的转换
  • 占位符读取标准输入缓冲区规则
  • WEB安全--Java安全--CC1利用链
  • 生成式人工智能认证(GAI认证)官网 - 全国统一认证中文服务平台上线
  • [python] python中的魔法方法和属性
  • 【Python 异常处理】
  • 【c语言内存函数】
  • Kuka AI音乐AI音乐开发「人声伴奏分离」 —— 「Kuka Api系列|中文咬字清晰|AI音乐API」第6篇
  • 梯度优化提示词:模型生成精准回答的秘密
  • libmemcached库api接口讲解四
  • 反向搭理搭建于网络安全的分层关系讨论