History von Befehlen bei unterschiedlichen Usern

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Kai-Behncke
Beiträge: 183
Registriert: 10.12.2006 13:20:40
Wohnort: Osnabrück

History von Befehlen bei unterschiedlichen Usern

Beitrag von Kai-Behncke » 05.04.2009 12:42:05

Hallo liebes Forum,

ich frage mich folgendes: Wenn ich als root auf der Kommandozeile arbeite, dann kann ich ja mittels der Pfeil-Tasten auch zu vorhergegangenen Befehlen wechseln.

Wenn ich mich dann aber als ein anderer User einlogge, dann z.B. als user1 arbeite und mich dann wieder als root einlogge, dann sind die Bfehle, welche ich als root ausgeführt habe nicht mehr aufzufinden.

Gibt es eine Lösung, dass ich nach einem umloggen und einem erneuten Login vorhergegangene Befehle wieder aufrufen kann?


Und eine zweite Frage: Ich habe gehört es gibt auf Kommandozeile eine Möglichkeit, dass man Befehle nur "halb" eingeben braucht und diese sich "selbst vervollständigen".

Konkret:

Ich habe einen recht langen Befehl wie z.B.

Code: Alles auswählen

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start
....und möchte nun, dass ich z.B. nur eingeben muss

Code: Alles auswählen

/usr/local/pgsql/bin/pg_ctl -D
und ich dann z.B. mittels Tab-Taste (oder einer anderen) den Befehl vervollständigen kann (quasi aus der History).
Kennt jemand dafür eine Lösung?

Danke! Kai

Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

Re: History von Befehlen bei unterschiedlichen Usern

Beitrag von SubOptimal » 05.04.2009 13:41:28

Hi,
Kai-Behncke hat geschrieben:ich frage mich folgendes: Wenn ich als root auf der Kommandozeile arbeite, dann kann ich ja mittels der Pfeil-Tasten auch zu vorhergegangenen Befehlen wechseln.
Wenn ich mich dann aber als ein anderer User einlogge, dann z.B. als user1 arbeite und mich dann wieder als root einlogge, dann sind die Bfehle, welche ich als root ausgeführt habe nicht mehr aufzufinden.
Gibt es eine Lösung, dass ich nach einem umloggen und einem erneuten Login vorhergegangene Befehle wieder aufrufen kann?
Ich würde das als nicht standardmäßiges Verhalten bezeichnen und vermute, dass Deine Shell die History beim logout (oder login) eventuell löscht. Schau mal in den entsprechenden Dateien Deiner Shell nach. Bei der Bash wären mögliche Kandidaten im Homeverzeichnis vom user root, die Dateien .bash_login, .bashrc und .bash_logout. Da es sich um "versteckte" Dateien handelt muss Du eventuell Deinen Dateibrowser so konfigurieren, dass er Dateien mit dieser Eigenschaft anzeigen soll
Und eine zweite Frage: Ich habe gehört es gibt auf Kommandozeile eine Möglichkeit, dass man Befehle nur "halb" eingeben braucht und diese sich "selbst vervollständigen".

Ich habe einen recht langen Befehl wie z.B.

Code: Alles auswählen

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start
....und möchte nun, dass ich z.B. nur eingeben muss

Code: Alles auswählen

/usr/local/pgsql/bin/pg_ctl -D
und ich dann z.B. mittels Tab-Taste (oder einer anderen) den Befehl vervollständigen kann (quasi aus der History).
Kennt jemand dafür eine Lösung?
In der Bash geht folgendes:

Code: Alles auswählen

# erste Ausführung eines Kommandos, danach befindest sich das Kommando in der History
cat wichtige_textinfo

# danach kannst Du eine Reihe andere Kommandos eingegeben haben
...

# willst Du obige Kommando nochmal ausführen aber nicht nochmal komplett eingeben
# CTRL-R drücken und dann anfangen das Kommando einzugeben, dass sieht dann ungefähr so aus
(reverse-i-search)`wi': cat wichtige_textinfo

# wird das geünschte Kommando angezeigt, dann kannst Du es mit ENTER sofort ausführen
# wird ein ähnliches angezeigt, bei dem Du z.B. nur einen Option ändern willst, dann Cursortaste nach-links oder 
# nach-rechts drücken,dann kannst Du das Kommando noch bearbeiten
SubOptimal

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: History von Befehlen bei unterschiedlichen Usern

Beitrag von GoKi » 05.04.2009 13:49:32

Kai-Behncke hat geschrieben:und ich dann z.B. mittels Tab-Taste (oder einer anderen) den Befehl vervollständigen kann (quasi aus der History).
Kennt jemand dafür eine Lösung?
Du kannst dafür auch über die inputrc eine Einstellung vornehmen, um mittels Bild-hoch/runter nach dem bisher getippten Anfang eines Befehls zu suchen. Das erwähnte Strg-R sucht allgemein nach dem String, egal an welcher Position.
In der /etc/inputrc ist folgendes auskommentiert vorhanden:

Code: Alles auswählen

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward
ändern in

Code: Alles auswählen

# alternate mappings for "page up" and "page down" to search the history
"\e[5~": history-search-backward
"\e[6~": history-search-forward
oder in die ~/.inputrc übernehmen, wenn Du es nur für einige User einstellen willst.
MfG GoKi
:wq

Kai-Behncke
Beiträge: 183
Registriert: 10.12.2006 13:20:40
Wohnort: Osnabrück

Re: History von Befehlen bei unterschiedlichen Usern

Beitrag von Kai-Behncke » 05.04.2009 14:53:05

Vielen Dank für die Hinweise, das werde ich einmal ausprobieren.

Methusalix

Re: History von Befehlen bei unterschiedlichen Usern

Beitrag von Methusalix » 06.04.2009 02:20:27

Hallo,
Ich habe einen recht langen Befehl wie z.B...
Da geht es wohl um den Start von PostgreSQL?
Wenn Du das nicht über die üblichen Start/Stop Skripte regeln willst,
dann würde ich das über einen alias regeln, da sich der Pfad ja
nicht ändern wird.

Code: Alles auswählen

Kürzel="Hier steht der Befehl"
Näheres dazu z.b. was die bash angeht: man bash

Gruß Matthias

Antworten