この記事は以下の続きです。
WSL2 ~WindowsでLinux~(その1:導入編)
1. はじめに
この記事の概要
前編ではWSL2でUbuntu20.04を導入しました。
Ubuntu-20.04を設定したり色々と使ってみます。
- プロキシーの設定をしてみる
- パッケージのアップデートをしてみる
- 使い慣れたツール(ifconfigなど)を導入してみる
- コマンドプロンプトからWSL内部のコマンドを使ってみる
- SSHでUbuntuに接続する環境を整えてみる(Windows環境からUbuntuにSSH)
2. 本編
2-1. プロキシーの設定をしてみる
必要に応じてプロキシーを設定します。
githubのコミュニティを見ると設定方法としては2種類ありそうです。
https://github.com/microsoft/WSL/issues/1570
- 環境変数による設定
- apt用の設定
curlやwgetなどのツールでもプロキシを使うので、環境変数を使う事にしました。
(1)~/.bashrcの編集
cd ~/
vi .bashrc
export http_proxy=http://proxy-server:PortNumber
export https_proxy=http://proxy-server:PortNumber
(2)環境変数を反映する為にログアウト&ログイン
exit
wsl -d Ubuntu-20.04
参考:apt用の設定(今回は設定しない)
sudo vi /etc/apt/apt.conf.d/proxy.conf
Acquire::http::Proxy "http://proxy-server:PortNumber";
Acquire::https::Proxy "http://proxy-server:PortNumber";
2-2.パッケージのアップデートをしてみる
sudo -E apt-get -y update
「-E」は、環境変数を引き継ぐオプションで、proxyを設定している場合に必要です。
2-3.使い慣れたツールを導入してみる
初期段階では以下のような使い慣れた基本的なコマンドがありませんでした。
- ifconfig
- netstat
- brctl
- traceroute
上記のコマンドが無いのはipコマンドに移行しているからだと思いますが、使い慣れたコマンドが欲しいので導入してみます。
(1) ネットワーク関連のツールをインストール
sudo -E apt -y install net-tools <==== arp,ifconfig,netstat,rarp,route
sudo -E apt -y install bridge-utils <==== brctl
sudo -E apt -y install inetutils-traceroute <=== traceroute
(2) Pythonを入れる
python3という名前で最初から入ってました。
$ sudo -E apt -y install python3
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3 is already the newest version (3.8.2-0ubuntu2).★
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2-4. Win10のコマンドプロンプトからWSL内部のコマンドを活用してみる
(1)dateコマンドを実行してみる
C:\>wsl -d Ubuntu-20.04 --exec date --date=now
Sun Dec 20 14:09:12 JST 2020
(2)gawkを実行してみる
① カンマ区切りレコードの2つ目の項目を抜き出す
C:\>echo "aaa,bbb,ccc" | wsl -d Ubuntu-20.04 --exec gawk -F "," "{print $2}"
bbb
② windows上のCSVファイルからレコードを読みだしてWSLのawkで大文字にしてみる
C:\>type test.csv
id,name
1,tanaka
2,abe
C:\>type test.csv | wsl -d Ubuntu-20.04 --exec gawk -F "," "{ print t($2)}"
NAME
TANAKA
ABE
③ awk.batで呼び出せるようにする。
パス上にawk.batを作る。
wsl -d Ubuntu-20.04 --exec gawk %*
C:\>type test.csv | awk -F "," "{ print t($2)}"
NAME
TANAKA
ABE
(3)時刻同期をしてみる
$ sudo hwclock -s
2-5.SSHでUbuntuに接続する環境を整えてみる(Windows環境からUbuntuにSSH)
(1)インストール
sudo -E apt -y install openssh-server
略
0 upgraded, 0 newly installed, 0 to remove and 74 not upgraded.
既に入ってた!
(2)認証方法の設定
$sudo -E vi /etc/ssh/sshd_config
- PasswordAuthentication no
+ PasswordAuthentication yes
ローカル環境なのでセキュリティは緩めです。
(3)ホストキーの生成
$ sudo ssh-keygen -A
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
(4)サービスの起動
$sudo service ssh restart
* Restarting OpenBSD Secure Shell server sshd [ OK ]
(5) クライアントからログイン
C:\>ssh -l [Ubuntuのユーザ名] [UbuntuのIPアドレス]
[ユーザ]@[IPアドレス]'s password:●●●●●● <===== ログインのパスワード
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 4.19.128-microsoft-standard x86_64)
***途中略***
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
[User]@[PC-NAME]:~$
まとめ
WindowsとWSLの間をパイプでつなぐテクニックは、色々と応用が効きそうです。
参考
https://docs.microsoft.com/ja-jp/windows/wsl/interop
https://docs.microsoft.com/ja-jp/windows/wsl/release-notes
https://docs.microsoft.com/ja-jp/windows/wsl/wsl-config#configuration-options
https://roy-n-roy.github.io/Windows/WSL%EF%BC%86%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A/wslconfig/