私はhistory | grep ‘whatever'
cmdをコピーして貼り付けるのを使っていますが、これは退屈だと思います。
$(history | grep 'whatever')
1行の場合はcmdを実行しますが(それ以上の場合は処理する必要があります)、行sed
番号を削除するために使用する必要があります。
もしそうなら、コピー - 貼り付けが機能しない場合、人々はコマンドを再入力する必要がありますか?それとも単に使用しsed
てawk
処理してから実行しますか?
答え1
私の経験によると、UNIXは必ずしも年代順ではありません。
「昔」にはコマンドライン編集もマウスもありませんでした。 Normalsh
またはを入力したかのようにコマンドを再入力しますdash
。これは、一般的なコマンドがより短い理由の1つであると考えられています。個人ディレクトリ$HOME/bin
の簡単なスクリプトは、$PATH
より一般的な作業を容易にします。
これは長年の私の環境であり、PC上で実行されているX Windowsに改善されました(Xビジョン)を使用すると、マウスでコピーして貼り付けることができます。
以下はC Shell(csh
)とそのコマンド履歴です。まだコマンドライン編集はありませんが、前のコマンドを繰り返して簡単に変更できます。以下は%
Cシェルプロンプトです。
% echo hello, world
hello, world
% ^world^earth
echo hello, earth
hello, earth
% history
12 echo hello, world
13 echo hello, earth
14 history
% !13
echo hello, earth
hello, earth
% !13:s/hello/goodbye
echo goodbye, earth
goodbye, earth
% !h
history
12 echo hello, world
13 echo hello, earth
14 history
15 echo hello, earth
16 echo goodbye, earth
17 history
その後、tcsh
コマンドライン編集ツールを提供します。私が書いたスクリプトはsh
。
その後、これはコマンドライン置換(上記のように使用)をbash
使用できるだけでなく、私のスクリプトと同じ構文を使用できることを発見しました。まだ引っ越したことがないので、今はこれが私が好む環境です。history
^old^new
zsh
答え2
Bashには、コピーと貼り付けが不可能な端末でコマンドを再入力しないように、いくつかのオプションがあります。
最も有用なのはおそらくCtrl+R、履歴で逆検索を実行できます。
Alt+。最後のコマンドのパラメータを挿入します。
CTRL+Iまたは商標コマンド、ファイル名、ディレクトリ名を自動的に完了します。 Alt+/ファイル名とディレクトリ名のみが自動的に完成します。
Ctrl+Alt+E現在のコマンドラインに入力されているBashエイリアスを展開します。
もしそうなら、もちろん戻るそして下に矢印キーを使用すると、履歴を参照して実行されたコマンドを選択できます。