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


20

如何列出可供命令行使用的外壳程序?


(IFS=: && grep -rl tcsetpgrp $PATH | xargs grep -rl setrlimit)在Debian系统上似乎提供了一个很好的近似值。
斯特凡Chazelas

在Fedora 20上,它返回 /bin/bash /bin/crash /bin/gdb(和的符号链接/usr/bin)。
Cristian Ciupitu 2014年

Answers:


30

要列出可用的有效登录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的信息,请访问Wikipedia


请注意,这不适用于所有系统。例如,默认情况下,Solaris和HP-UX没有/ etc / shells文件。
沃里克

为什么我有/bin/true/bin/false在此列表中?
伯恩哈德2014年

2
@bernhard -还有就是/斌/真和/斌/假这里一个很好的解释链接
沃里克

6

您也可以使用“ chsh -l 这将打印外壳列表”。

例子:-

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

3
对我来说chsh: invalid option -- 'l'
Pandya

@Pandya是否可以提供您正在使用的完整命令。您可能将其与其他shell方法或类似((...))或[...]或[[...]]之类的结构结合使用
Anurag Anand



@Pandya man7.org/linux/man-pages/man1/chsh.1.html 这提供了-l选项。只需单击页面顶部的链接,即可转到linux-util手册页
Anurag Anand

2

至少在OpenBSD和NetBSD上:

$ getent shells

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

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

在Solaris上,该文件/etc/shells可能不存在。有效外壳列表包含在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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.