Переключение на другую оболочку без копирования переменных среды

Из tcsh, если я попробую:

exec /home/path/to/my/zsh 

он работает (я вхожу в оболочку Zsh)

но если я попробую

 exec -c /home/path/to/my/zsh 

Я получил:

 -c Command not found 

Как переключиться на мою оболочку Zsh и запустить ее с «чистого листа»? (т.е. без переменных окружения, перенесенных из tcsh ).

One Solution collect form web for “Переключение на другую оболочку без копирования переменных среды”

Не знаете, почему вы хотите это сделать, но вы можете сделать:

 exec env -i /home/path/to/my/zsh 

Вероятно, многие вещи не будут работать должным образом, поскольку вам не хватают некоторые важные переменные среды, такие как $PATH , $HOME или $TERM .

Если вы хотите перечислить несколько переменных и удалить остальные:

 exec env -i HOME="$HOME" TERM="$TERM" /home/path/to/my/zsh 

Если вы хотите восстановить среду во время запуска tcsh , вы можете вставить ее в начало ~/.tcshrc :

 sh -c 'export -p' > ~/.initial-env 

И тогда сделайте что-нибудь вроде:

 exec env -i sh -c ". $HOME/.initial-env; exec /path/to/zsh" 

Это сохранение среды при запуске tcsh и ее восстановлении при выполнении zsh.

Если вы хотите изменить свою оболочку на zsh то время как вам не нужно делать chsh (или zsh не установлен или установленному 20 лет), (возвращает память более 15 лет назад (черт! ), когда я был в той же ситуации (хотя с csh вместо tcsh )), вы можете заменить содержимое вашего ~/.login :

 setenv SHELL /path/to/zsh exec $SHELL -l 

И удалите свой .tcshrc

Установка $SHELL указывает предпочтение вашей оболочки (это то, что приложения, такие как xterm или vi … будут запускаться, когда им нужно запустить оболочку для вас).

Поместите его в свой файл ~/.login чтобы он был выполнен только один раз. Надеемся, что больше не будет начато tcsh во время сеанса входа в систему, так как вы изменили $SHELL . Не имеет значения, укажите ли вы свои определения переменных среды в ~/.login или ~/.zprofile или ~/.profile . Тебе решать.

Протестируйте с tcsh -l перед выходом из системы.

  • Можно ли использовать два символа (например, tm) в режиме вставки в zsh для привязки команды?
  • Можно ли включить файл в конфигурационный файл zsh? Как?
  • Как передать переменные среды в новый сеанс входа в ssh?
  • Эффективное извлечение данных из нескольких файлов в один файл CSV
  • Исключение «sudo» из истории оболочки
  • В zsh как я могу перечислить все переменные среды?
  • Список всех текущих файлов dotfiles с помощью zsh
  • Ctrl-Arrow больше не работает после установки Prezto
  • zsh: как получить расширение файла, работающее в заявлении на печать
  • Сколько снарядов я глубоко?
  • Команда zmv для переименования файла после сопоставления шаблона
  • Как установить zsh для использования физических путей?
  • Interesting Posts

    «Xrandr: не удалось получить гамму для вывода по умолчанию» для Guest CENTOS 6.6, ОСНОВНОЙ ОС Windows 7

    Не удалось загрузить изображение Raspbian

    Найти файл во многих zip-файлах (например, найти команду для каталогов)

    Nginx не работает, не имеет прав доступа и не может найти какой-либо каталог

    не может открыть перенесенный веб-сайт из старых DS на новые DS

    Каков самый простой способ увеличить числа в этой строке 01:02:99 в unix?

    Как определить, на какой файловой системе существует каталог?

    как обнаружить компакт-диск, физически вставленный в привод

    Почему существует EOF в середине аргументов?

    Почему большинство приложений пытаются использовать OSS, если присутствует / dev / dsp?

    Как отключить вывод dd?

    Как проверить правильность установки FFTW?

    udev контролирует правило hotplug не работает

    Куда делятся локальные электронные письма?

    gnome-terminal: курсор мигает в неактивном окне

    Linux и Unix - лучшая ОС в мире.