Léo*_* 준영 3 bash root debian su autocomplete
我有一个默认的 Debian 8.1 安装。我愿意
su
man apt<TAB>
Run Code Online (Sandbox Code Playgroud)
但什么也得不到。当我man apt-get
以两种模式编写时,我确实看到了手册:作为用户 mas 和作为 root。但是,选项卡完成仅适用于用户模式。
如何在 root 后启用表完成?为什么默认情况下禁用此功能?
运行会su
在非登录模式下调用 bash。然后 Bash 读取.bashrc
以配置其环境。
运行su -
调用 bash 作为登录 shell。/etc/profile
如果存在,则在此模式下执行。Bash 还搜索~/.bash_profile
,~/.bash_login
并~/.profile
执行它找到的第一个文件。虽然没有记录,但它似乎在~/.bashrc
这些都不存在时执行。
如果您得到不同的行为,很可能您使用不同的文件来初始化 bash,具体取决于它的调用方式。
我通过echo .bashrc
在现有文件的末尾添加类似的行来测试调用了哪个文件。这将显示调用了哪些配置。
bash
手册页的 INVOCATION 部分中有关于此行为的更多详细信息。
Tab 补全在 中可用,bash
但在中不可用sh
。 root
通常有sh
它的外壳,因为它bash
可能不可用。用户通常有bash
作为他们的外壳。
尝试bash
像root
尝试 tab-completion 之前一样运行。这应该启用选项卡完成。