PowerShellでcoreutilsを使う
uutils/coreutilsをインストール
code:sh
winget install uutils.coreutils
組み込みのエイリアスを無効化する
次に組み込みのエイリアスを無効化する。コレをしておくと拡張子を省略しても uutils/coreutils を使ってくれるようになる。
code:profile.ps1(sh)
# Remove alias
@('cat', 'cp', 'echo', 'mv', 'pwd', 'rm', 'ls', 'sleep', 'tee') |
ForEach-Object { Remove-Alias $_ -Force -ErrorAction SilentlyContinue }
# uutils/coreutils (お好みで)
Set-Alias which where.exe
よく使うコマンドを更に追加する
Git for Windows をインストールしていれば grep、sed などの文字列操作のコマンドが利用できる。coreutils に含まれるものではないが入れておくと便利なので合わせて設定しておく。 こちらにも pwd などが含まれるが MSYS 由来で cygpath で出力されるパスが変換されてしまうのでWindowsでは uutils/coreutils を優先利用するようにしておいたほうがトラブルが少ないはず。 code:sh
# wingetの既定のディレクトリ ※1
C:\Users\<USERNAME>\AppData\Local\Microsoft\WinGet\Links
# 以下を環境変数に※1よりも後ろに設定する
C:\Program Files\Git\bin
C:\Program Files\Git\usr\bin
サンプル
あらかた使えるようになればいかが通るはず。
code:sh
echo $env:PATH | sed -e 's/;/\n/g' | grep python | wc -l
1