Hopp til innhold

Skryptowanie 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 Proxmoxie lub konfiguracji maszyn wirtualnych?

[[Wirtualizacja Poziom 1 - Samouczek dotyczący MV|🖥️ Wirtualizacja]] pokazuje, jak utworzyć i skonfigurować maszynę wirtualną (MV) w Proxmoxie — 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ę.

Chocolatey – alternatyw dla Wingeta

Chocolatey to menedżer pakietów od strony trzeciej dla systemu Windows o tym samym celu co Winget: choco install firefox zamiast winget install Mozilla.Firefox. Skoro Winget jest wbudowany w system Windows i spełnia tę samą funkcję, nie musisz używać obu narzędzi, aby zrozumieć ten koncepcja.

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.

Nie masz jeszcze uruchomionego serwera Nginx ani innej usługi?

[[Containerbruk Level 1 - Kjor og undersog en container|Uruchom i zbadaj kontener]] ustawia kontener Nginxa, którego możesz użyć w tym zadaniu.

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.

Wolisz pisać skrypty w Pythonie zamiast tego?

Bash i PowerShell są najczęściej używane do tworzenia skryptów systemowych, ale Python również działa dobrze. [[Python 1 Poziom 1 - Wstęp do Pythona|🐍 Python]] oraz kolejne poziomy dadzą Ci podstawy, a biblioteki takie jak os i subprocess pozwalają na wykonywanie wielu z tych samych zadań co tutaj.

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