Linux でデフォルトのシェルを変更する方法
シェルは、Linux システムと通信するためのインターフェイスです。コマンドを入力してコンピュータを制御できます。すべての Linux ユーザーにデフォルトのシェルがあり、ほとんどの場合は bash です。他にも Zsh、ksh、rc、fish など、さまざまなオプションがあります。ここでは、Linux でデフォルトのシェルを変更するさまざまな方法を紹介します。
現在のシェル名を確認する方法
デフォルトのシェルを変更する前に、現在使用しているシェルを知っておくとよいでしょう。次の echo コマンドを使用してシステム環境変数を確認することで、これを確認できます。
/bin/bash
このコマンドは、や などの現在のシェルのパスを出力します/bin/zsh
。
この/etc/passwd
ファイルには重要なユーザー アカウント情報が含まれています。このファイルを使用して、現在のシェルを見つけることもできます。
ps コマンドを使用してプロセス ID (PID) を確認することで、現在のシェルの詳細情報を確認することもできます。
この出力は、現在のシェルが bash であることを確認します。
インストールされているすべてのシェルを一覧表示する
現在のシェルがわかったので、システムで使用できる他のオプションを確認したい場合があります。システムにインストールされているすべてのシェルを見つけるには、ファイルを確認する必要があります/etc/shells
。
cat コマンドを使用して、システムで使用可能なすべてのシェルのリストを表示してみましょう。
これにより、どのシェルに切り替えることができるかがわかります。また、パッケージ マネージャーを使用して新しいシェルをインストールし、それをデフォルトのシェルとして使用することもできます。
さらに、デフォルトのシェルを変更せずに、リストされているシェルを一時的に試すこともできます。新しいシェル セッションを開始するには、ターミナルにシェルの名前を入力するだけです。
たとえば、Zsh シェルを試すには、次のように入力します。
これにより、永続的な切り替えを決定する前に、さまざまなシェルを試すことができます。
Chsh を使用して Linux のデフォルト シェルを変更する
Linux でデフォルトのシェルを変更する最も簡単な方法は、chsh
コマンドを使用することです。コマンドは「change shell」の略で、オプションとそれに続くシェル パスchsh
とともに使用されます。-s
シェル パスがわからない場合は、type zsh
ターミナルで を実行して目的のパスを取得します。シェル パスを取得したら、デフォルトのシェルを特定のシェルに変更できます。
たとえば、Zsh に切り替える場合は、chsh -s
Zsh シェル パスで を使用する必要があります。
パスワードを入力するよう求められます。パスワードを入力したら、変更を確認するためにログアウトして再度ログインする必要があります。
このchsh
コマンドはデフォルトのログイン シェルを永続的に変更します。次のコマンドを実行して変更を確認できます。
別のユーザーシェルの変更
ルート権限があり、コマンドを使用できる場合はsudo
、他のユーザー アカウントのデフォルトのシェルを変更できます。これは、別のユーザーに fish などの異なるシェル環境を提供する場合に役立ちます。
たとえば、別のユーザーのシェルを Zsh に変更するには、ターミナルで次のコマンドを実行します。
このコマンドは、特定のユーザーのデフォルト シェルを、 にある Zsh シェルに変更するようにシステムに指示します/bin/zsh
。
Usermod を使用して Linux のデフォルト シェルを変更する
シェルを切り替える別の方法は、usermod
コマンドを使用することです。このコマンドは、ユーザー アカウントを変更するために使用され、デフォルトのシェルを変更するためにも使用できます。
を使用してデフォルトのシェルを変更するにはusermod
、ルート権限でターミナルを開き、次のコマンドを入力します。
/path/to/new/shell
ここで、を目的のシェル パスと実際のユーザー名に置き換える必要がありますyour_username
。
たとえば、デフォルトの bash シェルを zsh に変更してみましょう。
前と同じように、Linux システムからログアウトして再度ログインし、これらの変更を有効にします。
次のコマンドを使用してユーザー アカウントの詳細を確認することで、新しいシェルへの切り替えを確認できます。
Linux でデフォルトのシェルを手動で変更する
ファイルを編集して、デフォルトのシェルを手動で変更することもできます/etc/passwd
。デフォルトのシェル パスを新しいシェルに置き換えることで、これを実行できます。ただし、この手法は正しく実行しないと問題が発生する可能性があるため、注意が必要です。
シェルを手動で変更するには、/etc/passwd
root 権限でお気に入りのテキスト エディター (nano や vim など) を使用してファイルを開きます。
ファイル内でユーザー名を探します。ユーザーエントリの最後のフィールドに現在のシェルが表示されます。それを希望するシェルのパスに変更します。
たとえば、デフォルトの/bin/bash
シェル パスを次のように変更します/bin/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によるものです。
コメントを残す