Programowanie w BASH - szkolenie kompleksowe
by:
Najbliższe terminy tego szkolenia
Standardy JSystems
- Wszyscy nasi trenerzy muszą być praktykami i osiągać średnią z ankiet minimum 4.75 na 5. Nie ma wśród nas trenerów-teoretyków. Każdy trener JSystems ma bogate doświadczenie komercyjne w zakresie tematów z których prowadzi szkolenia.
- Wszystkie szkolenia mają format warszatowy. Każde zagadnienie teoretyczne jest poparte rzędem warsztatów w ściśle określonym formacie.
- Terminy gwarantowane na 100%. Jeśli jakiś termin jest oznaczony jako gwarantowany, oznacza to że odbędzie się nawet jeśli część grupy wycofa się z udziału. Ryzyko ponosimy my jako organizator.
- Do każdego szkolenia które wymaga jakiegokolwiek oprogramowania dostarczamy skonfigurowane, gotowe hosty w chmurze. Dzięki temu uczestnik nie musi nic instalować na swoim komputerze (i bić się z blokadami korporacyjnymi). Połączenie następuje przez zdalny pulpit lub SSH - w zależności od szkolenia.
Program szkolenia
Dzień pierwszy
Podstawy
- Wstęp i pomoc w systemie:
- lokalizacja plików binarnych, bibliotek, konfiguracji, logów, danych, dokumentacji
- gdzie i jak szukać pomocy w systemie (help, man)
- Powłoka jako środowisko pracy:
- strumienie
- emulatory terminali – dostęp do powłoki lokalnie i zdalnie
- Środowisko użytkownika
- Konta
- Zmienne środowiskowe
- Skróty klawiszowe
- Historia poleceń
- Aliasy poleceń
- Nawigacja (pwd, cd, ls, katalog domowy)
- Polecenia df, free
Uprawnienia
- Właściciele, członkowie grupy, i wszyscy
- Odczyt, zapis i wykonywanie (chmod, unmask)
- Zmiana tożsamości (su, sudo, chown, chgrp)
Manipulowanie plikami i katalogami
- Tworzenie
- Usuwanie
- Kopiowanie
- Dowiązania twarde i symboliczne (omówienie, tworzenie, zastosowanie)
- Sortowanie, wycinanie, wklejanie, łączenie, rozdzielanie
- Szukanie plików (locate, find)
Archiwizacja danych
- Tworzenie archiwów z użyciem tar
- Kompresja plików (gzip)
- Synchronizacja plików i katalogów (rsync)
Przekierowania
- Standardowy strumień wejścia, wyjścia oraz błędów
- Przekierowanie do standardowego strumienia wyjścia, błędów
- Przekierowanie do standardowego strumienia wejścia (w tym polecenie cat)
- Potoki (uniq, wc, grep, head, tail, tee)
Procesy
- Wprowadzenie do procesów
- Właściwości procesów:
- ps
- top
- Średnie użycia
- Wysyłanie sygnałów do procesu ze szczególnym uwzględnieniem kill
Przetwarzanie tekstu
- Cięcie i krojenie (cut, paste, join)
- Porównywanie tekstu (comm, diff, patch)
- Edycja w locie (tr, sed, aspell)
Zagadnienia sieciowe
- diagnostyka i inspekcja ruchu sieciowego (ping, traceroute, curl, netstat, telnet)
- przenoszenie plików poprzez sieć (ftp, wget)
Wyrażenia regularne
- Wyrażenia regularne
Dzień drugi
Wstęp do pisania skryptów
- Wybór powłoki (magic number #!, sha-bang)
- Wywoływanie skryptu
- Podstawy powłoki Bash
- Rodzaje powłok systemu Linux
Co to jest skrypt powłoki Bash?
- Shebang
- Zmienna środowiskowa PATH
Praca ze znakami specjalnymi
- Praca ze znakami specjalnymi
Statusy wykonania
- Implementacja OR/AND
Argumenty skryptu
- Argumenty skryptu
Strumienie i przekierowania I/O
- Strumienie i przekierowania I/O
Deskryptory plików
- Deskryptory plików
Definiowanie własnego deskryptora
- Definiowanie własnego deskryptora
Polecenia użytkowe i potoki
- Polecenia użytkowe i potoki
Błędne użycie konstrukcji poleceń
- Błędne użycie konstrukcji poleceń
Deklarowanie zmiennych
- Zmienne definiowane przez użytkownika
- Zmienne środowiskowe
- Zasięg zmiennych
- Zmienne globalne
- Zmienne lokalne
- Zmienne tablicowe
Funkcje
- Podstawianie wyników działania poleceń
- Funkcje rekurencyjne
Heredock i herestring
- Heredock i herestring
Tworzenie interaktywnych skryptów
- Komentarze w skryptach
- Polecenie echo z opcjami
- Polecenie read:
- Ograniczenie liczby wprowadzanych znaków
- Rozszerzenie parametrów powłoki
- Sterowanie widocznością wprowadzanego tekstu
- Przekazywanie parametrów jako opcji
- Kolory w skryptach
Instrukcje warunkowe
- Polecenie test:
- Testowanie liczb
- Testowanie tekstu
- Testowanie typów
- Instrukcja if
- Instrukcja case
Praca z pętlami
- Pętla for
- Pętla while i until
- Pętle zagnieżdżone
- Break i continue
Przechwytywanie sygnałów
- Przechwytywanie sygnałów
Edytory strumieniowe
- Polecenie grep
- Polecenie sed:
- Wyświetlanie (p)
- Zamiana (s)
- Usuwanie (d)
- Wstawianie i dopisywanie (i/a)
- Edycja (c)
- Polecenia wielokrotne
Wyrażenia regularne
- Silniki wyrażeń regularnych
- Znaki Regexp
- Proste wyrażenia regularne
- Złożone wyrażenia regularne
Debugowanie skryptów
- Debugowanie skryptów
Dobre praktyki pisania skryptów
- Znaki specjalne:
- Komentarz (#)
- Koniec linii (;)
- Pusta instrukcja (:)
- Znak ucieczki (/)
- Przekierowanie wejścia wyjścia (>, <, >>)
- Potok (|)
- Uruchomienie procesu w tle (&)
- Przekierowanie z/do wejścia wyjścia (dash -)
- Zmienne i parametry
- Niszczenie zmiennych (unset)
- Zmienna o wartości null
- Zmienne lokalne, zmienne środowiskowe (export)
- Parametry wywołania skryptu ($0, $#, $1, $2, $3...)
- Instrukcja shift
- Cytowanie
- Symbole wieloznaczne (wildcards)
- Znaki ucieczkie (escaped characters)
- Kończenie skryptu
- Instrukcja exit
- Wykorszystanie statusu zakończenie programu w skryptach ($?)
- Konstrukcja testu
- Instrukcja if/then; Instrukcja if/then/else; Instrukcja if/then/elif; Operatory and, or (&&, ||); Komenda test
- Operatory testu pliku
- Testy rodzaju pliku i testy atrybutów pliku
- Operatory porównania:
- Operatory porównania liczb całkowitych
- Porównywanie ciągów
- Porównywanie złożone (and, or)
- Zagnieżdżenie operatorów porównania
- Operatory
- Operator przypisania
- Operatory: arytmetyczne; działań na bitach (bitwise operators); logiczne
Dzień trzeci
Stałe numeryczne
- Stałe numeryczne
Pętle
- Pętla for/In; Komenda seq; Pętla while; Pętla until
- Sterowanie przebiegiem pętli (break, continue)
- Instrukcja case
Komendy obrabiania tekstu
- Komendy head, tail; Sort; Uniq; Expand, Unexpand; Cut; Paste; Jon; Wc; Tr
- Wyszukiwanie string’u w tekście (grep)
- Edytor sed
- Programy interaktywne (read)
- Automatyzacja przy użyciu języka AWK:
- Czym jest AWK
- Struktura programu
- Wzorce
- Pętle i struktury kontrolne
- Funkcje
- Skrypty AWK
Używanie polecenia awk
- Wyświetlanie i filtrowanie zawartości plików
- Zmienne w języku AWK
- Wbudowane funkcje
- Instrukcje warunkowe
- Formatowanie wyników
- Pliki kontrolne (skrypty) AWK
Dzień czwarty
Praktyczne wykorzystanie zdobytej wiedzy
- projekt grupowe i indywidualne
Wykorzystanie git
- dla tworzenia i uruchamiania skryptów bash
Skrypty bash w automatyzacji
- CI/CD, ansible, terraform
Opis szkolenia
Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!
O szkoleniu w skrócie
Czterodniowe szkolenie BASH to rozbudowany, praktyczny kurs, którego celem jest gruntowne opanowanie pracy w środowisku Linux/Unix oraz zaawansowanej automatyzacji z wykorzystaniem powłoki Bash. Szkolenie prowadzi uczestników od solidnych podstaw pracy w terminalu aż po tworzenie rozbudowanych skryptów wykorzystywanych w administracji systemami, DevOps, CI/CD oraz narzędziach takich jak Ansible czy Terraform.
Szkolenie ma charakter warsztatowy – każdy temat poparty jest ćwiczeniami praktycznymi, analizą rzeczywistych przypadków oraz dobrymi praktykami stosowanymi w środowiskach produkcyjnych.
Dzień 1 – Podstawy pracy w Bash i systemie Linux
Pierwszy dzień szkolenia wprowadza uczestników w świat powłoki Bash jako podstawowego środowiska pracy administratora i inżyniera systemowego.
Uczestnicy poznają:
- strukturę systemu Linux (lokalizacje binariów, bibliotek, konfiguracji, logów i dokumentacji)
- sposoby efektywnego korzystania z pomocy systemowej (help, man)
- powłokę jako środowisko pracy – strumienie danych oraz emulatory terminali (praca lokalna i zdalna)
- konta użytkowników, środowisko użytkownika oraz zmienne środowiskowe
- skróty klawiszowe, historię poleceń i aliasy
- podstawową nawigację po systemie plików oraz monitorowanie zasobów (df, free)
Szczegółowo omawiane są:
- uprawnienia plików i katalogów (właściciel, grupa, inni)
- zarządzanie prawami dostępu (chmod, umask)
- zmiana tożsamości użytkownika (su, sudo, chown, chgrp)
Uczestnicy uczą się także:
- manipulowania plikami i katalogami (tworzenie, usuwanie, kopiowanie)
- pracy z dowiązaniami twardymi i symbolicznymi
- sortowania, filtrowania i łączenia danych
- wyszukiwania plików (find, locate)
- archiwizacji i synchronizacji danych (tar, gzip, rsync)
Duży nacisk położony jest na:
- przekierowania strumieni wejścia, wyjścia i błędów
- potoki i przetwarzanie danych (grep, wc, uniq, head, tail, tee)
- zarządzanie procesami (ps, top, kill)
- podstawowe przetwarzanie tekstu (cut, paste, diff, sed, tr)
- narzędzia sieciowe i diagnostyczne
- wprowadzenie do wyrażeń regularnych
Dzień 2 – Programowanie w Bash
Drugi dzień szkolenia koncentruje się na pisaniu skryptów Bash – od podstaw po zaawansowane konstrukcje językowe.
Uczestnicy poznają:
- czym jest skrypt powłoki Bash i jak działa
- shebang oraz wybór odpowiedniej powłoki
- sposoby wywoływania skryptów i znaczenie zmiennej PATH
- statusy zakończenia poleceń i logikę AND/OR
- argumenty skryptu oraz deskryptory plików
- strumienie I/O i ich zaawansowane wykorzystanie
Szczegółowo omawiane są:
- deklarowanie i zakres zmiennych (lokalne, globalne, środowiskowe)
- zmienne tablicowe
- funkcje (w tym rekurencyjne)
- podstawianie wyników poleceń
- heredoc i herestring
Uczestnicy uczą się tworzyć:
- skrypty interaktywne (read, echo)
- obsługę wejścia użytkownika
- skrypty z kolorowym wyjściem
- czytelne i dobrze komentowane skrypty
Wprowadzane są:
- instrukcje warunkowe (if, case, test)
- pętle (for, while, until, pętle zagnieżdżone)
- przechwytywanie sygnałów
- zaawansowane użycie grep i sed
- debugowanie skryptów oraz dobre praktyki programistyczne
Dzień 3 – Zaawansowane przetwarzanie danych i AWK
Trzeci dzień poświęcony jest zaawansowanej pracy z danymi tekstowymi oraz automatyzacji z użyciem języka AWK.
Uczestnicy poznają:
- pętle i konstrukcje sterujące
- pełen zestaw narzędzi do obróbki tekstu (head, tail, sort, uniq, cut, paste, wc, tr)
- wyszukiwanie wzorców w tekście
- zaawansowaną edycję strumieniową w sed
Szczegółowo omawiany jest język AWK:
- czym jest AWK i gdzie znajduje zastosowanie
- struktura programu AWK
- wzorce, pętle i instrukcje warunkowe
- funkcje i zmienne
- wbudowane mechanizmy formatowania danych
- tworzenie i uruchamianie skryptów AWK
Uczestnicy uczą się wykorzystywać AWK do:
- analizy logów
- filtrowania i raportowania danych
- automatycznego przetwarzania dużych zbiorów informacji
Dzień 4 – Praktyka, automatyzacja i DevOps
Czwarty dzień szkolenia ma charakter projektowy i praktyczny.
Uczestnicy:
- realizują projekty indywidualne i grupowe
- tworzą kompletne skrypty Bash rozwiązujące rzeczywiste problemy
- uczą się wersjonowania skryptów z wykorzystaniem Git
- poznają dobre praktyki pracy zespołowej nad skryptami
Szkolenie kończy się omówieniem:
- wykorzystania Bash w automatyzacji CI/CD
- integracji skryptów Bash z Ansible
- użycia Bash w procesach Terraform
- budowania powtarzalnych i bezpiecznych procesów automatyzacyjnych
Dla kogo jest to szkolenie?
Szkolenie przeznaczone jest dla:
- administratorów systemów Linux
- DevOpsów
- inżynierów infrastruktury
- specjalistów IT utrzymania systemów
- osób chcących świadomie i efektywnie automatyzować pracę w Linuxie
Efekty szkolenia
Po ukończeniu szkolenia uczestnik:
- swobodnie porusza się w środowisku Bash
- tworzy czytelne, bezpieczne i wydajne skrypty
- automatyzuje zadania administracyjne i operacyjne
- wykorzystuje Bash w środowiskach CI/CD i DevOps
- rozumie dobre praktyki oraz zasady debugowania i utrzymania skryptów
Prowadzący szkolenie:
Piotr Kośka
Piotr Kośka to doświadczony inżynier infrastruktury i bezpieczeństwa z ponad dekadą praktyki w różnych dziedzinach technologii IT. Aktualnie pracuje jako starszy inżynier bezpieczeństwa i infrastruktury w Huuuge Games, gdzie lideruje zespół i zarządza infrastrukturą chmurową AWS, środowiskiem CI/CD, a także narzędziami automatyzacji takimi jak Ansible, Salt, Terraform i OpenTofu.
Piotr jest autorem wielu publikacji, które koncentrują się na różnych aspektych informatyki, w tym na zabezpieczaniu domowych serwerów, a także na tematach związanych z chmurą obliczeniową i językiem Bash. Jego bogate doświadczenie obejmuje pracę z wieloma systemami Linux, takimi jak Ubuntu, Debian, CentOS i CoreOS, a także administrację serwerem Jenkins i zarządzanie kontenerami Docker i LXC/LXD.
Środowisko robocze
Nie jest wymagane instalowanie żadnego oprogramowania przez Uczestnika. Dostęp do gotowego środowiska na potrzeby tego szkolenia jest zapewniany każdemu Uczestnikowi przez organizatora.
Gdy na jakiś termin zgłosi się minimalna liczba osób, termin oznaczamy jako gwarantowany.
Jeśli jakiś termin oznaczony jest jako gwarantowany to oznacza to, że na 100% się odbędzie we wskazanym czasie i miejscu.
Nawet gdyby część takiej grupy zrezygnowała lub przeniosła się na inny termin, raz ustalony termin gwarantowany takim pozostaje.
Ewentualne ryzyko ponosimy my jako organizator.
Przejdź do terminów tego szkolenia
Sprawdź pozostałe szkolenia z kategorii:
Linux
Zobacz
Sprawdź, co mówią o nas ci, którzy nam zaufali
Trenerzy kategorii Linux
Piotr Kośka
Piotr Kośka
Piotr jest autorem wielu publikacji, które koncentrują się na różnych aspektych informatyki, w tym na zabezpieczaniu domowych serwerów, a także na tematach związanych z chmurą obliczeniową i językiem Bash. Jego bogate doświadczenie obejmuje pracę z wieloma systemami Linux, takimi jak Ubuntu, Debian, CentOS i CoreOS, a także administrację serwerem Jenkins i zarządzanie kontenerami Docker i LXC/LXD.
Marcin Kujawski
Marcin Kujawski
Autor wielu niestandardowych rozwiązań i implementacji podyktowanych różnorakimi wymaganiami Klientów. Jego drugie imię to wirtualizacja, gdyż obecnie jest jednym z głównych architektów produktu chmury prywatnej opartej na technologii VMware i Linux w Hays. Kieruje się stwierdzeniem: "Linux – born to be root, Windows – born to reboot". Ma również znakomite zdolności do automatyzacji i pisania skryptów, nie tylko w języku Bash ale także Ansible/Javascript/Python czy Powershell. Od niedawna fan i znawca kubernetesa oraz konteneryzacji. Prywatnie zagorzały kibic F1.
Tomasz Siroń
Tomasz Siroń
Specjalista IT z wieloletnim doświadczeniem w administracji systemami Linux, zarządzaniu sieciami oraz wdrażaniu rozwiązań DevOps. Tomasz zarządza infrastrukturą IT europejskich firm, współpracując z polskimi i międzynarodowymi korporacjami. Skupia się na projektowaniu systemów, automatyzacji procesów i zwiększaniu skalowalności, dostosowując technologie do rzeczywistych potrzeb biznesowych.
W swojej karierze wdrożył kompleksowe rozwiązania sieciowe i serwerowe, w tym zaawansowane konfiguracje VPN dla tysięcy użytkowników. Jest również twórcą projektu Sterowanie24.pl, umożliwiającego zdalne sterowanie oświetleniem, co pokazuje jego zdolność do efektywnego łączenia różnych technologii.
Jako współzałożyciel firmy usługowej IT, Tomasz doskonale rozumie bieżące potrzeby biznesu oraz wyzwania technologiczne. Na co dzień pracuje z technologiami kontenerowymi, takimi jak Docker i Kubernetes, tworząc skalowalne i wydajne środowiska dla aplikacji. Programuje w różnych językach, integrując rozwiązania DevOps z procesami biznesowymi oraz rozwijając narzędzia automatyzujące. Posiada certyfikaty MikroTik (MTCNA, MTCRE, MTCINE, MTCSWE, MTCIPv6E), a sieci komputerowe traktuje jako hobby. Regularnie korzysta z narzędzi CI/CD, usprawniając procesy wdrożeniowe w środowiskach serwerowych.
Prowadzi praktyczne szkolenia, które opierają się na rzeczywistych wyzwaniach IT, przygotowując uczestników do pracy z realnymi systemami i problemami w administracji aplikacjami korporacyjnymi.
Sebastian Koziatek
Sebastian Koziatek
Piotr Mućko
Piotr Mućko
Marcin Karpezo
Marcin Karpezo
Ostatnie miejsca!