PowerShell上でLinux / Unix系の基本コマンドを使えるようにする
Coreutils for Windowsをインストールして、PowerShell上でLinux / Unix系の基本コマンドを使えるようにした
今日やったこと
- PowerShell で Coreutils for Windows を使えるようにした
- 管理者権限で PowerShell を開き、
wingetで Coreutils for Windows をインストールした
winget install Microsoft.Coreutils
- インストール後、PowerShell 上で Linux / Unix 系の基本コマンドが使えるようになったことを確認した
学んだこと
- Coreutils for Windows は、Windows 上で Linux / Unix 系の基本コマンドを使えるようにするためのツールである
- PowerShell には
lsやdirなど最初から使えるコマンドもあるが、これは Linux のlsではなく、PowerShell のGet-ChildItemのエイリアスである - Coreutils for Windows を入れることで、WSL や SSH 接続先の bash に近い感覚で、PowerShell 上でも一部の Linux 系コマンドを使えるようになる
winget install Microsoft.Coreutilsでインストールできるwingetでインストールするときは、管理者権限の PowerShell で実行すると権限まわりで詰まりにくい
Coreutils for Windows で使えるようになる代表的なコマンド
ファイル内容の確認
cat
head
tail
wc
cat: ファイルの内容を表示するhead: ファイルの先頭部分を表示するtail: ファイルの末尾部分を表示するwc: 行数、単語数、バイト数などを数える
テキスト処理
grep
sort
uniq
cut
tr
tee
grep: 指定した文字列を含む行を検索するsort: 行を並び替えるuniq: 連続して重複した行をまとめるcut: 行の一部を切り出すtr: 文字の置換や削除を行うtee: 標準出力を画面に表示しつつ、ファイルにも書き込む
ファイル操作・パス操作
touch
cp
mv
rm
ls
find
xargs
realpath
basename
dirname
touch: 空ファイルを作成したり、タイムスタンプを更新したりするcp: ファイルやディレクトリをコピーするmv: ファイルやディレクトリを移動・名前変更するrm: ファイルやディレクトリを削除するls: ファイルやディレクトリの一覧を表示するfind: 条件に合うファイルを検索するxargs: 標準入力で受け取った内容を別のコマンドの引数として渡すrealpath: 絶対パスを表示するbasename: パスからファイル名部分を取り出すdirname: パスからディレクトリ部分を取り出す
チェックサム確認
md5sum
sha256sum
sha512sum
md5sum: MD5 ハッシュ値を計算するsha256sum: SHA-256 ハッシュ値を計算するsha512sum: SHA-512 ハッシュ値を計算する
注意点
- PowerShell には
ls、cat、cp、mv、rmなどのエイリアスが最初から存在する - そのため、Coreutils 版を明示して使いたい場合は、以下のように
.exeを付ける
ls.exe
cat.exe
cp.exe
mv.exe
rm.exe
- PowerShell のコマンドレットを置き換えるというより、Linux / Unix 系のコマンドも PowerShell 上で使えるようにする補助ツールとして考えるとよさそう