web-dev-qa-db-ja.com

UbuntuのデフォルトシェルをBashにするにはどうすればいいですか?

ホームディレクトリに.bash_profileがありますが、ログイン時には実行されません。私が以下のことをした場合、それは私が期待している通りのことです。

ssh myhost
bash
source ~/.bash_profile

しかし、通常はすべてログイン時に行われます。考えですか?

95
James A. Rosen

つかいます:

chsh

パスワードを入力して、使用したいシェルへのパスを入力します。

Bashの場合、それは/bin/bashになります。 Zshの場合、これは/usr/bin/zshになります。

158
akira

Akiraの答えに加えて、あなたのデフォルトのシェルを指定するためにあなたの / etc/passwd ファイルを編集することもできます。

この例のような行が見つかります。

john:x:1000:1000:john,,,:/home/john:/bin/sh

シェルは最後に指定されています。

36
John T

端末プログラムを確認してください。/bin/bashではなく/ bin/shを実行するように設定されている可能性があります。

Bashはログインセッションに対してのみ.bash_profileを実行します。 .bashrcは、ログインセッションだけでなく、すべてのbashセッションに対して実行されます。 .bashrcから.bash_profileを読み込む(循環依存を避けてください)か、シェルプログラムとして/ bin/bash -lを実行するようにターミナルプログラムを設定してください。

Bashを有効にする:

$ /bin/bash

ユーザーのシェルを変更します。

$ Sudo usermod -s /bin/bash username

ここで、

  -s, --Shell SHELL             new login Shell for the user account
2
Umanshield

もう1つの方法は、起動スクリプトの名前を.profileに変更することです。このファイルはほとんどの Unixシェル によってソースされています。

2
mathk

シェルをデフォルトにするには、まず/etc/shellsの内容を見て、コンピューターにシェルがインストールされて認識されていることを確認します。

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/fish

次に、chshを使用してシェルを変更します。

$ Sudo chsh -s /usr/bin/bash $(whoami) # or Sudo chsh -s /bin/bash $(whoami)

参照資料

  1. https://linux.die.net/man/1/cat
  2. https://linux.die.net/man/1/whoami
  3. https://linux.die.net/man/5/shells
  4. https://linux.die.net/man/1/chsh
1
Behrang

あなたの質問には、私が確実に言うのに十分な情報はありませんが、私は以前に同じ問題に遭遇しました。パスワードエントリに/ bin/bashが既に設定されていると仮定すると、それがあなたの端末の起動方法かもしれません。

あなたがGUI端末を立ち上げようとしているなら、gnome-terminalと言って、シェルがあなたのbash起動ファイルを読むことを期待しているかもしれません。しかし、これはUbuntuや他のシステムではデフォルトでは起こりません。

Ubuntuで修正した方法は、gnome-terminalの設定を編集して、起動コマンドをbash -lに設定することです。 -l--loginの短縮形です。これは、bashにlogin Shellとして起動するように指示します。これにより、ssh経由でログインしたときに取得した起動スクリプトがロードされます。

これがそのようなやり方であることには正当な理論的根拠があると確信していますが、Linux、cywgin、macosの各システムで同じプロファイルを共有しているので、驚くべきことで少し面倒です。

0
edk750