不明なシェルからbashに切り替えるには?

不明なシェルからbashに切り替えるには?

ウェブサイトでこの質問が見つからなかったことに驚きました。だから今日は$新規ユーザーとしてログインをしてから、こういう言葉が出てきましたね。私のデフォルトユーザーのプロンプトがで終わるので、これは予期しないことですusername@computername:~$

それでは、他のシェルからbashにどのように切り替えますか?

答え1

不明なシェルが絶対コマンド実行をサポートしていると仮定すると、次のことを試すことができます。/bin/bash

デフォルトのシェルを変更するには、次のようにしますchsh(1)chsh -s /bin/bash $USER

答え2

と入力しますbash。これを永久に適用するには、デフォルトの/bin/bashシェルを/etc/passwd

私のいくつかの内容は次のとおりです/etc/passwd

avahi:x:84:84:Avahi daemon:/:/bin/false
xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh
postgres:x:88:88::/var/lib/postgres:/bin/zsh
bob:x:1001:1001::/home/bob:/bin/bash
usbmux:x:140:140:usbmux user:/:/sbin/nologin

最後のフィールドにはシェルが含まれています。最後のフィールドを:有効または無効なシェルに変更してください。どちらもユーザーが実際のログインシェルを持っていない/bin/falseことを意味/sbin/nologinしますが、pamが正しく設定されていないためにログインできないという意味ではありません。 (私はArch Linuxでグラフィカルにログインできるため、これに関するバグを報告しましたが、ログインシェルは必要ありません)。有効なシェルです。システムの有効なシェルのリストについては、参考資料を参照/bin/bashしてください。興味があれば、これは私のものです。/bin/zsh/etc/shells/etc/shells

/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash

はい、構造化テキストファイルとTIMTOWTDIを使用して同じことを実行できますchshusermod

答え3

もしchshまたは設定を手動で編集しても機能しませんが、~/.profileスクリプトにログインするときに次の行を追加してください。

exec /bin/bash --login

関連情報