私が持っている.bash_profile
自分のホームディレクトリに、それはログイン時に実行取得されていません。私が次のことをすれば、物事は私が期待するように思えます:
ssh myhost
bash
source ~/.bash_profile
ただし、通常はすべてログイン時に発生します。考え?
私が持っている.bash_profile
自分のホームディレクトリに、それはログイン時に実行取得されていません。私が次のことをすれば、物事は私が期待するように思えます:
ssh myhost
bash
source ~/.bash_profile
ただし、通常はすべてログイン時に発生します。考え?
回答:
つかいます:
chsh
パスワードを入力し、使用するシェルへのパスを指定します。
Bashの場合は/bin/bash
。Zshのためになること/usr/bin/zsh
。
sudo chsh -s /bin/bash username
akiraの答えに加えて、/ etc / passwdファイルを編集してデフォルトのシェルを指定することもできます。
次の例のような行があります。
john:x:1000:1000:john,,,:/home/john:/bin/sh
シェルは最後に指定されます。
/etc/passwd
注意しているなら、ジョンの答えはシステムが提供するツールをうまく利用することです。
端末プログラムを確認することがあります。/ 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
sudo
そのシステムにアクセスできると思いますか?別のユーザーのログインシェルを変更するという点で、なぜ指示を提供するのですか?
シェルをデフォルトにするには、まず次の内容を見て、コンピューターにインストールされ、認識されていることを確認します/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)
あなたの質問には、私が確実に言うには十分な情報がありませんが、以前にも同じ問題に直面しました。パスワードエントリに/ bin / bashがすでに設定されていると仮定すると、それがターミナルの起動方法になります。
GUIターミナルを起動しようとしている場合はgnome-terminal
、シェルがbashスタートアップファイルを読み取ることを期待しているかもしれません。ただし、これはUbuntuおよびデフォルトでは他のシステムでは発生しません。
Ubuntuで修正した方法は、gnome-terminalの設定を編集し、起動コマンドをに設定することbash -l
です。 -l
はの略です--login
。これにより、bashはログインシェルとして起動するように指示されます。これにより、ssh経由でログインしたときに取得する起動スクリプトが読み込まれます。
これが現状であることには良い根拠があると確信していますが、Linux、cywgin、macosシステム間で同じプロファイルを共有しているので、それは驚くべきことであり、少し面倒です。
~/.profile
かを~/.bash_login
ソースとするだけの3つのように、。(正確な順序を忘れていました。)