我不明白为什么以下sed命令包含@符号:
sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
我看了/etc/pam.d/sshd这个命令的前/后效果:
之前:
... # Set the loginuid process attribute. session required pam_loginuid.so ...
后:
... # Set the loginuid process attribute. session optional pam_loginuid.so ....
@符号可能是正则表达式或sed语法的一部分吗?
在这上面找不到任何doco.
注意:上面的sed命令实际上是教程中Dockerfile RUN命令的一部分:
https://docs.docker.com/examples/running_ssh_service/
解决方法
这些是正则表达式和替换字符串的备用分隔符.当你的正则表达式或替换字符串包含’/’时很方便.