この質問がまだサイトにないことに驚いた。だから、今日$
は私が新しいユーザーとしてログインした後に現れました。メインユーザーのプロンプトがusername@computername:~$
で始まるため、これは予想外でした。
では、他のシェルからbashに切り替えるにはどうすればよいですか?
不明なシェルが絶対コマンドの実行をサポートしていると仮定すると、次のことを試すことができます:_/bin/bash
_
デフォルトのシェルを変更するには、chsh(1)
を使用します。使用例:_chsh -s /bin/bash $USER
_
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であることを覚えておいてください。
chshまたは手動での構成の編集は機能しないが、ログイン時に〜/ .profileスクリプトが実行される場合は、次の行を追加します。
exec /bin/bash --login