Under Construction

Befehle erneut ausführen "fc -s"

Für den Fall das zurückliegende Kommandos ohne Änderung, oder nur mit kleinen Änderungen, erneut ausgeführt werden sollen, bietet das fc Kommando noch eine schnellere Möglichkeit. Anstelle das Kommando erst in einen Editor zu laden, um es dann auszuführen, kann es auch direkt erneut ausgeführt werden. Kleinere Änderungen (Ersetzung einer Zeichenkette durch eine andere Zeichenkette) sind dabei sehr leicht möglich. Dazu kann fc mit der Option „-s“ (substitute) aufgerufen werden. Eine oder mehrere Ersetzungen können in Form von „old=new“ als Argument angegeben werden. Dabei ist old die zu ersetzende Zeichenkette und new die Ersatzzeichenkette.

Nehmen wir an es wurde das folgende ls-Kommando eingegeben:

[user01@aixe01 ~]$ ls -ld /usr/bin
drwxr-xr-x    4 bin      bin           53248 Apr 21 08:41 /usr/bin/
[user01@aixe01 ~]$

Unmittelbar nach diesem Kommando sollen die Informationen zum Verzeichnis /usr/adm aufgelistet werden. Hierzu müsste lediglich die Zeichenkette „bin“ durch die Zeichenkette „adm“ im letzten Kommando ersetzt werden, also „bin=adm“:

[user01@aixe01 ~]$ fc -s bin=adm
ls -ld /usr/adm
lrwxrwxrwx    1 root     adm               8 Mar 24 14:41 /usr/adm@ -> /var/adm/
[user01@aixe01 ~]$

Ist kein Kommando angegeben, bezieht sich „fc –s“ auf das letzte Kommando. Man kann aber wie gehabt auch ein Kommando über die Nummer des Kommandos oder auch in Form einer Zeichenkette angegeben. Als Beispiel gehen wir von der folgenden History aus:

[user01@aixe01 ~]$ history
    1  myscript stop
    2  pwd
    3  hostname
    4  ls -ld /usr/bin
    5  ls -ld /usr/adm
[user01@aixe01 ~]$

Das Kommando mit der Nummer 1 soll erneut ausgeführt werden, wobei allerdings anstelle des Arguments „stop“ das Argument „start“ verwendet werden soll. Das Kommando kann entweder über die Nummer (hier 1) oder die Zeichenkette „myscript“ oder auch kürzer „my“ (oder auch nur „m“) ausgewählt werden. Das Argument „stop“ kann durch „start“ ersetzt werden, indem z.B. die Ersetzung „op=art“ verwendet wird:

[user01@aixe01 ~]$ fc -s op=art my
myscript start
start
[user01@aixe01 ~]$

Um nicht immer „fc –s“ tippen zu müssen (das sind 5 Zeichen) definieren viele Benutzer der bash den folgenden Alias:

alias r=“fc –s“

Hinweis: Hierbei soll „r“ für re-execute stehen.

Damit lässt sich z.B. das letzte Kommando erneut ausführen, indem man einfach nur „r“ ohne Argumente verwendet.

Das Kommando „fc –s“ unterstützt auch mehrfache Ersetzungen, wie das folgende Beispiel zeigt: Es soll mittels echo die Zeichenkette „hello world“ ausgegeben werden. Aufgrund zweier Tippfehler ist folgendes dabei herausgekommen:

[user01@aixe01 ~]$ echo hallo wurld
hallo wurld
[user01@aixe01 ~]$

Im ersten Argument müsste „hallo“ durch „hello“ ersetzt werden („a=e“) und im zweiten Argument müsste „wurld“ durch „world“ ersetzt werden („u=o“). Das lässt sich leicht mit dem folgenden Kommando erreichen:

[user01@aixe01 ~]$ r a=e u=o
echo hello world
hello world
[user01@aixe01 ~]$

Hinweis: Es werden immer alle Vorkommen der spezifizierten Zeichenketten ersetzt!

Die Syntax von „fc –s“ ist definitiv einfacher als die Syntax bei den früher vorgestellten History Erweiterungen. Allerdings sind die Möglichkeiten auch nicht so umfangreich.