如何在/ proc中编辑可以用cat查看的文件,但是不能用mousepad和abiword编辑?

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

/proc ( manpage , kernel docs )是一个虚拟文件系统(和/sys – kernel docs一样 )。 /proc中的文件不是真实文件,而是从内核访问信息和设置的方法。 您不应该使用编辑器编辑/proc文件,而是直接写入这些文件:

 sudo sh -c 'echo foo > /proc/some/file' echo foo | sudo tee /proc/some/file 

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


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

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

 vm.swappiness = 10 

并运行:

 service procps start 

您还可以直接使用sysctl命令进行一次性更改(在下次重新引导时无法生效):

 sudo systecl -w vm.swappiness = 10 
Interesting Posts