ウェブサイト検索

Linuxでchshを使ってデフォルトシェルを変更する方法


Bashは良いですが、他のシェルはさらに優れています。Linuxマシンに新しいシェルをインストールして設定する方法を学びましょう。

シェルは、さまざまなプログラムやサービスとのインタラクションを行うために使用されるオペレーティングシステムの最外層として機能するプログラムです。ほとんどのLinuxディストリビューションは、デフォルトのシェルとしてbashを使用しています。ただし、希望する場合は、システムの別のシェルを選択することも自由です。

Bashの他に、Linuxはksh、zsh、csh、fishなどの他のシェルプログラムもサポートしています。これらのシェルのそれぞれには、bashや他のシェルとは異なるユニークな特性があります。

シェルについてもっと学び、デフォルトのLinuxシェルを変更する方法を見ていきましょう。

シェルとは何か、それが持つ重要性とは?

シェルとは、コマンドを使用してオペレーティングシステムのさまざまな要素を制御するためのコンピュータプログラムです。Linuxのターミナルを使用する際、基本的にはあなたとオペレーティングシステムの間にあるシェルと対話し、コマンドを実行するよう指示します。

ほとんどのLinuxシェルにはコマンドラインインターフェース(CLI)が付属しており、コマンド(およびその構文)に対する理解が必要です。シェルにコマンドを入力すると、システムパス内でそのコマンドに該当するプログラムを探して確認します。一致するものが見つかれば、コマンドを正常に実行し、出力が得られます。

要するに、シェルはオペレーティングシステムと通信するための強力で効率的な方法を提供します。

なぜデフォルトシェルを変更したいのですか?

一般的に言えば、Linuxや他のUnixベースのシステムで出会うほとんどのシェルは、ほとんど同じ機能を提供します。つまり、さまざまなシステム要素と便利に対話/制御することができます。

Bashは、ほとんどのLinuxディストリビューションに標準でインストールされている良い例です。しかし、zshのような他のシェルと比較すると、機能面では劣っています。

一方、Zshは自動補完、自動修正、自動cd、再帰的パス展開、プラグインサポートなどの多くの追加機能を備えており、bashや他のいくつかのシェルに対して優位性を持っています。

もちろん、これらはzshの利点のほんの一部に過ぎません。他のシェルもそれぞれ独自の機能や拡張を持っており、それらを使って作業する全体の体験をより簡単で便利にしています。

デフォルトのLinuxシェルを変更する方法

Linuxでデフォルトシェルを変更する方法はいくつかあります。このガイドでは、より信頼性が高く便利な方法であるchshユーティリティを使ってそのプロセスを説明します。

Chshは、Unixベースのオペレーティングシステム上のコマンドラインユーティリティで、デフォルトのシェルを変更することを可能にします。ほとんどすべてのLinuxディストリビューションにプリインストールされています。

使用するには、端末で使用したいシェルのパスを指定するだけで、残りのプロセスは自動的に処理されます。ただし、デフォルトのシェルを変更する前にいくつかのステップを踏む必要があります。

これらのステップの内訳です。

ステップ1: インストールされたシェルの特定

新しいシェルをインストールする前に、Linuxシステムにすでにあるシェルを確認することが重要です。これを行うには、ターミナルを開いて次のように入力します:

cat /etc/shells

新しいシェルをインストールしていない限り、出力は以下の添付画像のものに似ているはずです。

ステップ2:新しいシェルのインストール

システムにインストールされているシェルを特定したら、次のステップは新しいシェルをインストールすることです。この点において、Linuxにはさまざまなオプションがあり、それぞれに利点と欠点があります。したがって、あなたの好みやシェルで達成したいことに応じて、あなたの要件を満たすものを選ぶことができます。

このガイドでは、zshシェルのインストールと設定について説明します。以下のコマンドで「zsh」をお使いのシェル名に置き換えても構いません。

Debian系ディストリビューションにzshをインストールするには:

sudo apt install zsh

Arch Linuxでは、pacmanを使用してzshをインストールできます:

sudo pacman -Syu zsh

Fedora、CentOS、およびその他のRHELディストリビューションにzshをインストールするのは簡単です。

sudo dnf install zsh

インストールが完了したら、もう一度システムにインストールされたシェルを確認するために、以下のコマンドを実行してください:

cat /etc/shells

次に、インストールされたシェルが動作するか確認します。そのためには、ターミナルにシェルの名前を入力します。もしzshなら、次のコマンドを実行します:

zsh

デフォルトシェルに戻るには、exit と入力し、Enter を押してください。

ステップ3: システムのデフォルトシェルとしてシェルを設定する

新しくインストールしたシェルがインストールされたシェルのリストに表示され、正常に動作している場合は、それをシステムのデフォルトシェルとして設定する準備が整いました。chshを使用すると、デフォルトの対話型シェルとデフォルトのログインシェルの両方を変更できることに注意してください。

ログインシェルは、システムにログインした後に端末を取得するシェルであり、一方、インタラクティブシェルはログイン後常に利用可能です。

zsh(または他のシェル)をデフォルトのログインシェルとして設定するには、ターミナルを開いて次のように実行します:

chsh

パスワードが求められたら、アカウントのパスワードを入力してEnterを押してください。

次に、インストールしたシェルの絶対パスを入力します。これにより、システムのデフォルトログインシェルが変更されます。デフォルトの対話型シェルをzshに変更するには:

chsh -s /usr/bin/zsh

システムは変更を適用するためにパスワードの入力を求めます。パスワードを入力し、Enterを押してください。

zsh(または別のシェル)をデフォルトまたはインタラクティブシェルとして設定したら、変更を反映させるためにログアウトして再ログインしてください。

今、再度ログインしてターミナルを開くと、システムがシェル設定ツールであなたを迎えます。新しいシェルを使用し始める前に、ここで自分のシェルの要件に対応するオプションを選択する必要があります。

すべての準備が整ったら、新しくインストールしたシェルがシステムのデフォルトシェルとして設定されているか確認してください。そのためには、以下のコマンドを実行します:

echo $SHELL

zshに設定している場合、ターミナルにそのパスが表示されます。他のシェルの場合は、それに応じたパスが反映されるはずです。

他のユーザーのデフォルトシェルを変更したい場合は、各ユーザーごとに個別に行う必要があることに注意してください。たとえば、ユーザーsamのデフォルトシェルを変更したい場合は、以下のコマンドを実行する必要があります:

sudo chsh -s /usr/bin/zsh sam

個人化された体験のためのデフォルトシェルの変更

豊富な機能を持つシェルは、デフォルトのシェルに固有の利点を超えた多くの追加の利点を提供します。そして、ほとんどのLinuxでのやり取りや操作はコマンドライン上で行われるため、デフォルトのシェルをより多くの機能を備えたものに変更することは、作業環境をパーソナライズするための最初のステップの一つです。

実際、デフォルトのシェルを変更するだけでなく、カスタマイズして自分の望むように設定することを検討すべきです。それによって全体の体験が向上します。シェルをカスタマイズする良い出発点は、ターミナルでのコマンド入力を迅速かつ便利にするコマンドラインエイリアスを使い始めることです。

関連記事: