20190704のLinuxに関する記事は4件です。

Windows Subsystem for Linux(WSL)でUbuntu!

:writing_hand_tone2: WSL環境構築個人的メモ :writing_hand_tone2:

この記事は
N予備校Webプログラミングコース
2章ができる最低限の環境を構築を目標にした個人的メモです。

WSLは、バーチャルボックスで仮想環境を構築して~の手順を省いて
WinOS上でLinuxを扱えるスーパーな機能なのです。:v:

:skull: 必須環境 :skull:
OS: Win10 バージョン1709(ビルド16299)以降

OSの更新
スタートボタン  (画面左下の四角)
 → 設定⚙️
  → 更新とセキュリティ

WSLインストール編

参考ページ (というか、こっちを見てください:eyes:)
@IT
https://www.atmarkit.co.jp/ait/articles/1608/08/news039.html

WSL機能を有効にする

スタートボタン右クリック:punch_tone2:
 → 「アプリと機能」    (リスト一番上)
  → 関連設定「プログラムと機能」     (右側にあるリスト)
:point_up:ウィンドウサイズが小さいと隠れます。見えない時は横にウィンドウを広げる
or 一番下までスクロール
:swimmer:

windowsの機能の画面が開かれたら
「Windows Subsystem for Linux」のチェックボックスをオンにしてインストール:star::sparkles:

インストールが終わったら再起動。

Ubuntuパッケージをストアから導入

スタートボタンから、Microsoft Store(買い物袋マーク)をクリック。

スタートにピン止めしていない場合は、左端のリスト欄上から三番目の「すべてのアプリ」を
選択して「M」の項「Microsoft Store」を選択してください。

Microsoft Store 右上の検索マークをクリックし「Ubuntu」で検索。
表示されるリストの一番上の「WindowsでLinuxを実行するアプリを入手する」を選び、「Ubuntu」を選択。
(N予備校がUbuntuを使用しているので)。

選択したら
→ 入手
 → :star::sparkles:インストール:star::sparkles:

インストールを終わったら「起動

ubuntu上で初期設定が始まるので、数分ほど待機。
設定が終わるとログイン名、パスワードを求められます。

ログイン名を入れ(仮にvagrant)、そしてパスワードを記入。
パスワードはsudoという管理者コマンド使用時に聞かれます。空欄はダメらしい。

そしたら、ななななんと、Linuxが使えるように:angel:

WSLのUbuntu環境を日本語化編

:star:はいここを参照してください:star:
@IT
https://www.atmarkit.co.jp/ait/articles/1806/28/news043.html

1.パッケージ情報の更新
sudo apt update
sudo apt upgrade

2.日本語言語パックのインストール
sudo apt -y install language-pack-ja

3.ロケールを日本語に設定
sudo update-locale LANG=ja_JP.UTF8

4.ここでいったん終了してから、Ubuntuを再起動

5.タイムゾーンをJSTに設定
sudo dpkg-reconfigure tzdata

6.日本語マニュアルのインストール
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ディレクトリをホームを変更! ~:sailboat:

WSLでのPC Cドライブのパスは /mnt/c/ だそうです。

etc/passwdファイルを書き換える
sudo vim /etc/passwd

vim(テキストエディタ)の使い方はN予備校2章5項を参照してください:relaxed:
もしくはここQiitaでvimと検索すれば使い方テキストがどこかにあるはず。:eyes:

(↓ユーザ名の行を探し: :に挟まれてるパス/home/xxxを
「/mnt/c/Users/${ユーザー名}/vagrant/ubuntu64_16/workspace」に変更し保存(パスは自分の環境に合わせてください )

vagrant:x:1000:1000:,,,:/mnt/c/Users/${ユーザー名}/vagrant/ubuntu64_16/workspace:/bin/bash

保存したら一度閉じて、再度Ubuntuを起動させればホームディレクトリが変更されています。:v: ..のはず
pwd
で確認してみてください。

もし上のほうにrootとかsudoなんとかのメッセージ出てたら、
sudo ls
などで管理者としてコマンド使うときえます。

一応、WSL上で作ったディレクトリとファイルは、WinのVScodeでちゃんと扱えるのは確認しましたが、
何故かすでにgitコマンドが使えてたり、windows用のgitを既に入れていたからなのかそうじゃないなのか、
謎が多いのでしばらくは様子見してみます。
Z3BqLk5VYVZBQWNVcW5mM3RrRC9haWRlbS9tb2MuZ21pd3Quc2JwLy86c3B0dGg=-f42.jpg

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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=3

windowsアップデートと同じことをする

セキュリティーアップデートのみ

sudo apt update && sudo apt upgrade

ソフトウェアのアップデート

sudo apt update && sudo apt dist-upgrade

ディスクをマウント等の関連

ディスクの一覧をみる

sudo fdisk -l

UUIDの確認

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 that

uuid 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 0

exit 0より前に必要なスクリプトを組み込んだりコマンドを実行すると良いです。
しかし、サービスとして扱うものとは別です。
こちらで起動したものは安全な終了が保証されない場合がありますので要注意

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

WSL2のコロコロ変わるIPをMyDNSで何とかする

1.WSL2のIPは起動するごとに変わる気まぐれさん

 Windows10Build18922に搭載されているWSL2はお試しバージョンということだけあって、ネットワークに難があります。その最たるものは、起動するごとにプライベートIPが変化する部分です。これではsshやhttp接続の時に、面倒くさいことこの上ない状態となります。

 IPを固定する方法を試行錯誤してみたのですが、ホストOS側の仮想ブリッジが再作成されてネットワークそのものが変えられてしまうため、小手先でどうにかなる問題ではありませんでした。

 ということで対応策を考えた結果、ドメインと関連付ければ良いという結論に至りました。

2.そうだ、MyDNSを利用しよう

 まずは、MyDNSでアカウントを作成し、ドメインを一つ設定します。ローカルで使うだけなので、無料の中から好きなものを選びましょう。

3.プログラムのインストール

 お察しの通り、まっとうな方法ではプライベートIPを登録することは出来ないので、WSL上でnodeを入れてゴニョゴニョします。

sudo apt install nodejs npm

 wsl2mydnsをnpmからインストールします。これがゴニョゴニョするプログラムです。

sudo npm -g  wsl2mydns

 これで必要なもののインストールは完了です。

4.Windows側でbatを作成

wsl_start2.bat
@echo off
start wsl wsl2mydns MyDNS-ID MyDNS-PASS
pause

 WSL2を使うときに、この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で出来ています。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【目的無しの泥臭調査⑧】監視情報表示の「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やメモリ、ネットワーク等の情報がグラフになって可視化される。
    • 各情報がブロックとして、整理されており、見やすく表示されている。
    • ディスク容量の概要も確認できる。

image.png

基本操作

  • gtopの基本操作コマンドとしては、下記。
内容 コマンド
起動 gtop
プロセス順での並び替え 起動状態のまま、p
メモリ順での並び替え 起動状態のまま、m
CPU順での並び替え 起動状態のまま、c
終了 起動状態のまま、q
  • 一部の環境で、表示の不具合や挙動エラーが起きる場合がある。
  • その場合、下記のコマンドをうち、環境変数を設定して、起動する。
$ LANG=en_US.utf8 TERM=xterm-256color gtop

まとめ

  • 今回は、監視コマンドの可視化ということで、「htop」コマンドとの併用の目論みと、両方使いによるメモリの高負荷の心配を抱えながら、記事を書く。
  • 数日監視コマンドと向き合った私は、改めて「メモリの使用量軽視」という重く愉快な現実がのしかかる。
  • 時代の突然変異なのか、急に「Linux外観ツール大流行」が起きている日常は、いつまで継続するのか自己問答。

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む