Как настроить файлы инициализации MSYS Bash
В ОС Windows способ указания файлов инициализации, используемых Bash (т. Е. Profile, bash_profile, bashrc), отличается от того, что используется в ОС Linux.
Разница между ОС Windows и Linux заключается в структуре их файловой системы, что приводит к разнице в расположении файлов Bash и соглашениях об именах файлов.
Как настроить файлы инициализации MSYS Bash (например, profile, bash_profile и bashrc)
1) В WINOS откройте папку «etc», расположенную здесь «C:\msys\1.0\etc\». Заметка. вы должны увидеть файл 'profile' внутри папки 'etc'.
2) Сохраните файл без расширения файла (т. Е. При сохранении установите тип сохранения как «.all files») с именем файла .bash_profile в «C:\msys\1.0\home\USERNAME». Заметка. в качестве префикса для имени файла используется точка (например, '.bash_profile'), как и следовало ожидать в настройке ОС Linux Bash
2) Сохраните файл без расширения файла (т. Е. При сохранении установите тип сохранения как «.all files») с именем файла .bashrc в «C:\msys\1.0\home\USERNAME». Заметка. в качестве префикса для имени файла используется точка (например, '.bash_profile'), как и следовало ожидать в настройке ОС Linux Bash
4) Откройте файл 'profile' в текстовом редакторе (возвышенный текст x - это хорошо). Примечание. Расположение файла 'profile': C:\msys\1.0\etc\'
Внутри файла 'profile' выделите строку текста в конце файла (т. Е. Прокрутите до конца). Вы должны увидеть строку теста, указывающую Bash на изменение ее текущего каталога на HOME (В MSYS HOME такой, как определено в файл профиля
CD $HOME
5) Перед строкой с текстом 'CD $ HOME' скопируйте следующий код - добавление этого скрипта в 'profile' скажет MSYS bash запустить bash_profile # ---------------- -------------------------------------------------- --------- # Изменено НАЧАЛО
# Note. -f is a flag in the file-test operator set of bash commands
# that test whether file exists
echo '[i] INFO loading personal environment variables and startup programs.... '
BASHRC="$HOME/.bash_profile"
if [ -f "$BASHRC" ]; then
source "$BASHRC"
fi
#modified END
#---------------------------------------------------------------------------
6) Откройте файл 'bash_profile' в текстовом редакторе (Sublime Text x - это хорошо) и конец файла (внизу файла)
7) Скопируйте следующий код в конец файла - добавление этого скрипта в «.bash_profile» скажет Bash запустить «.bashrc»
#---------------------------------------------------------------------------
#modified BEGIN
# Note. -f is a flag in the file-test operator set of bash commands
# that test whether file exists
BASHRC="$HOME/.bashrc"
if [ -f "$BASHRC" ]; then
source "$BASHRC"
fi
#modified END
# ------------------------------------------------- --------------------------
8) Хорошо, теперь давайте напишем небольшой скрипт внутри «.bashrc», чтобы увидеть, если «profile» вызывает «bash_profile» и если «bash_profile» вызывает «.bashrc».
8.1) Придумайте название команды, которую вы хотите создать. Давайте использовать «т», чтобы означать тест
8.2) Откройте терминал Bash и введите «t». Bash должен ответить «t: команда не найдена» - если он не говорит «t: команда не найдена», повторять 8.1 и 8.2, пока имя вашей команды не скажет «команда не найдена». Вы не хотите использовать псевдоним для имени команды, назначенной bash BAD !, поэтому это должно быть «команда не найдена»
8.3) Хорошо, 't' дал мне 't: команда не найдена'. Теперь давайте напишем скрипт в '.bashrc'
8.4) В '.bashrc' напишите
# Use double quotes or bash will not write it
alias t="echo passed test"
8.5) Сохраните файл «.bashrc» в «C:\msys\1.0\home\USERNAME»
9) Почти там. Теперь перезапустите терминал Bash и обязательно закройте все ранее открытые терминалы Bash.
10) Введите в терминале «т». Следует ответить «пройден тест». Если нет, внимательно проверьте, правильно ли написан код (начните с проверки кавычек)
Некоторые примечания 1) «имя файла источника» совпадает с «. имя файла'
2) "" двойные кавычки допускают замену переменных на их содержимое одинарные кавычки не
3) $ HOME - это /home /USERNAME, так же, как и ~ is /home /USERNAME
4) Функция всегда предпочтительнее псевдонима 2
Для более подробной информации см. Ссылку BASH
Я новичок в Bash. Так что нет гарантии, что я сделал это наилучшим образом.
Удачи!