例1: ログファイルから「ERROR」を含む行を検索し、ただし「IGNORED_ERROR」は除外する
`grep`は、ファイルや標準入力から特定の文字列やパターンを検索する強力なコマンドラインツールです。単なる文字列検索だけでなく、正規表現を駆使したり、検索結果をフィルタリングしたりすることで、ログ解析やコードベースの探索を効率化できます。
エンジニア向けの実用的な開発テクニックを毎日お届けします
`grep`は、ファイルや標準入力から特定の文字列やパターンを検索する強力なコマンドラインツールです。単なる文字列検索だけでなく、正規表現を駆使したり、検索結果をフィルタリングしたりすることで、ログ解析やコードベースの探索を効率化できます。
`fzf`は、ファイル名やコマンド履歴、Gitブランチ名など、あらゆるリストをインタラクティブに絞り込み、選択できる汎用的なファジーファインダーです。複雑なパイプラインと組み合わせることで、ターミナルでの作業効率を劇的に向上させることができます。
`git rebase -i`(インタラクティブリベース)は、コミット履歴をきれいに整理するための強力なコマンドです。複数のコミットを一つにまとめたり、コミットメッセージを修正したり、コミットの順序を変更したりすることで、より分かりやすい履歴を作成できます。
`xargs` は、標準入力から受け取ったデータを引数として任意のコマンドを実行するツールです。ファイル名のリストをまとめて処理したり、パイプラインの途中で複雑なデータ変換を行ったりする際に非常に強力で、コマンドラインでの作業効率を飛躍的に向上させます。
`git worktree`は、一つのGitリポジトリに対して複数の作業ディレクトリ(ワークツリー)を作成できる機能です。これにより、複数のブランチで同時に作業を進めたり、異なるブランチでのテストを並行して行ったりする際に、ブランチを頻繁に切り替える手間を省くことができます。
マルチステージビルドは、Dockerイメージのサイズを大幅に削減し、セキュリティリスクを低減する強力なテクニックです。ビルドに必要な環境とランタイム環境を分離することで、最終的なイメージにはアプリケーションの実行に必要な最小限のファイルのみを含めることができます。これにより、CI/CDパイプラインの高速化やデプロイコストの削減にも繋がります。
`direnv`は、ディレクトリに移動するだけで自動的に環境変数を設定・解除できるツールです。プロジェクトごとに異なる設定が必要な場合に非常に便利で、シェルの起動スクリプトを汚染することなく環境をクリーンに保てます。
`tmux`は、ターミナルセッションを複数のペインやウィンドウに分割し、バックグラウンドで実行し続けることができるターミナルマルチプレクサです。これにより、リモート接続が切れても作業を継続したり、複数の作業を効率的に切り替えたりできます。
`jq` は、コマンドラインでJSONデータを処理するための軽量かつ強力なプロセッサです。データの整形、フィルタリング、変換などをパイプを使って簡単に行うことができます。
`jq`は、コマンドラインでJSONデータを処理するための軽量で柔軟なツールです。JSONファイルの整形、フィルタリング、変換などを強力なDSL(ドメイン固有言語)を使って簡単に行うことができます。