【Linuxチュートリアル】端末下での共通操作

原文

https://mp.weixin.qq.com/s/4DRWRPaOizGEClmAIwgB2Q

こんにちは〜みなさん、こんにちは。今日は、比較的基本的なテーマを共有したいと思います。ターミナルでの基本的な操作、多くの学生がターミナルについて矛盾する見解を持っていると思います。ターミナルには非常に多くの難しいコマンドがあり、覚えやすいので、美しいインターフェイスを備えたGUIアプリケーションを使用するのは香りが良くない場合、この記事の作成者はターミナルを知るように導きます。記事は3つの部分に分かれています。最初の部分はターミナルの下でいくつかの一般的なコマンドを紹介し、次の部分は協力します。このシーンでは、コマンドを使用していくつかの問題を解決する方法を示しています。最後の部分では、いくつかのプラグインを共有して効率を改善します。この記事を読んだ後は、ターミナルを使用して日常業務を完了していただければ幸いです。これにより、作業効率が大幅に向上すると思います。

著者はMacシステムを例にとります。ターミナルはiterm(Macに付属のターミナル以外)を使用し、シェルはzshを使用します(もちろん、zshが最良のシェルであることを意味しません。これは個人の習慣に依存します。独自のターミナルを使用することもできます)ページのbashやfishな​​どは、おなじみのシェル環境を作成します)。

画像

1.共通コマンド:

1. manコマンドは、コマンドの取扱説明書として理解できます。このコマンドの実行方法がわからない、または使用方法がわからない場合は、manコマンドを使用できます。manコマンドを使用すると、コマンドの詳細な説明が端末に出力されます。ここでは、tldr(長すぎて読まない)というコマンドをすべての人に推奨します。これは、manコマンドよりも効率化されます。manコマンドとtldrコマンドはどちらも、コマンドの使用方法を簡単に照会できます。

画像

2. grepコマンド、使用法:

画像

grepは強力なテキスト検索ツールです。正規表現を使用してテキストを検索し、一致する行を印刷できます。正式名称はGlobal Regular Expression Printで、非常に柔軟に使用できます。日記を頻繁に確認する学生にとても役立ちます。grep abc xxx.logコマンド行は、ターミナルのxxx.logファイルにabcキーワードを含む行を出力できます。grepはいくつかのパラメーターを受け取ることもできます-vは含まれないことを意味し、-iは大文字と小文字を区別しないことを意味し、正規表現検索をサポートすることもできます。たとえば、ログファイルの各行はタイムスタンプを持ち、正規表現を使用して指定された期間を検索しますよし もちろん、grepの使用法はたくさんあるので、例は示しませんが、このコマンドを使用することをお勧めします。

画像

3.テールおよびヘッドコマンド、使用法:

画像

tailの使用方法は2つあります。1つはtail -f fileファイルの変更監視する方法、もう1つはファイルtail -n xxx fileの最後のxxx行を出力する方法head -n xxx fileです。これは、grepでよく使用される、ファイルの正のxxx行を出力するために使用されます。tail -f file | grep xxx監視ファイルには、xxx行の内容の変更が含まれています。ll -t | head -n 10現在のディレクトリで最近変更された10個のファイルを出力します。

画像

4. awkコマンド、使用法:

画像

awkは非常に強力な機能を提供します。データの処理とレポートの生成(Excel)に使用されます。処理されたデータは、1つ以上のファイル、標準入力からのデータ、またはパイプラインを通じて取得できます。このコマンドは主に、カスタムの区切り文字に従ってテキスト行を複数の列に分割し、出力と統計に使用できる目的の列をフィルターで除外するために使用されます。一般的な方法は、オンラインログのインターフェイス呼び出しの数をカウントし、インターフェイスのURLパスの列を直接awkし、sortコマンドとuniqコマンドを使用して統計を作成することです。完全な文法:awk 'BEGIN{commands} pattern{commands}END{commands} ' file限られたスペースでawkのドキュメントを読むことができます。学習するための最良の方法は練習することです。

画像

5.一番上のコマンド、使用法:

画像

topコマンドは、Linuxで一般的に使用されるパフォーマンス分析ツールで、Windowsタスクマネージャーと同様に、システム内のさまざまなプロセスのリソース占有状況をリアルタイムで表示します。topコマンドを実行すると、トップモードに入ります。多くのインジケーターがあり、詳細な説明はhttps://www.cnblogs.com/peida/archive/2012/12/24/2831353.htmlを参照できます。トップモードに入った後、多くの列があります。よく表示されるのは、cpu列、mem列、cキーによるPキーのソート、mキーによるmemのソート、プロセスの完全パスの表示、cキーの押下、トップのコマンドはデフォルトですべてのプロセスを表示します。プロセスを表示するには、psコマンドを使用して、照会するプロセス番号を見つけ、それを使用する必要がありますtop -p 进程号

画像

6. lsofコマンド、使用法:

画像

lsofコマンドは、現在のシステムで開いているファイルを一覧表示するツールです。Linux環境では、すべてがファイルの形式で存在します。ファイルを介して、通常のデータにアクセスできるだけでなく、ネットワーク接続やハードウェア(伝送制御プロトコル(TCP)やユーザーデータグラムプロトコル(UDP)ソケットなど)にもアクセスできます。バックグラウンドでは、システムはファイル記述子をアプリケーションプログラムに割り当てます。ファイルの性質に関係なく、ファイル記述子は、アプリケーションプログラムと基盤となるオペレーティングシステム間の対話に共通のインターフェイスを提供します。アプリケーションによって開かれた記述子のリストは、アプリケーション自体に関する多くの情報を提供するため、システムがlsofツールを使用してリストを監視およびトラブルシューティングするのに役立ちます。私は頻繁に使用されるlsof -i:portポートは、使用占有されていない見てlsof -p 进程号、プロセスが消費のファイルディスクリプタについてのビュー情報をプラスあなたは、プロセスが占有するポートについての情報を表示することができLISTEN GREP。

7. Ansibleコマンドhttps://github.com/ansible/ansible、使用法:

画像

上記のコマンドはすべて1台のマシンで実行されるため、複数のマシンで同じコマンドを実行する必要がある場合があります。その場合、ansibleが便利になります。ansibleはリモートコマンドをバッチで実行でき、バッチでデプロイしてダウンロードできます。ファイル、これは運用と保守の学生にとって非常に良いツールです。詳細な使用方法については、関連ドキュメントを参照してください。

8. ncコマンド、使用法:

画像

ncはポートを検出するために使用できます。:ip:ポートのnc -vz ip porttcp接続をnc -uz ip portスキャンします。:ip:ポートのudp接続をスキャンします。たとえば、サービスがハングしているかどうか、このコマンドを使用して判断できます。ncはファイルの転送にも使用できます.csdn.net / u012486730 /記事/詳細/ 82019996。

画像

8. netstatコマンド、使用法:

画像

Netstatは、IP、TCP、UDP、ICMPプロトコルに関連する統計データを表示するために使用され、通常、このマシンの各ポートのネットワーク接続を確認するために使用されます。一般的に使用されるパラメーター-tまたは-tcpは、TCP伝送プロトコルの接続状況を表示します。-uまたは–udp UDP伝送プロトコルの接続ステータスを表示します。-pまたは–programs使用されているソケットのプログラムIDとプログラム名を表示します。-nまたは–numericは、ドメインネームサーバーを経由せずにIPアドレスを直接使用します。-lまたは–listening監視中のサーバーのソケットを表示します。だから、基本的には、直接netstat -tunlp現在のマシンは、ののTCP、UDPを聞いている表示します。

2.練習:

オンラインで問題が発生しました。ログをすぐに確認してください:

1.配置できるときにマシンに障害が発生した場合、通常は次の手順を実行します。

  • 最初にマシンにssh、sshはパスワードを入力する必要があります。毎回パスワードを入力する必要がある場合、少し面倒です(itermは特定のテキストを送信するためにキーを押すことをサポートします)。マシンの証明書をマシンに送信できます。シークレットログインの場合は、シークレットフリーのログインを実現するための期待をhttps://www.cnblogs.com/Shoudler/p/9953778.htmlに書き込むこともできます。
  • マシンにsshした後、特定のディレクトリにcdしてからエラーコードをgrepし、awkで必要な情報をフィルタリングし、tail + grepでエラーがないかどうかを確認します。基本的に、ここでエラーログを見つけることができます。

2.通常、ユーザートラフィックは負荷分散された方法で背後にある多くのマシンにヒットするため、特定のマシンを見つけることができません。現時点では、各マシンに対してsshを実行する必要がある場合、それは望ましくありません。次の手順を使用できます。解決する:

  • Ansibleは、対応するマシンを事前に設定して、バッチgrep + tail + awkコマンドを実行して、ログをスローするマシンを確認しますが、ディレクトリレベルが非常に深い場合、ログファイルはペアのパスでなければならないという欠点もあります。パスの長いリストを作成する必要があります(オートコンプリートはありません〜)。加えて、ansibleコマンド自体が非常に長く、効率が非常に低く、パスを忘れた場合は恥ずかしいです。
  • そのために、私はremote-tailとremote-grepを作成しました。これら2つは、実際には複数のsshでコマンドを実行するプロセスをシミュレートします。便利なのは、ログファイルのアドレス、マシンのIPなどを含めて構成するだけです。複数のマシンのgrepと複数のマシンのテールのニーズを実現できます。プロジェクトは比較的シンプルで、goで記述されています。必要なシーンを補足するためにフォークできます。

私がチェックする必要がある不可解なプロセスがあります:

まず使用しps aux | grep xxx、プロセスIDを特定するようないくつかの後のpidを、私たちは使用することができるtop -p pidとともに、プロセスのリソース消費を見てlsof -p pidファイルディスクリプタのプロセスで見た図で、ll /proc/{pid}/exeあなたはどこはい、このプロセスを開始するには、ディレクトリを表示することができます。

なぜディスクが再びほぼ満杯になるのか:

dfコマンドを使用して、現在のディスク使用量を表示します。実行du -sh * | sort -nrすると、現在のディレクトリの下のサブディレクトリのサイズが出力され、どのディレクトリがより大きな判定スペースを占めているかを確認できます。一部のファイルを削除した後でもディスクが比較的高い割合で使用されている場合は、これlsof | grep delete使用して、現在のシステム解放されていないファイル記述子を削除するかどうかを確認できます。これらもディスクを占有している原因である可能性があります。

画像

画像

3.効率を向上させる:

1.コマンドを入力するときに視覚的に快適になるように、端末を適切に構築することを強くお勧めします。私のようなzshを使用している場合は、ohmyzshにさまざまなトピックを含めることをお勧めします小さな黒いフレームに素敵な小さなスカートを置くことができます。

2.自動補完の場合:zshでは大文字と小文字が無視されます。大文字のディレクトリが検出されると、タブではなく、タブが使用されます。zsh-autosuggestionsというプラグインをインストールすると、プラグインは、コマンドの書き込み時に、最近書​​き込まれたコマンドを明るい色の形式で表示でき、→キーを押すとコマンドが完了します。

画像

3.多目的エイリアスは、コマンド入力の効率を大幅に向上させることができ、長いコマンドや多くのパラメーターを持つコマンドをカスタムコマンドに置き換えることができるため、誰もがls -lよりもllを好みます。

4.ディレクトリにジャンプするときは、よくcdコマンドを使用します。Cd/などはシステム構成ディレクトリに入り、cd〜はホームディレクトリに入ります。長いパスを持つディレクトリに到達した場合、多くのパスを書き込む必要があり、このディレクトリは一般的なものです。使用されているオフィスディレクトリ、はい、エイリアスコマンドを使用してオフィスディレクトリを入力し、次のような短いコマンドを省略できます:cdwork;そのようなディレクトリが複数ある場合は、さらに面倒になります。ここでは、autojumpというコマンドをお勧めします。最近訪れたディレクトリを重みに応じた場所に記録し、あいまい検索でそのディレクトリにジャンプできるので、ディレクトリ名のj +部分をクリックするだけでジャンプできるのでとても便利です。

画像

5.全員がMacシステムを使用しています。ファイルマネージャの場合、通常はMacに付属のファインダを使用してマウスをクリックします。レンジャーコマンドを使用することをお勧めします。このコマンドを実行すると、Linuxでファイルマネージャに入ります。デフォルトの操作ではvimを使用します。ファイル操作のためにマウスから完全に分離できるショートカットキー。このコマンドの最大の利点は、非常に構成しやすいことです。ファイルの解凍、バッチ削除など、レンジャーに統合するいくつかの複雑な操作スクリプトを書くことは非常に便利です。それを試してみてください、私は誰もがそれを置くと信じています。

画像

6. fzfコマンドhttps://github.com/junegunn/fzfは、ファイルをあいまい検索するコマンドです。特定のディレクトリにcdすると、このディレクトリ内の特定のファイルを編集したいのですが、ファイル名は明確ですが、具体的にはわかりませんどこ?はい、はい〜検索コマンドを使用して検索できます。ファイルを検索するだけでは、findには依然としていくつかの非効率があります。fzfモードに入った後、検索するファイルをリストするためにいくつかのキーワードを書くだけでよく、fzfの特性はこれらよりはるかに多く、一般的な検索のためにvimに統合できます:バッファーファイル、最近のコマンドなど。 ;ファジー検索ファイルのレンジャーに統合できる; killコマンドに統合して、シャットダウンするプロセスを検索できる;システムのctrl + rを置き換えて、最近実行されたコマンドを検索できる これらの構成は、https://github.com/junegunn/fzf/wikiにあります。

画像

終了:

ご覧いただきありがとうございます。上記は端末での基本的な操作です。小さなブラックボックスを使用していただければ幸いです。コマンドで完了できる作業はコマンドで完了します。マウスを使用するよりも間違いなく優れていると思います。もう少し効率的で、最後にMatrixの画像を使用して、将来的にすべてのユーザーがMatrix内の人々のようになり、コマンド画面の数行を押すだけでクールにスクロールできることを願っています。

画像

サービスの推奨

公開元の記事0件 ・いい ね0件 訪問数353

おすすめ

転載: blog.csdn.net/weixin_47143210/article/details/105628650