コマンドラインに入力した内容をどのように編集しますか?

コマンドラインに入力した内容をどのように編集しますか?

次のコマンドを入力します。

cat somefile
  1. Enter を押してコマンドを実行します。

  2. 次に、ESC + kを使用して検索して再インポートします。

プロンプトに入力し続けている間、戻ってコマンドを編集したいと思います。私が理解したのは、ESC + oを使用すると、コマンドに書いたものを入力または返すことができます。

しかし、これらのショートカットは最初に押された後は機能しないようです。ただし、矢印キーを数回押すと編集できます。 ESC + kで検索されたプロンプトでコマンドを編集する他の方法はありますか?

答え1

コマンドラインプロンプトが表示されたら、コードを挿入できます。
現在のvi編集モードです。
vi マニュアルを確認できます。以下は、いくつかのコマンドラインコマンドです。

  • ESC は挿入モードを終了し、コマンドモードに入ります。
  • ESC / somecommand ENTER nn somecommandを見つけます。 nnは次の2つを探しています。
  • ESC wwb3w 前方2文字、後方1文字、前方3文字
  • ESC dwxx は単語と ws 1 文字を 2 回削除します。
  • ESC lllcw左に3桁、単語を変更
  • ESC wrs 1 ワード前に移動し、文字を s に置き換えます。

答え2

はい、そうです。 「!!」を使用して前のコマンドを実行できます。たとえば、

$ cat file.txt
$ !! file2.txt # this will output both file.txt and file2.txt

他のコマンドにパイプすることもできます。

$ !! | some_command  # it will pipe just previous command's output to some_commands

そして...最初の5つのコマンドを実行したい場合

$ !-5

コマンドの順序がわからない場合は、

$ history
233 cat file.txt
234 ls
235 date
$!234 # this will execute ls command

関連情報