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

Linux でデフォルトのシェルを変更する方法
Linux のデフォルト シェルを変更する機能イメージ

シェルは、Linux システムと通信するためのインターフェイスです。コマンドを入力してコンピュータを制御できます。すべての Linux ユーザーにデフォルトのシェルがあり、ほとんどの場合は bash です。他にも Zsh、ksh、rc、fish など、さまざまなオプションがあります。ここでは、Linux でデフォルトのシェルを変更するさまざまな方法を紹介します。

現在のシェル名を確認する方法

デフォルトのシェルを変更する前に、現在使用しているシェルを知っておくとよいでしょう。次の echo コマンドを使用してシステム環境変数を確認することで、これを確認できます。

echo コマンドを使用して現在のシェル パスを表示する

/bin/bashこのコマンドは、や などの現在のシェルのパスを出力します/bin/zsh

この/etc/passwdファイルには重要なユーザー アカウント情報が含まれています。このファイルを使用して、現在のシェルを見つけることもできます。

環境変数ファイルで grep コマンドを使用して現在のシェルを検索する

ps コマンドを使用してプロセス ID (PID) を確認することで、現在のシェルの詳細情報を確認することもできます。

ps コマンドを使用して現在のシェルプロセス情報を表示する

この出力は、現在のシェルが bash であることを確認します。

インストールされているすべてのシェルを一覧表示する

現在のシェルがわかったので、システムで使用できる他のオプションを確認したい場合があります。システムにインストールされているすべてのシェルを見つけるには、ファイルを確認する必要があります/etc/shells

cat コマンドを使用して、システムで使用可能なすべてのシェルのリストを表示してみましょう。

Linux Ubuntu システムにインストールされているすべてのシェルを一覧表示する

これにより、どのシェルに切り替えることができるかがわかります。また、パッケージ マネージャーを使用して新しいシェルをインストールし、それをデフォルトのシェルとして使用することもできます。

さらに、デフォルトのシェルを変更せずに、リストされているシェルを一時的に試すこともできます。新しいシェル セッションを開始するには、ターミナルにシェルの名前を入力するだけです。

たとえば、Zsh シェルを試すには、次のように入力します。

これにより、永続的な切り替えを決定する前に、さまざまなシェルを試すことができます。

Chsh を使用して Linux のデフォルト シェルを変更する

Linux でデフォルトのシェルを変更する最も簡単な方法は、chshコマンドを使用することです。コマンドは「change shell」の略で、オプションとそれに続くシェル パスchshとともに使用されます。-s

シェル パスがわからない場合は、type zshターミナルで を実行して目的のパスを取得します。シェル パスを取得したら、デフォルトのシェルを特定のシェルに変更できます。

たとえば、Zsh に切り替える場合は、chsh -sZsh シェル パスで を使用する必要があります。

chsh コマンドを使用してデフォルトのシェルを変更する

パスワードを入力するよう求められます。パスワードを入力したら、変更を確認するためにログアウトして再度ログインする必要があります。

このchshコマンドはデフォルトのログイン シェルを永続的に変更します。次のコマンドを実行して変更を確認できます。

/etc/passwd ファイルで grep コマンドを使用してシェルの切り替えを確認する

別のユーザーシェルの変更

ルート権限があり、コマンドを使用できる場合はsudo、他のユーザー アカウントのデフォルトのシェルを変更できます。これは、別のユーザーに fish などの異なるシェル環境を提供する場合に役立ちます。

たとえば、別のユーザーのシェルを Zsh に変更するには、ターミナルで次のコマンドを実行します。

chsh コマンドを使用して別のユーザーシェルを変更する

このコマンドは、特定のユーザーのデフォルト シェルを、 にある Zsh シェルに変更するようにシステムに指示します/bin/zsh

Usermod を使用して Linux のデフォルト シェルを変更する

シェルを切り替える別の方法は、usermodコマンドを使用することです。このコマンドは、ユーザー アカウントを変更するために使用され、デフォルトのシェルを変更するためにも使用できます。

を使用してデフォルトのシェルを変更するにはusermod、ルート権限でターミナルを開き、次のコマンドを入力します。

/path/to/new/shellここで、を目的のシェル パスと実際のユーザー名に置き換える必要がありますyour_username

たとえば、デフォルトの bash シェルを zsh に変更してみましょう。

usermod コマンドを使用してデフォルトのシェルを別のシェルに変更する

前と同じように、Linux システムからログアウトして再度ログインし、これらの変更を有効にします。

次のコマンドを使用してユーザー アカウントの詳細を確認することで、新しいシェルへの切り替えを確認できます。

getent を使用してデフォルトのシェルから切り替えた後の新しいシェルの検証

Linux でデフォルトのシェルを手動で変更する

ファイルを編集して、デフォルトのシェルを手動で変更することもできます/etc/passwd。デフォルトのシェル パスを新しいシェルに置き換えることで、これを実行できます。ただし、この手法は正しく実行しないと問題が発生する可能性があるため、注意が必要です。

シェルを手動で変更するには、/etc/passwdroot 権限でお気に入りのテキスト エディター (nano や vim など) を使用してファイルを開きます。

nano テキストエディタを使用して /etc/passwd ファイルを開く

ファイル内でユーザー名を探します。ユーザーエントリの最後のフィールドに現在のシェルが表示されます。それを希望するシェルのパスに変更します。

たとえば、デフォルトの/bin/bashシェル パスを次のように変更します/bin/zsh

/etc/passwd テキスト エディターでデフォルトの bash シェルを zsh シェルに変更します。

Ctrl最後に、 +を押してファイルを保存し、 +Sでエディターを終了します。再度、ログアウトして再度ログインし、変更を適用します。CtrlX

デフォルトのシェルの代替

Bash は優れた強力なスクリプト ツールですが、コマンドライン エクスペリエンスを強化し、より優れたカスタマイズ オプションを提供できるシェルは他にもいくつかあります。

fish は Friendly Interactive Shell の略です。このシェルには、構文の強調表示、自動提案、タブ補完などの直感的なコマンドライン インターフェイスがあり、コマンドの入力が簡単になります。

fish には Web ベースの設定ツールも含まれています。つまり、設定ファイルを詳しく調べなくても設定を微調整したり機能を作成したりできます。

ズシュ

Zsh(Z シェル)は、高度にカスタマイズ可能で、多くの便利な機能を備えています。その優れた機能には、グロビング、自動修正、カスタム構成、高度なタブ補完などがあります。

Zsh はプラグインとテーマもサポートしているため、シェルのエクスペリエンスを好みに合わせて簡単にカスタマイズできます。Zsh を使用すると、Git ブランチを表示したり、単純なパターンで複雑なファイル操作を実行したりすることもできます。

Ksh

ksh (KornShell) は、C シェルと Bourne シェルの優れた機能を取り入れ、高度なスクリプト機能を備えた強力で使いやすいシェルです。ksh の機能には、組み込みの数学関数、コマンド ライン編集、シェル スクリプト、拡張性などがあります。

まとめ

Linux でデフォルトのシェルを変更するのは簡単なプロセスですが、コマンドラインのエクスペリエンスを向上できます。パワー ユーザーであれば、他の代替 Linux シェルをぜひ試してみてください。

画像クレジット: Lukas via Unsplash。すべてのスクリーンショットはHaroon Javedによるものです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です