やりたいこと
- ターミナルをかっこよくしたい
- Win10でbashを使いたい
- LinuxのVMが欲しい
手順
Hyperをインストールする
https://hyper.is/#installation
からwindows用のインストーラをダウンロードして普通にインストールします。
インストールが終わると、シェルはcmdで起動します。まだかっこよくはないですが。
Hyperのキホン
hyperの設定などは基本的にファイル記述で行います。
HPには$Env:AppData/Hyper/.hyper.jsとありましたが、実際には\ユーザディレクトリ\AddData\Roaming\Hyper\.hyper.js
でした。
プラグインの追加もここに書くだけ、ショートカットキーもここに書くだけ、楽ちんです。
冒頭のgifのようにするには下で書きますが、大抵のことは親切なHPに書いてあります。
https://hyper.is/
PowerShellやcmdをHyperで使うだけなら、ここまででカスタマイズだけすればいいでしょう。
WSLのUbuntuを作る
Hyperをインストールしたら次はWSLでbashを準備します。
情報の多いUbuntuをWSLで立てます。
WSLを有効にする
Windowsの機能の有効化または無効化でWindows Subsystem for Linuxを有効にします。
チェックを入れてOKを押し、再起動したら有効になります。
cmdなどでwsl --helpとでも入力するとコマンドが確認できます。
Ubuntuをインストール
次にディストリをインストールします。Microsoft Storeからインストールします。
今回は特にこだわりがないのでubuntu 18.04 LTSとします。
サイズが大きいので少し待ちますがVMを立てるよりはよっぽど早いです。
完了したら起動して、username、passwordを入力します。これでWSLのセットアップは完了です。
とりあえずおまじないはしておきます。
sudo apt update
sudo apt upgrade -y一度exitして、PowerShellからwsl --listコマンドを打つと、存在が確認できます。
このubuntu自体をwslで起動するには作られるショートカットを叩くか、以下のようなコマンドを打ちます。
wsl--list>WindowsSubsystemforLinuxディストリビューション:>Ubuntu-18.04(既定)wsl-u[username]-dUbuntu-18.04# もしくは 既定 なので以下でもwsl-u[username]Ubuntu(WSL)のホームディレクトリを分かりやすいところにする
上記までのUbuntuのホームディレクトリはシンプルに見えてその実、隠されています。
cd ~
pwd> /home/[user name]
# 実際は `C:\Users\[windowsのuser name]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\[user name]\`このままでは使い勝手が悪いので、ユーザホームディレクトリを移します。これはUbuntuの知識です。
Windowsサイドでディレクトリを作る
好きなディレクトリを作ります。今回はC:\linux_homeとしました。
Ubuntuから見えるか確認する
Ubuntu(WSL)のコンソールから以下のコマンドで、アクセスできることを確認します。
ls /mnt/c/linux_home/
.bashrcなど既にあるファイル群を先に移す
ホームディレクトリを移したら、既に作られたファイルは移動されないので、先にやっておく。
cd ~
cp-r. /mnt/c/linux_home
/etc/passwdを編集してユーザのホームディレクトリを変更
# 設定ファイルを編集しますsudo nano /etc/passwd
# ↓ユーザ名の行を探し/home/xxxを「/mnt/c/linux_home」に変更{ubuntu上のユーザ名}:x:1000:1000:,,,:/mnt/c/linux_home:/bin/bash
# 保存してnanoを終了exit確認
一度WSLをexitして再起動したら、以下のコマンドで空ファイルを作って確かめて見ます。
cd ~
pwd> /mnt/c/linux_home
touch test.txt
WIndowsからC:\linux_homeにアクセスして、ファイルが見れることを確認します。
SCPなどしなくてもファイルが取れるのは楽ですね。
Ubuntu(WSL)のbashをHyper(Windows)で動かす
上記までは、PowerShellからWSLコマンドを実行したり、WSLコンソールを使ったりしていたわけですが、HyperのシェルをUbuntu(WSL)のbashにします。
\ユーザディレクトリ\AddData\Roaming\Hyper\.hyper.jsを編集します。
これは、Hyperのメニュー → Edit → Preference でも開けます。
module.exports={config:{// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~shell:'c:\\Windows\\System32\\wsl.exe',// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~shellArgs:['~'],// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~};上記のように編集したらHyperを再起動。
するとbash(ubuntu)(WSL)がHyperで動いているはずです。さっきのtest.txtでも消してしまいます。
bashのカスタマイズ
上記までで、とりあえずbashは使えましたが、カスタマイズします。zshっぽいbashにします。
ホームディレクトリの.bashrcを編集します。
.bashrcなど既にあるファイル群を先に移すの項でコピーしていなければ、デフォルトで生成します。
編集して保存したら、source .bashrcで再読み込みします。
ローカライゼーション
日本語の文字化けが起きないように
# 末尾に以下を追加
export LANG=ja_JP.UTF-8
プロンプト
プロンプトは、ホスト名を表示しないことにします。
既存の設定を参考に@と\h、\h以降の色指定を消してしまいます。
# 以下のPS1の代入式だけ変更
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u:\w\$ '
fi
sourceコマンドで再読み込みしたら、プロンプトは ユーザ名:カレントディレクトリ$と成っているはずです。
glob (**)を有効にする。
recursiveオプションの省略的なglobstarを有効にします。
# 末尾に以下を追加
shopt -s globstar
autocd
コマンドを入れずにディレクトリを指定するとcdとなります。
# 末尾に以下を追加
shopt -s autocd
Hyperのカスタマイズ
プラグインの追加
.hyper.jsに記述してもいいですが、hyper iコマンドでもインストールできます。
PowerShellなどから以下をいっぺんに。
プラグイン個別の細かい解説などはしません。
※hypercrowdはWSLで、尚且マウントしたディレクトリがカレントの場合は問題が起こるようです。
(https://github.com/hharnisc/hypercwd/issues/51)
良いプラグインですが見送ります。
hyper i hyper-material-theme
hyper i hyper-search
hyper i hyper-transparent
hyper i hyper-highlight-active-pane
hyper i hyper-blink
hyper i hyperline
hyper i hyper-statusline
'.hyper.js'を編集するなら
// ~~~~~~plugins:['hyper-material-theme','hyper-search','hyper-transparent','hyper-highlight-active-pane','hyper-blink','hyperline','hyper-statusline'],// ~~~~~~プラグイン各々の設定と確認
とりあえずデフォルトでいく。