bashシェルは、Linuxで最も広く使用されているログインシェルの1つです。ただし、他のシェルも存在し、コマンドライン作業に使用できます(もちろん、作業に特定の要件があるまで)。この記事では、 chshと呼ばれるツールについて説明します。 -これにより、現在のシェルとは異なるログインシェルに切り替えることができます。
ただし、その前に、このチュートリアルのすべての例がUbuntu18.04LTSマシンでテストされていることを言及する価値があります。
Linuxchshコマンド
上記の概要ですでに説明したように、chshコマンドを使用すると、ログインシェルを変更できます。その構文は次のとおりです。
chsh [options] [LOGIN]
そして、これがツールのマニュアルページに書かれていることです:
The chsh command changes the user login shell. This determines the name
of the user's initial login command. A normal user may only change the
login shell for her own account; the superuser may change the login
shell for any account.
以下は、chshコマンドがどのように機能するかについての良いアイデアを与えるはずのQ&Aスタイルの例です。
Q1。 chshの使い方は?
基本的な使用法はかなり単純です-引数なしで「chsh」コマンドを実行するだけです。ログインパスワードの入力を求められます。パスワードを正常に入力すると、ログインシェルを変更するオプションが表示されます。
chsh
デフォルトでは、現在のユーザーのログインシェルが変更されることに注意してください。
Q2。 chshを使用してログインシェルを変更するにはどうすればよいですか?
予想どおり、新しい値を入力するだけで(前の例のスクリーンショットを参照)、シェルが新しい値に変更されます。
たとえば、新しい値として/ bin/shと入力しました。
変更を確認するために、chshコマンドを再度実行できます。角括弧内に示されている値は現在のシェルです。したがって、私の場合、現在のシェルは/ bin / shになりました:
Q3。他のユーザーのログインシェルを変更するにはどうすればよいですか?
このためには、chshコマンドへの入力としてユーザー名を指定するだけです。
chsh [username]
たとえば、rootのログインシェルを変更するには、次のようにchshを使用します。
chsh root
Q4。 chshを非対話型モードで実行するにはどうすればよいですか?
これには-sコマンドラインオプションを使用します。これには、シェル名を入力として渡す必要があります。
例:
chsh -s /bin/sh
したがって、このようにして、現在のユーザーのログインシェルは非インタラクティブな方法で/ bin/shに変更されます。
Q5。システムで使用可能なログインシェルのリストを表示するにはどうすればよいですか?
システムで使用可能なシェルのリストをすばやく確認するには、/ etc/shellsファイルをcatします。
たとえば、私のシステムで生成された出力は次のとおりです。
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
注:
The only restriction placed on the login shell is that the command name
must be listed in /etc/shells, unless the invoker is the superuser, and
then any value may be added. An account with a restricted login shell
may not change her login shell. For this reason, placing /bin/rsh in
/etc/shells is discouraged since accidentally changing to a restricted
shell would prevent the user from ever changing her login shell back to
its original value.
ご覧のとおり、chshコマンドは、コマンドラインユーザーが知っておくべき重要なツールです。ここで、このチュートリアルでは、ツールが提供するコマンドラインオプションの大部分について説明しました。 chshの詳細については、manページにアクセスしてください。