Є два сценарії:
- Ви використовуєте 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!