我尝试将我的默认 shell 更改为我自己的 shell opsh
(The Open Shell),但它不起作用:
$ echo $0
bash
developer@1604:~$ echo $SHELL
/bin/opsh
developer@1604:~$ chsh -s /bin/opsh
Password:
chsh: /bin/opsh is an invalid shell
developer@1604:~$ more /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/fish
/bin/ksh93
/bin/rksh93
/bin/zsh
/usr/bin/zsh
/bin/mksh
/bin/mksh-static
/bin/opsh
/usr/bin/opsh
我实际上可以将我的 shell 执行为 /bin/opsh
$ /bin/opsh
$ echo $0
/bin/opsh
$ uname -a|grep Linux
Linux 1604 4.4.0-77-generic #98-Ubuntu SMP Wed Apr 26 08:34:02 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$
你的 shell 二进制文件的实际路径显然是
但是您将其添加
/etc/shells
为(您也可以将名称更改为
oopsh
... ;-))