# Linux Basics

Eine kleine Übersicht mit gängigen Befehlen. Kein Anspruch auf Vollständigkeit. Für weitere Befehle: [davechild\_linux-command-line.pdf](https://wiki.porthal.de/attachments/5)

### Befehle

Zum Verbinden per SSH kann man die meisten systemeigenen Kommandozeilen/Konsolen oder externe Programm wie puTTY oder [MobaXterm](https://mobaxterm.mobatek.net) nutzen. Letzteres ist empfehlenswert.

Für jeden Befehl oder für jedes Programm gibt es Man-Pages, also Manual-Pages / Handbücher, die man über `man <Programm>` anzeigen lassen kann.

#### Passwort ändern

<table border="1" id="bkmrk-passwd-%C3%84ndert-das-pa" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 20.2977%;"></col><col style="width: 79.8215%;"></col></colgroup><tbody><tr><td><code>passwd</code>  
</td><td>Ändert das Passwort für den aktuellen User</td></tr></tbody></table>

#### sudo

Wird benutzt, um ein Programm mit Adminrechten auszuführen oder um in einen anderen Benutzer zu wechseln

<table border="1" id="bkmrk-sudo-%3Cprogramm%3E-prog" style="border-collapse: collapse; width: 100%; height: 120.438px;"><colgroup><col style="width: 20.8531%;"></col><col style="width: 79.1469%;"></col></colgroup><tbody><tr style="height: 30.1094px;"><td style="height: 30.1094px;"><code>sudo &#60;Programm&#62;</code></td><td style="height: 30.1094px;">Programm mit Adminrechten ausführen</td></tr><tr style="height: 30.1094px;"><td style="height: 30.1094px;"><code>sudo &#33;&#33;</code></td><td style="height: 30.1094px;">Wenn der zuvor ausgeführte Befehl nochmal als <code>sudo</code> ausgeführt werden soll</td></tr><tr style="height: 30.1094px;"><td style="height: 30.1094px;"><code>sudo su</code></td><td style="height: 30.1094px;">Wechselt in den Root-Nutzer</td></tr><tr style="height: 30.1094px;"><td style="height: 30.1094px;"><code>su &#60;Benutzername&#62;</code></td><td style="height: 30.1094px;">Wechselt in den angegebene Benutzeraccount. Passwort für den Account wird benötigt</td></tr></tbody></table>

---

#### Navigation und System

Die folgenden Befehle funktionieren in Ubuntu. Man kann mit TAB eine Autovervollständigung des eingegebenen Pfades oder Dateinamens ausführen. Gibt man zum Beispiel `cd` ein und drückt dann zwei Mal TAB, werden die möglichen Ordner angezeigt. Nicht bei

<table border="1" id="bkmrk-cd-%3Cordner%3E-wechselt" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 30.5178%;"></col><col style="width: 69.4822%;"></col></colgroup><tbody><tr><td><code>cd &#60;Ordner&#62;</code></td><td>Wechselt in den angegebenen Ordner, der sich in der momentanen Ebene befindet.</td></tr><tr><td><code>cd &#47;&#60;Ordner&#62;</code></td><td>Wechselt in den angegebene Ordner, beginnt aber im Wurzelverzeichnis</td></tr><tr><td><code>cd &#46;&#46;</code></td><td>Wechselt eine Ordnerebene höher/zurück</td></tr><tr><td><code>cd</code> oder <code>cd &#126;</code></td><td>Wechselt in das Home-Verzeichnis des angemeldeten Users</td></tr><tr><td><code>ll</code> (Kurzform für den Befehl <code>ls &#45;l</code>)</td><td>Listet den Ordnerinhalt als Liste mit zusätzlichen Informationen auf</td></tr><tr><td><code>ls</code> oder <code>dir</code></td><td>Anzeigen des Ordnerinhalts. <code>ls</code> ist besser</td></tr><tr><td><code>pwd</code></td><td>Zeigt an in welchem Pfad man sich gerade befindet</td></tr><tr><td><code>who &#45;a</code></td><td>Zeigt alle offenen Anmeldungen an. <code>tty</code> sind alle "echten" Konsolen, <code>pts</code> sind Pseudokonsolen</td></tr><tr><td><code>whoami</code></td><td>Zeigt den eigenen Benutzernamen an</td></tr><tr><td><code>df &#45;h</code></td><td>Zeigt die Speicherbelegung an. Paramaeter <code>&#45;h</code> zeigt den Speicher leicht lesbar (human readable) an

</td></tr><tr><td><code>lsblk</code></td><td>Listet alle angeschlossenen Laufwerke/Datenträger und ihre Hardwarepfade an

</td></tr><tr><td><code>blkid</code></td><td>Listet alle angeschlossenen Laufwerke/Datenträger und ihre UUIDs, Label, Types und weitere technischen Informationen an

</td></tr><tr><td>  
</td><td></td></tr></tbody></table>


---

#### Programme installieren und deinstallieren

APT bze. APTITUDE funktioniert nur bei Ubuntu/Debian-Distributionen. Arch nutzt PacMan.

<table border="1" id="bkmrk-sudo-apt-install-%3Cpa" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 34.682%;"></col><col style="width: 65.318%;"></col></colgroup><tbody><tr><td><code>sudo apt install &#60;Paketname&#62;</code>

oder `sudo apt-get install <Paketname>`

</td><td>Installiert das gewünschte Programm. <code>sudo</code> bedeutet, dass man die Installation mit Adminrechten ausführt. <code>apt</code> ist der Paketmanager in Debian-Distributionen wie Ubuntu. Wenn man <code>apt</code> als Befehl benutzt, sieht man den Downloadfortschritt.</td></tr><tr><td><code>sudo apt remove &#60;Paketname&#62;</code></td><td>Deinstalliert ein Paket. Es können auch mehrere Pakete, getrennt durch ein Leerzeichen, deinstalliert werden</td></tr><tr><td><code>sudo apt autoremove &#60;Paketname&#62;</code></td><td>Löscht nicht mehr benötigte Installationsdateien und Abhängigkeiten</td></tr><tr><td><code>sudo apt purge &#60;Paketname&#62;</code></td><td>Deinstalliert ein Paket samt Konfigurationsdateien</td></tr></tbody></table>

---

#### Dateioperationen

<table border="1" id="bkmrk-mkdir-%3Cname%3E-erstell" style="border-collapse: collapse; width: 100%; height: 307.438px;"><colgroup><col style="width: 25.7444%;"></col><col style="width: 74.2556%;"></col></colgroup><tbody><tr style="height: 46.5938px;"><td style="height: 46.5938px;"><code>mkdir &#60;Name&#62;</code></td><td style="height: 46.5938px;">Erstellt einen Ordner an der aktuellen Position. Man kann aber auch einen Pfad vor dem Namen angeben</td></tr><tr style="height: 30.1094px;"><td style="height: 30.1094px;"><code>rmdir &#60;Name&#62;</code></td><td style="height: 30.1094px;">Löscht einen leeren Ordner</td></tr><tr style="height: 30.1094px;"><td style="height: 30.1094px;"><code>rm &#45;rf &#60;Name&#62;</code></td><td style="height: 30.1094px;">Löscht eine Ordner samt Inhalt. **Vorsichtig verwenden!**</td></tr><tr style="height: 30.1094px;"><td style="height: 30.1094px;"><code>rm &#60;Name&#62;</code></td><td style="height: 30.1094px;">Löscht eine Datei</td></tr><tr style="height: 30.1094px;"><td style="height: 30.1094px;"><code>cat &#60;Dateiname&#62;</code></td><td style="height: 30.1094px;">Zeigt den Inhalt einer Datei an.</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;"><code>nano &#60;Dateiname&#62;</code></td><td style="height: 46.5938px;">Öffnet die Datei mit dem Programm Nano um sie zu bearbeiten. Wenn die Datei nicht existiert, wird sie angelegt. Ein alternativer Editor wäre <code>vi</code> oder <code>vim</code>.</td></tr><tr style="height: 47.2188px;"><td style="height: 47.2188px;"><code>mv &#60;Dateiname&#45;alt&#62; &#60;Dateiname&#45;neu&#62;</code></td><td style="height: 47.2188px;">"Move", wird verwendet um einen Ordner oder eine Datei umzubenennen</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;"><code>cp &#60;Datei&#62; &#60;Datei&#45;Kopie&#62;</code></td><td style="height: 46.5938px;">"Copy", wird verwendet um eine Datei zu kopieren. Nützlich um z. B. Backups von Konfig-Dateien zu erstellen</td></tr></tbody></table>

Weitere Shortcuts kann man [hier](https://wiki.ww.ovgu.de/attachments/2) nachlesen.

---

### Nützliche Programme

#### nano

Intuitiver (als vi/vim) Texteditor.

Befehl: `nano <Datei>`  
Bei Ubuntu meist vorinstalliert.

<table border="1" id="bkmrk-strg%2Bo-speichern-str" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>Strg+O</td><td>Speichern</td></tr><tr><td>Strg+X</td><td>Beenden</td></tr><tr><td>Strg+K

</td><td>Zeile löschen</td></tr><tr><td>Strg+W</td><td>Suchen</td></tr><tr><td>Alt+W</td><td>Nächstes Suchergebnis</td></tr></tbody></table>

#### htop

Befehl: `htop`  
Muss meinst nachinstalliert werden.

hübschere Version des Programms `top`. Für Monitoring, ähnlich wie der Windows Taskmanager. Beenden mit `F10`.

<table border="1" id="bkmrk--4" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>[![image.png](https://wiki.ww.ovgu.de/uploads/images/gallery/2024-07/scaled-1680-/VD8image.png)](https://wiki.ww.ovgu.de/uploads/images/gallery/2024-07/VD8image.png)

</td></tr><tr><td>  
</td></tr></tbody></table>

#### nmon

Befehl: `nmon`  
Muss meist nachinstalliert werden.

Monitoring Tool bei dem man verschiedene Werte an und ausschalten kann. Beenden mit `q`.

<table border="1" id="bkmrk-startbildschirm" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td class="align-center">[![image.png](https://wiki.ww.ovgu.de/uploads/images/gallery/2024-07/scaled-1680-/image.png)](https://wiki.ww.ovgu.de/uploads/images/gallery/2024-07/image.png)  
</td></tr><tr><td class="align-center">Startbildschirm</td></tr></tbody></table>

<table border="1" id="bkmrk-ansicht-nach-dem-dr%C3%BC" style="border-collapse: collapse; width: 100%; height: 457.234px;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr style="height: 427.125px;"><td style="height: 427.125px;">[![image.png](https://wiki.ww.ovgu.de/uploads/images/gallery/2024-07/scaled-1680-/B92image.png)](https://wiki.ww.ovgu.de/uploads/images/gallery/2024-07/B92image.png)

</td></tr><tr style="height: 30.1094px;"><td class="align-center" style="height: 30.1094px;">Ansicht nach dem Drücken der Tasten <code>c</code> (CPU-Auslastung), <code>d</code> (Datenträgerauslastung) und <code>n</code> (Netzwerkverkehr)</td></tr></tbody></table>

---

### Netzwerk-Tools

<table border="1" id="bkmrk-netstat--tulpen-list" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 26.4882%;"></col><col style="width: 73.631%;"></col></colgroup><tbody><tr><td><code>netstat &#45;tulpen</code></td><td>Listet alle geöffneten Ports, IP und Protokoll auf. Das Programm ist <code>netstat</code> und <code>&#45;tulpen</code> sind spezielle Parameter aneinandergereiht.

`-t` --&gt; TCP Ports

`-u` --&gt; UDP Ports

`-l` --&gt; Listening Sockets (lauschende Ports) anzeigen

`-p` --&gt; Programm-ID

`-e` --&gt; erweiterte Details anzeigen

`-n` --&gt; Numerische Adressen anzeigen anstatt Hostnamen

</td></tr><tr><td><code>ping &#60;Adresse&#62;</code></td><td>Prüft ob eine Adresse erreichbar ist.

<p class="callout info">Nicht alle Zieladressen reagieren auf `Ping`</p>

</td></tr><tr><td><code>nslookup &#60;Adresse&#62;</code>

</td><td>Überprüft für eine <abbr title="Fully Qualified Domain Name">FQDN</abbr> welche IP hinterlegt ist und andersherum</td></tr><tr><td><code>tcpdump</code></td><td>Überwachen aller TCP-, UDP- und ICMP-Pakete.

<p class="callout danger">Kann bei längerer Ausführung zu sehr hoher Systemauslastung führen</p>

</td></tr></tbody></table>

---