:%s#/bin/bash#/sbin/nologin#g为什么nlogin后面需要加上#g
时间: 2023-08-07 10:03:49 浏览: 146
在Vim中,`:%s#/bin/bash#/sbin/nologin#g`是进行全局替换的命令。其中的`%`表示全局范围,`s`表示替换操作,`/bin/bash`是要搜索的内容,`/sbin/nologin`是要替换的内容。
末尾的`g`是用来指定替换标志,它代表全局替换。如果不加`g`,则只会替换每行中第一个匹配到的内容,而加上`g`之后,会替换每行中所有匹配到的内容。
在你的例子中,使用`#`作为分隔符,将`/bin/bash`替换为`/sbin/nologin`。末尾的`g`表示全局替换,即将每行中所有匹配到的`/bin/bash`都替换为`/sbin/nologin`。
所以,加上`g`标志是为了确保进行全局替换,而不仅仅替换每行中第一个匹配项。
相关问题
%s#/bin/bash#/sbin/nologin#g为何要加#号
在Vim中进行搜索和替换时,你可以使用不同的字符作为分隔符,通常是斜杠(`/`)。然而,如果你要替换的字符串本身包含斜杠,则斜杠将会与搜索和替换的分隔符混淆,从而导致命令无法正确执行。为了避免这种混淆,可以选择其他字符作为分隔符,例如井号(`#`)。
在这个例子中,我们将`/bin/bash`替换为`/sbin/nologin`,而这两个字符串本身都包含了斜杠。因此,我们使用井号作为分隔符,这样就可以避免混淆。具体命令为:
```
:%s#/bin/bash#/sbin/nologin#g
```
使用井号作为分隔符是一种常见的选择,但你也可以选择其他字符作为分隔符,只需确保该字符在搜索和替换的字符串中没有出现即可。
解析root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/
这是Linux中的/etc/passwd文件中的一部分内容,每一行代表一个用户账户。其中:
- root:x:0:0:root:/root:/bin/bash表示root用户的账户信息,包括用户名、用户ID、组ID、用户描述、家目录和默认shell。
- daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin表示daemon用户的账户信息,包括用户名、用户ID、组ID、用户描述、家目录和默认shell。
- bin:x:2:2:bin:/bin:/表示bin用户的账户信息,包括用户名、用户ID、组ID、用户描述、家目录和默认shell。
其中,x表示密码已经被加密存储在了/etc/shadow文件中,不会在/etc/passwd文件中显示。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)