コマンドラインで利用可能なシェルのリストを見つける方法は?


20

コマンドラインで使用するために利用可能なシェルをリストする方法は?


(IFS=: && grep -rl tcsetpgrp $PATH | xargs grep -rl setrlimit)Debianシステムでは、これはおおよその目安になりそうです。
ステファンシャゼル14

Fedora 20では戻ります /bin/bash /bin/crash /bin/gdb(およびからのシンボリックリンク/usr/bin)。
クリスティアン・Ciupitu 14

回答:


30

使用可能な有効なログインシェルを一覧表示するには、次のコマンドを入力します。

cat /etc/shells

例:

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

シェルの詳細については、ウィキペディアをご覧ください。


これはすべてのシステムで機能するわけではないことに注意してください。たとえば、SolarisおよびHP-UXにはデフォルトで/ etc / shellsファイルがありません。
ワーウィック14

なぜ私が持っていない/bin/true/bin/false、このリストにありますか?
ベルンハルト14

2
@bernhard-/ bin / trueおよび/ bin / falseの適切な説明がありますリンク
Warwick 14

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 man7.org/linux/man-pages/man1/chsh.1.html これは-lオプションを提供します。linux-utilのmanページに移動するには、ページの上部にあるリンクをするだけをクリックしてください
アヌラッグ・アナンド

2

少なくともOpenBSDおよびNetBSD:

$ getent shells

(Ubuntu)Linuxおよび他の多くのUnices(BSDを含む):

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

Solarisでは、ファイル/etc/shellsが存在しない場合があります。有効なシェルのリストはshells(4)マニュアルに含まれています。私の通常のSolaris 11.3システムでは、次のシェルがリストされます。

/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シェルの短いリスト(各シェルの重複を削除):

/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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.