如何编辑 /proc 中可以用 cat 查看但不能用鼠标垫和 abiword 编辑的文件?

Rel*_*der 3 proc cat

正如问题所说,我需要编辑我的/proc/acpi/wakeup文件,但是当我用任何文本编辑器打开它时,它显示空白文件。cat另一方面,命令在终端中显示正确的文件内容。当我在文件管理器中导航到该文件时,它说它的大小为 0 字节。我正在使用 Xubuntu 15.04。我彻底糊涂了。

mur*_*uru 6

/proc联机帮助页内核文档)是一个虚拟文件系统(按原样/sys-内核文档)。中的文件/proc不是真正的文件,而是从内核访问信息和设置的方法。您不应使用编辑器编辑 中的文件/proc,而应直接写入这些文件:

sudo sh -c 'echo foo > /proc/some/file'
echo foo | sudo tee /proc/some/file
Run Code Online (Sandbox Code Playgroud)

当您尝试从中读取或写入时,内核会在内部将操作转换为系统调用并执行正确的操作。一些编辑器仍然可以查看内容(例如,尝试使用 Vim),但写入内容则是另一回事。


对于特殊类型的文件/proc/sys内核文档Arch Wiki)中的文件,还有另一种选择。/etc/sysctl.conf您可以使用和中的配置文件/etc/sysctl.d/*.conf对其值进行永久更改。可以使用这些文件之一中的/proc/sys/foo/bar密钥来设置文件。foo.bar

例如,/proc/sys/vm/swappiness可以通过添加包含来设置/etc/sysctl.d/90-swappiness.conf

vm.swappiness = 10
Run Code Online (Sandbox Code Playgroud)

并运行:

service procps start
Run Code Online (Sandbox Code Playgroud)

您还可以直接使用以下命令进行一次性更改(下次重新启动后将无法保留)sysctl

sudo sysctl -w vm.swappiness=10
Run Code Online (Sandbox Code Playgroud)