2016-03-04 16 views
21

使用例:コマンドを実行せずにbash履歴に追加するにはどうすればよいですか?

私は長いコマンドを入力してから、まず何か別のものを実行する必要があることを認識しています。

私は通常、すぐにCTRL Cを実行します。

echo "command" >> $HISTFILEでも可能ですが、これは引用符では機能しません。

+1

私の普通の習慣は、カットバッファに行を移動するにはCtrl + A、Ctrl + K、後でペーストするにはCtrl + Yですが、Mattiの変数アリは良いです。 –

+0

私は通常、Ctrl-Cを押すだけで、コマンド全体の入力を終了します。コマンドは画面上に表示されたままになりますが、実行されません。私は他のコマンドを実行し、それをコピーするためにまだ見えるコマンドを選択して貼り付けます。 – thedayturns

+0

シンプルハック。 ** git commit --am "done" **としたいとします。あなたはあなたが行なわれていないことを実感します。 ctrl-aコマンドの先頭に戻り、「x」(たとえば)を追加して、xgit commit -am "done" **を付けます。エラーは出てきましたが、歴史に残っています。後で履歴に戻り、ctrl-aを押して 'x'を削除します。 'x' +コマンドが実際には有効なコマンドではないことを確認してください。 –

答えて

18

、およびCtrl-Yを後で貼り付けます。 Meta-Yの後にCtrl-Yを使用すると、以前のものに戻ることができるように、異なるカット値を繰り返します。

+2

これはOPが望むように*正確に*動作します。同じことが欲しかったし、とても親切な魂が私にこう言ってくれたので、私は知っている。長いコマンドを入力して「ああ、この他のものを最初にしたい」と思ったときは、いつも使っています。 –

5

~/.bash_historyファイルを編集できます。

+0

これはOPの質問のシナリオには役立ちません。 – chepner

16

history -s argをそのまま使用してください。

-s argsは、履歴リストの末尾に1つのエントリとして追加されます。あなたが行(それは最後にする必要がありますので、これはカーソルから逆方向に切ることに注意)をカットするはCtrl-Uを使用することができます歴史を編集することの代替として

http://ss64.com/bash/history.html

11

もう一つの選択肢は、行の先頭にハッシュを置くことです:

# echo this command will not execute, but it will be in the history. 
+0

すぐに編集できるものがある場合は、Ctrl + Aを使用して、行の先頭に移動してください。は通常それより離れています。 – galva

+2

メタ文字#は 'insert-comment'です。これは基本的に行頭に移動し、insert#、コマンド – RJHunter

3

これはあなたのために働くかもしれない:

Alt-# or insert-comment will change the command into a comment and store it in command history. 

コマンドはその後、履歴から取得された場合:

Alt-1 Alt-# will remove the comment and execute the command. 
+2

++を実行するのと同じですが、すべてのプラットフォームで(少なくともデフォルトで) 'Alt'にはならないので、Altキーではなく、変更キー' Meta'を使用します。 – mklement0

関連する問題