ターミナルの現在の作業ディレクトリを非表示にします


133

デフォルトでは、端末プロンプトには次のようなものが表示されます。

user@system:/folder1/folder2/folder3/folder4$

ファイルシステムを深くすればするほど、コマンドを入力するためのスペースが少なくなります。次のようなものだけを表示するように変更できますか?

>

つまり、自分がpwdどこにいるかを示すために入力するだけです。;)


1
これはコメントになりますが、コメントできません、ごめんなさい。カレントディレクトリを隠すことに加えて、以下のPS1値は、視覚的にあなたのbashがきれいにコマンドを区切るます:export PS1="\n___"
Hello Worldの

オリのソリューションで実験しました。カラーフォントは、端末にうまく機能:=エクスポートPS1 '[033 [0 \; 35メートル] \さh [\ 033 [0; 33メートル] \ W [\ 033 [00メートル]:'
linbianxiaocao

回答:


153
export PS1='\u@\h: '

その結果oli@bert:、プロンプトが表示されます。

本当に必要なものを最小限に抑えたい場合は、これを試してください:

export PS1='> '

~/.bashrcこれをファイルの末尾に添付して、ログイン間で保持することができます。

また、いくつかの色で創造的にすることもできます。サーバーで使用するものは次のとおりです。

export PS1='\[\033[0;35m\]\h\[\033[0;33m\] \w\[\033[00m\]: '

与える(完全な黒の背景で見やすい):

私の端末

PS1で使用可能な文字の用語集


2
プロンプトの一部として改行(\ n)を使用することもできるため、すべての情報と「>」を別々の行に置くことができます。
ak2

信じられないかもしれませんが、msysGitでこのような「極端な」シェルのカスタマイズに初めて遭遇しました。私はすぐにbashの世界に回心しました。すべての情報(現在のディレクトリ、Gitリポジトリからチェックアウトされた現在のブランチ、Gitインデックスの状態など)が揃っていて、本当にすごかったです。私は最近、古いラップトップに(Windows XPと一緒に)設置したUbuntuのインストールで同様のことを行う予定です。
dgw

3
色の設定に使用される形式は何ですか?
ラキブ

1
@SyedRakibAlHasan試用版echo -e "\e[31mHello World\e[0m"またはecho -e "\033[31mHello\e[0m World"ターミナルで、手がかりが得られるはずです。出典
daka

103

Oliの答えを拡張するために(そして、それらの省略記号にブックマークを付けるために):

bashプロンプト(stefano@linux:~$)は、表示される可能性のあるいくつかのプロンプトの最初のものにすぎません。

  • PS1:シェルを開いたときに表示されるデフォルトのプロンプト

    その値はと呼ばれる環境変数に保存されますPS1。値を表示するには、次を入力します

    echo $PS1

    これはあなたに何かを与えるでしょう

    \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

    変更するには、変数に新しい値を設定できます。

    export PS1="\u > "

    これにより、次のようなプロンプトが表示されます。

    stefano > 
  • PS2:二次プロンプトです。これは、コマンドが終了していないときに表示されます。入力echo "asdしてEnterキーを押すと、2番目のプロンプトで、逆コンマを閉じるまでさらに行を入力できます。

  • PS3(2)に使用されるプロンプトですselect

  • PS4は、のために使用さプロンプトで代替テキスト スタックトレース(デフォルト:+

変更を永続的にするには、ホームディレクトリの末尾.bash_profile(または.bashrcこの質問を参照)に変更を追加します。

以下に、これらを作成するときに使用できる略記の完全なリストを示します。

  • \a     「ベル」キャラクター
  • \A     24時間
  • \d     日付(例:火12月21日)
  • \e     「エスケープ」キャラクター
  • \h     ホスト名(最初の「。」まで)
  • \H     ホスト名
  • \j     現在実行中のジョブの数(ps)
  • \l     現在の端末
  • \n     改行
  • \t     時間(hh:mm:ss)
  • \T     時間(hh:mm:ss、12h形式)
  • \r     キャリッジリターン
  • \s     シェル(つまり、bash、zsh、ksh ..)
  • \u     ユーザー名
  • \v     Bashバージョン
  • \V     完全なBashリリース文字列
  • \w     現在の作業ディレクトリ
  • \W     現在の作業ディレクトリの最後の部分
  • \!     履歴の現在のインデックス
  • \#     コマンドインデックス
  • \$     ルートの場合は「#」、それ以外の場合は「$」
  • \\     リテラルバックスラッシュ
  • \@     時間(午前/午後の12時間形式)

もちろん、任意のリテラル文字列と任意のコマンドを挿入できます。

export PS1="\u \$(pwd) > "

どこ$(pwd)PWD「の出力」の代わりに立っています。

  • のようにコマンド置換がエスケープ\$(pwd)されている場合、プロンプトが表示されるたびに評価されます。それ以外の場合、$(pwd)bashの開始時に評価されるのは一度だけです。

プロンプトに色を表示したい場合は、bashの色コードを使用してそれを行うことができます。コードは3つの部分で構成されています。

40;33;01
  • セミコロンの前の最初の部分はテキストスタイルを表します。

    • 00 =なし
    • 01 =太字
    • 04 =アンダースコア
    • 05 =点滅
    • 07 =リバース
    • 08 =隠された
  • 2番目と3番目の部分は色と背景色です。

    • 30 =黒
    • 31 =赤
    • 32 =緑
    • 33 =黄色
    • 34 =青
    • 35 =マゼンタ
    • 36 =シアン
    • 37 =白

左から始まると仮定すると、各部分は省略できます。つまり、「1」は太字を意味し、「1; 31」は太字と赤を意味します。そして、命令をでエスケープし\33[、で終了することにより、ターミナルをカラーで印刷しますm。33、または16進数の1Bは、ASCII記号「ESCAPE」(ASCII文字セットの特殊文字)です。例:

"\33[1;31mHello World\33[m"

「Hello World」を明るい赤で印刷します。


私は追加export PS1='\[\033[1;31m\]\w\[\033[00m\] \$> 'しました/etc/bash.bashrcが、何も変わらないように見えました...それはセッションごとに動作しますが、永続的にすることはできません。
ジャレッドトリッチュ

8

別の方法は、作業ディレクトリのパスが長くなりすぎたときに短くすることです:ターミナルコマンドプロンプトの作業ディレクトリをトリミングします。

目的のトリミングロジックを実装する小さなPythonスクリプトを作成します。

例:〜/ short.pwd.py

import os
from commands import getoutput
from socket import gethostname
hostname = gethostname()
username = os.environ['USER']
pwd = os.getcwd()
homedir = os.path.expanduser('~')
pwd = pwd.replace(homedir, '~', 1)
if len(pwd) > 30:
    pwd = pwd[:10]+'...'+pwd[-20:] # first 10 chars+last 20 chars
print '[%s@%s:%s] ' % (username, hostname, pwd)

次に、ターミナルからテストします。

export PROMPT_COMMAND='PS1="$(python ~/.short.pwd.py)"'

結果に問題がなければ、コマンドを〜/ .bashrcに追加するだけです


Exa ...〜/ short.pwd.py、export ...〜/ .short.pwd.py私は両方が同じでなければならないと思います。両方の場所に追加のコマンドを入力するか、まったく実行しません。しかし、これは素晴らしい答えです
。.– MycrofD

7

私はこれを一時的にしたいことがよくあります。ここに私がやることがあります:

$ export OLD_PS1=$PS1                    # save Long Prompt to OLD_PS1
$ export PS1="\u > "export PS1="\u $ "   # change to PS1 to Short Prompt
$ export PS1=$OLD_PS1                    # restore Long Prompt to PS1

これが誰かの助けになることを願っています。


1

macOSユーザーの場合:

open ~/.bash_profile

ファイルの最後に次の行を追加して保存します

export PS1='\u:\w\$ '

ホームディレクトリでの結果:

user: ~$

ここで 、現在の作業ディレクトリ$のユーザーwのuは、表示を促す

次のスタイルを試すことができます。

export PS1='$ '

プロンプトとして$を使用するだけで、他には何もありません。 と同じように:

$ 

0

私を助けたのは:export PS1 = '$'

ターミナルを開くたびにこれを使用するには、.bashrcの最後にコマンドを記述します。このコマンドは、「cd」の後に「gedit .bashrc」を付けて開くことができます。

お役に立てれば。私のために働いた。

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