コントールパネル → プログラムと機能 → Windowsの機能の有効化と無効化 → ☑Windows Subsystem for Linux
これをセットしてリブートすれば、準備完了です。後は、Windows store から Ubuntu を
入れるだけです。
Windows store → 検索 → WSL → Ubuntu を選択インストール
今回は bash を使う事が主目的でなくあくまで TeraTerm の代わりをできるかを目的として
おります。そして自動ログインしてコマンド実行をしたリクエストがあったので軽くテスト
してみました。この辺りは bash + expect があれば何とかなるかなと思っておりました。
始めて使う Ubuntu なので良くわかりませんが、 apt-get expect とやっても無いと言われ
ます。どうもパッケージDBを更新する必要があるようです。
> sudo apt-get update
これで更新されたようです。必要なパッケージを入れてみます。
> sudo apt-get install screen
> sudo apt-get install expect
これで自動実行に必要なパッケージは揃いました。screen はシリアルアクセスの時に
便利なパッケージです。今は知りませんが uucp のオーナーで dialer のグループで
なとアクセスできなかったり面倒くさい思い出ばかりです。なので、モードは甘くして
おきます。使うシリアルは aliexpress で 300円ぐらいで買ったシリアルでポートです。
ポート(COMとLPT) USB-SERIAL CH340(COM3)
COM3 へは Ubuntuからは /dev/ttyS3 でアクセスできます。
>sudo chmod 666 /dev/ttyS3
> sudo screen ttyS3 115200
何かつながっていれば、確認できる筈です。
auto.sh
#!/usr/bin/expect -f
set
timeout 10
spawn
sudo
screen
/dev/ttyS3
9600
expect
"sbin:"
//sudo
のパスワードを聞かれる
send
"ひみつ\r"
//
ひみつのパスワードを送る
send
"\r"
expect
"login:"
send
"manager\r"
expect
"Password:"
send
"でもでも\r"
expect
"g401>"
send
"lo\r"
expect
"g401>"
send
"^a K\r"
//
screen
から抜ける
sleep
5
send
"y\r"
#interact
expect eof
簡単にルーターのコンソールにシリアルでログインして抜けられました。
続けて ssh してみます。
auto.sh
#!/usr/bin/expect -f
set
timeout 10
spawn
/usr/bin/ssh
sbin@server
expect
"Password:"
send
"ひみつ\r"
expect
"]"
send
"ls -l \r"
expect
"]"
send
"exit\r"
#interact
expect eof
sshでも自動でログインできますね。お手軽に自動化できそうです。
因みにログを取る場合は、
./auto.sh > log &
でlog に書かれます。
そう言えばフォントも変えておきます。
UbuntuMono-R.ttf を落としていれます。regedit で
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
にアクセスして
000 REG_SZ Ubuntu Mono
を登録します。あとは bash のプロパティで
Ubuntu Monoを設定すればフォントも変わります。
そう言えば Ubuntu は全て sudo で管理者コマンドを実行します。su か su - に切り替えます。
> sudo passwd root
これで root のパスワードを設定します。
続いて root になるため自分をrootグループに加えます。
sbin@sbin-g4:~$ cat /etc/group
root:x:0:sbin
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,sbin
これで、su で root になれます。
しばらく使ってみると、ストレスを感じます。ターミナルが酷くて vi が変になります。
これは使えません。評判の良さそうな wsltty を入れてみます。
これでかなり良くなりました。あれ、そう言えば日本語のロケールが無い事に今更気が付きます。まあ無くてもいいのですが、折角なのでいれます。
>su
ロケールが追加されました。ロケールを切り替えます。続いて時間も東京にします。
# update-locale LANG=ja_JP.UTF8
# dpkg-reconfigure tzdata
最後に間に合わないマニュアルも入れておきます。
# apt -y install manpages-ja manpages-ja-dev
大夫ストレスがなくなりました。ターミナルは TeraTerm のようにバックグランドは
白が好きです。前景色を黒、背景色を白に設定すると同じようになります。
ところが 端末タイプを xterm-256color に設定しているとあちこちカラーで色分けされて
いるのですが、黄緑とか見えにくい色が多用されています。ストレスです。
$ dircolors -p > ~/.dircolors
現在の設定を .dircolors に書き出します。この中で 01;32 に設定されている部分が見え
にくいので 01;34 に書き換えます。
$ dircolors -b > ~/.dircolors
で書き換えるか、ターミナルを立ち上げ直します。最初から .dircolors があるか .bashrc
でテストされていますので、立ち上げ直せば設定されます。
ところが、プロンプトが未だに黄緑色で苛っとします。
これは、.bashrc に PS1 で選定がありました。
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
\[\033[01;32m\と32m で黄緑が指定されているので 34に変更します。
これでようやくターミナルとして使えるようになりました。簡単なスクリプトは、ローカル
で実行できるようになったので便利です。
そう言えばWindows とファイルをやり取りする場合のパスが深いので HOMEを移動される
設定をしてみましたが、止めました。 移動すると Permissionが 7777 になってしまい
ssh が秘密キーで使えなくなります。
ショートカットを行きと戻りを作って行き来した方が良さそうです。テキストファイルは
ターミナルにドロップすれば、パスに変換されるので不自由ありません。ターミナルからは
/mnt/c/xxx でWindows の全域にアクセス可能です。
これでストレスなく 使える環境になりました。
WSL2 には暫く上げる予定はありません。 Hyper-V がサポートされ tcp-dump も動く
ようですが、古い VMWare が動かなくなってしまい副作用もあるので予定なしです。