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

  • ZshなどのさまざまなLinuxシェルを試してみることは、自分の好みに合ったものを見つけるための有益かつ簡単なプロセスになります。
  • 各シェルには独自の機能とタスクを実行する方法があり、さまざまなシェルはワークフローに大きな影響を与える可能性があります。
  • chshコマンドを使用すると、デフォルトシェルを変更できます。

Bashは唯一のLinuxシェルではありません。Zshなどの他のシェルを試すのは簡単で、非常に人気があります。気に入ったものが見つかったら、chshコマンドを使用してデフォルトシェルにします。その方法をご紹介します。

シェルの重要性

シェルは、ユーザーとオペレーティングシステムの間で機能します。ターミナルウィンドウ内で、コマンドを入力してプログラムを実行できる環境を提供します。シェルはユーザーの入力をチェックし、ユーザーが何を望んでいるかを把握します。自分で入札を実行できる場合は、実行します。外部の助けが必要な場合は、パスを検索して、リクエストされたことを実行できるプログラムを見つけます。

Linuxにはさまざまなシェルが用意されています。これらはすべて、ファイルシステムの探索、ファイルの操作、プログラムの起動、スクリプトの実行など、同じコアタスクを実行できます。ただし、それぞれが独自の方法でこれらのタスクを実行し、独自の特別な機能と特異性があります。

シェルは、物事を特定の方法で動作させたいと考えている人によって設計される傾向があります。そのデザイナーの考えと一致していれば、そのシェルはあなたに適しているかもしれません。さらに、Linuxで新しいシェルを試すことは簡単です。

Ubuntuを含むほとんどのLinuxディストリビューションでは、デフォルトのシェルはbashです。それは素晴らしい仕事をし、非常に有能です。ただし、別のシェルは、ワークフローに大きな影響を与える時間の節約の違いを提供する可能性があります。探さなければわかりません!

最高のLinuxシェルは何ですか?

さまざまなLinuxシェルについては以前にも取り上げましたが、ここでは最も一般的なシェルを簡単に紹介します。

  • bash:The Bourne again shellは、多くのディストリビューションのデフォルトです。
  • rbash:この制限付きbashシェルは、そこで実行されている人またはスクリプトに最小限の機能を提供します。
  • ash:Almquistシェルは、bashの軽量版です。
  • dash:Debian Alquist Shellは、Ubuntuのデフォルトシェルスクリプトです。bashはデフォルトのログインおよび対話型シェルですが、dashbashよりもはるかに軽量であるため、システムプロセスを実行するために使用されます。
  • zsh:Zシェルは、bashファミリのシェルのモダンなバージョンです。コマンドのスペルチェックや修正の提案など、優れた改善を提供します。
  • fish:このフレンドリーな対話型シェルはゼロから記述されており、他のシェルファミリーから派生したものではありません。ユーザーフレンドリーであることを目的としています。fishは、予測テキストと同様に、履歴と現在のフォルダーの内容に基づいてコマンドの提案を提供します。
  • ksh:KornShellは、特に強力なスクリプティング言語を提供します。

インストールされているシェルのリスト

コンピューターにどのシェルがインストールされているかを確認するには、このコマンドを使用します。これは、単に/etc/shellsファイルの内容を一覧表示します。

cat /etc/shells

bashdash、およびrbashについて説明しましたが、shとは何でしょうか?

shは、1971年にベル研究所のケン・トンプソンによって書かれたトンプソンシェルです。もうメンテナンスされておらず、最新のシェルに取って代わられています。最初の行としてまだ次の行を持つ古いスクリプトとの互換性を維持するために純粋に含まれています。

#!/bin/sh

これは、システムにshシェルを使用してスクリプトを実行するように指示します。本当にその古いシェルがマシンにあり、スクリプトの実行に使用されていますか?whichコマンドは、コマンドを入力すると実際にどのプログラムが実行されるかを教えてくれます。

shと入力すると何が実行されるかを見てみましょう。

which sh

これはバイナリを見つけるようです。しかし、もう少し詳しく調べると、それは実際にはスクリプトを実行するために使用される軽量シェルであるdashを指すシンボリックリンクであることがわかります。

ls -l /bin/sh

これは、最新のシステムでshを見つけることを期待するスクリプトの安全ネットを提供するための、きちんとした軽量な方法です。

別のシェルのインストール

fishシェルをインストールし、daveのデフォルトとして設定してみましょう。Ubuntuでは、次のコマンドを入力します。

sudo apt-get install fish

Manjaroでは、pacmanを使用します。

sudo pacman -Sy fish

Fedoraでは、次のコマンドを入力します。

sudo dnf install fish

インストールが完了したら、インストールされているシェルをもう一度確認できます。

cat /etc/shells

新しいシェルは/usr/bin/fishとして表示されます。そのパスをメモしておいてください。すぐに必要になります。

$SHELL環境変数

$SHELL環境変数は、現在のシェルの名前を保持します。echoを使用して、どのシェルに設定されているかを確認できます。

echo $SHELL

fishシェルを起動してみましょう。

fish

それでは、$SHELL環境変数が何を示しているかを確認してみましょう。

echo $SHELL

echo $SHELLを最初に使用すると、bashシェルになります。環境変数には、bash実行可能ファイル/bin/bashへのパスが保持されます。

fishシェルを起動すると、フレンドリーなウェルカムメッセージが表示され、コマンドプロンプトが変更されます。驚くべきことは、$SHELL環境がbash実行可能ファイル/bin/bashへのパスを保持していることです。問題ありません。これは正常です。

新しいシェル(または他のプログラム)を起動すると、親シェルの環境が継承されます。そのため、fishシェルはbashシェルからグローバルおよびエクスポートされた環境変数を継承します。$SHELL環境変数の値は変更されていないため、fishシェルでもbashシェルと同じ値になります。

fishを他のプログラムのように実行しています。exitを使用してfishシェルを終了することもできます。他のプログラムのように終了し、bashシェルに戻ります。

これは、新しいシェルを試したり、何ができるかを確認したり、自分に合っているかどうかを確認したりするのに最適です。ジャンプして自分のシェルとして採用する前に、探索することができます。

fish(または他のシェル)をデフォルトにする場合は、chshコマンドを使用する必要があります。

chshコマンド

chshコマンドを使用すると、デフォルトシェルを変更できます。コツは、ログインシェルと対話型シェルの両方を変更できることを認識することです。どちらか一方または両方を変更できます。

コマンドプロンプトを取得するためにログインするたびに、ログインシェルとして設定されているシェルを使用します。すでにログインしていてターミナルウィンドウを開いている場合は、対話型シェルとして設定されているシェルを使用します。これらは同じシェルでも異なるシェルでもかまいません。

ログインシェルを設定するには、パラメータなしでchshを使用します。

chsh

パスワードの入力が求められます。次に、新しいシェルのパスを入力してEnterキーを押します。

このテストコンピューターに別のコンピューターからリモート接続すると、ログインするとfishシェルになります。

対話型シェルを変更するには、chsh-s(シェル)オプションとともに使用します。コマンドラインで新しいシェルのパスを渡します。

chsh -s /usr/bin/fish

パスワードの入力が求められ、現在のシェルのコマンドプロンプトに戻ります。ログアウトしてログインし直して、変更を有効にする必要があります。そうすると、挨拶とfishシェルコマンドプロンプトが表示されます。

$SHELL環境変数に、新しいデフォルトシェルのパスが保持されるようになりました。

echo $SHELL

別のユーザーアカウントのシェルを変更する

root権限があり、sudoを使用できる場合は、他のユーザーアカウントのシェルを変更できます。コマンドは以前と同じですが、その人のユーザー名がコマンドラインに追加されています。

sudo chsh -s /usr/bin/fish mary

maryが次にログインしたとき、ターミナルウィンドウを開くと新しいシェルが表示されます。

誰もがお気に入りを持っています

選択したシェルに満足していて、それがあなたに合っているなら、それは素晴らしいことです。インストールルーチンなどの一般的なスクリプトを実行できる必要があることを覚えておくだけです。ここに挙げたシェルでは、これは問題ではありません。

もちろん、新しいシェルをダウンロードしてインストールし、コンピューターに構成を変更することなく試用することもできます。準備ができたら、chshがあなたのために儀式を行います。