公众号旧文

为什么学 Linux 最重要的不是敲命令?

作者:胖子阅读 —

你是不是在刚接触 Linux 时,也和之前的我一样,背命令?

网上的教程,也大多是《Linux 常用命令》、《运维必备命令大全》。

但当学了一段时间后。

我发现自己虽然会敲命令了,却还是不知道 Linux 到底是什么。

直到最近,我换了一个思路。

既然 Linux 号称万物皆文件。

那我为什么不直接从文件开始学?

于是我开始看 Linux 的各个目录。

终于意识到,之前学的那些命令只是工具。

Linux 真正的本体,是下面的这些文件。

一、Linux 像一座城市

Windows 里很多东西都被 GUI 藏起来了。

你知道有开始菜单,但你未必知道程序放在哪里。

而 Linux 不一样,Linux 像一座摊开的城市。

你一层层往下看,会发现整个操作系统,几乎都暴露在文件系统里。

比如:

/bin

这里放的是最基础的命令。

像:

ls
cp
rm
cat

本质上,你每敲一次命令,都只是执行了对应的一个文件。

二、配置文件真的就是文件

后来我又看到了:

/etc

这里几乎全是配置文件。

比如:

/etc/hosts
/etc/passwd
/etc/nginx/nginx.conf

我以前一直觉得系统配置应该是用的数据库,而 Linux 直接用文本文件。

甚至很多服务,本质上就是启动时读取配置文件,改配置,就是改文本。

三、最震撼的是 /proc

后来我又发现了一个特别的目录:

/proc

这里面居然有:

/proc/cpuinfo
/proc/meminfo

CPU 信息、内存信息,为什么会是文件?

原来这里很多东西,根本不在硬盘上。

而是 Linux 内核实时生成的。

也就是说,你看到的文件,是系统当前状态。

这一刻,我才真正理解万物皆文件并不是一句玩笑。

四、Linux 连硬件都能当文件

接着我又看到了:

/dev

这里更抽象。

里面全是:

/dev/sda
/dev/null
/dev/tty

Linux 甚至把硬盘、终端、键盘,都抽象成了文件。

比如:

/dev/sda

可能就是你的整个硬盘。

而:

/dev/null

则是著名的黑洞。

你往里面写什么,都会消失。

此时我突然意识到,Linux 的核心思想是:

把不同的东西,统一成文件这种接口。

五、我终于明白了为什么 Linux 这么自由

Linux 的很多神奇操作,都和这种设计有关。

比如程序正在运行时,你可以直接删除程序文件。

因为真正运行的,很多时候已经是内存里的进程。

磁盘上的文件,只是启动材料。

再比如很多日志,本质也只是文本文件:

/var/log

你可以:

cat
grep
tail

分析整个系统。

六、学 Linux 最重要的事情

可能不是先背命令,而是先建立地图感。

知道:

  • /bin 放什么
  • /etc 放什么
  • /proc 是什么
  • /dev 是什么
  • /var/log 为什么重要

因为当你真正理解这些目录之后,很多命令会不学自通。

你会从此意识到 Linux 不是黑盒,而是把一切都摊开放在你面前的系统。