Mac端末(Linux端末など)で常に完全なディレクトリパスを表示する方法


71

私のubuntu端末では、常に現在のディレクトリが完全に表示されています。ちょうどこのような:

blabla @ blublu:〜/ music / my_album / classical / beethoven $

しかし、私のMac(Mac OS X 10.6.5)ターミナルではフルパスが表示されず、次のようになります。

blabas-MacBook-Pro:classical beethoven $

とにかく、Linux端末のように動作するようにMac端末の動作を変更することはありますか?


1
ターミナルアプリの設定に画面が必要です。動作を変更できます。

1
Linuxターミナルは魔法のように完全なパスを表示しません。設定によって異なります。一部のLinuxディストリビューションは、デフォルトでフルパスを表示するように設定しますが、そうでないものもあります。それはすべて$ PS1変数に依存します。(Asmusの回答を参照してください。)
狂気

回答:


109

bashがプロンプトとして「user @ hostname:path / to / directory $」を返すようにするには、〜/ .bash_profileに次の行を追加します。

export PS1='\u@\H:\w$'

または

export PS1='\u@\H:\w$ '

$とコマンドの間にスペースが必要な場合

変更をすぐに有効にするには、開いているすべてのウィンドウで次のコマンドを実行します(またはターミナルを再起動します)。

source ~/.bash_profile

編集:利用可能な文字列のリストは、bash(man bash)のmanページの「PROMPTING」の段落にあります。

催促

  When executing interactively, bash displays the primary prompt PS1 when it is ready to read a command, 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

1
またはPS1、開いているすべてのウィンドウにその割り当てを入力します。ところで、exportは不要です。
デニスウィリアムソン

6
実際、エクスポートを使用しない場合、環境変数ではなくシェル変数を定義するため、PS1はすべてのプロセスにグローバルに渡されません。
アスマス

1
export comは提案どおりに機能し、フルパスを表示していますが、端末を再起動すると、現在のディレクトリのみが表示されます(フルパスではありません)。どうすればこれを永久に保持できますか。
JiteshW

1
が何PS1\u@\H:\w$意味するのか説明することは可能でしょうか?
ジャス

4
@Jas私はそれに応じて答えを更新しましたが、なぜ私がこの数年前にやらなかったのか分かりません^^
Asmus


8

私は、MacのcentOS端末に非常によく似ているようにしました。ターミナルでbash_profileを開きます

nano ~/.bash_profile

以下を追加してください

# Show always fullpath on terminal
export PS1='\u@\H [\w]$ '

ターミナルを再起動すると、次のようになります

username@host.local [/Applications/MAMP/htdocs]$ 


1

/ wを/ Wに変更して、現在のフォルダーだけを作成します

色付きの端末

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '

カラーターミナルなし

    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '

ubuntu 16.04を使用し、〜/ .bashrcのファイルを変更します


0

このコマンドを使用しました。わたしにはできる。

最初、

vi ~/.bash_profile

次に、この単語を新しい行に追加します。

`export PS1='\u@\H:\w$ '`

最後に、

`source ~/.bash_profile`
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.