Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Kleine Skripte und Software-Pakete

Nach dieser Lektion: Ich kann ein kleines Shell-Skript schreiben und starten und sagen, aus welchem Paket ein Programm stammt.

Lektion, 55 Min.13 BefehleLab „Linux im Alltag“: die dreißig Befehle, die Entwickelnde auswendig tippen

Der Bericht, den Sie jeden Montag tippen

Ein Shell-Skript ist eine Datei mit Befehlen, die Sie einmal schreiben und jederzeit starten. Ein Paket ist die Form, in der ein Programm auf eine Linux-Maschine kommt, zum Beispiel ein Programm, das Ihr Skript benutzt.

Ein Laden schickt Ihnen jede Woche eine Datei mit Besucherzahlen. Jeden Montag tippen Sie dieselben drei Befehle, um den stärksten Tag zu finden. An einem Montag vertippen Sie sich und schicken Ihrer Chefin den falschen Tag. Ein Skript hätte sich nicht vertippt.

Am Ende dieser Lektion

Notiz

Ich kann ein kleines Shell-Skript schreiben und starten und sagen, aus welchem Paket ein Programm stammt.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
SkriptBefehle, die in einer Datei gespeichert sind, damit man sie wieder starten kann
Shebangdie erste Zeile eines Skripts, die das Programm nennt, das es liest#!/bin/bash
Argumentein Wort nach dem Befehl, das der Befehl verwenden kann$1
Exit-Statuseine Zahl, die ein Befehl hinterlässt: 0 heißt, es hat geklappt$?
Paketein Programm mit seinen Dateien, zusammengepackt, damit das System es installieren kann
Paketverwaltungdas Werkzeug, das Pakete installiert, aktualisiert und entferntapt

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Pipeline beantwortet eine Frage

Das Lab hat eine kleine Datei mit Besucherzahlen unter /srv/lab-web/report.csv. Jede Zeile hat einen Tag, ein Komma und eine Zahl. Die Datei ist englisch.

cut -d, -f1 behält die erste Spalte. -d, sagt, dass die Spalten durch Kommas getrennt sind. tail -n +2 überspringt die Titelzeile. sort -t, -k2 -n -r sortiert nach der zweiten Spalte, als Zahlen, die größte zuerst. head -n 1 behält die oberste Zeile.

Die erste Spalte herausschneiden

Befehl
cut -d, -f1 /srv/lab-web/report.csv

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den stärksten Tag finden

Befehl
tail -n +2 /srv/lab-web/report.csv | sort -t, -k2 -n -r | head -n 1

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele glauben, sort ordne Zahlen nach ihrer Größe. Standardmäßig sortiert es als Text: 98 kommt nach 175, weil 9 nach 1 kommt. Ohne -n gibt die Pipeline oben Tuesday,98 aus. Setzen Sie -n, wenn die Spalte aus Zahlen besteht.

Ein Skript sind Befehle in einer Datei

Ein Skript ist eine Textdatei mit Befehlen. Die Shell führt sie von oben nach unten aus, als hätten Sie sie getippt.

Die erste Zeile ist der Shebang. Er nennt das Programm, das die Datei liest. Eine Zeile mit # am Anfang ist ein Kommentar, den die Shell überspringt.

In einem Skript steht $1 für das erste Wort nach seinem Namen. So passt das Skript auf jede Datei.

Das Skript in eine Datei schreiben

Befehl
printf '#!/bin/bash\n# Zeigt den stärksten Tag einer CSV-Datei.\ntail -n +2 "$1" | sort -t, -k2 -n -r | head -n 1\n' > bester_tag.sh

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Versuchen, es zu starten

Befehl
./bester_tag.sh /srv/lab-web/report.csv

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

bash die Datei lesen lassen

Befehl
bash bester_tag.sh /srv/lab-web/report.csv

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Starten erlauben

Befehl
chmod +x bester_tag.sh

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Es starten

Befehl
./bester_tag.sh /srv/lab-web/report.csv

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Jeder Befehl hinterlässt einen Exit-Status

Wenn ein Befehl endet, hinterlässt er eine Zahl. 0 heißt, es hat geklappt. Jede andere Zahl meldet ein Problem.

$? enthält die Zahl des letzten Befehls. Skripte und cron nutzen sie, um zu wissen, ob eine Arbeit geklappt hat.

Ein Befehl, der scheitert

Befehl
ls /nothere ; echo "status $?"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Skript, das funktioniert

Befehl
./bester_tag.sh /srv/lab-web/report.csv ; echo "status $?"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele glauben, eine Datei, die cat anzeigen kann, lasse sich auch starten. Lesen und Starten sind verschiedene Rechte. Eine neue Datei hat für niemanden ein x. Setzen Sie erst chmod +x, oder lassen Sie bash die Datei lesen.

Software kommt in Paketen

Unter Ubuntu kommt ein Programm als Paket. Die Paketverwaltung führt Buch darüber, was installiert ist und zu welchem Paket jede Datei gehört.

dpkg liest diese Liste. apt installiert aus dem Internet und braucht sudo. Mit -s spielt apt-get install nur durch, man kann es also gefahrlos ausprobieren.

Wo liegt das Programm?

Befehl
command -v curl

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Zu welchem Paket gehört diese Datei?

Befehl
dpkg -S /usr/bin/curl

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ist das Paket installiert?

Befehl
dpkg -s curl | grep -E "^(Package|Status)"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Installation nur durchspielen

Befehl
apt-get install -s curl 2>&1 | tail -n 3

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Beispiel: die Verben von apt

Sie tippenWas es machtBraucht sudo?
sudo apt updateErneuert die Liste dessen, was sich installieren lässtJa
sudo apt install htopInstalliert ein Paket und das, was es brauchtJa
sudo apt remove htopEntfernt das PaketJa
apt-get install -s htopZeigt, was eine Installation täte, ohne etwas zu ändernNein
dpkg -S /usr/bin/curlNennt das Paket, zu dem eine Datei gehörtNein

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Zum Weiterdenken

Tippen Sie das selbst. Ändern Sie das Skript so, dass es den ruhigsten Tag ausgibt. Welche eine Option fügen Sie hinzu oder lassen Sie weg?

Finden Sie dann die cron-Zeit, die bester_tag.sh jeden Montag um 07:30 startet. Auf einem Server schreiben Sie diese Zeile in /etc/cron.d, mit dem Nutzer vor dem Befehl.

Über dieses Lab und seinen Quellcode: Lab „Linux im Alltag“: die dreißig Befehle, die Entwickelnde auswendig tippen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.