- 投稿日:2019-07-04T15:03:09+09:00
Windows Subsystem for Linux(WSL)でUbuntu!
WSL環境構築個人的メモ
![]()
この記事は
「N予備校Webプログラミングコース」
2章ができる最低限の環境を構築を目標にした個人的メモです。WSLは、バーチャルボックスで仮想環境を構築して~の手順を省いて
WinOS上でLinuxを扱えるスーパーな機能なのです。
必須環境
OS: Win10 バージョン1709(ビルド16299)以降
OSの更新
スタートボタン (画面左下の四角)
→ 設定⚙️
→ 更新とセキュリティWSLインストール編
参考ページ (というか、こっちを見てください
)
@IT
https://www.atmarkit.co.jp/ait/articles/1608/08/news039.htmlWSL機能を有効にする
スタートボタンを右クリック
→ 「アプリと機能」 (リスト一番上)
→ 関連設定「プログラムと機能」 (右側にあるリスト)
ウィンドウサイズが小さいと隠れます。見えない時は横にウィンドウを広げる
or 一番下までスクロールwindowsの機能の画面が開かれたら
「Windows Subsystem for Linux」のチェックボックスをオンにしてインストールインストールが終わったら再起動。
Ubuntuパッケージをストアから導入
スタートボタンから、Microsoft Store(買い物袋マーク)をクリック。スタートにピン止めしていない場合は、左端のリスト欄上から三番目の「すべてのアプリ」を
選択して「M」の項「Microsoft Store」を選択してください。
Microsoft Store 右上の検索マークをクリックし「Ubuntu」で検索。
表示されるリストの一番上の「WindowsでLinuxを実行するアプリを入手する」を選び、「Ubuntu」を選択。
(N予備校がUbuntuを使用しているので)。選択したら
→ 入手
→インストール
インストールを終わったら「起動」
ubuntu上で初期設定が始まるので、数分ほど待機。
設定が終わるとログイン名、パスワードを求められます。ログイン名を入れ(仮にvagrant)、そしてパスワードを記入。
パスワードはsudoという管理者コマンド使用時に聞かれます。空欄はダメらしい。そしたら、ななななんと、Linuxが使えるように
WSLのUbuntu環境を日本語化編
はいここを参照してください
@IT
https://www.atmarkit.co.jp/ait/articles/1806/28/news043.html1.パッケージ情報の更新
sudo apt update
sudo apt upgrade2.日本語言語パックのインストール
sudo apt -y install language-pack-ja3.ロケールを日本語に設定
sudo update-locale LANG=ja_JP.UTF84.ここでいったん終了してから、Ubuntuを再起動
5.タイムゾーンをJSTに設定
sudo dpkg-reconfigure tzdata6.日本語マニュアルのインストール
sudo apt -y install manpages-ja manpages-ja-devホームディレクトリの変更(必要な人のみ)
参考
https://qiita.com/funafuna/items/c3bb78a546cf2605205d初期のホームディレクトリ(cd ~ で移動できる場所)が私のPCのどこにあるのかすら謎すぎるので、
(デフォルトの場所)
C:\Users\${ユーザー名}\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\etc\
ヽ(;´Д`)ノぎゃー
N予備校で使用している共有フォルダworkspaceディレクトリをホームを変更! ~WSLでのPC Cドライブのパスは
/mnt/c/だそうです。etc/passwdファイルを書き換える
sudo vim /etc/passwdvim(テキストエディタ)の使い方はN予備校2章5項を参照してください
もしくはここQiitaでvimと検索すれば使い方テキストがどこかにあるはず。(↓ユーザ名の行を探し: :に挟まれてるパス/home/xxxを 「/mnt/c/Users/${ユーザー名}/vagrant/ubuntu64_16/workspace」に変更し保存(パスは自分の環境に合わせてください ) vagrant:x:1000:1000:,,,:/mnt/c/Users/${ユーザー名}/vagrant/ubuntu64_16/workspace:/bin/bash保存したら一度閉じて、再度Ubuntuを起動させればホームディレクトリが変更されています。
..のはず
pwd
で確認してみてください。もし上のほうにrootとかsudoなんとかのメッセージ出てたら、
sudo ls
などで管理者としてコマンド使うときえます。一応、WSL上で作ったディレクトリとファイルは、WinのVScodeでちゃんと扱えるのは確認しましたが、
何故かすでにgitコマンドが使えてたり、windows用のgitを既に入れていたからなのかそうじゃないなのか、
謎が多いのでしばらくは様子見してみます。
- 投稿日:2019-07-04T12:13:29+09:00
linuxを簡単に使えるようにWindowsでおなじみの効果イコールをする為のコマンドのメモ
個人的なメモ書き
linuxを簡単に使えるように極力1行でWindowsでおなじみの効果イコールをする為のコマンドのメモ
ディスク関連のコマンド
dfラズベリーパイでの例
$ df ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置 /dev/root 30787388 4007108 25497180 14% / devtmpfs 494912 0 494912 0% /dev tmpfs 499520 0 499520 0% /dev/shm tmpfs 499520 12888 486632 3% /run tmpfs 5120 4 5116 1% /run/lock tmpfs 499520 0 499520 0% /sys/fs/cgroup /dev/mmcblk0p1 41853 22685 19168 55% /boot tmpfs 99904 0 99904 0% /run/user/1001ディスクをマウントする
mount -o uid=1001,gid=1002 /dev/sdb1 /mnt/ssddataユーザーIDやグループIDがわからない場合はこうする
ユーザーIDを見る例
whoami | idグループID一覧を見る例
cat /etc/groupディスクキャッシュとディスクを同期してキャッシュを開放する
sudo sync && sysctl -w vm.drop_caches=3windowsアップデートと同じことをする
セキュリティーアップデートのみ
sudo apt update && sudo apt upgradeソフトウェアのアップデート
sudo apt update && sudo apt dist-upgradeディスクをマウント等の関連
ディスクの一覧をみる
sudo fdisk -lUUIDの確認
sudo blkid注意:
mountで /dev/sdbなどでマウントを行うと再起動したときに /dev/sdaと/dev/sdbなどの順番が入れ替わった時に
マウントポイントがかわってしまうのでUUIDを利用してマウントするほうが間違えなくて良い。
この場合 /etc/fstab を書き換えて mount -a とすると即座に反映される起動時にディスクをマウントする場合
注意:テストを行わないでマウントをするのはあまり推奨しない
proc /proc proc defaults 0 0 PARTUUID=2374e4bc-01 /boot vfat defaults 0 2 PARTUUID=2374e4bc-02 / ext4 defaults,noatime 0 1 # ssd hdd usb UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX mnt/ssd ext4 defaults 0 0 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on|off] for thatuuid UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX mnt/ssd ext4 defaults 0 0 を
/et/fstab に追加する注意! 間違えるとOSが起動しなくなる
Windowsのスタートアップにあたる仕組み
/etc/rc.local
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi exit 0exit 0より前に必要なスクリプトを組み込んだりコマンドを実行すると良いです。
しかし、サービスとして扱うものとは別です。
こちらで起動したものは安全な終了が保証されない場合がありますので要注意
- 投稿日:2019-07-04T07:52:27+09:00
WSL2のコロコロ変わるIPをMyDNSで何とかする
1.WSL2のIPは起動するごとに変わる気まぐれさん
Windows10Build18922に搭載されているWSL2はお試しバージョンということだけあって、ネットワークに難があります。その最たるものは、起動するごとにプライベートIPが変化する部分です。これではsshやhttp接続の時に、面倒くさいことこの上ない状態となります。
IPを固定する方法を試行錯誤してみたのですが、ホストOS側の仮想ブリッジが再作成されてネットワークそのものが変えられてしまうため、小手先でどうにかなる問題ではありませんでした。
ということで対応策を考えた結果、ドメインと関連付ければ良いという結論に至りました。
2.そうだ、MyDNSを利用しよう
まずは、MyDNSでアカウントを作成し、ドメインを一つ設定します。ローカルで使うだけなので、無料の中から好きなものを選びましょう。
3.プログラムのインストール
お察しの通り、まっとうな方法ではプライベートIPを登録することは出来ないので、WSL上でnodeを入れてゴニョゴニョします。
sudo apt install nodejs npmwsl2mydnsをnpmからインストールします。これがゴニョゴニョするプログラムです。
sudo npm -g wsl2mydnsこれで必要なもののインストールは完了です。
4.Windows側でbatを作成
wsl_start2.bat@echo off start wsl wsl2mydns MyDNS-ID MyDNS-PASS pauseWSL2を使うときに、このbatをWindowから実行すればOKです。IPはMyDNSに通知され、ドメインとプライベートIPが結びつきます。
5.仕組み
MyDNSに通常の方法でIPを通知すると、自分の使っているネットワークのグローバルIPが設定されてしまいます。ということで、プログラムでWSL2上のeth0のIPを通知するようになっています。
ソースコードはGitHubに入れてあります。TypeScriptを使いました。
6.困ったこと
Windowsからビルドしたものをnpmに登録すると、コマンドとして実行させるための以下の行、
#!/usr/bin/env nodeここの改行コードに文句を言われ、コマンドが正常に実行できない状態になりました。おかげで何度もnpmに再アップする羽目になりました。
7.作成に使ったTypeScript
思い立ったが吉日で、さくっと作りました。MyDNSの操作ライブラリは以前から作ってあったので、DirectIP登録の部分だけ追加するだけで済みました。やはりTypeScriptを使うと、素のJavaScriptでやるよりも、プログラミングが楽です。
こちらにTypeScriptの入門ネタを作り始めました。時間のあるときに内容を書き足していきたいと思っています。ちなみにそのシステム自体も、フロントエンドとバックエンド両方ともTypeScriptで出来ています。
- 投稿日:2019-07-04T06:19:09+09:00
【目的無しの泥臭調査⑧】監視情報表示の「top」「htop」コマンドだけでは満足できなかったため、「gtop」を試用して、ネットワーク情報を大幅可視化。
- ふと気になったことを、淡々と赴くままに調査していく、この上ない自己満足記事第八弾。
- 日々成長する効率性や、連日生み出される便利ツールを生かしながらも、泥臭調査も好きで同時に行う生活。
- 今回は、監視コマンドの「top」「htop」コマンドだけでは、満足しなかった外観重視技術者の私のために、「gtop」を試用することにしよう。
概要
- Node.js製の、ネットワークやCPU等といった監視情報をグラフ・ダッシュボード化して分かりやすく表示してくれるコマンドツール。
- 同様のtopやhtopコマンドに比べて、プロセスの流れの理解の容易さや見やすさが利点。
- 公式GitHub
特徴
グラフ表示
- ネットワークやCPU等といった様々な監視情報を、グラフ(可視)・ダッシュボード化して表示するため、視覚的に理解しやすい。
項目ごとの並び替え表示
- topやhtopコマンド同様、CPU使用率やメモリ順に並び替えることが可能なため、不具合等の原因究明がしやすい。
整理された情報表示
- CPUやネットワーク、ディスク容量等といった情報が項目ごとに、ブロックとして、整理されているため、内容が見やすい。
ターミナル完結
- プロセスを可視化するために、別途ツールを立ち上げる必要がなく、ターミナル上で完結する。
作業環境
- Amazon Linux 2
- ※今回はAmazon Linuxを利用しているが、Node.js環境があれば、MacやWindowsでも利用可能。
インストール
- gtopのインストールでは、npm(Node.jsのパッケージ管理)を利用する。
- 今回は、EC2のLinux環境を利用しているため、下記のコマンドをうち、Node.jsのインストールを行う。
- ※EC2以外(WindowsやMac,その他Linux)のNode.jsのインストールはこちらを参考にする。
# バイナリの取得 $ curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash - # Node.jsのインストール $ sudo yum install -y nodejs # npmバージョン確認 $ npm -v
- npm利用確認後、下記のコマンドをうち、gtopをインストールする。
- ※npmが利用できれば、gtopはMacやWindowsでも利用可能。
# gtopのインストール $ npm install gtop -g結果
- 下記、実際の画面。
- CPUやメモリ、ネットワーク等の情報がグラフになって可視化される。
- 各情報がブロックとして、整理されており、見やすく表示されている。
- ディスク容量の概要も確認できる。
基本操作
- gtopの基本操作コマンドとしては、下記。
内容 コマンド 起動 gtopプロセス順での並び替え 起動状態のまま、 pメモリ順での並び替え 起動状態のまま、 mCPU順での並び替え 起動状態のまま、 c終了 起動状態のまま、 q
- 一部の環境で、表示の不具合や挙動エラーが起きる場合がある。
- その場合、下記のコマンドをうち、環境変数を設定して、起動する。
$ LANG=en_US.utf8 TERM=xterm-256color gtopまとめ
- 今回は、監視コマンドの可視化ということで、「htop」コマンドとの併用の目論みと、両方使いによるメモリの高負荷の心配を抱えながら、記事を書く。
- 数日監視コマンドと向き合った私は、改めて「メモリの使用量軽視」という重く愉快な現実がのしかかる。
- 時代の突然変異なのか、急に「Linux外観ツール大流行」が起きている日常は、いつまで継続するのか自己問答。
参考
- https://github.com/aksakalli/gtop
→公式Githubです。大変お世話になりました。- https://linuxfan.info/gtop
→こちらの記事を参考にしました。大変お世話になりました。- https://ubuntuapps.net/blog-entry-1035.html
→こちらの記事を参考にしました。大変お世話になりました。

