コマンド履歴の分析

LinuxLinuxBeginner
オンラインで実践に進む

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このチャレンジでは、Linux システムにおけるコマンド使用履歴の分析に焦点を当て、データストリームのリダイレクトを練習します。このタスクを完了することで、テキスト処理スキルを向上させ、一般的な Linux コマンドに慣れ、Linux 環境における入出力操作の理解を深めることができます。

これは Challenge です。Guided Lab とは異なり、学習のためにラボの手順に従うのではなく、チャレンジタスクを独立して完了する必要があります。Challenge は通常、少し難しい課題です。難しいと感じた場合は、Labby と相談したり、解決策を確認したりできます。過去のデータによると、この 初級 レベルのチャレンジの合格率は 95.43%です。

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL shell(("Shell")) -.-> shell/BasicSyntaxandStructureGroup(["Basic Syntax and Structure"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) shell(("Shell")) -.-> shell/AdvancedScriptingConceptsGroup(["Advanced Scripting Concepts"]) linux(("Linux")) -.-> linux/InputandOutputRedirectionGroup(["Input and Output Redirection"]) shell/BasicSyntaxandStructureGroup -.-> shell/quoting("Quoting Mechanisms") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/awk("Text Processing") linux/TextProcessingGroup -.-> linux/sort("Text Sorting") linux/TextProcessingGroup -.-> linux/uniq("Duplicate Filtering") shell/AdvancedScriptingConceptsGroup -.-> shell/adv_redirection("Advanced Redirection") linux/InputandOutputRedirectionGroup -.-> linux/pipeline("Data Piping") linux/InputandOutputRedirectionGroup -.-> linux/redirect("I/O Redirecting") subgraph Lab Skills shell/quoting -.-> lab-17988{{"コマンド履歴の分析"}} linux/cat -.-> lab-17988{{"コマンド履歴の分析"}} linux/awk -.-> lab-17988{{"コマンド履歴の分析"}} linux/sort -.-> lab-17988{{"コマンド履歴の分析"}} linux/uniq -.-> lab-17988{{"コマンド履歴の分析"}} shell/adv_redirection -.-> lab-17988{{"コマンド履歴の分析"}} linux/pipeline -.-> lab-17988{{"コマンド履歴の分析"}} linux/redirect -.-> lab-17988{{"コマンド履歴の分析"}} end

ストリームリダイレクトを使用した過去のコマンドの分析

要件

あなたのタスクは、コマンドの使用履歴が記録されたファイルを分析することです。ファイル内で最も頻繁に使用された上位 3 つのコマンドを特定し、その結果を /home/labex/project/result に保存する必要があります。このタスクは、ストリームリダイレクト技術を使用して行わなければなりません。

タスク

  1. /home/labex/project/ にある data1 ファイルを、awksortuniqhead コマンドとストリームリダイレクトを組み合わせて処理します。
  2. 最も頻繁に使用された上位 3 つのコマンドを /home/labex/project/result にリダイレクトします。
  3. 結果を、出現回数とコマンドの両方を含む "count command"(例:"100 ls")の形式に整形します。

data1 ファイルのサンプル内容:

895  echo $?
896  openstack compute service list
897  cd /home/chy/openstack/
898  . admin-openrc

/home/labex/project/result のサンプル出力形式:

150 openstack
114 systemctl
105 ls

結果ファイルには、最も頻繁に使用された上位 3 つのコマンドのみを含める必要があります。

ヒント

ファイル内容からコマンドを抽出するために awk を使用する必要があるかもしれません。以下はいくつかの有用な awk の例です。

  • awk '{print $2}': 各行の 2 番目のフィールドを出力します。
  • awk '{print $1, $2}': 各行の 1 番目と 2 番目のフィールドを出力します。
✨ 解答を確認して練習

まとめ

このチャレンジでは、Linux のストリームリダイレクト技術を適用しながら、コマンド使用履歴の分析を練習しました。この演習により、テキスト処理能力、一般的な Linux コマンドの使い方、および入出力操作の理解が向上しました。これらのスキルは、Linux 環境で作業するシステム管理者や上級ユーザーにとって非常に有用です。

OSZAR »