コマンドラインプロンプトの間に空行を挿入する


8

コマンドラインを使用すると、多くの場合、煩雑になります。たとえば、過去のコマンドとその出力を調べるのは不便です。

コマンドプロンプトが表示される前に毎回改行を追加したいと思います。そのようです:

<clutter>
<blank line>
name@machine:~$

私はbashシェルを使用しています。どうすればこれを達成できますか?


1
:私はこれを好むlifehacker.com/5840450/...
Maerlyn

回答:


21

これを実現する1つの方法は、.bashrcファイルを変更することです。.bashrcファイルの最後に以下を配置するだけです。

PS1="\n$PS1"

これがどのように機能するかを説明するためにPS1、プロンプトとして何を表示するかを含む変数を指定します。このすべてが言っているのは、「PS1の前のコンテンツに設定PS1し、改行文字を付加したもの」です。でそれを置く.bashrc( -参照ではなく、ログインシェルほとんどのディストリビューションには、単にそれをあなたが対話型シェルを開くたびに実行bashを行いログインシェルと非ログインシェルの違いを?)。


2
これがどのように機能するかを説明するために、PS1はプロンプトとして表示する必要があるものを含む変数です。これは、「PS1をPS1の以前の内容に、改行文字を付加して設定する」ということです。
Muzer、2015

@Muzerたぶんあなたのコメントは編集かもしれません
rpax

@rpax良いアイデア、提出済み。.bashrc自体についても少し追加しました。
Muzer、2015

満足できることPS1="\n$PS1"に、ターミナルで実行するとすぐに効果があります:)
mwfearnley

入力した後clear(またはを押した後Ctrl+l)を除いて、表示される最初の行は空行です。細かいこともあるかもしれませんが、最初の行をプロンプトにした方がいいと思います。
ロバートKusznier

6

PROMPT_COMMANDを使用できます。

PROMPT_COMMAND="printf '\n';$PROMPT_COMMAND"

または:

PROMPT_COMMAND="echo;$PROMPT_COMMAND"

2
最初のものはPROMPT_COMMAND="printf '\n';$PROMPT_COMMAND"?現在の形式では、.bashrcファイルに配置すると何もしないように見えます。
Slothworks

@Slothworks:はい、もちろん、私のタイプミスは修正しました。
cuonglm 2015

実際にそれを行うには複数の方法があります:)回答ありがとうございます。
Slothworks、2015

2
コマンドラインで実行されるすべてのコマンドの後に追加のコマンドを実行するため、Slothworksの代替手段の方が優れています。printfそしてecho、もちろん、非常に軽量ですが、それはまだ使用しても意味がありませんPROMPT_COMMAND時にPS1仕事を行います。
ミッケル、2015

プロンプトを実行するたびに変更されるコマンドに何かを入れたい場合は、PS1ではなくPROMPT_COMMANDが必要です。これは一般にgitで使用され、リポジトリのどのブランチがアクティブであるかを表示します。GoogleがPROMPT_COMMANDを提案して、何ができるかを確認します。
Walter

4

別の方法:のPS1=プロンプトに行を残します.bashrc。ここに.bashrc私が持っているすべてのLinuxマシンで文字通りセットアップする方法があります:

PS1=' 
serg@ubuntu [$(pwd)]
================================
$ '

上記の例でわかるように、ユーザー名はプロンプトにハードコードされています。もちろん、bashまたは別のシェル(例:ksh)が提供するエスケープシーケンスを使用できますが、もう少し中立的なオプションはwhoamihostname(ユーザー名を報告する)や(明らかにホスト名を報告する)などのコマンドでパラメーター置換を使用することです。例えば:

PS1='
$(whoami)@$(hostname):$(pwd)
$ '

プロンプト、、.bashrcおよびパラメーターの展開に関するより楽しいものについては、ここで私の答えをチェックしてください:

端末を使用してバッテリーの状態を確認する方法は?

端末/シェルにカスタムデザインを含めるにはどうすればよいですか?そして

コマンドプロンプトの前にターミナルで実行中のクロックを表示するにはどうすればよいですか?


ユーザー名とマシン名がハードコードされているのはなぜですか?それらがパラメータ化されていればいいのですが
rpax

@rpax実際のユーザー名は異なります。それがプロンプトに表示される私の名前です。マシン名も異なります。
Sergiy Kolodyazhnyy 2015

$(whoami)代わりに何かを意味しましたusernamehardcoded
rpax

@rpaxああ、それも可能です。それを私の回答に含めます
セルギー・コロディアズニー

4
\u\hをそれぞれユーザー名とホスト名に使用できることに注意してください。あなたは、(様々な形式で現在の時刻を例えばための)もっと特殊文字を見ることができ、ここで
Yossarian
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.