Как «отключить» oh-my-zsh (и zsh), не удаляя его?

Как «отключить» oh-my-zsh (и zsh), не удаляя его?

Я пробовал новые среды разработки, включая zsh и oh-my-zsh. Теперь, когда я установил oh-my-zsh, он запускается по умолчанию на моих терминалах (iTerm2 и терминал), всегда запускается с zsh и с настройками из oh-my-zsh. Мне было интересно, можно ли "отключить" или прекратить использование zsh и его настройки с oh-my-zsh без необходимости удаления oh-my-zsh? Также было бы неплохо узнать, как включить их обратно.

В настоящее время мои терминалы автоматически переходят в zsh (я думаю) и автоматически используют oh-my-zsh. Я хочу иметь больше контроля над этим и иметь возможность контролировать и то, когда используется zsh, и когда используются функции oh-my-zsh.

Мне также интересно узнать, как терминальные приложения узнают, какую оболочку запустить при запуске. Было бы неплохо иметь возможность контролировать и это!

Если вы объясните как можно подробнее «почему» каждая команда, которую вы мне даете, это было бы полезно! :)


Я использую OS X. Не уверен, имеет ли это значение, но мне больше нравятся ответы, которые применимы к более общим средам Unix, а не к моей собственной.

решение1

Формулировка вашего вопроса неоднозначна, поэтому я не могу понять, имеете ли вы в виду, что хотите прекратить использование zshили хотите прекратить использование oh-my-zsh. Я рассмотрю оба варианта.

Отключениеzsh

Просто запустите chshи выберите любую оболочку, которую вы использовали до этого. Если вы не знаете, какую оболочку вы использовали до этого, то это почти наверняка bash. Эта команда изменяет "оболочку входа", связанную с вашим пользователем. По сути, она изменяет вашу оболочку по умолчанию.

Вам нужно будет открыть новое окно терминала, чтобы изменения вступили в силу. Если это не сработает, вам нужно будет выйти из системы и снова войти в нее, чтобы повторно инициализировать свою среду.

Только отключениеoh-my-zsh

  1. Проверьте, ~/.zshrc.pre-oh-my-zshсуществует ли он. Вероятно, он существует. (Этот файл был создан, когда скрипт установки удалил oh-my-zshваш предыдущий . — это файл запуска , аналогичный файлу .).zshrc.zshrczsh.bashrcbash
  2. Если это так, выполните mv ~/.zshrc ~/.zshrc.oh-my-zsh. Это уберет -created oh-my-zshс .zshrcпути, и мы сможем восстановить оригинал, выполнив mv ~/.zshrc.pre-oh-my-zsh ~/.zshrc.
  3. Если его нет, откройте ~/.zshrcв текстовом редакторе. Найдите строку, в которой написано , source $ZSH/.oh-my-zshи либо закомментируйте ее, либо удалите. Это отключит инициализацию oh-my-zsh.

Чтобы изменения вступили в силу, вам потребуется перезапустить оболочку.

решение2

chsh -s /bin/bash

Чтобы вручную установить новую оболочку по умолчанию, выполните chsh -s /my/ new/shell, например chsh -s /bin/bash. Затем просто переоткройте свои оболочки.

решение3

Так как это немного скрыто в ответе @Gilles, быстрый способ загрузки zsh без какой-либо конфигурации, например .zshrc .zshenv и т. д.

zsh -f

Это полезно, когда вы хотите проверить, не мешает ли что-либо в вашей конфигурации работе какой-либо функции zsh.

решение4

Вы можете указать zsh загружать файлы конфигурации для каждого пользователя из другого каталога, установив переменную окруженияZDOTDIRперед запуском zsh.

Если вы хотите запустить zsh без загрузки файлов конфигурации, укажите ZDOTDIRнесуществующий каталог. Если вы хотите пропустить файлы конфигурации системы (кроме /etc/zshenv), вы можете запустить zsh -f. Если вы хотите пропустить файлы конфигурации системы, но запустить файлы пользователя, запустите zsh -d.

Например, если вы хотите протестировать oh-my-zsh, не делая его по умолчанию, не помещайте .zshrcfrom oh-my-zsh в свой домашний каталог. Вместо этого поместите его в другое место, например, в ~/.oh-my-zsh, а затем запускайте ZDOTDIR=~/.oh-my-zsh zsh, когда захотите использовать oh-my-zsh.


Терминальные приложения запускают оболочку, указанную SHELLпеременной окружения. Если эта переменная не установлена, они запускают оболочку входа, указанную в базе данных пользователей ( /etc/passwd). Вы можете запросить другое приложение при запуске эмулятора терминала, например xterm -e fish.

Связанный контент