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

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

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

コメント

  • iv id =ではなく$が表示されたからです”cbaa275718″>

は'それが' tbashではなかったことを意味しません。プロンプトの正確なフォーマットはPS1変数によって設定されます。この変数は、ユーザーごとに異なる方法で設定またはカスタマイズできます。

  • @mouche Re:@frabjous echo $SHELL現在のシェルが何であるかを調べるために。
  • @mouche @frabjousそして$で始まるのは実際にはbashで一般的です、zshのようないくつかの非bashシェルは箱から出して%を使用します、他のシェルは使用すると思いますその他。
  • @moucheが/bin/shであることは、多くの場合'あまり意味がありません'は通常、他の何かへのシンボリックリンクです。 ' dと入力してls -l /bin/shと入力し、'のシンボリックリンクを確認します。何かへのシンボリックリンクであると動作が変わる場合がありますが、' bashがそのようだとは思いません。
  • @ xenoterracide- as /bin/sh 多くのbash機能を無効にします(POSIX準拠モードになります)。
  • 回答

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

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

    コメント

    • chshはシェルを永続的に変更しますか、それとも現在のセッションのみを変更しますか?
    • @mouche永続的に; /etc/passwd
    • @mouche、chsh(1)のエントリを変更すると、リストされているシェルにのみ変更できます/etc/shells内(おそらく利用可能です)。 chsh -lに選択肢がリストされています。一部(nologinなど)は、ログインに使用してはならないアカウント用に定義されているため(自分をロックアウトするための良い方法)、特別な用途のためにローカルに追加される場合があります。

    回答

    bashと入力します。これを永続的にしたい場合は、/etc/passwdを編集して、デフォルトのシェルを/bin/bashに変更します。

    こちら/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 

    はい、またはusermodで同じことを行うには、これらは構造化テキストファイルとTIMTOWTDIにすぎないことに注意してください。

    コメント

    • passwd
    • iを手動で編集する代わりに、chshを使用することをお勧めします。 > @Michael /etc/passwdでシェルを変更する方法は約5つ(POOMA)あります'それらのいずれかをリストする気がしませんでした、私はいつも手動でやっているので。 chshとusermodはどちらもそれを行うことができます。

    • 構成ファイルをいじり回すのは悪い考え(TM)であり、エラーが発生するとシステムが使用できなくなる可能性があります。はい、それが唯一の/最速の方法であることがよくありますが、 細心の注意 でそれを行います。

    回答

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

    exec /bin/bash --login 

    コメント

    • しばらく見て回った後、これが私が必要とした解決策でした。ありがとう!
    • 特にシェルが起動時にそのファイルのソースを選択した場合は、素晴らしいアイデアです…
    • touch ~/.bash_profileまたはそれ以外の場合、bashはループ内で実行されます。~/.bash_profile
      しない場合、bashは~/.profileを取りますid = “81d1d16526″>

      存在しません。

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です