プロンプト変数$PS1
はおそらく設定されなかったので、組み込みのデフォルト\s-\v\$
が使用されます。
bashが対話的に起動すると、それは通常のいずれか、コンフィギュレーション・ファイルをソース~/.bashrc
または~/.bash_profile
、それらが存在する仮定し、これは手の込んだプロンプトが設定されている方法です。からman bash
:
INVOCATION
[...] 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:"
ここに色を使用するためのガイドがあります。\[
andで印刷されない文字を囲む必要があるという事実に注意してください\]
(色についての回答の最後でこれについての議論があります)。