ACK*_*low 3 debian bash shell man dash-shell
在Debian上挤。运行ps -p $$showbash是我当前的 shell,ls -l $(which sh)showssh是到bash. 那么,为什么当我运行时man sh,我会得到 的手册页dash?这只是 Debian 中的一个错误吗?
系统默认 shell 与您的用户 shell 不同。在我的系统上,dash是系统默认值,但我bash在登录时使用:
anthony@Zia:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Mar 1 2012 /bin/sh -> dash
Run Code Online (Sandbox Code Playgroud)
因此,带有#!/bin/shup top的 shell 脚本使用 dash 运行。
听起来您的系统不知何故有一半,其中 /bin/sh 符号链接和联机帮助页符号链接不同步。我系统上的联机帮助页符号链接是:
anthony@Zia:~$ ls -l /usr/share/man/man1/sh.1.gz
lrwxrwxrwx 1 root root 9 Mar 1 2012 /usr/share/man/man1/sh.1.gz -> dash.1.gz
Run Code Online (Sandbox Code Playgroud)
如果您手动更改了 /bin/sh 之一,您也必须更改那个。处理这些符号链接也可能存在错误;mpy 指出了错误 #662159。
每个用户都有一个设置,用于在登录时调用哪个 shell。这是每个用户的设置,存储在 中/etc/passwd,因此系统范围的联机帮助页无法反映它。每个用户都可以通过运行更改他/她的 shell 设置chsh(当然,root 可以更改其他用户的 shell 设置)。
还有一个SHELL环境变量,它在登录时设置,但可以更改。通常,它会在/etc/passwd例如xterm需要启动 shell时覆盖 shell 字段。
| 归档时间: |
|
| 查看次数: |
3983 次 |
| 最近记录: |