仕事

Linuxコマンドのチートシート!

2023年5月25日


最近Linuxコマンドは全然使わないんだけど、以前死んだ魚の目をしたデブのおっさんが、とあるシステムでエラーメッセージがどの画面で表示されてるかを調べて、エラーメッセージの発生原因と対応方法が分かる一覧表を作成しろって言われた。

目的はお客様からの問い合わせ件数を減らすこと。で俺は設計書読ませてって言ったら、そいつは「なにそれ?そんなのないから頑張ってソースとDBみてエラーメッセージ抽出して」と言ってきた。そいつはパワハラで有名でなぜ辞めさせられていないか疑問だった。

それはさておき、今回はどうしたらソースからエラーメッセージの抽出ができるのかなど学んだことを解説していく。誰かの助けになれば嬉しい。

grepでAND検索


例えば、↑のファイルから以下の2つの文字列が存在する行を検索したい場合、

  • 【ABC文字列】
  • あいう
grep 【ABC文字列】 log.txt | grep あいう

上記のコマンドを使う。
↓は結果。

OR検索


次に、↑のファイルから以下の2つの文字列がのどちらかが存在する行を検索したい場合、

  • 【ABC文字列】
  • 【えおか】
grep -e【ABC文字列】-e えおか log.txt

上記のコマンドを使う。
↓は結果。

swiftのファイルから「Hello World!」が記載されている全ての行を抽出


例えばTESフォルダ内のa.swiftとg.swiftファイルのみに「Hello World!」の文字列の記載がある。なので、その記載がある行を全て抽出したいとする。

find . -name "*.swift" | xargs grep "Hello World!"

findコマンドは拡張子検索で使う。
↓は結果。

swiftのファイル数を調べる


例えばTESTフォルダ内(サブディレクトリも含む)で何個のswiftファイルがあるか調べるとする。

find . -name "*.swift" | wc -l

↓は結果。

viでファイルを編集

ファイルを開く


「vi filename」でファイル名を指定して既存のファイルを開く。もしlog.txtが存在しない場合、新しくファイルを作成される。
ファイル

ファイルを編集


ファイルを開くと上記のようにファイルが開かれる。この状態は「コマンドモード」にいるため、編集ができない。

なので、「a」をおして「編集モード」にする。これで編集できる。

ファイルを保存


escを押して「編集モード」を終了し、「:wq!」を入力しEnterを押せば入力した文字が保存しviが終了する。

保存せずに終了


escを押して「編集モード」を終了し、「:q!」を入力しEnterを押せばファイルを保存せずにviが終了する。

cpでファイルをコピー

cp /data/*.ts /usr/local/test  # *.ts をコピー

コピー元ファイル名 コピー先ファイル名

-仕事