コマンドライン(bash)プロンプトを短くするにはどうすればよいですか?


回答:


241

現在のターミナルインスタンスのみで変更するには

入力してEnterキーPS1='\u:\W\$ 'を押すだけです。


「永続的に」変更するには

~/.bashrc、次のセクションを見つけます。

if ["$ color_prompt" = yes]; それから
    PS1 = '$ {debian_chroot:+($ debian_chroot)} \ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]:\ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $ '
他に
    PS1 = '$ {debian_chroot:+($ debian_chroot)} \ u @ \ h:\ w \ $'
fi

を削除し、大文字に@\h置き換えて、次のようにします。\w\W

if ["$ color_prompt" = yes]; それから
    PS1 = '$ {debian_chroot:+($ debian_chroot)} \ [\ 033 [01; 32m \] \ u \ [\ 033 [00m \]:\ [\ 033 [01; 34m \] \ W \ [\ 033 [00m \] \ $ '
他に
    PS1 = '$ {debian_chroot:+($ debian_chroot)} \ u:\ W \ $'
fi

保存し、終了し、ターミナルを閉じて、別のターミナルを起動して結果を確認します。


たくさんのオプション!

  • より多くのオプションを備えた、より広範なハウツーについては、こちらをご覧ください
  • 小さなPythonスクリプトを使用してプロンプトを設定し、短縮がディレクトリ構造の奥にいるときにのみ行われるようにするには、この回答を参照してください。

1
あなたはまた、多くの情報...そしてのように末尾に改行することができunix.stackexchange.com/q/88780/10043
マイケル・デュラント

これをグローバルにする方法はありますか?言い換えれば、私が別のユーザーにsudoする場合、この設定は引き継がれますが、自分だけのために(つまり、ユーザーが通常自分のアカウントを使用する場合には)引き継がれますか?
ctote

LinuxとOSXの両方で動作共有の.bashrcを持っているために、私はに切り替えたため、unix.stackexchange.com/a/127800/10043
マイケル・デュラント

すなわちHOST='\033[02;36m\]\h' HOST=' '$HOST parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; } TIME='\033[01;31m\]\t \033[01;32m\]' LOCATION=' \033[01;34m\]pwd | sed "s#(/ [^ /] \ {1、\} / [^ /] \ {1、\} / [^ /] \ {1、\} /)。*(/ [^ /] \ { 1、\} / [^ /] \ {1、\})/ \ {0,1 \}#\ 1_ \ 2#g "' BRANCH=' \033[00;33m\]$(parse_git_branch)\[\033[00m\]\n\$ ' PS1=$TIME$USER$HOST$LOCATION$BRANCH PS2='\[\033[01;36m\]>'
マイケルデュラント

使用する実際のコードの答えを参照してください。
マイケルデュラント

104

現在の端末でこのコードを実行します

PROMPT_DIRTRIM=3

これで、bashプロンプトには最後の3つのディレクトリ名のみが表示されます。1を選択して、現在のディレクトリのみを表示できます。詳細については、GNUドキュメントを参照してください

の効果:

/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists# 

永続的に作成する場合~/.bashrcは、最初に次の行を追加します。

PROMPT_DIRTRIM=3

またはゼロより大きい別の数値。


7
ただ、追記:これはバッシュ4が必要です
ステファン・Lasiewski

ニース...私は(機能付き)、このためbach_aliasを追加したpromptdir() { PROMPT_DIRTRIM=$1; }だけで生きやすいように...
dgoosens

18

これは私の好みのプロンプト設定です:

に追加 ~/.bashrc

PS1='[\u@\h \W]\$ '    

次のようになります。

[user@hostname dirname]$

$記号の後にスペースがあります)


各単語の間にスペースを追加するにはどうすればよいですか?また、色を塗ることはできますか?
ダニエルスプリンガー

6

個人的には、bashプロンプトで現在のフォルダーのみを表示することを好みます。これは、次のコマンドで実行できます。

PS1='\W\$ '

起動するたびに有効にする場合は、上記のコマンドを〜/ .bashrcに追加します。


1

私はこれが非常に古いことを理解していますが、エイリアスを作成することを誰も提案しなかったので、投稿したいと思いました。使用バッシュプロンプトのエスケープシーケンスを私はエイリアスを作りましたshorten

では~/.bash_aliasesここで、あなたは省略または短縮呼び出すときに、私はまた、端末をクリア好みに応じて変更することができますプロンプトの色を設定するには、$ブルーVARに気づくでしょう。

alias c='clear'

alias shorten='PS1="$Blue$USER:\W$ "&& c'

OPの必要なプロンプト文字列を実現するには:

alias shorten='PS1="$USER:\W$ "'

~/.bashrcコピーで定義され、https: //wiki.archlinux.org/index.php/Color_Bash_Promptから貼り付けられた色があります。サイドノートでは、ANSIコードの色は何ですか?見ているだけで混乱しています。

Blue='\e[0;34m'         # Blue

.bash_aliasesに到達する方法が分からないので、このためのステップバイステップガイドは非常に便利です。ありがとう
カヨテ16

2
「。」プレフィックスは、隠しディレクトリまたはファイルを示します。チルダ「〜」は、$ HOME変数の短い形式です。したがって、「〜/ .bash_aliases」は「/home/$USER/.bash_aliases」の単なる短縮形です。「.bash_aliases」を開くには、ターミナルを開いて「gedit /home/$USER/.bash_aliases」または「gedit〜/ .bash_aliases」と入力するか、ホームディレクトリでctrl-hと入力して隠しファイルを表示し、直接ファイルを開きます。 。お役に立てば幸いです。便利なエイリアスのGoogle検索を行うこともできます。
アリーカーバー

0

私は機能書いたあなたのニーズに合わせて変更することができました:

function termprompt() {
    PS1="${PS1//@\\h/}"     # Remove @host
    PS1="${PS1//\\w/\\W}"   # Change from full directory to last name
}

この関数は~/.bashrcPS1ラインが完全に計算された後またはその近くに配置します。

次のように入力します。termpromptあなたのプロンプトを短くしたい時はいつでもか、しているtermpromptあなたの底から呼び出される~/.bashrc永続のために。

他の多くの回答に対するこの手法の利点は、4つの異なる方法(xterm + no-color、xterm + color、no-xterm + no-color、no-xterm + color)で.bashrcセットアップできることPS1です。この回答は、現在の4つの方法すべてと、おそらく将来の方法もサポートしています。

別の利点は、この方法では、変更を挿入するために通過する複雑な制御コードが少ないことです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.