GNU/Linux >> Linux の 問題 >  >> Linux

LinuxのHistoryコマンドと例

Linuxのhistoryコマンドは複雑な専門用語ではありません。それはまさにあなたが思っていることであり、その背後に隠された意味はありません。インターネットで長い一日を過ごした後にブラウザの履歴を見るのと同じように、履歴コマンドを認識する方法があります。以前の動きやアクションを追跡することがすべてですが、この場合は、Linuxターミナルまたはコマンドライン上にあります。

したがって、以前に実行されたコマンドをプレビューする方法として、Linuxドメインでhistoryコマンドを快適に定義できます。この場合、端末は、連続した時間枠でさまざまなコマンドを実行するブラウザと見なすことができます。これらの実行されたコマンドは、個別にイベントとして解釈されます。次に、各イベントにイベント番号が割り当てられます。したがって、イベント番号としてIDを持つコマンドは、端末の実行後に履歴ファイルに保存されます。

イベントIDの重要性は、後で実行した特定のコマンドを呼び出す必要がある場合に明らかになります。また、以前に実行したコマンドを変更することもできます。したがって、履歴コマンドの入門的な理解を結論付けて、以前に実行されたすべてのコマンドまたは端末上の特定のコマンドのみを表示することができます。また、リストされたコマンドを変更する実行可能なオプションを忘れてはなりません。

履歴を繰り返す

この歴史的な記事は、ジョージ・サンタヤーナを引用することで楽しい方法で始めることができます。この有名な人物は、過去を思い出せないことと、それを繰り返すことの呪いを関連付けています。ただし、Linuxの世界に足を踏み入れたとき、この引用は神話としてのみ認められます。これは、Linuxの哲学が、ジョージ・サンタヤーナの引用と現実的に反対であるためです。 Linuxターミナルを使用しているときに、過去のアクションを思い出せない場合でも、それが解き明かされる可能性は低いため、心配する必要はありません。

もちろん、あなたがLinuxの履歴コマンドのマスターにならない限り、過去にタイムトラベルして、それがあなたの望みであれば、以前のターミナルの罪を正すことができます。 Linuxのhistoryコマンドの使用は、決して怠惰に関連するものではありません。効率化により時間を節約します。 Linuxオペレーティングシステムの習得に進むにつれて、長くて複雑なコマンドを操作していることに気付くでしょう。 IQをAlbertEinsteinのIQと比較しても、実行したすべてのコマンドを覚えておく時間がなく、すぐに恐ろしいエラーが発生し始めます。 Linuxターミナルで作業すると、個人は2種類のエラーにさらされます。

    • エラー1:このエラーは最も一般的であり、実行したいコマンドを続行できなくなるだけです。
    • エラー2:このエラーはトリックスターです。開始したコマンドは実行されますが、予期しない結果が発生します。

履歴コマンドは、生産性を高めるためにこれら2種類のエラーを根絶する忍者の戦士と考えることができます。チュートリアルを始める前に一言考えてみましょう。Linuxの履歴コマンドには、キーボードの上矢印キーを使用するだけではありません。私たちのアプローチにより、あなたはよりプロフェッショナルに見えるようになります。

Linuxの履歴コマンドを入力

historyコマンドの開始は、Linuxターミナルでhistoryという単語を入力するのと同じくらい簡単です。ターミナルを起動して、この簡単なスペルクイズに合格してください。

history

Enterキーを押すと、端末で実行したすべてのコマンドと、割り当てられたIDまたはイベント番号のリストが表示されます。 Linuxターミナルインターフェイスが使用する番号付けシステムは、リストの一番上に最も古いコマンドを示し、リストの一番下に新しく入力されたコマンドを示しています。ご覧のとおり、入力した履歴コマンドにはID番号24が割り当てられています。

非常にアクティブなLinux端末のシナリオを考えてみましょう。この端末でhistoryコマンドを入力すると、出力は、たとえば、履歴ファイルに保存されている500個のコマンドのリストになります。したがって、historyコマンドは、コマンドの指定されたグループ化されたセグメントをフィルタリングするのに役立ちます。ターミナルで実行された最後の10個のコマンドを表示するとします。次のように入力して、ターミナルを通過する方法をフィルタリングします。

history 10

ご覧のとおり、コマンド「history 10」は、この端末で使用された最後の10個のコマンドをフィルタリングし、「history10」コマンドに含めて端末に一覧表示しました。

これは、この目的を達成するための1つの方法です。それを行う別のオタクな方法は、履歴コマンドをテールコマンドと呼ばれる別のコマンドと一緒にパイプすることです。以下のスクリーンショットに示されているように、次のコマンドを入力します。

history | tail -n 10

このコマンドには、実行したばかりのコマンドを含め、Linuxターミナルで最後に実行された10個のコマンドも一覧表示されます。

実際に繰り返される歴史

履歴コマンドを使用する楽しい部分の時間です。歴史を実際に繰り返させることから始めてはどうでしょうか。履歴コマンドとそれに関連するイベントIDに精通しているので、ターミナルに戻りましょう。特にリストされているコマンドを繰り返すには、スクリーンショットに示されているように、そのイベントIDをメモし、次のコマンドをモックします。コマンドを入力するときにスペースを使用しないでください。

!17

私の場合、Linuxの/ etc / hostファイルを表示したかったので、認証パスワードの入力を求められました。クレデンシャルが承認されるとすぐに、コマンドが実行されました。

前に実行したコマンドを繰り返したい場合もあります。この目的を達成するのは、端末で2つの感嘆符を入力するのと同じくらい簡単です。スペースは使用しないでください。

!!

ご覧のとおり、このコマンドにより、以前に開いたLinux / etc/hostファイルに戻りました。単独で実行された以前のコマンドを再利用するには、二重感嘆コマンドが必要でした。キーボードの上矢印キーに慣れているかもしれません。これには、2つのアクションを実行し、1回上にスクロールしてから、Enterボタンを押す必要がありました。ただし、単一のアクションを実行するだけでよいため、二重感嘆コマンドはより迅速でプロフェッショナルに見えます。

使用したコマンドにはSudo権限が必要なため、二重感嘆符の前にSudoコマンドを付けると、同じ期待される結果が得られます。

sudo !!

イベントIDと組み合わされた単一の感嘆符は、そのIDに関連付けられた表示されたコマンドを実行します。二重感嘆符を使用すると、最近使用したコマンドを実行できます。sudoerユーザーが実行する必要がある場合は、コマンドの前にSudoを付けることができます。

また、オタクを次のレベルに引き上げて、前の3つまたは6つのコマンドを繰り返す方法が必要になる場合もあります。この場合、コマンドに関連付けられているイベントIDをメモする必要があります。次に、次のように、イベントIDをハイフンと単一の感嘆符と組み合わせます。

!-21

私の側では、前の21個のコマンドについてクエリしたかったのですが、それはローカルホストのIPアドレスに対するping要求であることがわかりました。このコマンドシーケンスの使用は、以前に実行されたコマンドをカウンターチェックし、その実行に使用したパラメーターがまだ有効であるか、バイアスがかかっていないかを判断する場合に役立ちます。

コマンド文字列

端末でコマンドを実行したが、コマンドを完全に記憶していないとします。ただし、コマンドの有効性とそれがどのように役立ったかは確かです。このコマンドを構成する文字列の一部を知ることは非常に役立ちます。私の場合、システムを更新するコマンドを一度実行すると確信しています。このシステム更新コマンドをまだ完全に覚えていないとしますが、コマンドの一部に、コマンドの最初の文言として文字列「apt」が含まれていることはわかっています。このコマンドを再度使用するには、端末で次のコマンドを入力します。ただし、ほとんどのシステム更新コマンドにはsudoerユーザーの承認が必要なため、Sudoで使用するコマンド文字列のプレフィックスを付けます。

sudo !apt

ご覧のとおり、完全な「sudo apt update」コマンドを使用せずに、コマンドラインからLinuxシステムを正常に更新しました。 Linuxの履歴コマンドマニュアルからのこのハックは、入力が面倒な場合や、しつこいタイプミスにつながる可能性のある長いコマンドを処理する場合に役立ちます。相対パスによって長いコマンドが生成されるファイルを編集している場合や、ファイルをコピーしている場合があります。いずれにせよ、繰り返しのコマンドをリサイクルするには、ストレスのないアプローチが必要です。

sudoerユーザーの認証の側面に触れたので、注意しないと壁にぶつかってしまう可能性があります。 sudoer特権ユーザーからのほとんどのコマンドを実行するには、プレフィックスSudoが必要です。したがって、Sudoで始まるコマンドに「!sudo」のような文字列コマンドを入力すると、不要なコマンドシーケンスが実行される可能性があるため、十分ではない可能性があります。ただし、印刷修飾子であるパラメーター:pを使用することで、セーフティネットを提供できます。したがって、文字列コマンドをそれと組み合わせると、次のような出力が得られます。

!sudo:p

このコマンドは、使用したSudoコマンドを出力しました。このコマンドを再利用するには、キーボードの上矢印キーを使用し、Enterキーを押して実行します。リストに複数のSudoコマンドが表示されている場合でも、上矢印キーを使用して、再利用したい特定のSudoコマンドに移動します。

これらは、文字列を処理するためのすべてのオプションではありません。使用したいコマンドで定義された特定の文字列しか知らない場合もあります。これは、以前に使用したコマンドを定義する最初の文字列がわからない場合です。ここでは、感嘆符と疑問符の両方を使用してコマンドを見つけます。

!?ping

「!?ping」コマンドシーケンスを使用しました。これにより、前のping要求が即座に実行されました。このシーケンスを使用して、他のユーザーに固有の以前のコマンドを端末で実行できます。

インタラクティブ検索

以前に実行したコマンドがいくつかあり、それらに類似または一致する文字列シーケンスがあると仮定します。これらの一致するすべての手がかりのうち、そのフォールドで特定のコマンドシーケンスのみを実行したい場合があります。インタラクティブ検索を使用すると、実行するこの1つのコマンドにアクセスできます。インタラクティブ検索を開始するには、Ctrl+rキーを組み合わせます。 Linuxターミナルの表示は次のようになります。

実行する必要のあるコマンドの検索手がかりを入力するだけです。私の場合、「apt」と入力しました。ご覧のとおり、アポストロフィとバッククォートの間に表示されました。クエリされたコマンドに関するより多くの文字列の手がかりとして入力すると、インタラクティブ検索によって関連する結果が継続的に更新されます。 Enterキーを押すと、見つかったコマンドがすぐに実行されます。

sudo apt update

さらに、見つかったコマンドを実行する前に編集することをお勧めします。これを行うには、キーボードの左右の矢印を使用します。これで、見つかったコマンドがターミナルに表示され、必要な変更を加えることができます。

sudo apt update && cd FOSSLinux

履歴コマンドの削除

これまでのところ、履歴ファイルからコマンドを取得、クエリ、更新、および実行できるようになりました。ただし、コマンドの一部またはすべての履歴リストを空にする方法を探している場合があります。たぶんあなたは、Linuxシステムをどのように使用したかを誰かに追跡させたくないタイプのユーザーです。 -dパラメータは、履歴ファイルの不要なコマンドを取り除くのに役立ちます。私の場合、履歴ファイルにイベントID番号44のスペルミスのあるコマンドが含まれています。

このスペルミスのあるコマンドを取り除くために、端末で次のことを行います。

history -d 44

「history」コマンドを再度実行すると、スペルミスのあるコマンドが削除されたことがわかります。

削除オプションは、さまざまなコマンドにも適用されるため、単一のコマンドに適用されるだけではありません。たとえば、次のコマンドについて考えてみます。

history -d 10 20

このコマンドは、イベントID10からイベントID20までの履歴ファイルエントリを削除します。考慮すべきもう1つの履歴コマンドは次のとおりです。

history -d -6

このコマンドは、履歴ファイルに保存されている端末で入力した最後の6つのコマンドを削除します。

履歴ファイルリストからすべてをクリアしたい場合は、次のコマンドをモックできます。

history -c

結論

これで、端末の履歴を繰り返すかどうかを決定するために必要なすべての情報が得られました。上級ユーザーの場合、ターミナルからアプリを実行し、機密情報の痕跡を残すように求められる場合があります。履歴ファイルには、このような機密データも保存されます。したがって、特に機密データの保存につながる場合は、コマンドラインを終了する前に履歴ファイルを常にクリアすることをお勧めします。 historyコマンドを使用すると、ターミナルで楽しい時間を思い出し、過去のコマンドラインの間違いを修正することができます。


Linux
  1. 例を含むLinuxTeeコマンド

  2. 例を含むLinuxヘッドコマンド

  3. LinuxでのJQコマンドと例

  1. 例を含むwcLinuxコマンド

  2. Linuxのソートコマンドと例

  3. Linuxでのエコーコマンド(例付き)

  1. Linuxでのmanコマンドと例

  2. LinuxでのAWKコマンドと例

  3. LinuxでのCurlコマンドと例