Übungsfragen zur Linux-Kommandozeile
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 4,62 KB
Übungsfragen und Antworten zur Linux-Kommandozeile
1. PATH-Variable für Skripte anpassen
Frage: Wie kann ein Benutzer eigene Verzeichnisse für ausführbare Skripte zur PATH-Umgebungsvariablen hinzufügen?
Antwort: Dies geschieht durch Bearbeiten der Profildatei des Benutzers, z. B. ~/.bash_profile oder ~/.bashrc. Fügen Sie eine Zeile hinzu, die Ihre Verzeichnisse zum bestehenden PATH hinzufügt.
Beispiel:
# Fügt die Verzeichnisse /home/user/scripts und /home/user/executables zum PATH hinzu
PATH="/home/user/scripts:/home/user/executables:$PATH"
export PATH2. Befehlsausführung bei Namenskonflikten
Frage: Wenn ein Befehl namens liste sowohl im aktuellen Verzeichnis als auch in /usr/bin existiert, welcher wird ausgeführt, wenn man nur liste eingibt?
Antwort: Es wird der Befehl aus /usr/bin ausgeführt. Der Grund dafür ist, dass die Shell die Verzeichnisse in der PATH-Variable in der angegebenen Reihenfolge durchsucht und /usr/bin in der Regel vor dem aktuellen Verzeichnis (.) steht.
3. Dateien mit bestimmten Kriterien finden
Frage: Geben Sie einen Befehl an, um im Verzeichnis /root alle Dateien aufzulisten, deren Namen genau 5 Zeichen lang sind, mit 'h' (groß oder klein) beginnen und mit 'o' (groß oder klein) enden. Das Ergebnis soll in der Datei liste im Home-Verzeichnis des Benutzers gespeichert und Fehlermeldungen sollen unterdrückt werden.
Antwort:
find /root -type f -name "[hH]???[oO]" > ~/liste 2>/dev/null4. Kernel-Meldungen nach Fehlern durchsuchen
Frage: Wie kann man die Kernel-Meldungen nach Zeilen durchsuchen, die das Wort „error“ enthalten?
Antwort: Der Befehl dmesg zeigt Kernel-Meldungen an. Man kann seine Ausgabe mit grep filtern, um nach dem Wort zu suchen. Die Option -i ignoriert die Groß- und Kleinschreibung.
dmesg | grep -i "error"5. Bash-Historie konfigurieren
Frage: Welche Umgebungsvariablen müssen eingestellt werden, damit die Befehlshistorie Datum und Uhrzeit der Ausführung enthält und doppelte Einträge gelöscht werden?
Antwort: Bearbeiten Sie die Variablen HISTTIMEFORMAT und HISTCONTROL in Ihrer Profildatei (z. B. ~/.bashrc).
Beispiel:
# Zeitstempel im Format 'Jahr-Monat-Tag Stunde:Minute:Sekunde' hinzufügen
export HISTTIMEFORMAT='%F %T '
# Aufeinanderfolgende Duplikate aus der Historie entfernen
export HISTCONTROL=erasedups6. Funktion des find-Befehls
Frage: Was bewirkt der Befehl find . -empty -type d -name "*[1-2,5]"?
Antwort: Dieser Befehl sucht im aktuellen Verzeichnis (.) und allen Unterverzeichnissen nach Objekten, die alle folgenden Kriterien erfüllen:
-empty: Sie sind leer.-type d: Es handelt sich um Verzeichnisse.-name "*[1-2,5]": Ihr Name endet auf die Ziffer 1, 2 oder 5.
7. Studentenliste mit awk filtern
Frage: Schreiben Sie ein awk-Skript, das eine kommagetrennte Liste von Studenten verarbeitet und nur diejenigen ausgibt, deren Notendurchschnitt 4,0 oder höher ist.
Antwort: Das folgende Skript berechnet den Durchschnitt aus den Spalten 3, 4 und 5. Wenn der Durchschnitt 4,0 oder mehr beträgt, gibt es den Nachnamen (Spalte 2), den Vornamen (Spalte 1) und den berechneten Durchschnitt aus.
Skript:
BEGIN {
# Eingabe-Feldtrennzeichen auf Komma setzen
FS = ",";
# Ausgabe-Feldtrennzeichen auf Tabulator setzen
OFS = "\t";
# Kopfzeile drucken
print "Liste der zugelassenen Studenten";
print "Nachname", "Vorname", "Durchschnitt";
}
{
# Durchschnitt aus den Spalten 3, 4 und 5 berechnen
durchschnitt = ($3 + $4 + $5) / 3;
# Prüfen, ob der Durchschnitt größer oder gleich 4.0 ist
if (durchschnitt >= 4.0) {
print $2, $1, durchschnitt;
}
}Aufruf (angenommen, das Skript heißt auswerten.awk und die Notendatei noten.csv):
awk -f auswerten.awk noten.csv