Grundlagen von Linux und der Kommandozeile
Verzeichnisstruktur und Pfade unter Linux, Hardlinks und symbolische Links, Wildcards, Zugriffsrechte mit chmod und umask, sudo und setuid, Umleitungen und Pipes, grep und reguläre Ausdrücke, sort, uniq, cut, sed, awk und find, Signale und Jobsteuerung, Exit-Status mit && und ||, Quoting, Argumente, Bedingungen und Schleifen in Shell-Skripten, PATH und Umgebungsvariablen, Paketverwaltung, systemd, cron, df und du, SSH-Public-Key-Authentifizierung, tar sowie grundlegende Git-Operationen, erarbeitet mit Multiple-Choice-Fragen.
Grundlagen von Linux und der Kommandozeile: Kernpunkte
Die meisten Server und Clouds laufen unter Linux, und auch EDA-Werkzeuge für Logiksynthese, Schaltungssimulation und Ähnliches werden normalerweise auf Linux-Servern genutzt. Dort besteht die tägliche Arbeit nicht aus Klicks auf Schaltflächen, sondern darin, Befehle in eine Shell einzugeben: Dateien untersuchen, Logs filtern und lange Berechnungen weiterlaufen lassen, während man die Verbindung trennt.
Behandelt werden die Verzeichnisstruktur, absolute und relative Pfade, versteckte Dateien, Hardlinks und symbolische Links, Wildcards, die Zugriffsrechte rwx und ihre Oktalschreibweise, umask, das Ausführungsrecht bei Verzeichnissen sowie sudo und setuid. Danach geht es um Umleitungen und Pipes, grep und reguläre Ausdrücke, Auswertungen durch Kombination von sort und uniq, tail -f, cut, sed, awk, find, kill und Signale, Strg+Z mit bg und fg, nohup, Exit-Status mit && und ||, Anführungszeichen und Variablenexpansion, Argumente, Bedingungen und Schleifen in Skripten sowie PATH und export; zum Schluss werden Paketverwaltung, systemctl, cron, df und du, SSH-Schlüssel, tar und Git mit add, commit, push und .gitignore geprüft. Das Verhalten der Befehle richtet sich nach bash und den GNU-Werkzeugen (coreutils, grep, sed, findutils, tar), und die Ausgaben in den Fragen wurden durch tatsächliches Ausführen unter Linux überprüft. Wie Prozesse und virtueller Speicher funktionieren, behandelt „Betriebssystem und Hardware“, Portnummern und DNS „Grundlagen der Computernetzwerke“, Konzepte der Zugriffskontrolle „Grundlagen der Informationssicherheit“ und Git-Merges sowie Vorgehensweisen in der Entwicklung „Softwareentwicklung und Projektmanagement“.
Alle Fragen zu Grundlagen von Linux und der Kommandozeile (40)
- Welche Zuordnung von Standardverzeichnissen unter Linux zu ihrem Inhalt ist richtig?
- Welche Beschreibung des Verzeichnisses /proc unter Linux ist richtig?
- Das Verzeichnis /home/alice/data existiert, und das aktuelle Verzeichnis ist /home/alice/work. Welches Verzeichnis wird angezeigt, wenn „cd ../data“ und danach „pwd“ ausgeführt werden?
- Im Home-Verzeichnis zeigt „ls“ nur notes.txt an, „ls -a“ dagegen „.“, „..“, „.bashrc“ und „notes.txt“. Welche Erklärung dieses Ergebnisses ist richtig?
- Welches Ergebnis liefern die letzten beiden cat-Befehle, wenn die obigen Befehle nacheinander ausgeführt werden?
- Ein Verzeichnis enthält die sechs Dateien a1.txt, a2.txt, a10.txt, b1.txt, c1.txt und a1.csv. Wie viele Dateien werden angezeigt, wenn in diesem Verzeichnis „ls [ab]?.txt“ ausgeführt wird?
- Nach „chmod 754 run.sh“ für die Datei run.sh: Welche Rechte-Notation steht am Anfang der Zeile, die „ls -l run.sh“ ausgibt?
- touch legt eine neue Datei ausgehend von 666 an und mkdir ein neues Verzeichnis ausgehend von 777, jeweils ohne die in der umask gesetzten Bits. Welche Kombination von Rechten ergibt sich für eine neue Datei und ein neues Verzeichnis, die in einer Shell mit umask 027 angelegt werden?
- Das Verzeichnis d hat die Rechte rwx--x--x (711), die Datei f.txt darin rw-r--r-- (644). Ein Benutzer, der weder Eigentümer noch Superuser ist, führt „ls d“ und „cat d/f.txt“ aus. Welches Ergebnis ist richtig?
- Welche Beschreibung des Befehls sudo unter Linux ist richtig?
- Auf vielen Linux-Systemen zeigt „ls -l /usr/bin/passwd“ die Zeile „-rwsr-xr-x 1 root root ...“. Was bedeutet das „s“ an der Ausführungsposition des Eigentümers?
- Was zeigt das letzte cat an, wenn die obigen Befehle nacheinander ausgeführt werden?
- Wie oben gezeigt, wird in einem Verzeichnis, in dem a.txt existiert und nofile nicht, der letzte Befehl ausgeführt. Welches Ergebnis ist richtig?
- Welchen Wert gibt der letzte Befehl in der obigen Sitzung aus?
- Welche Zeilen gibt das letzte grep in der obigen Sitzung aus?
- In den Auswahlmöglichkeiten sind die Leerzeichen am Zeilenanfang weggelassen. Welche Zeile gibt die letzte Pipeline in der obigen Sitzung aus?
- Zeilen, die später an die Server-Logdatei /var/log/app.log angehängt werden, sollen fortlaufend auf dem Bildschirm erscheinen, sobald sie hinzukommen. Welcher Befehl ist geeignet?
- Welche Ausgabe erzeugt der obige Befehl, der Spalten aus einer kommagetrennten Zeile herausschneidet?
- Welche Ausgabe erzeugt der obige sed-Befehl, der Zeichen ersetzt?
- Was gibt das letzte awk in der obigen Sitzung aus?
- Welche Beschreibung der Dateien, die GNU find mit „find /data -name "*.log" -mtime +7 -size +100M“ findet, ist richtig?
- Um einen Prozess zu stoppen, der nicht mehr reagiert, gilt es als empfehlenswert, zuerst „kill Prozess-ID“ zu verwenden und „kill -9 Prozess-ID“ nur dann, wenn er damit nicht endet. Was ist der Grund?
- Während ein langwieriges ./sim.sh in einem Terminal läuft, möchte man im selben Terminal andere Befehle verwenden. Was geschieht, wenn man Strg+Z drückt und danach bg ausführt?
- Auf einem per SSH erreichten Server wurde eine langwierige Berechnung mit „./run.sh &“ gestartet; als die Verbindung getrennt wurde, brach auch die Berechnung ab. Wie startet man sie am besten, damit sie nach dem Trennen der Verbindung weiterläuft?
- Welche Zeichen werden angezeigt, wenn die beiden obigen Zeilen in einer Shell ausgeführt werden?
- Welche Ausgaben erzeugen die beiden echo-Befehle, wenn die obigen Befehle nacheinander ausgeführt werden?
- Wie oben gezeigt, wird das Skript s.sh mit Argumenten ausgeführt. Welche Ausgabe ist richtig?
- In welchem Fall ist die Bedingung des obigen if in einem Shell-Skript wahr?
- Welche Dateien liegen nach der obigen Sitzung im Verzeichnis?
- Ein ausführbares Skript run.sh im aktuellen Verzeichnis ergibt bei Eingabe von „run.sh“ die Meldung „command not found“, lässt sich aber durch Eingabe von „./run.sh“ ausführen. Was ist der Grund?
- Welche Kombination der Ausgaben der beiden bash -c-Befehle ergibt sich, wenn die obigen Befehle nacheinander ausgeführt werden?
- Was ist die Hauptaufgabe eines Paketverwaltungssystems unter Linux (apt bei Debian-basierten Systemen, dnf bei Red-Hat-basierten Systemen usw.)?
- Was ist auf einem Linux-System mit systemd der Unterschied zwischen „systemctl start license.service“ und „systemctl enable license.service“ für den Dienst license.service?
- In cron wurde „30 2 * * 1 /home/alice/backup.sh“ eingetragen. Wann wird backup.sh ausgeführt?
- Ein Linux-Server warnt, dass der freie Speicherplatz knapp wird. Welche Kombination aus einem Befehl, der Belegung und freien Platz je Dateisystem anzeigt, und einem Befehl, der den von den Dateien in einem Verzeichnis belegten Platz aufsummiert, ist richtig?
- Auf dem eigenen PC wurde mit ssh-keygen ein Schlüsselpaar für die Public-Key-Authentifizierung erzeugt; nun soll die Verbindung zum Server server1 per ssh ohne Passwort möglich werden. Wie werden die Schlüssel richtig abgelegt?
- Was geschieht, wenn „tar -czf proj.tar.gz proj/“ ausgeführt wird?
- Nach dem Bearbeiten der mit Git verwalteten Datei main.c wurde nur „git commit -m "fix"“ ausgeführt; es erschien „no changes added to commit“, und nichts wurde committet. Was ist der Grund?
- In Git wurde git commit ausgeführt, doch im vom Team gemeinsam genutzten GitHub-Repository erscheint der Commit noch nicht. Was ist der Grund?
- In der .gitignore eines mit Git verwalteten Projekts wurde „build/“ eingetragen, doch Änderungen an der früher committeten Datei build/out.log erscheinen weiterhin in git status. Was ist der Grund?
Weitere Themen in Computersysteme
- Computerarithmetik IEEE 754, Festkomma, Rundungsfehler
- Wahrscheinlichkeitsrechnung, Statistik und Warteschlangen Abzählen, Verteilungen, Schätzen und Testen, M/M/1
- Befehlssatz und Assembler RISC-V, Adressierungsarten, Aufrufkonvention
- Compiler Parsing, SSA, Optimierung, Registerzuteilung
- Linker, Loader und ausführbare Formate ELF, Symbole, Relokation, dynamisches Linken
- Betriebssystem und Hardware Interrupts, Systemaufrufe, Page Faults
- Speicherhierarchie und Leistung Cache, Ersetzungsstrategie, drei Miss-Arten
- Multicore und Synchronisation MESI, atomare Befehle, Memory Barriers
- GPU-Programmierung Warps, Shared Memory, Coalescing, Occupancy
- KI-Hardware und Software-Stack Inferenz vs. Training, Quantisierung, Roofline
- Grundlagen des maschinellen Lernens Lernverfahren, Bewertungskennzahlen, neuronale Netze
- Embedded Systems und Firmware GPIO, UART/SPI/I2C, RTOS
- Hardwarebeschreibungssprachen und Verifikation Verilog, Latches, Zustandsautomaten, Testbench
- Schnittstellen und Busstandards PCIe, USB, SerDes, CXL
- Grundlagen der Computernetzwerke TCP/IP, Subnetzberechnung, DNS, TLS
- Grundlagen der Webtechnologien HTTP, Cookies, REST, CORS, Caching
- Grundlagen der Funkkommunikation Modulation, OFDM, MIMO, HF-Schaltungen
- Grundlagen der Informationssicherheit Kryptografie, Authentifizierung, Webangriffe
- Grundlagen der Datenbanken SQL, Normalisierung, Transaktionen
- Datenstrukturen und Algorithmen Komplexität, Suche, Sortieren, Graphen
- Grundlagen der Programmierung (Pseudocode nachverfolgen) Pseudocode, Tracing, Arrays, Rekursion
- Grundlagen der Programmiersprache C Zeiger, Speicher, undefiniertes Verhalten
- Softwareentwicklung und Projektmanagement Prozesse, Tests, Termin- und Kostensteuerung
- Grundlagen von Unternehmensstrategie und Rechnungswesen Rechnungswesen, Break-even, Strategie, Marketing
- IT-Service-Management und IT-Audit SLAs, Incidents und Probleme, Audit und interne Kontrolle
- Systemarchitektur und Zuverlässigkeit Redundanz, RAID, Backups, Cloud
- Leistungsbewertung und Profiling Amdahlsches Gesetz, CPI, Engpässe
- Hardwaresicherheit Seitenkanäle, Secure Boot, TEE, PUF
- Energieverwaltung (softwaregesteuert) DVFS, Power Gating, Schlafzustände