免费命令输出:gentoo (redhat?) vs debian

Pet*_*etr 4 linux command-line memory utilities

我注意到 free 命令的输出之间存在差异:

在 debian 上:

$ free -h
             total       used       free     shared    buffers     cached
Mem:          4.0G       3.4G       629M         0B        96K       1.3G
-/+ buffers/cache:       2.1G       2.0G
Swap:         4.0G       1.1G       2.9G
Run Code Online (Sandbox Code Playgroud)

在gentoo上:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        3.7G        9.6G        485M        2.2G         11G
Swap:          8.8G        2.6G        6.2G
Run Code Online (Sandbox Code Playgroud)

Redhat(至少 7.x)似乎与 gentoo 具有相同的输出。这是为什么?是否也可以在 gentoo/redhat 系统上显示 debian 风格的输出?两个发行版都使用不同的 gnu coreutils 吗?

Ste*_*itt 6

free由提供procps-ng;Debian的8具有版本3.3.9,它使用旧风格单独的线buffers/cache,而Gentoo和RHEL大概7 X具有版本3.3.10或更高版本,其采用了全新的风格。您可以在相应的提交消息中看到更改背后的原因。

如果您真的想要旧样式的输出,您可以运行旧版本的procps,但您会发现默认情况下发行版将迁移到较新的样式。较新的样式还提供了可用内存量,这是一条非常有用的信息(有关详细信息,请参阅如何可移植地跨发行版获取可用内存量?)。

有点令人困惑的是,版本 3.3.9 将没有该buffers/cache行的格式称为“旧格式”,您可以在该版本中看到它带有free -o. 所以都说:

(这一切都在同一个系统上;请注意,使用更高版本的会计更准确。)