Vorkurs Informatik WS 2006/2007 Einführung in die Unix

Werbung
Universität Dortmund
Fachbereich Informatik
Dortmund, 20. September 2006
Frank Weichert, Heinrich Müller
Vorkurs Informatik WS 2006/2007
Einführung in die Unix-Systemumgebung
Ausstattung
Für die praktischen Übungen zum Vorkurs Informatik stehen im Geschossbau IV im Raum 006 SunRays zur Verfügung. Die genauen Übungsgruppenzeiten werden in der Vorlesung bekanntgegeben.
Außerhalb dieser Zeiten stehen die Rechner nicht zur allgemeinen Verfügung, da sie auch für andere
Lehrveranstaltungen reserviert sind. Freie Arbeitsplätze können genutzt werden, sofern die Teilnehmer
der anderen Lehrveranstaltung nicht gestört werden.
Die Ausstattung an Rechnern hat sich in den letzten Jahren erheblich verbessert. Dennoch ist auch
weiterhin Sparsamkeit im Umgang mit den Ressourcen angesagt. Hierzu einige konkrete Vorschläge
zur Rechnernutzung außerhalb der vorgegebenen Übungsgruppenzeiten:
• Den Arbeitsplatz freigeben, wenn er länger als wenige Minuten nicht benötigt wird.
• Nicht mehr benötigte Dateien sofort löschen.
• Aus dem Web gezogene Bilder, Skripten, Filme und Tondateien, die nichts mit der Vorlesung
Vorkurs Informatik zu tun haben, gehören unter gar keinen Umständen auf die Platte.
Dies erfordert natürlich etwas Selbstdisziplin. Wir hoffen, dass es möglich ist, auf weitere Reglementierungen zu verzichten.
Benutzerumgebung
Wie oben schon erwähnt, dienen als Arbeitsplätze Sun-Rays. Diese sind keine Workstations wie z. B.
Windows PCs, sondern Terminals, die über Ethernet mit PC-Servern verbunden sind. Auf diesen
Servern läuft die gesamte Sitzung ab, die Terminals realisieren lediglich die Bildschirmausgabe und
nehmen Eingaben über Tastatur und Maus entgegen.
Zum Einloggen setzen Sie sich an ein freies Terminal. Schalten Sie ggf. den Bildschirm ein, auf dem jetzt
die Meldung Welcome to <rechnername> und eine Aufforderung erscheinen sollte (vgl. Abbildung 1).
Abbildung 1: Loginbild auf den Sun-Rays
1
Geben Sie nun Ihre Benutzerkennung (z.B.: vorkurs4711) ein und bestätigen Sie diese mit einem Klick
auf den OK-Button. Nachfolgend müssen Sie noch Ihr Passwort (z.B.: q45rtfd)1 eingeben. Die von uns
ausgeteilten Passwörter bestehen aus Groß- und Kleinbuchstaben sowie Ziffern, es sind keine Sonderzeichen enthalten. Wegen der Ähnlichkeit gewisser Zeichen zueinander sind auch keine [iloILO01]
enthalten.
Nach Eingabe von Benutzerkennung und Passwort startet die Benutzeroberfläche CDE (Common
Desktop Environment), das darunterliegende Betriebssystem ist Solaris 9 oder 10.
Zu Beginn der Rechnerübungen sollten Sie sich Ihre Benutzerumgebung einrichten. Klicken Sie mit
der Maus auf den Desktop-Hintergrund und drücken die rechte Maustaste. Wählen Sie aus dem erscheinenden Menü Programs -> X-Terminal aus. Geben Sie in dem sich öffnenden Fenster den Befehl
passwd
ein. Anschließend werden Sie aufgefordert Ihr Passwort zu ändern. Denken Sie daran, dass dieses neue
Passwort mindestens aus 6 Zeichen besteht und sowohl Buchstaben als auch Ziffern enthalten muss.
Die Standard-Benutzerumgebung ist nun aktiv. Sie können sich Ihre Benutzerumgebung nach Wunsch
umgestalten. Für auftretende Probleme sind Sie dann jedoch selbst verantwortlich.
Das erste Java-Programm
Um Ihnen einen einfachen Einstieg in die Erstellung eines ersten Java-Programms unter Solaris zu
ermöglichen, sollen im Folgenden, am Beispiel des bekannten ”Hello World”-Programms, die Phasen
der Programmentwicklung beschrieben werden.
Grundlegendes Hilfsmittel jeder Softwareentwicklung ist ein Editor (hier: emacs) oder eine integrierte
Entwicklungsumgebung (Sun ONE Studio) in dem der Quellcode eingegeben oder verändert werden
kann. Öffnen Sie zunächst ein X-Terminal (s. Benutzerumgebung) und starten Sie den emacs-Editor.
Hierzu binden Sie zunächst das notwendige Modul mit module add emacs ein. Anschließend können
Sie den eigentlichen Editor starten:
emacs &
Das ”&” ist kein Tippfehler, sondern eine Befehlserweiterung im Rahmen eines Multitaskingsystems2 ,
wie es Solaris darstellt. Ohne hier auf Details einzugehen, wird damit die Möglichkeit bereitgestellt,
im aktuell geöffneten X-Fenster neben dem emacs noch weitere Befehle oder Programme zu starten.
Im geöffneten Editor geben Sie nun den folgenden Programm-Code ein.
class HelloWorld{
public static void main(String argv[]){
System.out.println("Hello World.");
}
}
Da Ihnen vielleicht schon bekannt ist, dass ein Computer über ein ”gewisses Eigenleben” verfügt,
müssen Sie ihr Programm abspeichern. Hierzu bewegen Sie den Mauszeiger in die obere Statuszeile
und drücken die rechte Maustaste. Mit diesem Vorgang können Sie unterschiedliche Aktionen im
Editor aufrufen, die in den sogenannten Pull-Down Menüs zur Verfügung stehen. Mit Files -> Save
Buffer veranlassen Sie den emacs dazu Ihr Listing abzuspeichern. Sie werden nun über die untere
1
2
Aus Sicherheitsgründen wird das Passwort bei der Eingabe nicht auf dem Bildschirm angezeigt.
Multitasking-Betriebssysteme können verschiedene Prozesse / Tasks gleichzeitig ausführen.
2
Statuszeile dazu aufgefordert, hinter File to save in: den Filename einzugeben. In diesem Fall
lautet er HelloWorld.java. Zu beachten ist hierbei, dass die Groß- und Kleinschreibung exakt mit
dem verwendeten Klassennamen (s.o. class HelloWorld) übereinstimmt. Nun muss das Programm in
den Bytecode übersetzt werden. Wählen Sie aus dem Menü JDE–>Compile aus. Das Programm wird
nun compiliert. Falls Sie keinen Fehler gemacht haben endet der Vorgang mit Compilation finished.
Jetzt kann das Programm ausgeführt werden. Dazu wählen Sie aus dem Menü JDE–>Run App aus. Der
String Hello World. wird auf dem Bildschirm ausgegeben. Alternativ können Sie diese Aktionen auch
über die Shell ausführen. Mit javac HelloWorld.java compilieren Sie das Programm und mit java
HelloWorld führen Sie das Programm aus. Jene Befehle führt der emacs unsichtbar für Sie auch aus.
Hinweise zum Kopieren von Disketten
Falls Sie Javaprogramme, die Sie zu Hause erstellt haben, hier an der Uni einspielen möchten, stehen
Ihnen dazu im Pool die Rechner napoli1 und napoli2 mit einem Ziplaufwerk zur Verfügung.
Um das Ziplaufwerk zu benutzen, muss es erst einmal reserviert werden. Das geschieht mit dem Kommando zlock (Laufwerksbuchstabe). Ist das Laufwerk gerade in Benutzung erscheint ein Hinweis
und das Programm wird automatisch beendet. Wenn das Laufwerk frei ist, wird der Benutzer aufgefordert, ein Medium einzulegen. Ist dieses geschehen, so muss die Abfrage mit j beantwortet werden.
Jetzt kann auf das Medium zugegriffen werden. Während das Laufwerk in Benutzung ist, kann das
Medium nicht entnommen werden. Um das Medium auszuwerfen ist es nötig, den Befehl zunlock
(Laufwerksbuchstabe) einzugeben und dann den Auswurfknopf zu betätigen. Um auf die Daten des
Mediums zuzugreifen, werden die sogenannten ztools benutzt. Die Laufwerke sind, soweit nicht anders
angegeben, über den Laufwerksbuchstaben z: zu erreichen.
Details zur Benutzung des Ziplaufwerks erhalten sie auf den Seiten der IRB unter
http://irb-www.cs.uni-dortmund.de/anleitungen/ziplaufwerk/index.html.
Zur Konvertierung zwischen DOS- und Unix-Textdateien können die Kommandos unix2dos und
dos2unix benutzt werden.
Die Unix–Shell
Für das erfolgreiche Arbeiten an den Rechnern des Fachbereichs sind einige grundlegende Unixkenntnisse unerlässlich.
• Die Shell: Der Kommandozeileninterpreter
Eine Shell (etwa ’bash’ oder ’tcsh’) ist ein command interpreter (wie z.B. ’command.com’ unter
MS-DOS). Eine Shell nimmt also die Benutzereingaben (Befehle) entgegen und führt sie aus.
Befehle sind (meist) einzeilig, und bestehen aus durch Leerzeichen getrennten Wörtern. Das erste
Wort gibt dabei den auszuführenden Befehl an, und die weiteren dessen Argumente.
• Besonderheiten von UNIX-Pfadnamen (hierarchisches Dateisystem)
1. Keine Laufwerksbezeichnungen (im Gegensatz zu DOS und VMS)
2. Verzeichnisnamen werden durch den normalen Slash (/) getrennt, nicht durch einen Backslash (MS-DOS: \). Wurzelverzeichnis ist / vollständige Pfadnamen fangen mit / an, Beispiele:
/usr/local/bin/elm
/etc/hosts.equiv
3. Groß- und Kleinschreibung werden unterschieden (im Gegensatz zu DOS)
3
4. Ein Punkt (.) am Anfang steht bei ’unsichtbaren’ Systemdateien (z.B. .cshrc), Dateinamen
dürfen mehrere Punkte enthalten
• Verschiedene Shells: bash, tcsh, usw.
Auf den meisten UNIX-Systemen kann man sich aussuchen, mit welchem Kommandointerpreter
man arbeiten will. Am komfortabelsten sind die ’bash’ (Bourne-Again Shell), die ’tcsh’ (erweiterte C Shell) und die ’zsh’ (Z Shell). Praktisch alle Shells sind in irgendeiner Form Weiterentwicklungen der ’sh’ (Bourne Shell).
• Wildcards: mehre Dateien auf einmal angeben
Es ist möglich, mit einem Wort mehrere Files anzugeben: die beiden Zeichen Asteriks (‘*’) und
Fragezeichen (‘ ?’) haben bei Filenamen eine spezielle Bedeutung:
– ? steht für ein beliebiges Zeichen
– * steht für kein, ein oder mehr beliebige Zeichen
So steht beispielsweise ‘f?ob*r’ (unter anderem) für ‘foobar’, ‘fzobr’ und ‘foobaar’, nicht aber
für ‘fooobar’ oder ‘foobra’.
Noch mächtiger sind die sogenannten regulären Ausdrücke. So steht z.B. der Ausdruck [a-k] für
irgendeinen Buchstaben von a bis k. b[a-k]n*[0-9] könnte also z.B. für ’bank1’, ’banner25’ oder
’benutzer7’ stehen.
Es folgt eine Auflistung einiger wichtiger UNIX-Befehle und dessen Entsprechung unter DOS, sofern
ein vergleichbarer Befehl vorhanden ist.
4
UNIX
ls [muster]
DOS
dir [muster] /w
ls -l [muster]
dir [muster]
mkdir name
rmdir name
cd name
cd
pwd
rm muster
md name
rd name
cd name
cd (HOME)
cd
del muster
cp name1 name2
copy name1 name2
cp muster1 [muster2...] dir
copy muster dir
mv name1 name2
mv muster1 [muster2...] dir
ren name1 name2
move muster1 dir
du [pfad]
du .
df [pfad]
df .
echo [text]
less name
echo [text]
type name
ps
kill [pid]
5
Beschreibung
Zeigt den Inhalt des Verzeichnisses muster
an, sonst den Inhalt des aktuellen Verzeichnisses.
Wie oben, aber u.a. werden auch Länge
und Zugriffsrechte angezeigt.
Erzeuge Verzeichnis name.
Lösche leeres Verzeichnis name.
Wechsle in das Verzeichnis name
Wechsle in das HOME-Verzeichnis.
Anzeige des aktuellen Verzeichnisses
Datei löschen. Unter Unix gibt es kein Undelete!
Kopiere Datei name1 in Datei name2.
Man beachte, dass name2 immer angegeben sein muss. Der Punkt (’.’) gilt als Alias
für das aktuelle Verzeichnis.
Kopiere Dateien muster1, muster2... ins
existierende Verzeichnis dir (Mit cp -r für
ganze Verzeichnisse).
Benenne name1 in name2 um.
Dateien bzw. Verzeichnisse nach dir verschieben.
(disk usage) Gibt an, wieviel Platz ein bestimmtes Verzeichnis mit seinen Unterverzeichnissen / Dateien belegt.
(disk free) Gibt an, wieviel Platz auf dem
Dateisystem, in dem sich ein bestimmtes
Verzeichnis befindet, noch frei ist.
Parameter ON und OFF gibt es nicht
Anzeigen der Datei name, alternativ auch
more möglich
Liste der eigenen Prozesse anzeigen.
Einen eigenen Prozeß mit der Nummer pid
beenden.
Forsetzung...
UNIX
man [name]
whatis [name]
who
DOS
help name
help name
finger [user@maschine]
talk [person@maschine] [ttyname]
chmod [-R] [ugoa][+-][rwx] name1
chgrp [-R] group name1
Beschreibung
Online-Manual zum Befehl name.
Kurzbeschreibung von name.
Wer ist gerade auf der aktuellen Maschine eingeloggt? Übrigens: whoami sagt uns,
wer wir selber sind
Liefert Information, ob user auf maschine
gerade eingeloggt ist. Wenn einfach user
weggelassen wird, gibt es eine Liste der
dort eingeloggten Personen.
Ermöglicht das Chatten mit Personen im
Netz. Auf der gleichen Maschine kann auch
die Angabe von maschine weggelassen werden.
Ändert die Zugriffsrechte zu Dateien und
Verzeichnisse gemäß einer Maske: [ugoa]
heißt, die Änderungen gelten für einen
selbst (user), die Gruppe (group), den
Rest der Welt (others) oder alle gleichzeitig (all). Das Pluszeichen fügt Rechte
hinzu, und das Minuszeichen löscht sie.
Die Zugriffsrechte [rwx] stehen für Lesen
(read), Schreiben (write) oder Ausführen
(execute).
Ändert die Gruppe von Dateien oder Verzeichnissen auf group. Der Benutzer, der
dieses Kommando benutzt, muss natürlich
Mitglied der Gruppe group sein
Um detailliertere Informationen zu einem Befehl zu erhalten, sei noch einmal auf den Unix-Befehl man
Name_des_Befehls verwiesen.
Einige Links
http://irb-www.cs.uni-dortmund.de/anleitungen/ Anleitungen zu Unix und CDE
http://www.javasoft.com/ Informationen zu Java
http://www.java.de Homepage der deutschen Java User Group
http://www.gnu.org/software/emacs/emacs.html Informationen zum Editor emacs
http://www.Vorkurs-Informatik.de Informationsseite zum Vorkurs
http://www.Vorkurs-Informatik.de/buch Informationsseite zum Vorkurs-Buch
6
Herunterladen