Bash-Referenzliste – Linux-Befehle für Ubuntu, Mint und Debian
Einige Tools mit Kommandozeilenparametern
Nicht sehr umfassend, nur einige für mich nützliche Beispiele

Für weitere Entwicklertools und Workflows siehe Developer Tools: Der komplette Leitfaden für moderne Entwicklungs-Workflows.
Wenn Sie ein interaktives Prompt-Muster in Skripten benötigen, sehen Sie [Skripte mit „Drücken Sie eine beliebige Taste" in Bash, CMD, PowerShell und macOS pausieren](https://www.glukhov.org/de/developer-tools/terminals-shell/press-any-key-pause-bash-powershell-cmd/ “Skripte mit „Drücken Sie eine beliebige Taste” in Bash, CMD, PowerShell und macOS mit praktischen Beispielen und TTY-sicheren Mustern pausieren").
Wie man die Linux Ubuntu-Version überprüft
Für weitere Details zur Überprüfung der Ubuntu-Version siehe Linux Ubuntu-Version überprüfen.
Methode 1
lsb_release -a
würde etwas Ähnliches wie Folgendes produzieren:
No LSB modules are available.
Distributor ID: Linuxmint
Description: Linux Mint 22.1
Release: 22.1
Codename: xia
Methode 2
cat /etc/os-release
würde etwas Ähnliches wie Folgendes produzieren:
NAME="Linux Mint"
VERSION="22.1 (Xia)"
ID=linuxmint
ID_LIKE="ubuntu debian"
PRETTY_NAME="Linux Mint 22.1"
VERSION_ID="22.1"
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.linuxmint.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
VERSION_CODENAME=xia
UBUNTU_CODENAME=noble
Archivieren und Entarchivieren mit Tar in Bash
Komprimieren
tar -zcvf archive-name.tgz directory-name
Dekomprimieren
tar -zxvf archive-name.tgz
Remote-Server-Zugriff mit SSH und SCP in Bash
Benutzeridentität auf den Remote-Server übertragen
ssh-copy-id user@10.0.0.225
Damit ist das Einloggen beim nächsten Mal ohne Passwort möglich, wie folgt:
ssh user@10.0.0.225
Datei hochladen
scp ~/file.ext user@host-ip:/home/user/file.ext
Ordner mit verschachteltem Inhalt rekursiv herunterladen
scp -r user@host-ip:/home/user/dir ~/dir
Verzeichnis- und Dateiverwaltung in Bash
Auf Existenz prüfen
# Erstelle einen Ordner, falls er nicht existiert, einschließlich aller Zwischenordner
[ -d $repdir ] || mkdir -p $repdir
# oder
if [ -d $fname ]; then
echo "Datei existiert nicht: $fname"
return
fi
Ordner für einen bestimmten Benutzer erstellen
sudo mkdir dir1
sudo chown specific_user dir1
sudo chown :specific_group dir1
Iterieren über Dateien im Ordner
# Dies konvertiert alle jpg-Dateien in einem bestimmten Ordner zu fits
for f in some-folder/*.jpg
do
convert "$f" "${f/.jpg/.fits}"
done
Alle Dateien in einer Datei zusammenführen
cat ./* > merged.txt
Befehle zum Crontab hinzufügen
(crontab -l 2>/dev/null | \
grep -v control-marker-1; \
echo '*/15 * * * * /bin/bash /home/user/stest/stest.sh /home/user/stest >> /home/user/stest/stest.log 2>&1 #control-marker-1') | \
crontab -
Hierbei gilt:
- */15 - alle 15 Minuten ausführen
- control-marker-1 - ist der Identifikator dieses Befehls in der Cron-Konfiguration, um ihn beim nächsten Mal mit demselben Skript zu aktualisieren
- /bin/bash - auszuführender Befehl
- /home/user/stest/stest.sh - Bash-Parameter – Bash führt dieses Skript aus
- /home/user/stest - Skriptparameter – wird über $1 zugegriffen
- /home/user/stest/stest.log - Protokolldatei mit der Konsolenausgabe von stest.sh
Überprüfen
grep /home/user/stest/stest.sh /var/log/syslog
crontab -e
Protokolldateien in Bash überwachen
Protokolldatei live anzeigen
sudo tail -f /var/log/megalog.log
HTTP-Statuscode mit curl in Bash abrufen
response=$(curl --write-out '%{http_code}' --silent --output /dev/null servername)
# oder
url='http://localhost:8080/'
status=$(curl --head --location --connect-timeout 5 --write-out %{http_code} --silent --output /dev/null ${url})
[[ $status == 500 ]] || [[ $status == 000 ]] && echo restarting ${url} # Logik zum Starten/Neustarten ausführen
SSH-Befehl nach dem Abmelden weiterlaufen lassen
Angenommen, Sie haben ein Programm im Vordergrund laufen, drücken Sie
- Strg-Z, dann:
[1]+ Gestoppt myprogram
- disown -h %1
- bg 1
[1]+ myprogram &
- logout
JSON in Bash mit jo generieren
jo installieren
sudo apt-get install jo
a="123"
b="456"
jo "model=a" "prompt=b" "stream=false"
würde Folgendes ausgeben:
{"model":"a", "prompt":"b", "stream":false}
Etwas komplexer:
jo -p name=Jane point[]=1 point[]=2 geo[lat]=10 geo[lon]=20
{
"name": "Jane",
"point": [
1,
2
],
"geo": {
"lat": 10,
"lon": 20
}
}
JSON in Bash mit jq formatieren
Verwenden Sie
| jq .
Um das oben generierte JSON zu formatieren:
a="123"
b="456"
jo "model=$a" "prompt=$b" "stream=false" | jq .
Das formatierte JSON lautet:
{
"model": 123,
"prompt": 456,
"stream": false
}
JSON parsen und Feldwerte in Bash extrahieren
Installieren Sie zuerst jq
sudo apt-get install jq
Verwenden Sie
| jq -r '.fieldName'
Wie beim Parsen der Ausgabe eines Aufrufs an Ollama:
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "Why is the sky blue?",
"stream": false
}' | jq -r '.response'
Wörter in einer Datei mit Bash zählen
Wortanzahl:
wc -w filename.txt
wird etwas Ähnliches wie Folgendes zurückgeben:
261 filename.txt
Wenn Sie nur eine ganze Zahl wollen, können Sie das erste Wort, das eine Zahl ist, ausschneiden:
words=`wc -w filename.txt | cut -f1 -d' '`
echo "$words words"
Oder verwenden Sie wc wie folgt:
words=`wc -w < filename.txt`
echo "$words words"
Verzeichnis-Peichspeicher-Nutzung überprüfen
du ~/dirname
Pfad des Skriptverzeichnisses in Bash abrufen
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
Skript-Ausführungszeit in Bash messen
Eine Möglichkeit ist die Verwendung der time-Funktion:
time your_script.sh
Eine andere Möglichkeit ist etwas komplizierter:
start=`date +%s`
# sehr wichtiger Code
# kommt hier hin
end=`date +%s`
runtime=$((end-start))
Zwei Dateien mit VS Code vergleichen
code -d <datei 1> <datei 2>
Verfügbare Pakete im Ubuntu-Repository überprüfen
sudo apt-cache policy <packageName>
Nützliche Links
- Git-Branch in der Bash-Prompt
- Python Cheat-Sheet
- Conda Cheat-Sheet
- Lesezeichen-Synchronisation mit Floccus
- Linux neu installieren
- Ollama Cheat-Sheet
- Docker Cheat-Sheet
- Kubernetes Cheat-Sheet
- Markdown Cheat-Sheet
- Base64 Kodieren und Dekodieren unter Windows, Linux und Mac
- JWT-Token dekodieren und ausgeben
- MinIO Kommandozeilen-Parameter Cheat-Sheet