Linux命令之巧用sed进行内容替换

大家都知道在Linux中提供了近乎无数的强大命令,当然对文件的编辑来说VI/VIM想必是大家耳熟能详的最常用的命令了,但是很多情况下我们用他们都只是为了替换一些简单的内容,比如去掉某行前面的#啦,或者把某参数从no改为yes之类的事情,然后还得ESC -> : -> wq保存。

假设我在腾讯云开了个Ubuntu的虚拟主机,他只会给个名为ubuntu的账户。我得通过这个用户sudo passwd root设置root的密码,然后sudo vi /etc/ssh/sshd_config打开找到#PermitRootLogin prohibit-password然后Shift+i去掉前面的#并将prohibit-password改为yes然后!wq保存才能在ssh中使用root账户。

这个过程确实有些繁琐,这个时候就该我们的sed登场啦!sed命令是利用脚本来处理文本文件,可依照脚本的指令来处理、编辑文本文件,主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。在这里呢我主要用它的内容替换功能;格式:sed 's/要被取代的字串可以带空格/新的字串也可以带空格/g' file 言归正传,我们需要将/etc/ssh/sshd_config文件的#PermitRootLogin prohibit-password替换为PermitRootLogin yes的写法是:sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config 最后不要忘记sudo service sshd restart重启ssh服务。

# 设置root用户密码,需要手动输入两次
sudo passwd root

# 允许root用户远程ssh登录
sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
# 允许使用密码连接ssh服务
sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
# 重启ssh服务
sudo service sshd restart

关于sed的介绍就到这里啦!关于sed的其他用法大家可以自行学习,有什么有趣的事情记得告诉我哦!

未经允许不得转载:鹞之神乐 » Linux命令之巧用sed进行内容替换

赞 (0) 打赏

评论

4+3=

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏