1. Podstawy Bash
Co to jest powłoka Bash?
Bash (Bourne Again Shell) to najczęściej używany interfejs wiersza poleceń w dystrybucjach Linuksa. To proste, ale potężne narzędzie zapewnia platformę dla użytkowników do interakcji z systemem, umożliwiając im wykonywanie podstawowych zadań, takich jak operacje na plikach, uruchamianie programów i zarządzanie zadaniami.
Zalety Bash
- Potężne możliwości skryptowania : Bash pozwala użytkownikom automatyzować złożone zadania za pomocą skryptów powłoki.
- Szerokie wsparcie : Jest obsługiwany przez większość systemów operacyjnych opartych na Unixie i dystrybucji Linuksa.
- Wysoka konfigurowalność : Użytkownicy mogą dostosować swoje środowisko do swojego przepływu pracy za pomocą aliasów i funkcji powłoki.
# Simple Bash command example
echo "Hello, World!"
2. Podstawowe polecenia Bash
Operacje na plikach
Oto niektóre z najczęściej używanych poleceń operacji na plikach w Bash.
- ls: Wyświetla zawartość katalogu.
- cd: Zmienia katalog.
- cp: Kopiuje pliki lub katalogi.
- mv: Przenosi lub zmienia nazwy plików.
- rm: Usuwa pliki.
# Display detailed contents of a directory
ls -l
# Move to the home directory
cd ~
# Copy a file
cp source.txt destination.txt
# Move a file
mv old_name.txt new_name.txt
# Delete a file
rm unwanted_file.txt
Informacje o systemie i zarządzanie procesami
Sprawdzanie informacji o systemie i zarządzanie procesami to również podstawowe zadania.
- ps: Wyświetla aktywne procesy.
- top: Pokazuje listę procesów w czasie rzeczywistym i przegląd systemu.
- kill: Wysyła sygnał do zakończenia procesu.
# Display active processes
ps aux
# Show system overview and process list
top
# Terminate process with ID 1234
kill 1234

3. Pisanie skryptów Bash
Podstawowa struktura skryptu
Skrypt Bash to plik zawierający wiele poleceń. Tworząc skrypty, możesz automatyzować i wykonywać serię operacji.
#!/bin/bash
# This line is called a shebang and specifies the shell interpreter for the script.
echo "Hello, World!"  # Displays a string using the echo command
Używanie zmiennych
Zmienne mogą być używane do przechowywania i ponownego użycia danych w skrypcie.
#!/bin/bash
message="Hello, Bash Scripting!"
echo $message
Instrukcje warunkowe i pętle
Instrukcje warunkowe i pętle pomagają obsługiwać złożoną logikę i powtarzalne zadania.
#!/bin/bash
# Example of an if statement
if [ $1 -gt 100 ]
then
  echo "The number is greater than 100."
else
  echo "The number is 100 or less."
fi
# Example of a for loop
for i in 1 2 3 4 5
do
  echo "Looping ... number $i"
done
4. Automatyzacja zadań za pomocą Bash
Przegląd automatyzacji zadań
Korzystając ze skryptów Bash, możesz efektywnie automatyzować rutynowe zadania, takie jak kopie zapasowe systemu, synchronizacja danych i generowanie raportów, zmniejszając wysiłek wymagany do administracji systemem.
Automatyczny skrypt kopii zapasowej
W celu codziennej ochrony danych, poniższy skrypt regularnie tworzy kopię zapasową określonego katalogu.
#!/bin/bash
SRC_DIR="/home/user/documents"
DST_DIR="/backup/documents"
DATE=$(date +%Y%m%d)
# Create the backup directory if it doesn't exist
if [ ! -d "$DST_DIR" ]; then
  mkdir -p "$DST_DIR"
fi
# Compress and back up the directory contents
tar -czf "$DST_DIR/backup_$DATE.tar.gz" -C "$SRC_DIR" .
echo "Backup completed successfully."
Automatyczne uruchamianie skryptów za pomocą zadań cron
Korzystając z cron, możesz zaplanować powyższy skrypt kopii zapasowej do codziennego uruchamiania o 2:00 w nocy.
0 2 * * * /path/to/backup.sh
Obsługa błędów i powiadomienia
Aby obsłużyć błędy podczas procesu kopii zapasowej, dodaj wykrywanie błędów i wysyłaj powiadomienia do administratora, gdy wystąpią problemy.
#!/bin/bash
SRC_DIR="/home/user/documents"
DST_DIR="/backup/documents"
LOG_FILE="/var/log/backup.log"
DATE=$(date +%Y%m%d)
if [ ! -d "$DST_DIR" ]; then
  mkdir -p "$DST_DIR"
fi
if tar -czf "$DST_DIR/backup_$DATE.tar.gz" -C "$SRC_DIR" .; then
  echo "Backup successful on $DATE" >> $LOG_FILE
else
  echo "Backup failed on $DATE" | mail -s "Backup Failure" admin@example.com
fi

5. Rozwiązywanie problemów i powszechne błędy
Zrozumienie i obsługa błędów Bash
Często zdarza się napotkać błędy podczas wykonywania skryptów Bash. Ten rozdział wyjaśnia niektóre powszechne błędy i sposób ich rozwiązywania.
Błąd: Polecenie nie znalezione
Ten błąd występuje, gdy polecenie, które próbujesz wykonać, nie jest zainstalowane w systemie lub ścieżka nie jest poprawnie ustawiona.
command not found
- Rozwiązanie: Sprawdź, czy polecenie jest zainstalowane i upewnij się, że zmienna środowiskowa $PATHjest poprawnie ustawiona.
Błąd: Odmowa dostępu
Ten błąd występuje, gdy brakuje Ci niezbędnych uprawnień do dostępu do pliku lub katalogu.
Permission denied
- Rozwiązanie: Wykonaj operację za pomocą odpowiedniego konta użytkownika lub zmień uprawnienia do pliku za pomocą poleceń chmodlubchown.
Błąd składni
Ten błąd występuje, gdy w skrypcie jest niepoprawna składnia.
syntax error: unexpected end of file
- Rozwiązanie: Dokładnie przejrzyj skrypt i napraw wszelkie błędy składni.
Błąd: Plik nie znaleziony
Ten błąd występuje, gdy określony plik nie istnieje.
No such file or directory
- Rozwiązanie: Sprawdź, czy ścieżka do pliku jest poprawna i upewnij się, że plik istnieje.
Używanie narzędzi do debugowania
Aby debugować skrypty Bash, użyj set -x, co wyświetla każdy krok polecenia podczas wykonywania, ułatwiając identyfikację błędów.
set -x  # Enable script debugging
6. Zaawansowane techniki Bash
Praca z funkcjami
Funkcje w skryptach Bash pomagają modularizować kod i czynić go wielokrotnego użytku.
#!/bin/bash
# Define a function
greet() {
  echo "Hello, $1!"
}
# Call the function with an argument
greet "Alice"
Obsługa wejścia użytkownika
Skrypty Bash mogą wchodzić w interakcję z użytkownikami, akceptując wejście z linii poleceń.
#!/bin/bash
echo "Enter your name:"
read name
echo "Hello, $name!"
Praca z tablicami
Bash obsługuje tablice, które pozwalają przechowywać wiele wartości w jednej zmiennej.
#!/bin/bash
fruits=("Apple" "Banana" "Cherry")
# Accessing elements
echo "First fruit: ${fruits[0]}"
# Looping through an array
for fruit in "${fruits[@]}"; do
  echo "Fruit: $fruit"
done
Wyrażenia regularne i manipulacja ciągami
Skrypty Bash mogą manipulować ciągami i dopasowywać wzorce za pomocą wyrażeń regularnych.
#!/bin/bash
text="Bash scripting is fun!"
# Extract a substring
echo "${text:0:4}"  # Output: Bash
# Replace a word
echo "${text//fun/exciting}"  # Output: Bash scripting is exciting!
7. Wniosek
Podsumowanie
Ten przewodnik omówił wszystko, od podstawowych poleceń Bash po skrypty, automatyzację i rozwiązywanie problemów. Opanowując Bash, możesz efektywnie zarządzać i automatyzować zadania systemowe.
Dalsze uczenie się
- Poznaj zaawansowane techniki skryptowe, takie jak podstawianie procesów i nazwane potoki.
- Dowiedz się o integracji Bash z innymi językami programowania, takimi jak Python.
- Eksperymentuj z rzeczywistymi zadaniami automatyzacji, aby poprawić swoje umiejętności skryptowe.
Poprzez ciągłe doskonalenie umiejętności Bash, możesz stać się bardziej kompetentnym administratorem systemu lub programistą.

 
 


![[Jak używać YUM w Ubuntu] Kroki zarządzania pakietami RPM i alternatywy](https://www.linux.digibeatrix.com/wp-content/uploads/2024/10/1e7a7b81049dbc1b46e2b26b9fa7bed7-375x375.webp)