通常、私の端末プロンプトは
username place$
今それだけを示しています
bash-4.2$
そして、すべての色設定が失われました(端末プロファイルでは同じ配色ですが、色が表示されません)
私は何が起こるのかまったくわかりません(そして、これを検索する方法がわかりません)。
それは何も変わらない、私はEclipseとmavenで作業していた、新しいターミナルを開いた、そして新しいターミナルは色を持っていなかった。
注:〜/ .bashrcファイルはありませんが、〜/ .bash_profileがあります。
プロンプト変数$PS1
が設定されていない可能性があるため、組み込みのデフォルト\s-\v\$
が使用されます。
Bashがインタラクティブに起動すると、通常は~/.bashrc
または~/.bash_profile
のいずれかである構成ファイルをソースとして提供し、それらが存在すると想定します。これにより、より洗練されたプロンプトが設定されます。 man bash
から:
[〜#〜]呼び出し[〜#〜]
[...] bashが対話型ログインシェルとして、または--loginオプションを使用して非対話型シェルとして呼び出されると、ファイル/ etc/profileが存在する場合、そのファイルからコマンドを読み取って実行します。そのファイルを読み込んだ後、〜/ .bash_profile、〜/ .bash_login、と〜/ .profile、を探します注文[...]
[...]ログインシェルではないインタラクティブシェルが起動すると、bashは〜/ .bashrc、からコマンドを読み取って実行します(そのファイルが存在する場合)。
プロンプトを設定しないと、ログインシェルと非ログインシェルの2つの異なるコンテキストで発生する可能性があります。ディスプレイマネージャーを使用してGUIに直接ログインする場合、仮想コンソールに切り替えない限り(たとえば、 CtrlAlt + F1〜F6)。ただし、新しいログインシェルを明示的に開くことにより、GUIでbashログインプロファイルをテストできます:bash -l
。
通常のGUI端末などで問題が発生する場合は、~/.bashrc
が見つからないか、グローバルファイル(おそらく/etc/bashrc
)のソースを除外するように編集されています。
~/.bashrc
が存在しない場合は、新しいユーザー用に/etc/skel/.bashrc
を使用して作成する必要があります。そのファイルをホームディレクトリにコピーするだけで、次に開く新しいシェルに対してデフォルトのプロンプトが表示されます。
~/.bashrc
が存在する場合は、/etc/bashrc
をソースとする行があるかどうかを確認します。
. /etc/bashrc
-OR-
source /etc/bashrc
そうでない場合は、そのファイルが存在するかどうかを確認し(少なくともほとんどのLinuxディストリビューションでは存在するはずです)、そのような行を~/.bashrc
に追加します。
ログインシェルと非ログインシェルで問題が発生する場合、問題はおそらく上記と同じです。ログインシェルでのみが発生する場合は、上記のINVOCATION引用の下にログインシェルで言及されているファイルがないか、~/.bashrc
、これはほとんどのLinuxディストリビューションでは正常です。これらのファイルがいずれも存在しない場合は、~/.bash_profile
を次のように作成します。
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
これにより、ほとんどの場合、構成を1つのファイル(~/.bashrc
)に保持できます。
どうしてもプロンプトを返せない場合は、次のようにしてプロンプトを作成し、~/.bashrc
に入れることができます。
if [ "$PS1 ]; then
PS1= .... # see below
fi
これは、$ PS1が設定されていて、対話型シェルのデフォルト値があり、他のものがこの値を使用してこれが対話型環境であるかどうかを判断する可能性があるため、他の設定はしたくないためです。
Bashのmanページには、ユーザー名や現在の作業ディレクトリなどの動的機能を使用してプロンプトを設定する方法を説明するPROMPTINGセクションが含まれています。
PS1="\u \w:"
ここに色を使用 のガイドがあります。印刷されない文字を\[
および\]
で囲む必要があるという事実に注意してください(色についての回答の最後でこれについての説明があります)。
これを〜/ .bashrcおよび〜/ .bash_profileに、影響を受けるユーザーのrootとして貼り付けるだけです。
# Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
セキュリティ上の理由からCygwin bashをアップグレードする必要がありました。
2009年頃の古いbash = 4.1.10(4)-release(i686-pc-cygwin)
$ echo $PS1
\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$
新しいbash = 4.4.12(3)-release(i686-pc-cygwin)circa 2016
まったく同じルックアンドフィールを得るには、.bashrc
に追加する必要がありました。
#
GREEN="\[$(tput setaf 2)\]"
YELLOW="\[$(tput setaf 3)\]"
RESET="\[$(tput sgr0)\]"
PS1="\n${GREEN}\u@\h ${YELLOW}\w${RESET}\n$ "
cd $HOME
#
注:cd $HOME