Linux高频命令

以下分类整理了 Linux 运维和测试工作中最常用的命令,附带简短说明和典型用法,方便快速查阅。

Published By ShifenmiaoUpdated Tech0

一、文件与目录管理

ls -la                  # 列出详细信息(含隐藏文件)
cd /path                # 切换目录
pwd                     # 显示当前路径
mkdir -p a/b/c          # 递归创建目录
rm -rf file_or_dir      # 强制递归删除(谨慎!)
cp -r src dst           # 递归复制
mv old new              # 移动/重命名
find / -name "*.log" -mtime +7   # 查找7天前的日志文件
grep -rn "error" /var/log/       # 递归搜索含error的行
cat file                # 查看文件
less file               # 分页查看(支持前后翻页)
head -n 20 file         # 查看前20行
tail -f /var/log/app.log # 实时跟踪日志
wc -l file              # 统计行数
touch file              # 创建空文件或更新时间戳
chmod 755 script.sh     # 修改权限(rwxr-xr-x)
chown -R user:group dir # 递归修改属主属组
ln -s target link       # 创建软链接

二、系统信息与监控

uname -a                # 系统/内核信息
hostname                # 主机名
uptime                  # 运行时间及负载
w                       # 当前登录用户及活动
date                    # 系统时间
df -h                   # 磁盘空间使用(人类可读)
du -sh /dir             # 目录占用大小
free -h                 # 内存使用情况
top / htop              # 实时进程与资源(htop更友好)
vmstat 1                # 每秒输出内存、CPU、IO统计
iostat -x 1             # 磁盘IO详细统计
sar -n DEV 1            # 网络接口流量统计(需sysstat)
lscpu                   # CPU信息
lsblk                   # 块设备列表
dmesg | tail -20        # 内核环缓冲区最新信息
lsb_release -a          # 发行版信息

三、用户与权限

sudo command            # 以root权限执行
su - user               # 切换用户(带环境变量)
useradd -m user         # 创建用户并建立家目录
passwd user             # 修改密码
usermod -aG group user  # 将用户追加到附加组
chown user:group file   # 修改属主属组
chmod +x script         # 添加可执行权限
visudo                  # 安全编辑sudoers

四、进程管理

ps aux                  # 所有进程详细快照
ps -ef                  # 标准格式进程列表
pstree -p               # 进程树(带PID)
kill -9 PID             # 强制杀掉进程
pkill -f "pattern"      # 按命令模式杀进程
nohup cmd &             # 后台运行,忽略挂断信号
screen -S name          # 创建screen会话(或tmux)
tmux new -s name        # tmux新会话
jobs                    # 当前终端后台任务
fg %1 / bg %1           # 前后台切换

五、网络相关

ip a                    # 查看IP地址(代替ifconfig)
ping -c 4 8.8.8.8      # 发4个ICMP包测试连通性
traceroute / mtr host   # 路由跟踪(mtr更直观)
ss -tulnp               # 查看监听端口与进程(代替netstat)
dig domain.com          # DNS解析详细信息
nslookup domain.com     # DNS查询
curl -I https://api.com # 查看HTTP响应头
curl -X POST -d 'key=val' url  # 发送POST请求(测试接口)
wget -c http://file     # 支持断点续传下载
scp file user@host:/path # 安全拷贝
rsync -avz src/ dst/    # 增量同步(本地或远程)
nc -l 9999              # 临时监听端口
nc host 9999            # 连接端口并收发数据
tcpdump -i eth0 port 80 -w out.pcap  # 抓包
nmap -sP 192.168.1.0/24 # 扫描网段存活主机
iptables -L -n          # 查看防火墙规则(或firewall-cmd --list-all)

六、压缩与归档

tar -czvf file.tar.gz dir   # 打包并gzip压缩
tar -xzvf file.tar.gz       # 解压
tar -cjvf file.tar.bz2 dir  # bzip2压缩
tar -xjvf file.tar.bz2      # 解压
zip -r file.zip dir         # 创建zip
unzip file.zip
gzip file / gunzip file.gz

七、包管理

# Debian/Ubuntu
apt update && apt install pkg
dpkg -i pkg.deb

# RHEL/CentOS/Fedora
yum install pkg          # 或 dnf install pkg
rpm -ivh pkg.rpm

# Python(用于测试工具)
pip install package

八、文本处理(日志分析神器)

grep -E "error|fail" file         # 扩展正则匹配
awk '{print $1, $NF}' file        # 打印第1列和最后1列
sed 's/old/new/g' file            # 全局替换
sort -n -k2 file                  # 按第二列数值排序
uniq -c                           # 统计重复行数
cut -d: -f1 /etc/passwd           # 按分隔符取字段
tr -s ' '                         # 压缩连续空格
wc -l / wc -c                     # 行数/字符数统计
diff file1 file2                  # 文件差异
tee file                          # 同时输出到屏幕和文件
xargs -I {} cmd {}                # 将标准输入转为参数执行

实用组合示例:

# 统计Nginx日志中状态码出现次数
awk '{print $9}' access.log | sort | uniq -c | sort -nr

# 查找所有包含“Exception”的文件并显示行号
grep -rn "Exception" /var/log/

# 统计当前TCP各连接状态数量
ss -ant | awk '{print $1}' | sort | uniq -c

九、性能与压力测试工具

# CPU/内存压力
stress --cpu 4 --timeout 60s         # 压4核60秒
sysbench cpu --cpu-max-prime=20000 run

# 磁盘IO测试
fio --name=test --rw=randwrite --bs=4k --size=1G \
  --ioengine=libaio --direct=1 --numjobs=4 --runtime=60

# 网络吞吐
iperf3 -s                            # 服务端
iperf3 -c server_ip -t 30            # 客户端测30秒

# HTTP压力测试
ab -n 1000 -c 100 http://domain/path  # Apache Bench
wrk -t4 -c100 -d30s http://domain     # 更现代的wrk

# 模拟网络延迟/丢包(需tc命令)
tc qdisc add dev eth0 root netem delay 100ms loss 5%

十、定时任务与服务管理

crontab -e            # 编辑定时任务(分 时 日 月 周 cmd)
crontab -l            # 查看已设任务

# systemd 服务管理
systemctl start/stop/restart/status service
systemctl enable/disable service
journalctl -u service -f   # 实时查看服务日志

# 旧版SysV
service service start
chkconfig service on

十一、其他运维利器

lsof -i :80           # 查看占用80端口的进程
strace -p PID         # 跟踪进程系统调用
ldd /bin/ls           # 查看程序依赖库
history               # 命令历史
alias ll='ls -alh'    # 设置别名
export VAR=value      # 设置环境变量
source ~/.bashrc      # 重载配置

# 查找大文件
find / -type f -size +100M -exec ls -lh {} \;

十二、快速帮助

man command           # 详细手册
command --help        # 简要帮助
whatis command        # 一行描述

本文采用 CC BY-NC-SA 4.0 许可协议,转载请标明出处

Comments0 comments

No comments yet. Be the first!

Leave a comment

Optional, never published

Up to 1000 characters