В терминале измените текст перед $


13

В терминале я всегда вижу, по какому пути я нахожусь:

macbook-romeo:School romeovs$ echo "example command"

который я считаю весьма полезным. Тем не менее, здесь также есть много ненужного: macbook-romeoэто бесполезно, так как я всегда на своем MacBook (да). Опять же, romeovsэто очень полезно (это мое имя пользователя).

Есть ли желание редактировать то, что показано здесь? например

22:50 - School - Romeo$ echo "example"

где 22:50сейчас время? (Это всего лишь пример, конечно, мне не понадобится время, я бы использовал текст, чтобы быть немного более минималистичным).

Ответы:


11

Эта статья OSX Daily содержит подробные инструкции о том, как это сделать. Короче говоря, вам нужно изменить ваш ~/.bash_profileфайл и изменить переменную PS1.

Ниже приведен список возможных переменных, которые вы можете отобразить:

  • \ d - текущая дата
  • \ t - Текущее время
  • \ h - имя хоста
  • # - Номер команды
  • \ u - имя пользователя
  • \ W - Текущий рабочий каталог (то есть: Рабочий стол /)
  • \ w - текущий рабочий каталог, полный путь (например: / Users / Admin / Desktop)

11

Вам нужно изменить файл .bashrc, найденный в вашем домашнем каталоге .

Откройте терминал и сделайте следующее:

  • cd ~
  • touch .bashrc
  • open .bashrc

Добавьте следующую строку в конец вашего файла .bashrc

экспорт PS1 = '\ t - \ W - \ u \ $'

  • Сохраните файл и закройте редактор
  • Вернитесь к терминалу и введите следующую команду:

    источник .bashrc

Boom! Теперь вы должны получить желаемую подсказку! (При желании подсказка была вашим примером)


Когда я сделал это, я получил следующее MBP-15:~ Daniel$ source .bashrc -bash: export: = ': недопустимый идентификатор -bash: export:\t - \W - \u$ ': not a valid identifier MBP-15:~ Daniel$
Даниэль Комптон

@DanielCompton Спасибо за указание на это, я обновил свой ответ, чтобы это сработало. :)
macaco

4

Это контролируется переменной оболочки $ PS1

Вы можете установить эту переменную на ваше усмотрение, временно или постоянно с помощью скриптов .login или .profile, в зависимости от того, какую оболочку вы используете.

Взгляните на следующий вывод для примеров:

Last login: Fri Oct 21 21:59:28 on ttys000

Dans-MacBook-Air:~ stuffe$ echo $PS1

\h:\W \u\$

Dans-MacBook-Air:~ stuffe$ PS1="Hello World $"

Hello World $PS1=`date`

Fri 21 Oct 2011 22:03:23 BSTsleep 60

Fri 21 Oct 2011 22:03:24 BSTPS1="`date +%H:%M` $"

22:04 $PS1="\h:\W \u\$"

Dans-MacBook-Air:~ stuffe$

Возможности безграничны. Есть кое-что, что вы также можете сделать с PS2, но я думаю, что это вступит в силу, только если вы являетесь пользователем root - детали неясны, мой Unix уже давно и основан на Solaris, а не Mac OS X, но основные принципы те же.

Дополнительная информация: Как предлагается в других ответах, есть встроенные флаги, такие как \ h, \ W и т. Д., Которые вы можете использовать, но вы также можете использовать вывод почти любой команды, используя "обратные галочки" (забавные одинарные кавычки) используется в моем примере даты выше). Команды внутри обратных тиков запускаются, и вывод заменяется, что позволяет вам включать что угодно, даже если нет встроенного флага, даже для, казалось бы, глупых вещей, что бы вы ни думали. Хотите включить время последней записи в файл журнала ошибок? Используйте что-то вроде:

PS1="`tail -1 $LOGFILE | awk '{print $1}'` $ "

(прочитайте последнюю строку файла, на которую ссылается $ LOGFILE, и напечатайте 1-й столбец, используя разделитель полей по умолчанию) и т. д. и т. д. Если вы можете выполнить его, вы можете включить его.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.