私はしばしば一連のパラメータに対して一連のコマンドを実行する自分自身を見つけます。
たとえば、
$ nmap -Pn -sS 192.168.1.5
$ ssh 192.168.1.5
$ curl 192.168.1.5
$ wget -r 192.168.1.5
パラメータを変数に入れて作業を高速化できます。
$ a=192.168.1.5
$ nmap -Pn -sS $a
$ ssh $a
$ curl $a
$ wget -r $a
次のようないくつかの機能を使用して速度をさらに向上させます。
$ more .zshrc
...
paa() { PERSIST_ARGS+=("$@"); }
pa() { eval "$@" "${PERSIST_ARGS[@]}"; }
...
$ paa 192.168.1.5
$ pa nmap -Pn -sS
$ pa ssh
$ pa curl
$ pa wget -r
スピードを上げる方法はありますか?例えば、
$ <start special mode> 192.168.1.5
$ nmap -Pn -sS
$ ssh
$ curl
$ wget -r
$ <exit special mode>
私bash
またはzsh
解決策を探しています。ソリューションはすべてのコマンドセットを使用する必要があります。
ベストアンサー1
Alt-_最後のコマンドの最後の単語が挿入されました。私にとってはこれで十分でしたが、スペース、最後の単語、および行を許可する(Enter)を挿入するために別のキーバインディングを追加できます。
そしてtcsh
またはzsh
(についてAlt-S、S
についてsame
):
bindkey -s '\es' ' \e_\r'
そしてbash
:
bind '"\es": " \e_\r"'
次に、次のように入力します。
$ nmap -Pn -sS 192.168.1.5
$ ssh<Alt-S>
$ curl<Alt-S>
...
と少なくともzsh
tcsh
数値引数(つまり、前に追加するとAlt-<number>)スペース文字に適用されます。これはあまり役に立ちません(Alt-3Alt-S3つのスペースを挿入し、最後の単語を一度挿入して行を許可します)。次のいずれかを挿入すると便利です。N最後のコマンドの最後の単語、またはN最後のコマンドまたは最後N最後のコマンドの単語です。
少なくともzsh
マクロを使用する代わりに、新しいウィジェットを定義できます。たとえば、
use-last-word() {
LBUFFER+=" "
zle insert-last-word
zle accept-line
}
zle -N use-last-word
bindkey '\es' use-last-word
Alt-3Alt-S最後のコマンドの最後の3番目の単語が挿入されます。
最後から3番目のコマンドに最後の単語を挿入するには、次のようにします。
use-last-word() {
LBUFFER+=" "
local n=$NUMERIC
unset NUMERIC
repeat ${n:-1} zle insert-last-word
zle accept-line
}
最後のコマンドの最後の3単語を挿入するには:
use-last-word() {
for ((NUMERIC=${NUMERIC:-1}; NUMERIC; NUMERIC--)) {
LBUFFER+=" "; zle insert-last-word
}
zle accept-line
}