Die wichtigsten Shell-Kommandos

Die vorliegende Seite beinhaltet eine Sammlung der am häufigsten genutzten Shell-Kommandos und deren Handhabung. Sie wird im Laufe der Zeit an Umfang gewinnen.

Wo bin ich - Navigationskommandos

Da haben wir es nun! Ohne Kommandozeile kamen wir nicht weiter und nun blinkt uns unaufhaltsam ein fröhliches kleines Viereck an und wartet darauf, Buchstaben für uns zu malen. Alles, was wir wissen ist, dass wir uns irgendwo hin bewegen sollen, um irgendetwas zu tun. Aber wie? Und wo wir schon dabei sein, wo befinden wir uns gerade?

Ausgeben des aktuellen Verzeichnisses

Der Befehl um das Verzeichnis heraus zu bekommen in dem gerade unsere Konsole arbeitet, lautet pwd, was für print working directory steht. Nach dem Öffnen der Konsole befindet man sich im Allgemeinen in seinem home-Verzeichnis.

$ pwd
/home/meinUser/

Let's go! - Wandern durch die Verzeichnisse

Jetzt wollen wir eeendlich in unser Zielverzeichnis wechseln. Wir wollen in das tmp-Verzeichnis unseres home-Verzeichnisses wechseln. Hierzu nutzen wir den Befehl cd. Dies ist die Abkürzung für change directory.

$ cd tmp 
$ pwd 
/home/meinUser/tmp/

Der Befehl kann auch noch anderweitig genutzt werden. Nehmen wir an, wir sollen uns die Datei /var/log/syslog genauer ansehen. Diesen Pfad können wir direkt angeben:

$ cd /var/log
$ pwd
/var/log/

Vielleicht möchten wir auch nur ein Verzeichnis weiter nach oben, dann nutzen wir den Parameter ...

$ cd ..
$ pwd
/var/

Und jetzt müssen wir dringend wieder nach hause. Das Heimverzeichnis können wir via Tilde ~ direkt erreichen.

$ cd ~
$ pwd  
/home/meinUser/

Natürlich kann man auch direkt in einen Pfad unterhalb seines Heimverzeichnisses springen, man muss ihn einfach nur anhängen.

$ cd ~/tmp
$ pwd
/home/meinUser/tmp/

Übrigens, wem das Tippen zu viel ist, die mit am häufigsten genutzte Shell, bash, besitzt eine Autovervollständigung. Man braucht nur einige Buchstaben zu tippen und dann die TAB-Taste zu betätigen. Der Begriff wird automatisch vervollständigt. Passiert nichts, drückt man TAB noch einmal und bekommt die möglichen Alternativen mit den entsprechenden Anfangsbuchstaben angeboten. Man muss dann nur noch bis Zur Eindeutigkeit seines Befehls weiter tippen und erneut TAB betätigen.

Was haben wir denn da? - Verzeichnisse auslesen

Nun, da wir an Ort und Stelle sind, wollen wir uns dann auch ein wenig umsehen. Hierzu dient der Befehl ls. Auch hier handelt es sich wieder um eine Abkürzung. In diesem Falle steht es für list segments. Schauen wir uns mal unser Heimverzeichnis an.

$ cd ~
$ ls
autosave    bin    data
Desktop     tmp
$

In einigen Shells wird das auch noch schön bunt dargestellt, um Dateien von Verzeichnissen und Links zu unterscheiden.

Ist das alles? Nein! Im Linux-Verzeichnissystem gibt es so genannte versteckte Dateien. Diese beginnen mit einem Punkt '.'. Möchte man diese auch sehen, gibt man ls den Parameter -a mit.

$ ls -a
.            .config    .gnome
..           data       .kde
.aptitude    Desktop    tmp

Natürlich variiert das von Nutzer zu Nutzer etwas. Vielleicht möchte man aber auch noch einige mehr Informationen zu den Dateien haben. Hierzu erweitern wir den Befehl um den Parameter -l.

$ ls -la
drwx------  2 meinUser meineGrp    4096 26. Mai 08:36 .aptitude
drwxr-xr-x  2 meinUser meineGrp    4096 27. Mär 12:18 autosave
..
-rw-r--r--  1 meinUser meineGrp      87  1. Mai 22:15 spi.txt

Als erstes bekommen wir eine Auskunft über die Zugriffsrechte, die auf der Datei lasten, dann kommt die Anzahl der hard links auf die Datei, anschließend der Besitzer der Datei und die Benutzergruppe, für die diese Datei erstellt wurde. Nun kommen Noch die Dateigröße, das letzte Änderungsdatum und zu guter Letzt, der Dateiname.

Es gibt noch etliche weitere Parameter für ls, dies waren nur die wichtigsten. Man kann übrigens auch Verzeichnisse auslesen, ohne sich erst mittels cd dort hin zu bewegen.

$ ls -a /tmp
.                .ICE-unix         orbit-meinUser           .X0-lock
..               keyring-DCUOTF    seahorse-kESVz2          .X11-unix
gconfd-meinUser  mapping-meinUser  virtual-meinUser.Kn60Wr

Aliase

In Linux gibt es eine Möglichkeit „eigene“ Kommandos zu definieren. Angenommen man verwendet sehr oft oder immer anstelle von ls eben ls -la oder ls -a. Das jedes Mal auszuschreiben ist doch recht nervig und auch unnötig, denn man kann eben ein Alias definieren:

$ ls -l
insgesamt 32
drwx------ 2 heinrich heinrich 4096 2009-06-06 11:45 keyring-beAGoW
drwx------ 2 heinrich heinrich 4096 2009-06-06 13:06 orbit-heinrich
drwx------ 2 heinrich heinrich 4096 2009-06-06 12:44 plugtmp
drwx------ 2 root     root     4096 2009-06-06 11:45 pulse-PKdhtXMmr18n
drwx------ 2 heinrich heinrich 4096 2009-06-06 11:45 pulse-Z8evpu5Cah9K
drwx------ 2 heinrich heinrich 4096 2009-06-06 11:45 seahorse-n5oAx5
drwx------ 2 heinrich heinrich 4096 2009-06-06 11:45 ssh-wKpwrQ3070
drwx------ 2 heinrich heinrich 4096 2009-06-06 11:45 virtual-heinrich.28VTGs

Jetzt definieren wird einen Alias:

$ alias ll="ls -l"

Und wenn wir dann ll eingeben, passiert das hier:

$ alias ll="ls -l"
insgesamt 32
drwx------ 2 heinrich heinrich 4096 2009-06-06 11:45 keyring-beAGoW
drwx------ 2 heinrich heinrich 4096 2009-06-06 13:06 orbit-heinrich
drwx------ 2 heinrich heinrich 4096 2009-06-06 12:44 plugtmp
drwx------ 2 root     root     4096 2009-06-06 11:45 pulse-PKdhtXMmr18n
drwx------ 2 heinrich heinrich 4096 2009-06-06 11:45 pulse-Z8evpu5Cah9K
drwx------ 2 heinrich heinrich 4096 2009-06-06 11:45 seahorse-n5oAx5
drwx------ 2 heinrich heinrich 4096 2009-06-06 11:45 ssh-wKpwrQ3070
drwx------ 2 heinrich heinrich 4096 2009-06-06 11:45 virtual-heinrich.28VTGs

Jetzt kommt natürlich die Frage „kann man die Definition irgendwie festmachen?“ Ja sicherlich doch. Dazu dient die Datei .profile im Home-Verzeichnis des Users. Man fügt das Kommando alias ll=„ls -l“ in diese Datei ein und fertig:

$ cd (so kommt man direkt in sein Home-Verzeichnis)
$ vi .profile (im VI Datei .profile öffnen)

Dann im VI: :$ <ENTER> (ans Ende der Datei springen) $ <ENTER> (ans Ende der Zeile springen) a <ENTER> (für anhängen/append) <ENTER> (wir brauchen eine neue Zeile) alias „ls -l“ (das tippen wir so ein) <ESC> (Editierungsmodus verlassen) :wq <ENTER> (speichern und schliessen)

Dann logt man sich entweder aus und wieder ein oder man gibt einfach:

$ source .profile

ein und so wird die „Konfig-Datei“ neueingelesen.

linux/shellkommandos.txt · Zuletzt geändert: 2009/09/18 15:03 von 212.6.91.101
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki