source Polecenie w systemie Linux z przykładami

source Polecenie w systemie Linux z przykładami

Jeśli jesteś nowy w świecie Linuksa, być może słyszałeś o poleceniach wykonujących różne zadania, ale niektóre, takie jak polecenie „źródło”, mogą początkowo wydawać się nieco zagmatwane. Nie martw się; rozłóżmy to krok po kroku.

Co to jest polecenie źródłowe?

Polecenie source w Linuksie jest jak magiczna różdżka, która pozwala pobierać polecenia z pliku i używać ich bezpośrednio w terminalu. To tak, jakby mieć książkę kucharską i móc od razu korzystać z przepisów, bez ich kopiowania.

Polecenie „źródło” jest wbudowaną funkcją powłoki, zaprojektowaną do wykonywania poleceń przechowywanych w pliku bezpośrednio w bieżącym środowisku powłoki. Kiedy używasz polecenia „źródło”, odczytuje ono zawartość określonego pliku (zwykle jest to sekwencja poleceń) i wykonuje je tak, jakby były wpisane bezpośrednio w terminalu. Proces ten odbywa się w kontekście bieżącej sesji powłoki, bez tworzenia nowego procesu lub interpretera. Jeśli w poleceniu „źródło” podano jakiekolwiek argumenty, są one przekazywane jako parametry pozycyjne do poleceń w pliku źródłowym. Jednakże parametry pozycyjne bieżącej sesji powłoki pozostają niezmienione, chyba że zostaną jawnie zmodyfikowane przez polecenia w pliku źródłowym. Polecenie „source” szuka określonego pliku w katalogach wymienionych w pliku $ŚCIEŻKA Zmienna środowiskowa . Jeśli plik nie zostanie znaleziony w żadnym z tych katalogów, zostanie wyszukany w bieżącym katalogu. Należy pamiętać, że polecenie „źródło” nie oferuje żadnych opcji; jego jedynym argumentem jest nazwa pliku, z którego ma pochodzić

Składnia polecenia Source w systemie Linux

Składnia polecenia source jest prosta:

source FILENAME 

Lub jego odpowiednik:

. filename 

W tym przypadku „nazwa pliku” odnosi się do pliku zawierającego polecenia, które mają zostać pobrane.

Przykład polecenia Source w systemie Linux

source Polecenie w systemie Linux z przykładami

Wykonywanie skryptów powłoki:

Jednym z głównych przypadków użycia polecenia source jest wykonywanie skryptów powłoki w bieżącym środowisku powłoki. Dzięki temu skrypt może bezpośrednio manipulować zmiennymi, funkcjami i innymi funkcjami powłoki.

Wyobraź sobie, że masz skrypt powłoki o nazwie „myscript.sh”, który ustawia zmienną, a następnie wyświetla jej wartość:

# mójscript.sh
#!/bin/bash
# Ustaw zmienną

MY_VARIABLE=Witam, z myscript.sh

# Powtórz zmienną

echo $MY_VARIABLE

Teraz użyjmy polecenia source, aby wykonać ten skrypt w bieżącej powłoce:

source myscript.sh 
Wykonywanie skryptu powłoki

Wykonywanie skryptu powłoki

Wyjaśnienie:

  • Polecenie source wykonuje polecenia zawarte w pliku „myscript.sh” bezpośrednio w bieżącym środowisku powłoki.
  • Zmienna „MY_VARIABLE” jest ustawiana w „myscript.sh” i wyświetlana echem, tworząc dane wyjściowe w ramach bieżącej sesji powłoki.

Modyfikowanie zmiennych środowiskowych:

Polecenie source ma kluczowe znaczenie przy modyfikowaniu zmiennych środowiskowych prądu powłoka sesja. Jest to szczególnie przydatne, gdy skrypt musi wyeksportować zmienne, które wpływają na nadrzędne środowisko powłoki.

# środowisko_setup.sh
#!/bin/bash
# Eksportuj zmienną

eksport MY_ENV_VARIABLE=To jest moja zmienna środowiskowa

Teraz użyjmy polecenia source, aby zmodyfikować zmienne środowiskowe w bieżącej powłoce:

Modyfikowanie zmiennej środowiskowej

Modyfikowanie zmiennej środowiskowej

source environment_setup.sh 

Aby zweryfikować zmiany, możesz powtórzyć zmienną środowiskową:

echo $MY_ENV_VARIABLE 

Wyjaśnienie:

  • Polecenie źródłowe wykonuje skrypt „environment_setup.sh”, który eksportuje zmienną „MY_ENV_VARIABLE”.
  • Po pobraniu skryptu zmienna środowiskowa „MY_ENV_VARIABLE” staje się dostępna w bieżącej sesji powłoki, o czym świadczy powtórzenie jej wartości.

Ładowanie plików konfiguracyjnych:

Wiele aplikacji w systemie Linux opiera się na plikach konfiguracyjnych. Korzystając z polecenia source, te pliki konfiguracyjne można załadować bezpośrednio do bieżącej powłoki, zapewniając natychmiastowe zastosowanie zmian.

Rozważmy scenariusz, w którym dokonałeś zmian w pliku konfiguracyjnym „.bashrc”, na przykład dodano nowy alias:

# Dodaj alias do .bashrc

alias myalias=’ls -la’

Teraz użyjmy polecenia source, aby załadować zaktualizowany plik konfiguracyjny do bieżącej powłoki:

source ~/.bashrc 

Teraz możesz używać nowo dodanego aliasu „myalias”:

myalias 
Ładowanie pliku konfiguracyjnego

Ładowanie pliku konfiguracyjnego

Wyjaśnienie:

  • Polecenie source ładuje zaktualizowany plik „.bashrc” do bieżącej sesji powłoki, uwzględniając wszelkie zmiany wprowadzone w aliasach i innych konfiguracjach.
  • Po pobraniu pliku „.bashrc” nowo dodany alias „myalias” staje się dostępny do natychmiastowego użycia, co można wykazać poprzez jego wykonanie i wyświetlenie zawartości bieżącego katalogu.

Definiowanie funkcji powłoki:

Funkcje powłoki zdefiniowane w skrypcie można udostępnić w bieżącej sesji powłoki, pobierając skrypt zawierający te funkcje.

Załóżmy, że masz skrypt o nazwie „my_functions.sh”, który definiuje funkcję powłoki:

# moje_funkcje.sh
#!/bin/bash
# Zdefiniuj funkcję powłoki

moja_funkcja() {
echo To jest moja funkcja niestandardowa
}

Teraz użyjmy polecenia source, aby udostępnić tę funkcję w bieżącej powłoce:

source my_functions.sh 

Teraz możesz wywołać funkcję bezpośrednio w powłoce:

my_function 
Definiowanie funkcji powłoki

Definiowanie funkcji powłoki

Wyjaśnienie:

  • Polecenie source wykonuje skrypt „my_functions.sh”, który definiuje funkcję powłoki o nazwie „moja_funkcja”.
  • Po pobraniu skryptu funkcja „my_function” staje się dostępna do natychmiastowego użycia w bieżącej sesji powłoki, co można wykazać, wywołując ją i powtarzając jej komunikat.

Wniosek

Podsumowując, polecenie „source” w systemie Linux służy jako potężne narzędzie do płynnej integracji poleceń, ustawień i funkcji z plików zewnętrznych bezpośrednio z bieżącym środowiskiem powłoki. Działając jako kanał pomiędzy sesją terminala a plikami zawierającymi instrukcje, polecenie „source” wykonuje polecenia zawarte w określonym pliku tak, jakby były wpisane bezpośrednio w terminalu. Umożliwia to dynamiczną modyfikację zmiennych środowiskowych, wykonywanie skryptów powłoki, ładowanie plików konfiguracyjnych i dostępność niestandardowych funkcji powłoki w ramach bieżącej sesji powłoki. Wykorzystując możliwości polecenia „źródło”, użytkownicy Linuksa mogą zwiększyć produktywność i wydajność w zadaniach związanych z administracją i programowaniem systemu, wprowadzając nowy poziom wydajności i elastyczności wiersza poleceń.