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

システム管理者のお気に入りのLinux履歴コマンドラインハック

Linuxマシンで作業している多くの人と同じように、私は可能な場合とそれが理にかなっている場合にコマンドラインインターフェイスを使用することを好みます。場合によっては、入力する必要のあるコマンドを「認識」しているだけなので、指を使用して構成を検索、検査、および変更する方が簡単です。また、GUIを開いて、必要なメニューのシーケンスを検索するよりも高速です。クリックします。

確かに、GUIを使用する方が速い場合があり、そのタスクを1〜2回しか実行していないので、誰が気にしますか?しかし、それが複数回行う必要がある場合、おそらくいくつかのバリエーションがある場合、システム管理者の頭脳は「これを自動化できますか?」と考えます。多くの場合、答えは「はい」ですが、他の状況では、タスクを自動化する努力は価値がありません。

[次のこともお勧めします:Linuxターミナルのトリック:cdコマンドをハックして今までの場所を覚えておいてください]

入力した最近のコマンドを再利用できれば。

歴史

Linuxコンソールで最後に入力したコマンドを回復する場合の最も簡単なオプションは、historyを使用することです。 。この例では、HTTPサーバーを使用していて、サービスを繰り返し停止し、httpd.confを編集しています。 ファイルを作成してから、httpdを再起動します ブラウザで結果を確認します。

次のコマンドは、最後に使用された10個のコマンドを表示します。

❯ history | tail -10
10057  systemctl stopt httpd.service
10058  systemctl stop httpd.service
10059  sudo systemctl stop httpd.service
10060  sudo systemctl start httpd.service
10061  systemctl status httpd.service
10062  history
10063  systemctl status httpd.service
10064  ps -ef|grep httpd
10065  man httpd.conf
10066  view /etc/httpd/conf/httpd.conf

そこから、行をコピーして貼り付けるか(コマンドを編集するか、別の端末で使用する必要がある場合)、感嘆符の後に履歴内のコマンドのシーケンスを入力します。

> !10061

この行は、コマンドsystemctl status httpd.serviceを呼び出します。 履歴から、 ENTERを押すだけです キーを押します(または再実行する前にコマンドを編集します)。

これは悪いことではありませんが、シーケンスを入力するか、マウスでコピーして貼り付ける必要があります。 巨大なではありません 取引するが、あなたはあなたの主な仕事に集中したい。

いくつかの良い選択肢

UP を使用して、履歴から以前のコマンドを呼び出すことができます 矢印キー。 UPを使用してリストをナビゲートします およびDOWN キー。

このアプローチは問題ありませんが、15分前に使用したことがわかっているものを回復したい場合はどうでしょうか。それは確かに履歴リストに含まれますが、マイニングが必要になる場合があります。

たとえば、historyを使用できます 、出力をgrepに送信します 、およびニーズに一致するコマンドのみをリストします。この例では、すべてのコマンドをhistoryで表示します httpを含む 文字列:

> history | grep http
10544* systemctl status httpd.service
10545* systemctl stopt httpd.service
10546* systemctl stop httpd.service
10547* sudo systemctl stop httpd.service
10548* sudo systemctl start httpd.service
10549* systemctl status httpd.service
10551* systemctl status httpd.service
10552* ps -ef|grep httpd
10553* man httpd.conf
10554* view /etc/httpd/conf/httpd.conf
10561* systemctl status httpd.service

したがって、ここから、感嘆符とシーケンス番号を再度使用できます。例:!10546

しかし、「これは問題ありませんが、私の脳と指の接続は非常に速いので、気を散らされたくないと思うかもしれません。正確に 私が探しているコマンド。」

わかりました、そのための解決策もあります。

脳と指が何を探しているのかを知っているとき

この例を続けて、httpdに関連するコマンドを呼び出します。 すぐに。

あなたのためのオプションは、 CTRL + Rを使用することです 、サブストリングの入力を求められます。これを使用して、最後を思い出してください その文字列を含む、入力したコマンド。

コマンドから文字列を入力すると、その文字列を使用した最後のコマンドが表示されます。コマンドが探しているものである場合は、 ENTERを押します 、実行されます。

この時点でCTRL+ Rを押し続ける場合 、最後から2番目 その検索文字列を含むコマンドが表示されます。この例では、view /etc/httpd/conf/httpd.confです。 コマンド。

後方に移動できます( CTRL + R )および転送( CTRL + S

[システム管理者のスキルをテストしたいですか?今日、スキル評価を受けてください。 ]

まとめ

最近実行したコマンドの一部がわかっている場合は、ここで説明するショートカットを使用して、コマンドをすばやく呼び出すことができます。これは、コマンドをずっと前に使用していて、それがまだシェルの履歴に残っているが、指がそれを「覚えている」場合に特に便利です。

明らかに、入力するよりも効率的な方法で日常のタスクを実行できます。頻繁に使用するコマンドのエイリアスの作成、スクリプトの作成、自動化などです。ただし、入力が必要な場合は、効率的に実行することをお勧めします。


Linux
  1. 私の5つのお気に入りのLinuxシステム管理者ツール

  2. Linux履歴コマンド

  3. Linux での service コマンドの例

  1. LinuxでBASHコマンドライン履歴をクリアする方法

  2. Linux での chkconfig コマンドの例

  3. Linux での httpd コマンドの例

  1. Linuxの履歴コマンドを詳細に説明

  2. Linuxコマンドラインの歴史をマスターするための15の例

  3. Linux OS サービス「httpd」