作为一个在Linux环境下摸爬滚打十多年的老运维,我始终认为命令行是Linux系统的灵魂所在。与图形界面相比,命令行操作不仅效率更高,而且在服务器管理、自动化脚本编写等方面具有不可替代的优势。今天我想和大家分享一些我在日常工作中最常用的Linux命令,这些命令经过多年实战检验,可以说是每个Linux使用者都应该掌握的"生存技能"。
记得刚入行时,我的导师说过:"掌握100个核心命令,你就能解决90%的Linux系统问题。"这些年我深有体会。本文将重点介绍文件处理、系统监控和网络配置三个方向的实用命令,每个命令都会附上我在实际工作中总结的使用技巧和常见问题解决方法。
less命令是我日常使用频率最高的文件查看工具。相比cat和more,它支持上下滚动、搜索和高亮显示,特别适合查看大文件:
bash复制less /var/log/syslog # 查看系统日志
在less界面中,我常用的快捷键有:
/ 向前搜索? 向后搜索F 实时跟踪文件更新(类似tail -f)q 退出注意:使用vim编辑重要配置文件前,建议先用cp命令备份,例如:
bash复制cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
find命令的强大之处在于它支持多种查找条件组合。这是我常用的几个查找场景:
bash复制# 查找7天内修改过的.log文件
find /var/log -name "*.log" -mtime -7
# 查找大于100MB的文件
find / -type f -size +100M -exec ls -lh {} \;
locate命令比find更快,因为它基于数据库索引:
bash复制updatedb # 先更新数据库
locate nginx.conf # 快速定位文件
Linux的权限系统经常让新手头疼。chmod的数字表示法其实很好记:
例如设置所有者可读写执行,组用户可读执行,其他用户无权限:
bash复制chmod 750 script.sh
chown改变文件所有者时,我习惯加上-R参数递归处理目录:
bash复制chown -R www-data:www-data /var/www/html
htop是增强版的top,提供了彩色显示和鼠标操作支持。安装很简单:
bash复制apt install htop # Debian/Ubuntu
yum install htop # CentOS/RHEL
在htop界面中,我主要关注:
iotop对于诊断磁盘I/O瓶颈特别有用:
bash复制iotop -o # 只显示实际有I/O操作的进程
df -h查看磁盘使用情况时,我总会加上-T参数显示文件系统类型:
bash复制df -hT # 人性化显示各分区使用情况
du命令的--max-depth参数可以控制目录扫描深度:
bash复制du -h --max-depth=1 /var # 查看/var下各子目录大小
实用技巧:组合使用sort和head快速找出大目录
bash复制du -h / | sort -rh | head -10
systemctl是现代Linux发行版的服务管理核心工具。我常用的操作包括:
bash复制systemctl list-units --type=service # 列出所有服务
systemctl status nginx # 查看服务状态
systemctl restart sshd # 重启服务
journalctl查看系统日志时,-f参数可以实时跟踪日志:
bash复制journalctl -u nginx -f # 跟踪nginx服务日志
ip命令已经取代了传统的ifconfig,功能更强大:
bash复制ip addr show # 显示所有网络接口
ip route # 查看路由表
临时修改IP地址(重启后失效):
bash复制ip addr add 192.168.1.100/24 dev eth0
ping和traceroute是基础,但mtr结合了两者的功能:
bash复制mtr -rw google.com # 持续测试到Google的网络质量
telnet和nc测试端口连通性:
bash复制nc -zv 192.168.1.1 22 # 测试SSH端口是否开放
iftop实时监控网络流量:
bash复制iftop -i eth0 # 监控eth0网卡流量
nethogs按进程显示带宽使用情况:
bash复制nethogs eth0 # 查看eth0上各进程的流量
使用history结合grep快速查找曾经执行过的命令:
bash复制history | grep "apt install"
!!重复上一条命令,!$引用上条命令的最后一个参数:
bash复制apt install nginx
systemctl restart !$ # 相当于systemctl restart nginx
"Permission denied"错误通常有三种情况:
ls -l检查getenforce检查状态mount检查"Command not found"可能是:
which或type检查echo $PATH检查apropos搜索相关命令sudo/etc/passwd和/etc/shadow的权限ssh-keygen替代密码登录更安全这些命令只是Linux强大命令行工具的冰山一角,但掌握了它们,你就能应对大多数日常系统管理任务。在实际工作中,我建议: