zshell сообщает, что команда не найдена в MacOS

Вопрос или проблема

Я использую MacOS Monterey 12.4. Когда я открываю zsh, я сразу получаю

/etc/zshrc:7: command not found: locale
/etc/zshrc_Apple_Terminal:104: command not found: mkdir

Я понимаю, что мой терминал сразу выполняет содержимое ‘/etc/zshrc’ и ‘/etc/zshrc_Apple_Terminal’ перед тем, как он выполняет содержимое ‘~/.zshrc’, в который я вставил команду

export PATH="/usr/bin:/bin:/usr/sbin:/sbin:$PATH"

На самом деле, после загрузки этих файлов терминалом каждая команда становится доступной, так как я могу выполнить

me@mylaptop ~ % which locale
/usr/bin/locale
me@mylaptop ~ % which mkdir
/bin/mkdir

Я попытался отредактировать файлы ‘/etc/zshrc’ и ‘/etc/zshrc_Apple_Terminal’, но не смог этого сделать, так как система сообщает, что они заблокированы, даже если я открою их свойства и изменю права для каждой группы на чтение и запись, открыв замок с помощью пароля sudo.

У меня такая же проблема, как и у вас

Не изменяйте эти два файла ‘/etc/zshrc’ и ‘/etc/zshrc_Apple_Terminal’

Проблема, скорее всего, в том, что вы неправильно настроили ваш .zprofile или .zshrc

При условии, что вы создали резервные копии этих двух файлов, попробуйте удалить их содержимое, чтобы терминал мог работать нормально. Вам нужно пошагово отладить ваш .zshrc и/или .zprofile.

Моя проблема заключалась в том, что я неправильно настроил .zprofile, я записал следующее в одну строку

export PATHeval $(/opt/homebrew/bin/brew shellenv)

Измените их на следующее, и все будет в порядке

export PATH
eval $(/opt/homebrew/bin/brew shellenv)

Вы можете обратиться к примеру здесь

Ответ или решение

Конечно, рассмотрим ваш запрос.

Вы столкнулись с проблемой, когда командная оболочка Zsh в macOS Monterey 12.4 возвращает ошибки "command not found" для команд locale и mkdir при запуске терминала. Эти ошибки возникают, когда система пытается выполнить команды из файлов /etc/zshrc и /etc/zshrc_Apple_Terminal, но соответствующие пути команд не найдены, поскольку ваш PATH не настроен должным образом до выполнения этих скриптов.

  1. Причина проблемы:
    Особенно важно учитывать порядок загрузки конфигурационных файлов в Zsh. По умолчанию, система загружает /etc/zshrc и /etc/zshrc_Apple_Terminal до вашей пользовательской конфигурации в ~/.zshrc. Это означает, что любые изменения в переменной PATH, которые вы делаете в ~/.zshrc, вступают в силу уже после того, как исполняются предыдущие файлы.

  2. Решение:
    Для устранения проблемы, необходимо убедиться, что PATH правильно настроена до выполнения системных конфигураций. Оптимальное решение – перенести установку PATH в файл, который загружается раньше. Например, используйте файл ~/.zprofile (если он существует) для таких настроек:

    export PATH="/usr/bin:/bin:/usr/sbin:/sbin:$PATH"

    Если у вас установлена Homebrew и вы используете его, добавьте также:

    eval "$(/opt/homebrew/bin/brew shellenv)"

    Это обеспечит, что все необходимые команды будут доступны для скриптов, исполняющихся при старте оболочки.

  3. Диагностика:
    Если все вышеперечисленное не решает проблему, возможно, вы неправильно указали синтаксис команд в .zprofile или .zshrc. Проверьте наличие таких ошибок, как отсутствие операторов ; или && между командами, а также убедитесь в правильном оформлении каждой строки.

  4. Предупреждение:
    Не пытайтесь изменять системные файлы /etc/zshrc и /etc/zshrc_Apple_Terminal. Изменения в этих файлах могут привести к нежелательным последствиям и потенциально могут нарушить стабильность вашей системы.

Мы рекомендуем сначала проделать резервное копирование всех конфигурационных файлов перед выполнением каких-либо изменений. Это позволит легко восстановить рабочую конфигурацию в случае возникновения проблем.

Таким образом, эффективное управление файлами конфигурации Zsh и понимание порядка их загрузки поможет вам в успешной настройке окружения терминала на вашем Mac.

Оцените материал
Добавить комментарий

Капча загружается...