很多朋友第一次打开 Linux 终端时,面对黑乎乎的窗口和闪烁的光标,可能会感到手足无措。其实,命令行并没有想象中那么可怕,它就像与计算机对话的一种方式——你输入指令,它执行任务。今天,我们不只罗列命令,而是通过实际场景来学习,让你真正理解什么时候该用什么命令。
场景一:初来乍到,先认识一下自己在哪里
刚登录服务器,第一件事通常是确认当前目录。
bash
输出类似 `/home/username`,告诉你现在身处何处。
接着看看周围有什么:
bash
你会看到文件列表,还有权限、大小等信息。如果看到一堆陌生的文件名,别慌,这就是你的工作区。
**小技巧**:`ls -la` 会显示隐藏文件(以点开头的),比如 `.bashrc` 配置文件,平时用不着,但关键时刻可能需要修改。
场景二:整理文件——创建、移动、复制、删除
假设你要新建一个项目,命名为 `myproject`。
bash
mkdir myproject # 创建目录cd myproject # 进入目录touch README.md # 创建一个空文件(也可以用来更新文件时间戳)
现在你想把另一个目录下的旧代码复制过来:
bash
cp /home/old/code.py . # 注意最后的点,代表当前目录
如果复制整个文件夹,记得加 `-r`:
bash
cp -r /home/old/include ./
过了一段时间,项目文件多了,想整理一下:
bash
mv code.py src/ # 移动到 src 子目录mv README.md README.txt # 重命名文件
清理无用文件要谨慎,尤其是 `rm`:
bash
rm temp.log # 删除单个文件rm -rf old_backup/ # 强制删除整个目录(⚠️ 千万确认路径正确)
我曾经有一次 `rm -rf .` 误操作,把整个项目删光了,还好有备份。所以建议多用 `-i` 参数,或者先 `ls` 确认。
场景三:查看文件内容,但不打开编辑器
有时只需要快速看一眼文件内容,比如配置文件或日志。
bash
cat config.ini # 全屏输出,适合小文件
文件太长?用 `less` 分页查看:
bash
less long.log # 空格翻页,/关键词搜索,q退出
只看最后几行(实时追踪日志常用):
bash
tail -f app.log # 持续输出新增的行,按 Ctrl+C 停止
想统计代码行数?结合 `wc`:
bash
wc -l src/*.py # 统计所有 Python 文件行数
场景四:查找文件或内容,别再一个个翻
当你忘记某个配置文件的位置时:
bash
find /etc -name "*.conf" # 在 /etc 下查找所有 .conf 文件
如果你记得文件内容中有某个关键词:
bash
grep -r "error" /var/log/ # 在 /var/log 目录下递归搜索包含 error 的行
`grep` 非常强大,配合管道符 `|` 还能过滤其他命令的输出:
bash
ps aux | grep python # 查看正在运行的 Python 进程
场景五:查看系统状态,了解谁在“吃”资源
服务器变慢了?用 `top` 看一眼:
bash
按 `1` 可以看每个 CPU 核心的情况,按 `q` 退出。更直观的可以用 `htop`(需安装),颜色区分更清晰。
磁盘空间告急?
bash
df -h # 查看各分区使用情况du -sh * # 查看当前目录下每个子目录的大小
发现某个目录特别大,可以进去进一步排查。
场景六:网络问题,先 ping 再 curl
网站打不开,先试试网络通不通:
bash
ping -c 4 baidu.com # 发送 4 个包,看延迟和丢包
如果想看网页返回的内容,用 `curl`:
bash
curl http://example.com/api
加上 `-I` 只查看响应头,比如检查 HTTP 状态码。
下载文件也是常有的事:
bash
wget https://example.com/file.zip
场景七:权限不够?学会切换用户和授权
有时候执行命令会提示 `Permission denied`。这可能是因为当前用户没有权限。
切换成 root 用户(谨慎使用):
bash
sudo -i # 输入当前用户密码,进入 root 环境exit # 退出 root
如果只是临时执行一条管理员命令:
bash
sudo apt update # 更新软件源(Debian/Ubuntu 系统)
修改文件权限:
bash
chmod +x script.sh # 给脚本添加可执行权限chown user:data file.txt # 改变文件所有者和所属组(需要 sudo)
场景八:打包压缩,方便传输
要发一个项目文件夹给同事,打包压缩是基本操作。
bash
tar -czf project.tar.gz myproject/ # 压缩成 tar.gz 格式
收到压缩包后解压:
bash
如果是 zip 格式,通用性更好:
bash
zip -r project.zip myproject/unzip project.zip
场景九:后台运行任务,不占用终端
有时要执行一个长时间任务,比如训练模型或下载大文件,不想一直开着终端。
在命令末尾加 `&` 放入后台:
bash
用 `jobs` 查看后台任务,`fg` 调回前台。
更可靠的方式是用 `nohup` 加 `&`:
bash
nohup python train.py > train.log 2>&1 &
这样即使退出终端,任务也会继续运行,输出记录到 `train.log`。
场景十:救命!命令输错了怎么办
- 按上下箭头可以调出历史命令,避免重输。
- 输入 `history` 查看所有历史,`!123` 执行第 123 条。
- 如果卡住了,试试 `Ctrl + C` 终止当前命令。
- 实在不行,`Ctrl + Z` 暂停任务,然后用 `kill %1` 杀掉。
总结
Linux 命令学习不是背字典,而是在实际使用中逐渐熟练。今天我整理的都是日常高频场景,建议你打开终端,跟着敲一遍。遇到问题多查 `man` 手册(比如 `man ls`),或者在社区搜索,很快你就能成为命令行高手。
写在最后:命令行就像一把瑞士军刀,刚开始可能觉得笨重,但用习惯了,你会发现它的效率和灵活性无可替代。如果你在练习中遇到有趣的命令或踩了坑,欢迎在评论区分享,我们一起进步!