ubuntu on windows10のインストール 20200401更新 20170608

!!高専内ではのsecwallの時間切れに注意!!

0.旧版「Bash on Ubuntu on Windows」のアンインストール

すでに旧版がインストールされている場合はここを行います。
「lxrun /uninstall /full」の方法ではアンインストールできなくなりました。(Windows10 16215 以降)
次にある通りにアンインストール
https://tebasaki.xyz/2018/11/25/legacy%E3%81%AAbash-on-windows%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/


1.インストール

ここにある通りにインストール
https://msdn.microsoft.com/commandline/wsl/about
https://msdn.microsoft.com/ja-jp/commandline/wsl/install_guide

日本語で解説してくれています。
http://qiita.com/Aruneko/items/c79810b0b015bebf30bb

インストールの途中で
ユーザ名とパスワードの設定を求められます。
今後,起動時にはここで設定したユーザ名とパスワードが使われます。


2.Windowsショートカットの修正(option)


Windowsで「Bash on Ubuntu on Windows」のショートカットのプロパティ
リンク先:C:\Windows\System32\bash.exe ~ --login
のように変更(「 --login」を加えると ~/.profile が読み込まれる。)


3.「Bash on Ubuntu on Windows」の起動

「Bash on Ubuntu on Windows」のショートカットで起動
あるいは、コマンドプロンプトあるいはパワーシェルを起動し
 >bash
でbash on ubuntuが起動する。このとき,カレントディレクトリは
 /home/ユーザ名
である。


4.リポジトリの変更

デフォルトでは海外サーバーにリポジトリのデータを取りに行ってしまう。
これだと通信速度が遅くなってしまうので、日本のサーバーに切り替える。
次のコマンドを入力して、切り替え。

$ sudo sed -i -e 's%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g' /etc/apt/sources.list


5.パッケージのアップデート

パッケージのアップデートは時々行う。

$ sudo apt update
$ sudo apt upgrade

6.GCCのインストール

GCC開発環境をインストール
$ sudo apt install build-essential

Cコンパイラが使えるようになる。

7.sshを使えるようにする(これはオプション)

sshはすでに組み込まれているので,次の手順で操作する。

・ /etc/ssh/sshd_config の以下の個所を編集
$ sudo nano /etc/ssh/sshd_config     (nanoは簡易エディタ)

UsePrivilegeSeparation yes  →
UsePrivilegeSeparation no
PasswordAuthentication no  →
PasswordAuthentication yes

・ssh起動
$ sudo service ssh start

これで自マシン中のTeraTermなどのsshクライアントで, localhost に接続できる。

・ポートの開放
しかし,このままでは他のマシンからはアクセスできない。アクセスできるようにするためには以下の設定が必要となる
windowsのSSHが動作できるようになっており,先に動作してしまい,ファイアウォールの設定がこれの作動状況に左右されるから。(windowsのSSHに関して何か設定して使用中の場合は,Windows側が先に使ってしまわないように設定を変更する)
windowsのファイアウォール設定でポート22を開放する,あるいはほかのポートを使うSSH設定にして,そのポートを開放すればよい。Windowsのポート設定

・ssh終了
$ sudo service ssh stop

(sshを起動したまま,ubuntuからexitすると,ubuntuが終了し,sshも終了する。)


8.unzipのインストール

unzip(zip形式ファイル解凍ツール)は必需品?

$ sudo apt install unzip

9.Java OpenJDKのインストール

$ sudo apt install openjdk-11-jdk


10.おまけ

●カレントディレクトリ

(カレントディレクトリを確認するには「$ pwd」)
(1)「Bash on Ubuntu on Windows」のショートカットで起動した場合,起動時のカレントディレクトリは
「/home/ユーザー名」
になる。

(2)powershell起動後,>bash で起動した場合,起動時のカレントディレクトリは
「/mnt/c/Users/ユーザー名」
となり,windowsから見ると、
「c:\Users\ユーザー名」
を意味している。

「cd ~」コマンドで,カレントディレクトリは
「/home/ユーザー名」
になる。

●windowsとのファイルの交換
ubuntu側が「/mnt/c」でwindowsのCドライブをマウントしている形になっている
そうするとつぎのような形で同じファイルが見えていることになり,相互に書いたり修正したり消したり出来る。
ubuntu「/mnt/c/dirA/dirB/fileC」
windows「c:\dirA\dirB\fileC」

●テキストエディタ nanoが便利
nano ファイル名
で作成編集できる。
カーソルの移動はキーボードの矢印キーで行う。マウスクリックではカーソルは移動しない。
カーソル位置のみ入力できる。
コピペはWindowsの機能を使うのが簡単
終了はCTRL+X(^X)で,保存するかどうか聞かれるので「Y」,
ファイル名がOKであれば「Enter」を押す。
●uninstallしたい
$ sudo apt remove パッケージ名
では、設定ファイルは削除されずに残る。

完全に削除するときは、
$ sudo apt --purge remove パッケージ名

依存で必要だったが現在は不要なパッケージの削除
$ sudo apt autoremove

●ディスク使用量が大きくなった(不要なファイルがいっぱい)
$ sudo du -sh /*
で大きなディレクトリを見つけて,さらに大きなサブディレクトリを探していく。
  例えば,/varが大きくて,その中の/var/libが大きかった場合
  $ sudo du -sh /var/lib/*
最後はrmコマンドで不要ファイルを削除