Linuxでchshを使用してデフォルトのシェルを変更する方法
公開: 2022-01-29 LinuxシェルはBashだけではありません。 非常に人気のあるZshのような他のシェルを試すのは簡単です。 気に入ったものが見つかったら、 chsh
コマンドを使用してデフォルトのシェルにします。 その方法をお見せします。
シェルが重要な理由
シェルは、ユーザーとオペレーティングシステムの間にあります。 コマンドを入力してプログラムを実行できるターミナルウィンドウ内の環境を提供します。 シェルは入力をチェックし、必要なものを見つけ出します。 それがあなたの入札自体を実行することができるならば、それはそうします。 外部の支援が必要な場合は、パスを検索し、要求された処理を実行できるプログラムを見つけます。
Linuxではさまざまなシェルを利用できます。 これらはすべて、ファイルシステムの探索、ファイルの操作、プログラムの起動、スクリプトの実行など、同じコアタスクを実行できるようにします。 ただし、それぞれが独自の方法でこれらのタスクを実行し、独自の特別な機能と特異性を備えています。
シェルは、物事を特定の方法で動作させたい人によって設計される傾向があります。 あなたの考えがその設計者の考えと一致している場合、そのシェルはあなたにぴったりかもしれません。 さらに、Linuxで新しいシェルを試すのは簡単です。
Ubuntuを含むほとんどのLinuxディストリビューションでは、デフォルトのシェルはbash
です。 それは素晴らしい仕事をし、非常に有能です。 ただし、別のシェルは、ワークフローに大きな影響を与える時間節約の違いを提供する場合があります。 見ないと分からない!
関連: ZSHとは何ですか?Bashの代わりにZSHを使用する必要があるのはなぜですか?
シェルのバケツ
これまでにさまざまなLinuxシェルについて説明しましたが、最も一般的なものを簡単に紹介します。
- bash: Bourne againシェルは、多くのディストリビューションのデフォルトです。
- rbash:この制限付き
bash
シェルは、その中で実行されている人またはスクリプトに最小限の機能を提供します。 - ash: Almquistシェルはbashの軽量バージョンです。
- ダッシュ: Debian Alquist Shellは、Ubuntuのデフォルトのシェルスクリプトです。
bash
はデフォルトのログインおよびインタラクティブシェルですが、dash
はbash
よりもはるかに軽いため、システムプロセスの実行に使用されます。 - zsh: Zシェルは、
bash
ファミリーのシェルを現代的に取り入れたものです。 コマンドのスペルチェックや提案された修正など、きちんとした改善を提供します。 - fish:このフレンドリーなインタラクティブシェルはゼロから作成されたものであり、他のシェルファミリーから派生したものではありません。 これは、ユーザーフレンドリーであることを目的としています。 他の多くの特典の中で、fishは、予測テキストと同様に、履歴と現在のフォルダーの内容に基づいてコマンドの提案を提供します。
- ksh: KornShellは、特に強力なスクリプト言語を提供します。
関連: Bash、Zsh、およびその他のLinuxシェルの違いは何ですか?
インストールされているシェルを一覧表示します
コンピュータにインストールされているシェルを確認するには、このコマンドを使用します。 /etc/shells
ファイルの内容をリストするだけです。
cat / etc / shells
bash
、 dash
、およびrbash
について説明しましたが、 sh
とは何ですか?
sh
は、ベル研究所で有名なケン・トンプソンによって1971年に書かれたトンプソンシェルです。 それはもはや維持されておらず、長い間現代の砲弾に取って代わられてきました。 これは、最初の行がまだ次の古いスクリプトとの互換性を維持するためだけに含まれています。
#!/ bin / sh
これは、 sh
シェルを使用してスクリプトを実行するようにシステムに指示します。 あなたは本当にあなたのマシンにその古代のシェルを持っていますか、そしてそれはあなたのスクリプトを実行するために使われていますか? which
コマンドは、コマンドを入力したときに実際に実行されるプログラムを示します。
sh
と入力すると何が実行されるか見てみましょう:
どの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
で確認できます:
エコー$ SHELL
fish
の殻を始めましょう:
魚
それでは、 $SHELL
環境変数の内容をもう一度確認してみましょう。
エコー$ 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
殻の中にいることに気付くでしょう。
インタラクティブシェルを変更するには、 -s
(シェル)オプションを指定してchsh
を使用します。 コマンドラインで新しいシェルへのパスを渡します。
chsh -s / usr / bin / fish
パスワードの入力を求められ、現在のシェルのコマンドプロンプトに戻ります。 変更を有効にするには、ログアウトしてから再度ログインする必要があります。 すると、挨拶とfish
殻のコマンドプロンプトが表示されます。
$SHELL
環境変数は、新しいデフォルトシェルへのパスを保持するようになりました。
エコー$ SHELL
別のユーザーアカウントのシェルを変更する
root権限があり、 sudo
を使用できる場合は、他のユーザーアカウントのシェルを変更できます。 コマンドは以前と同じですが、その人のユーザー名がコマンドラインに追加されています。
sudo chsh -s / usr / bin / fish mary
次にmary
がログインすると、ターミナルウィンドウを開いたときに新しいシェルが表示されます。
誰もがお気に入りを持っています
あなたがシェルの選択に満足していて、それがあなたのために働く限り、それは素晴らしいです! インストールルーチンなどの一般的なスクリプトを実行できる必要があることを覚えておいてください。 ここで言及されているシェルの場合、これは問題にはならないはずです。
もちろん、新しいシェルをダウンロードしてインストールし、コンピューターの構成を変更せずにテストドライブに使用することもできます。 結び目を作る準備ができたら、 chsh
がセレモニーを行います。
Linuxコマンド | ||
ファイル | tar・pv・cat・tac・chmod・grep・diff・sed・ar・man・pushd・popd・fsck・testdisk・seq・fd・pandoc・cd・$ PATH・awk・join・jq・fold・uniq・journalctl・tail・stat・ls・fstab・echo・less・chgrp・chown・rev・look・strings・type・rename・zip・unzip・mount・umount・install・fdisk・mkfs・rm・rmdir・rsync・df・gpg・vi・nano・mkdir・du・ln・patch・convert・rclone・shred・srm | |
プロセス | エイリアス・screen・top・nice・renice・progress・strace・systemd・tmux・chsh・history・at・batch・free・which・dmesg・chfn・usermod・ps・chroot・xargs・tty・pinky・lsof・vmstat・タイムアウト・wall・yes・kill・sleep・sudo・su・time・groupadd・usermod・groups・lshw・shutdown・reboot・halt・poweroff・passwd・lscpu・crontab・date・bg・fg | |
ネットワーキング | netstat・ping・traceroute・ip・ss・whois・fail2ban・bmon・dig・finger・nmap・ftp・curl・wget・who・whoami・w・iptables・ssh-keygen・ufw |
関連:開発者と愛好家のための最高のLinuxラップトップ