$ PS1変数の完全なリファレンスはどこにありますか?


20

私のマシン(Kubuntu 13.10)のデフォルトのPS1変数は次のとおりです。

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

少なくとも、上記のPS1変数を理解できるようにするために、$ PS1変数がどのように機能するかについてのリファレンスを探しています。


@RaduRădeanu今、別の回答に移しました。
マークレイモンド14年

一般的な注意事項として、PS1端末での値を設定することにより、これをいじることができますPS1="How r u, \u?"。変更は、ターミナルを閉じるまで続きます。
djvg

回答:


24

参照資料

これまでのところ、Bashプロンプトで使用できるすべてのものについての単一のリファレンスはありませんでしたが、それは数十年にわたって進化してきた機能であり、おそらくディストリビューションごとに異なるため、多すぎるとは言えません。ここで最も有用だと思うことを要約しようとしました。

このハウツーは最も完全ですが、非常に長くてとりとめのないものです。より便利なセクションのいくつか:

  • セクション2.4および2.5では、(印刷可能な)エスケープ文字を含むPS1の設定の基本について説明しています。
  • セクション3.4では、その理由\[\]必要性について説明します。
  • セクション6では、プロンプトの色やxtermウィンドウのタイトルの設定など、使用する可能性のあるすべてのメイン(印刷不可)エスケープシーケンスについて説明します。

このガイドで${}、Bashでの一般的な動作について説明します。また、Ubuntuの質問では、それがどのように動作するかについてもう少し説明しdebian_chrootます。

それらの間では、デフォルトのUbuntu PS1変数のすべてのキャラクターが説明されていると思います。

Ubuntuプロンプトの説明

プロンプトには3つの部分があります。

  • \[\e]0;\u@\h: \w\a\] xtermウィンドウのタイトルバーを設定します。

    • \[ 印刷できない文字のセクションを開始します
    • \e]0; 'set xterm title'のエスケープシーケンスです(これはテストしていませんが、0以外の数値が他のxtermプロパティを設定すると考えています)
    • \u@\h: \w使用するタイトル(\u\hおよびについては以下を参照\w
    • \a タイトルの終わりを示します
    • \] 印刷できない文字の終わりをマークします
  • ${debian_chroot:+($debian_chroot)}$ debian_chrootが設定されている場合、括弧内の$ debian_chrootの値に展開します。$ debian_chrootの詳細については、この質問を参照してください。
  • \u@\h:\w\$ プロンプト自体です:

    • \u 現在のユーザー名に展開します
    • \h 現在のホスト名に展開します
    • \w 現在の作業ディレクトリに展開します
    • \$#ルートおよび$他のすべてのユーザー向けに展開します

6

よるとバッシュリファレンスマニュアルPS1次のとおりです。

一次プロンプト文字列。デフォルト値は\s-\v\$です。表示される前に展開されるエスケープシーケンスの完全なリストについては、「プロンプトの制御」を参照してくださいPS1

他のいくつかの良い参照は次のとおりです。


bashマニュアルでは、PS1エスケープシーケンスについて詳しく説明しています。gnu.org
glenn jackman 14年

@Radu-おかげで、それまでよりもずっと先に進んでいます。まだ中に入ることができるものに関してはほとんど情報があるように思われる\[\]、しかし-あなたはそれのためにすべての参照を持っていますか?
マークレイモンド14年

@MarkRaymond 2つのリンクで説明しました(Linux / Unixで説明されているプロンプトPS1プロンプトの印刷):\[-非印刷文字のシーケンスを開始します。\]–非印刷文字のシーケンスを終了します。時間をかけて慎重に読んでください;)
ラドゥラデアヌ14年

はい、私はそれを読みました-私はそれらの非印刷文字が何をするかの参照を探していました。はっきりしないとすみません!
マークレイモンド


5

ss64.comは、私が見つけた最高のリファレンスを持っているようです。

次の変数について説明します。

\d   The date, in "Weekday Month Date" format (e.g., "Tue May 26"). 

\h   The hostname, up to the first . (e.g. deckard) 
\H   The hostname. (e.g. deckard.SS64.com)

\j   The number of jobs currently managed by the shell. 

\l   The basename of the shell's terminal device name. 

\s   The name of the shell, the basename of $0 (the portion following 
    the final slash). 

\t   The time, in 24-hour HH:MM:SS format. 
\T   The time, in 12-hour HH:MM:SS format. 
\@   The time, in 12-hour am/pm format. 

\u   The username of the current user. 

\v   The version of Bash (e.g., 2.00) 

\V   The release of Bash, version + patchlevel (e.g., 2.00.0) 

\w   The current working directory. 
\W   The basename of $PWD. 

\!   The history number of this command. 
\#   The command number of this command. 

\$   If you are not root, inserts a "$"; if you are root, you get a "#"  (root uid = 0) 

\nnn   The character whose ASCII code is the octal value nnn. 

\n   A newline. 
\r   A carriage return. 
\e   An escape character. 
\a   A bell character.
\\   A backslash. 

\[   Begin a sequence of non-printing characters. (like color escape sequences). This
     allows bash to calculate word wrapping correctly.

\]   End a sequence of non-printing characters.

\[ ... \]非印字文字列を定義します。カーソル位置を正しく追跡するために必要です。

\eあなたのプロンプトが起動中にエスケープシーケンス。もっとこれらのここに(そのページのノートで「Escキー」である\eシーケンス)。

  • 注:エスケープシーケンスがあまり好きではありません。を使用tputしてエスケープコードを取得します。

${debian_chroot:+($debian_chroot)}パラメータ展開です。こちらをご覧ください

  • 設定されている($debian_chroot)場合$debian_chrootは書き込みます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.