Einführung
Rust-Programme werden üblicherweise mit Cargo, Rusts Projekt- und Build-Tool, organisiert und ausgeführt. In diesem Lab stellen Sie ein kleines Cargo-Projekt in einem Linux-Terminal fertig. Sie benötigen keine Vorkenntnisse im Umgang mit Terminal, Editor oder Rust.
Sie lernen, in einen Projektordner zu wechseln, eine Rust-Quelldatei mit nano zu bearbeiten, Cargo zur Überprüfung des Codes aufzufordern und das fertige Programm auszuführen. Das Lab prüft sowohl Ihren Quellcode als auch die exakte Ausgabe des Programms.
Das Projekt öffnen und die Quelldatei bearbeiten
In diesem Schritt suchen Sie das vorbereitete Projekt und nehmen mit nano Ihre erste kleine Änderung an Rust vor.
Das Terminal ist der Textbereich, in den Sie Befehle eingeben. Ein Befehl ist eine Anweisung für den Computer. Klicken Sie zuerst in das Terminal, damit es den Tastaturfokus erhält, geben Sie den folgenden Befehl ein und drücken Sie Enter:
pwd
pwd bedeutet print working directory. Ein Verzeichnis ist eine andere Bezeichnung für einen Ordner. Die Ausgabe zeigt den Ordner, in dem Sie sich aktuell befinden, normalerweise /home/labex.
Listen Sie als Nächstes die Elemente in diesem Ordner auf:
ls
ls bedeutet list. Sie sollten einen Ordner namens project sehen.
Verwenden Sie cd, die Abkürzung für change directory, um das vorbereitete Rust-Projekt zu öffnen. Der Pfad beginnt mit / und ist daher ein absoluter Pfad: Er bezeichnet den Speicherort ausgehend vom Anfang des Dateisystems und nicht ausgehend vom aktuellen Verzeichnis.
cd /home/labex/project/hello-rust
Wenn cd erfolgreich war, gibt das Terminal normalerweise nichts aus. Listen Sie den Inhalt des Projekts auf:
ls
Sie sollten Cargo.toml und src sehen. Cargo liest Cargo.toml, um Paketname, Version, Rust-Edition und Abhängigkeiten zu erfahren. Das Verzeichnis src enthält den Rust-Quellcode. Dieses Programm beginnt in src/main.rs.
Öffnen Sie die Quelldatei in nano, einem einsteigerfreundlichen Texteditor für das Terminal:
nano src/main.rs
src/main.rs ist ein relativer Pfad. Da er nicht mit / beginnt, sucht das Terminal die Datei innerhalb des aktuellen Verzeichnisses /home/labex/project/hello-rust. Deshalb ist es wichtig, zuerst mit cd in das Projekt zu wechseln.
Die Datei wird im Terminal angezeigt. Bewegen Sie den Cursor mit den Pfeiltasten. Ändern Sie nur die fünf Unterstriche, sodass die Zeile wie folgt lautet:
println!("Hello from LabEx!");
Am unteren Rand von nano steht das Symbol ^ für die Strg-Taste. Speichern Sie die Datei mit Strg+O (halten Sie Strg gedrückt und drücken Sie O), und drücken Sie anschließend Enter, um den Dateinamen zu bestätigen. Beenden Sie nano mit Strg+X.
Öffnen Sie dieselbe Datei erneut, um zu überprüfen, dass die Änderung auf die Festplatte geschrieben wurde:
nano src/main.rs
Vergewissern Sie sich, dass die Zeile Hello from LabEx! enthält. Sie müssen die Datei nicht erneut bearbeiten. Beenden Sie nano daher mit Strg+X. Das erneute Öffnen einer gespeicherten Datei ist eine nützliche Prüfung, wenn Sie unsicher sind, ob eine Änderung im Editor gespeichert wurde.
Geben Sie die gespeicherte Datei aus, ohne den Editor erneut zu öffnen:
cat src/main.rs
cat gibt den Inhalt einer Datei im Terminal aus. Anders als nano zeigt cat die Datei nur an und stellt keine Bearbeitungsansicht bereit. Vergewissern Sie sich, dass Hello from LabEx! angezeigt wird und sich innerhalb der Nachricht keine Unterstriche befinden.
Eine Nachricht hinzufügen und den Code überprüfen
In diesem Schritt machen Sie sich mit dem kleinen Programm vertraut, fügen eine Zeile hinzu und lassen Cargo den Code auf Fehler prüfen.
Ihr Terminal sollte sich weiterhin in /home/labex/project/hello-rust befinden. Wenn Sie unsicher sind, zeigt pwd das aktuelle Verzeichnis an. Öffnen Sie die Quelldatei erneut:
nano src/main.rs
Das Programm enthält einige wichtige Rust-Grundelemente:
fn main()definiert die Hauptfunktion, in der dieses Programm startet.- Die öffnenden und schließenden geschweiften Klammern
{und}umschließen die Anweisungen der Funktion. println!zeigt eine Textzeile an. Das!weist darauf hin, dassprintln!ein Rust-Makro ist.- Text zwischen doppelten Anführungszeichen ist ein String-Literal.
- Das Semikolon
;beendet diese Anweisung.
Bewegen Sie den Cursor an das Ende der vorhandenen println!-Zeile, drücken Sie Enter und fügen Sie diese zweite Anweisung vor der schließenden geschweiften Klammer ein:
println!("I am learning Rust with Cargo.");
Die vollständige Datei sollte jetzt so aussehen:
fn main() {
println!("Hello from LabEx!");
println!("I am learning Rust with Cargo.");
}
Speichern Sie mit Strg+O, drücken Sie Enter und beenden Sie nano mit Strg+X.
Fordern Sie Cargo nun auf zu prüfen, ob das Paket kompiliert werden kann:
cargo check
cargo check analysiert den Code und meldet Fehler, ohne das endgültige ausführbare Programm zu erzeugen. Die erste Prüfung kann einen Moment dauern. Bei einem erfolgreichen Ergebnis endet die Ausgabe mit einer Zeile, die Finished enthält.
Wenn Cargo einen Fehler meldet, vergleichen Sie Ihre Datei mit dem vollständigen Beispiel. Achten Sie besonders auf Anführungszeichen, Klammern, Semikolons und geschweifte Klammern. Korrigieren Sie die Datei mit nano src/main.rs, speichern Sie sie und führen Sie cargo check erneut aus.
Das Programm mit Cargo ausführen
In diesem Schritt erstellen Sie Ihr überprüftes Rust-Programm und führen es aus.
Führen Sie den folgenden Befehl in /home/labex/project/hello-rust aus:
cargo run
cargo run erledigt zwei miteinander verbundene Aufgaben: Es kompiliert das Paket zu einem ausführbaren Programm und startet dieses anschließend. Cargo gibt möglicherweise einige Zeilen zum Build-Status aus, bevor Ihre eigene Ausgabe erscheint.
Gegen Ende sollten Sie diese beiden Zeilen sehen:
Hello from LabEx!
I am learning Rust with Cargo.
Führen Sie das Programm noch einmal aus und blenden Sie dabei die Statusmeldungen von Cargo aus:
cargo run --quiet
Die Option --quiet reduziert die eigene Ausgabe von Cargo, sodass nur die beiden Zeilen Ihres Programms erscheinen sollten. Damit haben Sie den grundlegenden Cargo-Arbeitsablauf abgeschlossen: bearbeiten, prüfen und ausführen.
Zusammenfassung
Sie haben sich in einem Linux-Terminal bewegt, Rust-Code mit nano bearbeitet und gespeichert, die Hauptfunktion und das println!-Makro kennengelernt, ein Cargo-Paket überprüft und es ausgeführt. Der eingeübte Zyklus aus Bearbeiten, Prüfen und Ausführen bildet die Grundlage für die folgenden Rust-Projekte.


