linux管道命令sudo,Linux命令echo 与 sudo配合使用
眾所周知,在Linux使用 echo 并配合命令重定向是實(shí)現(xiàn)向文件中寫入信息的快捷方式。本文介紹如何將 echo 命令與 sudo 命令配合使用,實(shí)現(xiàn)向那些只有系統(tǒng)管理員才有權(quán)限操作的文件中寫入信息。
比如要向 test.asc 文件中隨便寫入點(diǎn)內(nèi)容,可以:
$ echo "信息" > test.asc
# 或者
$ echo "信息" >> test.asc
下面,如果將 test.asc 權(quán)限設(shè)置為只有 root 用戶才有權(quán)限進(jìn)行寫操作:
$ sudo chown root.root test.asc
然后,我們使用 sudo 并配合 echo 命令再次向修改權(quán)限之后的 test.asc 文件中寫入信息:
$ sudo echo "又一行信息" >> test.asc
-bash: test.asc: Permission denied
這時(shí),可以看到 bash 拒絕這么做,說是權(quán)限不夠。這是因?yàn)橹囟ㄏ蚍?hào) “>” 和 ">>" 也是 bash 的命令。我們使用 sudo 只是讓 echo 命令具有了 root 權(quán)限,但是沒有讓 “>” 和 ">>" 命令也具有 root 權(quán)限,所以 bash 會(huì)認(rèn)為這兩個(gè)命令都沒有像 test.asc 文件寫入信息的權(quán)限。
解決這一問題的途徑有兩種。第一種是利用 "sh -c" 命令,它可以讓 bash 將一個(gè)字串作為完整的命令來執(zhí)行,這樣就可以將 sudo 的影響范圍擴(kuò)展到整條命令。具體用法如下:
$ sudo sh -c 'echo "又一行信息" >> test.asc'
另一種方法是利用管道和 tee 命令,該命令可以從標(biāo)準(zhǔn)輸入中讀入信息并將其寫入標(biāo)準(zhǔn)輸出或文件中,具體用法如下:
$ echo "第三條信息" | sudo tee -a test.asc
注意,tee 命令的 "-a" 選項(xiàng)的作用等同于 ">>" 命令,如果去除該選項(xiàng),那么 tee 命令的作用就等同于 ">" 命令。
總結(jié)
以上是生活随笔為你收集整理的linux管道命令sudo,Linux命令echo 与 sudo配合使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Docker搭建主从数据库(MySQ
- 下一篇: 灰白极简风扁平化广告策划PPT模板