如何通过命令行查找可用 shell 列表?

如何通过命令行查找可用 shell 列表?

如何列出可供命令行使用的可用 shell?

答案1

要列出当时可用的有效登录 shell,请键入以下命令:

cat /etc/shells

例子:

pandya@pandya-desktop:~$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/ksh93

有关 shell 的信息,请访问维基百科

答案2

您还可以使用 chsh -l 这将打印 shell 列表。

例子 :-

[anurag@focused ~]$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin

答案3

至少在 OpenBSD 和 NetBSD 上:

$ getent shells

在 (Ubuntu) Linux 和许多其他 Unice(包括 BSD)上:

$ grep '^[^#]' /etc/shells

在 Solaris 上,该文件/etc/shells可能不存在。有效 shell 的列表包含在shells(4)手册中。在我的普通 Solaris 11.3 系统上,列出了以下 shell:

/bin/bash         /usr/bin/bash     /bin/pfbash   /usr/bin/pfbash
/bin/csh          /usr/bin/csh      /bin/pfcsh    /usr/bin/pfcsh
/bin/jsh          /usr/bin/jsh      /sbin/jsh     /usr/sbin/jsh
/bin/ksh          /usr/bin/ksh      /bin/pfksh    /usr/bin/pfksh
/bin/ksh93        /usr/bin/ksh93    /bin/pfksh93  /usr/bin/pfksh93
/bin/sh           /usr/bin/sh       /bin/pfsh     /usr/bin/pfsh
/bin/tcsh         /usr/bin/tcsh     /bin/pftcsh   /usr/bin/pftcsh
/sbin/sh          /usr/xpg4/bin/sh  /sbin/pfsh    /usr/xp4/bin/pfsh
/bin/zsh          /usr/bin/zsh      /bin/pfzsh    /usr/bin/pfzsh
/usr/sfw/bin/zsh

值得注意的是,在我的安装中,既不/usr/sfw/bin/zsh也不/usr/xp4/bin/pfsh存在......

有效 Solaris shell 的简短列表(已删除每个 shell 的重复项):

/bin/bash       /bin/ksh        /bin/pfcsh      /bin/pfsh       /bin/sh
/bin/csh        /bin/ksh93      /bin/pfksh      /bin/pftcsh     /bin/tcsh
/bin/jsh        /bin/pfbash     /bin/pfksh93    /bin/pfzsh      /bin/zsh

答案4

如果你想深入研究/etc/passwd,你可以这样做:

cut -d ':' -f 7 /etc/passwd | sort -u

H/T @schrodigerscatcuriosity 在https://unix.stackexchange.com/a/631346/40454

相关内容