Linux系统的基本命令:从入门到日常实用
刚接触Linux时,面对闪烁的终端光标,我心中充满敬畏与忐忑。那时一位老运维拍着我肩膀说:"别怕,命令行不过是和机器聊天的方式,熟了就成家常话。"如今回想,这句话道出了Linux命令的精髓——它们不是冰冷的指令,而是与系统对话的日常用语。
本文不堆砌手册内容,而是分享那些真正高频使用、解决实际问题的基础命令。这些是我在服务器维护、开发环境搭建、故障排查中反复验证过的"生存工具"。
一、文件与目录操作:Linux的骨架
1. ls:看清你的世界
ls -lh # 人类可读的文件大小
ls -la # 显示隐藏文件(以.开头的配置文件常在这里)
ls -lt # 按修改时间排序,最新在前
实用场景:排查日志时,ls -lt /var/log | head 能快速找到最新修改的日志文件。
2. cd 与 pwd:定位自己
cd .. # 返回上级目录
cd - # 切换到上一个工作目录(在两个目录间来回跳转的神器)
pwd # 显示当前完整路径
血泪教训:别在cd后不跟路径直接回车,那会把你送回家目录——我曾因此误删过项目文件。
3. mkdir 与 rmdir:创建与清理
mkdir -p project/{src,bin,config} # 一次性创建嵌套目录
rmdir empty_dir # 仅删除空目录
rm -rf unwanted_dir # 谨慎!强制递归删除(没有回收站!)
重要提醒:rm -rf / 是系统管理员的噩梦,永远不要在root权限下执行不确定的删除命令。
4. cp 与 mv:文件搬运工
cp file.txt backup/ # 复制到目录
cp -r dir1/ dir2/ # 递归复制目录
mv oldname.txt newname.txt # 重命名(本质是移动)
mv report.pdf ~/Documents/ # 移动文件
经验分享:mv比复制+删除更安全——尤其对大文件,它只是修改文件系统指针,不实际搬运数据。
二、文件内容处理:看见与改变
1. 快速查看:cat, more, less
cat config.yaml # 小文件直接输出
less huge.log # 大文件分页查看(按q退出)
head -n 20 access.log # 查看文件前20行
tail -f application.log # 实时追踪日志更新(调试神器)
技巧:less 比 more 更强大,支持向前/向后滚动,按 / 可搜索内容。
2. 文本编辑:nano 与 vim
对新手,nano 更友好:
nano notes.txt
# 操作提示在底部:^X退出,^O保存(^代表Ctrl键)
而 vim 是进阶之选:
vim config.conf
# 按i进入编辑模式,按ESC后输入:wq保存退出
真实建议:花半天学会vim基础,它在无图形界面的服务器上是救命稻草。
3. 文本处理三剑客
grep "error" syslog # 搜索含"error"的行
grep -r "TODO" ./src # 递归搜索目录
awk '{print $1}' access.log # 默认空格分隔,打印第一列
sed 's/foo/bar/g' file.txt # 全局替换foo为bar
实战案例:分析Nginx日志统计访问IP:
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head
三、系统状态监控:把握机器脉搏
1. 资源概览
df -h # 磁盘空间(-h表示human-readable)
du -sh /home/* # 目录大小统计(找出大目录)
free -m # 内存使用(-m以MB显示)
top # 实时进程监控(按q退出)
htop # 增强版top(需安装,彩色界面更直观)
故障排查:当服务器变慢,先看top中%CPU和%MEM列,快速定位资源占用大户。
2. 进程管理
ps aux | grep nginx # 查找nginx进程
kill 1234 # 终止进程ID 1234
kill -9 5678 # 强制终止(慎用!)
systemctl status nginx # 查看服务状态(现代Linux主流)
经验谈:别直接kill -9,先尝试普通kill给进程清理资源的机会。
3. 网络诊断
ping example.com # 测试连通性
ip addr show # 查看IP地址(替代老旧的ifconfig)
netstat -tuln # 查看监听端口
curl -I https://api.example.com # 仅获取HTTP头
wget https://example.com/file.zip # 下载文件
网络故障技巧:当网站无法访问,按顺序执行:
ping → curl -v → netstat -tuln → 检查防火墙,逐步缩小问题范围。
四、权限与所有权:Linux的安全基石
ls -l file.txt # 查看权限(如-rw-r--r--)
chmod 644 config.conf # 设置权限:所有者读写,组和其他人只读
chmod +x script.sh # 添加执行权限
chown user:group file.txt # 更改所有者和组
sudo command # 以管理员权限执行命令
权限规则:
- 7=读+写+执行 (rwx)
- 6=读+写 (rw-)
- 5=读+执行 (r-x)
- 4=只读 (r--)
安全忠告:不要滥用chmod 777!最小权限原则是安全的第一道防线。
五、实用组合技:命令的艺术
Linux的威力在于命令组合。一些日常高频用法:
# 查找并删除7天前的日志
find /var/log -name "*.log" -mtime +7 -exec rm {} \;
# 监控CPU最高的3个进程
ps -eo pcpu,pid,user,args | sort -k1 -r | head -4
# 压缩与解压(tar是瑞士军刀)
tar -czvf archive.tar.gz dir/ # 创建gzip压缩包
tar -xzvf archive.tar.gz # 解压
真实案例:服务器磁盘告警,我用三行命令快速定位问题:
df -h / # 确认哪个分区满
du -sh /var/* | sort -hr | head # 找出大目录
journalctl --vacuum-time=3d # 清理旧日志(systemd系统)
六、新手避坑指南
- 路径分隔符:Linux用
/,不是Windows的\ - 大小写敏感:
File.txt和file.txt是两个文件 - 空格是特殊字符:含空格的路径要用引号,如
cd "my documents" sudo的威力:在rm、chmod、chown前加sudo时,三思而后行- 帮助永远在手边:
man ls # 查看ls的手册 ls --help # 快速参数参考
结语:从命令到思维
掌握Linux命令不是死记硬背参数,而是理解其设计哲学:每个命令做一件事,并做到极致;通过管道|和重定向>将简单命令组合成强大工具链。
记得我第一次在生产服务器崩溃时,仅靠grep、tail和journalctl就定位了问题,那一刻真正体会到命令行的力量——它不花哨,但在关键时刻从不掉链子。
下次当你打开终端,别把它当作任务,而是一次对话。输入ls时,是在问系统:"你有哪些东西?";执行grep时,是在说:"帮我找找这个"。这种与机器平等交流的感觉,或许正是Linux经久不衰的魅力。
最后建议:在虚拟机或测试机上大胆练习,犯错是学习最快的路径。毕竟,每个老鸟都曾是菜鸟,每个rm -rf的惨剧最终都变成了运维茶歇时的笑谈。
评论