シェルのパーセント記号プロンプトとは何ですか?


16

ビデオを見ている間、私は次を見ました:

% more tinyUF.txt
10
4 3
3 8
6 5

コマンドの%前のこのサインは何moreですか?


2
export PS1=%
ローマングラフ

@RomanGräf、それは何ですか?
マキシムKoretskyi

1
置換箇所$を使用して、通常の記号を変更できます。export PS1=......
ローマングラフ

@RomanGräf、そうですね、提案に感謝します
マキシム・コレツキー

@RomanGräf:文字を変更するだけでなく、プロンプトを使用して実際にもっと多くのことができます。私には、マシン名(他のマシンにxtermウィンドウがあることが多いため)と現在のパスの最後のいくつかのディレクトリが含まれています。そして私がルートだと、それは明るい赤になります。
-jamesqf

回答:


29

それはシェルプロンプトです。より正確には、シェルのプライマリプロンプトです(いくつかあります)。これは、シェルの「先へ進み、入力の準備ができました」という方法です

%プロンプトでは一般的であるcshながら、型シェルsh-shells(などbashksh93)は、通常使用$プロンプトとして。

通常#、rootユーザーのプロンプトはに変更されます。これは、十分な能力を持つユーザーは、代替プロンプト(POSIX標準で定められているとおり)を使用することでその力を思い出す必要があるためです。

shタイプシェルのプライマリプロンプトは、シェル変数の値によって決まりますPS1


追加された以下のコメントの要約:

#ルートプロンプトの文字(シェルshcshシェルの両方で使用)は、たまたま共通のシェルコメント文字と一致しています。コマンドをルートとしてコピーして貼り付けると、シェルプロンプトもコピーされた場合、貼り付けたコマンドが動作しなくなります。これ#は、シェルにコメント規則がある前にルートプロンプトとして採用されたことに注意してください(参照:Doug McIlroyからの電子メール)。

プラン9のシェルが使用するプロンプトのデフォルトなどの文字を。この結果、プロンプトを含むコマンドをコピーして貼り付けると、貼り付けたコマンドが有効であることを意味します(実行されます)。esrc;

カスタムであるがコピーペースト可能なシェルプロンプトを使用可能にする方法は: something ;、を使用することです。ここsomethingで、たとえば、現在のディレクトリ、ホスト名、または時刻になります。


2
またzsh(Bourneスタイルのシェルですが、からの多くの機能を備えていますtcsh)。Bourneのようなシェルおよびcshのようなシェルは、通常#、uid 0のユーザーに使用することに注意してください。
StéphaneChazelas 17年

1
また、rc-likeシェルが使用する;ことに注意してください(フルラインをコピーして貼り付けることができます。これは有効なシェルコードです#。ルートのプロンプトがコメントであるのと同じ考えです)。
ステファンシャゼラス

2
rootの#の非常に重要な選択は、それを含むコマンドをコピーしても損害を与えないことです(#がコメントを開始するので、コマンドをコメントします(まあ、その最初の行))。一部の人々は「>」を使用し、それをコピーする場合、コマンドにフルパスまたは相対パスがある場合、または適切なディレクトリにいる場合(および十分な権限がある場合など)ルート)。私はこれが起こるのを見ました。
オリビエデュラック

1
@StéphaneChazelas:#-for-root規約は、行全体を簡単にカットアンドペーストできる端末が一般的になる前に長い時間をかけていないのですか?
hmakholmは、モニカに

@HenningMakholm、はい。これは、cshがコメントリーダーとして#を導入する前から始まりました。それでも、#...意図しない場合でも、行をコピー&ペーストするとコメントになります。それが都合の良い結果だと私は観察;rcますが、それがどちらの背後にある意図であったかはわかりません。
ステファンシャゼラス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.