表示方法すべてコマンドラインシェルがインストールされました(例bash
:zsh
など。)、重複もなく他にもありません(つまり、シェル以外のプログラムはありません)?このコードは私にとってほとんど効果的です。ルブンツシステム(、および)がありますが、dash
印刷はksh
できません。zsh
csh
yash
whiptail
yash
apropos shell | grep sh | \
sed 's/ .*//;s/.*/which &/e;/^\/bin\//!d;s/.*/realpath &/e;/^\/bin\//!d' | \
sort -u | xargs whatis
bash (1) - GNU Bourne-Again SHell
bsd-csh (1) - a shell (command interpreter) with C-like syntax
dash (1) - command interpreter (shell)
ksh93 (1) - KornShell, a command and programming language
lksh (1) - Legacy Korn shell built on mksh
mksh (1) - MirBSD Korn shell
whiptail (1) - display dialog boxes from shell scripts
zsh5 (1) - the Z shell
ベストアンサー1
FreeBSD、TrueOS/PC-BSD、DragonFly BSDなどから
リスト正式に認められたシェル、管理者がユーザーに権限の変更を許可するシェルログインシェルchsh
通常のファイルでコマンドと共に移動します/etc/shells
。シンプル
猫/背中/シェル承認されたシェルのリストが提供されます。
しかし、これは完全なリストではありません。インストール済みシェル。多くのサードパーティ製のシェル(AlmquistおよびTENEX Cシェルはオペレーティングシステム自体に付属しています)が/etc/shells
パッケージまたはポートからインストールされると自動的にインストールされますが、これは保証されず、もちろん管理者が変更して/etc/shells
シェルを持つことができます。インストール済みしかしこれではありません正式に認められた。
リストインストール済みしかし、殻を得ることは難しくありません。前述のように、AlmquistおよびTENEX Cシェルにはそれぞれ(別名)オペレーティングシステムが付属しています/bin/sh
。パッケージからインストールされたシェルのリストを追加します。 FreeBSDパッケージシステムでは、すべてのシェルはパッケージ階層領域にあるため、このツールを使用してインストールされているパッケージデータベースを照会するだけです。/bin/tcsh
/bin/csh
shells/
pkg
pkg クエリ "%o %n-%v %c" awk '/^shells\// {$1="";print $0;}'
shells/
Fish、rc、v7sh、heirloom-shなどがインストールされている場合はこれをキャッチしますが、bash-completionのように階層にありますが、それ自体はシェルではないパッケージに対していくつかの誤検出を生成します。
追加読書
OpenBSDから
OpenBSDはFreeBSD、TrueOSなどと同じです。いくつかの違いがあります。一人はまだ走っています。
猫/背中/シェル承認されたシェルのリストを見ると、まだ承認されたシェルとインストールされているシェルの間に違いがあります。
ただし、OpenBSDには、以前のパッケージマネージャとオペレーティングシステム自体に付属している他のシェルセットがあります。
OpenBSDでは、オペレーティングシステム自体にはKornシェル(具体的にはpdksh)とCシェル(TENEX Cシェルではありません)がそれぞれ/bin/sh
(別名/bin/ksh
)と/bin/csh
(いいえ/bin/tcsh
)が付属しています。
同様に、リストに追加されたサードパーティのシェルはshells/
パッケージ階層領域にあるため、インストールされているシェルを見つけるためのコマンドは次のとおりです。
pkg_info -P -A | pkg_info -P -A | grep '^シェル/'
sqlports パッケージがインストールされている場合は、sqlite3
SQL を使用して/usr/local/share/sqlports
データベースを照会して、インストール済みのシェル・パッケージを見つけることもできます。
追加読書
Debian、Ubuntuなどから
同様に、承認されたシェルのリストは次のように取得できます。
猫/背中/シェル繰り返しますが、これはインストールされているシェルのリストとは異なります。
DebianとUbuntuではすべてシェルはパッケージマネージャによって管理されます。 「オペレーティングシステムに付属の」シェルはありません。
同様に、すべてのシェルパッケージは簡単にタグ付けされます。 APT(Advanced Packaging Tool)は、BSDポート/パッケージの世界などの階層ではなく「セクション」の概念を持ち、シェルパッケージはセクションにありますShells
。
パッケージマネージャのデータベースを照会するためのさまざまなツールがあります。私はaptitude
ここを選択します。走る
能力検索「~i~sshells」
~i
()セクション~s
でインストールされている()パッケージを検索しますshells
。
これはaptitude
の「簡単な」検索構文です。 「実際の」検索構文は、'?installed ?section(shells)'
より多くの入力を必要とする構文です。さらに、コマンドラインオプションを使用してaptitude
各パッケージに関する追加情報を印刷できます。-F
考える
能力検索 -F '%p %v %t %d' '~i~sshells'例えば。