Ziel & Vorwort
Das folgende Tutorial soll Neulinge ein wenig an die Arbeit im Textmodus heranführen und ein paar Programme vorstellen, nicht mehr. Wenn ihr weitere Informationen zu einem Befehl benötigt, versucht einfach mal "man [befehlsname]". Hoffentlich ists halbwegs verständlich geworden, erster Versuch halt
Voraussetzungen
Voraussetzung zum Nachvollziehen ist eine Linuxinstallation (vielleicht auch in Bochs um eventuelle Schäden zu vermeiden), brauchbare Englischkentnisse, grundlegendes Wissen über Linux (Verzeichnisstruktur, keine Laufwerksbuchstaben etc) und etwas Zeit.
Der Start
Ich nehme einfach mal an, dass ihr das hier unter Linux mit einem graphischen Browser lest. Um in dieser Umgebung auf eine Textkonsole zu gelangen, genügt es die Tasten [Strg] [Alt] und [F1] gleichzeitig zu drücken. Es gibt bei den meisten Distributionen 6 solcher Textkonsolen, erreichbar über [F1] bis [F6]. Der x-server (die graphische Oberfläche) läuft meistens auf Konsole 7 und kann über [Strg] [Alt] [F7] erreicht werden. Auf dem Bildschirm sollte nun so etwas wie "xy login: " zu lesen sein. xy steht dabei für den Namen eures Rechners im Netzwerk.
Um sich auf der Textkonsole einzuloggen, braucht das Programm welches euch den login-prompt (prompt=Eingabeaufforderung) zuerst euren Benutzernamen und dann euer Passwort. Bei der Passworteingabe wird normaler Weise aus Sicherheitsgründen nichts angezeigt (auch keine Sterne), der Computer erhält die Eingabe aber trotzdem.
Nach dem ihr euer Passwort mit [Enter] bestätigt habt, solltet ihr eine Eingabeaufforderung wie diese sehen:
Code:
benutzername@xy xy $
Das sieht auf den ersten Blick zwar etwas kryptisch aus, ist aber kaum komplizierter als das altbekannte C:\> unter MS-DOS und Konsorten. Am Anfang des Promptes steht euer Benutzername und der Name des Rechners auf dem ihr gerade angemeldet seit. Danach steht der Name des Verzeichnisses in dem ihr euch gerade befindet, in diesem Falle euer Heimatverzeichnis. Das Dollarzeichen dient dazu, das Ende der Eingabeaufforderung zu markieren. Als Root (Administrator) steht oft ein Doppelkreuz (#) anstelle des $ am Ende, um den Benutzer nicht vergessen zu lassen, dass er als root arbeitet. Natürlich kann das alles auch in einem Terminal unter X nachvollzogen werden
Wie man Befehle benutzt
Oft verwendet man Konsolenbefehle nach folgendem Schema:
Code:
befehl -schalter ziel
-schalter steht dabei für eine Anzahl von Buchstaben, die die Wirkung des Befehls beeinflussen. Einer der wohl häufigsten Schalter ist "-v", der für verbose ("gesprächig") steht. Damit gibt der aufgerufene Befehl mehr Informationen darüber aus, was er gerade tut. Ein Ziel kann entweder ein Verzeichnis oder eine Datei sein. Eine bei der Eingabe langer Pfade sehr nützliche Funktion ist die Tab-Autovervollständigung (Tab = Tabulator = Die zwei Pfeile über der Feststelltsaste). Mit einem Druck auf Tab versucht das System, den Pfad oder den Befehl, an dem der Benutzer gerade tippt, selbst zu ergänzen. Gibt es nur eine sinnvolle Möglichkeit, wird der Rest ergänzt, gibt es mehrere (zum Beispiel /bin und /boot für /b [TAB]) wir durch zweimaliges "Tabulieren" eine Liste der möglichkeiten angezeigt.
Wichtig: Ein Konsolenbefehl ist nichts anderes als ein Programm!
Im Dateisystem Herumlaufen
Beginnen wir mit den Befehlen cd und ls. cd wird wohl den DOS-Kennern bekannt vorkommen, ls ist das Äqivalent zu dir.
ls
ls ist eine Abkürzung für "list" und listet standardmäßig den Inhalt des aktuellen Verzeichnisses auf. Eine ls-ausgabe könnte so aussehen:
Code:
heinz@kompjuta / $ ls
bin dev home lost+found opt root share tmp var
boot etc lib mnt proc sbin sys usr
Wird an ls noch ein Pfad zu einem Verzeichnis angehängt, wird der Inhalt dieses Ordners angezeigt. Weitere nützliche Optionen von ls sind die Schalter -l und -h. -l sorgt für detailliertere Informationen und -h wandelt Größenangaben in menschenlesbare Zahlen um. Ein Beispiel dafür:
Code:
ib@gm ib $ ls -lh /home/ib/temp/
total 964K
drwxr-xr-x 2 ib users 4.0K Feb 20 21:57 ae
-rw-r--r-- 1 ib users 944K Feb 22 02:28 bump.xpm
drwxr-xr-x 2 ib users 4.0K Feb 22 14:22 muesli
drwxr-xr-x 2 ib users 4.0K Feb 19 17:02 someth
drwxr-xr-x 3 ib users 4.0K Feb 20 22:26 xebian
cd
cd bedeutet "change directory" und wechselt in das angegebene Verzeichnis. Der Befehl hat keine weiteren Optionen und versteht absolute und relative Pfadangaben. Um beispielsweise von /home/user/ nach /home/user/bla/blub/ zu wechseln, gibt es 4 Möglichkeiten:
Code:
cd /home/user/bla/blub
oder
cd bla/blub
oder
cd bla
cd blub
oder
cd ~/bla/blub
Bei der ersten Methode handelt es sich um einen Absoluten Pfad, der immer vom Rootverzeichnis / ausgeht, 2 - 4 sind relativ, also vom aktuellen Verzeichnis aus gesehen. Bei 4 wurde statt /home/user/ die Variable "~" benutzt, die immer den Pfad des Heimatverzeichnisses des aktuellen Benutzers enthält. Andere Variablen sind ".." (Verzeichnis eine Ebene Tiefer) und "." (das aktuelle Verzeichnis).
du
Wenn man wissen will, wie groß eine bestimmte Datei ist, reicht es meistens die Schalter sh (size & human readable) an ls anzuhängen. Wenn es jedoch um ganze Ordner geht, bekommt man nur die relativ nutzlose Information, dass ein Ordner an sich im Dateisystem 512byte verbraucht. Dafür gibt es du (disk space used). Um damit beispielsweise die gesamtgröße von /bin herauszufinden, kann man folgendes eingeben:
Code:
heinz@kompjutah heinz $ du -h /bin
6.9M /bin/
Ein Blick in die Manpage gibt übrigens, nicht nur hier, noch eine Fülle weiterer Optionen preis, die ich hier nicht besprechen will.
Das Ganze klingt jetzt komplizierter als es ist, am besten ist immer noch selbst ausprobieren
Dateien herumschubsen
Die essentielen Dinge, die man mit Dateien und Verzeichnissen anstellen kann sind kopieren, verschieben, umbenennen, erstellen und löschen. Kopieren wird mit cp (für copy), Verschieben mit mv (für move) und löschen mit rm (für remove) erledigt.
cp und mv
Weil cp und mv sich in vielen Punkten ähneln, beschreibe ich beide zusammen.
Um eine Datei oder ein Verzeichniss zu kopieren oder zu verschieben, wird der Name der Datei und der Zielort benötigt. Das könnte so aussehen:
Code:
ib@gm ib $ cp temp bla/
Dieser Befehl würde die Datei/das Verzeichnis temp in den Ordner bla/ kopieren. Auch mit cp und mv kann man Variablen wie "~" oder ".." benutzen, zusätzlich kommen noch Wildcards (Joker) dazu. Der bekanteste ist dabei wohl "*", der für eine beliebige Anzahl von beliebigen Zeichen steht. In zusammhang mit cp und mv ist er nützlich, um nur bestimmte dateien zu kopieren. Dazu ein Szenario:
Im Ordner /home/heinz/pics/ liegen diverse bilder, darunter auch welche von einer Digitalkammera. ls zeigt folgendes:
Code:
dcim001.jpg dcim004.jpg heinz-auf-teneriffa.jpg
dcim002.jpg dcim005.jpg heinz-angetrunken.gif
dcim003.jpg demonicduck.png hunderteuro.gif
Nun sollen alle Bilder von der Kammera, die nach dem Schema dcimZAHL.jpg, in ein anderes Verzeichnis verschoben werden. Statt nun alle Dateien einzeln zu verschieben, kann * benutzt werden. Das sähe dann so aus:
Code:
heinz@kompjuta pics $ mv -v dcim* /home/heinz/online/bilders/
`dcim001.jpg' -> `/home/heinz/online/bilders/dcim001.jpg'
`dcim002.jpg' -> `/home/heinz/online/bilders/dcim002.jpg
`dcim003.jpg' -> `/home/heinz/online/bilders/dcim003.jpg
`dcim004.jpg' -> `/home/heinz/online/bilders/dcim004.jpg
`dcim005.jpg' -> `/home/heinz/online/bilders/dcim005.jpg
heinz@kompjuta pics $
Mit dem Schalter -v gibt mv beim kopieren den Namen der Datei aus, an dem es gerade arbeitet. dcim* veranlasst mv alle dateien, die mit dcim anfangen, ins Zielverzeichnis /home/heinz/online/bilders/ zu schieben.
Umbenennen
Umbenennen wird unter Linux mit verschieben gleichgesetzt. Ein Beispiel dazu:
Code:
heinz@kompjuta pics $ mv dcim001.jpg tante-jutta.jpg
Ordner erstellen
Ordner werden mit mkdir (make directory) erstellt, der Befehl akzeptiert absolute und relative Pfadangaben.
Code:
heinz@kompjutah heinz $ mkdir /home/heinz/temp/keksdose
Erstellt zum Beispiel das Verzeichnis keksdose im Ordner /home/heinz/temp/.
Löschen
Vorsicht: Wenn weg, dann weg!
Löschen wird mit rm (remove) erledigt. Standardmäßig löscht rm ohne Nachfrage und nur Dateien, keine Ordner. Ein Beispiel um alle dateien mit tmp im Namen aus einem Verzeichnis zu löschen:
Code:
heinz@kompjutah cleanup $ rm *tmp*
Um Verzeichnisse zu löschen bedarf es der Schalter -f (force) und -r (recursive). Das sieht dann so aus:
Code:
heinz@kompjutah heinz $ rm -fr verzeichnisname
Lesezeichen