Basics

Ein Shellbefehl besteht allgemein aus bis zu 3 Teilen. Dem aufzurufenden Kommando (ein Shell-interner Befehl, eine ausführbare Datei oder ein Skript), den Optionen und Argumenten. Optionen werden üblicherweise als Einzelbuchstabe mit einem „-“ voran verwendet oder als ausgeschriebenes Wort mit dem Prefix „–„. Sie sagen einem Programm, wie es sich verhalten soll. Argumente hingegen teilen einem Programm mit, was es verarbeiten soll.

rpm -i httpd
  • Programm: rpm
  • Option: „-i“ Anweisung, ein Paket zu installieren
  • Argument: „httpd“ das Paket httpd soll installiert werden1

Variablen

Generell wird zwischen Umgebungsvariablen und Shellvariablen unterschieden. Umgebungsvariablen sind in jeder Shell eines Benutzers gültig und werden an Subshells weitergegeben. Shellvariablen sind nur in der Shell verwendbar, in der sie deklariert wurden.

 Konfigurationsdateien für die Vorgabe von Variablen

Für Benutzer sind bereits nach der Anmeldung verschiedene Variablen definiert. Dies geschieht durch eine Reihe von Konfigurationsdateien in folgender Reihenfolge:

PfadInhaltScopeWird geladen bei
/etc/profileenthält Umgebungsvariablen und die erste Definition derPATH-Variablefür alle BenutzerAnmeldung
~/.bash_profileZusätzliche Pfade (z.b. zum homedir), den zu verwendenden Editor und weitere benutzerspezifische Variablenje BenutzerAnmeldung
~/.bash_loginWird nur geladen, wenn ~/.bash_profile nicht existiert. Hat gleichen Inhalt.je BenutzerAnmeldung
~/.profileWird nur geladen, wenn weder ~/.bash_profile noch ~/.bash_login existiert. Hat gleichen Inhaltje BenutzerAnmeldung
~/.bashrcEnthält Aliase und Funktionen.je Benutzerbeim öffnen einer neuen Shell
/etc/bashrcSystemweite Einstellungen, Aliase und Funktionen. Kann von der .bashrc eines Benutzers geladen werdenfür alle Benutzerbeim öffnen einer neuen Shell

 Nützliche Befehle

  Auflisten aller Umgebungsvariablen

[email protected] ~ # env
TERM=xterm
SHELL=/bin/bash
HISTSIZE=99999999
SSH_TTY=/dev/pts/0
HISTFILESIZE=99999999
USER=root
MAIL=/var/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/root
EDITOR=vim
LANG=en_US.UTF-8
...

  Definition einer Shellvariablen

[email protected] ~ # TEST=/usr/bin/test
[email protected] ~ # echo $TEST
/usr/bin/test

  Definition einer Umgebungsvariablen

Durch „export“ wird die Variable direkt bei der Deklaration als Umgebungsvariable exportiert. Sie ist auch in einer neu aufgerufenen Subshell verfügbar.

[email protected] ~ # export TEST=/usr/bin/test
[email protected] ~ # bash
[email protected]:~# echo $TEST
/usr/bin/test

 Interessante Variablen

  $HISTSIZE

Definiert die Anzahl an Einträgen, die in der Befehlshistorie vorgehalten werden sollen

  $PS1

Definiert das Aussehen und Format des Shell-Promts. Neben einigen Farbanweisungen wird vorgegeben, dass der Promt erst den Benutzer, dann den Hostnamen und abschließend den aktuellen Pfad beinhalten soll.

[email protected] ~ # echo $PS1
\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\]

  $?

Enthält den Rückgabewert oder auch Exit-Code der letzten ausgeführten Anwendung. Ein Rückgabewert von 0 bedeutet, dass das Programm ordnungsgemäß und ohne Fehler beendet wurde. Alles andere signalisiert einen Fehler.

[email protected]~ # touch test.txt
[email protected] ~ # echo $?
0
[email protected] ~ # rm test.txt
[email protected] ~ # echo $?
0
[email protected] ~ # rm test.txt
rm: cannot remove `test.txt': No such file or directory
[email protected] ~ # echo $?
1

  $1/$2/…

Diese Variablen enthalten die Parameter, die einer Anwendung beim Aufruf übergeben werden und werden von diesem ausgewertet.

Bash History

Die Bash History speichert zuletzt aufgerufene Befehle. Sie wird für die Tab-completion herangezogen, die Eingaben durch das Drücken der „TAB“ Taste vervollständigt, wenn sie bereits eindeutig sind.

 Nützliche Befehle

  Letzten Befehl erneut ausführen

! ! (ohne Leerzeichen)

  Bestimmten Befehl erneut ausführen

!n (n= Zeilennummer aus history)

Manpages

Ein recht einfach zu bedienendes Hilfesystem, welches Informationen zu den meisten Komponenten des Systems liefert. Anwendungen können bei der Installation ihre eigenen Manpages ablegen, sodass das System erweiterbar ist und sich dessen Umfang nach den Installierten Anwendungen richtet. Mit dem Programm „man“ können Manpages betrachtet werden.

Welche Pfade für die Suche nach Manpages verwendet werden, sieht man nach Eingabe von manpath:

[email protected] ~ $ manpath
/usr/local/share/man:/usr/share/man/de:/usr/share/man/overrides:/usr/share/man

 Die Sektionen des Man-Systems

 

 

 

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden .