web-dev-qa-db-ja.com

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

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

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

41
mouche

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

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

62
Kevin M

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

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

20
xenoterracide

chshまたは手動での構成の編集は機能しないが、ログイン時に〜/ .profileスクリプトが実行される場合は、次の行を追加します。

exec /bin/bash --login
12
Kevin Cantu