本文主要汇总日常使用当中,常用的命令组合方式,来提高查询和系统管理能力!
1. 查看系统信息
获取 Linux 操作系统本机的相关常用信息
- 获取本机 IP 地址
> ip a
> ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
- 查看内存占用最多
# -k: 指定筛选的列(4是%MEM)
> ps -aux | sort -k4nr | head -5
- 查使用 CPU 最多的进程
# -k: 指定筛选的列(3是%CPU)
> ps -aux | sort -k3nr | head -5
2. 查看服务状况
获取网络相关的状态请求信息
- 查看 TCP 连接状态
> netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
- 找查较多的 SYN 连接
> netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c |sort -nr | more
- 查找较多 time_wait 连接
> netstat -n | grep TIME_WAIT | awk '{print $5}' | sort | uniq -c | sort -rn | head -n 20
3. 设备驱动信息
- 列出 PCI 总线及其连接的设备
> lspci
> lspci -v
> lspci -vv
> lspci -vvv
- 定位显卡信息
> lspci | grep -e VGA
> lspci | grep -e 3D
- 按供应商 ID 搜索
> lspci -nn | grep -e VGA
> lspci -nn -d 10de:
- 查看内核模块
> lspci -nn -k -d 10de:
4. 性能相关命令
统计应用相关的命令,比如内存和 CPU 使用,以及瓶颈筛查
- 统计进程使用的内存/CPU 等资源
> /usr/bin/time -f \
"mem=%K RSS=%M elapsed=%E cpu.sys=%S .user=%U" \
python3 -m app.op.stat_show_answer -c -m 4 -f 300 -t 300
5. 命令使用注意
列出平时使用 Linux 命令时需要注意的小细节
# ./abc
# ./xyz
> find . -type f -exec echo {} \;
# ./xyz ./abc
> find . -type f -exec echo {} +
# 全文覆盖
$ sudo bash -c 'cat > /etc/apt/sources.list' <<EOF
......
EOF
# 内容追加
$ cat <<EOF | sudo tee -a /etc/yum.repos.d/some-name.repo
......
EOF
6. 查询过滤相关
记录查询和过滤相关的命令,有助于提高工作效率!
# 去掉井号和分号开头的注释信息行并过滤空白行
> cat smb.conf | grep -v "#" | grep -v ";" | grep -v "^$"
7. 显卡相关命令
其是一个跨平台工具,提供监控 GPU 使用情况和更改 GPU 状态的功能!
- [1] 查看当前实时情况
# 显示所有GPU的当前信息状态
> nvidia-smi
# 指定某个GPU
> nvidia-smi –i xxx
# 动态刷新信息(默认5s刷新一次)
> nvidia-smi –l xxx
# 将查询的信息输出到具体的文件中
> nvidia-smi –f xxx
# 查看显卡型号
> nvidia-smi -L
- [2] 查看当前详细情况
# 查询所有GPU的当前详细信息
> nvidia-smi -q
# 显示单元而不是GPU的属性
> nvidia-smi –q –u
# 指定具体的GPU或unit信息
> nvidia-smi –q –i xxx
# 将查询的信息输出到具体的文件中
> nvidia-smi –q –f xxx
# 将查询的信息以xml的形式输出
> nvidia-smi –q –x
# 指定显示GPU卡某些信息
# 参数: MEMORY, UTILIZATION, ECC, TEMPERATURE, POWER,CLOCK, COMPUTE, PIDS
# 参数: PERFORMANCE, SUPPORTED_CLOCKS, PAGE_RETIREMENT,ACCOUNTING
> nvidia-smi -q –d xxx
# 动态刷新信息
> nvidia-smi –q –l xxx
# 选择性查询选项
> nvidia-smi --query-gpu=gpu_name,gpu_bus_id,vbios_version--format=csv
- [3] 可以设备修改选项
# 设置持久模式
# 0/DISABLED,1/ENABLED
> nvidia-smi –pm 0/1
# 切换ECC支持
# 0/DISABLED, 1/ENABLED
> nvidia-smi –e 0/1
# 重置ECC错误计数
# 0/VOLATILE, 1/AGGREGATE
> nvidia-smi –p 0/1
# 设置计算应用模式
# 0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED
> nvidia-smi –c
# GPU复位
> nvidia-smi –r
# 设置GPU虚拟化模式
> nvidia-smi –vm
# 设置GPU运行的工作频率
> nvidia-smi –ac 2000,800
# 将时钟频率重置为默认值
> nvidia-smi –rac
# 切换-ac和-rac的权限要求
# 0/UNRESTRICTED, 1/RESTRICTED
> nvidia-smi –acp 0/1
# 指定最大电源管理限制(瓦特)
> nvidia-smi –pl
# 启用或禁用计数模式
# 0/DISABLED,1/ENABLED
> nvidia-smi –am 0/1
# 清除缓冲区中的所有已记录PID
# 0/DISABLED,1/ENABLED
> nvidia-smi –caa
- [4] 设备监控相关命令
# 用逗号分隔GPU索引 | PCI总线ID或UUID
> nvidia-smi dmon –i xxx
# 指定刷新时间(默认为1秒)
> nvidia-smi dmon –d xxx
# 显示指定数目的统计信息并退出
> nvidia-smi dmon –c xxx
# 指定显示哪些监控指标(默认为puc)
> nvidia-smi dmon –s xxx
# 指定显示的时间格式
> nvidia-smi dmon –o D/T
# 将查询的信息输出到具体的文件中
> nvidia-smi dmon –f xxx
- [5] 进程监控相关命令
# 用逗号分隔GPU索引 | PCI总线ID或UUID
> nvidia-smi pmon –i xxx
# 指定刷新时间(默认为1秒最大为10秒)
> nvidia-smi pmon –d xxx
# 显示指定数目的统计信息并退出
> nvidia-smi pmon –c xxx
# 指定显示哪些监控指标
> nvidia-smi pmon –s xxx
# 指定显示的时间格式
> nvidia-smi pmon –o D/T
# nvidia-smi pmon –f xxx
> 将查询的信息输出到具体的文件中