Я пробовал новые среды разработки, включая 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, чем к моей собственной.
zsh
? илиoh-my-zsh
? который?Ответы:
Формулировка вашего вопроса неоднозначна, поэтому я не могу сказать, хотите ли вы, чтобы вы прекратили использовать
zsh
или вы хотите прекратить использоватьoh-my-zsh
. Я покрою оба.Отключение
zsh
Просто беги
chsh
и выберите любую оболочку, которую вы использовали раньше. Если вы не знаете, какую оболочку вы использовали раньше, это почти навернякаbash
. Эта команда изменяет «оболочку входа», связанную с вашим пользователем. По сути, это меняет вашу оболочку по умолчанию.Вам нужно будет открыть новое окно терминала, чтобы изменения вступили в силу. Если это не работает, вам нужно будет выйти и снова войти, чтобы повторно инициализировать вашу среду.
Отключение только
oh-my-zsh
~/.zshrc.pre-oh-my-zsh
существует ли . Это, вероятно, делает. (Этот файл будет создан, когдаoh-my-zsh
установочный скрипт переместит ваш предыдущий файл.zshrc
с пути..zshrc
Это файл запускаzsh
, похожий.bashrc
наbash
.)mv ~/.zshrc ~/.zshrc.oh-my-zsh
. Этоoh-my-zsh
уберет созданный.zshrc
путь, и мы сможем восстановить оригинал, выполнивmv ~/.zshrc.pre-oh-my-zsh ~/.zshrc
.~/.zshrc
в текстовом редакторе. Найдите строку с надписьюsource $ZSH/.oh-my-zsh
и либо закомментируйте ее, либо удалите. Это отключит инициализациюoh-my-zsh
.Вам нужно будет перезапустить вашу оболочку, чтобы изменения вступили в силу.
источник
ZSH Config Switching
Если вы хотите протестировать различные рамки конфигурации ЗШ (о-мой-ЗШ, zprezto и т.д.) и переключаться между ними, лучше всего использует символические ссылки на
~/.zsh
,~/.zshrc
,~/.zlogin
,~/.zlogout
,~/.zprofile
, и~/.zshenv
. Возможно, вы захотите создать сценарии оболочки для каждой платформы, чтобы создать эти символические ссылки для более быстрого переключения.Поместите ваши конфигурации фреймворка в свои собственные папки. Для каждого каркаса.
~/.zsh
, то~/.zsh
первым. Или~/.zsh
символическую ссылку;rm ~/.zsh
, или~/.zsh
папку;mv ~/.zsh ~/.zsh.backup
mv ~/.zsh ~/.oh-my-zsh
.После этого создайте сценарий оболочки для каждой платформы, чтобы создать необходимые символические ссылки. Вот пример для zprezto, так как я уже использую его.
Этот скрипт довольно прост и основан на том факте, что все мои символические ссылки организованы по одному шаблону. Вы можете скопировать и вставить строки удаления и создания после цикла для имеющихся символических ссылок, которые не соответствуют шаблону.
После этого используйте -
~/bin/use-zprezto
или~/bin/use-whatever
-, чтобы переключаться между zsh-фреймворками.Обратите внимание, что изменения вступают в силу только в новых оболочках zsh, а не в существующих оболочках.
Shell Switching
Это немного опасно, но если вы так склонны, вы можете использовать символическую ссылку для вашей команды оболочки и установить символическую ссылку в качестве оболочки по умолчанию. Затем вы можете следовать
use-*
выше методу сценария, чтобы изменить оболочку по умолчанию.Как пример с Zsh ...
Причина, по которой это опасно, заключается в том, что вы не можете войти в систему под пользователем, если оболочка, в которой он хранится,
/etc/passwd
не является действительной программой Таким образом, вы можете заблокировать себя из своей учетной записи, если вы не будете осторожны; т.е. ваша~/.shell
символическая ссылка не работает или не указывает на интерактивную программу. Вы можете попробовать это с учетной записью пользователя, но это НЕ РЕКОМЕНДУЕТСЯ для вашейroot
учетной записи.Если вы все еще хотите продолжить, то
источник
chsh -s / bin / bash
Чтобы вручную установить новую оболочку по умолчанию, выполните команду chsh -s / my / new / shell, например, chsh -s / bin / bash. Затем просто откройте свои снаряды.
источник
Вы можете указать zsh загрузить файлы конфигурации для каждого пользователя из другого каталога, установив переменную среды
ZDOTDIR
перед запуском zsh.Если вы хотите запустить zsh без загрузки ваших файлов конфигурации, установите
ZDOTDIR
несуществующий каталог. Если вы хотите пропустить файлы конфигурации системы (кроме/etc/zshenv
), вы можете запуститьzsh -f
. Если вы хотите пропустить файлы конфигурации системы, но запустите файлы для каждого пользователя, запуститеzsh -d
.Например, если вы хотите протестировать oh-my-zsh, не устанавливая его по умолчанию, не помещайте
.zshrc
из oh-my-zsh в свой домашний каталог. Вместо этого поместите это где-нибудь еще, например. в~/.oh-my-zsh
, а затем запустите,ZDOTDIR=~/.oh-my-zsh zsh
когда вы хотите использовать oh-my-zsh.Терминальные приложения запускают оболочку, указанную
SHELL
переменной среды. Если эта переменная не установлена, они запускают оболочку входа, указанную в базе данных пользователя (/etc/passwd
). Вы можете запросить другое приложение при запуске эмулятора терминала, напримерxterm -e fish
.источник
Поскольку это немного скрыто в @Gilles, ответьте на быстрый способ загрузки zsh без каких-либо настроек, например .zshrc .zshenv и т. Д.
Это полезно, когда вы хотите проверить, не мешает ли что-либо в вашей конфигурации какой-либо функции zsh.
источник