BASH Grundlagen – die wichtigsten Befehle

In meinem Beitrag über Virtuelle Maschinen habe ich ja bereits die BASH erwähnt. Ich halte es für sehr nützlich, wenn man weiß, wie man damit umgehen soll, weil sehr viele OSINT-Tools keine grafische Oberfläche mitliefern und selbst wenn sie eine haben, sie meist in einem Terminal installiert werden müssen.

Terminal

Ein Terminal (Konsole) ist heutzutage ein in der Regel kleines schwarzes Fenster in dem eine Shell ausgeführt wird. In der Shell gibt es eine Kommandozeile um Befehle auszuführen, die eine Aufgabe durchführen.

BASH

BASH ist ein Akronym und bedeutet Bourne Again Shell. Eine Shell ist eine Mensch-Maschine-Schnittstelle, mit der man vorgegebene Befehle in an den Computer senden kann. Die Bash ist aber auch eine Skriptsprache mit der man kleine Programmabläufe programmieren kann. Neben der BASH gibt es für Linux noch viele andere Shells, die sich z.T. deutlich unterschieden.

Grundbefehle

cd – Verzeichniswechsel

Mit dem cd Kommando kann man in der Bash durch das Dateisystem navigieren.

cd ordnername ← Mit diesem Befehl kann man in einen Ordner wechseln, der sich in dem Ordner befindet, in dem man sich selbst befindet
cd .. ← Mit diesem Befehl kann man in den darüberliegenden Ordner wechseln (Achtung, im Gegensatz zur Windows-Eingabeaufforderung muss hier ein Leerzeichen zwischen cd und .. sein)
cd / ← Mit diesem Befehl wechselt man in das „Wurzelverzeichnis“ also die höchste Ebene im Verzeichnisbaum. Es gibt unter Linux keine Laufwerksbuchstaben)
cd ../ordnername ← Mit diesem Befehl wechselt man ein Verzeichnis nach oben und dann in den gewünschten Ordner
cd ~/ordnername ← Mit diesem Befehl wechselt man in sein Benutzerverzeichnis und anschließend in einen weiteren Ordner
cd /ordnername ← Mit diesem Befehl wechselt man erst in das Rootverzeichnis und dann in einen darin befindlichen Odner

Du kannst hier beliebig viele Verzeichnisebenen schachteln und auch 2 oder mehr Ordner tiefer gehen. Sinnvoll ist es dabei die TAB-Taste zur Autovervollständigung zu nutzen: cd /ord TAB
Durch das Drücken der TAB Taste wird, wenn der Ordnername eindeutig ist, der Ordnername vervollständigt. Durch dieses Feature verschreibt man sich seltener. Wenn dagegen nichts passiert, muss man nochmal die TAB Taste drücken, dann werden einem die Ordnernamen angezeigt, die noch möglich sind. Bis zum Ende der Gemeinsamkeiten muss man die Zeichen noch selber eintippen, danach kann man die TAB Taste drücken.

Die Bash mag keine Leerzeichen. Wenn man nun einen Ordnernamen mit Leerzeichen hat, muss man Anführungszeichen verwenden
>>cd "ordner name"<< oder das Leerzeichen entwerten >>cd ordner\ name<<

ls – Inhalt des Ordners ausgeben

mit dem ls Kommando kannst Du Dir die Inhalte eines Ordners anzeigen.

ls ← gibt nacheinander Ordner und Dateinamen im aktuellen Verzeichnis aus
ls -a ← gibt auch versteckte Dateien und Ordner mit aus
ls -l ← gibt die Ordner und Dateien als Liste aus, In dieser Ansicht kann man auch die Rechte, die Dateigröße, den Besitzer usw sehen
ls -lh ← gibt die Ordner und Dateien als Liste aus. Die Dateigröße ist dabei in einem lesbaren Format wie 2M für 2 Megabytes dargestellt.
ls -alh ← gibt zusätzlich noch die versteckten Ordner und Dateien aus
ls -1 ← gibt die Ordner und Dateien als einspaltige Liste aus
ls .. ← gibt die Ordner und Dateien eine Verzeichnisebene höher aus
ls *.pdf ← gibt nur die Dateien mit der Endung .pdf aus

mkdir – Ordner anlegen

Mit diesem Befehl kann man sich Ordner anlegen
mkdir ordnername ← Am besten man verzichtet auf Leerzeichen in den Ordnernamen. Ansonsten muss man >>mkdir „ordner name“<< schreiben

touch – Datei anlegen

Mit diesem Befehl kannst Du eine Dateihülse anlegen. Die Datei erhält nur einen Eintrag in der Master File Table im Computer, enthält aber keine Daten

touch dateiname ← hier gilt das selbe wie beim mkdir für Leerzeichen

rm – Datei löschen

Mit rm kannst Du Dateien und Ordner wieder entfernen (Es wird dabei nur der Eintrag in der Master File Table gelöscht)

rm dateiname ← hier gilt das selbe wie beim mkdir für Leerzeichen
rm -r ordername ← hier gilt das selbe wie beim mkdir für Leerzeichen

cp – Datei kopieren

Mit cp kann man Mehrfertigungen einer Datei anlegen

cp dateiname1 dateiname2 ← die Datei 1 wird kopiert und unter dem Namen von Datei 2 gespeichert
cp dateiname ../dateiname ← Die Datei wird ein verzeichnis nach oben kopiert
cp ../dateiname . ← Die Datei aus einer Verzeichnisebene weiter oben wird in den aktuellen Ordner kopiert
cp dateiname ordnername/dateiname ← Die Datei wird in den Ordner kopiert

mv – Dateien und Ordner verschieben oder umbenennen

Wenn Du eine Datei auf der selben Festplatte verschiebst, wird lediglich der Eintrag in der Master File Table geändert und der neue Pfad zur Datei eingetragen. Wenn die Datei auf eine andere Festplatte oder auf einen USB-Stick verschoben wird, wird auf der ursprünglichen Platte der Eintrag in der Liste gelöscht und die Datei verschoben. Die eigentliche Datei wird jedoch nicht gelöscht, sondern irgendwann überschrieben, da der Platz freigegeben wurde. Die Bedienung funktioniert analog dem cp Befehl.

mv dateiname1 dateiname2 ← Umbenennen
mv dateiname ../dateiname ← verschiebt die Datei eine Ebene nach oben
mv ../dateiname . ← verschiebt eine Datei, die eine Ebene höher liegt, in das aktuelle Verzeichnis
mv dateiname ordnername/dateiname ← verschiebt eine Datei in einen Ordner

cat – Datei ausgeben

cat dateiname

nano – Dateien editieren

nano dateiname ← öffnet die Datei in einem Texteditor. Wenn Du mit dem Editieren fertig bist, mit strg+o speichern und mit strg+x beenden

grep – Dateiinhalte suchen

grep "suchwort" dateiname
grep -r "suchwort" ordnername

| – Der Pipe – Ausgabe eines Befehls an den nächsten Befehl weiterleiten

cat dateiname | grep password

pwd – Wie ist der Pfad zum aktuellen Verzeichnis

pwd

locate – wo befindet sich ein Programm

locate "programmname"

updatedb – aktuallisiert die Datenbank von locate

sudo updatedb

vimtutor – Lernprogramm für den Dateieditor vim

vim ist ein sehr mächtiger Dateieditor unter Linux. Er ist allerdings nicht selbsterklärend. Wenn Du nerdig genug bist, kannst Du die Bedienung mit vimtutor erlernen

sudo

mit sudo kannst Du Dir Administratorenrechte holen, wenn der Benutzer in der sudoers Gruppe ist. Dies ist nicht in jedem Linux so eingerichtet

sudo <Befehl> ← führt einen Befehl mit Administratorrechten aus

apt

Debian basierte Systeme wie Ubuntu oder Linux Mint werden mit apt aktuell gehalten.

sudo apt update ← aktualisiert die Liste der Programme / Pakete
sudo apt full-upgrade ← aktualisiert die Programme / Pakete

Das sind aus meiner Sicht die wichtigsten Befehle, die Du in der Bash kennen solltest um Dich darin zurechtzufinden. Solltest Du noch mehr wissen wollen, kannst Du Dir gerne die Videos in meiner Youtube-Playlist zu den Bash-Grundlagen ansehen.