history
CentOSでコマンドを使用して以前に入力したコマンドのリストを取得できますが、次のような操作を行うと!372
、historyは参照されたコマンドを実行しようとします。
現在のカーソルに表示される前の実行コマンドが必要です。以下に例を示します。
[dev@home ~]$ previous_command_no_execute!372
history
CentOSでコマンドを使用して以前に入力したコマンドのリストを取得できますが、次のような操作を行うと!372
、historyは参照されたコマンドを実行しようとします。
現在のカーソルに表示される前の実行コマンドが必要です。以下に例を示します。
[dev@home ~]$ previous_command_no_execute!372
回答:
どうですか、これをコマンドラインに入れてください:
$ !372
次にを押し、ESC続いてを押しCTRL+Eます。これにより、実際に実行せずにコマンドラインで自動展開されます。(env varsを含む行の他のすべても展開します)
私の知る限り、これはBashでのみ機能します。
!372
キーを押すと、自動的に展開されます。
history | grep 372
動作するはずですよね?
編集:
さらにecho !372 > /dev/clip
、コマンドディレクトリをクリップボードに配置するようなこともできます。
MDMarraは簡単な方法を提供しました(history|grep
デスクトップ環境がある場合は、デスクトップ環境を使用してコピー/貼り付けします)。あなたがデスクトップ環境やマウスを持っていない場合に動作するハードな方法を提供します。
シェルとしてbashを実行していると仮定します。
$ set -o vi
$ ESC372k
(あなたは今、あなたがライン上で、372個のコマンド前に走ったコマンドがあるでしょう、そしてあなたはになりますvi
スタイルのコマンドモード。Editを使用していた場合は、同じようにex
/ vi
)
vi
。これは、必要があるとすぐとして働きset -o vi
、そして(編集モードは、シェルのコマンド履歴や他のものへの単なるインターフェースである)あなたの全体の歴史のために働く必要があります。
自動貼り付けを行うコマンドはありませんが、実行する前にエディターにコマンドを呼び出して編集することができます。これはあなたが探しているものを達成するかもしれませんが、コマンドを終了すると実行されるので、中止したい場合は、エディターを終了する前に編集バッファーをクリアする必要があります。
fc -e vi 372 372