WSL開発環境: プログラミングに便利なOSSコマンドラインツールの紹介
はじめに
WSL[1] 上でのプログラミング作業の効率を上げるため、CLI[2]で役立つコマンドラインツールを紹介します。
これらのツールは、WSL上のさまざまな Linux ディストリビューションで利用可能で、brew[3]を通じて簡単にインストールできます。
ツール一覧
delta: diffをビジュアルに表示
-
パッケージ:
git-delta -
ライセンス: MIT
-
概要:
2つのファイル間の差分を色分けしてビジュアル表示することで、変更点を直感的に把握できるようにします。 -
使用例:
git と連携することで、git diff、git logなどの出力でも変更点をビジュアルに表示できます。
たとえば、この記事の場合のgit diffは以下のようになります:
-
備考:
deltaの設定は、gitconfigで設定します。
上記の表示の設定は、以下のようになります:git/config[core] pager = delta [merge] conflictstyle = diff3 [diff] colorMoved = default [pager] diff = delta log = delta reflog = delta show = delta [interactive] diffFilter =delta --color-only [delta] navigate = true syntax-theme = github line-numbers = true side-by-side = true
gibo: 効率的な.gitignoreファイルの生成
-
パッケージ:
gibo -
ライセンス: Unlicense
-
概要:
GitHub の.gitignoreテンプレートをもとに、gitignoreのボイラープレートを出力します。 -
使用例:
gibo dump <ツール>で指定したツールの.gitignoreボイラープレートを標準出力に出力します。
たとえば、vimが生成するバックアップファイルなどを無視したい場合は:gibo dump vim >>.gitignoreのように、出力を
.gitignoreにリダイレクトします。
.gitignoreは、次のようになります:.gitignore### Generated by gibo (https://github.com/simonwhitaker/gibo) ### https://raw.github.com/github/gitignore/4488915eec0b3a45b5c63ead28f286819c0917de/Global/Vim.gitignore # Swap [._]*.s[a-v][a-z] !*.svg # comment out if you don't need vector files [._]*.sw[a-p] [._]s[a-rt-v][a-z] [._]ss[a-gi-z] [._]sw[a-p] # Session Session.vim Sessionx.vim # Temporary .netrwhist *~ # Auto-generated tag files tags # Persistent undo [._]*.un~ -
備考:
とくになし
gh: GitHub公式CLI
-
パッケージ:
gh -
リポジトリ: https://github.com/cli/cli
-
ライセンス: MIT
-
概要:
GitHub の操作をCLIから行います。 -
使用例:
gh repo clone <リポジトリ>で、リポジトリをローカルにクローンします。 -
備考:
実際に操作するには、以下のようにgh auth loginで GitHub にログインする必要があります。$ gh auth login ? What account do you want to log into? GitHub.com ? What is your preferred protocol for Git operations on this host? HTTPS ? Authenticate Git with your GitHub credentials? Yes ? How would you like to authenticate GitHub CLI? Login with a web browser ! First copy your one-time code: xxxx-xxxx Press Enter to open github.com in your browser... ! Failed opening a web browser at https://github.com/login/device exec: "xdg-open,x-www-browser,www-browser,wslview": executable file not found in $PATH Please try entering the URL in your browser manually以下のようにブラウザーに認証画面が表示されるので、認証コードを入力してログインします:

ghq: リモートリポジトリマネージャー
- パッケージ:
ghq - https://github.com/x-motemen/ghq
- ライセンス: MIT
- 概要:
GitHub やその他のリポジトリホスティングサイトのリモートリポジトリを、ローカルに簡単にコピーするツールです。 - 使用例:
ghq get <リポジトリ>- リポジトリをローカルにクローンします。
ghq list- ローカルにクローンしたリポジトリの一覧を表示します。 - 備考:
pecoやfzfと組み合わせることで、リポジトリ間のナビゲーションを効率的に行えます。
peco: インタラクティブな検索&選択ツール
-
パッケージ:
peco -
リポジトリ: https://github.com/peco/peco
-
ライセンス: MIT
-
概要:
pecoは標準出力を一覧表示し、選択するツールです。 -
使用例:
先ほどのghqと組み合わせて、以下のように使います:cd $( ghq list -p|peco)以下のようにリポジトリの一覧が表示されます:

ここでリポジトリを選択すると、そのリポジトリに移動します。
-
備考
とくになし
fzf: fuzzy finder
-
パッケージ:
fzf -
ライセンス: MIT
-
概要:
pecoと同じく、入力された一覧を一覧表示し選択するfuzzy finderです。
ファジー検索もできます。 -
使用例:
pecoと同じように、ghqと組み合わせてリポジトリに移動できます。
コマンド例は:cd $( ghq list -p|fzf --height 40%)ターミナルに次のように表示されます:

リポジトリを選択すると、そのリポジトリに移動します。
-
備考
とくになし
ripgrep: テキスト検索ツール」
-
パッケージ:
ripgrep -
ライセンス: Unlicense & MIT
-
概要:
grepの代替となるツールです。Rust製で非常に動作が速いです。 -
使用例:
たとえば、以下のように使います:$ sudo apt list|rg -e 'python[^.]*pip' WARNING: apt does not have a stable CLI interface. Use with caution in scripts. python3-pip-whl/stable,stable,stable 23.0.1+dfsg-1 all python3-pip/stable,stable,stable 23.0.1+dfsg-1 alld64上記の例は、
aptパッケージで提供されているpipパッケージの一覧を出力しています。 -
備考:
とくになし
おわりに
この記事で紹介した OSS ツールを活用して、開発作業が効率化できます。
さらに、OSS の利用を共有することで、技術コミュニティ全体の発展に貢献できます。
この記事のように、自分が使っている OSS ツールを紹介しましょう。
そのときに、自分の場合の設定や使い方などのなどのちょっとした TIPS を付け加えれば、自分ならではのオリジナルコンテンツとなります。
使用した OSS にはスターをつけ、可能ならフィードバックを送り、作者を支援しましょう。
それでは、Happy Hacking!
Discussion