0
0

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.

WSL Ubuntu20.04 on windows10

Last updated at Posted at 2021-08-12

備忘録

まず、初期設定で色々変更したいなら「WSLとPowerShellを両刀使いで進めていく」ということを頭に入れておくとよい。いろんなサイトを見ていると出てくる__"wsl"コマンドは基本的にPowerShell__の方で使用する。
#インストール
###① アプリストアから__インストールする前__に以下を確認

PowerShell
# wsl --list -v
  NAME            STATE           VERSION
* kali-linux      Stopped         1
  Ubuntu-20.04    Stopped         1

何か出てくれば既に何らかのWSLがインストールされているということ。何も出てこなければWSLはインストールされていないということ。自分は上記のような感じだったので、WSL1をインストール済みである。今回はここからWSL2へのアップグレードを行っていく。こちらの公式サイト(https://docs.microsoft.com/ja-jp/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package) を参考に進めていくとできる。以下は備忘録。

###② WSL2カーネルパッケージのダウンロードおよびインストール
今回WSL2のカーネルパッケージが手元にないので、以下をDLして起動→「次へ」とか「はい」とか押して終了
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
アップグレードするディストリ名を指定してには2を指定する。なお、色々なサイトを比較したところ、このは人によって表記のされ方が異なるっぽいので、必ず自分のPC上での名前を# wsl --list -v で確認したものを指定する。

PowerShell
# wsl --set-version <distribution name> <versionNumber>

WSL_2.png
上記赤枠の通りバージョンが2になったことが確認できる。

以後WSL2をデフォルトとして規定したい場合、以下のようにすることでこれ以降インストールするWSLに関しては全て2がインストールされることとなる。

# wsl --set-default-version 2

#初期設定
###① rootユーザのパスワード設定
WSLインストール最初に聞かれるユーザはsudoコマンドが使えるユーザになるが、rootユーザではない。かといって、以下のコマンドはrootが既にあるから使えないよと言われる。

WSL
$ sudo useradd root

なので以下のコマンドでrootユーザに環境ごと移行してパスワードを更新する。

WSL
$ sudo su -
New Password:
Retry Password:

これで以後一般ユーザからrootに変更する際は以下でパスワード入力すればはいれるようになる!

[user01@hostname]$ su
                   Password:

###② コマンドプロンプト変更
デフォルトだとコマンドにはwindowsで認識しているホスト名と現在位置のフルパスになっているので、長ったらしい。これを変更する。
ホスト名の変更は「/etc/hostname」で変更してWSLを再起動すればよい。ここで、どうやってWSLを再起動すればいいのか?が問題になったwww WSLからは #reboot を受け付けてくれないので、以下で対処する。

PowerShell
# wsl --shutdown

これでWSL2の方がシャットダウンされ、またアプリを立ち上げれば再起動ということになる。(なんて不便なんだ・・・)

次にコマンドプロンプトフルパス変更を行う。今回は1行目から2行目への変換を行いたい。
username@hostname:full path directory name
[username@hostname only current directory name]

1) 一時的に変更するソフトコード

# export PS1='[\u@\h \W]\$'

2) 永続的に変更するハードコード

$ sudo vi ~/.bashrc   ---> 一般ユーザのコマンドプロンプト変更
# vi ~/.bashrc        ---> rootユーザのコマンドプロンプト変更

viの検索機能を使用して、PS1の「w」(小文字)を「W」(大文字)」に変更する。こうするとフルパスではなく、現在のディレクトリ名のみの表記になる。なお、[\033]とかで挟まれていると思うが、これは文字色を指定しているので、好きなカラーにするといい。詳細はこちら(https://shio-ax.hatenablog.com/entry/2019/05/27/174018)

後日、一般ユーザの方を以下に変更した。これでプロンプトは「username@WSL」になった。編集すべき箇所は__"PS1=~"__の3か所。

WSL
if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}[\[\033[01;32m\]\u\[\033[00m\]@Ubuntu20.04 \[\033[01;34m\]\W\[\033[00m\]]\$ 'else
    PS1='${debian_chroot:+($debian_chroot)}[\u@Ubuntu20.04 \W]$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u\a\]$PS1"

###③ インストールしておいた方がいいパッケージ
ifconfigコマンドが使えないww ので以下でネット関連のツールを入れておく

WSL
# apt-get install inet-tools
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?