Cygwin

Aus Physik
Zur Navigation springen Zur Suche springen

Was ist Cygwin?

Cygwin bietet eine UNIX-ähnliche Umgebung unter Windows. Neben Portierungen von Standardunixtools wie cat, grep, .. sind auch die komplette gcc Entwicklungsumgebung, Editoren wie emacs/vi und TeX/LaTeX unter Windows verfügbar.

Einige weitere Einsatzmöglichkeiten werden Ihnen unter Cygwin#Tutorials vorgestellt.


Außerdem bietet diese Umgebung einen voll einsatzbereiten X-Server, der Ihnen die Möglichkeit geben soll, graphische Applikationen des Instituts zu Hause zu verwenden. Somit bietet diese Plattform eine gute Möglichkeit um UNIX/Linux unter Windows kennzulernen, ohne gleich eine Linux - Distribution auf dem eigenen Computer zu installieren, obwohl das natürlich die bessere Variante wäre. Eine andere Möglichkeit wäre z.B. eine der CD-basierten Linux-Distributionen auszuprobieren. Die bekannteste ist sicherlich KNOPPIX. Sie finden Sie auf http://www.knopper.net.

Cygwin ITP Edition

Cygwin ITP Edition ist eine vorkonfigurierte Version dieser Umgebung, die für die Studenten am Institut für theoretische Physik zusammengestellt wurde. Da es für die Studenten, die keine Erfahrung mit UNIX hatten, erfahrungsgemäß schwierig war, Cygwin Ihren Wünschen gemäß einzurichten, wurde es notwendig eine eigene Variante zusammenzustellen. Cygwin ITP Edition bietet im Unterschied zur Standardinstallation:

  • Eine vordefinierte Auswahl von Standardpaketen
  • Konfigurationsfiles: .bashrc, .inputrc, ...
  • Emacs Konfiguration
  • LaTeX Konfiguration
  • Einen einfacher zu bedienenden Installer

Sie können diese Distribution unter ftp://itp.tugraz.at/pub/winx86/cygwin herunterladen.

(Achtung: Der Installer ist ca. 300 MB groß) Alternativ können Sie auch am Institut für theoretische Physik eine CD erhalten

WICHTIG: Da sich diese Software zur Zeit im Beta-Stadium befindet, würden wir uns sehr über Rückmeldungen, über Fehlerberichte und ähnliches freuen. Bitte schicken Sie diese an [camhy@itp.tu-graz.ac.at


Nach der Installation

  • Setzen des Homedirectories

Sie sollten die Umgebungsvariable HOME auf Ihr Benutzerverzeichnis (Eigene Dateien) setzen, da sonst meistens Ihr Root-Verzeichnis (C:\) als home angenommen wird.

  • Hinzufügen von $INSTALLATIONSPFAD\bin zum Pfad

Damit Sie die UNIX-Tools auch von der Eingabeaufforderung aus verwenden können, sollten Sie $INSTALLATIONSDIRECTORY\ bin zur Umgebungsvariable PATH hinzufügen.

Sehen Sie hierzu auch Setzen von Umgebungsvariablen unter Windows


Tutorials

Erste Schritte

Nachdem die Installation abgeschlossen ist, finden Sie im Startmenü einen neuen Eintrag Cygwin ITP Edition.

  • Cygwin Setup (Update)

Startet den Cygwin - Standardinstaller. Hiermit können Sie die Cygwin Pakete auf den aktuellen Stand bringen und neue Pakete installieren bzw. deinstallieren. Sie finden eine genauere Beschreibung im Anhang.

  • bash

Startet die bash (Eine der unter UNIX verfügbaren Shells) im Textmodus. Dh. hier wird keine graphische Oberfläche (X-Windows) gestartet. Sie können daher auch keine graphischen Programme lokal oder remote ausführen. Bietet aber einen sehr gut funktionierenden Ersatz für die Windows - Eingabeausfforderung mit funktionierender TAB-Completion und allen unter UNIX üblichen Werkzeuge.

  • xterm

Startet die bash in einem X - Terminal. Der X-Server wird im Multiwindow mode gestartet, falls er noch nicht läuft. D.h. der X-Server läuft in einem Modus, in dem jedes graphische Programm (lokal oder remote) in einem Windows-Fenster angezeigt wird. ACHTUNG: Sollte der X-Server entweder sehr sehr langsam laufen oder andere Probleme damit auftreten, lesen Sie bitte die FAQ. Sollte das nicht reichen, kontaktieren Sie uns bitte unter camhy@itp.tu-graz.ac.at

  • Programs

Hier finden Sie einige Programme, die standardmäßig mitinstalliert werden.

  • Links

Hier finden Sie einige nützliche Links zum Cygwin Projekt. Dort finden Sie weitere Anleitungen zu den verfügbaren Werkzeugen.

  • Windows

Hier finden Sie einige zusätzliche recht nützliche Windows Programme, wie z.B. Ghostscript/Ghostview zum Anzeigen von Postscript Dokumenten. Zu PuTTY bzw. unison finden Sie auch eine kurze Anleitung in diesem Dokument.

Starten einer Shell, Ausführen einiger Kommandos

Nachdem Sie eine graphische Shell mit Hilfe des Startmenüeintrags xterm,gestartet haben können Sie mit dem Ausprobieren einiger unter UNIX üblichen Kommandos beginnen: Mit

$ pwd 

können Sie überprüfen, in welchem Verzeichnis Sie sich befinden. Wenn Sie Ihr homedirectory richtig gesetzt haben, sollten Sie als Erstes auch dort landen. Hier erkennen Sie auch gleich die Art und Weise, wie Cygwin Windows - Laufwerke behandelt. Diese sind unter /cygdrive/c, /cygdrive/d usw. verfügbar.


Sie können durch den Befehl

$ mkdir test 

ein neues Unterdirectory test anlegen und mit dem Befehl

$ cd test 

in das soeben kreierte Verzeichnis wechseln. (Beachten Sie: beim Wechseln in ein darunter liegendes Verzecihnis mit dem Befehl cd .. ist im Gegensatz zu Windows ein Leerzeichen erforderlich).


Mit dem Befehl

$ ls 

bzw.

$ ls -l 

erhalten Sie eine kurze bzw. detaillierte Liste der Dateien im aktuellen Verzeichnis.


Im konkreten Fall ist das Verzeichnis natürlich leer.


Erstellen eines Matlab Programms mit dem emacs

Starten Sie hierzu emacs durch den Befehl:

$ emacs zuHause.m

Ein Beispiel wäre:

x=1:10; plot(x)

Nachdem Sie das Dokument gespeichert haben, sollte bei dem Aufruf von ls die soeben erstellte Datei in diesem Verzeichnis angezeigt werden. Durch den Befehl

$ cat zuHause.m

können Sie die Datei nun noch einmal anzeigen. (Beachten Sie bitte die Groß- und Kleinschreibung, auch wenn diese unter Windows keine Rolle spielt.) Hierzu können Sie die sogenannte TAB-Completion verwenden. Diese ergänzt Ihr Eingabe durch Drücken der Tabulator - Taste. Wenn Sie eine längere Datei seitenweise anzeigen wollen, können Sie das Kommando less Dateiname benutzen. Sie verlassen die Darstellung wie in einigen anderen UNIX-Tools durch die Eingabe des Kommandos q.

Kopieren der Datei in Ihr Homeverzeichnis, Starten von Matlab

Durch den Befehl

$ scp zuHause.m benutzername@fubphpc07.tu-graz.ac.at:Matlab

, Eingabe von yes und Ihres Passworts kopieren Sie die Datei in das Verzeichnis Matlab relativ zu Ihrem Homeverzeichnis auf der Uni.


Nun starten wir eine interaktive Sitzung auf dem selben Rechner im Computerraum:

$ ssh benutzername@fubphpc07.tu-graz.ac.at


Nun befinden Sie sich in Ihrem Homeverzeichnis auf dem remote-Computer. Nach dem Starten von matlab durch das Kommando:

$ matlab -nodesktop -nosplash

sollten Sie Ihr matlab Programm durch Eingabe von zuHause ausführen können. Die Parameter -nodeskop und -nosplash bewirken, dass die graphische Oberfläche von Matlab nicht gestartet wird und der Splashscreen nicht angezeigt wird, da die Verbindung von zu Hause aus meistens zu langsam ist.

Die Matlab-Hilfe erreichen Sie einfacher über http://itp.tugraz.at/matlab/techdoc/learn_matlab/learn_matlab.html

Ignorieren Sie eventuell auftretende X-Fehler. Der X-Server des Cygwin Projektes unterstützt leider nicht alle Eigenschaften eines vollwertigen unter Linux laufenden Servers Eine nähere Beschreibung der verwendeten Befehle finden Sie in den folgenden Kapiteln.

Einrichten eines SSH Servers unter Windows

Unter bestimmten Voraussetzungen kann es nützlich sein, einen SSH-Server unter Windows zu betreiben. Dieser bietet Ihnen die Möglichkeit ohne Sicherheitsrisiko auf die Dateien ihres Windows-PC's übers Internet zuzugreifen.

Um diesen unter Cygwin einzurichten sind folgende Schritte notwendig:

  • Erzeugen Sie eine systemweite Umgebungsvariable CYGWIN mit dem Inhalt
ntsec tty

Siehe hierzu auch Erzeugen von Systemvariablen unter Windows

  • Starten Sie eine Shell durch START -> PROGRAMME -> CYGWIN ITP EDITION -> BASH

Nun müssen Sie eine /etc/passwd erzeugen, in der alle Benutzer des Windows Rechners eingetragen sind. Dies erreichen Sie durch Ausführen von:

$ mkpasswd -l > /etc/passwd

Erstellen Sie auch eine entsprechende Gruppen-Datei durch:

$ mkgroup -l > /etc/group

Nun können Sie ihren SSH-Server durch Ausführen von

$ ssh-host-config

konfigurieren.

Hinweis von einem Nutzer: Falls ssh-host-config nach 'Generating /etc/ssh_host_key' hängenbleibt und Sie Zonealarm verwenden, deaktivieren Sie bitte kurz ihre Firewall. (Grund nicht ersichtlich, es findet noch kein Netzwerkzugriff statt, aber wenn es hilft..)

  • Auf die Frage 'Overwrite existing /etc/ssh_config file' antworten Sie bitte mit 'no', denn sonst wird die automatische X-Weiterleitung deaktiviert.
  • Auf die Frage 'Overwrite existing /etc/sshd_config file' antworten Sie bitte mit 'yes'
  • 'Should privilege separation be used?' : 'yes'
  • 'Should this script create a local user 'sshd' on this machine?' : 'yes'
  • 'Should privilege separation be used?' : 'yes'
  • 'Do you want to install sshd as service?' : 'yes'
  • Bei 'CYGWIN=' geben Sie bitte 'ntsec tty' ein.

Nun können Sie den SSH-Server mit

$ cygrunsrv -S sshd

oder

$ net start sshd 

starten.

ACHTUNG: Achten Sie darauf, dass Port 22 durch Ihre Windows-Firewall nicht blockiert wird.


Ihre erste Verbindung können Sie durch:

$ ssh USER@localhost

aufbauen



SSH, SCP und SFTP

SSH bietet Ihnen folgende Möglichkeiten:

  • Login auf einer entfernen Maschine
  • interaktive oder nicht interaktive Ausführung von Kommandos auf dem entfernten Rechner
  • Dateitransfer zwischen verschiedenen Rechnern
  • sichere X-Windows-Verbindungen
  • beliebige TCP-Verbindungen sicher zu Stande kommen zu lassen.

Gegenwärtig existieren zwei unterschiedliche und inkompatible Versionen des SSH-Protokolls: SSH 1.x und SSH 2.x Während SSH 1.x nicht international standardisiert und mit einigen Fehlern behaftet ist, wird SSH 2.x durch Internet Drafts der Secure Shell Working Group der Internet Engineering Task Force beschrieben, die Sie unter http://www.ietf.org/ids.by.wg/secsh.html finden können.


Kommandozeilenclients

Remotelogin

Die Syntax für einen schnellen textbasierten Zugriff auf den Remote-Host lautet:

$ ssh BENUTZERNAME@HOST

Nun wird nur noch nach dem Passwort gefragt und man arbeitet direkt am Remote-Computer. Durch den Parameter -2 können Sie die SSH-Protokoll 2 erzwingen. Dies ist auf den Institutscomputern und unter Cygwin ITP Edition nicht notwendig.

In unserem Fall wäre das Kommando also z.B.

$ ssh benutzername@fubphpc05.tu-graz.ac.at

bzw.

$ ssh benutzername@fubphpc05

falls wir uns auf irgendeinem Computer, der Teil der tu-graz. ac.at Domäne ist, befinden.


Falls man Zugriff auf einen X-Server hat kann man auch einen ssh - Zugang mit X-Window Funktionalität wählen.

$ ssh -X benutzername@HOST


Dieser Parameter ist auf den Computern im Computerraum oder unter Cygwin ITP Edition nicht notwendig, da X-Verbindungen automatisch weitergeleitet werden.


Kompression wird mit dem Kommandozeilenparameter -C ermöglicht. Also z.B.

$ ssh -X -C benutzername@HOST


Dateitransfer mit SCP

Die Syntax für einen einfachen Dateiaustausch lautet:

$ scp DATEINAME benutzername@HOST:DIRECTORY

Der Pfad wird relativ zum home-directory angegeben In unserem Fall wäre das Kommando also z.B.

$ scp *.m benutzername@fubphpc05.tu-graz.ac.at:Matlab

Recursive Kopien werden mit dem Kommandozeilenparameter -r ermöglicht:

$ scp -r DIRECTORY benutzername@fubphpc05.tu-graz.

SFTP

$ sftp benutzername@fubphpc05.tu-graz.ac.at

Nun wird Ihnen eine Eingabeaufforderung angezeigt, bei der Sie die bekannten FTP-Kommandos verwenden können

 sftp>ls

Zeigt eine Auflistung der Dateien im Verzeichnis an

 sftp>cd Matlab

Wechselt ins Verzeichnis Matlab

 sftp>get matlabfile.m

Lädt die Datei matlabfile.m

 sftp>mget *.c

Lädt alle Dateien mit der Extension .c

 sftp>put matlabfile2.m

Ladet matlabfile2.m auf den Remotecomputer hinauf

 sftp>mput *.f

Ladet alle Dateien mit der Extension .f auf den Remotecomputer hinauf

 sftp>bye

Beendet die SFTP-Sitzung

Secure Shell Client für Windows

Sie können den SSH - Client für Windows unter http://www.ssh.com bzw. unter ftp://ftp.ssh.com/pub herunterladen.

Aus Lizenzgründen dürfen wir diese Applikation leider nicht mit Cygwin ausliefern.


  • Um sich zu einem anderen Computer zu verbinden, wählen Sie bitte Quick Connect.

http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_1.jpg


  • Geben Sie hier bitte Ihren Benutzernamen und den Remotecomputer an zu dem Sie sich verbinden wollen.

http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_2.jpg


  • Sollten Sie eine Meldung dieser Art erhalten, und nicht wissen, was Sie bedeutet, ignorieren Sie Sie einfach

http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_3.jpg


  • Speichern Sie Ihre aktuelle Verbindung als Voreinstellung

http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_4.jpg

  • Nun können Sie Ihre Verbindungseinstellungen noch genauer definieren. Sie sollten,

falls Sie von zu Hause aus zugreifen, auf jeden Fall die Kompression einschalten.

http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_5.jpg

  • Natürlich können auch X-Verbindungen weitergeleitet werden.

http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_6.jpg

  • Mit der Secure Shell wird auch ein SFTP - Client mitinstalliert. Hier können Sie Dateien mittels

Drag and Drop zwischen zwei Computern tranferieren.

http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_7.jpg


PUTTY

PuTTY ist eine freie Version von Telnet und SSH für Windows Plattformen. PuTTY wird mit Cygwin ITP Edition mitinstalliert.

Die wichtigsten Programme, die zum PuTTY Paket gehören sind:

  • putty - Das Hauptprogramm
  • pscp - Kommandozeilen scp - Client
  • psftp - Kommandozeilen sftp - Client

pscp und psftp verwenden die gleiche Syntax wie die Versionen aus dem OpenSSH Paket. Hier konzentrieren wir uns deswegen auf das Hauptprogramm.

  • Geben Sie den Rechner an zu dem Sie sich verbinden wollen. Sollten Sie auf Institusrechner zugreifen wollen, so verwenden Sie bitte das SSH Protokoll.

http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_8.jpg

  • Verwenden Sie XTerm als Terminalemulation.


http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_9.jpg

  • Nehmen sie ssh - Protokollversion 2 und schalten Sie die Kompression ein.

http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_10.jpg

  • Sie können auch X-Verbindungen weiterleiten.

http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_11.jpg

  • Sollten Sie nach dem Öffnen der Verbindung eine Meldung dieser Art erhalten, und nicht wissen, was Sie bedeutet, ignorieren Sie Sie einfach.

http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_12.jpg

  • Nun sollten Sie sich mit Benutzernamen und Kennwort anmelden können.

http://itp.tugraz.at/Comp/Tutorial/ext.access/ssh_windows_13.jpg

Auf welche Computer darf/soll ich zugreifen?

Unter http://www.itp.tu-graz.ac.at/ganglia2/index.php finden Sie eine Übersicht der verfügbaren Rechner. Bitte beschränken Sie sich - wenn möglich - auf die Rechner im Computerraum Physik.


Unison

Aus dem unison-Benutzerhandbuch:


Unison is a file-synchronization tool for Unix and Windows. It allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other.

Kurz gesagt: Unison dienst dazu, bestimmte Verzeichnisse (z.B. Ihr Matlab - Verzeichnis) mit den Unirechnern abzugleichen. ACHTUNG: Hierzu muss $INSTALLATIONSPFAD/bin im Pfad sein, wie in der Einführung beschrieben. Sie können das Programm aus Startmenü -> Cygwin ITP Edition -> Windows starten

  • Nach dem Start von unison sollten

Sie dieses Fenster sehen. Hier wählen sie das lokale Directory aus, das synchronisiert werden soll.

http://itp.tugraz.at/Comp/Tutorial/ext.access/unison-1.jpg

  • Im nächsten Fenster wählen Sie bitte das

remote-Verzeichnis und den Computer mit dem synchronisiert werden soll. Beim Synchronisieren mit ITP Computern müssen Sie das SSH-Protokoll verwenden.

http://itp.tugraz.at/Comp/Tutorial/ext.access/unison-2.jpg

  • Bei der ersten Synchronisation sehen

Sie folgende Meldung, die Sie mit OK bestätigen können.

http://itp.tugraz.at/Comp/Tutorial/ext.access/unison-3.jpg

  • Nun können Sie unison benutzen. Mit

GO starten sie den Abgleichungsprozess.

http://itp.tugraz.at/Comp/Tutorial/ext.access/unison-4.jpg

Was gibt es sonst noch?

Durch Cygwin stehen dem Benutzer fast alle gewohnten Tools aus der UNIX-Umgebung auch unter Windows zur Verfügung. Dazu gehört unter anderem eine vollständige LaTeX - Distribution mit der wir viel bessere Erfahrungen gemacht haben, als mit den sonst unter Windows verfügbaren Möglichkeiten wie MikTeX. Ebenso steht die komplette gcc-Compilerkollektion und somit der Standard - C -Compiler auch unter Windows zur Verfügung. Falls Sie Anregungen brauchen rufen Sie die man oder info Seiten von Tools wie grep, wget usw. auf, oder schauen sie sich einmal die mitgelieferten Interpretersprachen wie Perl oder Python an.


ANHANG A : FAQ

Bitte senden Sie Fehlerberichte an camhy@itp.tu-graz.ac.at

  • Der XServer ist unglaublich langsam und ich benutze eine ATI Grafikkarte

Hier eine Anleitung von http://www.answersthatwork.com/Tasklist_pages/tasklist_a.htm ATIPTaxx.exe ATI Task Bar Icon. This is a System Tray icon which gets installed when you install the ATI drivers. All this icon does is enable you to bring up the Display Properties from the System Tray. Since the Display Properties can be invoked in many other ways, this icon simply adds to the clutter of the System Tray. Recommendation: Go into the „Options“ tab of the Display Properties and take the tick off the „Enable ATI Task Bar Icon“ option. Next, delete the „ATIptaxx.exe“ line with Startup Manager - this will prevent ATIPTAXX starting at boot-up. Note, however, that ATIPTAXX will still get started automatically every time you call up Display Properties, but at least it will not start automatically at boot-up. If you want totally disable ATIPTAXX from starting at any time, and you are familiar with editing the Windows Registry, then home in on the following registry key HKEY_LOCAL_MACHINE\SOFTWARE\ATI Technologies\Desktop, , then the sub-key NoAtipta and set it to 1 instead of its 0 default (our Thanks to the AnswersThatWork users who told us about this).

  • Wie schließe ich den X-Server, wenn er im fullscreen-mode läuft?

Indem Sie ALT-F4 drücken oder mit der Windows Taste das Startmenü zurückholen und so den Server aus der Taskleiste schließen

  • Wenn ich den X-Server beende, kann ich nicht auf exit klicken

Dies ist ein Bug im X-Server. Auch wenn man den Cursor nicht sieht, kann man auf exit klicken.

  • Ich brauche die zusätzliche Windows Software nicht. Welchen Folder kann ich löschen?

$INSTALLDIR\usr\local\share\windows

  • Wenn ich auf xterm klicke passiert nichts.

Bitte schicken Sie uns eine mail an camhy@itp.tu-graz.ac.at

  • Wo sind meine Windows-directories?

Sie können Sie unter /cygdrive/c, /cygdrive/d, usw. finden.

  • Warum leitet ssh X-Verbindungen automatisch weiter?

Dies wurde in /etc/ssh_config vorkonfiguriert.

  • Kann ich Windows-Applikationen vom Cygwin-Prompt aus starten?

Ja

ANHANG B: Update

Durch den Eintrag Setup (Update) im Startmenü können Sie Ihre Cygwin-Installation auf den aktuellen Stand bringen. Durch die Auswahl eines geeigneten ftp-Servers in der Auswahlliste und einfaches weiterklicken sollte das normalerweise problemlos funktionieren. Wir haben jedoch ab und zu schlechte Erfahrungen mit der Verfügbarkeit der Server gemacht. Da hilft nur probieren. Ein Update - vor allem des X-Servers - kann einiges bringen. In den letzten Monaten hat sich die (subjektive) Geschwindigkeit fast verdoppelt. Sonst können Sie natürlich auch immer eine aktuelle Cygwin-Distribution am Institut erhalten.