Nushell + Starshipで最速Windowsターミナル環境構築
Rust製の高速ターミナル+デコレーションツール
------------------- ↓ 本題はここから ↓-------------------
fishを使いた過ぎてMSYSを使う暴挙に出たが、
やっぱりもっさり感が拭えない。
使い勝手は滅茶苦茶いいので、
そこは目をつぶろうかと思ったが、
別にいいのがあったのでそれを試す。
それが
fishと同等まではいかないが、
コード補完やgitのデコレーションなどが備わっている。
そして動作は最速安定のRust製。
ということで試してみることにした。
ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪
------------------- ↓ 本題はここから ↓-------------------
wingetをインストール
Windows10を最新にしておくのが前提
ストアページからアプリ インストーラーをインストールする
Nushellのインストール
wingetからインストール。
Path調整のためpowershellを一度閉じる
管理権限も欲しいのでgsudoを一緒に入れておく
winget install gsudo
gsudo winget install Nushell.Nushell
exit
Nushell起動
powershellを再度起動してNuShellを起動
nu --version
0 │ version │ 0.33.0
nu
(^^♪ もうすでにいい感じ
一旦powershellに戻っておく
exit
StarShipのインストール
(令和3年12月1日更新、starshipバージョン1.0.0対応)
こちらはインストーラではなく手動で入れる。
zipファイルをダウンロード、解凍してNuShellと同じディレクトリに保存する。
(Pathが通るからね)
scoop入れてる人はscoopコマンドでも可
以下のサイトより最新版をダウンロードする
その際、~~x86_64-pc-windows-msvc.zipという名称のファイルを選択する
Invoke-WebRequest -Uri https://github.com/starship/starship/releases/latest/download/starship-x86_64-pc-windows-msvc.zip -o starship.zip
Expand-Archive -Path .\starship.zip
program filesには管理者権限が必要なので、
管理者権限のPowershellを起動する
gsudo powershell
cd starship
cp .\starship.exe 'C:\Program Files\nu\bin\'
exit
Nushellを起動してパスを確認
nu
starship --version
03/26/2022 10:28:11 PM
starship 1.5.4
tag:v1.5.4
commit_hash:d420a63e
build_time:2022-03-24 19:26:50 +00:00
build_env:rustc 1.59.0 (9d1b2106e 2022-02-23),stable-x86_64-pc-windows-msvc
StarShipの設定
NuShell起動してStarShipを初期プロンプトに設定。
初期設定を有効にするためNuShell再起動
mkdir ~/.cache/starship/
config set startup ["starship init nu | save ~/.cache/starship/init.nu" "source ~/.cache/starship/init.nu"]
nu
(´▽`) かわE~
------------------- ↓ 後書はここから ↓-------------------
Nerd Fontsのインストール
StarShipのインストールマニュアルには、
Nerd Fontsを先に入れてくれとある。
Nerd Fonts patches developer targeted fonts with a high number of glyphs (icons). Specifically to add a high number of extra glyphs from popular ‘iconic fonts’ such as Font Awesome, Devicons, Octicons, and others.
https://www.nerdfonts.com
開発者向けだけどファンシーなフォント群って感じか。
ダウンロードページから好きなもの選べって感じだが、
選べと言われると困るので、
ここでは「 FiraCode Nerd Font」を選択。
ファイルをダウンロードと大量のフォントファイルが出てくるので、
Fira Code Regular Nerd Font Complete Windows Compatible
という名称のOpenType Fontを右クリックしてインストール。
Windows Terminalなどのフォント設定を調整する。
NuShellのLinuxやMacの対応
さて、Windowsで使うことを前提に記事を書いたが、
LinuxやMacももちろんサポートしている。
Linuxの場合
Rustをインストールしてcargoビルドをかける
Linuxbrewをインストール済みならばMac版と同じコマンドでインストールできる
sudo apt install build-essential pkg-config libssl-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
export PATH=$HOME/.cargo/bin:$PATH
cargo install nu
nu --version
ArchLinuxの場合はyayの NuShell-bin
というパッケージを使用する
Macの場合
MacはHomebrew経由でインストールできる
brew install nushell
nu --version
StarShipのLinuxやMacの対応
Linuxの場合
こちらはインストーラーがあるのでそれを使うようだ。
sh -c "$(curl -fsSL https://starship.rs/install.sh)"
linuxbrewを入れてる場合はMacと同様に行けると思う。
Macの場合
brew install starship
Busyboxを追加してよりLinuxっぽくする
BusyboxとはUnixコマンド体系のエミュレーターで、
一つのバイナリファイルでを全部網羅する
Alpine Linuxの中核部分でもある。
そのWindows版にbusybox-w32というのがあるのでそれを使う。
invoke-webrequest http://frippery.org/files/busybox/busybox64.exe -o busybox64.exe
gsudo powershell
cp .\busybox64.exe 'C:\Program Files\nu\bin\'
exit
busybox64
BusyBox v1.34.0-FRP-3902-g61e53aa93 (2021-03-02 15:10:05 GMT)
これでbusybox [コマンド]と打てば各種Linuxコマンドが使える
busybox64 which explorer
busybox64 find -name *.txt
busybox64 wget URL
頭にbusyboxと打つのが嫌な場合はinstallコマンドすると各種エイリアスが作られる
適当なところにインストールしてNuShell上のパスを通しておく
以下ではAppDataのRoaming内にインストールしている
gsudo nu
cd $nu.env.APPDATA
mkdir Busybox
cd Busybox
busybox64 --install -s .
ls
─────┬───────────────────┬─────────┬──────┬────────────
# │ name │ type │ size │ modified
─────┼───────────────────┼─────────┼──────┼────────────
0 │ [.exe │ Symlink │ 0 B │ 2 secs ago
1 │ [[.exe │ Symlink │ 0 B │ 2 secs ago
2 │ ar.exe │ Symlink │ 0 B │ 2 secs ago
NuShell側のパスを追加していつでも使えるようにする
$nu.path | prepend ($nu.env.APPDATA + \Busybox) | prepend "C:\Program Files\nu\bin\" | config set_into path
───┬─────────────────┬─────────────────
# │ path │ prompt
───┼─────────────────┼─────────────────
0 │ [table 27 rows] │ starship prompt
───┴─────────────────┴─────────────────
パスが設定されたかは以下のコマンドで確認できる
$nu.path
────┬───────────────────────────────────────────────────────────────────
0 │ C:\Program Files\nu\bin\
1 │ C:\Users\Regolith\AppData\Roaming\Busybox
セットし直したいときは一度削除する
config remove path
コマンド被りもあるのでいくつか削除するのもあり
rm .\ar.exe
rm .\bash.exe
rm .\less.exe
他のターミナルとの対比表
bashやpowershellとのコマンドの差異を一覧にしている
徐々に慣れていくか。
Discussion