Я не вижу, как определяются только некоторые из ваших функций в .profile, но не все из них. Хотя 0stone0 правильно говорит, что Zsh обычно не читает .profile (хотя его можно обмануть), это не объясняет поведение, которое вы видите. Возможно, вы пропустили какое-то сообщение об ошибке?
Я предлагаю вам проследить полный zsh вызов с
zsh -l -i -x
. -l
заставляет zsh полагать, что это оболочка входа в систему, -i
гарантирует что он запускается как интерактивная оболочка (хотя, если вы запускаете команду из командной строки терминала, это должно происходить автоматически), и -x
отслеживает все команды, которые он выполняет при запуске. Если ваше утверждение верно, что оно загружает .profile
, но не создает все функции, вы должны увидеть из этого вывода, в какой момент оно завершается с ошибкой.