28 Apr 2009

Linux-Einsteiger-Kurs – Teil 3 (Einstieg Dateisystem und erste Befehle)

Geschrieben von Tom Schimana in IT 8 Kommentare

Im ersten Teil haben uns eine passende virtuelle Umgebung gebaut. Dann wurde im zweiten Teil ein Debian-Linux darin installiert.

Eine Übersicht der Kursinhalte findest Du hier.

An sich müsste nun ein wenig Theorie kommen, um den Aufbau von Linux zu erklären. Ich werde versuchen, diesen Block recht klein zu lassen und über das Erlernen von Befehlen und ein paar ersten Schritten innerhalb von Linux zu erklären.

Du kannst schon mal Dein virtuelles Debian starten und dann weiterlesen.

Hinweis: Ich werde erst später erklären, wie man die VMware-Tools und SSH installiert. Somit müssen alle Befehle direkt in die Console eingeben werden. Bei den meisten Virtualisierungslösungen wird deshalb kein Copy&Paste funktionieren. Man lern eh viel mehr, wenn man einen Befehl eingibt.

Ein wenig Theorie

Im Linux gibt es einen Gott, dieser hat den Namen root. Niemand kann die gleichen Rechte haben. Im Gegensatz zu Windows, wo ja fast jeder einen Benutzer mit Administratorrechten hat, arbeitet man in Linux mit einem normalen User und macht schaltet sich nur bei Bedarf kurz zum root hoch.

Für den normalen Alltag hast Du Dir bei der Installation einen Benutzer angelegt. In meinem Fall hat dieser den Namen tom. Nochmals der User ist bei mir tom, nicht Tom oder TOM. Bei Linux und Unix wird sehr stark auf die Schreibweise geachtet. Dies gilt nicht nur bei Login-Namen, sondern grundsätzlich. Somit sind “test.txt” und “Test.txt” bei Linux auch wirklich zwei unterschiedliche Dateien!

Wenn wir schon bei Dateien sind. Linux arbeitet grundsätzlich gerne mit Dateien. Alles ist bei Linux eine Datei. Selbst Gerätetreiber sind nichts anderes als eine Datei. Darauf werde ich später noch genauer eingehen. Aber zu Veranschaulichung ein kleines Beispiel:

dd if=/dev/sda of=/dev/sdb

Der obere Befehl würde sozusagen einen Festplatten-Klone von der ersten SCSI-Festplatte (sda) zu zweien (sdb) durchführen.

Login

Dein Linux sollte nun gestartet sein und nach einem Login-Namen fragen.

debian-grundinstallation-34

Wir haben nun zwei Benutzer zur Auswahl: root und tom (oder wie dieser bei Dir genannt wird)

Gewöhnen wir uns gleich mal an, möglichst wenig mit root zu arbeiten. Deshalb gebe ich als Login tom ein.

Das debian vor dem login kommt daher, da mein Hostname debian ist.

debian login: tom
Password:

Das Kennwort wird bei der Eingabe nicht angezeigt.

Danach meldet sich das Debian mit einem Prompt. Dieser wird durch Benutzername einem @-Zeichen und dem Hostnamen zusammengestellt.

tom@debian:~$

Das Dollarzeichen $ zeigt, dass wir normaler User sind. Bei root würde ein # angezeigt werden.

Ein Logout kann mit mehreren Befehlen erfolgen:

logout

Logout ist der klassische Weg, sich aus einem Unix-System abzumelden.

Alternativ:

exit

Mit exit geht man eine Stufe zurück (falls man z.B. mehrfach eingeloggt ist, was wir später lernen werden). Nach dem letzten, geht er entsprechend raus und wird abgemeldet.

Einstieg ins Dateisystem

Mach einen Login mit Deinem “Arbeitsuser”, bei mir also mit tom.

Nun siehst Du diesen Prompt:

tom@debian:~$

Wir befinden uns bei einem Debian Linux in der Bash. Das ist eine gängige Shell und Linux. Mit einer Shell werden die Befehle in die Console eingegeben und verarbeitet. Vergleichbar mit der Commandline von Dos oder Windows.

Wie bei Dos oder Windows funktioniert auch (fast) das Bewegen durch die Verzeichnisse. Wer Dos-Erfahrung hat, wird sich schnell in einer Linux-Shell zurechtfinden.

Wichtig bei Linux: Anstatt dem Backslash \ von Windows wird unter Linux ein Slash / verwendet.

Auch gibt es bei Linux keine Laufwerksbuchstaben (c:, D:), wie bei Windows. Alles ist bei Linux in einem großen Laufwerk zusammengefasst.

Wir gehen mal ins Hauptverzeichnis mit dem Befehl:

cd /

Viele Linux-Versionen verstehen zwar den Befehl dir, aber in Wirklichkeit wird dieser umgewandelt in den Befehl ls.

ls

Wir sehen nun die Verzeichnisstruktur unserer Debian-Installation.

bin   cdrom  etc   initrd.img  lost+found  mnt  proc  sbin     srv  tmp  var
boot  dev    home  lib         media       opt  root  selinux  sys  usr  vmlinuz

Ich möchte nun ein paar der wichtigeren Verzeichnisse erklären.

Unter /bin sind alle für den Betrieb notwendigen Befehle enthalten, die von allen Benutzern verwendet werden können. Dort sind wirklich nur die Befehle enthalten, die zum System selbst gehören.

Zusätzlich gibt es dann noch /sbin. Hier sind alle Systemnahen Kommandos enthalten, die nur mit root-Rechten ausgeführt werden können.

Fast alle Konfigurationsdateien des System liegen unter /etc. Also z.B. der Hostname, die IP-Config, Usernamen, etc.

Habe ich schnell eine Festplatte oder einen USB-Stick, den ich verwenden möchte, dann wird dieser in /mnt bzw. media eingebunden. Wobei hier mnt traditioneller ist und vor allem für statische Einbindungen verwendet wird. Media ist neuer und wird vor allem für Hotplug-Devices genommen. Insgesamt bedeutet dies, wenn ich einen USB-Stick an das System anstecke, dann habe ich keinen neuen Laufwerksbuchstaben, sondern kann ein Verzeichnis (normal /mnt oder /media) dafür auswählen und dort sind dann alle Daten enthalten. Sozusagen wie jedes andere Verzeichnis auch, nur das der Inhalt von einem anderen Device kommt.

In /proc werden Live-Statistiken vom System eingepflegt. Ich hatte schon geschrieben, dass bei Linux alles eine Datei ist. So auch Infos über PCI, Festplatten und co. Alles wird in einer entsprechenden Datei gespeichert, die dann einfach angeschaut werden kann.

Unter /var werden alle variablen Daten gespeichert. Dies können z.B. die Daten eines Druckspoolers oder Mailservers sein. Auch alle Logs werden unter /var/log gespeichert. Dies ist mit dem Eventviewer unter Windows vergleichbar.

Wichtig ist /boot, auch wenn man dort besser nicht rumspielen sollte. Hier liegt der Linux-Kernel, also das Herz von Linux. Dieser wird beim Start geladen. Linux kann mehrere Kernel bereitstellen und diese können auch beim Start ausgewählt werden. Davon sind wir hier aber noch sehr weit entfernt. Also Finder erst mal weg!

Besonders toll ist /dev. Dort werden alle Devices generiert. Bei Linux ist alles eine Datei, auch die Soundkarte! Unser CDROM ist z.B. /dev/cdrom oder /dev/random ist ein Zufallsgenerator. Unsere virtuelle SCSI-Platte sollte /dev/sda sein und deren erste Partition /dev/sda1.

Unter /home befinden sich alle Daten der normalen User. Vergleichbar mit “Dokumente und Einstellungen” von Windows. Von meinem Benutzer ist das Home-Verzeichnis /home/tom. Dort befindet man sich auch direkt nach einem Login.

Für den Root gibt es zur Sicherheit ein gesondertes Home-Verzeichnis unter /root. Dieses sollte auch nicht zugemüllt werden, da wir ja mit unseren normalen User arbeiten sollten.

Unter Linux gibt es ein zentrales Temp-Verzeichnis unter /tmp. Dies ist vergleichbar mit dem von Windows.

Unter /lib werden alle Bibliotheken von Linux abgelegt. Vergleichbar mit einem zentralen Verzeichnis für DLL-Dateien unter Windows.

Software die nicht direkt zu Debian gehören sollten bzw. werden unter /opt installiert. Damit wird gewährleistet, dass Fremdsoftware vom eigentlichen System getrennt wird. Dies macht weniger Probleme bei z.B. Updates des Systems.

Es gibt auch noch /sys welches vom Prinzip mit /proc vergleichbar ist.

Sehr viele Informationen liegen unter /usr. Dort wird alles an Software und Informationen gespeichert, was für das System relevant ist. Die grafische Oberfläche wird hier z.B. installiert. Alle Kommandos die nicht direkt Systemnah sind liegen unter /usr/bin bzw. /usr/sbin. Unter dem Verzeichnis usr wiederholt sich z.T. die Struktur. Alles was Systemnah ist, wird direkt unterhalb von / angelegt und alles was erweiterte Dinge sind unterhalb von /usr/.

Dies waren die wichtigsten Verzeichnisse direkt im Root der Platte. Wir werden später genauer auf einzelne Dinge eingehen.

Die ersten Befehle

Es gibt einen einfachen Trick, in sein Home-Verzeichnis zu wechseln:

cd

Gibt man bei cd keinen Parameter an, dann wechselt man direkt in sein Home.

Wir wandern nun mal in ein tieferes Verzeichnis des Systems:

cd /usr/local/bin

Der Prompt hat sich entsprechend geändert:

tom@debian:/usr/local/bin$

Somit wissen wir immer, wo wir uns gerade befinden. Dafür gibt es auch einen Befehl:

pwd

Damit wird das aktuelle Verzeichnis auch angezeigt.

Mit cd - geht man in das letzte bekannte Verzeichnis zurück.

Beispiel für cd -

cd /usr/local/bin
cd /opt
cd -

Gehen wir zurück in unser Home:

cd

Das Home wird immer mit ~ gekennzeichnet. Wir könnten also auch cd ~ eingeben, um in unser Home zu wechseln.

Legen wir nun in unserem Home-Verzeichnis (dort sollten wir uns nun befinden) ein Unterverzeichnis mit dem Name "test" an.

mkdir test

Alternativ geht dies auch mit Angaben des absoluten Pfades:

mkdir /home/tom/test

Oder auch so:

mkdir ~/test

Schauen wir uns das Ergebnis mal an:

ls

Das Ergebnis ist etwas nüchtern. Mehr Informationen bekommt man mit ein paar Zusatzparametern von ls.

ls -lha

Die Ausgabe sollte so aussehen:

tom@debian:~$ ls -lha
total 32K
drwxr-xr-x 3 tom  tom  4.0K 2009-04-28 21:05 .
drwxr-xr-x 4 root root 4.0K 2009-04-19 14:13 ..
-rw------- 1 tom  tom  1.3K 2009-04-28 20:06 .bash_history
-rw-r--r-- 1 tom  tom   220 2009-04-19 14:13 .bash_logout
-rw-r--r-- 1 tom  tom  3.1K 2009-04-19 14:13 .bashrc
-rw-r--r-- 1 tom  tom   541 2009-04-24 20:59 .htoprc
-rw-r--r-- 1 tom  tom   675 2009-04-19 14:13 .profile
drwxr-xr-x 2 tom  tom  4.0K 2009-04-28 21:05 test
tom@debian:~$ 

Schon einiges mehr an Infos.

Der Parameter -l (ein kleines L) steht für "List". Hiermit wird die Ausgabe als Liste angezeigt mit einigen Zusatzinformationen, wie Rechte, User, Gruppe, Größe, etc.

Mit -h werden Größenangaben für Menschen (H steht für Human) lesbar dargestellt. Ohne wird alles in Bytes angezeigt, mit dem Parameter wird entsprechend der Größe der Wert in KB, MB, etc. umgerechnet.

Das -a sorgt für unser "Chaos" mit dem "." vor den Namen in der Listendarstellung. Das muss ich nun genauer erklären.

Ohne -a:

tom@debian:~$ ls -lh
total 4.0K
drwxr-xr-x 2 tom tom 4.0K 2009-04-28 21:05 test
tom@debian:~$

Mit -a:

tom@debian:~$ ls -lha
total 32K
drwxr-xr-x 3 tom  tom  4.0K 2009-04-28 21:05 .
drwxr-xr-x 4 root root 4.0K 2009-04-19 14:13 ..
-rw------- 1 tom  tom  1.3K 2009-04-28 20:06 .bash_history
-rw-r--r-- 1 tom  tom   220 2009-04-19 14:13 .bash_logout
-rw-r--r-- 1 tom  tom  3.1K 2009-04-19 14:13 .bashrc
-rw-r--r-- 1 tom  tom   541 2009-04-24 20:59 .htoprc
-rw-r--r-- 1 tom  tom   675 2009-04-19 14:13 .profile
drwxr-xr-x 2 tom  tom  4.0K 2009-04-28 21:05 test
tom@debian:~$ 

Was hier mit einem "." anfängt sind Dateien oder Verzeichnisse, die nicht sichtbar sind. Vergleichbar mit dem Attrib-Befehl unter Dos, um mit "+h" Dateien unsichtbar zu machen.

Unter Linux reicht es einfach einen Punkt vor dem Namen anzugeben:

mkdir .test2

Dies liegt ein unsichtbares Verzeichnis .test2 an.

Noch ein paar Infos zu den weiteren unsichtbaren Dateien.

Unter .profile wird die Umgebung für den Consolen-Login eingerichtet. Vergleichbar mit dem Autostart von Windows ist .bashrc. Hier können Programme für meinen User beim Consolen-Login gestartet werden. Unter .bash_history werden alle Befehle die ich eingegeben hatte gemerkt. .bash_logout werden entsprechend Befehle ausgeführt, wenn ich mich abmelde.

Schauen wir uns doch mal eine dieser Dateien an:

cat .profile

Alternativ auch mit:

more .profile

Mit cat wird die Datei einfach auf der Standardausgabe angezeigt. Durch more wird nach jeder Bildschirmseite auf einen Tastendruck (Leertaste) gewartet.

Nun löschen wir unser verstecktes Verzeichnis aus unserem Home-Verzeichnis wieder:

rmdir ~/.test2

Tipp: Mit der TAB-Taste werden Befehle und Verzeichnisse automatisch vervollständigt. Gibt man also ls te ein und drückt die TAB-Taste, dann wird automatisch ls test daraus. Gibt es keine eindeutige Lösung, dann piepst der Rechner. Nochmals TAB drücken und es werden alle Möglichkeiten angezeigt.

Die eingebaute Hilfe

Zum Abschluss noch ein super Tipp, um über die oberen gelernten Befehle noch genauer nachzulesen.

man ls

Mit dem Befehl man wird eine recht ausführliche Anleitung zum dahinter angegeben Befehl angezeigt. Raus kommt man aus der Hilfe mit der Taste q. Diese wird öfter bei Unix/Linux zum Beenden verwendet.

Beim nächsten Teil werden wir etwas mehr über Dateien lernen und den Umgang damit lernen.

System anschalten

Zuerst gibst Du exit ein, damit Du Dich mit Deinem normalen User abmeldest.

Nun bei "Login:" root als Benutzer eingenen und dann Dein Kennwort, was Du bei der Installation für den Benutzer root vergeben hast.

Um nun das Debian Linux herunterzufahren und den virtuellen PC auszuschalten gibt den Befehl halt ein:

halt

Eine Übersicht der Kursinhalte findest Du hier. Im vierten Teil geht es dann um den Umgang mit Dateien.

Themen: · · · · ·

Interessante Beiträge zu diesem Thema

8 Kommentare zu “Linux-Einsteiger-Kurs – Teil 3 (Einstieg Dateisystem und erste Befehle)”

  1. Alexander says:

    Hi Tom,

    schöne kurze Einführung. Würde gerne noch ein paar Punkte los werden?! Also ich mach dann mal.

    * “cd -” Geht in der cd History zurück.
    * “less” Less is more than more. Will sagen: more hat einen Nachfolger “less” da gibt’s auch Suche und Ctrl + G & g…
    * “rm -r” Löscht Verzeichnisse. Ist mir persönlich lieber. Ist Gewöhnungssache.

    Wenn der Kurs fertig ist würde ich ein noch ein schönes PDF daraus machen.

    Grüße Alexander

  2. Tom Schimana says:

    Danke für den Input. Das mit cd – werde ich gleich mal einbauen, passt sehr gut dazu.

    less kommt erst später dran, da eine Minimal-Installation von Debian gemacht wurde und der Befehl hier noch fehlt. Ich wollte nicht gleich mit der Installation von Programmen anfangen. :-)

    rm -r kommt im nächsten Teil, da ich den Befehl für gefährlicher halte und ich vor allem den Befehl touch erklären werde (wir haben ja noch keine Dateien angelegt) und dann der Unterschied zwischen rmdir und rm -r besser gesehen wird.

    Ich fange ja hier von /dev/null an. ;-)

    Meinst Du ich soll schneller und mehr Infos gleich am Anfang bringen? Die Gefahr bei den ersten Teile, gleich jeden Trick und alles zeigen zu wollen ist, dass dann viele sich nicht mehr auskennen oder überfordert sind. Deshalb habe ich mir gedacht, die ersten Teile etwas langsamer anzugehen und dann die Geschwindigkeit und die Intensität zu steigern.

  3. Alexander says:

    Nein, die “Geschwindigkeit” passt. Und von einer Grundinstallation auszugehen ist auf jeden Fall nicht schlecht. Ich würde Installationen von Programmen etwas später behandeln. Und dann würde ich Package Verwaltung von Grund auf erklären. Also nicht nur “apt-get” & “aptitude” (“yast” – ne ist Scheiße) sondern auch was dahinter steckt, also die Repositories.

    Alexander

  4. Daily News About Linux : A few links about Linux - Tuesday, 28 April 2009 22:18 says:

    [...] Linux-Einsteiger-Kurs – Teil 3 (Einstieg Dateisystem und erste Befehle) [...]

  5. Linux-Einsteiger-Kurs - Teil 4 (Umgang mit Dateien) - Tom Schimana says:

    [...] letzten Teil haben wir die ersten Gehversuche im Dateisystem gemacht und es gab ein wenig [...]

  6. Linux-Einsteiger-Kurs – Teil 5 (Dateisystemrechte) - Tom Schimana says:

    [...] im dritten Teil gelernt, solltest Du Dich immer mit Deinem eigenen Arbeitsbenutzer anmelden. In meinem Beispielen [...]

  7. Linux-Einsteiger-Kurs – Teil 2 (Debian Grundinstallation) - Tom Schimana says:

    [...] Übersicht der Kursinhalte findest Du hier. Im dritten Teil machen wir einen ersten Einstieg in Linux. SHARETHIS.addEntry({ title: "Linux-Einsteiger-Kurs [...]

  8. Tom says:

    Test

Kommentar schreiben