Scriptowanie w Bash i PowerShell

Skip to content

To jest tekst przetłumaczony maszynowo, który może zawierać błędy!

Skryptowanie z użyciem Bash i PowerShell

Jeśli wykonywałeś to samo zadanie po raz trzeci, nadszedł czas, aby je zautomatyzować. Skryptowanie polega na tym, aby maszyna wykonywała za Ciebie nudną pracę, szybciej i bez zapominania o czymkolwiek.

Dlaczego automatyzować?

Niektóre zadania w działaniach IT są wykonywane często:

  • Aktualizowanie serwerów
  • Tworzenie użytkowników
  • Tworzenie kopii zapasowych
  • Restartowanie usług po aktualizacji
  • Sprawdzanie, czy usługi działają

Wykonanie tych zadań ręcznie za każdym razem zajmuje czas, a łatwo zapomnieć o kroku. Skrypt robi to samo za każdym razem, bez narzekania.

Nowy na Proxmx lub konfiguracji wirtualnych maszyn?

[[Wirtualizacja Poziom 1 - Samouczek VM|🖥️ Wirtualizacja]] pokazuje, jak tworzyć i konfigurować VM w Proxmox – potrzebujesz działającej maszyny wirtualnej dla zadań z tego tematu.

Bash: Skryptowanie w Linuxie

Bash jest powłoką (terminalem) w większości dystrybucji Linuksa i może również uruchamiać skrypty. Skrypt Bash to po prostu plik tekstowy zawierający polecenia, które są wykonywane sekwencyjnie.

Twój pierwszy skrypt

Utwórz plik o nazwie oppdater.sh:

#!/bin/bash
# Aktualizuj listę pakietów i zainstaluj aktualizacje
echo "Aktualizuję system..."
sudo apt update
sudo apt upgrade -y
echo "Gotowe!"

Uczyń plik wykonywalnym i uruchom go:

chmod +x oppdater.sh
./oppdater.sh
# Zmień uprawnienia skryptu na wykonywalny
# Uruchom skrypt

#!/bin/bash

Pierwszy wiersz nazywany jest shebang. Informuje on system operacyjny, że plik ma być uruchomiony za pomocą Bash. Bez niego system nie wie, który program ma interpretować skrypt.

Zmienne i dane wejściowe

#!/bin/bash
BRUKERNAVN=$1

if [ -z "$BRUKERNAVN" ]; then
    echo "Użycie: ./lag_bruker.sh <nazwa_użytkownika>"
    exit 1
fi

sudo adduser "$BRUKERNAVN"
sudo usermod -aG sudo "$BRUKERNAVN"
echo "Użytkownik $BRUKERNAVN został utworzony z uprawnieniami sudo."

Tutaj skrypt pobiera nazwę użytkownika jako argument ($1 to pierwszy argument). Jeśli uruchomisz ./lag_bruker.sh ola, utworzy to użytkownika ola i przyzna mu dostęp sudo.

Przydatne koncepcje Bash

Koncepcja Przykład Co robi
Zmienna NAVN="Ola" Przechowuje wartość
Argument $1, $2 Wejście z linii komend
Instrukcja if if [ -f "fil.txt" ]; then Sprawdza, czy plik istnieje
Pętla for for f in *.log; do Wykonuje czynność dla każdego pasującego pliku
Potok (Pipe) cat logg.txt \| grep "ERROR" Przekazuje wyjście jednej komendy do drugiej

PowerShell: Skryptowanie w Windows

PowerShell to odpowiednik Bash w systemie Windows, ale jest bardziej zorientowany obiektowo. Pracuje z obiektami, a nie tylko z tekstem, co czyni go potężnym narzędziem do administrowania systemami Windows.

Przykład: Sprawdź miejsce na dysku

# Sprawdź wolne miejsce na dysku
Get-PSDrive -PSProvider FileSystem | Select-Object Name, 
    @{Name="Użyte (GB)"; Expression={[math]::Round($_.Used / 1GB, 2)}},
    @{Name="Wolne (GB)"; Expression={[math]::Round($_.Free / 1GB, 2)}}

Przykład: Instalowanie oprogramowania za pomocą Winget

# Zainstaluj wiele programów jednocześnie
winget install Mozilla.Firefox
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install Python.Python.3.12

To jest znacznie szybsze niż ręczne pobieranie i instalowanie wszystkiego. Możesz zapisać listę w skrypcie i uruchamiać go za każdym razem, gdy konfigurujesz nową maszynę.

Easy Zadanie 1 - Utwórz skrypt aktualizacyjny

Napisz skrypt Bash, który:

  1. Aktualizuje listę pakietów
  2. Instaluje wszystkie dostępne aktualizacje
  3. Restartuje Nginx (lub inną usługę, którą masz uruchomioną)
  4. Wyświetla komunikat po zakończeniu

Uruchom go na jednej ze swoich maszyn wirtualnych i sprawdź, czy działa.

Czy nie masz jeszcze uruchomionego Nginxa ani innej usługi?

[[Docker Level 1 - Getting started|🐳 Docker - Getting started]] konfiguruje kontener Nginxa, którego możesz użyć do tego zadania.

Easy Zadanie 2 - Automatyzacja konfiguracji maszyny

Utwórz skrypt PowerShell (.ps1) lub prostą listę poleceń winget install dla wszystkich programów, których potrzebujesz na nowym komputerze. Zastanów się nad:

  • Jakie programy zawsze instalujesz?
  • Czy możesz również skonfigurować niektóre ustawienia za pomocą skryptu?

Następnym razem, gdy skonfigurujesz maszynę, po prostu uruchom skrypt zamiast spędzać godzinę na ręcznej instalacji.

Podsumowanie

  • Jeśli robisz coś więcej niż dwa razy, rozważ automatyzację tego
  • Bash (Linux) i PowerShell (Windows) to najpopularniejsze narzędzia do skryptów
  • Skrypty Bash to pliki tekstowe zawierające polecenia, które są wykonywane sekwencyjnie
  • PowerShell operuje na obiektach i jest potężny w administracji Windows
  • Zmienne, argumenty, instrukcje warunkowe if i pętle to podstawowe elementy składowe