サーバーにroot
としてログインすると、すべて正常に動作しますが、myusername
としてログインすると、bashが正しく機能しません。
行は次で始まります:
$
の代わりに
myusername@myserver:~$
矢印キー、タブキーなどのすべての特殊キーは機能しません。
bin/bash
と入力すると再び機能しますが、問題を修正するか、ログイン時にbin/bash
を自動実行します。どうすれば修正できますか?
シェルを変更するだけです。そのユーザーとして、次を実行します。
$ chsh -s /bin/bash
次に、サインアウトして再度サインインします。
これを実行した後、プロンプトが希望どおりに表示されない場合は、環境のPS1変数の調整を開始する必要があります。
シェルを変更する必要があります。コマンドを実行する
chsh -s /bin/bash
その後、再度サインインします。
ただし、すべてのユーザーが自分のシェルを変更する権利を持っているわけではありません。 Sudo
を使用する場合は、必ずsernameをchsh
コマンドに追加してください。
Sudo chsh <username> -s /bin/bash
そうしないと、ルートのシェルを誤って変更してしまいます。
考えられる理由の1つは、デフォルトのシェルmyusernameがbashではないことです。
現在のユーザーのシェルは次のようにして確認できます。
echo ${Shell}
echo $0
ユーザーシェルを永続的に変更するには、man chsh
を参照してください。例:
chsh -s /bin/bash
Sudoユーザーパスワードが無効になっている場合は、/etc/passwd
を直接編集し、ユーザーがいる行を見つけて、シェルパスを/bin/bash
に変更できます。
/ etc/passwd format について説明します。
もう1つ追加したかっただけです。
そのユーザーのbashを変更するためにSudoアクセスが必要な場合は、ユーザー名がないとrootユーザーに適用されるため、Sudoコマンドでユーザー名も指定する必要があります。
$ Sudo chsh -s /bin/bash <user>