iptables: bash "complete" goes Cisco IOS?

Gemeinsam ins Internet mit Firewall und Proxy.
Antworten
MrScoville
Beiträge: 93
Registriert: 09.09.2016 17:20:59
Lizenz eigener Beiträge: MIT Lizenz

iptables: bash "complete" goes Cisco IOS?

Beitrag von MrScoville » 19.10.2016 21:55:27

Hallo,

ich bin ja so ein Old-Schooler und liebe die TAB-Ergänzung und bin alt und will mir nicht alle möglichen Optionen von iptables merken...

Hat schon wer mal ein Script geschrieben, dass die bash-Ergänzung so erweitert, dass der iptables Befehl sich in etwa so benimmt wie das gute, alte Cisco IOS 12? Plus halt immer TAB.

Was ich meine, ist: ich tippe in der bash "iptables" und [TAB]. Noch einmal [TAB], und alle verfügbaren Optionen aber nur für iptables erscheinen. Ich tippe das Allernögiste, drücke wieder [TAB] usw usw.

Falls es sowas fertig noch nicht gibt: Groß mit complete habe ich mich noch nicht befasst. Wenn wer einen Link auf eine LESbare Seite hat und ned auf irgendwelche Videos...? Dankeschön!

Carsten
Man mag gar nicht glauben, wie sehr ein 4096-bittiger RSA-Schlüssel einem den Tag vermiesen kann...^^

Der so genannte "Teufel im Detail" hat einen Namen: Tight coupling :evil:

Benutzeravatar
smutbert
Beiträge: 8342
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: iptables: bash "complete" goes Cisco IOS?

Beitrag von smutbert » 19.10.2016 22:25:49

Debianfish war das glaube ich, was die Optionen aus den manpages holt und zur Vervollständigung anbietet, aber das ist natürlich eine andere Shell.

Für die Bash hab ich das gefunden, das ebenfalls die Optionen aus der Manpage holen soll (habs aber nicht ausprobiert):
https://github.com/aprescott/skel-complete

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: iptables: bash "complete" goes Cisco IOS?

Beitrag von eggy » 20.10.2016 09:40:30

Ein Script wird im Paket bash-completion bereits mitgeliefert (siehe https://packages.debian.org/jessie/all/ ... n/filelist ), liegt in /usr/share/bash-completion/completions/iptables .

(sid) Auf "iptables [tab]" reagiert es nicht, auf "iptables -[tab]" mit "iptables --" (an der Stelle wären I,A,D usw. sinnvoll), sinnvoll reagiert es aber bei "iptables -I [tab]", dann werden die möglichen Varianten angezeigt. Das Script könnte also noch ein paar Schönheitskorrekturen vertragen.

Falls das bei Dir nicht anspringt, ist evtl die Vervollständigung für root nicht aktiviert. Für die /root/.bashrc hab ich den entsprechenden Codeschnipsel aus meiner /home/user/.bashrc genommen:

Code: Alles auswählen

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

MrScoville
Beiträge: 93
Registriert: 09.09.2016 17:20:59
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables: bash "complete" goes Cisco IOS?

Beitrag von MrScoville » 20.10.2016 17:00:18

eggy hat geschrieben:Ein Script wird im Paket bash-completion bereits mitgeliefert (siehe https://packages.debian.org/jessie/all/ ... n/filelist ), liegt in /usr/share/bash-completion/completions/iptables .

(sid) Auf "iptables [tab]" reagiert es nicht, auf "iptables -[tab]" mit "iptables --" (an der Stelle wären I,A,D usw. sinnvoll), sinnvoll reagiert es aber bei "iptables -I [tab]", dann werden die möglichen Varianten angezeigt. Das Script könnte also noch ein paar Schönheitskorrekturen vertragen.

Falls das bei Dir nicht anspringt, ist evtl die Vervollständigung für root nicht aktiviert. Für die /root/.bashrc hab ich den entsprechenden Codeschnipsel aus meiner /home/user/.bashrc genommen:
Top top top! Großes Dankeschön! Du hast Recht, ein paar Verbesserungen kann das Script sicher brauchen, aber jetzt jabe ich eine gute Grundlage zum Rumprobieren.

Carsten
Man mag gar nicht glauben, wie sehr ein 4096-bittiger RSA-Schlüssel einem den Tag vermiesen kann...^^

Der so genannte "Teufel im Detail" hat einen Namen: Tight coupling :evil:

Antworten