Якщо ви новачок у світі Linux, можливо, ви чули про команди, які виконують різні завдання, але деякі, як-от команда «джерело», спочатку можуть здатися дещо заплутаними. Не хвилюйтеся; давайте розберемо це крок за кроком.
Що таке команда Source?
Команда джерела в Linux схожа на чарівну паличку, яка дозволяє вводити команди з файлу та використовувати їх безпосередньо у вашому терміналі. Це як мати книгу рецептів і мати можливість використовувати рецепти одразу, не копіюючи їх.
Команда «джерело» — це вбудована функція оболонки, призначена для виконання команд, збережених у файлі, безпосередньо в поточному середовищі оболонки. Коли ви використовуєте команду «source», вона зчитує вміст зазначеного файлу, як правило, послідовність команд, і виконує їх так, ніби вони були введені безпосередньо в термінал. Цей процес відбувається в контексті поточного сеансу оболонки, без створення нового процесу чи інтерпретатора. Якщо будь-які аргументи надаються командою «джерело», вони передаються як позиційні параметри до команд у вихідному файлі. Однак позиційні параметри поточного сеансу оболонки залишаються незмінними, якщо їх явно не змінено командами у вихідному файлі. Команда «джерело» шукає вказаний файл у каталогах, указаних у $PATH змінна середовища . Якщо файл не знайдено в жодному з цих каталогів, він шукатиме в поточному каталозі. Важливо зазначити, що команда «джерело» не пропонує жодних параметрів; його єдиним аргументом є ім'я файлу, який буде отримано
Синтаксис команди Source в Linux
Синтаксис команди джерела простий:
source FILENAME>
Або його еквівалент:
. filename>
Тут «ім’я файлу» означає файл, що містить команди, які потрібно отримати.
Приклад команди Source в Linux
Команда джерела в Linux із прикладами
рядок до внутр
- Виконання сценаріїв оболонки:
- Зміна змінних середовища:
- Завантаження конфігураційних файлів:
- Визначення функцій оболонки:
Виконання сценаріїв оболонки:
Одним із основних випадків використання команди джерела є виконання сценаріїв оболонки в поточному середовищі оболонки. Це дозволяє сценарію безпосередньо керувати змінними, функціями та іншими функціями оболонки.
Уявіть, що у вас є сценарій оболонки під назвою «myscript.sh», який встановлює змінну, а потім повторює її значення:
# myscript.sh
#!/bin/bash
# Встановити зміннуMY_VARIABLE=Вітаю, з myscript.sh
# Ехо змінної
echo $MY_VARIABLE
Тепер давайте скористаємося командою джерела, щоб виконати цей сценарій у поточній оболонці:
source myscript.sh>

Виконання сценарію оболонки
Пояснення:
- Команда джерела виконує команди в «myscript.sh» безпосередньо в поточному середовищі оболонки.
- Змінна «MY_VARIABLE» встановлюється в «myscript.sh» і повторюється, створюючи вихідні дані в поточному сеансі оболонки.
Зміна змінних середовища:
Команда джерела має вирішальне значення для зміни змінних середовища поточного оболонка сесії. Це особливо корисно, коли сценарію потрібно експортувати змінні, які впливають на середовище батьківської оболонки.
# environment_setup.sh
#!/bin/bash
# Експорт змінноїexport MY_ENV_VARIABLE=Це моя змінна середовища
Тепер скористаємося командою джерела, щоб змінити змінні середовища в поточній оболонці:

Зміна змінної середовища
source environment_setup.sh>
Щоб перевірити зміни, ви можете повторити змінну середовища:
echo $MY_ENV_VARIABLE>
Пояснення:
- Команда джерела виконує сценарій ‘environment_setup.sh’, який експортує змінну ‘MY_ENV_VARIABLE’.
- Після отримання джерела сценарію змінна середовища «MY_ENV_VARIABLE» стає доступною в поточному сеансі оболонки, про що свідчить відтворення її значення.
Завантаження конфігураційних файлів:
Багато програм у Linux покладаються на конфігураційні файли. За допомогою команди джерела ці конфігураційні файли можна завантажити безпосередньо в поточну оболонку, гарантуючи, що зміни набудуть чинності негайно.
Розглянемо сценарій, коли ви внесли зміни у свій файл конфігурації «.bashrc», наприклад додали новий псевдонім:
# Додайте псевдонім до .bashrc
псевдонім myalias=’ls -la’
Тепер скористаємося командою джерела, щоб завантажити оновлений файл конфігурації в поточну оболонку:
source ~/.bashrc>
Тепер ви можете використовувати щойно доданий псевдонім «myalias»:
myalias>

Завантаження файлу конфігурації
Пояснення:
- Команда джерела завантажує оновлений файл «.bashrc» у поточний сеанс оболонки, включаючи будь-які зміни, внесені до псевдонімів або інших конфігурацій.
- Після пошуку «.bashrc» щойно доданий псевдонім «myalias» стає доступним для негайного використання, що демонструється шляхом його виконання та перерахування вмісту поточного каталогу.
Визначення функцій оболонки:
Функції оболонки, визначені в сценарії, можуть бути доступні в поточному сеансі оболонки шляхом отримання сценарію, що містить ці функції.
Припустімо, що у вас є скрипт під назвою «my_functions.sh», який визначає функцію оболонки:
# мої_функції.sh
#!/bin/bash
# Визначити функцію оболонкиmy_function() {
echo Це моя спеціальна функція
}java тривалість
Тепер давайте використаємо команду source, щоб зробити цю функцію доступною в поточній оболонці:
source my_functions.sh>
Тепер ви можете викликати функцію безпосередньо в оболонці:
my_function>

Визначення функцій оболонки
Пояснення:
- Команда джерела виконує сценарій «my_functions.sh», який визначає функцію оболонки під назвою «my_function».
- Після отримання сценарію функція «my_function» стає доступною для негайного використання в поточному сеансі оболонки, що демонструється її викликом і повторенням її повідомлення.
Висновок
Підсумовуючи, команда «джерело» в Linux служить потужним інструментом для бездоганної інтеграції команд, налаштувань і функцій із зовнішніх файлів безпосередньо в поточне середовище оболонки. Діючи як провідник між термінальним сеансом і файлами, що містять інструкції, команда «джерело» виконує команди в зазначеному файлі так, ніби вони були введені безпосередньо в термінал. Це дозволяє динамічно змінювати змінні середовища, виконувати сценарії оболонки, завантажувати конфігураційні файли та доступність користувацьких функцій оболонки в поточному сеансі оболонки. Використовуючи можливості команди «source», користувачі Linux можуть підвищити продуктивність і ефективність системного адміністрування та завдань розробки, відкриваючи новий рівень майстерності та гнучкості командного рядка.