站长必学的Linux命令:20个让你效率翻倍的日常操作
熟练使用命令行是区分新手和老手的重要标志。用鼠标点击虽然直观,但在服务器管理和文件操作上,命令行的效率是图形界面的十倍以上。本文精选20个站长日常最高频使用的命令。
文件和导航
cd / ls / pwd:最基础的导航命令。cd - 返回上一个目录,ls -lht 按时间排序显示详情。tree -L 2 以树状显示两层目录结构。
find:查找文件的利器。find /var/www -name "*.log" -mtime +30 -delete 删除30天前的日志文件。find . -type f -size +10M 找出大于10MB的文件。
du:查看磁盘使用。du -sh /var/www/* 看每个子目录的大小。du -ah --max-depth=1 | sort -hr | head -10 列出前10大文件/目录。
文本处理
grep:grep -r "关键词" /var/www/ 递归搜索。grep -c "ERROR" app.log 统计错误数量。grep -v "DEBUG" log | grep "ERROR" 排除DEBUG行再找ERROR。
awk:awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10 统计访问日志中最多的前10个IP。
sed:sed -i 's/old-text/new-text/g' file.txt 批量替换文件内容。sed -n '10,20p' file.txt 显示第10到20行。
tail / head:tail -f access.log 实时监控日志输出。tail -n 100 error.log 查看最后100行。
进程和系统
top / htop:实时查看系统资源。按M(大写)按内存排序,按P按CPU排序。htop比top更友好,支持鼠标操作和进程树视图。
ps:ps aux --sort=-%mem | head -10 找出内存占用最大的进程。ps aux | grep nginx 查看nginx进程。
kill:kill -9 PID 强制终止进程(尽量先用kill PID温和请求)。pkill -f "python app.py" 按进程名终止。
df:df -h 查看磁盘分区使用情况。df -i 查看inode使用情况(小文件太多会导致inode耗尽)。
free:free -h 查看内存使用。free -s 2 每2秒刷新一次。
网络
curl:curl -I https://example.com 查看响应头。curl -o /dev/null -s -w "%{time_total}\n" https://example.com 测试响应时间。
ss:现代版的netstat。ss -tlnp 查看所有监听的TCP端口。ss -s 显示连接统计。
nc:网络调试利器。nc -zv domain.com 80 测试端口是否开放。nc -l 8080 在本地监听8080端口用于调试。
压缩与传输
tar:tar -czf backup.tar.gz /var/www/ 创建压缩包。tar -xzf backup.tar.gz -C /restore/ 解压到指定目录。
rsync:rsync -avzP /source/ user@host:/dest/ 增量同步文件,-P显示进度并支持断点续传。
scp:scp file.txt user@host:/path/ 安全复制文件。scp -r dir/ user@host:/path/ 复制整个目录。
效率技巧
Ctrl+R:反向搜索历史命令。输入关键词就能找到之前执行过的长命令,比翻history快很多。
!!:重复上一条命令。sudo !! 以sudo权限重新执行上一条命令(忘记加sudo时的救星)。
管道组合:| 把前一个命令的输出传给下一个命令。grep "ERROR" app.log | awk '{print $5}' | sort | uniq -c | sort -rn 统计日志中各错误类型的出现次数。
熟练这些命令后,你操作服务器就像打字一样流畅,再也不用在图形界面里点点点了。