cd, ls, find, grepとは
それぞれ以下の操作を行うためのコマンド。
コマンド | 用途 |
---|---|
cd | カレントディレクトリの位置を変更する |
ls | ファイルを一覧を表示する |
find | 指定した条件に一致するファイル名を検索 |
grep | 指定したパターンを検索して一致するファイル名と行を表示 |
Macのターミナルなどを使用している人なら知らない人は少ないが、使い勝手が悪いので積極的に使用するのは好ましくない。
z, exa, fd, rgとは
cd, ls, find, grepをより使いやすくしたオープンソースのコマンドラインツール。
例えばgrepの場合、カレントディレクトリ内で「Helvetica」の文字列が含まれるファイルと行番号を検索して表示するには以下のようになる。
grep -nr Helvetica
-nrオプションが必要で一致部分の文字列の色が変わらないなど、わかりにくい仕様になっている。
対してrgコマンドであれば以下のように「rg 検索文字列」というシンプルな形で検索でき、一致部分のテキストの色が変わるのでわかりやすい。
rg Helvetica
z, exa, fd, rgのインストール方法
macOSであれば以下のbrewコマンドを使用すれば簡単に4つをインストールできる。
brew install zoxide exa fd ripgrep
zoxideをzコマンドで実行するにはBash(~/.bashrc)かZsh(~/.zshrc)にevalで以下を追記する。
# Bash eval "$(zoxide init bash)" # Zsh eval "$(zoxide init zsh)"
zの使い方
zはcdの上位互換のようなコマンド。
cdと同じく「z [ディレクトリ]」でカレントディレクトリから移動できる。
これだけだとcdと変わらないが、zコマンドは過去に移動したディレクトリにフルパスでなくても移動できる。
例えば「z foo/bar/baz」で移動して「z -」で戻り、またbazディレクトリに移動したい場合は「z baz」で移動できる。
z foo/bar/baz z - z baz
あとzコマンドだと「/」の代わりに半角スペースを使用しても移動できる。
z foo bar baz
exaの使い方
exaはlsの上位互換のようなコマンド。
「exa」やオプション付きの「exa -l」でカラーや下線などが付いた見やすい状態で一覧を表示できる。
fdの使い方
fdはfindの上位互換のようなコマンド。
例えば「fd foo」と入力して実行するだけでディレクトリ名およびファイル名に部分一致していれば検出されるのでfindコマンドより使い勝手が良いです。
ディレクトリだけの場合は--type d、ファイルだけの場合は--type fを付ける。
fd foo fd --type d bar fd --type f baz
findと同様に正規表現も使用できる。
fd "index\.(css|html)"
うしろにディレクトリを指定すれば検索範囲を絞ることもできる。
fd foo ディレクトリ名
rgの使い方
rgはgrepの上位互換のようなコマンド。
「rg 文字列」で入力すればカレントディレクトリ内のファイルに文字列が含まれているファイルがあるか検索できる。
rg foo
grepと同様に正規表現も使用できる。
rg "H.ll[io]"
うしろにディレクトリを指定すれば検索範囲を絞ることもできる。
rg foo ディレクトリ名