#macos #shell #path
#macos #оболочка #путь
Вопрос:
Я попытался добавить, export PATH="$PATH:/Users/My_Name/desktop/My_Folder"
, к .bash_profile
, .bashrc
, и .profile
. Я выполнил команду source ~/.bash_profile
, source ~/.bashrc
, и source ~/.profile
, чтобы обновить $PATH
, и она действительно отражает это при выполнении echo $PATH
.
Однако, когда я открываю новый терминал и выполняю echo $PATH
его, он остается неизменным.
Проблема в том, что моя система (macOS Big Sur) не распознает обновленный $PATH
, когда я открываю новый терминал, если я не выполняю исходную команду каждый раз, чтобы обновить свой $PATH
.
Для контекста я отредактировал все три, потому что я просматривал несколько сайтов в поисках предложений и исчерпал все свои варианты.
Решение: я понял, что использую zsh
. Чтобы изменить, я выполнил chsh -s /bin/bash
команду, чтобы изменить свою оболочку на bash.
Комментарии:
1. Переполнение стека предназначено для вопросов программирования. Сценарии оболочки по теме, но общие вопросы об использовании macOS относятся к Ask Different , Unix amp; Linux или суперпользователю .
2. Вероятно, вы используете
zsh
, а неbash
. Соответствующий файл будет.zprofile
.3.
.zprofile
для меня не существует файла. Должен ли я создать его, а затем экспортировать в него свой путь?4. Да, вы можете просто создать его, когда он не существует.
Ответ №1:
Решение: я понял, что использую zsh
. Чтобы изменить, я выполнил chsh -s /bin/bash
команду, чтобы изменить свою оболочку на bash.
Ответ №2:
Вам нужно открыть файл .profile в редакторе, таком как nano или pico, и убедиться, что ваша команда находится в нижней части файла. Кроме того, убедитесь, что вы закрываете свои кавычки следующим образом:
export PATH="$PATH:/Users/My_Name/desktop/My_Folder"
Вы также можете рассмотреть возможность размещения нового пути спереди следующим образом:
export PATH="/Users/My_Name/desktop/My_Folder:$PATH"
У меня есть псевдоним в папке моего профиля под названием reBASH, который выглядит следующим образом
alias reBASH='source ~/.bash_profile'
Так что, когда я меняю .bash_profile, я просто набираю reBASH, нажимаю enter, и он применяется к текущему сеансу… просто то, что вы могли бы рассмотреть как удобство при выполнении подобных действий.
Комментарии:
1. Прошу прощения, в моем сообщении была ошибка. Я закрыл кавычки на своем терминале, аналогичные первой строке кода, которую вы указали. Я попробовал вторую строку кода и обновил, и это не сработало. У меня сложилось впечатление, что смысл добавления путей в $PATH заключается в том, чтобы упростить работу с терминалом, и я пытаюсь найти способ правильно обновить свой путь, чтобы мне не приходилось каждый раз выполнять исходную команду. Спасибо за сообщение, оно оценено.
2. @breadelicious переменная среды PATH в вашей оболочке терминала в основном говорит об этом… когда вы вводите команду и нажимаете enter, оболочка будет искать каждый путь, который находится в переменной PATH для команды, которую вы пытаетесь выполнить, так что вам не нужно вводить компакт-диск в эту папку, а затем выполнять свою команду. Если папка, в которой находится программа, которую вы пытаетесь запустить, находится в этой переменной PATH, то вы можете запустить эту программу независимо от того, в какой папке вы находитесь в данный момент. Надеюсь, это имеет смысл…
3. @breadelicious Это хорошее чтение: medium.com/@jalendport /…