前两天我学编程的弟弟小阿巴过生日,我问他想要什么礼物。本来以为他会要什么游戏机、Q币卡或者鼠标键盘,结果他给我来了个出其不意:“我想要一台服务器。”

我听了不禁称赞:真是个好学的苗子啊。行,那就送你一台最低配的 Linux 服务器吧,1核1G的那种。
小阿巴感动之余也有些疑惑:“哥,谢谢!但为啥送我最底配的呀?”
“对刚接触 Linux 的同学来说,一般不会部署特别大的项目。”我解释道,“1核1G的服务器,无论是用来学习 Linux 命令,还是部署个人博客和小项目都足够了。后续如果需要更高配置,再升级也完全来得及。”
小阿巴恍然大悟:“原来如此。我之前就听说有同学买了服务器不会用,最后只能放着积灰。那我先用这台机器上手学习!”
“很好,你先自己摸索一下,就当是平时用的办公电脑。”我鼓励他。
一个小时后,我收到了他的反馈。
“哥…阿巴阿巴…这服务器怎么连个界面都没有啊!我完全不知道该怎么玩。”他发来消息,语气里充满了困惑。

我回复道:“我送你的服务器安装的是 Linux 的一个发行版——CentOS 系统。它默认没有 Windows 或 macOS 那样的图形界面,需要用 命令行 来操作。”
“啊?为啥 Linux 要这么设计?它就不能也做个图形界面吗?”小阿巴更困惑了。
“这里面其实很有考究。”我继续解释,“正是因为不运行图形界面,系统才能大幅节省资源,提高 资源利用率,从而运行更多的程序。而且 Linux 支持多用户远程登录,没有图形界面也能更好地保证系统稳定性。”
高性能、低成本、更稳定——这几点正是 Linux 服务器被广泛用于生产环境部署项目的重要原因。
“我好像懂了…难怪都说程序员得学 Linux。那我现在该怎么入门?面对这个黑框框我完全是一头雾水。”小阿巴追问道。

“入门 Linux 首先要做的,就是 了解 Linux 的常用命令。目标就是能像用鼠标操作 Windows 一样,灵活地用命令行操作 Linux。我建议你可以先看一些系统的学习资料,比如云栈社区上就有不少优质的运维/DevOps/SRE相关教程。”我给出了建议。
小阿巴似乎想起了什么:“对哦,我好像经常在别人的简历上看到‘熟悉 Linux 命令’。那我具体该了解哪些命令呢?”
Linux 的常用命令可以分成几大类,下面我就简单介绍一下。
Linux 常用命令
文件操作命令
学习优先级最高,Linux 中“一切皆文件”。
pwd:显示当前所在目录
ls:查看目录下的文件
mkdir:创建目录
cd:切换当前目录
mv:移动文件或目录
cp:复制文件或目录
rm:删除文件或目录
zip:压缩文件
unzip:解压文件
系统信息命令
后端开发重点,可使用这些命令进行系统状态和异常分析。
top:查看进程及资源占用情况
ps:查看进程信息
free:查看内存占用情况
df:查看磁盘占用情况
ifconfig:查看网络接口信息
netstat:查看网络状态信息,这对于排查网络/系统层面的问题非常有用。
文件查看命令
后端开发重点,可使用这些命令快速定位项目日志中的异常信息。
cat:查看文件内容
head:查看文件开头内容
tail:查看文件末尾内容
grep、sed、awk 三剑客:灵活查找和处理文件内容
用户权限命令
一般是给 Linux 运维(管理员)使用。
useradd:添加用户
userdel:删除用户
chmod:修改文件或目录权限
chown:修改文件或目录所有者
“当然,以上只是 部分 常用命令。”我补充道,“Linux 生态里还有很多实用的第三方工具和命令,感兴趣的话可以自己去探索。”
“谢谢哥!我这就去学命令,背单词我最在行了!”小阿巴信心满满。

我赶紧提醒他:“记住,学 Linux 命令千万别死记硬背!把每个命令都敲几遍,留个大概印象就行。以后在部署项目的过程中多操作,自然就熟悉了。我们在工作中也不会刻意去背,如果忘了某个命令的用法,直接用 命令 --help 快速查看帮助文档,或者去 Linux 命令大全网站查一下就好,比如 https://www.linuxcool.com/。”
“明白了!谢谢哥,我刚刚查到一个命令:rm -rf /*,这就去试试!”小阿巴的语气里透露着一丝跃跃欲试。
“快住手!那个不能随便试!!!”我赶紧制止。

希望这个小插曲能让大家在轻松的氛围中对 Linux 服务器和命令行操作有个初步的认识。学习是一个循序渐进的过程,尤其是对于后端 & 架构开发而言,扎实的系统基础至关重要。多动手实践,遇到问题勤于搜索和思考,才是快速成长的正确姿势。