Як завжди відображати повний шлях до каталогу у mac-терміналі (наприклад, термінал Linux)


70

У моєму терміналі ubuntu у мене завжди поточний каталог показаний повністю. Просто так:

blabla @ blublu: ~ / музика / мій_альбом / класичний / Бетховен $

Але в моєму Mac (Mac OS X 10.6.5) термінал не показує повний шлях, і це так:

blabas-MacBook-Pro: класичний бетховен $

Чи все-таки я міняю поведінку терміналу mac, щоб він діяв як термінал Linux?


1
повинен бути екран з налаштуваннями програми Terminal. що ви можете змінити поведінку.

1
Термінали Linux не магічно показують повний шлях; це залежить від ваших налаштувань. Деякі дистрибутиви Linux налаштовують речі, щоб вони показували повний шлях за замовчуванням, деякі - ні. Все залежить від змінної $ PS1. (Див. Відповідь Асмуса.)
frabjous

Відповіді:


108

Щоб bash повернув "user @ hostname: path / to / directory $" як своє запит, додайте наступний рядок до ~ / .bash_profile:

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

або

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

якщо вам подобається пробіл між командою $ та командою

щоб зміни вступили в силу негайно, запустіть таку команду у кожному відкритому вікні (або перезапустіть Термінал):

source ~/.bash_profile

РЕДАКТУВАННЯ : Перелік доступних рядків можна знайти в параграфі "ПРОМАТИВАННЯ" на сторінці "man" для bash ( man bash):

ПРОДУКЦІЯ

  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$значить?
Яс

3
@Jas Я відповідно оновив свою відповідь, не знаю, чому я цього не робив тому ^^
Асмус


8

Я змусив це виглядати дуже схоже на термінал centOS на моєму Mac. Відкрийте 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`
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.