フラグ(またはホットキー)less
を使用してログを追跡し+F
たり、ShiftF前後に検索したり、通常はドキュメント内を自由に移動したりするのに使用できるが大好きです。
しかし、不足していることが1つありますless
。通常、私はファイルの最後にいて、新しいことが起こっているのを見たいのです。でtail -f
、私だけ当たるenter数回、および新しいログの行は、ちょうど明確に古いラインから分離して見えるでしょう。
これを追加することは可能less
ですか?どうやって?
フラグ(またはホットキー)less
を使用してログを追跡し+F
たり、ShiftF前後に検索したり、通常はドキュメント内を自由に移動したりするのに使用できるが大好きです。
しかし、不足していることが1つありますless
。通常、私はファイルの最後にいて、新しいことが起こっているのを見たいのです。でtail -f
、私だけ当たるenter数回、および新しいログの行は、ちょうど明確に古いラインから分離して見えるでしょう。
これを追加することは可能less
ですか?どうやって?
回答:
これは実際tail
の動作ではなく、ターミナルです。Tailは出力のストリームをstdoutに送信するだけで、端末に送信されます。Enterキーを押すことにより、出力の中央に空白行を挿入します。Tail自体は、実際にはユーザーからの入力をまったく受け付けていません。他に何でも入力でき、それも表示されます。
less
ただし、コンソールアプリであり、入力を受け取って処理します。これは、端末制御シーケンスを使用してコンソールを管理しているため、スクロールすることができます。ストリームに任意の文字を挿入すると、表示がめちゃくちゃになり、入力をあまり使用せずにプログラムを制御します。
残念ながら、現在の位置を視覚的にマークする方法がないようです。しかし、それはひどい機能要求ではなく、それでも時々新しい機能が追加されることはありません。
自分で同じ答えを探しているときに、あなたの質問を見つけました。
受け入れられた答えにがっかりして、私は回避策を思いつきました。これは理想的ではありませんが、追跡しているログの中で自分の位置をマークすることができますless
。これがポイントです。
私marklog
は次の内容で小さな実行可能スクリプト(私はそれを呼び出しました)を作成し、それを私のパスに入れました:
#!/bin/sh
echo >> $1
echo >> $1
echo >> $1
echo `date` ---------------------------------------------------------------------- >> $1
echo >> $1
echo >> $1
もちろん、これが機能するのは、ログファイルへの書き込みアクセス権がある場合のみです。これは、多くの状況で契約違反になる可能性があります。私が所有していない(ただし、sudoアクセス権がある)ログファイルに書き込むために使用するこのバージョンも作成しました。
#!/bin/sh
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo `date` ------------------------------------------------------------------------- >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
これらのスクリプトは、私が探していたような視覚的な中断を提供します。それらを使用する方法は少なくとも3つあります。
を使用するときに通常Enterキーを数回押す時点でtail -f
、代わりにmarklog
別の端末から実行します(引数としてログファイルへのパスを指定します)。
CtrlZ一時停止に使用しless
て、同じターミナルウィンドウでスクリプトを実行できるようにしますが、(もちろんless
を使用してfg
)再フォアグラウンドにすると、「フォロー」モードではなくなるため、ShiftFもう一度ヒットする必要があります...
最後に、ログファイルへのパスを入力する必要がないため、これが最も便利な方法です。と入力marklog
してless
、直接実行します!marklog %
。Less
現在のファイル名をに置き換えます%
。ただし、less
には応答しません。「フォロー」モードの間は、CtrlC最初にを押してフォローモードを終了し、を実行して!marklog %
から、ShiftFもう一度実行する必要があります。
方法3を使用すると、Lessのコマンド履歴のボーナスも追加されます。単にを押して!
から、上矢印を使用して最新のコマンドを選択します(私にとっては常にですmarklog
)。
これがすでに私を助けているのと同じくらい誰かを助けることを願っています。
ファイルの最後でShift+ Fを押すと、lessはとして機能し始めますtail -f
。
tail -f
。特に、それは私の質問の唯一のポイントである改行としての入力を受け入れません 。その上、私はすでにShift+F
質問で述べました(小さなエラーで、私は言わなければなりません)