【前言】
在服务器面前,如果你还在靠百度搜索“怎么查看端口占用”、“怎么解压文件”,那说明你的“肌肉记忆”还没有建立起来。
Linux 命令千千万,其实日常运维和开发中高频使用的不过就那些。真正的老手,从来不背命令,而是理解了它的场景与逻辑。今天,我们抛开长篇大论的理论,直接按工作场景把最硬核、最实用的 Linux 命令梳理成了 10 个模块。
这篇干货满满的长文,建议先收藏,在终端前卡壳时,拿出来当字典查!
📂 1. 基础导航与文件处理
*这是你在Linux里走路和搬砖的基本功。*
- pwd
- ls -lht
- cd -
- mkdir -pv
- rm -rf *
- cp -a / mv
- tail -200f
- wc -l:结合管道符
|,快速统计 grep 出来了多少行报错。 - find / -type f -mtime -1
- which:当系统里装了多个版本时,确认当前用的到底是哪个。
🔐 2. 权限控制与属性
*搞懂 rwx,就搞懂了 Linux 的安保系统。*
- ls -l:第一列那串
-rwxr-xr-- 就是文件的基因。 - chmod +x
- chown -R user:group:递归修改目录下所有文件的归属,解决“权限拒绝”利器。
- chgrp
- umask:控制新建文件天生自带什么权限(默认减去什么权限)。
- stat file
- ln -s:创建软链接,相当于 Windows 的快捷方式,常用于软件版本平滑升级。
- tar xzf / tar cjf:
z 是 gzip,j 是 bzip2,根据压缩包后缀灵活选用。 - unzip -q
- file:遇到不知名的文件,它一眼就能看穿是脚本、二进制还是压缩包。
👥 3. 用户与角色切换
*谁在操作,决定了能干什么。*
- useradd -s /bin/bash -m:创建一个真正能用的普通用户(带家目录和指定shell)。
- passwd --stdin
- userdel -r
- usermod -aG docker user:把用户追加到 docker 组(注意 -a,不然会覆盖原组)。
- id user:一眼看清这哥们儿的 UID 和都在哪些帮派(组)里。
- w:不仅看谁在线,还在干什么(看有没有人在偷偷捣鬼)。
- su - user:中间的减号代表完全切换环境变量,而不是只换了个壳。
- sudo -l
- lastb
- ssh-copy-id
💾 4. 磁盘与存储管理
*空间满了往往是服务器罢工的第一原因。*
- df -hT:看总体磁盘用了多少,还剩多少(-T 能看文件系统类型)。
- du -sh *
- lsblk -f
- blkid:获取分区的 UUID,写
/etc/fstab 必用。 - fdisk / parted:大于 2TB 的磁盘乖乖用 parted 分区。
- mkfs.xfs
- mount -o remount,rw /
- /etc/fstab
- lsof +L1:找出那些文件被删了,但进程还死死咬着不释放空间的“幽灵文件”。
- fuser -mv /mnt:卸载磁盘报“Target is busy”?用它查是谁在占用。
⚙️ 5. 进程与生命周期
*管好进程,就是管好服务器的脉动。*
- ps -ef
- pstree -p
- htop:比 top 强一万倍的可视化监控,按 F5 显示树状。
- kill -9
- jobs / fg 1
- nohup command &
- renice -n -5 -p PID
- systemctl status nginx
- systemctl mask
- journalctl -u nginx --since “1 hour ago”
🌐 6. 网络与连通性排查
*网络不通,万事皆空。*
- ip a:替代老掉牙的 ifconfig,看 IP 和网卡状态。
- ip route
- ping -c 4 -W 2
- ss -tulnp:netstat 的完美替代者,查端口监听状态快如闪电。
- lsof -i:8080
- curl -I -v:只看 HTTP 响应头,排查重定向和 Web 报错首选。
- dig baidu.com:比 nslookup 更详细的 DNS 解析过程追踪。
- traceroute -n
- tcpdump -i eth0 port 80:抓包神器,不在服务器上装 Wireshark 也能看流量。
- nc -zv 192.168.1.10 22
📜 7. 日志挖掘与故障定位
*真相都在日志里,就看你能不能挖出来。*
- 核心阵地:
/var/log/messages(CentOS)或 /var/log/syslog(Ubuntu)。 - 安全阵地:
/var/log/secure 或 /var/log/auth.log(记录谁登录了)。 - dmesg -T:把内核时间戳转成人类能看懂的格式,查硬件报错必备。
- journalctl -b -1:看上一次开机(崩溃前)的系统日志,排查死机原因。
- grep -i “error|fatal” /var/log/logfile
- tailf
- logrotate -vf /etc/logrotate.conf
- last -d
- uptime:看 1分钟、5分钟、15分钟的负载,判断是不是在突发高并发。
- free -m:以 MB 为单位看内存,重点关注 available(真正可用的)。
📊 8. 性能监控与瓶颈分析
*系统卡?用数据说话。*
- lscpu
- vmstat 1 5:每秒刷新,看 r(等待运行的进程)和 b(阻塞的进程)。
- iostat -xd 1:看磁盘的
%util(使用率)和 await(等待时间),判断是不是 IO 瓶颈。 - sar -n DEV 1 3
- mpstat -P ALL 1
- top 秘籍:按
1 看所有核,按 P 按CPU排,按 M 按内存排。 - dstat -cdngy 1
- iotop
- numastat
- top -H:看线程状态,排查 Java/Python 等多线程应用卡顿。
💻 9. Shell 脚本与自动化
*把重复的劳动交给机器。*
- history | grep xxx
- !$
- 2>&1:把错误输出重定向到标准输出,常用于
> log 2>&1。 - xargs:配合
find 或 grep,把前面的结果变成后面命令的参数。 - grep -v ^#
- awk ‘{print $1}’
- sed -i ‘s/old/new/g’
- crontab -l
- bash -x
- set -e:写在脚本开头,只要有一行报错,立刻终止脚本,防止错上加错。
🛡️ 10. 安全基线与好习惯
*不出事,比什么都强。*
- 禁用 root 远程登:在
/etc/ssh/sshd_config 里设 PermitRootLogin no。 - 改 SSH 默认端口
- Fail2ban
- firewalld / iptables
- SELinux:别再一上来就
setenforce 0 了,学会写规则才是正道。 - yum update / apt upgrade
- chrony / ntpdate
- rsync -avz
- Prometheus + Grafana
- 复盘记录:出故障解决的每一步都记下来,那是你比别人值钱的资本。
【结尾】
命令行不是用来死记硬背的,而是用来解决问题的工具。上面的 100 多条命令,不需要你一天背完,但建议你在每次遇到实际场景时(比如排查 CPU 飙高、磁盘满了、网络不通),回来看看对应模块的“组合拳”。
真正的技术成长,都在这些敲击键盘的指尖里。建议把这篇文章转发给你的同事,或者保存在你的云笔记里,它一定会成为你排障时的“救命稻草”。