跳到主要内容

Common Commands

getent

getent 是 Linux/Unix 系统中用来查询系统数据库的命令,名字来自 "get entries"。它读取由 NSS(Name Service Switch,配置文件为 /etc/nsswitch.conf)支持的各种数据库,包括本地文件、LDAP、NIS、DNS 等来源,统一返回结果。

常用数据库及示例:

getent passwd # 列出所有用户
getent passwd root # 查询指定用户
getent group # 列出所有用户组
getent group sudo # 查询指定组及其成员
getent hosts # 主机名解析(类似 /etc/hosts + DNS)
getent hosts google.com
getent services ssh # 查询服务端口
getent networks # 网络信息

ab

apache bench, 命令行压力/基准测试工具

安装

使用 ab -V 验证安装

# debian/ubuntu
apt install apache2-utils

# centos
yum install httpd-tools

用法

参数含义示例
-n <数字>总请求数(必填)-n 1000
-c <数字>并发连接数-c 50
-t <秒>测试持续时间(优先于 -n-t 60
-k启用 HTTP Keep-Alive(复用连接)-k
-p <文件>POST 数据文件(需配合 -T-p data.json
-T <类型>设置 Content-Type-T application/json
-H "<头>"自定义请求头(可多次使用)-H "Authorization: Bearer xxx"
-C "<cookie>"添加 Cookie-C "sessionid=abc123"
-A user:passHTTP Basic Auth 认证-A admin:123456
-s <秒>单个请求超时时间(默认 30 秒)-s 10
-r出错时不退出(继续测试)-r
-v <级别>详细输出(1~4)-v 3
-w以 HTML 表格形式输出结果-w > result.html
-e <文件>输出响应时间分布为 CSV-e latency.csv
-g <文件>输出 gnuplot 格式数据(用于绘图)-g plot.dat

1. GET 请求

ab -n 20000 -c 2000 -k http://api.example.com/v1/status

2. POST 请求

# 创建 postdata.json
echo '{"username":"test","password":"123"}' > postdata.json

ab -n 1000 -c 50 -p postdata.json -T application/json http://localhost/login

3. 携带 Token

ab -n 1000 -c 20 -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..." http://localhost/api/user

pidof

根据进程名称查找其进程 ID (PID)

用法

选项功能描述示例
-x脚本 (eXecute):同时查找正在运行的脚本(如 .sh 文件)的 PID。pidof -x myscript.sh
-o <PID>排除 (Omit):排除指定的 PID,常用于在脚本中排除自身。pidof -o 1234 nginx
-q静默 (Quiet):不输出任何信息,仅通过退出状态码(0 或 1)表示是否找到。pidof -q nginx

top

实时进程监控工具

概念

  • load average:1/5/15 分钟平均负载

    • 单核:>1 表示过载
    • N核:合理值 ≈ N(如 8 核服务器,负载 8 左右为满载)
  • %Cpu(s): cpu 使用率

    • wa:I/O 等待(高 → 磁盘瓶颈)
    • st:被虚拟机偷走的时间(云环境关注)

用法

选项说明示例
-d <秒>设置刷新间隔(支持小数)top -d 1.5
-n <次数>刷新指定次数后自动退出top -n 5
-b批处理模式(非交互,适合脚本/输出文件)top -b -n 1 > snapshot.txt
-u <用户名>只显示该用户的进程top -u nginx
-p <PID>监控指定 PID(可多个,逗号分隔)top -p 1234,5678
-H显示线程(默认只显示进程)top -H -p 1234
-E <单位>内存单位:k/m/g/t(KiB/MiB/GiB/TiB)top -E m
-o <字段>启动时按指定字段排序top -o %MEM
-c显示完整命令行,交互式可输入ctop -c

killall

通过进程名称来批量终止所有匹配的进程

安装

yum install -y psmisc

nproc

返回当前进程可用的核心数