まず第一に:BASHシェルを使用していることを確認してください。
私はMacBookのMountainLionにいて、PS1コマンドのようなものです。私のプロンプトは次のようになります。
⌘ ~/SVN-Precommit-Kitchen-Sink-Hook.git/ (master) _
問題は、プロンプトに何をさせたいかということだと思います。BASHプロンプトは、Kornshellではちょっとしたハッキングが必要なあらゆる種類のきちんとしたことを実行できる一連のエスケープシーケンスを埋め込むことができます。
コマンドラインで入力し、 PROMPTINGman bash
の見出しを見つけます。次のように表示されます。
When executing interactively, bash displays the primary prompt PS1 when it is ready to read a com-
mand, and the secondary prompt PS2 when it needs more input to complete a command. Bash allows these
prompt strings to be customized by inserting a number of backslash-escaped special characters that
are decoded as follows:
\a an ASCII bell character (07)
\d the date in "Weekday Month Date" format (e.g., "Tue May 26")
\D{format}
the format is passed to strftime(3) and the result is inserted into the prompt string;
an empty format results in a locale-specific time representation. The braces are
required
\e an ASCII escape character (033)
\h the hostname up to the first `.'
\H the hostname
\j the number of jobs currently managed by the shell
\l the basename of the shell's terminal device name
\n newline
\r carriage return
\s the name of the shell, the basename of $0 (the portion following the final slash)
\t the current time in 24-hour HH:MM:SS format
\T the current time in 12-hour HH:MM:SS format
\@ the current time in 12-hour am/pm format
\A the current time in 24-hour HH:MM format
\u the username of the current user
\v the version of bash (e.g., 2.00)
\V the release of bash, version + patch level (e.g., 2.00.0)
\w the current working directory, with $HOME abbreviated with a tilde
\W the basename of the current working directory, with $HOME abbreviated with a tilde
\! the history number of this command
\# the command number of this command
\$ if the effective UID is 0, a #, otherwise a $
\nnn the character corresponding to the octal number nnn
\\ a backslash
\[ begin a sequence of non-printing characters, which could be used to embed a terminal
control sequence into the prompt
\] end a sequence of non-printing characters
簡単なプロンプトを見てみましょう。ユーザー名、使用しているシステム、および現在のディレクトリを表示したいと思います。PS1は次のように設定できます。
PS1="\u@\h:\w$ "
これは私に与えるでしょう:
david@davebook:~$ _
は\u
私のユーザー名(david)、\h
は私のマシン名(davebook)であり、\w
私の$HOME
ディレクトリに関連する現在のディレクトリが表示されます。
プロンプトにコマンドを埋め込むこともできます。
PS1="\$(date) \u@\h:\w$ "
これで、日付と時刻がプロンプトに埋め込まれます。
Fri Feb 1 09:45:53 EST 2013 david@DaveBook:~
ちょっとばかげています(私は日付をフォーマットする必要がありました。さらに、BASHはすでに日付のシーケンスを組み込んでいます)が、あなたはその考えを理解します。
独自のプロンプトを作成することをお勧めします。あなたがgit
ユーザーであり、コマンドラインを快適に使用しているのであれば、あなたはおそらくあなたが望むように見えるようにあなた自身に素晴らしいプロンプトを出すことができます。構文を使用して、\$(command)
新しいPSコマンドごとに実行される対話型コマンドを含めることができます。ANSIエスケープコードを使用して、プロンプトのさまざまな部分に色を付けたり、すばらしい機能を実行させたりすることができます。
プロンプトをゆっくりと少しずつ作成します。を設定するシェルスクリプトを作成し、PS1
次のようにソースします。
$ echo "PS='\u@\h:\w\$ " > prompt.sh
$ chmod a+x prompt.sh
$ . prompt.sh
次に、プロンプトが希望どおりに機能するようになるまで、プロンプトに機能を追加します。
個人的には、派手なプロンプトは、予想外のときにバラバラになる傾向があるという理由だけで避けています。たとえば、私は編集にVIシーケンスを使用していますが、コマンドラインを編集しようとすると、そのプロンプトは完全にバラバラになります。
ファンシーなプロンプトは、最初の数分間は本当にクールなTalking Mooseのようなプログラムを思い出させ、その後は本当に、本当に迷惑になり始めます。