9
Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2019 Assignment 0 – Git und VM Die Veröffentlichung der ersten Programmieraufgabe ist für Montag, den 6. Mai, geplant. 1 Versionsverwaltung (GIT) Die Abgabe der Programmieraufgaben geschieht über Git. Dabei handelt es sich um eines der gängigen Versionsverwaltungssysteme, welche in der Softwareentwicklung eingesetzt werden. Es ermöglicht mehreren Programmierern gemeinsam an einem Softwareprojekt zu arbeiten. Quelltexte werden in einem Repository abgelegt, welches auf einem Server bereitliegt. Von dort kann der Inhalt des Repositories geklont werden, so dass eine lokale Kopie vorliegt. Auf der Kopie kann nun gearbeitet werden. In regelmäßigen Abständen sollte ein commit durchgeführt werden, welcher Änderungen in der lokalen Kopie des Repositories abspeichert. Dabei werden im Repository lediglich die Änderungen gegenüber der letzten Revision gespeichert. Um diese Änderungen auf den Server zu übertragen, muss ein push ausgeführt werden. Andere Benutzer, wie z.B. die Übungsleitung, können diese Änderungen mittels eines pull herunterladen und so ihre lokale Kopie aktualisieren. Ausführliche Informationen über Git finden Sie in [1]. 1.1 Warum brauchen wir Git? Es gibt mehrere Gründe, weswegen wir für die Programmieraufgaben Git verwenden: 1. Jeder Informatiker sollte mit wenigstens einem Versionsverwaltungssystem umgehen können. Falls Sie es nicht schon längst können, sollten Sie es besser früher als später lernen. 2. Wir brauchen ein System, mit welchem die Programmieraufgaben abgegeben werden können. Anstatt uns Ihre Programme via Email zu schicken oder als Tarball über ein Webformular hochzuladen, müssen Sie nur sicherstellen, dass Ihre aktuelle Version im Git liegt. 3. Es ermöglicht uns, Ihnen auf elegante Art die Vorlesungsunterlagen bereitzustellen: Sie müssen lediglich die lokale Kopie Ihres material-Gits aktualisieren (ein Befehl oder zwei Klicks) und nicht jeden Downloadlink einzeln anklicken. Außerdem sehen Sie auf einen Blick, was sich wann geändert hat. 1.2 Wo bekomme ich Git? • Linux-Nutzer installieren git mit der Paketverwaltung ihrer Wahl. Nutzer von OS X erhalten git entweder über die XCode Kommandozeilen-Tools [2] oder über MacPorts [3] bzw. Brew [4]. Für Windows-Nutzer empfiehlt sich die Installation von git über Windows Subsystem for Linux [5]. Falls ein grafischer Client gewünscht ist, bietet sich Git for Windows [6] an, das sich direkt in das Kontextmenü des Windows-Explorers integriert. Prof. Dr.-Ing. Georg Carle Dr.-Ing. Stephan Günther, Henning Stubbe [email protected] 1

1Versionsverwaltung (GIT) - grnvs.net.in.tum.de · Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München 1.3SSH Schlüsselpaar

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1Versionsverwaltung (GIT) - grnvs.net.in.tum.de · Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München 1.3SSH Schlüsselpaar

Lehrstuhl für Netzarchitekturen und NetzdiensteFakultät für InformatikTechnische Universität München

Grundlagen Rechnernetze und Verteilte SystemeIN0010, SoSe 2019

Assignment 0 – Git und VM

Die Veröffentlichung der ersten Programmieraufgabe ist für Montag, den 6. Mai, geplant.

1 Versionsverwaltung (GIT)

Die Abgabe der Programmieraufgaben geschieht über Git. Dabei handelt es sich um eines dergängigen Versionsverwaltungssysteme, welche in der Softwareentwicklung eingesetzt werden. Esermöglicht mehreren Programmierern gemeinsam an einem Softwareprojekt zu arbeiten. Quelltextewerden in einem Repository abgelegt, welches auf einem Server bereitliegt. Von dort kann der Inhaltdes Repositories geklont werden, so dass eine lokale Kopie vorliegt. Auf der Kopie kann nun gearbeitetwerden. In regelmäßigen Abständen sollte ein commit durchgeführt werden, welcher Änderungen inder lokalen Kopie des Repositories abspeichert. Dabei werden im Repository lediglich die Änderungengegenüber der letzten Revision gespeichert. Um diese Änderungen auf den Server zu übertragen,muss ein push ausgeführt werden. Andere Benutzer, wie z.B. die Übungsleitung, können dieseÄnderungen mittels eines pull herunterladen und so ihre lokale Kopie aktualisieren. AusführlicheInformationen über Git finden Sie in [1].

1.1 Warum brauchen wir Git?

Es gibt mehrere Gründe, weswegen wir für die Programmieraufgaben Git verwenden:

1. Jeder Informatiker sollte mit wenigstens einem Versionsverwaltungssystem umgehen können.Falls Sie es nicht schon längst können, sollten Sie es besser früher als später lernen.

2. Wir brauchen ein System, mit welchem die Programmieraufgaben abgegeben werden können.Anstatt uns Ihre Programme via Email zu schicken oder als Tarball über ein Webformularhochzuladen, müssen Sie nur sicherstellen, dass Ihre aktuelle Version im Git liegt.

3. Es ermöglicht uns, Ihnen auf elegante Art die Vorlesungsunterlagen bereitzustellen: Sie müssenlediglich die lokale Kopie Ihres material-Gits aktualisieren (ein Befehl oder zwei Klicks) und nichtjeden Downloadlink einzeln anklicken. Außerdem sehen Sie auf einen Blick, was sich wanngeändert hat.

1.2 Wo bekomme ich Git?

• Linux-Nutzer installieren git mit der Paketverwaltung ihrer Wahl.

• Nutzer von OS X erhalten git entweder über die XCode Kommandozeilen-Tools [2] oder überMacPorts [3] bzw. Brew [4].

• Für Windows-Nutzer empfiehlt sich die Installation von git über Windows Subsystem for Linux [5].Falls ein grafischer Client gewünscht ist, bietet sich Git for Windows [6] an, das sich direkt in dasKontextmenü des Windows-Explorers integriert.

Prof. Dr.-Ing. Georg Carle Dr.-Ing. Stephan Günther, Henning [email protected] 1

Page 2: 1Versionsverwaltung (GIT) - grnvs.net.in.tum.de · Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München 1.3SSH Schlüsselpaar

Lehrstuhl für Netzarchitekturen und NetzdiensteFakultät für InformatikTechnische Universität München

1.3 SSH Schlüsselpaar generieren

Um auf die VM und Git Zugriff zu bekommen, müssen Sie ein Schlüsselpaar generieren, welches fürden Zugriff per SSH geeignet ist. In unserem Beispiel verwenden wir RSA mit einer Länge von 2048 bit.Dies garantiert Kompatibilität. Das Abgabesystem unterstüzt auch die Schlüsseltypen ED25519 undECDSA.

1.3.1 Kommandozeile (Linux, OS X und Windows mit WSL)

Mit diesem Befehl erzeugen Sie ein RSA-Schlüsselpaar:

~ $ ssh-keygen -t rsa -b 2048

Sie werden gefragt, wo der neue SSH-Schlüssel gespeichert werden soll. Standardmäßig wird derprivate Schlüssel als Datei nach ~/.ssh/id_rsa geschrieben. Der öffentliche Schlüssel wird unter~/.ssh/id_rsa.pub abgelegt. Sofern Sie nicht bereits einen SSH-Schlüssel verwenden, brauchen Siehier nichts zu ändern. Wenn Sie den Befehl ausführen, wird Sie das Programm nach einem Passwortfür den neuen privaten Schlüssel und Informationen über Sie fragen. Die Informationen müssen Sienicht ausfüllen.

1.3.2 Windows Subsystem for Linux (WSL)

Windows 10 (Home, Pro1 und Enterprise) bietet die Möglichkeit, Linux in einer innerhalb von Win-dows intgrierten Umgebung auszuführen. Im Gegensatz zu einer normalen VM hat man jedochunmittelbaren Zugriff auf das Dateisystem von Windows. Das ermöglicht es, die wichtigsten Linux-Kommandozeilentools unter Windows zu verwenden, z. B. ssh und git. Beachten Sie bitte, dass dieProgrammieraufgaben im Allgemeinen aber nicht innerhalb der WSL lösbar sind.

Installation der WSL

Sie müssen zunächst das Windows Subsystem für Linux installieren. Öffnen Sie dazu die System-steuerung, wählen dort Apps aus und klicken dort rechts unter dem Reiter Verwandte Einstellungenauf Programme und Features. Es öffnet sich ein neuer Dialog, in dem Sie „Windows-Subsystemfür Linux“ auswählen können (siehe Abbildung 1a). Sollte diese Option nicht zur Verfügung stehen,versichern Sie sich bitte, dass Sie eine aktuelle Version von Windows 10 (Version 1809) verwenden.Im Anschluss muss der Computer neu gestartet werden.

Nach dem Neustart öffnen Sie den Microsoft Store und suchen nach dem Begriff Linux. Es werdenIhnen eine Reihe verschiedener Linux-Distributionen angezeigt. Wir empfehlen die Installation vonDebian.

Nach der Installation werden Sie aufgefordert, einen Benutzernamen und ein Kennwort anzugeben.Wir gehen im Folgenden davon aus, dass diese user und password lauten (bitte wählen Sie etwasSinnvolleres als password . . . ).

1Sie können Windows 10 Pro kostenfrei über die TUMonline beziehen

Prof. Dr.-Ing. Georg Carle Dr.-Ing. Stephan Günther, Henning [email protected] 2

Page 3: 1Versionsverwaltung (GIT) - grnvs.net.in.tum.de · Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München 1.3SSH Schlüsselpaar

Lehrstuhl für Netzarchitekturen und NetzdiensteFakultät für InformatikTechnische Universität München

(a) WSL installieren (b) Debian installieren und SSH-Key erzeugen

Abbildung 1: Installation der WSL, Generieren eines SSH-Keys und Installation von git

Generieren eines SSH-Keys

Dies funktioniert nun analog zu der Beschreibung in Abschnitt 1.3.1.

Installation von Git

Sie können über den Paketmanager von Debian weitere Pakete nachinstallieren. Dazu benötigen Sieaber root-Rechte, die Sie mittels des Kommandos sudo su - und Eingabe Ihres Kennworts passworderhalten:

~ $ sudo su -~ $ apt update~ $ apt install git~ $ exit

Der letzte Befehl macht Sie wieder zu Ihrem Standardbenutzer user. Anschließend können Sie einenSSH-Key ähnlich wie in Abschnit 1.3.1 beschrieben erzeugen. Jedoch müssen sie beachten, dass sienicht ssh-keygen.exe ausführen.

~ $ ssh-keygen -t ed25519

1.3.3 GUI für Windows

Wenn Sie unbedingt eine grafische Benutzeroberfäche haben wollen und Git for Windows [6] installierthaben, gehen Sie wie in Abbildung 2 gezeigt vor.

Nun können Sie auf Moodle (https://www.moodle.tum.de/mod/assign/view.php?id=886757) den öf-fentlichen Schlüssel (<pfad>.pub) hochladen und abgeben. Der private Schlüssel wird Ihnen dann denZugriff auf Ihr persönliches Git sowie das material-Git ermöglichen.

Prof. Dr.-Ing. Georg Carle Dr.-Ing. Stephan Günther, Henning [email protected] 3

Page 4: 1Versionsverwaltung (GIT) - grnvs.net.in.tum.de · Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München 1.3SSH Schlüsselpaar

Lehrstuhl für Netzarchitekturen und NetzdiensteFakultät für InformatikTechnische Universität München

(a) (b)

Abbildung 2: (a) Klicken Sie auf Help und dann auf Show SSH Key. Es öffnet sich das Fenster in Abbildung 2b. (b) Fallsnoch kein Schlüsselpaar vorhanden ist, können Sie einen neuen Schlüssel mit Generate Key generieren. Wenn schon einSchlüsselpar vorhanden ist, können Sie hier den Pfad sehen (den werden Sie für SSH später brauchen) und den öffentlichenSchlüssel bequem kopieren.

1.4 Git Repository klonen

Zunächst müssen Sie Ihr Arbeitsverzeichnis für die Programmieraufgaben auschecken. Den Namendes Repositories kann man mit ssh erfahren:

~ $ ssh [email protected] 2019ss-u0000, this is grnvs@endlager running gitolite3 3.6.1-2+deb8u2 (Debian) on git 2.1.4R W 2019ss/u0000R material

Das eigene Repository heißt 2019ss/u<WXYZ> (mit individuellem <WXYZ>, hier im Beispiel 0000).

1.4.1 Kommandozeile (Linux, OS X und Windows mit WSL)

Die folgenden Befehle klonen die Git Respositories:

~ $ git clone [email protected]:2019ss/u<WXYZ> <Zielverzeichnis>~ $ git clone [email protected]:material <Zielverzeichnis2>

Die Host Key Fingerprints für git.net.in.tum.de lauten:

256 SHA256:wv2E66tEog3wVDZ6kGYN4OWNuLb5RQvpBxn5BLBU2Mg git.net.in.tum.de (ED25519)2048 SHA256:BsRgpGG9GucsvJLb3QQBIXTwJu5PBRIBVraS7ZORZ8M git.net.in.tum.de (RSA)256 SHA256:T1+LOSUSN6sw5G/oKZnw+330k45/aLLk0ylS6bxo8Wc git.net.in.tum.de (ECDSA)256 MD5:d8:71:9f:6f:3f:7a:8e:87:06:d6:8f:23:07:f1:5f:7a git.net.in.tum.de (ED25519)2048 MD5:63:d5:c9:13:2d:ff:f4:22:e8:ea:f6:3d:dc:1d:e4:cc git.net.in.tum.de (RSA)256 MD5:99:95:a3:e9:2a:05:a5:d3:c5:5c:47:54:8d:15:1e:a8 git.net.in.tum.de (ECDSA)

1.4.2 Git for Windows

Folgen Sie der Anleitung in Abbildung 3. Anschließend sollten Sie ein leeres Git Repository vorfinden. Fürdie einzelnen Programmieraufgaben müssen zu gegebener Zeit die Unterverzeichnisse assignmentX erzeugtwerden, innerhalb derer die jeweilige Programmieraufgaben bearbeitet wird.

Prof. Dr.-Ing. Georg Carle Dr.-Ing. Stephan Günther, Henning [email protected] 4

Page 5: 1Versionsverwaltung (GIT) - grnvs.net.in.tum.de · Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München 1.3SSH Schlüsselpaar

Lehrstuhl für Netzarchitekturen und NetzdiensteFakultät für InformatikTechnische Universität München

(a) (b)

Abbildung 3: (a) Rechtsklick im Explorer, dann “Git Bash”. (b) Den Repositorynamen mit ssh herausfinden und per cliklonen.

1.5 Hilfe zu Git

Für die Verwendung von Git wird auf folgende externe Tutorials verwiesen:

• https://rogerdudler.github.io/git-guide/index.html

• https://try.github.io/

• https://git-scm.com/docs/gittutorial

• https://xkcd.com/1597/

2 VServer

Im Rahmen der Programmieraufgaben stellen wir jedem zur Vorlesung angemeldeten Studierenden jeweilseinen virtuellen „Rootserver / VServer“ (VM) mit öffentlichen IPv4- und IPv6-Adresse zur Verfügung. Die VMsdienen als einheitliche Testplattform, auf denen Ihre Abgaben kompilierbar und ausführbar sein müssen. DerZugang zu den VMs erfolgt ausschließlich über SSH.

Da die Bereitstellung von mehr als 1000 VMs eine beträchtliche Menge echter Hardware zur Virtualisierungerfordert, haben wir uns zu folgenden beiden Schritten entschieden:

• VMs müssen einmalig angefordert werden.

• Inaktive VServer werden nach 12 h abgeschaltet (PowerOff2) und müssen neu gestartet werden.

Die Anforderung bzw. das Wiedereinschalten von VServern geschieht vollautomatisch und innerhalb wenigerSekunden.

2Es gibt keine Snapshots, d. h. offene nicht gespeicherte Daten gehen verloren.

Prof. Dr.-Ing. Georg Carle Dr.-Ing. Stephan Günther, Henning [email protected] 5

Page 6: 1Versionsverwaltung (GIT) - grnvs.net.in.tum.de · Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München 1.3SSH Schlüsselpaar

Lehrstuhl für Netzarchitekturen und NetzdiensteFakultät für InformatikTechnische Universität München

2.1 VM anfordern

Wie eingangs erwähnt müssen Sie Ihre VM zunächst anfordern (bzw. einschalten). Dies geschieht dadurch,dass Sie sich per ssh auf die spezielle VM svm0000.net.in.tum.de verbinden. Diese wird dann automatischihre VM für Sie anlegen und starten.

~ $ ssh [email protected]

Dieser SSH-Dienst gibt den Hostnamen der erzeugten VM und die Fingerprints der Hostkeys zurück.

Der Host svm0000.net.in.tum.de ist über folgende Host Key Fingerprints zu identifizieren:

2048 SHA256:BmGEFKqIyJ/yOcBVs4bz8BNgYhQZIb1HWrlgnBIY+zw svm0000.net.in.tum.de (RSA)256 SHA256:ftAlqCM/VEzfUM1gVpbh3PE54TUJEwIg1hw94h0jIhI svm0000.net.in.tum.de (ED25519)2048 MD5:e9:0d:f4:88:f9:e1:42:7d:3c:06:fc:57:ce:b0:56:77 svm0000.net.in.tum.de (RSA)256 MD5:e4:6c:9f:18:ad:12:c7:38:71:8a:46:6b:d8:e0:6e:d9 svm0000.net.in.tum.de (ED25519)

2.2 Login auf der VM

Der Benutzername für die VMs ist root. Passwort benötigen Sie keines, da die Authentifizierung über den imMoodle abgegeben SSH-Key erfolgt.

~ $ ssh root@svm<wxyz>.net.in.tum.de

2.3 Arbeiten auf der VM

Da vermutlich nicht jeder mit den kommandozeilen-basierten Texteditoren wie vim oder nano umgehenkann oder will, kann im Anschluss das Homeverzeichnis der VM lokal gemountet werden:

• Linux-Nutzer installieren sich SSHFS über ihren bevorzugten Paketmanager.

• OS X-Nutzer haben es leider etwas schwieriger. Aber auch hier gibt es SSHFS-Clients. Einesinnvolle Anleitung finden Sie unter [7]

• Unter Windows ist es komplizierter einen Order via SSHFS zu mounten, weshalb es sichunter Umständen anbietet, stattdessen einen Datei-Manager wie WinSCP [8] zu verwenden.(Beschrieben in Abschnitt 2.4.)

Eine Anleitung zum Einrichten von SSHFS über Windows File System Proxy [9] in Verbindungmit sshfs für Windows [10] folgt.

Unter Linux und OS X:

~ $ sshfs -o IdentityFile=<pfad> root@svm<wxyz>.net.in.tum.de: <mount-point>

Unter Windows:

• Installieren Sie Windows File System Proxy [9] sowie SSHFS für Windows [10]

• Öffnen Sie die Systemsteuerung, wählen Sie System und klicken Sie auf Erweiterte Systemein-stellungen. Klicken Sie nun auf Umgebungsvariablen und fügen Sie den Pfad %ProgramFiles%\SSHFS-Win\bin zu der Systemvariablen Path hinzu, indem Sie diese auswählen und auf Bear-beiten klicken. Entfernen Sie anschließend den Eintrag %SYSTEMROOT%\System32\OpenSSH\ undbestätigen Sie Ihre Eingabe.

Prof. Dr.-Ing. Georg Carle Dr.-Ing. Stephan Günther, Henning [email protected] 6

Page 7: 1Versionsverwaltung (GIT) - grnvs.net.in.tum.de · Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München 1.3SSH Schlüsselpaar

Lehrstuhl für Netzarchitekturen und NetzdiensteFakultät für InformatikTechnische Universität München

• Nun können Sie in einem neuen CMD-Fenster SSHFS wie folgt verwenden:

> sshfs -o umask=000 -o IdentityFile=<pfad> root@svm<wxyz>.net.in.tum.de: <mount-point>

Dabei ist <pfad> absolut anzugeben und \ doppelt zu verwenden (z.B. C:\\Users\\Nutzername\\.ssh\\id_rsa und <mountpoint> kann ein Laufwerkbuchstabe sein (z.B. Z:)

Achtung: ssh kann nach Änderung der Pfadvariablen nur noch mittels bash ausgeführt werdenoder Sie übergeben, bei jedem Aufruf, mit dem Parameter -i <pfad> den Pfad zum Private-Key.

Alternativ können Sie natürlich auch auf einer lokalen Kopie des Git-Repositories arbeiten. Allerdingsmüssen Sie es dann jedes mal, wenn Sie es auf der VM testen wollen, zuerst committen und pushensowie eine zweite Kopie des Repositories auf der VM updaten [11, 12]. Selbstverständlich könnenSie auch Ihren eigenen Rechner zur Entwicklung verwenden. Allerdings müssen Sie sicherstellen,dass die Abgabe am Ende auf den VMs lauffähig ist. Außerdem benötigen Sie Linux. Unter OS X undFreeBSD unterscheiden sich zumindest Name und Pfad einiger Header. Unter Windows wären dieÄnderungen deutlich umfangreicher, weswegen wir dringend davon abraten.

2.4 WinSCP unter Windows

Stellen Sie zuerst sicher, dass Ihre VM läuft (siehe Abschnitt 2.1). Nun können Sie WinSCP starten.

Als Rechnernamen tragen Sie root@svm<wxyz>.net.in.tum.de ein. Dann klicken Sie auf Erweitert undim neuen Fenster in der Sektion SSH auf Authentifizierung und bei Datei mit privatem Schlüssel auf„. . . “. Stellen Sie den Filter auf Alle Dateien und wählen Sie dann Ihren Private Key aus (normalerweisein ~/.ssh/id_rsa). WinSCP wird Sie auffordern, den Schlüssel zu konvertieren. Bestätigen Sie dasmit einem OK und speichern Sie den konvertierten Schlüssel ab. Schließen Sie das Dialogfenster undSpeichern Sie die Konfiguration.

Nun können Sie sich Anmelden.

Die restliche Bedienung des Programms sollte relativ intuitiv sein. Interessant ist noch die FunktionSynchronisieren, die in der Dokumentation [13] beschrieben ist.

3 Anhang: Ein kleines Shell-Einmaleins

man <Befehlsname> manualliefert Hilfe zu einem Befehl; funktioniert auch mit Syscalls wie recv

pwd print working directorygibt das aktuelle Verzeichnis aus

ls list directory contentslistet die Dateien und Ordner im aktuellen Verzeichnis auf

cd <Verzeichnisname> change directorywechselt in ein anderes Verzeichnis, z. B.:

• Arbeitsverzeichnis: /root/u012Befehl: cd assignment1wechselt in das Verzeichnis /root/u012/assignment1

Prof. Dr.-Ing. Georg Carle Dr.-Ing. Stephan Günther, Henning [email protected] 7

Page 8: 1Versionsverwaltung (GIT) - grnvs.net.in.tum.de · Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München 1.3SSH Schlüsselpaar

Lehrstuhl für Netzarchitekturen und NetzdiensteFakultät für InformatikTechnische Universität München

• Arbeitsverzeichnis: /rootBefehl: cd /root/u012/result/assignment1wechselt in das Verzeichnis /root/u012/result/assignment1

makekompiliert das Programm, wenn sich im aktuellen Verzeichnis eine Datei namens Makefilebefindet

cp <Quelle> <Ziel> copyeine Datei kopieren; zum Kopieren von Ordnern zusätzlich den Parameter „-r“ angeben (cp -r<Quelle> <Ziel>)

mkdir <Ordnername> make directoryeinen Ordner erstellen

rm <Dateiname> removeeine Datei löschen

rmdir <Ordnername> remove directoryeinen leeren Ordner löschen

mv <Quelle> <Ziel> moveeine Datei oder einen Ordner umbenennen oder verschieben (zum Verschieben einfach bei Zieleinen Pfad mit angeben)

sudo <Befehl> <Parameter>* do as super userführt einen Befehl mit den Rechten des Benutzers „root“ aus (andere Betriebssysteme verwendenoft andere Namen wie „super user“ oder „Administrator“); auf der VM haben Sie sich bereits als„root“ angemeldet, also ist der Befehl hier nicht erforderlich

apt install <Paketname>installiert Pakete, also zusätzliche Anwendungen

./<Programm> <Parameter>*führt ein Programm im aktuellen Verzeichnis aus, z. B. ./run -s ../moep8023/moep8023_socket

^C Tastenkombination: Steuerung+Claufendes Programm beenden

ip ngibt die Einträge im ARP-Cache aus

ip agibt die vorhandenen Netzwerkadapter und ihre Ethernet- und IP-Adressen aus

host <Rechnername oder IP-Adresse>löst via DNS den angegebenen DNS-Namen in eine IP-Adresse auf (lookup) oder löst dieangegebene IP-Adresse in einen Namen auf (reverse lookup)

tcpdump -w <Dateiname>solange tcpdump läuft, schneidet es den Netzwerkverkehr mit und speichert ihn in der angege-benen Datei

exitbeendet die Sitzung und schließt die Konsole oder trennt die ssh-Verbindung

Prof. Dr.-Ing. Georg Carle Dr.-Ing. Stephan Günther, Henning [email protected] 8

Page 9: 1Versionsverwaltung (GIT) - grnvs.net.in.tum.de · Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München 1.3SSH Schlüsselpaar

Lehrstuhl für Netzarchitekturen und NetzdiensteFakultät für InformatikTechnische Universität München

Ein weiteres nützliches Feature ist Tab Completion: Wenn man gerade einen Pfad eingibt, wie z. B../run ../moekann man die Tab-Taste drücken und erhält als Vorschlag alle möglichen Dateinamen.

Wenn das gerade ausgeführte Programm nicht mehr reagiert, kann man es mit der TastenkombinationStrg+C abbrechen.

Literatur

[1] Git – FAQ. https://git.wiki.kernel.org/index.php/Git_FAQ.

[2] XCode CLI-Tools – Download. https://developer.apple.com/library/ios/technotes/tn2339/_index.html.

[3] T. M. Project, MacPorts. https://www.macports.org.

[4] HomeBrew. https://brew.sh.

[5] Microsoft, Frequently Asked Questions about Windows Subsystem for Linux. https://docs.microsoft.com/en-us/windows/wsl/faq.

[6] Git – Downloading Package. https://git-scm.com/download/win.

[7] T. Kessler, How to mount a remote system as a drive using SSH in OS X. http://www.macissues.com/2014/10/13/how-to-mount-a-remote-system-as-a-drive-using-ssh-in-os-x/.

[8] WinSCP. https://winscp.net/eng/index.php.

[9] WinFsp – Windows File System Proxy. https://github.com/billziss-gh/winfsp.

[10] sshfs for Windows. https://github.com/billziss-gh/sshfs-win.

[11] Git – Commit. https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository.

[12] Git – Remotes. https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes.

[13] WinSCP – Synchronizing. https://winscp.net/eng/docs/task_synchronize.

Prof. Dr.-Ing. Georg Carle Dr.-Ing. Stephan Günther, Henning [email protected] 9