タグ付けされた質問 「command-history」

以前にシェルまたはその他のユーティリティで入力したコマンドを呼び出す


1
ターミナルで最後のコマンドまでスクロールしますか?(OS Xターミナルマークなど)
Mac OS Xターミナルマークは非常に便利です。 たとえば、大量の出力をエコーするコマンドを入力すると、で始まる部分を読みやすくなりますCmd+Up。[プロンプト行を自動的にマーク ]オプションがありCmd+Up、最後のマークまでスクロールするため、最後のコマンドまでスクロールして強調表示します。 この機能を備えた端末エミュレータはありますか?または、何らかのプラグイン。どのようにして最後のコマンドにすばやく移動し、強調表示しますか?

2
bash_history:危険なコマンドをコメントアウト: `#`
bash履歴に「危険な」コマンドが記録されないように、.bashrcファイルに次の行を追加しました。 HISTIGNORE='rm *:mv *:cp *:cat*>*:pv*>*' これはうまく機能しますが、副作用があります。マシンで実行されたコマンドの完全な履歴が表示されません。実験用に複数のマシンがあり、実行されたすべてのコマンドを表示できるようにしたいとします。bash internal historyを使用して実行されたコマンドを表示し、おそらく今日の日付のgrepを使用します。 history | grep Sep-28 私がしたいのは、「危険な」コマンドもログに記録#することですが、行の先頭にa を付けて、誤って履歴からコマンドを実行しても、損害が発生しないようにすることです。 これが可能かどうかはわかりません。 更新と説明: これが私にとって問題である主な理由は、私は通常複数の端末からマシンに接続されており、1つの端末で実行されたコマンドはすぐに他の端末の履歴に読み込まれるからです。これは以下によって達成されます PROMPT_COMMAND="history -a; history -c; history -r" 私が2つの端末を開いていると想像してみましょう。1つでは、いくつかのcat /dev/foo > file.outプロセスを実行しています。2番目では、で進行状況を確認しls -lAhFます。and (つまり、履歴の最後のコマンド)をls押して繰り返します。すぐに最初のコマンドが終了するなどとして、歴史からの最後のコマンドは、もはやありませんが、。注意しないと、catを再び起動してfile.outを上書きします。UpENTERlscat /dev/foo > file.out 私が達成したいのは、catコマンドの前にを付けて#、実行されないようにすることです。しかし、私はまだ履歴に表示し、コメントを外すことで(長いコマンドの場合)再利用できます。

4
履歴はzshに保存されません
端末の新しいインスタンスを開くたびに、履歴が空になります。何故ですか?何かセットアップする必要がありますか?ただし、bashではこれは必要ありません。

3
現在のセッションのbash履歴
たぶん私は何かを見落としていますが、あなたが使用している現在のセッションの現在のbash履歴を取得する方法があります 私が走ったら ssh host $ pwd $ ls $ cd /tmp これら3つのコマンドだけを見たいです。

3
コマンド履歴リコールの数を設定する方法
私はbashを使用しています。コマンド履歴を閲覧するにhistoryは、同じ名前のGnuプログラムを呼び出していると思われるコマンドを呼び出しています。(bash固有のより良い方法があるかどうかはわかりません)。 現在、.bashrcには、export PROMPT_COMMAND='history -a'実行中の複数のbashセッションの履歴を保存する行があります。 履歴を作成すると、現在524エントリしか表示されません。これは構成可能ですか?これをもっと大きな数、たとえば2000に増やしたいと思います。

3
マングルされた歴史
GUIモードで、ユーザーが複数の端末を開いている場合、端末はそのユーザーの履歴ファイルをどのように書き換えますか?私が尋ねる理由は、各端末でユーザーが異なるコマンドを実行する可能性があるためです。それで、履歴ファイルはすべての端末からのコマンドを保存するのですか、それとも最初に開かれる端末からのコマンドのみを保存するのですか?または、この状況に取り組むために採用されている他の種類のスキームがありますか?


5
変更するために(実行せずに)前のコマンドを呼び出す方法は?
最後のコマンドを実行せずに取得できるトリックを思い出せません。 上矢印キーを押してコマンドを変更するときに!1255コマンドにアクセスできるようにしたいとしましょう。それでは、コマンドを呼び出して、コマンドラインに表示されるが実行されず、その後矢印キーでアクセスできるようにするコツは何ですか? エコーを入れてみましたが、コマンドの前にエコーがあります。正しく行う方法を覚えていません。

1
1つの端末を終了するときに他の端末のbash履歴を更新する
ここで求められているように私は、この質問が曖昧にされていません知って更新し続ける(と重複こちら)。 私が達成しようとしていることは少し異なります。入力するたびlsにプロンプトをファイルに書き換えるという考えが好きではありません(history -a; history -c; history -r)。 終了時にファイルを更新したいと思います。それは簡単です(実際にはデフォルトです)が、書き換える代わりに追加する必要があります: shopt -s histappend ここで、端末が閉じられたときに、更新を認識できるように、開いたままになっている他のすべてのものを作成したいと思います。 入力$PS1するたびにチェックすることなくこれを行うことを好みcommandます。何らかの信号をキャプチャする方が良いと思います。どうしますか?不可能な場合は、おそらく簡単cronjobですか? このパズルをどのように解決できますか?

1
タイムスタンプ付きのbash履歴
Bash $ HISTFILEに記録されたコマンドのタイムスタンプを保持したいのですが、可能ですか? man bash情報源として使用してセットアップすることはできませんでした。 私の他のオプションは次のとおりです。 function thebanana() { local -r -a bash_commands=( "ls" # ... more coconut commands ) for bash_command in "${bash_commands[@]}"; do printf "${bash_command}" printf ":" done } export HISTFILE=banana export HISTIGNORE="$(thebanana)" export HISTSIZE=999999 export HISTFILESIZE=999999999 export HISTCONTROL=ignoredups:erasedups 私はOS X Mountain Lion(ため息)にいると言及すべきでした。uname -a私に与えます: Darwin CoconutMac.local 12.2.0 Darwin …

1
HISTTIMEFORMAT構文
多く存在するbashような追加の行が含まガイドHISTTIMEFORMAT='%d/%m/%y %T 'やHISTTIMEFORMAT="%F %T "へ~/.bashrcたりが/etc/bash.bashrc。 最終引用の前には常にスペースがあります。例えば、決してありませんHISTTIMEFORMAT='%d/%m/%y %T'。 どうしてこれなの?


5
特定の文字列に一致する履歴のコマンドを削除するにはどうすればよいですか?
文字列に一致する履歴内のすべてのコマンドを削除する必要があります。私はもう試した: $ history | grep searchstring | cut -d" " -f2 | history -d -bash: history: -d: option requires an argument $ history | grep searchstring | cut -d" " -f2 | xargs history -d xargs: history: No such file or directory $ temparg() { while read i; do "$@" …

3
なぜ感嘆符「!」がbashを混乱させるのですか?
!コマンドライン履歴のコンテキストでコマンドラインに特別な意味があることを認識していますが、それ以外に、実行スクリプトでは感嘆符が解析エラーを引き起こすことがあります。 私はそれが何かに関係していると思いますeventが、私はイベントが何であるか、それが何をするのか分かりません。それでも、同じコマンドは異なる状況で異なる動作をする可能性があります。 以下の最後の例では、エラーが発生します。しかし、なぜ、同じコードがコマンド置換の外側で機能したのですか?.. GNU bash 4.1.5を使用する # This works, with or without a space between ! and p { echo -e "foo\nbar" | sed -nre '/foo/! p' echo -e "foo\nbar" | sed -nre '/foo/!p'; } # bar # bar # This works, works when there is a space between ! …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.