Shell-Wikibook/Erste Schritte (1): Unterschied zwischen den Versionen
(zwischenspeichern) |
|||
Zeile 56: | Zeile 56: | ||
---- | ---- | ||
+ | |||
+ | |||
=== pwd - Print working Directory === | === pwd - Print working Directory === | ||
+ | |||
+ | |||
+ | |||
+ | {{Hinweis|'''Syntaktische Normalform:''' <pre> pwd [OPTION]</pre>}} | ||
+ | |||
Oben wurde bereits erwähnt, dass das Zeichen '''"~"''' stellvertretend für den Pfad des Homeverzeichnisses steht. Wie aber lautet denn nun der genaue Pfad zum Homeverzeichnis? Das können wir mit dem Befehl | Oben wurde bereits erwähnt, dass das Zeichen '''"~"''' stellvertretend für den Pfad des Homeverzeichnisses steht. Wie aber lautet denn nun der genaue Pfad zum Homeverzeichnis? Das können wir mit dem Befehl | ||
Zeile 70: | Zeile 77: | ||
Norberts Homeverzeichnis ist also '''/home/norbert/'''. | Norberts Homeverzeichnis ist also '''/home/norbert/'''. | ||
− | |||
+ | |||
+ | ---- | ||
− | |||
=== cd - Change Directory === | === cd - Change Directory === | ||
+ | |||
+ | |||
+ | |||
+ | {{Hinweis|'''Syntaktische Normalform:''' <pre>cd [-L | -P] [directory]</pre> }} | ||
+ | |||
Natürlich muss man auch auf der Shell, wie z.B. im [[Konqueror]], durch Verzeichnisse navigieren könnieren. Mit dem '''cd'''-Befehl (Change Directory) kann man das sich beliebig durch das System bewegen. | Natürlich muss man auch auf der Shell, wie z.B. im [[Konqueror]], durch Verzeichnisse navigieren könnieren. Mit dem '''cd'''-Befehl (Change Directory) kann man das sich beliebig durch das System bewegen. | ||
Zeile 173: | Zeile 185: | ||
− | |||
+ | ---- | ||
− | |||
=== ls - List Directory Contents === | === ls - List Directory Contents === | ||
+ | |||
+ | |||
+ | |||
+ | {{Hinweis|'''Syntaktische Normalform:'''<pre>ls [OPTION]... [FILE]...</pre>}} | ||
+ | |||
+ | |||
+ | |||
+ | * '''Normale Auflistung eines Verzeichnisses''' | ||
+ | Um sich den Inhalt eines Verzeichnisses auflisten zu lassen kann man den '''ls'''-Befehl verwenden. | ||
+ | Beispiel: | ||
+ | |||
+ | <pre>norbert@rbe-linux:/> pwd | ||
+ | / | ||
+ | norbert@rbe-linux:/> ls | ||
+ | bin boot data2 dev etc home lib lost+found media mnt opt proc root sbin srv sys tmp usr var | ||
+ | norbert@rbe-linux:/> | ||
+ | </pre> | ||
+ | |||
+ | Hier wird der Inhalt des Wurzelverzeichnisses ausgegeben. | ||
+ | |||
+ | |||
+ | |||
+ | * '''Versteckte Dateien mit anzeigen lassen''' | ||
+ | |||
+ | Um sich versteckte Dateien ausgeben zu lassen, muss man einen Optionsparameter von '''ls''' verwenden. Mir der Option '''"-a"''' (alle anzeigen) kann man zur gewünschten Ausgabe gelangen. | ||
+ | |||
+ | {{Hinweis|'''Hinweis''': Versteckte Dateien beginnen unter Linux mit einem "." . Anders als unter Windows sind versteckte Dateien also nicht mit einem Dateiattribut versehen.}} | ||
+ | |||
+ | <pre>norbert@rbe-linux:~> ls | ||
+ | Dokumente Urlaubsfotos | ||
+ | norbert@rbe-linux:~> ls -a | ||
+ | . .. Dokumente Urlaubsfotos .Versteckte-Datei | ||
+ | norbert@rbe-linux:~></pre> | ||
+ | Zusätzlich werden die beiden relativen Adressen "." und ".." mit ausgegeben. | ||
+ | |||
+ | |||
+ | |||
+ | * '''Detaillierte Auflistung erzwingen''' | ||
+ | |||
+ | Der Informationsgehalt der normalen Ausgabe von ls ist äußerst dürftig. Man erfährt nichts darüber, wem die Datei gehört, wann sie erstellt wurde und wie groß sie ist. Mehr Informationen kann man mit der Option "-l" (list) in Erfahrung bringen. | ||
+ | |||
+ | <pre>norbert@rbe-linux:/> ls -l | ||
+ | insgesamt 108 | ||
+ | drwxr-xr-x 2 root root 4096 25. Mai 16:36 bin | ||
+ | drwxr-xr-x 3 root root 4096 4. Mai 11:02 boot | ||
+ | drwxr-xr-x 2 root root 4096 14. Jan 19:05 data2 | ||
+ | drwxr-xr-x 11 root root 7400 12. Jul 15:51 dev | ||
+ | drwxr-xr-x 94 root root 12288 12. Jul 11:31 etc | ||
+ | drwxr-xr-x 5 root root 4096 12. Jul 14:02 home | ||
+ | drwxr-xr-x 12 root root 4096 16. Mai 20:38 lib | ||
+ | drwx------ 2 root root 16384 7. Dez 2006 lost+found | ||
+ | drwxr-xr-x 9 root root 4096 12. Jul 11:31 media | ||
+ | drwxr-xr-x 2 root root 4096 10. Mai 22:50 mnt | ||
+ | drwxr-xr-x 4 root root 4096 7. Dez 2006 opt | ||
+ | dr-xr-xr-x 135 root root 0 12. Jul 13:30 proc | ||
+ | drwx------ 24 root root 4096 12. Jul 12:59 root | ||
+ | drwxr-xr-x 3 root root 12288 4. Mai 10:49 sbin | ||
+ | drwxr-xr-x 4 root root 4096 7. Dez 2006 srv | ||
+ | drwxr-xr-x 11 root root 0 12. Jul 13:30 sys | ||
+ | drwxrwxrwt 29 root root 20480 12. Jul 18:00 tmp | ||
+ | drwxr-xr-x 14 root root 4096 11. Mär 17:33 usr | ||
+ | drwxr-xr-x 15 root root 4096 11. Mär 17:33 var | ||
+ | norbert@rbe-linux:/> | ||
+ | </pre> | ||
+ | |||
+ | Wie man sieht, ist der Informationsgehalt deutlich höher als mit der Standardausgabe, aber auf dem ersten Blick wahrscheinlich auch verwirrender. | ||
+ | Zur verdeutlichung picken wir uns einfach mal eine Zeile heraus und analysieren die einzelnen Abschnitte. | ||
+ | |||
+ | <pre>drwxr-xr-x 5 root root 4096 12. Jul 14:02 home</pre> | ||
+ | |||
+ | |||
Version vom 12. Juli 2007, 16:17 Uhr
Achtung dieser Artikel ist noch in Arbeit und dient vorläufig nur als Vorlage. Dieser Beitrag zu Linux oder der Abschnitt ist in Bearbeitung. Weitere Informationen findest du hier. Der Ersteller arbeitet an dem Beitrag oder Abschnitt und entsorgt den Wartungsbaustein spätestens 3 Tage nach der letzten Bearbeitung. Änderungen außer Rechtschreibkorrekturen ohne Absprache mit dem Urspungsautor sind möglichst zu vermeiden, solange dieser Baustein noch innerhalb der genannten Frist aktiviert ist. |
Shell - Eine Einführung: 1. Grundlagen - 2. Erste Schritte (1) - 3. Erste Schritte (2) - 4. Fortgeschritten - 5. Reguläre Ausdrücke - 6. Skripting |
Inhaltsverzeichnis
Erste Schritte auf der Shell
Am System Anmelden
Nach der Theorie wird es nun zeit für einige Feldtests auf der Shell. Für KDE-/GNOME - Nutzer bietet es sich an das entsprechende grafische Programm (siehe Zugriff über grafische Programme) zu verwenden. Selbstverständlich spricht auch nichts dagegen TTY1-X zu verwenden.
Der Login-Bildschirm
Wenn der Zugriff auf die Shell über ein TTY-Terminal erfolgt, wird man zunächst mit dem Login-Bildschirm der verwendeten Linux-Distribution begrüßt.
Welcome to openSUSE 10.2 (i586) - Kernel 2.6.18.8-0.3-default (tty1) rbe-linux login:
Die obige Begrüßungsmeldung zeigt den Namen der Distribution, Systemplattform, die verwendete Kernel-Version und Nummer des entsprechenden TTY-Terminals an. Hier kann man sich mit dem gewünschten Benutzernamen/Passwort anmelden (Achtung: Groß- und Kleinschreibung beachten ).
Nehmen wir an, Norbert (siehe letzte Seite des Wikibooks) möchte sich auf TTY1 anmelden
Hinweis: Das Passwort wird aus Sicherheitsgründen nicht auf dem Bildschirm dargestellt |
Welcome to openSUSE 10.2 (i586) - Kernel 2.6.18.8-0.3-default (tty1) rbe-linux login: norbert Password: Have a lot of Fun... norbert@rbe-linux:~>
Norbert ist nun auf dem PC angemeldet. Betrachten wir die Ausgabe etwas genauer: rbe-Linux steht z.B. für den Hostnamen des Systems, Have a lot of Fun... hingegen ist eine Willkommensmeldung für den Benutzer (Message of the Day). Diese Nachricht ist anpassbar, dazu später aber mehr.
Die Zeile
norbert@rbe-linux:~>
besagt, dass der Benutzer norbert sich am System rbe-linux angemeldet hat. Interessant ist vor allem das Tilde-Zeichen "~". Hierbei sollte man sich zunächst einen Blick über die Verzeichnisstruktur von Linux verschafft haben. Das Zeichen "~" ist ein so genannter Platzhalter, also eine Abkürzung, für das Homeverzeichnis des Benutzers. Das Homeverzeichnis eines Benutzers kann man dabei als den Arbeitsbereich innerhalb des Systems ansehen. Normale Benutzer (also nicht Systemadministratoren) haben hier ihre Spielwiese und können ihre Dokumente, Dateien usw in diesem Verzeichnis ablegen.
Anmelden mit einem grafischen Programm
Im obigen Beispiel hat sich Norbert an TTY1 angemeldet. Wie eingangs erwähnt ist es aber natürlich auch möglich z.B. per KDE Konsole auf die Shell zuzugreifen. Dazu muss man ein Konsolenfenster öffnen. Das geschieht wahlweise durch das direkte Aufrufen per Tastenkürzel ALT F2 und dem zugehörigen Befehl konsole, oder direkt aus dem KDE-Menü heraus. Bei openSUSE ist die KDE Konsole unter Anwendungen -> System -> Terminals -> Terminal-Programm (Konsole) zu finden.
Anders als beim TTY1 wird man auf der KDE-Konsole direkt als Benutzer angemeldet. Das liegt daran, dass man sich bereits beim Start der grafischen Oberfläche als Benutzer am System angemeldet hat. Die KDE-Konsole vermutet also, dass man sich direkt als entsprechender Benutzer anmelden möchte. Auch die KDE-Konsole liefert dann auch analog zum TTY1 die Ausgabe:
norbert@rbe-linux:~>
Steuerung der Shell durch Eingabebefehle
Nachdem man sich angemeldet hat, kann man auf der Shell arbeiten. Das System wird dabei durch einzelne, kleine Befehle, die man auf der Kommandozeile eingibt, bedient. Diese Befehle sind in Wirklichkeit Programme, mit denen man gewisse Aufgaben erfüllen kann. Meistens sind diese Befehle Abkürzungen ihrer eigentlichen Bedeutung. Damit man auf der Shell zurecht kommt, muss man zumindest ein paar dieser Befehle kennen.
Grundlegende Shell-Befehle
Achtung: Viele Befehle unterliegen einer gewissen syntaktischen Norm. Sie können z.B. Eingabeparameter als Optionen verarbeiten. Die Korrekte Einhaltung der syntaktischen Bedingungs- / Optionsreihenreihenfolge ist wichtig. Die Synkatische Normalform sei daher hier stets angegeben. |
pwd - Print working Directory
Syntaktische Normalform: pwd [OPTION] |
Oben wurde bereits erwähnt, dass das Zeichen "~" stellvertretend für den Pfad des Homeverzeichnisses steht. Wie aber lautet denn nun der genaue Pfad zum Homeverzeichnis? Das können wir mit dem Befehl
pwd
herausfinden. Die Abkürzung pwd steht für Print working Directory. Als Ausgabe dieses Befehls erhält man stets die absolute Pfadangabe zum Verzeichnis, in dem man sich auf der Shell befindet. In diesem Beispiel probieren wir einmal aus, wie die absolute Pfadangabe zum Verzeichnis "~" von Norbert lautet.
norbert@rbe-linux:~> pwd /home/norbert norbert@rbe-linux:~>
Norberts Homeverzeichnis ist also /home/norbert/.
cd - Change Directory
Syntaktische Normalform: cd [-L | -P] [directory] |
Natürlich muss man auch auf der Shell, wie z.B. im Konqueror, durch Verzeichnisse navigieren könnieren. Mit dem cd-Befehl (Change Directory) kann man das sich beliebig durch das System bewegen.
- In ein Verzeichnis wechseln
Ein Verzeicihnis namens Urlaubsfotos im Homeverzeichnis von Norbert sei gegeben. Mit
cd /home/norbert/Urlaubsfotos/
gelangt man in das Verzeichnis (Wichtig: Groß- und Kleinschriebung beachten).
- Eine Ebene tiefer in der Verzeichnisstruktur wandern
Im Verzeichnis befinden sich zusätzlich noch weitere Unterverzeichnisse. Norbert hat weitere Urlaubsbilder im Ordner "Mallorca".
Nun könnte man natürliches wieder mit
cd /home/norbert/Urlaubsfotos/Mallorca/
ins entsprechende Verzeichnis wechseln. Da man sich aber breits in im ordner Urlaubsfotos befindet könnte man sich viel Tipparbeit sparen, indem man direkt in das Verzeichnis springt.
cd Mallorca
- Eine Ebene höher in der Verzeichnisstruktur wandern
Norbert hat sich nun an seinen Mallorcabildern sattgesehen und möchte zurück in seine Urlaubsfotos, also in das vorherige Verzeichnis, wandern. Auch hier kann man sich wieder Tipparbeit sparen und muss nicht wieder
cd /home/norbert/Urlaubsfotos/
verwenden. Stattdessen kann man mit einer "relativen" Pfadangabe arbeiten. Mit Hilfe von
cd ..
kann dies erreicht werden. Die beiden Punkte stellen hierbei wieder einen Platzhalter dar. Dieser Platzhalter ist dabei stets ein Verweis auf das übergeordnete Verzeichnis in dem man sich befindet.
Noch ein Beispiel: Von Norberts Homeverzeichnis eine Ebene höher wandern:
norbert@rbe-linux:~> cd .. norbert@rbe-linux:/home>
Wie man sieht befindet man sich anschließend in /home, also das erzeichnis indem standardmäßig alle Benutzerverzeichnisse enthalten sind.
- Direkt ins Homeverzeichnis des angemeldeten Benutzers springen
Möchte man direkt ins Homeverzeichnis springen so kann man dies durch
cd ~
oder einfach nur
cd
erreichen.
- Direkt ins Wurzel-/Root-Verzeichnis springen
Um in das Root-Verzeichnis des Systems zu gelangen muss man
cd /
eingeben.
- Ins vorherige Verzeichnis springen
In das vorherige Verzeichnis kann man mit
cd -
gelangen.
Anmerkung: |
Hinweise zu relativer/absoluter Adressierung
Absolute Pfade beinhalten den kompletten Pfadnamen zum jeweiligen Ziel. Ein Beispiel für absolute Adressierung: /etc/X11/xorg.conf Ein Absoluter Pfad beginnt also immer bei der Wurzel des Dateisystemes!
Relative Pfade sind äußerst flexibel in der Handhabung. Durch die relativen Pfadangaben kann man viel Tipparbeit sparen. Aber das ist nicht der einzige Vorteil. Sie werden in verschiedensten Anwendungsfällen verwendet, z.B. auch bei der Entwicklung von Programmen / Webseiten / Shellscripts. Beispiel für eine relative Adresspfad: norbert@rbe-linux:~/Urlaubsfotos> cd ../Dokumente/Korrespondenztexte/ norbert@rbe-linux:~/Dokumente/Korrespondenztexte> Aus dem Ordner Urlaubsfotos ist man also über eine relative Pfadangabe in die Korrespondenztexte gesprungen. |
ls - List Directory Contents
Syntaktische Normalform:ls [OPTION]... [FILE]... |
- Normale Auflistung eines Verzeichnisses
Um sich den Inhalt eines Verzeichnisses auflisten zu lassen kann man den ls-Befehl verwenden. Beispiel:
norbert@rbe-linux:/> pwd / norbert@rbe-linux:/> ls bin boot data2 dev etc home lib lost+found media mnt opt proc root sbin srv sys tmp usr var norbert@rbe-linux:/>
Hier wird der Inhalt des Wurzelverzeichnisses ausgegeben.
- Versteckte Dateien mit anzeigen lassen
Um sich versteckte Dateien ausgeben zu lassen, muss man einen Optionsparameter von ls verwenden. Mir der Option "-a" (alle anzeigen) kann man zur gewünschten Ausgabe gelangen.
Hinweis: Versteckte Dateien beginnen unter Linux mit einem "." . Anders als unter Windows sind versteckte Dateien also nicht mit einem Dateiattribut versehen. |
norbert@rbe-linux:~> ls Dokumente Urlaubsfotos norbert@rbe-linux:~> ls -a . .. Dokumente Urlaubsfotos .Versteckte-Datei norbert@rbe-linux:~>
Zusätzlich werden die beiden relativen Adressen "." und ".." mit ausgegeben.
- Detaillierte Auflistung erzwingen
Der Informationsgehalt der normalen Ausgabe von ls ist äußerst dürftig. Man erfährt nichts darüber, wem die Datei gehört, wann sie erstellt wurde und wie groß sie ist. Mehr Informationen kann man mit der Option "-l" (list) in Erfahrung bringen.
norbert@rbe-linux:/> ls -l insgesamt 108 drwxr-xr-x 2 root root 4096 25. Mai 16:36 bin drwxr-xr-x 3 root root 4096 4. Mai 11:02 boot drwxr-xr-x 2 root root 4096 14. Jan 19:05 data2 drwxr-xr-x 11 root root 7400 12. Jul 15:51 dev drwxr-xr-x 94 root root 12288 12. Jul 11:31 etc drwxr-xr-x 5 root root 4096 12. Jul 14:02 home drwxr-xr-x 12 root root 4096 16. Mai 20:38 lib drwx------ 2 root root 16384 7. Dez 2006 lost+found drwxr-xr-x 9 root root 4096 12. Jul 11:31 media drwxr-xr-x 2 root root 4096 10. Mai 22:50 mnt drwxr-xr-x 4 root root 4096 7. Dez 2006 opt dr-xr-xr-x 135 root root 0 12. Jul 13:30 proc drwx------ 24 root root 4096 12. Jul 12:59 root drwxr-xr-x 3 root root 12288 4. Mai 10:49 sbin drwxr-xr-x 4 root root 4096 7. Dez 2006 srv drwxr-xr-x 11 root root 0 12. Jul 13:30 sys drwxrwxrwt 29 root root 20480 12. Jul 18:00 tmp drwxr-xr-x 14 root root 4096 11. Mär 17:33 usr drwxr-xr-x 15 root root 4096 11. Mär 17:33 var norbert@rbe-linux:/>
Wie man sieht, ist der Informationsgehalt deutlich höher als mit der Standardausgabe, aber auf dem ersten Blick wahrscheinlich auch verwirrender. Zur verdeutlichung picken wir uns einfach mal eine Zeile heraus und analysieren die einzelnen Abschnitte.
drwxr-xr-x 5 root root 4096 12. Jul 14:02 home
man - Manual / Programm zum Einsehen der Online-Manuale
Shell - Eine Einführung: 1. Grundlagen - 2. Erste Schritte (1) - 3. Erste Schritte (2) - 4. Fortgeschritten - 5. Reguläre Ausdrücke - 6. Skripting |