Pisanie skryptów w systemie Linux to z pewnością przydatna umiejętność dla każdej osoby w świecie IT, z pewnością kluczowa dla uczniów techników informatycznych, studentów informatyki, czy dla przyszłych sysadminów.
Może okazać się równie cenna dla „zwykłych” użytkowników. Przede wszystkim potrzebujemy środowiska, w którym będziemy mogli te skrypty wykonywać. Jeśli masz już swoje środowisko w którym możesz wykonywać linuxowe komendy, możemy zaczynać!
Teraz gdy mamy już gotowy plik, możemy zabrać się za pisanie skryptu.
W pierwszej linijce, należy umieścić tzw.
Na początek uruchamiamy konsolę/terminal i komendą cd przechodzimy do katalogu, w którym zapisaliśmy nasz skrypt.
Niektóre dystrybucje oferują również możliwość otworzenia konsoli z poziomu graficznego - np.
Jeśli nie miałeś nigdy styczności z programowaniem, to możesz nie wiedzieć, czym jest zmienna. Zmienną można opisać jako pudełko, które przechowowuje jakąś wartość.
W powyższym przykładzie stworzyliśmy zmienną o nazwie „Imie„, która przechowuje wartość „Dominik”. Stworzyliśmy też zmienną „Data”, która przechowuje aktualną datę.
Istotną różnicą jest sposób zapisu - „Imie”, czyli ciąg znaków jest zapisany w cudzysłowie - oznacza to wartość typu string, czyli po prostu tekst.
Natomiast „Data” ma przypisaną zawartość pomiędzy znakiem, który nosi nazwę grawis (backtick).
Znasz już podstawy tworzenia skryptów w systemie linux, teraz czas nabrać trochę doświadczenia i zrobić coś, co faktycznie może się przydać.
Pracujesz nad jakimś projektem? Może piszesz jakąś pracę? A może chciałbyś mieć kopię zapasową swoich zdjęć, czy innych plików?
Prosty skrypt zapewni Ci spokojny sen - gdy przez przypadek usuniesz jakiś plik lub naniesiesz jakieś zmiany (a opcja Cofnij, nie zadziała) i nie będziesz mógł ich przywrócić do pierwotnego stanu.
Wtedy właśnie kopia zapasowa może okazać się najbardziej potrzebna.
W zmiennej Pliki przechowujemy adres do folderu, którego kopię zapasową chcemy tworzyć. W moim przypadku nazwaliśmy ten folder moje-pliki.
W zmiennej Lokalizacja_kopii, jak nazwa wskazuje, mamy adres folderu, w którym będzie przechowywana nasza kopia zapasowa.
W ostatniej linijce natomiast mamy komendę, która jest odpowiedzialna za kompresowanie naszych plików oraz skopiowanie ich do odpowiedniego miejsca.
Skrypt zapisze nasz folder w skompresowanym archiwum o nazwie kopia-(aktualna_data).tar.gz.
Wskazówka: Warto jako lokalizację naszej kopii zapasowej wybrać np.
Teraz gdy mamy już stworzony skrypt, który stworzy nam kopię zapasową ważnych dla nas plików, warto byłoby go zautomatyzować.
Dzięki temu, nie będziemy musieli pamiętać o stworzeniu kopii ręcznie - linux zrobi to za nas.
Do tego celu wykorzystamy jedno z najpotężniejszych i najważniejszych narzędzi dostępnych w systemie Linux (przynajmniej tak często określają go wykładowcy IT) - czyli Crona (crontab).
Pozwala on cyklicznie wykonywać różne komendy - np. komendę uruchamiającą nasz skrypt.
Aby dodać zadanie do harmonogramu crontaba, należy edytować jego plik konfiguracyjny.
W konsoli uruchomi nam się edytor crontaba w którym możemy dopisać zadania, które ma on dla nas wykonać.
System ten można rozbudować na wiele różnych sposobów.
Możesz stworzyć drugi skrypt, który będzie kasował pliki kopii zapasowej, starsze niż np. 7-14 dni.
Dzięki temu zaoszczędzisz miejsce na dysku.
Innym sposobem będzie wrzucanie plików naszej kopii na serwer w chmurze - np. po utworzeniu kopii, uruchamianie transferu FTP i upload na serwer!
W ten sposób Twój backup będzie jeszcze lepiej zabezpieczony przed awarią.
Wstęp - Tworzymy pierwszy skrypt
Aby rozpocząć tworzenie skryptu powłoki Bash, musimy zacząć od stworzenia pliku tekstowego.
Następnie musimy nadać naszemu plikowi z przyszłym skryptem odpowiedni atrybut - wykonanie.
W systemie Ubuntu można to zrobić za pomocą polecenia chmod +x
Teraz, za pomocą dowolnego edytora tekstu, umieszczamy w nim następujący zapis: #!/bin/bash .
Kombinacja znaków #! wskazuje, jaki rodzaj powłoki zostanie użyty do wykonania poleceń wewnątrz pliku.
Nasz skrypt będzie używał interpretera bash, umieszczonego w katalogu /bin.Teraz zajmijmy się utworzeniem naszego pierwszego skryptu.
Zgodnie z tradycją programistyczną, wyświetli od napis Hello World.
Polecenie wyświetlające tekst w terminalu to polecenie echo.
Zapiszmy więc w nowej linii echo „Hello World” i zapiszmy plik.
Aby uruchomić nasz skrypt, wpisując w terminalu <ścieżka do skryptu>/
Teraz zajmiemy sie zmiennymi i obliczeniami matematycznymi.
Jeśli nie wiesz, czym są zmienne, to polecam zajrzeć na wpis na naszym blogu pt. „TEORIA PROGRAMOWANIA: ZMIENNE, STAŁE ORAZ DZIAŁANIA NA LICZBACH”.
W bash’ nie ma słowa kluczowego definiujacego zmienne, wystarczy więc wpisać ich nazwę i określić wartość.
Wygląda to tak
Stwórzmy więc dwie zmienne - x oraz y i przypiszmy im wartość 4.
Następnie zróbmy 4 zmienne od z1 do z4, będą one przechowywać wyniki obliczeń arytmetycznych.
Zacznij od sumy, która podobnie jak w matematyce oznaczana jest znakiem +, zapis wygląda tak: z1=$[
Zwróć uwagę, aby przed ani po znaku równości nie znalazła się spacja, oraz aby całe działanie zamknać w nawias kwadratowy [] lub podwójny okrągły.
Inne operatory matematyczne, to - odejmowanie, * mnożenie i / dzielenie.
Aby wyświetlić wartość zmiennej, za pomocą polecenia echo, wpisujemy w cudzysłowia nazwę zmiennej, poprzedzoną znakiem dolara.
Oto przykład: echo „Wartość zmiennej to $zmienna”.
Zapiszmy teraz skrypt, który doda, odejmie, pomnoży i podzieli liczby x i y, oraz wyświetli wynik tych działań.
Teraz zajmiemy się wczytywaniem danych z klawiatury.
Służy do tego polecenie read, którego składnia wyglada następująco: read
Wykonajmy prosty kalkulator, który odczyta z klawiatury dwie liczby, oraz wyświetli wyniki opracji arytmetycznych na nich wykonanych.
Pamietajmy jednak, że skrypty obsługują tylko liczby całkowite!
Na koniec zostawiłem uruchamianie poleceń termina za pomocą skryptów.
Jest to dziecinnie wręcz łatwe.
Wystarczy wpisać polecenie wraz z odpowiednimi parametrami.
Mam nadzieję, że wszyscy znamy polecenia cd, mkdir, chmod, ls i touch.
Stworzymy z ich użyciem program który utworzy nowy katalog, a wnim nowy plik skryptu, i wyświetli listę uprawnień do niego.
Jakie czynności musimy wykonać w celu utworzenia skryptu ?
Skrypt tworzymy wpisując polecenia do pliku tekstowego.
Robimy to przy pomocy dowolnego edytora.
Wiersze zaczynające się od znaku hasz # są liniami komentarza, czyli w trakcie wykonywania skryptu będą pomijane przez interpretator.
Pierwsza linia naszego skryptu, zaczyna się ciągiem dwóch znaków: #! , które maja szczególne znaczenie; wskazują na rodzaj powłoki systemu w jakiej ma być uruchamiany skrypt.
Za znakami #! Występuje pełna ścieżka dostępu do żądanej powłoki (w naszym przypadku jest nią bash), jeżeli pierwsza linia naszego skryptu nie będzie zawierała wyrażenia #!/bin/bash lub wyrażenie to będzie zawierało błędy: np. znakami będą przedzielone spacjami (jedna spacja pomiędzy np.
Skrypt jest plikiem tekstowym zawierającym polecenia.
Skrypt możemy utworzyć przy pomocy każdego edytora dostępnego w systemie Linux (emacs,vi,vim).
Ponieważ, w naszym przypadku, poznaliśmy tylko vi, więc użyjemy tego właśnie edytora do utworzenia kilku skryptów by zilustrować najprostsze zasady programowania w bashu.
utworzony pliku o nazwanie skrypt1 jest plikiem zwykłym, który nie może być egzekwowany.
Jak widzimy prawa użytkownika do pliku są ograniczone do jego czytania i modyfikowania, członkowie grupy ola i pozostali użytkownicy systemu mogą go tylko czytać (czy wiesz dlaczego - jeśli nie - powtórz rozdział …).
Utoworzony plik skrypt1 musimy uczynić wykonalnym, innymi słowy chcemy mu nadać prawo wykonywania, ale prawo to przypiszemy tylko jego właścicielowi.
Czy widzisz różnice ?
1,2,3 znak wyświetlonej informacji pozostają bez zmiany, natomiast czwarty zmienia się z „-” na „x”.
Oznacza to, że skrypt1 jest plikiem wykonywalnym przez jego właściciela.
Egzekucja skryptu przy pomocy wyrażenia ./skrypt1
Linux od dawna cieszy się reputacją systemu operacyjnego preferowanego przez programistów i entuzjastów technologii dzięki swojej elastyczności i możliwościom dostosowania.
Jednym z kluczowych aspektów, które przyciągają użytkowników do Linuksa, jest potęga skryptowania.
Skryptowanie w Linuxie od dawna odgrywa kluczową rolę w automatyzacji zadań, zarządzaniu systemem oraz tworzeniu złożonych procesów.
Skryptowanie w Linuxie to proces tworzenia programów, zwanych skryptami, które automatyzują różnorodne zadania.
Skrypty mogą być używane do zarządzania plikami, instalowania oprogramowania, monitorowania systemu, wykonywania złożonych obliczeń i wielu innych działań.
#! następnie piszemy zmienne o wybranej przez nas nazwie, po której następuje znak „=” i wartość, którą chcemy umieścić.
Kiedy już ustawimy żądane zmienne, aby je wykonać, będziemy musieli umieścić znak "$" przed zmienną.
W tym skrypcie tworzymy dwie zmienne i rozdzielamy między nie tekst „ Cześć, jak się masz? Mam się bardzo dobrze ”.
Następnie czyścimy ekran poleceniem `clear`, publikujemy zmienne poleceniem `echo`, a następnie wprowadzamy system w stan uśpienia przed zakończeniem działania skryptu. lub nadaj mu uprawnienia roota i uruchom go.
Co więcej, możemy poinstruować komputer, aby uruchamiał ten dokument każdego dnia, gdy tylko włączymy komputer, więc nie musielibyśmy nic wpisywać.
Cóż, ten dokument przestaje być tekstem i staje się programowaniem.
Proste programowanie, zawsze w ramach konkretnego systemu operacyjnego, nazywamy skryptami .
Dzisiejszy wpis jest przeznaczony dla początkujących i średnio zaawansowanych użytkowników.
Skrypty to pliki, które po wykonaniu realizują zamówienia na komputerze.
Możemy wykonywać wszystkie te polecenia ręcznie każdego dnia, ale wyobraźmy sobie, że nie mamy czasu.
Systemy operacyjne pozwalają nam zapisywać te polecenia w dokumencie, a uruchamiając ten dokument w terminalu, komputer wykonywałby wszystkie te zadania bez konieczności wpisywania przez nas czegokolwiek.
Co więcej, możemy poinstruować komputer, aby uruchamiał ten dokument każdego dnia, gdy tylko włączymy komputer, więc nie musielibyśmy nic wpisywać.
Cóż, ten dokument przestaje być tekstem i staje się programowaniem.
Proste programowanie, zawsze w ramach konkretnego systemu operacyjnego, nazywamy skryptami .
Lata temu widzieliśmy, jak po uruchomieniu pliku na ekranie komputera pojawiały się słowa „Kocham Cię” .
GNU /Linux i Ubuntu również mają skrypty , i to bardzo przydatne , jak widzieliście w poprzednich wpisach na blogu.
Na zaliczenie przedmiotu muszę napisać skrypt, ale mój poziom w tym temacie jest bardzo słaby.
i. f) każda wartość powtarzalna powinna być zdefiniowana jako zmienna, np. w funkcji sleep będziemy korzystali zawsze (w każdym miejscu) z opóźnienia 2 sekundowego, zatem wartość tego opóznienia powinna być zdefiniowana jako zmienna,np delay_time=2.
1. c) jeśli skrypt zostanie uruchomiony z prawami root'a (np. przez znaną komendę sudo) - powinien w sekcji "Przestrzen katalogu domowego uzytkownika" wyświetlić "Przestrzeń katalogów domowych wszystkich użytkowników".
Należy skorzystać z właściwości, że użytkownik root posiada identyfikator użytkownika o wartości 0.
Aby pobrać identyfikator należy skorzystać z komendy id -u.
Dla porządku najlepiej zapisać wynik tej komendy w zmiennej,np. o nazwie userid - przyda się później w skrypcie.
d) za każdym razem skrypt powinien sprawdzać czy istnieje plik o nazwie zdefiniowanej w zmiennej $system_info_file.
Jeśli plik istnieje - to powinien najpierw zostać usunięty.
2. Wyświetla na ekranie informacje zapisane w pliku o nazwie określnej zmienną $system_info_file - po odczytaniu danych z pliku system czeka na naciśnięcie dowolnego przycisku informując o tym użytkownika.
read -p "Wcisnij dowolny klawisz aby kontyuowac... "1") ...
Egzekucja skryptu przy pomocy wyrażenia ./skrypt1
Linux od dawna cieszy się reputacją systemu operacyjnego preferowanego przez programistów i entuzjastów technologii dzięki swojej elastyczności i możliwościom dostosowania.
Jednym z kluczowych aspektów, które przyciągają użytkowników do Linuksa, jest potęga skryptowania.
W tym kontekście pojawia się projekt Open Source o nazwie Scriptisto, stworzony przez Igora Petruka, który ma na celu uproszczenie skryptowania w Linuxie.
Pozwól, że wyjaśnię ideę tego narzędzia na poniższym przykładzie.
Jak widać w poniższym kodzie C mamy zależności i jak wiemy, trzeba odpowiednio przedstawić je kompilatorowi.
Zazwyczaj jest to rola zarządcy budowania t.j. bash, Makefile, CMake, Meson, Bazel, itp.
Jednak trzeba programować dodatkowe pliki do skompilowania i uruchomienia naszego kodu.
Tutaj przychodzi z pomocą prj. Scriptisto i daje nam możliwość uruchamiania kodu C, Rust, Go i innych języków programowania z kompilatorami z transparentną dla nas kompilacją !!!
To jest super ułatwienie dla niektórych zastosować zwanych skryptowaniem !
Scriptisto to prosty i skuteczny sposób na uruchamianie skryptów napisanych w różnych językach programowania bez konieczności wcześniejszej konfiguracji środowiska.
Można zainstalować Scriptisto za pomocą Menedżera Pakietów (ang.
Tworzenie i uruchamianie skryptu: Tworzenie skryptu jest niezwykle proste.
println!("Hello, world!
Scriptisto to narzędzie, które zdecydowanie upraszcza proces skryptowania w Linuxie, dzięki swojej elastyczności i wsparciu dla wielu języków programowania.
Jeśli jesteś zainteresowany usprawnieniem swojego skryptowania w Linuxie, warto dać szansę Scriptisto.
Ogromna prośba.
W kolejnym wpisie opowiem o tworzeniu menu i wykonywaniu operacji na nich.
Pozwól, że wyjaśnię ideę tego narzędzia na poniższym przykładzie.
Aby uruchomić nasz skrypt, wpisując w terminalu <ścieżka do skryptu>/
Egzekucja skryptu przy pomocy wyrażenia ./skrypt1

Pracujesz nad jakimś projektem? Może piszesz jakąś pracę? A może chciałbyś mieć kopię zapasową swoich zdjęć, czy innych plików?
Prosty skrypt zapewni Ci spokojny sen - gdy przez przypadek usuniesz jakiś plik lub naniesiesz jakieś zmiany (a opcja Cofnij, nie zadziała) i nie będziesz mógł ich przywrócić do pierwotnego stanu.
W wtedy właśnie kopia zapasowa może okazać się najbardziej potrzebna.
W zmiennej Pliki przechowujemy adres do folderu, którego kopię zapasową chcemy tworzyć. W moim przypadku nazwaliśmy ten folder moje-pliki.
W zmiennej Lokalizacja_kopii, jak nazwa wskazuje, mamy adres folderu, w którym będzie przechowywana nasza kopia zapasowa.
W ostatniej linijce natomiast mamy komendę, która jest odpowiedzialna za kompresowanie naszych plików oraz skopiowanie ich do odpowiedniego miejsca.
Skrypt zapisze nasz folder w skompresowanym archiwum o nazwie kopia-(aktualna_data).tar.gz.Wskazówka: Warto jako lokalizację naszej kopii zapasowej wybrać np.

Teraz gdy mamy już stworzony skrypt, który stworzy nam kopię zapasową ważnych dla nas plików, warto byłoby go zautomatyzować.
Dzięki temu, nie będziemy musieli pamiętać o stworzeniu kopii ręcznie - linux zrobi to za nas.
Do tego celu wykorzystamy jedno z najpotężniejszych i najważniejszych narzędzi dostępnych w systemie Linux (przynajmniej tak często określają go wykładowcy IT) - czyli Crona (crontab).
Pozwala on cyklicznie wykonywać różne komendy - np. komendę uruchamiającą nasz skrypt.
Aby dodać zadanie do harmonogramu crontaba, należy edytować jego plik konfiguracyjny.
W konsoli uruchomi nam się edytor crontaba w którym możemy dopisać zadania, które ma on dla nas wykonać.
System ten można rozbudować na wiele różnych sposobów.
Możesz stworzyć drugi skrypt, który będzie kasował pliki kopii zapasowej, starsze niż np. 7-14 dni.
Dzięki temu zaoszczędzisz miejsce na dysku.
Innym sposobem będzie wrzucanie plików naszej kopii na serwer w chmurze - np. po utworzeniu kopii, uruchamianie transferu FTP i upload na serwer!

| Element | Co robimy w skrypcie | Przykład z materiału |
|---|---|---|
| Środowisko i plik | Tworzymy plik tekstowy i nadajemy wykonanie | chmod +x |
| Komentarze | Pomijane przez interpretator | Wiersze zaczynające się od znaku hasz # |
| Zmienna | Przechowuje wartość (np. tekst lub liczby) | „Imie”, „Data” |
| Obliczenia | Wykonujemy działania arytmetyczne i zapisujemy wyniki | z1=$[ |
| Wejście z klawiatury | Odczyt danych poleceniem read | read |
| Automatyzacja | Planowanie cyklicznego uruchamiania | Crona (crontab), edycja pliku konfiguracyjnego |
tags: #tworzenie #skryptu #ubuntu
About the author