技術

Windows上でGNUコマンドを活用する

開発部KKです。
WSL(Windows Subsystem for Linux)の登場により、WindowsユーザーもLinux環境の強力なツール群を直接活用できるようになりました。私が実際に使ったことのあるコマンドツールを具体的に例示してみます。

ファイル操作

Windows環境でもGNUコマンドを利用することで、手動で行っていたファイル操作をスクリプト化し、効率化できます。特に大量のファイルのコピーや移動の処理においては、エクスプローラよりもGNUコマンドのほうが効率的に処理できます。
例えば、以下のようなコマンドがあります。

  • ls -lh:ディレクトリ内のファイル一覧をサイズ付きで表示。
  • cp -r:フォルダを丸ごとコピー。
  • mv:ファイルやフォルダを移動。
  • rm -rf:不要なファイルやフォルダを削除。

テキスト処理

テキスト処理は、WindowsのGUI環境ではそもそも標準機能として用意されていません。
今でも、Windows内部には古いバッチ処理用にMS-DOSコマンド(の互換環境)がありますが、ほとんどWindows95以前から変わっておらず、機能が少なく使いにくいままです。
ぜひWSLで強力なテキスト処理コマンドを体験してください。

  • grep "error" logfile.txt:ログファイルから「error」を含む行を抽出。
  • sed 's/foo/bar/g' input.txt:テキスト内の「foo」を「bar」に置換。
  • awk '{print $1}' data.txt:特定の列のデータを抽出。
  • sort -u list.txt:重複を削除してソート。

ネットワーク・プロセス管理

残念ながらWSL上から見る場合は、ネットワークやプロセスはシステム全体のものではありませんので、WSL上で動作するサーバや通信環境についての調査での利用にとどまります。
ネットワーク関連については、windows98以降で整備されたので、コマンドプロンプトでも同等のコマンドが使えます。

  • top:リアルタイムでCPUやメモリ使用状況を監視。
  • ps aux:現在のプロセス一覧を表示。
  • netstat -tulnp:開いているポートと接続状況を確認。
  • ping google.com:ネットワークの疎通確認。

開発環境

gitは、現在、どちらの開発環境でも、なくては始まらないレベルで必須ツールとなっています。
個人的にはfindはコマンドラインオプションを把握するとすごく強力なファイル検索ができます。ただしその反面使い方が難しいということでもありますが、勉強する価値のあるツールです。
diffも、差分を保存したり、コマンドラインでファイルを左右比較できたりと地味ですがとても便利です。

  • git:ソースコードの保存、バージョン管理、比較、出力など多機能なツール。
  • find . -name "*.py":指定した拡張子のファイルを検索。
  • diff old.txt new.txt:2つのファイルの違いを比較。

終わりに

WSLによって、WindowsユーザーもLinux環境のGNUコマンドを自由に利用できるようになり、作業の効率化や開発環境の強化がとても簡単になりました。
興味がでてきたら、ぜひ活用してください!

文:開発部KK