常用linux命令


1. 文件与目录操作

命令 说明 示例
ls 列出目录内容 ls -lah
cd 切换目录 cd /home/admin
pwd 显示当前路径 pwd
mkdir 创建目录 mkdir -p a/b/c
cp 复制文件/目录 cp -r src/ dest/
mv 移动/重命名 mv old.txt new.txt
rm 删除文件/目录 rm -rf dir/
find 查找文件 find . -name "*.java"
tree 以树形展示目录结构 tree -L 2
ln 创建链接 ln -s target link
du 查看目录大小 du -sh *
stat 查看文件元信息 stat pom.xml

2. 文件查看与编辑

命令 说明 示例
cat 查看完整文件 cat pom.xml
less 分页查看(支持搜索) less +F app.log
head 查看文件头部 head -n 50 app.log
tail 查看文件尾部/实时跟踪 tail -f -n 200 app.log
grep 文本搜索 grep -rn "error" /var/log/
wc 统计行数/字数 wc -l access.log
sort 排序 sort -k2 -n file.txt
uniq 去重 sort file | uniq -c
awk 文本处理 awk '{print $1, $3}' file
sed 流编辑器(替换等) sed -i 's/old/new/g' file
diff 比较文件差异 diff -u a.txt b.txt
vim 编辑文件 vim config.yaml

3. 进程管理

命令 说明 示例
ps 查看进程 ps -ef | grep java
top 实时进程监控 top -p 12345
htop 增强版 top htop
kill 终止进程 kill -9 12345
killall 按名终止 killall -9 java
nohup 后台运行(不挂断) nohup ./start.sh &
& 后台运行 ./app &
jobs 查看后台任务 jobs -l
fg/bg 前/后台切换 fg %1
lsof 查看打开的文件/端口 lsof -i :8080

4. 网络与端口

命令 说明 示例
curl HTTP 请求 curl -v http://localhost:8080/health
wget 下载文件 wget https://example.com/file.tar.gz
netstat 网络连接/端口 netstat -tlnp
ss 替代 netstat ss -tlnp
nslookup DNS 查询 nslookup google.com
dig DNS 查询(更详细) dig google.com
ping 测试连通性 ping -c 3 10.0.0.1
telnet 测试端口连通 telnet 10.0.0.1 8080
nc 端口扫描/连通测试 nc -zv host 8080
traceroute 路由追踪 traceroute 10.0.0.1
tcpdump 抓包 tcpdump -i eth0 port 8080
ip 网络接口信息 ip addr

5. 磁盘与内存

命令 说明 示例
df 磁盘使用情况 df -h
du 目录大小 du -sh /home/admin/
free 内存使用 free -h
vmstat 虚拟内存统计 vmstat 1 5
iostat IO 统计 iostat -x 1
fdisk 磁盘分区 fdisk -l
mount 挂载磁盘 mount /dev/sdb1 /data

6. 用户与权限

命令 说明 示例
chmod 修改权限 chmod 755 start.sh
chown 修改所有者 chown -R admin:admin /app/
sudo 提权执行 sudo vi /etc/hosts
su 切换用户 su - admin
whoami 当前用户 whoami
id 用户信息 id admin
passwd 修改密码 passwd admin

7. 压缩与解压

命令 说明 示例
tar 打包/解包 tar -czf app.tar.gz app/ / tar -xzf app.tar.gz
zip/unzip zip 压缩/解压 zip -r app.zip app/ / unzip app.zip
gzip/gunzip gzip 压缩/解压 gzip file.log / gunzip file.log.gz

8. 系统与服务

命令 说明 示例
systemctl 管理服务 systemctl status nginx / systemctl restart nginx
journalctl 查看系统日志 journalctl -u nginx -f
crontab 定时任务 crontab -e / crontab -l
date 系统时间 date "+%Y-%m-%d %H:%M:%S"
uptime 系统运行时长 uptime
uname 系统信息 uname -a
hostname 主机名 hostname -I
env 环境变量 env | grep JAVA_HOME
export 设置环境变量 export JAVA_HOME=/usr/java/jdk
source 加载配置 source ~/.bashrc

9. Java 开发运维常用

命令 说明 示例
java -version 查看 JDK 版本
jps 查看 Java 进程 jps -lv
jstack 查看线程栈 jstack -l 12345 > threadDump.txt
jmap 堆内存分析 jmap -heap 12345 / jmap -dump:format=b,file=heap.hprof 12345
jstat GC 统计 jstat -gcutil 12345 1000
jinfo 查看 JVM 参数 jinfo -flags 12345
arthas Java 诊断工具 java -jar arthas-boot.jar

10. 实用组合技巧

# 实时查看日志并过滤关键字
tail -f app.log | grep -i "error\|exception"

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

# 查找占用端口 8080 的进程
lsof -i :8080  或  netstat -tlnp | grep 8080

# 批量杀掉某类进程
ps -ef | grep "myapp" | grep -v grep | awk '{print $2}' | xargs kill -9

# 查看某个目录下最大的 10 个文件
du -ah /data | sort -rh | head -10

# 监控磁盘空间,低于阈值告警
df -h | awk 'NR>1 && $5+0 > 80 {print $6, "使用率:", $5}'

# 批量替换文件内容
sed -i 's/old-host/new-host/g' *.conf

# 查找 7 天前的日志并删除
find /var/log -name "*.log" -mtime +7 -delete
posted @ 2026-05-25 17:46  webzd  阅读(22)  评论(0)    收藏  举报