web-dev-qa-db-ja.com

OS XターミナルでBashプロンプトプレフィックスを変更する

ターミナルのスペース「name s-MacBook-Pro」を使用して、コマンドがすべての行に入力されている同じ行に、大量のプロンプトがあります。

これを削除する方法や短くする方法はありますか?

44
sidegeeks

プロンプトは、環境変数PS1によって設定されます。これはシステムによって/private/etc/bashrcで設定されますが、通常はユーザーがホームディレクトリ内のドットファイルで変更します。

このコマンドを使用して現在設定されているものを確認します。

echo $PS1

~/.bash_profile(または以前に定義した場所)で変数を設定して変更します。

export PS1="$"

以下を実行して、ドットファイルから設定をリロードします。

source ~/.bash_profile

これにより、新しいシェルプロンプトが単に$になります


プロンプト変数

  • PS1:プライマリプロンプト文字列。デフォルト値は\s-\v\$ .です
  • PS2:セカンダリプロンプト文字列。デフォルトは>です
  • PS3selectコマンドのプロンプト
  • PS4:実行トレース中に各コマンドBashが表示される前に出力されます。 PS4の最初の文字は、必要に応じて複数回複製され、複数レベルの間接参照を示します。デフォルトは+です

構文(Bash manual から)

\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
83
davidcondrey