Предполагается, что echo "$ PATH"
показывает / usr / local / bin
на вашем пути, и, учитывая, что это ваш личный ноутбук:
Создайте символическую ссылку в / usr / local / bin
, которая указывает на исполняемый файл, который вы хотите.
ln -s /Applications/XAMPP/xamppfiles/bin/php /usr/local/bin/php
Если это общий компьютер и вы не хотите влиять на других пользователей, я рекомендую настроить собственное расширение для вашего PATH в ~ / .bash_profile
. У меня есть один:
$ grep PATH ~/.bash_profile
export PATH="$PATH:$HOME/.bin"
Затем я могу поместить свои собственные символические ссылки, сценарии и т.д. в ~ / .bin
, и они будут работать, как ожидалось (без переопределения системных команд, существовавших ранее в моем PATH).
Я поставил .
в начале .bin
, поэтому мне не нужно видеть каталог при просмотре в Finder.
Решение найдено здесь:https://blog.callstack.io/supercharge-your-terminal-with-zsh-8b369d689770
# Open new tabs in same directory
if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]]; then
function chpwd {
printf '\e]7;%s\a' "file://$HOSTNAME${PWD// /%20}"
}
chpwd
fi
Обратите внимание, что единственное процентное -кодирование пути — замена пробелов на "%20". Это должно быть заменено более надежной кодировкой.
Нажмите на синий текст:
Так что вам просто нужно добавить эту маленькую escape-последовательность в приглашение, чтобы Терминал знал, где вы находитесь. Легкий!
Или, если вы думаете, что это немного загадочно, давайте посмотрим, как bash справляется с этим. Проверка man bash
показывает, что когда bash вызывается как интерактивная оболочка входа в систему (, это должно быть по умолчанию при открытии окна терминала или вкладки ), один из файлов, на которые он ссылается, — /etc/profile
.
Быстрый взгляд на /etc/profile
показывает, что он может загрузить /etc/bashrc
.
А заглянув внутрь /etc/bashrc
, видно, что он пытается загрузить /etc/bashrc_$TERM_PROGRAM
. Быстрая проверка:
> echo $TERM_PROGRAM
Apple_Terminal
А less /etc/bashrc_Apple_Terminal
позже, и джек-пот! В самом верху:
# Tell the terminal about the current working directory at each prompt.
За ней следует функция, которая делает именно это и готова для включения в приглашение (bash ). Я воздержусь от копирования функции здесь, так как я не совсем уверен в законности этого, хотя я включу последнюю строку функции, так как я считаю, что это достаточно тривиально, чтобы быть добросовестным:
printf '\e]7;%s\a' "file://$HOSTNAME$url_path"
По сути, это загадочная управляющая последовательность из всплывающего окна настроек. Остальная часть функции полностью посвящена настройке переменной $url_path
с необходимой процентной кодировкой _. Вам нужно будет перевести этот материал в zsh или просто извлечь его во внешний скрипт bash и вызвать его, хотя запуск экземпляра bash каждый раз может немного замедлить ваше приглашение.