Есть два сценария:
- Вы используете Linux
- Вы используете Mac Os X
Для обоих вы хотите, чтобы источник ~/.bashrc
в вашем профиле загружался или был получен при запуске вашей оболочки для терминала.
LINUX
В Linux ~/.profile
автоматически запускается источник в вашей оболочке. Итак, если вы зайдете в свой терминал и введете команду cd ~; ls -A
, вы увидите все ваши файлы и каталоги в вашем домашнем каталоге ( /home/usrname/
). Вы должны увидеть файл с именем .profile
. Это файл, который автоматически "получен" при запуске терминала.
Если вы хотите добавить псевдонимы и функции к ~/.bashrc
(что я и делаю), то вам следует (внутри ~/.profile
добавить оператор if, который проверяет, ~/.bashrc
является ли непустой файл, а затем получить его источник).
Чтобы проверить, если вы ~/.profile
уже делаете это, введите nano ~/.profile
. Это откроет его в текстовом редакторе (вы можете использовать gedit, если вы знаете, что он у вас есть, или даже vim, если вы знаете, как его использовать). Вы можете получить пустой текстовый файл (вы не должны), но если вы просто продолжите. Если вы не видите нигде строки, в которой написано source ~/.bashrc
, введите где-то следующие строки (поместите ее в разумное место, например в конец или начало, а не в середину оператора if):
if [ -s ~/.bashrc ]; then
source ~/.bashrc;
fi
Это проверяет, ~/.bashrc
является ли файл непустым (с помощью if [ -s ~/.bashrc ]
), и если это так, он получает его. Довольно просто Теперь вы можете добавить любой допустимый псевдоним, функцию, переменную и т ~/.bashrc
. Д.
MAC OS X
По умолчанию источники Max OS X ~/.bash_profile
. Чтобы иметь возможность добавлять что-то ~/.bashrc
(что, опять же, то, что я делаю в OS X), вы должны следовать той же процедуре, что и в Linux. В терминал войдите cd ~; nano .bash_profile
. Проверьте строку с надписью source ~/.bashrc
и, если ее нет, добавьте оператор if выше ( if [ -s ~/.bashrc ]; then source ~/.bashrc; fi
).
ПРИМЕЧАНИЯ
При написании оператора if обязательно оставляйте пробелы между практически всем (например if [ -s ~/.bashrc]; then echo "found"; fi
, не работает, потому что между ними нет пробела ~/.bashrc
и ]
- интерпретатор будет думать, что это одно слово).
Если вы хотите выяснить, как лучше проверять вещи в операторе if, перейдите в терминал и введите man \[
; это, по сути, дает вам сокращение предложения if. Например, if [ -f /path/to/file ]; then echo "it's a file"; else echo "not a file"; fi
проверяет, /path/to/file
является ли файл файлом и выводится ли он на стандартный вывод. Я всегда ссылаюсь на это для удобства и наглядности: 7.2. Операторы проверки файлов .
Надеюсь, это поможет. Я помню, как я был смущен, когда начал все это (что было не так давно); Итак, удачи в ваших будущих начинаниях UNIX!