不明なシェルからbashに切り替えるにはどうすればよいですか?


41

この質問がサイト上ですでに見つからなかったことに驚いた。だから、$私は新しいユーザーとしてログインした後、今日来ました。メインユーザーのプロンプトがで始まるため、これは予想外username@computername:~$でした。

だから、この他のシェルからbashに切り替えるにはどうすればよいですか?


8
$出てきたからusername@computername:~$といって、バッシュではなかったというわけではありません。プロンプトの正確なフォーマットはPS1変数によって設定されます。PS1変数は、ユーザーごとに設定またはカスタマイズできます。
狂気

3
@mouche Re:@frabjous echo $SHELLを使用して、現在のシェルを確認します。
xenoterracide

1
@mouche @frabjousと$で始まるbashは実際に一般的です。zshのような一部のbash以外のシェルは%をそのまま使用しますが、他のシェルは他のものを使用すると信じています。
xenoterracide

1
@moucheである/bin/shことは、多くの場合、それが通常他の何かへのシンボリックリンクであることを意味しません。入力ls -l /bin/shしてシンボリックリンクを確認します。場合によっては、何かへのシンボリックリンクがその動作を変更しますが、bashがそのように思われることはありません。
xenoterracide

3
@xenoterracide- bashas /bin/sh 使用すると、多くのbash機能が無効になります(POSIX準拠モードになります)。
クリスダウン

回答:


61

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

デフォルトのシェルを変更するには、を使用しますchsh(1)。サンプル使用法:chsh -s /bin/bash $USER


1
chshはシェルを永久に変更しますか、それとも現在のセッションだけを変更しますか?
ムッシュ

10
@mouche永久; エントリが変更されます/etc/passwd
Michael Mrozek

@moucheは、chsh(1)リストされている/etc/shells(おそらく利用可能な)シェルへの変更のみを許可します。chsh -l選択肢をリストします。注意してください(nologinログインなどに使用してはならないアカウントに対して(など)が定義されています)、特別な用途のためにローカルに追加される可能性があります。
フォンブランド

19

を入力し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が設定されていない場合は、右これは彼らがログインできないという意味ではありませんが、実際のログインシェルを持っていないユーザーを意味する(私は、アーチのLinuxで、この上のバグを報告しましたログインシェル)。/bin/bashそして/bin/zsh両方の有効なシェルは、見ている/etc/shellsあなたのシステム上で有効なシェルのリストのため。/etc/shells興味のある方はこちらから。

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

はい、あなたが使用することができchshたりusermod、同じことを行うために、これらは単に構造化テキストファイル、およびTIMTOWTDI覚えてください。


11
おそらくchsh、手動で編集する代わりに使用したいと思いますpasswd
Michael Mrozek

@Michaelには、シェルを変更するための約5つの方法(POOMA)が/etc/passwdあります。それらをリストする気はありませんでした。chshとusermodの両方で実行できます。
-xenoterracide

構成ファイルをいじくり回すことは、Bad Idea(TM)であり、エラーによりシステムが使用できなくなる可能性があります。はい、それは多くの場合、唯一/最速の方法ですが、細心の注意を払って実行してください。
フォンブランド

12

場合CHSH設定を編集したり、手動ではない仕事、しかし〜/ .profileにスクリプトはログイン時に実行されますが、この行を追加します。

exec /bin/bash --login

しばらく見て回った後、これは私が必要とした解決策でした。ありがとう!
PearsonArtPhoto

特に、シェルが起動時にファイルを選択するソースを選択した場合
...-vonbrand

touch ~/.bash_profileそれ以外の場合、bashはループでそれ自体を実行します。bashは~/.profile~/.bash_profile存在しない場合に使用します。
har-wradim
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.