bashを修正する方法、またはSSHログインで/ bin / bashを自動実行する方法


16

rootサーバーでログインするときはすべてmyusername正常に動作しますが、bash としてログインすると正しく動作しません。

行は次で始まります:

$ 

の代わりに

myusername@myserver:~$

矢印キー、タブキーなどのすべての特殊キーは機能しません。

入力するとbin/bash再び動作bin/bashしますが、問題を修正するか、ログイン時に自動実行したいと思います。どうすれば修正できますか?

ssh  bash 

回答:


16

シェルを変更するだけです。そのユーザーとして、次を実行します。

$ chsh -s /bin/bash

その後、サインアウトしてから再度ログインします。

これを実行した後、プロンプトが希望どおりに表示されない場合は、環境のPS1変数の調整を開始する必要があります。


質問はrootユーザーについて尋ねているので、これは実際には一種の危険です。彼はおそらくLinuxを使用していないでしょう。ルートはデフォルトのシェルのままにする必要があります。これは、ベンダーがおそらくkshそれを選択するか、他の何でも選択するからです。代わりに、本当の答えは「とにかくルートとしてログインするべきではない」です。
バハマ

12

シェルを変更する必要があります。コマンドを実行する

chsh -s /bin/bash

その後、再度サインインします。

ただし、すべてのユーザーが自分のシェルを変更する権利を持っているわけではありません。を使用する場合は、コマンドにユーザー名sudo忘れずに追加してください。chsh

sudo chsh <username> -s /bin/bash

そうしないと、ルートのシェルを誤って変更してしまいます。


公正なポイント。答えを少し拡張しました。
ミカエル・フレムリング

私は試してみるのが非常に素朴でした。sudo chsh -s /bin/bashなぜなら、ユーザーにはシェルを変更する権限がないからです。あなたの答えは私がそれを解決するのに役立ちました。ありがとう!
エデンショー

5

考えられる理由の1つは、myusernameのデフォルトのシェルがbashではないことです。

現在のユーザーのシェルを確認するには:

  • echo ${SHELL}
  • echo $0

ユーザーシェルを永続的に変更するにはman chsh 、次を参照してください。

chsh -s /bin/bash


0

もう1つ追加したかっただけです。

そのユーザーのbashを変更するためにsudoアクセスが必要な場合は、sudoコマンドでユーザー名も指定する必要があります。ユーザー名がない場合、rootユーザーに適用されるためです。

$ sudo chsh -s /bin/bash <user>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.