Shell常用命令汇总


本文主要汇总日常使用当中,常用的命令组合方式,来提高查询和系统管理能力!

Shell使用命令汇总


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. 设备驱动信息

显示 Linux 系统上的设备和驱动程序

  • 列出 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
> 将查询的信息输出到具体的文件中

文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !
  目录