我之前是纯 Windows 用户,GUI 重度依赖者。但深度学习课程需要 Linux 环境,被逼着开始了这个「30 天改造计划」。现在回头看,最大的收获不是学会了哪些命令,而是理解了 Linux 的世界观:一切皆文件,终端就是你的操作系统。
WSL2:微软给的最大善意
装 Linux 双系统太麻烦,虚拟机太慢,WSL2 是完美的入门方案:
wsl --install -d Ubuntu-22.04
装完第一件事:sudo apt update && sudo apt upgrade。第二件事:配好 Windows Terminal,设 JetBrains Mono 字体,配色改 Dracula。一个好的终端看起来能极大提升坚持学习的动力。不过 WSL2 有个坑——文件跨系统访问时,在 WSL 里操作 Windows 文件(/mnt/c/)极慢,代码一定要放在 WSL 自己的文件系统(~/)里。
chmod:记了无数次终于不用查的数字
chmod 的三个数字分别对应 User、Group、Others。每个数字是读(4)+写(2)+执行(1)的和。最常用的是 chmod 755 script.sh(自己全能,别人只读+执行)和 chmod 600 ~/.ssh/id_rsa(私钥只给自己读写)。我刚开始每次都要查表——rwx 三个字母在心里默默转二进制——大概记了两周才形成肌肉记忆。建议不要死记,多实操几次 chmod +x 自然就熟了。
软链接 vs 硬链接
软链接(ln -s)就是个快捷方式——删了原文件,链接就失效。硬链接(ln)是同一个 inode 的另一个入口——删了原文件,数据还在。实际使用中 ln -s /data/big_dataset ./data 是我最常用的模式,把大文件「映射」到项目目录而不复制。硬链接我几乎只用在备份场景——保证数据不会因为误删而丢失。
tmux:拯救了无数次 SSH 断连
第一次 SSH 到学校服务器跑训练,网络断了——训练进程直接被杀。那感觉太绝望了。后来师兄教我 tmux:
tmux new -s train # 创建会话
tmux attach -t train # 重连会话
Ctrl+B D # 断开会话(进程继续跑)
从此 SSH 掉线不再怕——重新连上 tmux attach 一切如初。记住 Ctrl+B 是 prefix 键,后面跟的字母才是真正的命令。
htop 和文本三剑客
htop 替代任务管理器——彩色、可交互、比 top 好看太多。nvidia-smi 配合 watch -n 1 nvidia-smi 实时监控 GPU。
文本处理三件套:grep "error" log.txt 查找错误、awk '{print $1, $3}' 提取列、sed 's/old/new/g' 替换文本。组合技最实用——比如统计日志中最常见的 10 个 IP:
cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -10
30 天后,虽然还是会时不时查 man 手册,但我已经不想回到纯 GUI 的世界了。那种一行命令搞定批量操作的爽感,用过就回不去。
--- 约 680 字