今日やったこと

  • PowerShell で Coreutils for Windows を使えるようにした
  • 管理者権限で PowerShell を開き、winget で Coreutils for Windows をインストールした
winget install Microsoft.Coreutils
  • インストール後、PowerShell 上で Linux / Unix 系の基本コマンドが使えるようになったことを確認した

学んだこと

  • Coreutils for Windows は、Windows 上で Linux / Unix 系の基本コマンドを使えるようにするためのツールである
  • PowerShell には lsdir など最初から使えるコマンドもあるが、これは 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 には lscatcpmvrm などのエイリアスが最初から存在する
  • そのため、Coreutils 版を明示して使いたい場合は、以下のように .exe を付ける
ls.exe
cat.exe
cp.exe
mv.exe
rm.exe
  • PowerShell のコマンドレットを置き換えるというより、Linux / Unix 系のコマンドも PowerShell 上で使えるようにする補助ツールとして考えるとよさそう