Сделать OS X Terminal команды, которые я набрал BOLD


11

Я хотел бы, чтобы команды, которые я набрал (ввод) в терминал, выделялись из всего вывода.

Например:

imac: ~ buster $ chmod -R gw myfolder
imac: ~ buster $ cd myfolder
imac: myfolder buster $ ls -l
всего 0
drwxr-xr-x 9 root admin 306 20 апреля 2010 г. bin
drwxr-xr-x 7 root admin 238 апр. 20 2010 включает в себя
drwxr-xr-x 73 root admin 2482 18 мая 17:16 lib
drwxr-xr-x 6 root admin 204 20 апреля 2010 man
imac: myfolder buster $ echo Go Giants!
Go Гиганты!

смелые прыжки на ум, но я бы принял цвет или даже выделение всей линии ...

Я уверен, что есть способ сделать это, но это не очевидно для меня ...

Благодарность!

Ответы:


9

Отредактируйте свой ~/.bash_profileили ~/.bashrc(см. Комментарий Жиля ниже) и добавьте следующие строки:

BOLD="\[\033[1m\]"
OFF="\[\033[m\]"
PS1="${OFF}\u@\h:\w \$${BOLD}"
PS2="> ${BOLD}"
trap 'echo -ne "${OFF}" > $(tty)' DEBUG

Переместите ${BOLD}вокруг, чтобы сделать часть подсказки также жирным шрифтом. Если сама подсказка не должна быть цветной, вам нужен ${OFF}префикс PS1, иначе пустые строки (нажатие клавиши ввода без указания чего-либо) сделают следующую подсказку жирным (спасибо @Jay, еще раз спасибо!)

Это добавляет отладочную ловушку, чтобы отключить жирный формат, так что это довольно много. Кредиты (работает без группы tty на OS X, хотя).

Это что-то вроде хака, поэтому используйте его на свой страх и риск.

Только установка ваших PS1/ PS2приглашений на жирный шрифт будет проще и так же заметна:

BOLD="\[\033[1m\]"
OFF="\[\033[m\]"
PS1="${BOLD}\u@\h:\w \$${OFF}"
PS2="${BOLD}>${OFF} "

1
Нет ~/.bash_profile, но ~/.bashrc(или оба, если вы не .bashrcиз источника .bash_profile). Эти параметры должны быть установлены для каждого интерактивного экземпляра bash и .bash_profileдоступны только для чтения оболочкой входа в систему.
Жиль "ТАК - перестать быть злым"

Спасибо, отредактирую мой ответ. У меня нет bashrc, поэтому я использовал то, что было там.
Даниэль Бек

2
Я понял это, положил $ {OFF} впереди: PS1 = "$ {OFF} \ u @ \ h: \ w \ $$ {BOLD}"
Джей

1
@Daniel: не должно быть подчеркивания ~/.bashrc.
Приостановлено до дальнейшего уведомления.

1
Если я использую стрелку вверх четыре раза подряд, чтобы просмотреть историю команд, то первые 3 символа старой команды становятся частью приглашения, и удалить их невозможно. Я не могу удалить их клавишей Backspace.
Джей

2

У меня были небольшие проблемы с решениями здесь, когда я использовал El Capitan (особенно в iTerm2, но также и в старом терминале). Я получил два вида ошибок:

  1. Возможность полностью удалить мою подсказку bash, просто нажав пробел, а затем клавишу backspace
  2. Нежелательные символы попадают в мой вывод bash, например, ввод pwdприведет к

    \[\]/Users/home/Directory

    или в

    \e[0m/Users/home/Directory

Я предлагаю следующее решение, которое на самом деле просто больше того же самого.

    BOLD="\033[1m"
    OFF="\033[m"
    PS1="${OFF}\u@\h :${BOLD}"
    PS2="> ${BOLD}"
    trap 'echo -ne "${OFF}" > $(tty)' DEBUG

Хорошая работа! Всего несколько небольших отличий, но я рад, что вы нашли способ для этого работать с Эль-Капитаном.
DrZoo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.