Linux Server setup

Bash Cheat Sheet

Eine Liste von gängigen Linux Befehlen, die vor allem auf dieser Seite genutzt werden.


Info, Hilfe, Anleitung

man (manual)

Die Manpages sind Hilfedateien zum Umgang und Erklärung der Optionen von Befehlen und Programmen. Dem Befehl man folgt der Befehl als Paramater:

__$ man cd

Eine Manpage kann mit einem Slash gefolgt von einem Suchwort durchsucht werden: /suchwort. Mit n kann zum nächsten Suchtreffer gesprungen werden. q zum Beenden.

Auch der Befehl man hat eine Anleitung:

__$ man man

type

Gibt Informationen zu einem Befehl, ob es sich um eine internen, externen oder einem Alias handelt. Dieser Befehl ist auch nützlich, um herauszufinden, ob ein Befehl implementiert ist.

__$ type cd

which

Gibt den Pfad einer ausführbaren Datei, die in der Umgebungsvariable PATH angegeben ist aus.

__$ which cd

-a gibt alle Pfade zu einer ausführbaren Datei aus.

__$ which -a cd

history

Gibt die Historie der eingegebenen Terminal Kommandos aus.

__$ history

Die Historien Datei löschen mit -c.

__$ history -c

Die maximale Anzahl der Einträge auf 10.000 einstellen.

__$ export HISTSIZE=10000

Dateisystem

pwd (print working directory)

Gibt den aktuellen Verzeichnispfad aus. Eher in Shell Skripten nützlich!

__$ pwd

cd (change directory)

Ohne weitere Angabe wird in das home Verzeichnis gewechselt:

__$ cd

In ein Verzeichnis wechseln mit absolutem Pfad:

__$ cd /absoluter/pfad

In ein Verzeichnis wechseln mit relativem Pfad

__$ cd relativer/pfad

Pfade mit Leerzeichen werden Hochkommata umschlossen:

__$ cd "a pfad/mit leerzeichen/mittendrin"

Eine Verzeichnisebene höher wechseln:

__$ cd ..

Eine Verzeichnisebene höher und von dort relativ wechseln:

__$ cd ../pfad/von/dort

Zurück zum vorherigen Verzeichnis wechseln:

__$ cd -

In das Home-Verzeichnis wechseln:

__$ cd

ls (list)

Gibt den Inhalt eines Verzeichnisses aus.

__$ ls

Ausgabe als detaillierte Liste mit -l:

__$ ls -l

Ausgabe auch von versteckten Dateien mit -a:

__$ ls -a

Gängiger gebrauch:

__$ ls -la

Liste detailliert (-l), alles (-a), sortiert nach Zeit (-t) und in umgekehrter Reihenfolge (-r):

__$ ls -latr

Mit Pfadangabe:

__$ ls -la /etc

Lange Ausgaben mit less (oder more) durchscrollen:

__$ ls -la /etc | less

Alias ~ listet das home Verzeichnis aus:

__$ ls ~

stat (status)

Informationen über Dateien und Ordner anzeigen lassen.

__$ stat meine-datei.txt

Weniger Details mit -t:

__$ stat -t meine-datei.txt

touch

Ändert das Änderungsdatum von Dateien. Wenn die Datei nicht existiert, wird sie angelegt.

__$ touch meine-neue-datei.txt

Den Zugriff- und Änderungszeitstempel auf 31.12.2020 12:45:30 Uhr mit einem Zeitstempel ändern -t:

__$ touch -t 201231124530 meine-alte-datei.txt

Den Änderungszeitstempel (-m) auf 31.12.2020 12:45:30 Uhr mit einem Zeitstempel ändern -t:

__$ touch -t 201231124530 meine-alte-datei.txt

Den Zugriffszeitstempel (-a) auf 31.12.2020 12:45:30 Uhr mit einem Zeitstempel ändern -t:

__$ touch -t 201231124530 meine-alte-datei.txt

cp (copy)

Kopiert Dateien und Ordner:

__$ cp datei.txt neuer/ort/datei.txt

Meherer Dateien und Ordner kopieren:

__$ cp datei.txt ordner neuer/ort/

Unterverzeichnisse mitkopieren -r:

__$ cp -r ordner neuer/ort/

Attribute beibehalten -a (Besitzer-, Gruppen- und Zugriffsrechte / Erstellungs-, Modifikations- und Zugriffsdaten):

__$ cp -a datei.txt neuer/ort/

Interaktiver Modus! Vor überschreiben nachfragen -i:

__$ cp -i datei.txt neuer/ort/

Gleichnamige Dateien sichern -b:

__$ cp -b datei.txt neuer/ort/

mv (move)

Verschieben oder umbenennen von Dateien und Ordnern.

Umbenennen von datei-a.txt in datei-b.txt:

__$ mv datei-a.txt datei-b.txt

Verschieben von datei-a.txt nach ordner/datei-a.txt:

__$ mv datei-a.txt ordner/datei-a.txt

Verschieben und umbenennen von datei-a.txt nach ordner/datei-b.txt:

__$ mv datei-a.txt ordner/datei-b.txt

Verschieben von datei-a.txt und ornder-b in den ordner-c:

__$ mv datei-a.txt ordner-b ordner-c/

Dateiendung mehrerer Dateien umbenennen:

__$ mv *.JPG *.jpg

mkdir (make directory)

Erstellen von Verzeichnissen:

__$ mkdir ordner-a

Erstellen mehrerer Verzeichnisse:

__$ mkdir ordner-a ordner-b

Erstellen eines Verzeichnisses, übergeordnete Ordner mit anlegen, wenn nötig -p:

__$ mkdir -p ordner-a/ordner-b/ordner-c

Verzeichnisbäume erstellen mit geschweiften Klammern {ordner}:

__$ mkdir -p ordner-a/{ordner-b, ordner-c}/{ordner-1, ordner-2}

Das erzeugt die Struktur:


|-- ordner-a
	|-- ordner-b
		|-- ordner-1
		|-- ordner-2
	|-- ordner-c
		|-- ordner-1
		|-- ordner-2

rm (remove)

Löschen von Dateien und Verzeichnissen:

__$ rm datei.txt

Löschen mehrerer Dateien und Verzeichnisse einschließlich Unterverzeichnisse -r:

__$ rm -r datei.txt ordner

Löschen aller Dateien mit der Endung .jpg:

__$ rm *.jpg

Löschen ohne Nachfragen -f:

__$ rm -f datei.txt

Löschen mit Nachfrage -i. Interaktiver Modus!

__$ rm *.jpg

rmdir (remove directory)

Löschen von leeren Verzeichnissen:

__$ rmdir leeres-verzeichnis

Elternverzeichnisse ebenfalls löschen -p:

__$ rmdir -p ordner-a/ordner-b/ordner-c

ln (link)

Erzeugt eine Verknüpfung zu einer Datei oder einem Verzeichnis. Mit dem Parameter -s wird ein Symbolischer- oder Softlink erzeugt.

__$ ln -s /pfad/zur/quell-datei.txt neuer-symbolischer-link

gzip

Eine Datei file.txt zu file.txt.gz verpacken:

__$ gzip file.txt

Einen Ordner folder zu folder.gz verpacken:

__$ gzip folder

Mehrer Dateien jeweils einzeln verpacken (Ausgabe file1.txt.gz,file2.txt.gz, file3.txt.gz):

__$ gzip file1.txt file2.txt file3.txt

Ein Archiv entpacken:

__$ gzip -d archive.gz

echo

Zum Ausgeben von Zeichenketten und Variablen in der Standardausgabe zum Beispiel dem Terminal:

__$ echo "Mein Benutzername ist $USER"

cat (concatenate)

Fügt Dateien zusammen oder gibt den Inhalt einer Datei im Terminal aus:

__$ cat /etc/hostname

less

Gibt den Inhalt einer Datei im Terminal aus mit dem Vorteil, lange Ausgaben blättern zu können (mit den Pfeiltasten scrollen und beenden mit q):

__$ less ~/.bashrc

tail

Gibt die letzten Zeilen einer Datei aus. Ohne Angaben werden die letzten 10 Zeilen ausgegeben:

__$ tail /var/log/auth.log

Ausgabe der letzten 5 Zeilen mit -n:

__$ tail -n5 /var/log/auth.log

Änderungen einer Datei live anzeigen mit -f:

__$ tail -f /var/log/auth.log

grep

Dateien nach Zeichenketten oder regulären Ausdrücken durchsuchen:

__$ grep "Suchtext" /var/log/auth.log

wc (word count)

Zählt Wörter, Zeilen, Zeichen oder Bytes einer Textdatei.

Zeilen zählen mit -l:

__$ wc -l /var/log/auth.log

Wörter zählen mit -w:

__$ wc -w /var/log/auth.log

Zeichen zählen mit -m:

__$ wc -m /var/log/auth.log

Bytes zählen mit -c:

__$ wc -c /var/log/auth.log

Länge der längsten Zeile mit -L:

__$ wc -L /var/log/auth.log

> (redirect and replace)

Leitet eine Ausgabe um, zum Beispiel in eine Datei. Der Inhalt der Datei wird überschrieben:

__$ echo "Mein neuer Text" > ~/datei.txt

>> (redirect and append)

Leitet eine Ausgabe um und schreibt sie an das Ende einer Datei:

__$ echo "Weiterer Text an das Ende der Datei." >> ~/datei.txt

sed (stream editor)

Ersetzt Text in einer Datei nach einem Suchmuster oder regulärem Ausdruck. sed ist ein nicht interaktiver Texteditor.

Alle vorkommen von "alter-text" mit "neuer-text" ersetzen:

__$ sed -i 's/alter-text/neuer-text/g' datei.txt

Entfernt das Raute Symbol (#) am Anfang der Zeile von #force_color_prompt und kommentiert sie damit ein:

__$ sed -i '/^#force_color_prompt *=/s/^#//' ~/.bashrc

Ändert den Wert einer Konfigurationszeile:

__$ sed -i 's/\(KonfigurationsAttribute[\t[:space:]]*=[\t[:space:]]*\).*/\1 neuerWert/g' ~/datei.conf

nano

Ein einfacher Texteditor, der über das Terminal ausgeführt werden kann. Vollständige Liste der Tastenkürzel anzeigen mit STRG+g.

Mit nano kann auch eine neue Datei angelegt werden:

__$ nano ~/neue-datei.txt

Die wichtigsten Tastenkürzel:

  • STRG+s speichern
  • STRG+o speichern unter
  • STRG+x schließen
  • STRG+k ausschneiden oder ganze Zeile löschen
  • STRG+ALT+↑ kopieren
  • STRG+ALT+u einfügen
  • STRG+w suchen
  • ALT+w weitersuchen

vim (vi improved)

Ein umfangreicher Texteditor, der über das Terminal ausgeführt werden kann.

Mit vim kann auch eine neue Datei angelegt werden:

__$ vim ~/neue-datei.txt

Die wichtigsten Tastenkürzel:

  • :wq speichern
  • :q schließen
  • :q! schließen und Änderungen verwerfen
  • ESC Normal-Modus
  • i Einfügen-Modus
  • x Löschen-Modus

Es lohnt sich den vim Lernkurs durchzuarbeiten:

__$ vimtutor

System, Hardware, Netzwerk, Monitoring

getent (get entries)

Auslesen von wichtigen Systeminformationen die in Datenbanken bzw. Textdateien gespeichert sind. Sehr nützlich, um einen schnellen Überblick zu Benutzern, Gruppen und Netzwerk zu erhalten. Die möglichen Quellen sind über den ersten Parameter abrufbar: ahosts, ahostsv4, ahostsv6, aliases, ethers (Ethernet addresses), group, gshadow, hosts, netgroup, networks, passwd, protocols, rpc, services, shadow.

Alle Benutzerkonten auflisten mit passwd.

__$ getent passwd

Auslesen eines bestimmten Benutzers:

__$ getent passwd tom

Gruppen anzeigen:

__$ getent groups

hostnamectl

Auslesen und bearbeiten des Hostnames und verwandte Einstellungen:

__$ hostnamectl

lsb_release

Informationen über LSB (Linux Standard Base) und Distribution. Alle Informationen mit -a

__$ lsb_release -a

os-release

os-release ist eine Datei mit Angaben zum Betriebssystem:

__$ cat /etc/os-release

uname

Ausgeben der Systeminformationen zum Kernel. Alle Informationen mit -a:

__$ uname -a

top

Zeigt laufende Prozesse mit aktuellen Änderungen an:

__$ top

htop

Zeigt laufende Prozesse und Auslastung von Speicher und Prozessor mit aktuellen Änderungen an:

__$ htop

lsblk

Listet Speichermedien (Block Devices):

__$ lsblk

df (disk free)

Zeigt den freien Speicherplatz an. Mit -h werden die Einheiten in größeren Einheiten ausgegeben:

__$ df -h

-all bezieht alle Dateisysteme ein:

__$ df -all

Mit Angabe eines Pfades wird nur die Partition berücksichtigt, auf der die Datei oder Ordner liegt (das aktuelle Verzeichnis wird mit einem Punkt angegeben df .):

__$ df /home

du (disk usage)

Zeigt den belegten Speicherplatz an. Mit -h werden die Einheiten in größeren Einheiten ausgegeben:

__$ du -h

-all bezieht alle Dateisysteme ein:

__$ du -all

Mit Angabe eines Pfades wird nur die Partition berücksichtigt, auf der die Datei oder Ordner liegt (das aktuelle Verzeichnis wird mit einem Punkt angegeben du .):

__$ du /home

free memory

Informationen zum genutzten und ungenutzten Arbeitsspeicher:

__$ free

Mit -h werden die Einheiten in größeren Einheiten ausgegeben:

__$ free -h

reboot

Neustart des Betriebssystems.

__$ reboot

poweroff

Rechner ausschalten.

__$ poweroff

ps (processes)

Verwaltet Prozesse.

Anzeigen der vollständigen Prozessliste:

__$ ps ax

Prozessliste mit erweiterten Informationen:

__$ ps axu

Laufende Prozesse:

__$ ps -r

Bestimmten Prozess anhand der Prozess ID (PID) anzeigen:

__$ ps 1

pstree

Zeigt die Prozessliste in einer Baumstruktur an:

__$ pstree

pgrep

Prozesse filtern anhand eines Suchbegriffs.

Zeigt alle Prozesse mit "ssh" im Prozessnamen an:

__$ pgrep ssh

kill

Beendet ein Prozess, indem ein Signal an eine Prozess ID (PID) gesendet wird. Standard Signal ist 15 bzw. -SIGTERM. Mit diesem Signal hat der Prozess die Möglichkeit sich sauber zu beenden. -SIGKILL bzw. 9 beendet ein Prozess unverzüglich.

Beendet den Prozess 555 mit -SIGTERM:

__$ kill 555

Beendet den Prozess 555 mit -SIGKILL:

__$ kill -9 555

killall

Beendet alle Prozesse die einem Prozessnamen entsprechen.

Prozesse beenden mit dem Namen "apache":

__$ killall apache

Exakte Übereinstimmung des Prozessnamens mit -e:

__$ killall -e apache

Interaktives Beenden mit -i. Vor jedem Beenden nachfragen:

__$ killall -i apache

systemctl

Programmpaket zum verwalten System- und Sitzungs-Manager systemd.

Auflistung aller System Einheiten mit list-units:

__$ systemctl list-units

Auflistung aller Zeitgesteuerten System Einheiten mit list-timers:

__$ systemctl list-timers

Starten einer System Einheit mit start:

__$ systemctl start ssh

Stoppen einer System Einheit mit stop:

__$ systemctl stop ssh

Neustarten einer System Einheit mit restart:

__$ systemctl restart ssh

Neustarten einer System Einheit und neu einlesen zugehöriger Konfigurationsdateien mit reload:

__$ systemctl reload ssh

Status einer System Einheit anzeigen mit status:

__$ systemctl status ssh

System Einheit beim Systemstart mit laden enable:

__$ systemctl enable ssh

System Einheit beim Systemstart nicht mit laden disable:

__$ systemctl disable ssh

Prüfen ob System Einheit beim Systemstart mit lädt is-enabled:

__$ systemctl is-enabled ssh

Neueinlesen der systemd Konfigurationsdateien daemon-reload:

__$ systemctl daemon-reload

ip

Programmpaket zur Verwaltung von Netzwerkschnittstellen.

Anzeigen der IP Adresse mit a

__$ ip a

Anzeigen der Netzwerkschnittstellen mit link

__$ ip link

ping

Erreichbarkeit anderer Rechner überprüfen:

__$ ping 192.0.0.1

dig (domain information groper)

Fragt DNS Informationen ab:

__$ dig wikipedia.org

Den Mailserver Eintrag mit mx abfragen:

__$ dig wikipedia.org mx

nslookup

Mit nslookup (Name Server Lookup) lassen sich DNS Informationen abrufen.

Eine Domain in eine IP übersetzen:

__$ nslookup wikipedia.org

Reverse DNS Lookup:

__$ nslookup 91.198.174.192

Den NS Record abfragen:

__$ nslookup -type=ns wikipedia.org

Alle NS Records abfragen:

__$ nslookup -type=any wikipedia.org

Den MX Record abfragen:

__$ nslookup -type=mx wikipedia.org

nslookup interaktiv benutzen (mit exit beenden):

__$ nslookup

ssh

Secure Shell ist ein Protokoll für verschlüsselte Netzwerkkommunikation.

Einfache SSH Verbindung über den Standard Port 22:

__$ ssh 192.0.0.1

SSH Verbindung über Port 2222 mit -p:

__$ ssh 192.0.0.1 -p 2222

SSH Verbindung über Port 2222 (-p) und privatem Schlüssel (-i):

__$ ssh 192.0.0.1 -p 2222 -i pfad/schluessel

wget

Herunterladen von Dateien von FTP, HTTP oder HTTPS Servern.

In das aktuelle Verzeichnis herunterladen:

__$ wget http://example.com/file.tar

Mit anderem Dateinamen speichern (-O):

__$ wget -O new-name.tar http://example.com/file.tar

Herunterladen in ein anderes Verzeichnis (-P):

__$ wget http://example.com/file.tar -P /tmp

lsof

Hilfsprogramm zum auflisten offener Dateien. Da unter Linux alles eine Datei ist, lassen sich damit auch offene Ports auslesen.

Offene Ports auflisten (gefiltert mit dem Suchwort "LISTEN"):

__$ lsof -i -P | grep LISTEN

netstat

Kommandozeilenprogramm zur Diagnose von Netzwerkschnittstellen.

Alle Netzwerkschnittstellen anzeigen:

__$ netstat

Alle offenen Ports auflisten:

__$ netstat -lptn

Bestimmten Port anzeigen:

__$ netstat -pan | grep 80

tcpdump

Paket Sniffer. Protokolliert Netzwerkereignisse.

Netzwerkschnittstellen anzeigen:

__$ tcpdump -D

Netzwerkereignisse von Port 443 protokollieren:

__$ tcpdump -n -i enp1s0 port 443

Netzwerkereignisse mit der IP 1.2.3.4 protokollieren:

__$ tcpdump -n -i enp1s0 | grep 1.2.3.4

Netzwerkereignisse von Port 443 in die Datei log.txt schreiben:

__$ tcpdump -n -i enp1s0 port 443 -w log.txt

ufw (uncomplicated firewall)

Standard Firewall.

Status überprüfen mit status:

__$ ufw status

Detailierter Status mit status verbose:

__$ ufw status verbose

Regel Tabelle mit Regelnummern ausgeben status numbered:

__$ ufw status numbered

Aktivieren mit enable:

__$ ufw enable

Deaktivieren mit disable:

__$ ufw disable

Alles Eingehende blockieren:

__$ ufw default deny incoming

Alles Ausgehende erlauben:

__$ ufw default allow outgoing

Einen Dienst erlauben mit allow:

__$ ufw allow ssh

Einen Port über TCP erlauben mit allow:

__$ ufw allow 3000/tcp

Einen Port blockieren mit deny:

__$ ufw deny 3000

Regel löschen über die Regelnummer mit delete:

__$ ufw delete 5

Regel Tabelle neu einlesen mit reload:

__$ ufw reload

Liste aller Applikationen app list:

__$ ufw app list

Informationen zu einer bestimmten Applikation app info:

__$ ufw app info "Nginx Full"

Check if logging is enabled:

__$ ufw status verbose

Change log level:

  • fff: disables ufw managed logging.
  • on (low, default): logs all blocked packets not matching the defined policy (with rate limiting), as well as packets matching logged rules.
  • on (medium): log level low, plus all allowed packets not matching the defined policy, all INVALID packets, and all new connections. All logging is done with rate limiting.
  • on (High): log level medium (without rate limiting), plus all packets with rate limiting.
  • on (Full): log level high without rate limiting.
__$ ufw logging medium

Log files from ufw:

__$ ls /var/log/ufw*

Output all log files:

__$ less /var/log/ufw*

See logging in real time:

__$ tail -f /var/log/ufw.log

Benutzer, Gruppen und Rechteverwaltung

whoami

Gibt den aktuell angemeldeten Benutzernamen aus:

__$ whoami

su (substitute user)

Wechselt den Benutzer:

__$ su tom

Die Option - bzw. -l wechselt den Benutzer und simuliert eine echte Anmeldung mit wechseln des Home-Verzeichnisses, ändern der Shell Einstellungen und setzen der Umgebungsvariablen des Benutzers:

__$ su - tom

Eine Shell -s mit einem anderen Benutzer -u verwenden:

__$ sudo -s -u tom

logout

Meldet den Benutzer ab:

__$ logout

passwd

Zum Ändern des Passworts:

__$ passwd

Ändern des Passworts vom Benutzer tom:

__$ passwd tom

users

Gibt den aktuell angemeldeten Benutzernamen aus (ähnlich wie whoami):

__$ users

Alle Benutzer auflisten:

__$ less /etc/passwd

Die /etc/passwd Datei beinhaltet ein paar Informationen zu allen Benutzerkonten. Der Aufbau einer Zeile hat folgende Bedeutung:

root:x:0:0:root:/root:/bin/bash

  • root: Benutzername
  • x: Passwort gesetzt
  • 0: UID (User ID)
  • 0: GID (Group ID)
  • root: Kommentar
  • /root: Home Verzeichnis
  • /bin/bash: Standard Shell Programm

Benutzer auflisten mit Suchfilter. Jede Zeile in der root vorkommt:

__$ less /etc/passwd | grep root

adduser

Einen neuen Benutzer interaktiv anlegen:

__$ adduser tom

Einen Benutzer zu einer bestehenden Gruppe hinzufügen:

__$ adduser tom gruppenname

Einen neuen Benutzer ohne weitere Informationen anlegen --gecos:

__$ adduser --gecos "just tom" tom

Einen neuen Systembenutzer systom anlegen:

__$ adduser --system --group systom
  • --system: Systembenutzer
  • --group: in Kombination mit --system, wird der gleiche Name für die Gruppe verwendet

Einen neuen Systembenutzer systom mit weiteren Parametern anlegen:

__$ adduser --system --group --disabled-password --shell /bin/bash --home /home/systom systom
  • --disabled-password: kein Passwort setzen, dadurch keine passwortbasierte Benutzeranmeldung möglich, SSH Anmeldung jedoch erlaubt
  • --shell: die Shell nach dem Login
  • --home: Benutzer Home-Verzeichnis

deluser (delete user)

Löscht ein Benutzerkonto inklusive der Benutzerdateien:

__$ deluser tom

Einen Benutzer aus einer Gruppe entfernen:

__$ deluser tom gruppenname

usermod

Ein Benutzerkonto ändern.

Einem Benutzer eine weitere Gruppe hinzufügen (bisherige Gruppen bleiben erhalten):

__$ usermod -aG gruppenname tom

groups

Listet die primären und ergänzenden Gruppen auf:

__$ groups

Gruppen von bestimmten Benutzern (root, tom, syslog) auflisten:

__$ groups root tom syslog

groupadd

Gruppen anlegen:

__$ groupadd neuegruppe

groupdel

Gruppe löschen:

__$ groupdel gruppenname

groupmod

Eine Gruppe ändern. Zum Beispiel den Gruppennamen altername in neuername mit der Option -n ändern.

__$ groupmod -n neuername altername

chown (change owner)

Ändern den Besitzer einer Datei oder Ordners.

tom wird neuer Besitzer des Ordners /var/www/seite:

__$ chown tom /var/www/seite

tom wird neuer Besitzer des Ordners /var/www/seite und allen darin enthaltenen Dateien und Ordner mit -R:

__$ chown -R tom /var/www/seite

tom und die gleichnamige Gruppe werden neuer Besitzer des Ordners /var/www/seite:

__$ chown tom:tom /var/www/seite

chmod

Verändert die Zugriffsrechte von Dateien und Ordnern. Die Rechte werden numerisch (oktal) oder symbolisch angegeben.

Die symbolische Zeichenabfolge einer Rechtebschreibung hat zehn Stellen, die in vier Gruppen aufgeteilt werden - --- --- --- (die Schreibweise sieht eigentlich keine Leerzeichen vor, sie sind in diesem Beispiel nur zur Veranschaulichung):

  • erste Gruppe (Zeichen 1): zeigt, ob es eine Datei (-) oder ein Verzeichnis (d) ist
  • zweite Gruppe (Zeichen 2-4): Eigentümer-Rechte; lesen, schreiben, ausführen
  • dritte Gruppe (Zeichen 5-7): Gruppen-Rechte; lesen, schreiben, ausführen
  • vierte Gruppe (Zeichen 8-10): Sonstig-Rechte; lesen, schreiben, ausführen

Beispiel: d rwx r-x r-x (entspricht numerisch 755):

  • d: es ist ein Verzeichnis
  • rwx: Eigentümer darf lesen, schreiben, ausführen
  • r-x: Gruppe darf lesen, ausführen
  • r-x: Sonstige dürfen lesen, ausführen

Beispiel: - rwx rwx rwx (entspricht numerisch 777):

  • -: es ist eine Datei
  • rwx: Eigentümer darf lesen, schreiben, ausführen
  • rwx: Gruppe darf lesen, schreiben, ausführen
  • rwx: Sonstige dürfen lesen, schreiben, ausführen

Beispiel: - rw- r-- r-- (entspricht numerisch 644):

  • -: es ist eine Datei
  • rw-: Eigentümer darf lesen, schreiben
  • r--: Gruppe darf lesen
  • r--: Sonstige dürfen lesen

Ändern der Zugriffsrechte numerisch auf 755 der Datei datei.txt:

__$ chmod 755 datei.txt

Ändern der Zugriffsrechte numerisch auf 655 des Ordners mappe und allen darin enthaltenen Dateien und Ordner mit -R:

__$ chmod -R 755 datei.txt

Ändern der Zugriffsrechte symbolisch (entsprechend numerisch 777) der Datei datei.txt. a steht für alle. + steht für hinzufügen. rwx steht für lesen, schreiben, ausführen:

__$ chmod a+rwx datei.txt

chgrp (change group)

Ändert die Gruppenzugehörigkeit von Dateien oder Ordner.

Gruppe tom als neuer Besitzer des Ordners /var/www/seite setzen:

__$ chgrp tom /var/www/seite

APT - Paketverwaltung (Advanced Packaging Tool)

apt install

Installiert ein Paket. Zum Beispiel dnsutils:

__$ apt install dnsutils

apt remove

Entfernt ein Paket. Eventuell angelegte Konfigurationsdateien und Ähnliches bleiben erhalten:

__$ apt remove dnsutils

apt purge

Entfernt Konfigurationsdateien und Ähnliches von Paketen, die bereits deinstalliert wurden:

__$ apt purge dnsutils

apt update

Ruft Paketinformationen aller konfigurierten Quellen ab und aktualisiert die Paketliste:

__$ apt update

apt upgrade

Aktualisiert Pakete die in der Paketliste aufgeführt sind:

__$ apt upgrade

apt full-upgrade

Ähnlich wie upgrade, entfernt zusätzlich noch Pakete, wenn nötig. Sollte anstelle von upgrade eingesetzt werden, wenn das System als Ganzes aktualisiert wird:

__$ apt full-upgrade

apt show

Zeigt Informationen zu einem Paket an:

__$ apt show dnsutils

apt list

Listet alle installierten Pakete auf mit --installed:

__$ apt list --installed

Ein bestimmtes installiertes Paket abfragen mit --installed und einem Suchwort mit Platzhalter opens*:

__$ apt list --installed opens*

Listet alle erneuerbaren Pakete auf mit --upgradeable:

__$ apt list --upgradeable

Listet alle verfügbaren Versionen auf mit --all-versions:

__$ apt list --all-versions

Sucht online nach verfügbaren Paketen. Zum Beispiel dnsutils:

__$ apt search dnsutils

apt autoremove

Entfernt nicht mehr benötigte Pakete, die zum Beispiel Aufgrund anderer Abhängigkeiten mitinstalliert wurden:

__$ apt autoremove

apt clean

Bereinigt den Archiv Ordner für Pakete /var/cache/apt/archives/:

__$ apt clean