![我怎样才能使用自己的 shell 作为登录 shell?](https://linux22.com/image/870577/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E4%BD%BF%E7%94%A8%E8%87%AA%E5%B7%B1%E7%9A%84%20shell%20%E4%BD%9C%E4%B8%BA%E7%99%BB%E5%BD%95%20shell%EF%BC%9F.png)
假设我有一个名为的迷你 shell,minish
它仅提供cd
、、、等。保存在 中。它可以从其他 shell ls
(例如 )中调用 来rm
使用。它运行良好。mkdir
minish
~/Desktop/Shell
bash
~/Desktop/Shell/minish
但是为了将其用作登录 shell,我~/Desktop/Shell/minish
在底部添加了/etc/shells
并执行chsh
并输入~/Desktop/Shell/minish
,但它说minish
这是一个无效的 shell。
我猜测这个错误有两种可能性:
- 因为
minish
不在/bin
因为其他 shell 都在/bin
。 - 因为要被称为壳,所以不是任何可执行文件都不能是壳,我的
minish
也一样。
如果是第二种情况,那么需要满足哪些条件或必要条件,如何chsh
检查这些条件?还是有其他原因?
谢谢。
答案1
您~/Desktop/Shell/minish
逐字逐句地输入/etc/shells
; 的扩展~
是 shell 功能,可能不受解析 的任何应用程序的支持/etc/shells
,因为它不知道~
应该引用谁的主目录。相反,您需要使用完整路径名,例如/home/analysis/Desktop/Shell/minish
。