2009-09-25 12:03:09 +0000 2009-09-25 12:03:09 +0000
107
107

UbuntuでBashをデフォルトシェルにするには?

ホームディレクトリに.bash_profileがあるのですが、ログイン時に実行されません。以下のようにすると、期待通りになります:

ssh myhost
bash
source ~/.bash_profile

しかし、通常はログイン時にすべて実行されます。どう思いますか?

回答 (8)

176
176
176
2009-09-25 12:08:58 +0000

使用方法:

chsh

パスワードを入力し、使用するシェルへのパスを指定してください。

Bashの場合は/bin/bashになります。Zshの場合は/usr/bin/zshとなります。

37
37
37
2009-09-25 12:09:20 +0000

akiraさんの回答の上に、 /etc/passwd ファイルを編集してデフォルトシェルを指定します。

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

最後にシェルが指定されているので、この例のような行が出てきます。

4
4
4
2009-09-25 12:14:23 +0000

ターミナルプログラムを確認してみてください。bin/bash

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

4
4
4
2018-01-25 18:44:30 +0000

bashを有効にする。

$ /bin/bash

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

$ sudo usermod -s /bin/bash username

where.

-s, --shell SHELL new login shell for the user account
2
2
2
2010-06-01 11:40:25 +0000

もう一つの方法は、スタートアップスクリプトの名前を .profile に変更することです。このファイルは、ほとんどの Unix シェル .

1
1
1
2019-11-17 19:17:11 +0000

もし、/etc/passwdファイルに自分のユーザ名が表示されていない場合(IT企業などで他のドメインの管理下にある場合など)、以下のようにchshオプションで「ユーザが見つかりません」と表示されている場合は、以下のようにしてみると良いかもしれません。

以下のトリックのロジック -> Ubuntuでは、/bin/shがダッシュになっています。これをbashに変更することができます。Ubuntuでは、/bin/shはdashへのシンボリックリンクです。

sudo dpkg-reconfigure dash

を実行し、Noを押すとbashに切り替わります。

さて、「Terminal–Edit–preferences–Command」で、ステートメント

Run command as login shell

これで完了です。

1
1
1
2019-06-27 13:29:35 +0000

シェルをデフォルトのシェルにするには、まず、/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/whoami
  2. https://linux.die.net/man/5/shells
  3. https://linux.die.net/man/1/chsh 0x3
0
0
0
2018-09-15 19:37:41 +0000

あなたの質問には十分な情報がないので、はっきりとしたことは言えませんが、以前にも同じ問題にぶつかったことがあります。パスワード入力で /bin/bash が既に設定されていると仮定すると、ターミナルの起動方法に問題があるかもしれません。

GUI 端末を起動しようとしている場合、例えば gnome-terminal のような場合、シェルが bash のスタートアップファイルを読み込んでくれると期待しているかもしれません。しかし、Ubuntuや他のシステムではデフォルトではこのようなことは起こりません。

私がUbuntuで修正した方法は、gnome-terminalの環境設定を編集して、起動コマンドをbash -lに設定することです。-l--loginの略です。これは bash をログインシェルとして起動するように指示するもので、ssh 経由でログインしたときと同じように起動スクリプトを読み込むようになります。

これがこのような方法であることには正当な理由があると思いますが、私は linux、cywgin、macos システムで同じプロファイルを共有しているので、これには驚きましたし、少々イライラさせられました。