備忘録
まず、初期設定で色々変更したいなら「WSLとPowerShellを両刀使いで進めていく」ということを頭に入れておくとよい。いろんなサイトを見ていると出てくる__"wsl"コマンドは基本的に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 で確認したものを指定する。
# wsl --set-version <distribution name> <versionNumber>
以後WSL2をデフォルトとして規定したい場合、以下のようにすることでこれ以降インストールするWSLに関しては全て2がインストールされることとなる。
# wsl --set-default-version 2
#初期設定
###① rootユーザのパスワード設定
WSLインストール最初に聞かれるユーザはsudoコマンドが使えるユーザになるが、rootユーザではない。かといって、以下のコマンドはrootが既にあるから使えないよと言われる。
$ sudo useradd root
なので以下のコマンドでrootユーザに環境ごと移行してパスワードを更新する。
$ sudo su -
New Password:
Retry Password:
これで以後一般ユーザからrootに変更する際は以下でパスワード入力すればはいれるようになる!
[user01@hostname]$ su
Password:
###② コマンドプロンプト変更
デフォルトだとコマンドにはwindowsで認識しているホスト名と現在位置のフルパスになっているので、長ったらしい。これを変更する。
ホスト名の変更は「/etc/hostname」で変更してWSLを再起動すればよい。ここで、どうやってWSLを再起動すればいいのか?が問題になったwww WSLからは #reboot を受け付けてくれないので、以下で対処する。
# 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か所。
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 ので以下でネット関連のツールを入れておく
# apt-get install inet-tools