# zsh - "command not found" abfangen

## doedel

Hi Leute,

ich habe hier am Rechner eine ssh-config file, welche mir IPs, lange Hostnamen usw vereinfacht, den User-Namen erspart, ...

Wenn ich nun ssh abc tippe, lande ich direkt als User XY auf dem Server, auf den abc in der Config zeigt, authentifiziert über Keyfiles.

Um das ganze jetzt noch weiter zu "vereinfachen", ich möchte nur noch abc tippen.

Kann man bzw wie kann man, das abc anfangen, wenn es das nicht als Command gibt? Ich möchte die eingegebene Zeile dann mit meiner ssh-config vergleichen und wenn dort die Zeile als Hostname zu finden ist, soll er "ssh abc" ausführen.

Toll wäre in dem Zug dann auch noch usernamen-Änderung, also z.b. nur noch root@abc tippen oder so.

Das Script dazu schreiben bekomme ich hin, dabei brauch ich keine Hilfe, ich muss nur irgendwie rausfinden wie ich das "command not found" abfangen kann oder ob's da noch eine andere Möglichkeit gibt.

----------

## fuchur

Hi

 *doedel wrote:*   

> Hi Leute,
> 
> ich habe hier am Rechner eine ssh-config file, welche mir IPs, lange Hostnamen usw vereinfacht, den User-Namen erspart, ...
> 
> Wenn ich nun ssh abc tippe, lande ich direkt als User XY auf dem Server, auf den abc in der Config zeigt, authentifiziert über Keyfiles.
> ...

 

Hoffe ich habe alles richtig verstanden. Was wäre den mit einer alias in /etc/profile oder in ~/.zshrc oder wird das von der zsh 

nicht abgearbeitet. Bei der bash funktioniert z.B die Zeile in /etc/profile 

```
alias abc="ssh root@sever.com"
```

MfG

----------

## papahuhn

command_not_found_handler.

----------

## doedel

Ich will nicht jedes mal ein Alias anlegen.

Wenn ein "command not found" auftritt, soll er schauen ob ssh möglich ist, wenn ja, dann tus, wenn nein, dann Fehler.

Der Command Not Found Handler ist genau das was ich suche  :Smile: 

Danke euch beiden! Das Ergebnis kommt die Tage, sobald ich dazu komme, das zu schreiben  :Smile: 

----------

## bell

Command not found Daemon, nach Lennards Art  :Wink: 

----------

## cryptosteve

Lennart? (Poettering?) Oder wen meinst Du jetzt - und was überhaupt genau? ;D

----------

## franzf

 *cryptosteve wrote:*   

> Lennart? (Poettering?) Oder wen meinst Du jetzt - und was überhaupt genau? ;D

 

Ich weiß nicht ob der smiley am Ende implizit ein "i know and agree and it's funny" darstellen soll, drum meine Interpretation:

Lennarts (ja, Poettering) Lösung zu so ziemlich jedem Problem ist ein neuer daemon. Egal wie sinnig das auf den zweiten Blick auch ist.

----------

## mv

Der "Command-not-found"-Weg ist nicht nur ineffizient, sondern hat auch den Nachteil, dass Du dann keine sinnvolle Zeilenvervollständigung bekommst. Ich würde den Alias-Weg vorziehen, den Du ja automatisieren kannst: Du schreibst Dir einfach in "skript", das die entsprechenden aliase zur Laufzeit erstellt - damit bekommst Du dann sogar die richtige Ergänzung der verfügbaren Namen (sowie natürlich ohnehin der Kommandos, die danach kommen), und mit Dingen wie zsh-syntax-highlighting kannst Du den Alias farblich markieren. Wenn dadurch der Shell-Start nervig lange dauert, kannst Du das skript notfalls immer noch an ein erstmaliges command-not-found koppeln.

----------

