Linux und Raspberry PI 1 Flashcards
Per SSH an einer VM anmelden
ssh {Benutzername}@{IP}, z.B. ssh rakali@192.168.0.4
Manual aufrufen
man {Zahlen 1-9 für Teilbereich} {Befehl}
Got root?
Root ist der Administrator des Systems, der Zugriffsrechte, Schreibrechte und Ausführungrechte für alle Dateien und Ordner besitzt.
sudo?
Mit dem Präfix sudo lässt sich (nach Passworteingabe) ein einzelner Befehl im Terminal mit Administratorrechten ausführen.
Benutzer eines Linuxsystems abfragen
cat /etc/passwd
passwd ist eine Datei, in der alle User des Systems angezeigt werden. Mit cat (concatenate) wird der Inhalt der Datei im Terminal als Text ausgegeben.
Aktuelles Verzeichnis eines Linuxsystems abfragen
pwd
steht für print working directory, gibt den aktuellen Pfad aus
Unterverzeichnisse, -Dateien und Rechte im aktuellen Verzeichnis abfragen
ls -l
list list, gibt unversteckte Dateien als Liste im Terminal mit deren Benutzerrechten und Zusatzinformationen wie Änderungsdatum und Dateigröße aus
ls-a
list all, gibt alle Dateien im Terminal aus
ls-la (Kombination aus beiden oberen Befehlen)
Pfadangaben absolut und relativ darstellen
Absolute Pfadangaben beginnen mit einem /
Relative Pfadangaben beginnen mit dem Namen eines Verzeichnisses.
Mit einem Punkt . vor dem Pfad wird auf das aktuelle Verzeichnis verwiesen.
Mit zwei Punkten .. vor dem PFad wird auf das hierarchisch darüberliegende Verzeichnis verwiesen.
Mit einer Tilde ~ wird auf das Homeverzeichnis verwiesen.
Editor aufrufen und verwenden
nano {Datei}
STRG-X schließt die Datei (fragt nach ungespeicherten Änderungen, bei Speichern lässt sich auch noch der Dateiname ändern)
STRG-O speichert die Änderungen.
r– (Permission Denied)
r-x (File Unwritable)
-wx (Error reading File)
rw- funktioniert
Nutzer anlegen
sudo adduser {Benutzername}
Danach wird ein Dialog geöffnet, in dem nach Passwort, erneuter Angabe vom Passwort und vorkonfigurierten Zusatzinformationen (z.B. Full Name, Room Number, Work Phone, Home Phone, Other) gefragt wird.
Neue Gruppe anlegen
sudo groupadd {Gruppenname}
Nutzer zu einer Gruppe hinzufügen
sudo addgroup {Benutzer} {Name einer bestehenden Gruppe}
Wenn die Gruppe noch nicht besteht, wird ein Fehler geworfen (Gruppe existiert nicht)
Mit addgroup kann pro Eingabe nur eine Gruppe zum User hinzugefügt werden.
Benutzergruppen eines User anzeigen lassen
groups {Benutzer}
groups ohne einen nachfolgenden Benutzer gibt die Gruppen des aktuellen Benutzers aus.
id {Benutzer} gibt die Gruppen, die Gruppenids und die Benutzer-ID zurück.
Benutzerkonten sperren und entsperren
sudo usermod –lock {Benutzername}
sudo usermod –unlock {Benutzername}
Dateien und Verzeichnisse anlegen
mkdir {Verzeichnisname}
touch {Dateiname}
Gruppeneigentümer ändern
chgrp {Gruppe} {Pfad zu Datei/Verzeichnis}
chown {Benutzer} {Pfad zu Datei/Verzeichnis}
Symbolschreibweise für Rechteänderungen
chmod {UGO+-} {Pfad zu Datei/Verzeichnis}
u+rwx
g-rwx
Oktalschreibweise für Rechteänderungen
rwx = 421
chmod 555 {Dateipfad} = r-xr-xr-x
SGID-Bit
Das SGID-Bit gibt allen hierarchisch untergeordneten Dateien, die nach Setzen des Bits neu erstellt werden automatisch die Gruppe des Elternverzeichnisses.
Zum Setzen des SGID-Bit (Set Group ID – Bit) wird g+s bzw. der Präfix 2 für die Oktalschreibweise verwendet.
In der Bitschreibweise ergibt sich dann r-s.
Dateien per scp von meinem PC auf VM kopieren
scp {Pfad zur lokalen Datei} {Benutzer}@{IP der VM}:{Pfad auf der VM}
Dateien mit cp oder mv lokal kopieren/verschieben
mv {Pfad zu Datei} {neuer Pfad} – Moves File, Original wird gelöscht
cp {Pfad zu Datei} {Pfad zur neuen Datei} – Kopiert file, Original bleibt bestehen
Bash
[$# -eq 0] checkt, ob die Menge der beim Skript eingegebenen Übergabeparameter = 0 ist
-lt = less than
-le = less equals
-gt = greater than
-ge = greater or equals
-ne = not equals
&& und || sind und, oder, d.h. if [test -lt 3] || [test -eq 5]; then
Variablen mit Dollarzeichen davor sind lesende Zugriffe, Variablen ohne Dollarzeichen sind Deklarationen
Python
if, elif else, for {new var} in {array} def {function} and, or, not {var} = input({Text, der auf Konsole ausgegeben wird}) print({Text, der ausgegeben werden soll}) # {Kommentar}
Nach jeder Befehlszeile kommt ein “:”, ansonsten ist nur Einrückung wichtig.
PAP
x := {Zuweisung}
Verzweigungen sind Rauten mit Fragezeichen
Immer Eingabe: und Ausgabe: davorschreiben
For-Schleifen sind Trapeze