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:pass | HTTP 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 | 显示完整命令行,交互式可输入c | top -c |
killall
通过进程名称来批量终止所有匹配的进程
安装
yum install -y psmisc
nproc
返回当前进程可用的核心数