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

Werbung
Universität Dortmund
Fachbereich Informatik
Dortmund, 17. September 2007
Frank Weichert, Heinrich Müller
Vorkurs Informatik WS 2007/2008
Einführung in die Unix-Systemumgebung
Ausstattung
Für die praktischen Übungen zum Vorkurs Informatik stehen im Geschossbau IV im Raum 006 Sun-Rays 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
Als Arbeitsplätze dienen Sun-Rays. Diese Sun-Rays sind keine Workstations wie z. B. Windows PCs, sondern
Terminals, die über ein lokales Netz (Switched Fast Ethernet) mit Compute-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 Bildschirm
erscheint jetzt die Meldung Welcome to <hostname> und eine Aufforderung, seine Benutzerkennung einzugeben
(vgl. Abbildung 1).
Abbildung 1: Loginbild von Solaris 10
Geben Sie nun Ihre Benutzerkennung (z.B.: vki0711) 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
1 Aus
Sicherheitsgründen wird das Passwort bei der Eingabe nicht auf dem Bildschirm angezeigt.
1
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 10.
Zu Beginn der Rechnerübungen sollten Sie sich Ihre Benutzerumgebung einrichten. Klicken Sie mit der linken
Maustaste im Fenster am unteren Bildrand auf das linke IRB-Symbol. Geben Sie in dem sich öffnenden XTermFenster den Befehl
passwd -r nis
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 StandardBenutzerumgebung 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 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 Datenaustausch
Falls Sie Javaprogramme, die Sie zu Hause erstellt haben, hier an der Uni einspielen möchten, steht Ihnen dazu
an allen Arbeitsplätzen im Pool eine USB-Schnittstelle zur Verfügung.
2 Multitasking-Betriebssysteme
können verschiedene Prozesse / Tasks gleichzeitig ausführen.
2
Stecken Sie Ihren USB-Stick in die USB-Schnittstelle an Ihrem Arbeitsplatz. Öffnen Sie ein XTerm-Fenster
(siehe oben) und tippen Sie in dem Fenster folgendes Kommando ein
utdiskadm -l
Als Ausgabe bekommen Sie folgendes (bis auf Login)
Device
-----disk1
Partition
--------disk1s2
Mount Path
--------/tmp/SUNWut/mnt/vki0711/usbname
In der Spalte ”Mount Path” steht das Verzeichniswurzel des USB-Sticks. Darauf können Sie mit den üblichen
Unix-Kommandos zugreifen und so z.B. Dateien auf den USB-Stick kopieren. Mit dem Abstöpseln des USBStick müssen Sie warten bis keine Aktivitäten (flakernde LED) mehr angezeigt werden.
Details zur Benutzung von USB-Sticks erhalten sie auf den Seiten der IRB unter
http://irb-www.cs.uni-dortmund.de/fbi-pool/usb.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 (MSDOS: \). 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)
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’.
3
Es folgt eine Auflistung einiger wichtiger UNIX-Befehle und dessen Entsprechung unter DOS, sofern ein
vergleichbarer Befehl vorhanden ist.
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]
4
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
5
Herunterladen