可能重复:
sudo 和重定向输出
这些是powertop给出的节能建议:
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
echo 1 > /sys/module/snd_hda_intel/parameters/power_save
Run Code Online (Sandbox Code Playgroud)
但是,即使作为 sudo,我也无法从终端执行它们。想法?
enz*_*tib 15
您的命令不起作用,因为重定向> file是在执行命令之前由当前 shell 完成的,所以在 sudo 生效之前。
有一个名为 的命令,tee可以将它在标准输入上接收到的内容写入文件和标准输出:这对于在没有重定向的情况下向文件写入内容非常方便。如果文件只能由 root 修改,则sudo在tee.
echo 1500 | sudo tee /proc/sys/vm/dirty_writeback_centisecs
Run Code Online (Sandbox Code Playgroud)
获得所需结果的另一种方法是保持重定向,将重定向移动到由 root 执行的子 shell,通过sudo:
sudo sh -c 'echo 1500 > /proc/sys/vm/dirty_writeback_centisecs'
Run Code Online (Sandbox Code Playgroud)
最后,您可以通过各种方式进入 root shell,并且在您exit明确使用该 shell之前,您将保持 root身份:
sudo su
sudo -s
sudo bash
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅 的手册页sudo,su当然还有bash。
您可以使用 和 的配置文件,而不是像@Seppo Erviälä所描述的那样创建用于设置值的 cronjob 。procpssysfsutils
的值/proc/sys可以在文件中设置/etc/sysctl.conf。要echo 1500 > /proc/sys/vm/dirty_writeback_centisecs持久化,请添加一行:
vm.dirty_writeback_centisecs = 1500
Run Code Online (Sandbox Code Playgroud)
要将更改加载/etc/sysctl.conf到当前会话中,请运行:
sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)
需要安装/sys包中的设置值sysfsutils。配置文件位于/etc/sysfs.conf. 要echo 1 > /sys/module/snd_hda_intel/parameters/power_save持久化,请添加一行:
module/snd_hda_intel/parameters/power_save = 1
Run Code Online (Sandbox Code Playgroud)
要将值应用/etc/sysfs.conf到当前会话,请运行:
sudo /etc/init.d/sysfsutils restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3047 次 |
| 最近记录: |