Answers:
su
在大多数Unix系统上可用,并且应该可以工作:
su root -c 'echo "add this line to the code" >> fileName'
你可以使用tee
同sudo
:
echo "add this line to the code" | sudo tee -a filename > /dev/null
echo
的输出使用|
(管道)重定向到sudo tee
。
在这种情况下,tee
从标准输入读取并将任何给定文件写入标准输出filename
。-a
(或--append
)将tee
附加到文件,否则将覆盖文件。与tee
运行一样,sudo
它打开具有root权限的文件。最后,将输出> /dev/null
抑制tee
为标准输出。
使用tee
而不是仅使用su -c
或重定向开始整个命令(包括重定向)的一个优点sudo sh -c
是,您不必以任何方式更改初始命令的引号(有时,已经包含引号的行可能会变得很丑陋)。
会做到的:
ssh host "sudo su root -c 'echo "add this line to the code" >> /etc/hosts'"
ssh
呢 您不需要su
,sudo
也不需要指定,root
因为它是默认值。总而言之,OP希望学习一些东西,而不仅仅是解决问题,因此更多的解释会更好。
sudo
,密码似乎没有被缓存su
。