帮酷LOGO
0 0 评论
文章标签:文件  GRUB  SED  


問題:

我不熟悉使用sed,但是,很快就學會了,很喜歡它,因為它具有自動化的一般靈活性。 我希望每次部署新系統時都運行帶有各種安全控制項的腳本,其中一部分需要我鎖定 GRUB, 我想從GRUB菜單中解鎖一般的Ubuntu選項,這樣任何人都可以在沒有密碼的情況下使用它,同時保持其他所有密碼保護。

也就是說,我希望在/boot/grub/grub.cfg文件中搜索特定行,並且將--unrestricted添加到該選項 。 (我們只使用 16.04.03,所以,在理論上所有系統在安裝時都有相同的文件),

文件中的行為:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2aa7ed2c-67a7-42d5-84fb-0ddab74c5dd0' {

我想讓它看起來像:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-simple-2aa7ed2c-67a7-42d5-84fb-0ddab74c5dd0' {

我知道sed-i用於就地編輯和s應該搜索 。 但除此之外,我在語法上迷失了,以使它實際上做我們需要的。 據我所知,--unrestricted的定位是必要的,因為我相信如果我們不必進行如此長時間的搜索會更容易,但是,我又是sed新手,並且不確定 。 有人可以幫我這個sed插入嗎? 最好還向我解釋為什麼不同的語法會在哪裡,這樣,我就可以知道未來要改什麼。


回答 1:

這是命令。

sed -i"s/--class os/--class os --unrestricted/" filename

這將在不需要臨時文件的情況下替換文件中的行,因為-i選項。

如果"--unrestricted"在行中的位置不重要,這可能更簡單。

sed -i"s/'Ubuntu'/'Ubuntu' --unrestircted/" filename

回答 2:

sudo sed -i s'/--class os $menu/--class os --unrestricted $menu/'/etc/default/grub

"$"轉義"$"符號,這樣它就不會錯誤inprepreted,而且我指定一個更長的字元串,這樣如果命令執行兩次你就不會得到兩次插入 。




文章标签:文件  GRUB  SED  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语