Є два сценарії:
- Ви використовуєте 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є файл і чи він друкує відповідно stdout. Я завжди посилаюся на це також для більш простого нагляду та швидкого посилання: 7.2. Оператори тестування файлів .
Я сподіваюся, що це допомагає. Я пам’ятаю, як я був розгублений, коли починав усі ці речі (що було не так давно); тож, удачі у ваших майбутніх починаннях UNIX!