Skryptowanie z Bash i PowerShell

Skip to content

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

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.

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 dostępem 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

Koncept Przykład Co to robi
Zmienna NAZW="Ola" Przechowuje wartość
Argument $1, $2 Dane wejściowe z linii poleceń
Sprawdzenie if if [ -f "plik.txt" ]; then Sprawdza, czy plik istnieje
Pętla for for f in *.log; do Wykonuje coś dla każdego pliku pasującego
Potok cat logg.txt \| grep "ERROR" Przekazuje wyjście z jednego polecenia do innego

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.

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