どぶどぶエンジニア備忘録

アプリケーションエンジニア3年生です!働いて得た知見や読んでためになった本の紹介をします。

業務でよく使うコマンドの紹介

コマンド紹介

業務で頻繁に使用しているLinuxコマンドなどを紹介したいと思います。 MacまたはLinuxOSを使用している人が対象になります。

ファイル検索

find <ディレクトリ> -name <パターンマッチ>

例:hoge.txtの所在が全く分からないとき

sudo find / -name *hoge.txt*

sudo権限があるという前提ではありますが、ルートディレクト/を指定しつつパターンマッチにワイルドカードを使うことで全ディレクトリを対象に検索することができます。

テキスト処理

結果のフィルタ

catやlsコマンドなど、結果から特定の文字列を含むものを抽出したいときに便利です。

cat <ファイル> | grep <文字列>
ls <ファイル> | grep <文字列>

-vオプションをつけることで特定の文字列を含まないようにすることもできます。

cat <ファイル> | grep -v <文字列>

特定のデバッグログを抽出したいときに便利です。

JSONを整形して見やすくする

JSON(JavaScript Object Notation)とはJavaScriptのオブジェクト記法によるデータフォーマットです。 メジャーなデータフォーマットでバックエンドのAPIなどでよく使われています。 下記はJSONによるデータフォーマットの例ですが、データ量が増えると当然複雑になりやすいです。

{"hoge":{"huga": "test"}, "hogehuga": ["test", "example"]}

ターミナル上でファイルやcurlの結果などからJSONを読み込む際に上記の様な一列だと見づらいのでpython -m json.toolコマンドをパイプラインで繋げることで見やすくすることができます。 このコマンドの利点としてはMacLinuxに標準でpython2がインストールされているためすぐに使えるという点です。

cat <JSONファイル> | python -m json.tool
curl -X GET http://example.com/example.json | python -m json.tool
{
    "hoge": {
        "huga": "test"
    }, 
    "hogehuga": [
        "test",
        "example"
    ]
}

logファイルをリアルタイムで見る

動作確認などでlogファイルの出力をリアルタイムに確認したい場合lessコマンドを使うと便利です。 Ctrl+cを押すと通常のlessコマンドと同様のモードに戻ることができ、大文字Fを入力すると再度入力待ち状態にすることができます。

less +F <ログファイル>