logo

Wprowadzenie do powłoki systemu Linux i skryptów powłoki

Jeśli używamy dowolnego głównego systemu operacyjnego, pośrednio wchodzimy w interakcję z nim powłoka . Uruchamiając Ubuntu, Linux Mint czy jakąkolwiek inną dystrybucję Linuksa, wchodzimy w interakcję z powłoką za pomocą terminala. W tym artykule omówimy powłoki systemu Linux i skrypty powłoki, dlatego przed zrozumieniem skryptów powłoki musimy zapoznać się z następującą terminologią:

  • Jądro
  • Powłoka
  • Terminal

Spis treści

Co to jest jądro?

Jądro to program komputerowy stanowiący rdzeń systemu operacyjnego komputera, posiadający pełną kontrolę nad wszystkim w systemie. Zarządza następującymi zasobami systemu Linux –



  • Zarządzanie plikami
  • Zarządzanie procesem
  • Zarządzanie we/wy
  • Zarządzanie pamięcią
  • Zarządzanie urządzeniami itp.

Często mylnie uważa się, że Linus Torvalds opracował system operacyjny Linux, choć w rzeczywistości jest on odpowiedzialny jedynie za rozwój jądra Linuksa.

Kompletny system Linux = jądro + GNU narzędzia i biblioteki systemowe + inne skrypty zarządzające + skrypty instalacyjne.

Co to jest Shell?

Powłoka to specjalny program użytkownika, który zapewnia użytkownikowi interfejs umożliwiający korzystanie z usług systemu operacyjnego. Shell przyjmuje czytelne dla człowieka polecenia od użytkowników i konwertuje je na coś, co jądro może zrozumieć. Jest to interpreter języka poleceń, który wykonuje polecenia odczytywane z urządzeń wejściowych, takich jak klawiatury lub z plików. Powłoka uruchamia się, gdy użytkownik loguje się lub uruchamia terminal.

co to jest interfejs
Powłoka Linuksa

Powłoka Linuksa

Shell dzieli się ogólnie na dwie kategorie –

  • Powłoka wiersza poleceń
  • Powłoka graficzna

Powłoka wiersza poleceń

Użytkownicy mogą uzyskać dostęp do powłoki za pomocą interfejsu wiersza poleceń. Dostępny jest specjalny program o nazwie Terminal w systemie Linux/macOS lub Wiersz poleceń w systemie operacyjnym Windows, który służy do wpisywania poleceń czytelnych dla człowieka, takich jak cat, ls itp., a następnie jest wykonywany. Wynik jest następnie wyświetlany użytkownikowi na terminalu. Terminal w systemie Ubuntu 16.4 wygląda tak –

wiersz poleceń Linuksa

wiersz poleceń Linuksa

Na powyższym zrzucie ekranu ls polecenie z -l opcja jest wykonywana. Wyświetli listę wszystkich plików w bieżącym katalogu roboczym w formacie długiej listy.
Praca z powłoką wiersza poleceń jest nieco trudna dla początkujących, ponieważ trudno jest zapamiętać tak wiele poleceń. Jest bardzo potężny; pozwala użytkownikom przechowywać polecenia w pliku i wykonywać je razem. W ten sposób każde powtarzalne zadanie można łatwo zautomatyzować. Pliki te są zwykle nazywane plikami wsadowymi w systemie Windows i Powłoka Skrypty w systemach Linux/macOS.

Powłoki graficzne

Powłoki graficzne zapewniają środki do manipulowania programami opartymi na graficznym interfejsie użytkownika (GUI), umożliwiając operacje takie jak otwieranie, zamykanie, przenoszenie i zmiana rozmiaru okien, a także przełączanie fokusu między oknami. Za dobry przykład można uznać system operacyjny Windows lub Ubuntu, który zapewnia użytkownikowi interfejs GUI umożliwiający interakcję z programem. Użytkownicy nie muszą wpisywać poleceń dla każdej akcji. Typowy GUI w systemie Ubuntu –

Powłoka GUI

Powłoka GUI

mrówka kontra maven

Dostępnych jest kilka powłok dla systemów Linux, takich jak –

  • BASH (Bourne Again SHell) – Jest to najczęściej używana powłoka w systemach Linux. Jest używana jako domyślna powłoka logowania w systemach Linux i macOS. Można go także zainstalować w systemie operacyjnym Windows.
  • CSH (C SHell) – Składnia powłoki C i jej użycie są bardzo podobne do języka programowania C.
  • KSH (Korn SHell) – Korn Shell był także podstawą dla specyfikacji standardu POSIX Shell itp.

Każda powłoka wykonuje to samo zadanie, ale rozumie inne polecenia i udostępnia różne wbudowane funkcje.

Co to jest terminal?

Program odpowiedzialny za zapewnienie użytkownikowi interfejsu umożliwiającego dostęp do powłoki. Zasadniczo umożliwia użytkownikom wprowadzanie poleceń i wyświetlanie wyników tych poleceń w interfejsie tekstowym. W terminalu wykonywane są duże skrypty napisane w celu automatyzacji i wykonywania złożonych zadań.


Aby uzyskać dostęp do terminala, po prostu wyszukaj terminal w polu wyszukiwania i kliknij go dwukrotnie.

otwarty terminal

Tutaj możesz zobaczyć jak wygląda terminal Red Hat Linux.

terminal

Skrypty powłoki

Zwykle powłoki są interaktywne, co oznacza, że ​​przyjmują polecenia od użytkowników i je wykonują. Czasami jednak chcemy rutynowo wykonywać kilka poleceń, więc za każdym razem musimy wpisywać wszystkie polecenia w terminalu.

Ciąg listy Java

Ponieważ powłoka może również przyjmować polecenia jako dane wejściowe z pliku, możemy zapisać te polecenia w pliku i wykonać je w powłoce, aby uniknąć tej powtarzalnej pracy. Pliki te nazywane są Skrypty powłoki Lub Programy powłoki . Skrypty powłoki są podobne do pliku wsadowego w systemie MS-DOS. Każdy skrypt powłoki jest zapisywany za pomocą `.sz` rozszerzenie pliku, np. mójscript.sh.

Skrypt powłoki ma składnię taką samą jak każdy inny język programowania. Jeśli masz jakieś wcześniejsze doświadczenie z jakimkolwiek językiem programowania, takim jak Python, C/C++ itp. Bardzo łatwo będzie zacząć z nim.

Skrypt powłoki składa się z następujących elementów:

len tablicy w Javie
  • Słowa kluczowe powłoki – if, else, break itp.
  • Polecenia powłoki – cd, ls, echo, pwd, touch itp.
  • Funkcje
  • Sterowanie przepływem – if..then..else, pętle case i powłoki itp.

Dlaczego potrzebujemy skryptów powłoki?

Istnieje wiele powodów, dla których warto pisać skrypty powłoki:

  • Aby uniknąć powtarzalnej pracy i automatyzacji
  • Administratorzy systemu używają skryptów powłoki do rutynowych kopii zapasowych.
  • Monitorowanie systemu
  • Dodanie nowej funkcjonalności do powłoki itp.

Niektóre zalety skryptów powłoki

  • Polecenie i składnia są dokładnie takie same, jak te wprowadzone bezpośrednio w wierszu poleceń, więc programiści nie muszą przełączać się na zupełnie inną składnię
  • Pisanie skryptów powłoki jest znacznie szybsze
  • Szybki start
  • Interaktywne debugowanie itp.

Niektóre wady skryptów powłoki

  • Podatny na kosztowne błędy, pojedynczy błąd może zmienić polecenie, co może być szkodliwe.
  • Niska prędkość wykonywania
  • Błędy projektowe w składni języka lub implementacji
  • Niezbyt dobrze nadaje się do dużych i złożonych zadań
  • Zapewnia minimalną strukturę danych w przeciwieństwie do innych języków skryptowych. itp.

Proste demo skryptów powłoki przy użyciu powłoki Bash

Jeśli pracujesz na terminalu, przeglądasz coś głęboko w katalogach. Następnie, aby uzyskać kilka katalogów na ścieżce, musimy wykonać takie polecenie, jak pokazano poniżej, aby dostać się do katalogu Pythona:

przejdź do katalogu Pythona:

przejdź do katalogu Pythona:

Jest to dość frustrujące, więc dlaczego nie możemy mieć narzędzia, w którym wystarczy wpisać nazwę katalogu i możemy bezpośrednio do niego przejść bez wykonywania płyta CD ../ rozkazuj raz po raz. Zapisz skrypt jako skok.sh

grzmotnąć
# !/bin/bash # A simple bash script to move up to desired directory level directly function jump() {  # original value of Internal Field Separator  OLDIFS=$IFS  # setting field separator to '/'  IFS=/  # converting working path into array of directories in path  # eg. /my/path/is/like/this  # into [, my, path, is, like, this]  path_arr=($PWD)  # setting IFS to original value  IFS=$OLDIFS  local pos=-1  # ${path_arr[@]} gives all the values in path_arr  for dir in '${path_arr[@]}'  do  # find the number of directories to move up to  # reach at target directory  pos=$[$pos+1]  if [ '' = '$dir' ];then  # length of the path_arr  dir_in_path=${#path_arr[@]}  #current working directory  cwd=$PWD  limit=$[$dir_in_path-$pos-1]  for ((i=0; i; i++))  do  cwd=$cwd/..  done  cd $cwd  break  fi  done }>

Na razie nie możemy wykonać naszego skryptu powłoki, ponieważ nie ma on uprawnień. Musimy uczynić go wykonywalnym, wpisując następujące polecenie –

$ chmod +x ścieżka/do/naszego/pliku/jump.sh

Teraz, aby udostępnić to w każdej sesji terminala, musimy to umieścić .bashrc plik.

.bashrc to skrypt powłoki uruchamiany przez powłokę Bash przy każdym interaktywnym uruchomieniu. Celem pliku .bashrc jest zapewnienie miejsca, w którym można skonfigurować zmienne, funkcje i aliasy, zdefiniować nasz znak zachęty i zdefiniować inne ustawienia, których chcemy używać za każdym razem, gdy otwieramy nowe okno terminala.

Teraz otwórz terminal i wpisz następujące polecenie:

pełna forma ide

$ echo źródło ~/ścieżka/do/nasz/plik/jump.sh>> ~/.bashrc

Teraz otwórz terminal i wypróbuj nową funkcję skoku, wpisując następujące polecenie-

$ skok nazwa_katalogu

tak jak na poniższym zrzucie ekranu:

skok nazwa_katalogu

skok nazwa_katalogu

Wniosek

W tym artykule dowiedzieliśmy się o podstawowych częściach systemów Linux: jądrze, które kontroluje wszystko, powłoce, która pozwala nam wchodzić w interakcję z systemem operacyjnym, oraz terminalu, naszym interfejsie do wydawania poleceń. Przyjrzeliśmy się wierszowi poleceń i powłokom graficznym, takim jak BASH, i zrozumieliśmy, że to terminal jest miejscem, w którym wpisujemy nasze polecenia. W artykule przedstawiono skrypty powłoki, czyli sposób na automatyzację zadań za pomocą prostych skryptów, oraz omówiono zalety i wady ich stosowania. Praktyczny przykład zademonstrował utworzenie skryptu umożliwiającego szybką nawigację po katalogach. Wreszcie zobaczyliśmy, jak sprawić, by skrypt działał i stał się dostępny w każdej sesji terminala. Ten artykuł jest przyjaznym dla początkujących przewodnikiem po zrozumieniu i używaniu powłok Linuksa i skryptów powłoki. Linux jest dobrym językiem, jest napisany w języku Linuksa