2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WSL2~WindowsでLinux~(その2:色々活用してみる)

Last updated at Posted at 2020-12-20

この記事は以下の続きです。
WSL2 ~WindowsでLinux~(その1:導入編)

1. はじめに

この記事の概要

前編ではWSL2でUbuntu20.04を導入しました。
Ubuntu-20.04を設定したり色々と使ってみます。

  1. プロキシーの設定をしてみる
  2. パッケージのアップデートをしてみる
  3. 使い慣れたツール(ifconfigなど)を導入してみる
  4. コマンドプロンプトからWSL内部のコマンドを使ってみる
  5. 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
~/.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コマンドを実行してみる

コマンドプロンプトからWSL内部の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を作る。

awk.bat
wsl -d Ubuntu-20.04 --exec gawk %*
実行してみる
C:\>type test.csv | awk -F "," "{ print t($2)}"
結果
NAME
TANAKA
ABE

(3)時刻同期をしてみる

wsl上で時刻同期を実行する
$ 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)認証方法の設定

/etc/ssh/sshd_configを編集する
$sudo -E vi /etc/ssh/sshd_config 
パスワード認証をONにする
- 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) クライアントからログイン

Windowsコマンドプロンプト
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/

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?