Ü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 PATH

2. 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/null

4. 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=erasedups

6. 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

Verwandte Einträge: