Как мне навсегда изменить приглашение терминала в iTerm2 с помощью zsh?

#unix #command-line #terminal #command-prompt #zsh

#unix #командная строка #терминал #zsh

Вопрос:

В приглашении терминала в профиле по умолчанию это показывает:

 Last login: Sat Jun 21 17:43:00 on ttys000
➜  ~
  

Когда я набираю:

 ➜  ~  export PS1="|%*| ~ "
  

Я получаю это:

 |17:44:11| ~
  

Это то, что я хочу отобразить. Как мне сделать это постоянным, чтобы мне не приходилось вводить это каждый раз?

Я попробовал следующее: вставка export PS1="|%*| ~ " в .zsh , также в Prefrences>> Profile>> CustomeTheme и Default>> Command>> проверенная команда, которую я вставил export PS1="|%*| ~ " безрезультатно.

Ответ №1:

Это не имеет ничего общего с iTerm2; это чисто проблема zsh.

Вам нужно добавить команду

 PS1="|%*| ~ "
  

в ваш $HOME/.zshrc файл.

Продолжение на основе комментариев: лучше всего добавить эту строку в конец вашего .zshrc файла или ближе к нему. Если что-то еще находится в .zshrc настройках $PS , прямо или косвенно (путем вызова другого скрипта), вы хотите, чтобы желаемое значение переопределяло это.

Там нет необходимости в export значении $PS1 .

Вероятно, есть и другие места, куда вы могли бы поместить команду. Для получения более подробной информации обратитесь к руководству zsh (или типу info zsh ). Насколько я могу судить, zsh не обращает внимания на .zsh файл (если вы специально не укажете ему на это).

Комментарии:

1. Спасибо за советы. Тем не менее, он сохраняет тот же результат, который я опубликовал в своем первоначальном вопросе. Следуя вашим инструкциям, я набрал: open $HOME/.zshrc затем я добавил PS1="|%*| ~ " , а затем перезапустил iTerm.

2. @JonaTheApprentice: Я не использую macOS; что open делает? Вы сохранили файл после его редактирования? ЕСЛИ вы временно добавляете echo hello к своему .zshrc , появляется ли оно при запуске zsh ? Вы уверены zsh , что это ваша оболочка по умолчанию?

3. open [filename] открывает файл в текстовом редакторе по умолчанию. Я сохранил файл после редактирования. echo hello появляется при перезапуске терминала. zsh — это моя оболочка по умолчанию, я запустил chsh -s /bin/zsh ее, и никаких изменений, подтверждающих, что она установлена по умолчанию, внесено не было.

4. Если добавление echo hello в .zshrc выводит его на печать hello , то ваш .zshrc выполняется. Вы устанавливаете $PS1 .zshrc . Что-то еще должно присваивать ему новое значение. Внимательно прочитайте документацию по zsh, чтобы узнать, что еще может быть выполнено, и проверьте остальную часть .zshrc на предмет каких-либо других настроек $PS1 . Возможно, вам лучше всего переместить PS1="|%*| ~ " команду в конец вашего .zshrc .

5. Тогда проблема в том, что что-то еще в вашей .zshrc настройке $PS1 , либо напрямую, либо путем вызова другого скрипта. Это стоило бы отследить. Я обновил свой ответ.