コマンドラインシェル
関連記事
Wikipedia より:
- Unix シェルは、UNIX オペレーティングシステムおよび Unix 系システムの従来からのユーザインタフェースを提供するコマンドラインインタプリタまたはシェルである。コマンドラインインタプリタに文字列の形でコマンドを入力することでコンピュータを直接操作したり、そのようなコマンドを並べたスクリプトを書いて実行させたりするのに使われる。
シェル一覧
シェル | 補完 & 履歴 | POSIX 準拠 |
---|---|---|
Bash | Yes | Yes (--posix )
|
C shell | Yes | No |
DASH | No | Yes |
fish | Yes | No |
mksh | Yes | Yes (-o posix )
|
rc | No | No |
zsh | Yes | Yes (--emulate sh )
|
- Bash — GNU のオペレーティングシステムで使われるシェル、もしくはコマンド言語インタプリタ。Bash は Korn shell (ksh) や C shell (csh) から便利な機能を集めた sh 互換のシェルです。IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools 標準を満たすことを目的にしています。プログラミングとインタラクティブ、両面で sh よりも機能的な改善がなされています。さらに、Bash では sh スクリプトのほとんどを修正を加えずに動かすことが可能です。
- C shell — 対話式のログインシェルとしてもシェル言語コマンドプロセッサとしても使うことが出来るコマンド言語インタプリタ。コマンドラインエディタ、プログラマブルな単語補完、スペル訂正、履歴機構、ジョブ操作、C ライクな構文を持っています。
- DASH — 可能な限り小さくなるように作られた POSIX 互換の
/bin/sh
の実装です。なるべく速度を犠牲にしないように作られています。実際に、ほとんどの処理で Bash (GNU Bourne-Again SHell) よりも高速に動きます。
- Elvish — 近代的かつ表現豊かなシェルで、内部構造の値をパイプラインで渡すことができます。この機能によって複雑なテキスト処理のコードを書かなくてすみます。表現的なプログラミング言語を備えており、例外・名前空間・匿名関数などが使えます。タイピング中に構文をチェックする強力な readline を装備しており、デフォルトでシンタックスハイライトが効きます。
- https://elvish.io || elvishAUR
- fish — スマートでユーザーフレンドリなコマンドラインシェル。OS X や Linux などに対応。Fish にはフルカラーのコマンドライン・シンタックスハイライトがあり、コマンドとその引数、既存のファイルや履歴のハイライトそして補完をすることができます。履歴やコマンドの補完候補の表示もサポート。Fish はシステムの man ページを解析してコマンドの正しい引数を調べることにより、コマンドのハイライトと補完を可能にしています。Alt-Up を使うことで最後に実行したコマンドの変更を簡単に行うことが出来ます。fish デーモン (fishd) は fish の全てのインスタンス間で、履歴や環境変数を同期します。
- Korn shell — KornShell 言語は AT&T ベル研究所の David G. Korn によって設計・開発されました。様々なコンピューター・ワークステーションから UNIX などのシステムにアクセスすることができるインタラクティブなコマンド言語です。また、KornShell 言語はアプリケーションを書くのに使える完全でパワフルな高級プログラミング言語でもあり、多くの場合、他の高級言語よりも簡単で高速です。このため特にプロトタイピングに適しています。他に広く使われているシェルとして、AT&T ベル研究所の Steven Bourne によって開発された Bourne シェルと、カリフォルニア大学の Bill Joy によって開発された C シェルという2つのシェルがあります。ksh はその2つのシェルの一番良い所を取り、新しい機能を数多く追加しました。そのため、システムとの対話とプログラミングの両方で ksh はあなたの作業の生産性と質を高めることができます。ksh のプログラムは簡単に書くことができ、C などの低級言語で書かれたプログラムよりも簡潔で読みやすいものになります。
- http://www.kornshell.com || 記事を参照
- Nash — Plan 9 の rc の影響を受けているシステムシェル。オペレーティングシステム (Linux や Plan 9) の名前空間を活用して読みやすく安全なスクリプトを簡単に作成できます。
- Oh — Go で書かれた Unix シェル。他の Unix シェルと同じような精神を持っていますが細かい所は異なっています。Oh はシェルの対話機能を犠牲にすることなくシェルのプログラミング言語機能を拡張しています。
- Powershell — PowerShell は元は Windows 専用に作られた、オブジェクト指向言語でありインタラクティブなコマンドラインシェルです。後になって、オープンソース化されて macOS や Linux に移植されました。
- rc — Plan 9 のコマンドインタプリタで UNIX の Bourne シェルと同じような機能を提供します。細かい追加がなされ構文はもっと一般的になっています。
- xonsh — python インタプリタがベースの後方互換なシェル。
- Zsh — インタラクティブな利用のために作られたシェルですが、パワフルなスクリプト言語でもあります。Bash, ksh, tcsh の便利な機能の多くが Zsh に組み入れられており、オリジナルの機能も多数追加されています。入門ドキュメント に Zsh のユニークな機能の説明があります。
デフォルトシェルを変更する
上記のシェルをインストールした後、実行ファイルを起動すると、今使っているシェルの中でインストールしたシェルが起動します。ログイン時にインストールしたシェルが起動するようにしたい場合、デフォルトシェルを変更する必要があります。
インストールされているシェルを確認するには、次を実行:
$ chsh -l
デフォルトシェルを設定するには次を実行 (chsh -l
で確認できる、フルパスを指定するようにしてください):
$ chsh -s full-path-to-shell
上記コマンドを実行してからログアウト・ログインすると、指定したシェルが開くはずです。
設定ファイル
ログイン時にコンソールでプログラムを自動起動させたい場合、シェルのスタートアップファイル・ディレクトリを使用することができます。シェルのドキュメントや ArchWiki の記事を見てください (例: Bash#設定ファイルや Zsh#設定ファイル)。
Wikipedia:Unix shell#Configuration files も参照。
/etc/profile
ログイン時に Bourne 互換のシェルは /etc/profile
を読み込み、それから /etc/profile.d/
の *.sh
ファイルを全て読み込みます。これらのスクリプトはインタプリタのディレクティブを必要とせず、実行可能属性を付与する必要もありません。環境やアプリケーション個別の設定を定義するのに使用します。
参照
- IBM developerWorks の Linux におけるシェルの進化
- terminal.sexy — ターミナルカラースキームデザイナ
- Hyperpolyglot — シェル構文の比較
- UNIX Power Tools — 一般的なコマンドラインツールの使用方法
- commandlinefu.com — コマンドラインスニペットの共有
- アプリケーション一覧/ユーティリティ#ターミナルエミュレータ