Linux あれこれ

Linux 関連の備忘録です。

「Windows11」(22H2) の「VirtualBox 7.0.8」に、「Xubuntu 22.04 LTS」をインストール〈H166-3〉

登録日: 2023-05-28 更新日: 2023-06-01

こちらの「Linux あれこれ」は「Linux」メインの投稿ですが、「Windows11」にて「Linux」を使う機能にも興味があり、投稿しました。

-

前回 、ホストOS として「Windows11」(22H2) に、「VirtualBox 7.0.8」をインストールしました。

残念ながら、「VirtualBox 7.0.8」にて、現行の「Windows11」(22H2) をホストOS として使うのは、
今のところ対象外(未サポート)です。

-

今回は 、「VirtualBox」に Linux ディストリビューションをインストールする第2段として、
Xubuntu 22.04 LTS」をインストールしました。

その備忘録です。

-

個人的には、(下記とは別の)手持ちの Linux 用のPC のメインOS として使っている、オススメのOS のひとつです。

-

-

使用したPC は、USB 3.0 ポートのある「Windows 11」のノートPC です。メモリ 12GB、SSD 1TB に増設しています。 「UEFI 立ち上げ」のPC です。ディスプレイの解像度が HD (1360 x 768) なので画面が狭いです。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

参考:

VirtualBox」のホストOS がLinux の場合:

VirtualBox に「Xubuntu 22.04 LTS」をインストール〈H137-3〉

-

VirtualBox」を使わずにPC にインストールする場合:

PC (SSD) に「Xubuntu 22.04.1 LTS」をインストール〈H157〉

-

前回の作業:

「Windows11」(22H2) に、「VirtualBox 7.0.8」をインストール〈H166〉

-

今回の作業:

  1. 「ゲストOS」のISO イメージをダウンロード:

  2. 「仮想マシン」の作成:

  3. 「Xubuntu 22.04 LTS」のインストール:

  4. インストール後の「システム更新」:

  5. ゲストOS に「VirtualBox Guest Additions」をインストール:

  6. ESR 版の「Firefox」をインストール:

  7. デスクトップの設定:

  8. 日本語入力:

  9. 「フォント」のインストール:

  10. 「アプリ」のインストール:

  11. 「ゲーム」のインストール:

  12. 参考:「VBoxManage」コマンド:

-

「まとめ へ」

「目次詳細 へ」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -

「Windows11」(22H2) を起動:

-

VirtualBox 7.0.8」を起動した画面:

→「Windows」(スタート)ボタンでも、デスクトップに置かれた「VirtualBox」アイコンでも起動できます。

Windows」共通のフォント(MS ゴシック ?)なのか、きれいな文字ではありません。

-

ゲストOS の「Xubuntu 22.04 LTS」を画面半分のサイズで表示:

→「Windows11」の最大化ボタンで分割表示できる機能を使って、右半分のサイズで表示。

クリップボードの共有」機能を有効にしておくと、「Windows11」と「Xubuntu」の情報のやり取りができるので便利です。

デフォルトの壁紙はクセが強いので、別の壁紙に変えています。 シンプルなデスクトップなので、壁紙で雰囲気はガラッと変わります。

-

ゲストOS の「Xubuntu 22.04 LTS」を「フルスクリーンモード」で表示:

→「右Ctrl+F」を押すと、余分な部分を隠して、全画面でゲストOS を表示できます。

もう一度、「右Ctrl+F」を押すと、右半分のサイズに戻ります。

-

パネルの左側によく使うアプリのランチャーを登録しました。また、右端の「ユーザ名」で、電源オフ、再起動、ログアウトができます。シンプルですが使い勝手が良いです。

パネルはデフォルトだと上側ですが、本番で使っているPC は画面下に変更しています。

-


現在のバージョンを表示:

-

ホストOS : 「Windows11」(22H2)

→「VirtualBox 7.0.8」のホストOS としては、今のところ、未サポート

-

ゲストOS : Xubuntu 22.04.2 LTS

2023-05-28 現在

カーネル:

$ uname -r
5.19.0-42-generic

-

リリース:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"

-

x11」と「Wayland」のどちらで動作しているかの確認:

$ echo $XDG_SESSION_TYPE
x11

→「Wayland」ではなく、「x11」で動作しています。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - --

参考:「VirtualBox」について:

-

VirtualBox 」は、Oracle が開発している「仮想マシン」を構築するためのソフトウェアです。

-

  • 仮想マシンを使うことで、ハードウェアで問題となりそうなPC でも、最新のLinux ディストリビューションをインストールできる可能性が高くなります。

  • Linux」をイチからインストールすることになるので手間はかかりますが、「WSL 2」よりも実際の「Linux」と言えます。

-

今回使用の「VirtualBox 7.0.8」については、「こちら 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ---

参考:「Xubuntu」について:

-

Ubuntu の公式フレーバー(性格の違う兄弟?)です

Ubuntu ベースの、軽量な「Xfce」デスクトップ環境です。

個人的には使い慣れた環境です。Ubuntu ベースであることが強みです。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----

1. 「ゲストOS」のISO イメージをダウンロード:

-


1). 「Xubuntu 22.04.2 LTS」のダウンロード

Xubuntu Download

-

Mirror downloads(日本のミラー):

Japan

-

xubuntu-22.04.2-desktop-amd64.iso 2023-02-23 2.9G

-


2). チェックサムのダウンロード:

SHA256SUMS

ブラウザ画面に表示:

c7072859113399bef0e680a08c987c360f41642d8089ebb8928689066a9c9759 *xubuntu-22.04.2-desktop-amd64.iso

-


3). ダウンロードしたファイルを「Windows11」で確認:

PS C:\Users\user> ls C:\Users\user\Downloads\xubuntu*
:
    ディレクトリ: C:\Users\user\Downloads

Mode     LastWriteTime         Length     Name
----     -------------         ------     ----
-a----   2023/05/07 日 17:37   3078205440 xubuntu-22.04.2-desktop-amd64.iso

→「PS C:\Users\user>」は「PowerShell」のプロンプトで、入力しません。

「user」フォルダは、任意のユーザ名です。

-

「\」は、半角の「¥」キーで入力します。

-


4). チェックサムを「Windows11」で確認:

PS C:\Users\user> Get-FileHash C:\Users\user\Downloads\xubuntu*
:
Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
SHA256          C7072859113399BEF0E680A08C987C360F41642D8089EBB8928689066A9C9759       C:\Users\user\Downloads\xubuntu-22.04.2-desktop-amd64.iso

→デフォルトは「SHA256」なので、チェックサムの指定を省略できます。

-


5). 管理しやすいようにダウンロードしたファイルを移動:

面倒なら移動しなくてもOK

PS C:\Users\user> cd C:\Users\user\Downloads\
PS C:\Users\user\Downloads> mkdir Xubuntu\
PS C:\Users\user\Downloads> mv xubuntu-22.04.2-desktop-amd64.iso Xubuntu\xubuntu-22.04.2-desktop-amd64.iso

→「PowerShell」は、bash と違い「*」が使える場合と使えない場合があるので、面倒です。

たぶん、使用したエイリアスのコマンドと、本来のコマンド でパラメータの与え方が違うからだろうと思います。

-

確認:

PS C:\Users\user> ls C:\Users\user\Downloads\Xubuntu\xubuntu-22.04.2-desktop-amd64.iso
:
    ディレクトリ: C:\Users\user\Downloads\Xubuntu

Mode     LastWriteTime         Length     Name
----     -------------         ------     ----
-a----   2023/05/07 日 17:37   3078205440 xubuntu-22.04.2-desktop-amd64.iso

→「PowerShell」では、文字列でなく、配列として値が返ってきます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -----

2. 「仮想マシン」の作成:

-

1). 「Windows」ボタン→「vm」で絞り込み→「Orcle VM VirtualBox」を起動

-


2). 右上の「新規」ボタンをクリック

-


3). Virtul machine Name and Operating System(名前とオペレーティングシステム):

-

(1). 作成したい「ゲストOS」名を入力:
名前:Xubuntu22-04   ←(好みの英字の名前)

-

(2). 自動で下記が入力されました:
タイプ:Linux
バージョン:Xubuntu (64-bit)

-

(3). 注意表示:
No ISO image is selected the guest OS will need to be installed manually.

和訳:

ISO イメージが選択されていない場合は、
ゲスト OS を手動でインストールする必要があります。

-

(4). ISO イメージファイルを指定:

ISO Image:<選択されていません>

右端をクリック →その他 →下記のファイルを指定:

「C:\Users\user\Downloads\Ubuntu\ubuntu-22.04.2-desktop-amd64.iso」

→「開く」

-

-

(5). 注意表示:
Detected OS type Ubuntu (64-bit). This OS type can be installed unattendedly. 
The Install will start affetr this wizard is closed.

和訳:

検出された OS タイプは Ubuntu (64 bit) です。
この OS タイプは「無人インストール」できます。
このウィザードを閉じたらインストールが開始されます。

-

→「無人インストール」は、「Gnome-Boxes」の「かんたんインストール」と同じように入力項目を減らせる機能です。 たぶん、ベンダーからの情報の提供で入力を補完するので、提供のあった一部のディストリビューションのみが機能します。

-

(6). 「Skip Unattended Installation」にチェックして、「無人インストール」をスキップ:

→「無人インストール」がデフォルトですが、失敗すると二度手間になるので、スキップしました。

-

(7). 注意表示:
You have selecte to skip unattended guest OS install the guest OS will need to be installed manually.

和訳:

ゲスト OS の無人インストールをスキップすることを選択したので、
ゲスト OS を手動でインストールする必要があります。

→「次へ」

-


4). Hardware:

-

(1). メインメモリー:

今回は、メモリ 12GB を分割して、4 GB を割当てました:

4106 MB  ←(メモリに余裕がないときに大きくしすぎると、 ホストOS が不調になります)

-

(2). Processors:

2 CPU   ←(パソコンのプロセッサによって、上限は変わります)

-

(3). 「Enable EFI (special OSes only)」にチェック:

XubuntuUbuntu ベースで UEFI 立ち上げがデフォルトなので、チェックしました。

→「次へ」

-

仮想で使うならどちらでもかまいません。実際の動きを確認したいのでチェックしています。

-


5). Virtual Hard disk(仮想ハードディスク):

-

「Create a Virtual Hard Disk Now」(仮想ハードディスクを作成する)にチェックされていることを確認

25.00 GB ←(デフォルトの表示のまま)

→「次へ」

-


6). 概要:

-

今までに入力した項目の一覧が表示されるので確認:

→「完了」

-

表題の翻訳は「概要」にするより「最終確認」にした方が違和感がなさそう。

-


7). 仮想マシンの「Xubuntu-22-04」が作成されました:

→この画面では「項番 8)」の設定は済んでいます。

  • これが今から使う、仮想マシン(仮想のパソコン)の性能です。

実際のハードウェアによる制限は出ますが(実績のある)汎用のドライバーが使われます。また、下記のように設定値を後から変更できるので、うまく動かないときはリトライできます。

-


8). 「ディスプレイ」の設定を変更:

「ディスプレイ」をクリック →「スクリーン」タブ

- ビデオメモリー: 16MB           →「128MB」に変更
- グラフィックコントローラー: 「VMSVGA」  →「VBoxSVGA」に変更

→「Xubuntu 22.04 LTS」の場合、「VBoxSVGA」にすることで、画面サイズを拡げてログインし直すと(かろうじて)解像度が反映できたので、変更しました。

ちなみに、「Ubuntu 22.04 LTS」の場合に、「VBoxSVGA」にするとデスクトップ画面が表示されず、立ち上がりません。

-

→「OK」

-

追記:「Guest Additions」をインストールする場合は、「VMSVGA」のままにします。

「Guest Additions」をインストール後、「VBoxSVGA」の設定にしておくと「画面真っ暗でカーソルのみが表示」され、ログイン画面が表示されません。

-


9). 右側の「ストレージ」の [光学ドライブ]に「ISO イメージ」がセットされていることを確認:

→「ubuntu-22.04.2-desktop-amd64.iso」の DVD でライブ立ち上げされます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -

3. 「Xubuntu 22.04 LTS」のインストール:

-

1). 「起動」(緑色の右矢印)ボタンをクリック

仮想マシンが起動

-


2). ブート選択画面が表示

→メニューの一番下に「UEFI Firmware Settings」が表示されていることに注目。つまり、「UEFI 立ち上げ」になっています。

インストール完了後は自動でDisk 立ち上げになるので、もしDVD 立ち上げしたいときは、このメニュー項目を使いDVD を指定します。

-

→デフォルトの選択のまま待つか、Enter

-

この画面の場合、右側に「VirtalBox の通知エリア」が表示されて重なっています。

何かしらの通知があると表示されますが、邪魔なら消せます。通知項目の「x」で「その通知のみが削除」され、右下のオレンジのアイコンで「すべての通知が削除」され通知エリアが消えます。もし、「通知エリアを非表示」にするだけなら左下の水色の吹き出しアイコンをクリック。もう一度クリックで表示されます。

-


3). Welcome 画面が表示:

→日本語を指定:

-

→「Xubuntu を試す」を選択

-


4). ライブ立ち上げのデスクトップ画面が表示されました

→壁紙で、インストールアイコンが見づらいです。

-

参考: ちなみに、ライブ立ち上げ時の解像度を確認すると、

ねずみ →設定 →ディスプレイ

SVGA「800x600」になっています。

-


5). デスクトップ画面にある「Xubuntu 22.04.2 LTS のインストール」をダブルクリック

→「Install」画面表示

→「インストール」画面表示

-


6). ようこそ:

言語選択: 一番下の「日本語」をクリック

→「続ける」

-


7). キーボードレイアウト:

Japanese Japanese

「キーボード入力をここで試してください」→ @@ で確認

→「続ける」

-


8). アップデートと他のソフトウェア:

  • 「通常のインストール」にチェック

-

  • Xubuntu のインストール中にアップデートをダウンロードする」にチェック

  • 「グラフィックとWi-Fi ハードウェアと追加のメディアフォーマットのサードパーティ製ソフトウェアをインストールする」にチェック

→「続ける」

-


9). インストールの種類

  • 今回は、内臓の「仮想ディスク」にインストールしました。

「ディスクを削除してXubuntu をインストール」にチェック

→「インストール」

-

以下のデバイスのパーティションテーブルが変更されます:
SCSI3(0,0,0) (sda) 

以下のパーティションは初期化されます:
SCSI3(0,0,0) (sda) のパーティション1 を ESP に
SCSI3(0,0,0) (sda) のパーティション2 を ext4 に

→ESP はUEFI パーティション(fat32 でboot フラグオン) のことです。

→「続ける」

-


10). どこに住んでいますか?:

(インストールは開始しており、並行動作しています。)

Tokyo

→「続ける」

-


11). あなたの情報を入力してください:

あなたの名前: 任意
コンピュータの名前: 任意
ユーザー名の入力: 任意
パスワードの入力: 任意
パスワードの確認: 任意
「ログイン時にパスワードを要求する」にチェック

-

すべての項目に緑色のチェックが付いたら、

→「続ける」

-


12). バーグラフが表示されます

-


13). 「インストールが完了しました。」画面が表示

→ 「今すぐ再起動する」をクリック

-


14). 問題: 再起動で、下記が表示されたまま、変化なし:

→Enter キーで、再起動されました。

-

Please remove the installation medium, then press ENTER:

が表示されていませんが「Enter キー待ち」だったようです。

-

-


15). ログイン画面が表示

→パスワード入力

-


16). デスクトップ画面が表示:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- --

4. インストール後の「システム更新」:

-


1). 上部のパネルに、「ソフトウェアの更新」アイコンが表示:

自動で起動されて、最小化されています。

-


2). アイコンのクリックにて、「ソフトウェアの更新」画面が表示:

→「今すぐインストールする」をクリック

-


3). 「このコンピュータのソフトウェアは最新です。」が表示:

→「OK」をクリック

-


4). 再起動:

メニュー(ねずみ)→「電源」ボタン →「再起動」

-


5). ログイン画面が表示:

→パスワード入力

-


6). デスクトップ画面が表示:

-


7). 参考: コマンドで「システム更新」する場合:

この段階では、「クリップボードの共有」機能は無効なので、手入力が必要です:

-

メニューから、または、Ctrl+Alt+T で「端末」を起動:

-

(1). リポジトリの同期:
$ sudo apt update
:
ヒット:1 http://jp.archive.ubuntu.com/ubuntu jammy InRelease
ヒット:2 http://security.ubuntu.com/ubuntu jammy-security InRelease
ヒット:3 http://jp.archive.ubuntu.com/ubuntu jammy-updates InRelease
ヒット:4 http://jp.archive.ubuntu.com/ubuntu jammy-backports InRelease
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了        
パッケージはすべて最新です。

-

(2). パッケージの更新:
$ sudo apt upgrade
:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
アップグレードパッケージを検出しています... 完了
Get more security updates through Ubuntu Pro with 'esm-apps' enabled:
  libpostproc55 libavcodec58 libavutil56 libswscale5 libswresample3
  libavformat58 libavfilter7
Learn more about Ubuntu Pro at https://ubuntu.com/pro
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

-

(3). アップグレードされない、保留されたパッケージがあるときの対応:
$ sudo apt upgrade
:
以下のパッケージは保留されます:
  alsa-ucm-conf python3-software-properties software-properties-common
  software-properties-gtk
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 4 個。

→「保留」とは手動での更新待ちです。自動では アップグレードされません。

-

(4). 「保留」の解除は、インストールです:
$ sudo apt install alsa-ucm-conf python3-software-properties software-properties-common software-properties-gtk
:
以下のパッケージはアップグレードされます:
  alsa-ucm-conf python3-software-properties software-properties-common
  software-properties-gtk

-

(5). もし、古いパッケージが残って、不要となったパッケージがあるときの削除:
$ sudo apt autoremove
:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ---

5. ゲストOS に「VirtualBox Guest Additions」をインストール:

-

VirtualBox Guest Additions」について:

-

Oracle(オラクル)のライセンスのある、デバイスドライバ、システムアプリケーション等はわざと分離されています。

-

  • それらを使用するには、VM 上にゲストOS をインストールした後に、任意で「ゲストOS」に手動でインストールを行います。

→手動でインストールするとライセンスに同意したと見なされ、使えるようになります。

-

VirtualBox Guest Additions」で、追加が期待できる機能:
- マウスポインタの統合
- 共有フォルダ
- 高解像度ディスプレイのサポート
- ウィンドウサイズの変更
- シームレスウィンドウ
- 時刻同期
- 共有クリップボード
- 自動ログオン

→上記の機能が、「VirtualBox Guest Additions」を入れることで高い確率で使えるようになります。

-

早めのインストールで、「Xubuntu 22.04 LTS」のインストール後の設定が楽になります:
  • ディスプレイの解像度がリアルタイムに変更できます:

  • クリップボードの共有」が有効になります:

→ブラウザに表示の設定手順を参照しながら、記述されたコマンドをゲストOS の「端末」に「貼り付け」できます。

-


1). ゲストOS にて、カーネルを確認:

$ uname -r
5.19.0-42-generic

ちなみに、「generic」は Debian 系のカーネルに付く文字列です。他のディストリビューションでは他のパッケージ名になります。

-

VirtualBox Guest Additions」の機能の追加には、カーネルの設定変更が必要です。

つまり、カーネルの設定を変更してビルドを行います。

-


2). カーネルのビルドに必要なカーネルヘッダを、自動で肩代わりしてくれる「dkms」をインストール:

$ sudo apt install dkms
:
以下のパッケージが新たにインストールされます:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp-12
  dctrl-tools dkms dpkg-dev fakeroot g++ g++-11 gcc gcc-11 gcc-12
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
  libasan6 libasan8 libbinutils libc-dev-bin libc-devtools libc6-dev libcc1-0
  libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libfakeroot
  libfile-fcntllock-perl libgcc-11-dev libgcc-12-dev libitm1 liblsan0
  libnsl-dev libstdc++-11-dev libtirpc-dev libtsan0 libtsan2 libubsan1
  linux-libc-dev lto-disabled-list make manpages-dev rpcsvc-proto
アップグレード: 0 個、新規インストール: 45 個、削除: 0 個、保留: 0 個。

→多くの依存パッケージが必要ですが、カーネルヘッダのバージョンを気にする必要がなくなります。

-


3). 参考: 同じバージョンのカーネルヘッダをゲストOS にインストールする場合:

バージョンが合わないときは、使用できません。 「dkms」をインストールすれば不要です。

$ sudo apt install linux-headers-generic
:
以下のパッケージが新たにインストールされます:
  linux-headers-generic

→依存パッケージが少ないという利点がありますが、カーネルのアップデートのたびに、カーネルのビルドが必要なので、バージョンを合わせる必要があります。「dkms」のインストールが楽です。

-

注意:

他のディストリビューションだと「dkms」をインストールできない(リポジトリに登録がない)場合があります。

-


4). カーネルのビルドに必要なパッケージをインストール:

$  sudo apt install gcc make perl
: 
gcc はすでに最新バージョン (4:11.2.0-1ubuntu1) です。
gcc は手動でインストールしたと設定されました。
make はすでに最新バージョン (4.3-4.1build1) です。
make は手動でインストールしたと設定されました。
perl はすでに最新バージョン (5.34.0-3ubuntu1.1) です。
perl は手動でインストールしたと設定されました。

→「dkms」のインストールで入ったみたい。「dkms」のインストールをしないときは必要。

-


5). メニューから Guest Additions のCD イメージを挿入(マウント)

ゲストOS の上部バーのメニュー →「デバイス」→「Guest Additions CDイメージの挿入…」

インストールされていなければ、自動で(ホストOS 側に)インストールしてくれます。

(ゲストOS 側に)マウント準備もしてくれます。

→手動でダウンロードすることも、apt でインストールすることもできますが、バージョンを合わせる手間を省けます。

-


6). 端末からビルドとインストールを実行:

-

(1). ゲストOS の「ファイルマネージャ」が起動して、マウントされ、CD イメージが開きました(自動マウント)

スクリプトは実行されません)

-

→マウントされず、手動でマウントするときは、指示の仕方でマウントポイントが変わります。

例えば、/mnt/ 配下

-

(2). 「ゲストOS」に合わせたスクリプトを実行:

-

自動マウントされた位置に移動:
$ cd /run/media/ubn/VBox_GAs_7.0.8/

もしくは、開いたファイルマネージャにて、空きで、右クリック →「ここでターミナルを開く」

-

「ゲストOS」は「Xubuntu」なので、「Linux」のスクリプトを実行します:
$ sudo ./VBoxLinuxAdditions.run
:
Verifying archive integrity...  100%   MD5 checksums are OK. All good.
Uncompressing VirtualBox 7.0.8 Guest Additions for Linux  100%  
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Setting up modules
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel 
modules.  This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel 5.19.0-41-generic.
update-initramfs: Generating /boot/initrd.img-5.19.0-41-generic
VirtualBox Guest Additions: Running kernel modules will not be replaced until 
the system is restarted or 'rcvboxadd reload' triggered
VirtualBox Guest Additions: reloading kernel modules and services
VirtualBox Guest Additions: kernel modules and services 7.0.8 r156879 reloaded

VirtualBox Guest Additions: NOTE: you may still consider to re-login if some 
user session specific services (Shared Clipboard, Drag and Drop, Seamless or 
Guest Screen Resize) were not restarted automatically

最後の部分の和訳:

注: 場合によっては、再ログインしてください。
ユーザー セッション固有のサービス (共有クリップボード、ドラッグ アンド ドロップ、
シームレスまたはゲスト画面のサイズ変更) が自動的に再起動されませんでした。

→再起動が必要です。

-


7). 再起動:

$ reboot

-


8). 問題: 再起動で、画面が真っ暗でカーソルのみ表示のままです。ログイン画面まで立ち上がりません:

→「VirtalBox」ウィンドウの右上の「x」をクリック

-


9). 「仮想マシンを閉じる」画面が表示:

→「仮想マシンの電源オフ」をクリック

-


10). 電源オフされたら、「ディスプレイ」の設定を変更:

「ディスプレイ」をクリック→「スクリーン」タブ

  • グラフィックコントローラー: 「VMSVGA」に変更

→「OK」

-

参考: カーネルのバージョンにより、「Guest Additions」をインストールすると、「VMSVGA」でないと立ち上がりません:

以前のカーネルでは動作。カーネルを更新後に「Guest Additions」をインストールしたら立ち上がらなくなりました。

→「VBoxSVGA」にしておくと画面真っ暗でカーソルのみが表示され、ログイン画面まで立ち上がりません。

カーネルのバージョンの差のようです。

-


11). [光学ドライブ]に挿入したままの、「Guest Additions のCD イメージ(.iso)」を取り外し:

「ストレージ」をクリック → [光学ドライブ]の「Guest Additions のCD イメージ(.iso)」を右クリック →「仮想ドライブからディスクを除去」

→「OK」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----

6. 「VirtualBox Guest Additions」の機能を有効化:

-

1). 「起動」(緑色の右矢印)ボタンをクリック

仮想マシンが起動

-


2). ログイン画面が表示

→パスワード入力

-


3). デスクトップ画面が表示:

-


4). 「クリップボードの共有」機能を有効化:

バイス→「クリップボードの共有」→「無効」を「双方向」に変更

-


5). 「ドラッグ & ドロップ」機能を有効化:

バイス→「ドラッグ & ドロップ」→「無効」を「双方向」に変更

-


6). 自動でウィンドウがリサイズされるか確認:

-

(1). 「VM VirtualBox」ウィンドウのメニュー →表示 →「ゲストOS の画面を自動リサイズ」をオフ/オン →チェックが付いたアイコンに変更:

-

(2). 画面を広げて確認:

ウィンドウの右下をドラッグして画面を広げました →自動で解像度が調整されました:

→解像度の値が「1032x661」です。きっちりした値でないことに注目。

つまり、設定にある解像度にはない値に設定されました。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -----

7. 画面の操作:

-

1). 画面を「1/2 画面」に縮めてみます:

-

(1). ウィンドウ タイトルバーの右にある「最大化」ボタンにマウスを持って行き →左上の「横2等分の右側」をクリック

-

(2). ウィンドウ をクリックして確定

-

2). 「全画面」表示で使えます:

-

(1). ウィンドウ をクリックして選択

-

(2). 「右Ctrl + F」を押して、「切り替え」をクリックするか、Enter

→「全画面」表示

-

3). 再び、「右Ctrl + F」を押すと、「1/2 画面」表示で使えます:

-

4). 「Xubuntu 22.04 LTS」を立ち上げたときに、小さな画面で表示されたら、

→「右Ctrl + F」を何度か押すと、「全画面」表示になります:

-

-


5). 画面サイズを操作するショートカットキー:

同じキーを再度押すとモードは解除。

「ホストキー」は、ステータスバーの右下に表示:

→「Right Control」(右Ctrl)

-

  • 「右Ctrl + F」 : フルスクリーンモード
    (全画面表示: 上2行と下2行を表示せず。ゲストOS だけの表示)

-

  • 「右Ctrl + L」 : シームレスモード
    (ホストOS とゲストOS のパネルのみ表示。ホストOS 側にウィンドウとして表示)

-

  • 「右Ctrl + C」 : スケールモード
    (ホストOS 側にて、VirtualBox のウィンドウが通常サイズのウィンドウになります)  VirtualBox のウィンドウを選んでおいて、再度押すと解除。

-

  • 「右Ctrl + A」 : ウィンドウのサイズを調整
    (ウィンドウの余計な余白を削除)

-

-

  • 「右Ctrl + Home」 : メニューバーが表示されないモードのときに、メニュー ダイアログを表示:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -

8. 任意: 「Xubuntu」に、ESR 版の「Firefox」をインストール:

-

すでに Snap 版の「Firefox」がプリインストールされているので任意です。

Firefox」をESR 版にすることで、ブラウザの動きが軽くなるので、早めにインストールしておくのがオススメです。

インストールすると、ブックマークの登録のやり直しになるので、事前にブックマークを控えておくと良いです。

-

ノートPC でマウスがなくてタッチパッドを使う場合は、中央ボタンによる貼り付けが出来ないので、

ブラウザでは、Ctrl+C でコピー。端末では、右クリック→「p」または「貼り付け」。を使うと良いです。逆もあります。

-


1). 「Xubuntu」で不足しているパッケージをインストール:

$ sudo apt install bzip2
:
bzip2 はすでに最新バージョン (1.0.8-5build1) です。

-

$ sudo apt install libdbus-glib-1-2
:
libdbus-glib-1-2 はすでに最新バージョン (0.112-2build1) です。

-

参考: 上記がないと起動時にエラーします:

$ firefox --version
:
XPCOMGlueLoad error for file /opt/firefox/libxul.so:
libdbus-glib-1.so.2: cannot open shared object file: No such file or directory
Couldn't load XPCOM.

-


2). ダウンロードするフォルダを準備:

$ mkdir -p ~/ダウンロード/apps
$ cd ~/ダウンロード/apps/

-


3). ESR 版の「Firefox」をインストール:

-

(1). firefox をダウンロード

2023-03-19 現在:

以前のバージョンですが、自動更新で最新になります:

firefox-102.8.0esr.tar.bz2 2023-02-14

→下記でダウンロードします:

$ sudo wget https://archive.mozilla.org/pub/firefox/releases/102.8.0esr/linux-x86_64/ja/firefox-102.8.0esr.tar.bz2
:
2023-05-27 05:55:23 (10.6 MB/s) - ‘firefox-102.8.0esr.tar.bz2’ へ保存完了 [77610028/77610028]

-

(2). ダウンロードしたファイルを展開:
$ tar xjf firefox-*.tar.bz2
$

→プロンプトが返るまで時間がかかります。

-

(3). 展開した Firefox フォルダを「/opt」に移動:
$ sudo mv firefox /opt
$ ls /opt
:
VBoxGuestAdditions-7.0.8  firefox

-

(4). Firefox の実行ファイルへのシンボリックリンクを作成:
$ sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox

-

(5). Firefox の「デスクトップファイル」のコピーをダウンロード
$ sudo wget https://raw.githubusercontent.com/mozilla/sumo-kb/main/install-firefox-linux/firefox.desktop -P /usr/local/share/applications
:
2023-05-27 06:01:54 (7.21 MB/s) - ‘/usr/local/share/applications/firefox.desktop’ へ保存完了 [608/608]

-

(6). 「Xubuntu」を再起動:

一度、再起動しないと ESR 版が起動されませんでした。

$ reboot

-


4). 「Firefox」の確認:

$ which firefox
/usr/local/bin/firefox

-

$ firefox --version
:
Mozilla Firefox 102.8.0esr

-

ちなみに、起動するときのアプリ名は、

-

Snap 版の「Firefox」は、「Firefox ウェブ・ブラウザ」

/snap/bin/firefox

-

ESR 版の「Firefox」は、「Firefox Web Browser」

リンク:

/usr/local/bin/firefox -> /opt/firefox/firefox

-


5). 「Firefox」を起動:

$ firefox &

-

→起動が速くなりました

新規のブラウザの画面が表示されるので、「設定」と「ブックマークの登録」や「アドオンの追加」を行いました:

Chrome のように、アプリへのログインで既存の設定やブックマークの同期を取ることもできますが、使ってません。

-

ブラウザ右上の「横三本線」ボタン(設定)→「アドオンとテーマ」→「検索」キーで絞り込み

ちなみに、個人的に使っているアドオン:

  • 「ublock o」で絞り込み →「uBlock Origin」 (広告ブロック)

  • 「simple tra」で絞り込み →「Simple Translate」 (Google翻訳の活用)

-

アドオンは、セキュリティのリスクを高めるので自己責任です。「おすすめ」マークを目安にしています。

-


6). メニュー(ねずみ)→「インターネット」→「Firefox Web Browser」を起動:

起動にて、「最新版」に更新されます。

起動にて、メニューの「最近使ったもの」に登録されます。

メニュー(ねずみ)→「最近使ったもの」→「Firefox Web Browser」を右クリック →「お気に入りに追加」

-


7). メニューの「お気に入り」の「Firefox Web Browser」アイコンを上の位置にドラッグして移動:

-


8). バージョンの確認:

ブラウザ右上の「横三本線」ボタン(設定)→「ヘルプ」→「Firefoxについて」

→「Extended Support Relese」の文字列が表示に含まれていることを確認:

-

コマンドでの確認:
$ firefox --version
Mozilla Firefox 102.11.0esr

→末尾に「esr」が付いていることを確認

自動で、最新のバージョンに上がりました。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- --

9. デスクトップ等の設定:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ---

9-1. パネルの「メニュー」 (Whisker Menu) の設定を変更:

-

パネルの「メニュー」(ねずみ)ボタンを右クリック→「プロパティ」

-

1). 「General」(全般)タブ

上段の 3つのボタンにて、「Show as list」をチェック

「アプリケーションの説明を表示する」のチェックなしに変更

-

2). 「外観」タブ

メニュー

「カテゴリを左に表示する」にチェック

-

Panel Button(パネルボタン)

表示: 「アイコン」に変更

-

→「閉じる」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----

9-2. メニューの「お気に入り」カテゴリにアプリを登録:

→メインメニューに「Whisker Menu」アイテムが使われており、「お気に入り」カテゴリにアプリを登録できます。

-

1). よく使うアプリを一度実行します。

-

2). メニューの「最近使ったもの」カテゴリにアプリが登録されます。

-

3). そのアプリ名を右クリック →「お気に入りに追加」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -----

9-3. パネルに「ランチャー」などのアイテムを追加:

-

画面の上のパネルバーの空きで右クリック →パネル →パネルの設定

-

「パネル 0」を選んでおきます。

-

「アイテム」タブ

→複数の「アイテム」を追加しました:

-


1). アイテムの「ランチャー」を 複数追加:

アプリの起動が楽になります。
複数の「ランチャー」を登録することで、並び順を変更しやすくしました。

-

-


2). その後、ひとつの「ランチャー」に複数のアプリを登録:

複数インストールした「テキストエディタ」アプリをひとつの「ランチャー」に登録して、 「カテゴリ分け」しました。

よく使うアプリを一番上にすると、最初にそのアイコンが表示されます。

-

  • Wisker Menu
  • ランチャー(ファイルマネージャ)
  • ランチャー(Firefox Web Browser)
  • ランチャー(Xfce Terminal 端末)
  • ランチャー(Featherpad)、(Mousepad)、(テキストエディター) ★(複数を登録)
  • ランチャー(スクリーンショット
  • セパレーター

→ 7つを 5つに減らしました。

「スパナ」アイコン→「+」で、 「ランチャー」にアプリを登録できます。

-


3). アイテムの「ワークスペーススイッチャー」を追加:

仮想画面です。デフォルトは 4つですが、2つに減らしました:

-

右クリック →プロパティ:

→「ワークスペースの設定」をクリック

ワークスペースの数: 「2」に変更

→「閉じる」

-


4). アイテムの「CPU グラフ」を追加:

右クリック →プロパティ:

→CPU 負荷に応じて、縦棒が振れます。
縦棒をクリックすると「タスクマネージャ」が表示されます。

-


5). アイテムの「アクションボタン」を追加:

電源オフ、再起動、ログアウト、などの操作が楽になります。

パネル右端の「ユーザ名」の部分です:

-

右クリック →プロパティ:

→「ログアウト…」は特別で、メニューからの選択になります。ひと手間減らしたいので、今回は使っていません。

-

動作:

→上記の設定により、画面右上の「ユーザ名」で、「画面のロック、再起動、ログアウト、シャットダウン」ができます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- -

9-4. パネルの時計の表示を変更:

-

1). パネルの右端にある「時計」を右クリック →プロパティ

→「時計」画面:

-

時計のオプション:

表示形式:「カスタム」

その下の入力欄:「 %m/%d (%a) %H:%M」に変更

→「閉じる」

-

2). 表示を確認:

05/27 (土) 10:25

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- --

9-5. ログイン画面の背景を変更:

-

1). 壁紙の準備:

システムに内臓の壁紙を使いました:

$ sudo mkdir -p /usr/share/backgrounds/login_kabegami
$ cd /usr/share/backgrounds/login_kabegami/

$ sudo cp /usr/share/xfce4/backdrops/Kanchanjunga_Peaks_by_Pushkar_Deshpande.jpg ./
$ ls -1
Kanchanjunga_Peaks_by_Pushkar_Deshpande.jpg

→壁紙のファイルはホームに置くと背景が真っ暗になります。システムに置かないと反映されません。

なので、ログイン画面で使う壁紙であることがわかるフォルダ名を準備。でも作るのは任意です。

このフォルダに、ログイン画面で使えそうな壁紙があったらコピーしてストックするつもり。

-

2). 壁紙の変更:

メニュー →設定 →「LightDM GTK+ Greeter の設定」→パスワード入力

→「LightDM GTK+ Greeter の設定」画面:

-

背景

「ユーザーが壁紙を設定している場合は使用する」のチェックを外します。

画像: →「他の場所」→「コンピューター」→「/usr/share/backgrounds/login_kabegami/」

→「Kanchanjunga_Peaks_by_Pushkar_Deshpande.jpg」

→「保存」→「閉じる」

-

3). ログアウト

-

4). ログイン画面:

→壁紙が変更されました。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ---

9-6. ショートカットキー: ウィンドウ画面をタイル表示:

-

  • ウィンドウのタイトルバーをつかんで、上下左右、および 4隅にぶつけることで、タイル表示ができます。8パターンできるのは、Cinnamon 並みの機能です。気をつけないといけないのが、ゆっくりだとワークスペースの移動になることです。

下記のショートカットキーを登録して、使い勝手を良くしました:

-

よく使う「ウィンドウの並び」に対応:

-

メニュー →「設定」→「ウィンドウマネージャー」→「キーボード」タブ

(1/2 画面で、左/右)
  • 「ウィンドウを画面左にタイル表示」を選んで、「編集」 Window + 「←」 => Super + Left

  • 「ウィンドウを画面右にタイル表示」を選んで、「編集」 Window + 「→」  => Super + Right

-

(1/4 画面で、右の上/下)
  • 「ウィンドウを画面右上にタイル表示」を選んで、「編集」 Window + 「↑」 => Super + Up

 →左の「'ウィンドウを画面右上にタイル表示' で使う」をクリック

-

  • 「ウィンドウを画面右下にタイル表示」を選んで、「編集」 Window + 「↓」  => Super + Down

 →左の「'ウィンドウを画面右下にタイル表示' で使う」をクリック

-

→「閉じる」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----

9-7. ショートカットキー: 「Windows + Enter」で端末を起動:

-

「端末」を起動する操作が多いので、 「i3-wm」と同じ、「Windows + Enter」でも端末が起動するように、ショートカットキーを追加。

-

ショートカットキーを追加:

設定→「キーボード」→「アプリケーションショートカットキー」タブ

「+追加」

コマンド: exo-open --launch TerminalEmulator
ショートカット: [Super] [Return]    ←(Windows+Enter)

→「閉じる」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- -----

9-8. ショートカットキー: 「Windows + W」でブラウザを起動:

-

デフォルトで、「Windows + W」でブラウザが起動する設定になっています。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- -

10. 日本語入力:

-

1). 日本語入力できるかの確認:

-

テキストエディタ「mousepad」を起動:
  • パネルのキーボードアイコン、または「JA」をクリックして「日本語 - Mozc」を選ぶか、

または、

  • Windows+スペース」キーを押してから、

  →「半角/全角」キーを押すと、日本語入力できました:

→右上の「あ」の色が見やすい水色に変更されていることに注目。

-

2). インストールされている入力メソッドを確認:

「半角/全角」キーを押して、日本語オフにしてから:

$ apt list uim* | grep 済
$ apt list fcitx* | grep 済

→インストールなし

-

$ apt list ibus* | grep 済
:
ibus-data/jammy,jammy,now 1.5.26-4 all [インストール済み、自動]
ibus-gtk3/jammy,now 1.5.26-4 amd64 [インストール済み、自動]
ibus-gtk4/jammy,now 1.5.26-4 amd64 [インストール済み、自動]
ibus-gtk/jammy,now 1.5.26-4 amd64 [インストール済み、自動]
ibus-mozc/jammy,now 2.26.4220.100+dfsg-5.2 amd64 [インストール済み]
ibus/jammy,now 1.5.26-4 amd64 [インストール済み、自動]

→「ibus-mozc」がインストールされていました。

-

3). インストールされているmozc 関連を確認:

$ apt list *mozc* | grep 済
:
ibus-mozc/jammy,now 2.26.4220.100+dfsg-5.2 amd64 [インストール済み]
mozc-data/jammy,jammy,now 2.26.4220.100+dfsg-5.2 all [インストール済み、自動]
mozc-server/jammy,now 2.26.4220.100+dfsg-5.2 amd64 [インストール済み、自動]
mozc-utils-gui/jammy,now 2.26.4220.100+dfsg-5.2 amd64 [インストール済み]

→「mozc-utils-gui」もインストールされていました。

-

-


4). 任意:「Windows+スペース」では面倒なので、「半角/全角」キーに割当を変更:

パネルの「JA」または、「あ」を右クリック → 設定 →「IBusの設定」画面

-

「全般」タブ:

「次の入力メソッド: space」の右にある「…」をクリック

「Super」のチェックを外して、キーコード「space」の右にある「…」をクリック→「無効」をクリック→「新しいアクセレータ」で「半角/全角」キーを押します。

「適用」ボタンを押します。

→「Zenkaku_Hankaku」に変わりました。

→「OK」

-

これで、「半角/全角」キーで、「JA」、「あ」の切り替えができます。

-


5). 任意:「日本語 キーボード」の別々のキーに割当を定義:

  • 「半角/全角」キーだけで日本語オン・オフするなら、この作業は不要です。

-

パネルの「JA」を「あ」に切替え、「あ」を左クリック → ツール →プロパティ →「Mozc プロパティ」画面

-

もしくは、メニュー →「設定」→「Mozc の設定」→「Mozc プロパティ」画面:

「一般」タブ

「初期値に戻す」 →OK

-

キー設定の選択: →「カスタム」を選んで右の「編集…」

→「Mozc キー設定」画面

-

左下の「編集」→「定義済みのキーマップからインポート」→「MS-IME」→OK

-

再び、「編集…」(ウィンドウはマウスで広げておくと、作業しやすいです)

上段にある表題の「入力キー」の項目名をクリックして、ソート

-

下記のキーのコマンドを修正:
モード 入力キー コマンド 備考
変換前入力中 Hiragana IME を有効化
変換中 Hiragana IME を有効化
直接入力 Hiragana IME を有効化
入力文字なし Hiragana IME を有効化
:
変換前入力中 Muhenkan IME を無効化
変換中 Muhenkan IME を無効化
直接入力 Muhenkan IME を無効化 編集→エントリーを追加が必要
入力文字なし Muhenkan IME を無効化

-

→OK →OK

→適用 →OK

→「閉じる」

-

これで「あ」を見なくても操作できます:
  • 「ひらがな」キー(Hiragana)で「IME オン」→日本語
  • 「無変換」キー(Muhenkan)で「IME オフ」→英語

(mozc は入力メソッドのオン、オフを別々のキーに簡単に割当てできるのが利点です)

-

「ひらがな」キー(Hiragana)で「IME オン」にならないときは「英数」キーを押してください。

-


6). 日本語入力の操作(まとめ):

- 日本語オン・オフ:  半角/全角  ←(デフォルトの定義)

- 日本語オン:     ひらがな   ←(追加の定義)
- 日本語オフ:     無変換   ←(追加の定義)

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- --

11. 任意: フォントのインストール

-

前回の作業を参照:

「フォントのインストール」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ---

12. 任意: アプリのインストール

-

前回の作業を参照:

アプリのインストール:

-

audacious」にて、「項番 5)」以降は任意です。たくさんの音楽ファイルを持っていて整理するときの例で、新規の場合は要りません。そこで使うツールの「EasyTAG」のインストールも任意です。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----

13. 任意: ゲームのインストール

-

前回の作業を参照:

「ゲームのインストール」

-

Python」は、「Python 3.10.6」にアップしていますが、動作に支障はありません。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- -----

14. 参考: 「スクリーンショット」について:

-

「Windows11」の「VirtualBox 7.0.8」に、「Xubuntu 22.04 LTS」をインストールした場合、
撮りたい画面によって、操作法(使われるアプリ)や保存される場所が異なります:

どの「ウィンドウ」を選択してから、どのキーを押すかで、どの画面が撮れるかが決まります:

-


1). 「Windows11」でスクリーンショットを撮る場合:

→「PrintScreen」キーだけだと、クリップボードにコピーされるだけす。
保存するには「ペイント」等に貼り付けて保存する手間があります。

-

その場合は、

Windows+PrintScreen」キーを押下:

C:\Users\user\Pictures\Screenshots\スクリーンショット (115).png

→全画面のスクリーンショットが撮られて、自動で保存されます。

ちなみに、「C:\Users\user\」の「user」はユーザ名で、任意です。数字は連番です。

-


2). 「VirtualBox」のゲストOS でスクリーンショットを撮る場合:

→ゲストOS のログイン画面やロック解除画面を撮りたいときに使えます。

-

VirtualBox」のウィンドウを選んで、「右Ctrl+E」キーを押下:

-

ファイルの保存場所をを聞いてくるので、指定:

個人的には、保存場所が散らばらないように、「Windows11」と同じ保存場所を指定しています:

C:\Users\user\Pictures\Screenshots\

-

デフォルトの保存場所:

C:\Users\user\VirtualBox VMs\Xubuntu-22-04\VirtualBox_Xubuntu-22-04_05_05_2023_09_41_10.png

-


3). ゲストOS の「Xubuntu 22.04 LTS」でスクリーンショットを撮る場合:

Ubuntu 22.04 LTS」のウィンドウを選んで、「PrintScreen」キーを押下:

-

GUI で「ウィンドウ」を選択すると全画面が撮れます:

/home/ubn/ピクチャ/Screenshot from 2023-05-01 09-16-45.png

-

タイマーの機能が欲しいときは、Xfce で使われている「xfce4-screenshooter」アプリ等をインストールすると便利です。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----- -

15. 参考:「VirtualBox 7.0.8」で、気付いたところ:

-

問題: 「VirtualBox 7.0.8」のヘルプで「ユーザマニュアル」を表示させると、肝心の内容が見えません:

→「Ubuntu 22.04 LTS」の画面ですが、同じ表示。

「Help Viewer」アプリにて、「ウィンドウ」のテーマをダーク系にした場合の確認漏れみたい。

白い背景に白い文字なので見えません。 マウスで範囲選択すると、背景が反転するので文字が確認できます。 他のディストリビューションでも起こると思われます。

-

どちらにしても、日本語に翻訳されていないので使わない(使えない?)です。

-

回避策:
→「オンラインマニュアル」を参照:

User Manual (HTML version) :

→修正があってもすぐに反映されます。ブラウザの「翻訳」プラグオンを使えば、日本語で確認できます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----- --

16. 参考:「無人インストール」について:

-

「オンラインマニュアル」からの抜粋:

1.8.6. Some Examples of Unattended Installation

  • 選択した ISO で、「無人インストール」がサポートされている場合:
     →ゲスト OS は自動的にインストールされます。ユーザによる入力は必要ありません。
     
  • 選択した ISO で、「無人インストール」がサポートされていない場合:
     →ゲスト OS のインストールを手動で行う必要があります。
     
  • 選択した ISO で、「OSの種類」が自動検出されない場合:
     →タイプとバージョンを入力、ゲスト OS のインストールを手動で行う必要があります。

→どちらにしても、ISO イメージで「無人インストール」がサポートされていないと、使えない
(限定的な)機能です。

-

無人インストール」がサポートされていて、実行した場合:

1.8.2. (Optional) Create Virtual Machine Wizard: Unattended Guest OS Install

-

ゲストOS のインストールにて、ウィザード中の設定画面で、色々なインストール時の指定ができるみたい。例えば、 (うまく動くかは別にして)Guest Additions を自動的にインストールするかどうかも指定できます。

ちなみに、デフォルトだと、「ホスト名」は「VM 名」になるみたい。

-

→設定値や推奨値を確認したり、修正できるので、「Gnome-boxes」の「かんたんインストール」機能よりも使えそうです。

-

(指定するISO イメージや、設定されている値によって)うまくインストールできるかはわからないので、個人的には、最初から「無人インストール」はスキップした方が結果的には楽かも。途中で失敗するかもしれないし、インストールが完了しても、ちゃんとインストールされたか確認する手間があります。将来的に成功率が上がれば話は別かな。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----- ---

17. 参考:「VBoxManage コマンド」の使用例:

-

VirtualBox」のインストールで、「Windows11」にて「VBoxManage コマンド」が使えるようになります。

-

「オンラインマニュアル」からの抜粋:

VBoxManage コマンドの使用例:

3.2.1. Using VBoxManage Commands for Unattended Guest Installation

→VBoxManage コマンドを使用してゲスト OS をインストールできます。

-


コマンドのパスが通っていないので移動:

> cd "c:\Program Files\Oracle\VirtualBox"

-

ファイルを確認:
PS C:\Program Files\Oracle\VirtualBox> ls -name

-

無人インストール」関連のファイルを確認:
PS C:\Program Files\Oracle\VirtualBox> ls -name UnattendedTemplates
debian_postinstall.sh
debian_preseed.cfg
fedora_ks.cfg
lgw_ks.cfg
lgw_postinstall.sh
ol_ks.cfg
ol_postinstall.sh
os2_cid_install.cmd
os2_response_files.rsp
os2_util.exe
redhat67_ks.cfg
redhat_postinstall.sh
rhel3_ks.cfg
rhel4_ks.cfg
rhel5_ks.cfg
ubuntu_preseed.cfg
win_nt5_unattended.sif
win_nt6_unattended.xml
win_postinstall.cmd

-

実行ファイルを確認
PS C:\Program Files\Oracle\VirtualBox> ls -name VBoxM*
VBoxManage.exe

-

実行ファイルの「VBoxManage」を実行してみる:

バージョンの表示:

PS C:\Program Files\Oracle\VirtualBox> VBoxManage --version
VBoxManage : 用語 'VBoxManage' は、コマンドレット、関数、スクリプト ファイル、
または操作可能なプログラムの名前として認識されません。
:
Suggestion [3,General]: コマンド VBoxManage は見つかりませんでしたが、現在の場所に存在します。
Windows PowerShell は、既定では、現在の場所からコマンドを読み込みません。
このコマンドを信頼する場合は、".\VBoxManage" と入力してください。

→実行のさせ方(形式)が良くないようで、実行できません。

-


1). 指示された形式で、「VBoxManage」コマンドのバージョンを表示:

> cd "c:\Program Files\Oracle\VirtualBox"

-

PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage --version
7.0.8r156879

→実行できました。

-


2). 作成されている仮想マシンの一覧を表示:

PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list vms
"Xubuntu22-04" {2163cf6a-de42-4b3b-9340-aea9c528b749}

→「仮想マシン名」と「uuid」が表示

-


3). 仮想マシンの電源オフ・再起動・シャットダウン・強制的なシャットダウン:

> .\VBoxManage controlvm "Xubuntu22-04" poweroff
> .\VBoxManage controlvm "Xubuntu22-04" reboot
> .\VBoxManage controlvm "Xubuntu22-04" shutdown
> .\VBoxManage controlvm "Xubuntu22-04" shutdown --force

→「"Xubuntu22-04"」の部分には、対象の「仮想マシン名」か「uuid」を指定します:

-


4). よく使いそうなコマンド、「PC スペック」の表示:

PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list hostinfo
Host Information:

Host time: 2023-05-29T01:34:13.318000000Z
Processor online count: 4
Processor count: 4
Processor online core count: 2
Processor core count: 2
Processor supports HW virtualization: yes
Processor supports PAE: yes
Processor supports long mode: yes
Processor supports nested paging: yes
Processor supports unrestricted guest: no
Processor supports nested HW virtualization: no
Processor supports virt. vmsave/vmload: no
Processor#0 speed: unknown
Processor#0 description: Intel(R) Core(TM) i5-3340M CPU @ 2.70GHz
Processor#1 speed: unknown
Processor#1 description: Intel(R) Core(TM) i5-3340M CPU @ 2.70GHz
Processor#2 speed: unknown
Processor#2 description: Intel(R) Core(TM) i5-3340M CPU @ 2.70GHz
Processor#3 speed: unknown
Processor#3 description: Intel(R) Core(TM) i5-3340M CPU @ 2.70GHz
Memory size: 12129 MByte
Memory available: 7727 MByte
Operating system: Windows 11
Operating system version: 10.0.22621

→「プロセッサ数」は 2つと思っていたら、4つでした。

仮想マシン」の作成の画面にある、割当てできるプロセッサの最大値が 4つですが、それは、仮想のプロセッサの最大値だと思っていたら、「論理的なプロセッサ数」の最大値だったみたい。

設定を「2」にしているので、もう少し増やしても良さそう。

-

Intel「i5-3340M」CPU の仕様をネットで確認:
コアの数: 2  
スレッド数: 4

→「スレッド数」を「プロセッサ数」と数えるみたい。

-

Window 11 の「タスクマネージャー」で、CPU の性能を確認:

Windows」ボタン →「task」で絞り込み →「タスクマネージャー」→「タスクマネージャー」画面:

左の「パフォーマンス」タブ →「CPU」を選択

右下の「ソケット、コア、論理プロセッサ数」を確認:

ソケット:        1
コア:           2
論理プロセッサ数: 4

→こちらの「論理プロセッサ数」の表示の方が良さそう。

-

-


5). 「VirtualBox」でサポートされるゲスト OS を一覧表示:

PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes
:
: 省略
:
ID:          VBoxBS_64
Description: VirtualBox Bootsector Test (64-bit)
Family ID:   Other
Family Desc: Other
64 bit:      true

→表示が多すぎるので画面での確認は難しいです。ファイルに出力するか、grep 等での抽出が良さそう。

-


6).「VirtualBox」でサポートされるゲスト OS の一覧を「抜粋」して表示:

PowerShell」には「grep」コマンドがないので、代わりに「Select-String」コマンドで抽出:

-


(1).「arch」を指定:
PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes | Select-String -SimpleMatch "arch"
ID:          ArchLinux
Description: Arch Linux (32-bit)
ID:          ArchLinux_64
Description: Arch Linux (64-bit)

→大文字、小文字に関係なく抽出。

-

「archlinux」を指定:

PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes | Select-String -SimpleMatch "archlinux"
ID:          ArchLinux
ID:          ArchLinux_64

→指定する文字列を変えると、結果が異なります。「ID: 」部が表示。

-

「arch linux」を指定:

PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes | Select-String -SimpleMatch "arch linux"
Description: Arch Linux (32-bit)
Description: Arch Linux (64-bit)

→指定する文字列を変えると、結果が異なります。「Description: 」部が表示。

-


(2).「debian」を指定:
PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes | Select-String -SimpleMatch "debian"
ID:          Debian
Description: Debian (32-bit)
ID:          Debian_64
Description: Debian (64-bit)
ID:          Debian31
Description: Debian 3.1 Sarge (32-bit)
ID:          Debian4
Description: Debian 4.0 Etch (32-bit)
ID:          Debian4_64
Description: Debian 4.0 Etch (64-bit)
ID:          Debian5
Description: Debian 5.0 Lenny (32-bit)
ID:          Debian5_64
Description: Debian 5.0 Lenny (64-bit)
ID:          Debian6
Description: Debian 6.0 Squeeze (32-bit)
ID:          Debian6_64
Description: Debian 6.0 Squeeze (64-bit)
ID:          Debian7
Description: Debian 7 Wheezy (32-bit)
ID:          Debian7_64
Description: Debian 7 Wheezy (64-bit)
ID:          Debian8
Description: Debian 8 Jessie (32-bit)
ID:          Debian8_64
Description: Debian 8 Jessie (64-bit)
ID:          Debian9
Description: Debian 9 Stretch (32-bit)
ID:          Debian9_64
Description: Debian 9 Stretch (64-bit)
ID:          Debian10
Description: Debian 10 Buster (32-bit)
ID:          Debian10_64
Description: Debian 10 Buster (64-bit)
ID:          Debian11
Description: Debian 11 Bullseye (32-bit)
ID:          Debian11_64
Description: Debian 11 Bullseye (64-bit)

→大文字、小文字に関係なく抽出。

-

「debian11」を指定:

PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes | Select-String -SimpleMatch "debian11"
ID:          Debian11
ID:          Debian11_64

→指定する文字列で結果が異なります。「ID: 」部が表示。

-

debian 11」を指定:

PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes | Select-String -SimpleMatch "debian 11"
Description: Debian 11 Bullseye (32-bit)
Description: Debian 11 Bullseye (64-bit)

→指定する文字列で結果が異なります。「Description: 」部が表示。

-


(3).「ubuntu」を指定:
PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes | Select-String -SimpleMatch "ubuntu"
ID:          Ubuntu
Description: Ubuntu (32-bit)
ID:          Ubuntu_64
Description: Ubuntu (64-bit)
ID:          Ubuntu10_LTS
:
: 省略
:
ID:          Lubuntu
Description: Lubuntu (32-bit)
ID:          Lubuntu_64
Description: Lubuntu (64-bit)
ID:          Xubuntu
Description: Xubuntu (32-bit)
ID:          Xubuntu_64
Description: Xubuntu (64-bit)

→「Ubuntu」、「Lubuntu」、「Xubuntu」が表示。「Kubuntu」は表示されず。

-


(4).「fedora」を指定:
PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes | Select-String -SimpleMatch "fedora"
ID:          Fedora
Description: Fedora (32-bit)
ID:          Fedora_64
Description: Fedora (64-bit)

-


(5).「red」を指定:
PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes | Select-String -SimpleMatch "red"
ID:          RedHat
Description: Red Hat (32-bit)
ID:          RedHat_64
Description: Red Hat (64-bit)
ID:          RedHat3
Description: Red Hat 3.x (32-bit)
ID:          RedHat3_64
Description: Red Hat 3.x (64-bit)
ID:          RedHat4
Description: Red Hat 4.x (32-bit)
ID:          RedHat4_64
Description: Red Hat 4.x (64-bit)
ID:          RedHat5
Description: Red Hat 5.x (32-bit)
ID:          RedHat5_64
Description: Red Hat 5.x (64-bit)
ID:          RedHat6
Description: Red Hat 6.x (32-bit)
ID:          RedHat6_64
Description: Red Hat 6.x (64-bit)
ID:          RedHat7_64
Description: Red Hat 7.x (64-bit)
ID:          RedHat8_64
Description: Red Hat 8.x (64-bit)
ID:          RedHat9_64
Description: Red Hat 9.x (64-bit)

→「RHEL」では登録されていません。「CentOS」を使うときもこちら。

-


(6).「mac」を指定:
PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes | Select-String -SimpleMatch "mac"
ID:          MacOS
Description: Mac OS X (32-bit)
Family ID:   MacOS
Family Desc: Mac OS X
ID:          MacOS_64
Description: Mac OS X (64-bit)
Family ID:   MacOS
Family Desc: Mac OS X
ID:          MacOS106
Description: Mac OS X 10.6 Snow Leopard (32-bit)
Family ID:   MacOS
Family Desc: Mac OS X
ID:          MacOS106_64
Description: Mac OS X 10.6 Snow Leopard (64-bit)
Family ID:   MacOS
Family Desc: Mac OS X
ID:          MacOS107_64
Description: Mac OS X 10.7 Lion (64-bit)
Family ID:   MacOS
Family Desc: Mac OS X
ID:          MacOS108_64
Description: Mac OS X 10.8 Mountain Lion (64-bit)
Family ID:   MacOS
Family Desc: Mac OS X
ID:          MacOS109_64
Description: Mac OS X 10.9 Mavericks (64-bit)
Family ID:   MacOS
Family Desc: Mac OS X
ID:          MacOS1010_64
Description: Mac OS X 10.10 Yosemite (64-bit)
Family ID:   MacOS
Family Desc: Mac OS X
ID:          MacOS1011_64
Description: Mac OS X 10.11 El Capitan (64-bit)
Family ID:   MacOS
Family Desc: Mac OS X
ID:          MacOS1012_64
Description: macOS 10.12 Sierra (64-bit)
Family ID:   MacOS
Family Desc: Mac OS X
ID:          MacOS1013_64
Description: macOS 10.13 High Sierra (64-bit)
Family ID:   MacOS
Family Desc: Mac OS X

インテルMac のみの対応。最近のバージョンの登録はありません。

-

イメージファイル (.iso) が入手できれば、「Mac OS X」が動くかも:

-

参考:

まずはイメージファイル (.iso) の入手で苦労します。「Mac App Store」で手に入るのはセキュリティアップデートの .dmg ファイル。

iso イメージを入手できたら、仮想マシンを作成して VM を終了、仮想マシンに「修正」を当てます。
起動して、「ディスクユーティリティ」で初期化、「インストール」を実行。

成功したとしても、重くてカクカクみたい。「Mac OS X」は、Mac の専用チップ(Apple セキュリティチップ?)がないとうまく動かない(OS の使用がMac のみに制限された)システムなのかも。

-

インストールが成功するかは別、インテルCPU 時の仮想マシンの「修正」例:

> cd "c:\Program Files\Oracle\VirtualBox"
> .\VBoxManage modifyvm "MacOS" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
> .\VBoxManage setextradata "MacOS" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "MacBookPro15,1"
> .\VBoxManage setextradata "MacOS" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
> .\VBoxManage setextradata "MacOS" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Mac-551B86E5744E2388"
> .\VBoxManage setextradata "MacOS" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
> .\VBoxManage setextradata "MacOS" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1

→「"MacOS"」の部分は仮想マシン名と同じ文字列にします。

-

インストールしたいOS バージョンによって、Product の部分(機種 ID とボード ID)を変える必要があるかも:

 Can I Upgrade or Downgrade macOS? Every Mac From 2006-2020

  • 「機種 ID」と「Board ID」を確認:

 List of Mac BoardID, DeviceID, Model Identifiers & Machine Models

-


(7).「windows」を指定:
PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes | Select-String -SimpleMatch "windows"
ID:          Windows31
Description: Windows 3.1
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows95
Description: Windows 95
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows98
Description: Windows 98
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          WindowsMe
Description: Windows ME
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          WindowsNT3x
Description: Windows NT 3.x
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          WindowsNT4
Description: Windows NT 4
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows2000
Description: Windows 2000
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          WindowsXP
Description: Windows XP (32-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          WindowsXP_64
Description: Windows XP (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows2003
Description: Windows 2003 (32-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows2003_64
Description: Windows 2003 (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          WindowsVista
Description: Windows Vista (32-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          WindowsVista_64
Description: Windows Vista (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows2008
Description: Windows 2008 (32-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows2008_64
Description: Windows 2008 (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows7
Description: Windows 7 (32-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows7_64
Description: Windows 7 (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows8
Description: Windows 8 (32-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows8_64
Description: Windows 8 (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows81
Description: Windows 8.1 (32-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows81_64
Description: Windows 8.1 (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows2012_64
Description: Windows 2012 (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows10
Description: Windows 10 (32-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows10_64
Description: Windows 10 (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows2016_64
Description: Windows 2016 (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows2019_64
Description: Windows 2019 (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows11_64
Description: Windows 11 (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          Windows2022_64
Description: Windows 2022 (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          WindowsNT
Description: Other Windows (32-bit)
Family ID:   Windows
Family Desc: Microsoft Windows
ID:          WindowsNT_64
Description: Other Windows (64-bit)
Family ID:   Windows
Family Desc: Microsoft Windows

→「Windows」の歴史が見えます。「Windows 3.1」も登録されていることにびっくり。

-


(8).「bsd」を指定:
PS C:\Program Files\Oracle\VirtualBox> .\VBoxManage list ostypes | Select-String -SimpleMatch "bsd"
ID:          FreeBSD
Description: FreeBSD (32-bit)
Family ID:   BSD
Family Desc: BSD
ID:          FreeBSD_64
Description: FreeBSD (64-bit)
Family ID:   BSD
Family Desc: BSD
ID:          OpenBSD
Description: OpenBSD (32-bit)
Family ID:   BSD
Family Desc: BSD
ID:          OpenBSD_64
Description: OpenBSD (64-bit)
Family ID:   BSD
Family Desc: BSD
ID:          NetBSD
Description: NetBSD (32-bit)
Family ID:   BSD
Family Desc: BSD
ID:          NetBSD_64
Description: NetBSD (64-bit)
Family ID:   BSD
Family Desc: BSD

Unix の流れをくむ「Mac OS X」の元になったOS の無料版です。Linux とはカーネルやシステムが異なります。

-

たぶん、一覧にあっても、仮想マシンの作成時の一部のパラメータが自動入力されるだけと思います。 登録がなくても、「その他」で登録できます。

-

-


まとめ

今回、手持ちの「Windows11」(22H2) のノートPC に、「VirtualBox 7.0.8」を用いて「Xubuntu 22.04 LTS」をインストールしました。

「Windows11」のバージョン (22H2) を「VirtualBox 7.0.8」のホストOS として使うのは今のところ未サポートですが、 支障が出るほどの問題?もなく、普通にゲストOS のインストールができて、普通に使えています。

-

個人的に、「VirtualBox」は「確実にゲストOS がインストールできれば良い」だけなので、 新しい機能で、デフォルトで有効の「無人インストール」は「チェック」を外しており、使っていません。
実際の動作は未確認です。

-

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

「Windows11」(22H2) の「VirtualBox 7.0.8」に、「Ubuntu 22.04 LTS」をインストール〈H166-2〉

登録日: 2023-05-07 更新日: 2023-05-07

こちらの「Linux あれこれ」は「Linux」メインの投稿ですが、「Windows11」にて「Linux」を使う機能にも興味があるので、投稿しました。

-

前回 、ホストOS として「Windows11」(22H2) に、「VirtualBox 7.0.8」をインストールしました。

残念ながら、「VirtualBox 7.0.8」にて、現行の「Windows11」(22H2) をホストOS として使うのは、今のところ対象外(未サポート)です。

-

VirtualBox」に Linux ディストリビューションをインストールしての最初の確認に、 「Linux」で定番の「Ubuntu」をインストールしてみました。

その備忘録です。

-

-

使用したPC は、USB 3.0 ポートのある「Windows 11」のノートPC です。メモリ 12GB、SSD 1TB に増設しています。 「UEFI 立ち上げ」のPC です。ディスプレイの解像度が HD (1360 x 768) なのが惜しいところ。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

前回の作業:

「Windows11」(22H2) に、「VirtualBox 7.0.8」をインストール〈H166〉

-

今回の作業:

  1. 「ゲストOS」のISO イメージをダウンロード:

  2. 「仮想マシン」の作成:

  3. 「Ubuntu 22.04 LTS」のインストール:

  4. インストール後の「システム更新」:

  5. デスクトップ等の設定:

  6. 「日本語入力:

  7. ゲストOS に「VirtualBox Guest Additions」をインストール:

  8. アプリのインストール:

  9. ゲームのインストール:

  10. ESR 版の「Firefox」をインストール:

  11. 「VirtualBox 7.0.8」で、気付いたところ:

-

「まとめ へ」

「目次詳細 へ」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -

「Windows11」(22H2) を起動:

-

VirtualBox 7.0.8」を起動したときの画面:

→「Windows」(スタート)ボタンだけでなく、デスクトップに置かれた「VirtualBox」アイコンからも起動できます。

Windows」共通のフォント(MS ゴシック ?)が使われているようで、フォントはあまり美しくありません。

-


現在のバージョンを表示:

-

ホストOS : 「Windows11」(22H2)

→「VirtualBox」のホストOS として使うのは、今のところ、未サポート

-

ゲストOS : Ubuntu 22.04.2 LTS

2023-05-06 現在

カーネル:

$ uname -r
5.19.0-41-generic

リリース:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - --

参考:「VirtualBox」について:

-

VirtualBox 」は、Oracle が開発している「仮想マシン」を構築するためのソフトウェアです。

-

  • 仮想マシンを使うことで、ハードウェアで問題となりそうなPC でも、最新のLinux ディストリビューションをインストールできる可能性が高くなります。

  • Linux」をイチからインストールするため、手間はかかりますが、「WSL 2」よりも確実に動きます。

-

今回使用の「VirtualBox 7.0.8」については、「こちら 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ---

参考:「Ubuntu」について:

-

Linux」で定番の「Linux ディストリビューション」です。

-

オープンソース」にこだわりのある「Debian」がベースですが、広く使ってもらうために、使い勝手が良くなるならオープンにこだわらないのが「Ubuntu」です。「Canonical」(カノニカル)という英国の有力ベンダーが支援しています。

-

Ubuntu 22.04 LTS」については、「項番 14. 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----

1. 「ゲストOS」のISO イメージをダウンロード:

-


1). 「Ubuntu 22.04 LTS」のダウンロード:

Ubuntu 22.04.2 LTS (Jammy Jellyfish)

-

ダウンロードするイメージ:

64-bit PC (AMD64) desktop image

-


2). チェックサムのダウンロード:

SHA256SUMS

ブラウザ画面に表示:

b98dac940a82b110e6265ca78d1320f1f7103861e922aa1a54e4202686e9bbd3 *ubuntu-22.04.2-desktop-amd64.iso
5e38b55d57d94ff029719342357325ed3bda38fa80054f9330dc789cd2d43931 *ubuntu-22.04.2-live-server-amd64.iso

-


3). ダウンロードした「VirtualBox」を確認:

PS C:\Users\user> ls C:\Users\user\Downloads\ubuntu*
:
    ディレクトリ: C:\Users\user\Downloads

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----     2023/04/30 日     18:46     4927586304 ubuntu-22.04.2-desktop-amd64.iso

→「PS C:\Users\user>」は「PowerShell」のプロンプトで、入力しません。

「user」はユーザ名で、任意です。

-


4). チェックサムを「Windows11」で確認:

PS C:\Users\user> Get-FileHash C:\Users\user\Downloads\ubuntu*
:
Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
SHA256          B98DAC940A82B110E6265CA78D1320F1F7103861E922AA1A54E4202686E9BBD3       C:\Users\user\Downloads\ubuntu-22.04.2-desktop-amd64.iso

→デフォルトは「SHA256」なので、チェックサムの指定を省略できます。

-


5). 管理しやすいようにダウンロードしたファイルを移動:

PS C:\Users\user> cd C:\Users\user\Downloads\
PS C:\Users\user\Downloads> mkdir Ubuntu\
PS C:\Users\user\Downloads> mv ubuntu-22.04.2-desktop-amd64.iso Ubuntu\ubuntu-22.04.2-desktop-amd64.iso

→「powershell」は、bash と違い「*」が使えなかったりと融通がきかないことがあるので、ちょっと面倒です。

たぶん、使用したエイリアスのコマンドと、本来のコマンド でパラメータの与え方が違うからだろうと思います。

-

確認:

PS C:\Users\user> ls C:\Users\user\Downloads\Ubuntu\ubuntu-22.04.2-desktop-amd64.iso
:
    ディレクトリ: C:\Users\user\Downloads\Ubuntu

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----     2023/04/30 日     18:46     4927586304 ubuntu-22.04.2-desktop-amd64.iso

→「powershell」では、文字列でなく、配列として値が返ってきます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -----

2. 「仮想マシン」の作成:

-

1). 「Windows」ボタン→「vm」で絞り込み→「Orcle VM VirtualBox」を起動

-

2). 右上の「新規」ボタンをクリック

-

3). Virtul machine Name and Operating System(名前とオペレーティングシステム):

-

名前:Ubuntu22-04   ←(好みの英字の名前)

自動で下記が入力されました:

タイプ:Linux
バージョン:Ubuntu (64bit)

-

ISO Image:<選択されていません>

右端をクリック→その他→ファイルを指定:

「C:\Users\user\Downloads\Ubuntu\ubuntu-22.04.2-desktop-amd64.iso」

→「開く」

-

-

「Skip Unattended Installation」にチェックして、「無人インストール」をスキップ

-

Detected OS type Ubuntu (64bit). This OS type can be installed unattendedly. 
The Install will start affetr this wizard is closed.

和訳:

検出された OS タイプ Ubuntu (64 bit)。この OS タイプは無人でインストールできます。
このウィザードを閉じると、インストールが開始されます。

→「無人インストール」がデフォルトですが、失敗すると二度手間なので、今のところは「無人インストール」は使いません。

-

無人インストール」が使えるのは、そのためのベンダーからの情報が必要で、提供されているのは Ubuntu ぐらい?かも。

gnome-boxes」の「かんたんインストール」と同じであれば、「ホスト名」は仮の決まった文字列だろうと思われます。

ホスト名の修正には、2つのファイルの修正が必要ですが、Ubuntu の場合は「設定」で簡単にホスト名が修正できます。

-

→「次へ」

-

4). Hardware:

-

(1). メインメモリー:

今回は、メモリ 12GB を分割します:

4106 MB   ←(大きすぎると、 ホストOS が不調になります)

-

(2). Processors:

2 CPU   ←(パソコンで上限は変わります)

-

(3). 「Enable EFI (special OSes only)」にチェック:

Ubuntu は、UEFI 立ち上げがデフォルトです。

→「次へ」

-

5). Virtual Hard disk(仮想ハードディスク):

-

「仮想ハードディスクを作成する」(Create a Virtual Hard Disk Now) にチェックされていることを確認

25.00 GB ←(デフォルトの表示のまま)

→「次へ」

-

6). 概要:

-

今まで指定した一覧が表示されるので確認:

→「完了」

-

「概要」よりも「最終確認」の翻訳の方がわかりやすいかも。

-

7). 仮想マシンの「Ubuntu-22-04」が作成されました:

  • これが今から使う、仮想マシン(仮想のパソコン)の性能です。

実際のハードウェアによっての制限はありますが、汎用のドライバーが使われることと、下記のように設定値を後から変更できるので便利です。

-

8). 「ディスプレイ」の設定を変更:

「ディスプレイ」をクリック→「スクリーン」タブ

- ビデオメモリー: 16MB →「128MB」に変更
- グラフィックコントローラー: 「VMSVGA」 →そのまま

→「OK」

-

-

  • 「VBoxVGA」や「VBoxSVGA」に設定を変更すると、デスクトップ画面の表示まで行きません。

「Orcle VM VirtualBox」ウィンドウの小窓の立ち上げ画面を見ると、斜めに流れており、ディスプレイの同期が取れないみたい。

-

9). 右側の「ストレージ」の [光学ドライブ]に「ISO イメージ」がセットされていることを確認:

→「ubuntu-22.04.2-desktop-amd64.iso」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -

3. 「Ubuntu 22.04 LTS」のインストール:

-

1). 「起動」(緑色の右矢印)ボタンをクリック

仮想マシンが起動

-

2). ブート選択画面が表示

→デフォルトの選択のまま待つか、Enter

-

3). Welcome 画面が表示:

画面右の通知領域が邪魔なので、右上の水色の「吹き出し」アイコンをクリックすると閉じます。

もしくは、その一番右の黄色のアイコンで「通知を削除」すると閉じます。

→日本語を指定:

-

→「Ubuntu を試す」を選択

-

4). ライブ立ち上げのデスクトップ画面が表示されました

→水クラゲの背景画面が表示されます:

-

5). デスクトップ画面にある「Ubuntu 22.04.2 LTS のインストール」をダブルクリック

→「インストール」画面表示

-

6). ようこそ:

言語選択: 一番下の「日本語」をクリック

→「続ける」

-


7). キーボードレイアウト:

Japanese Japanese

「キーボード入力をここで試してください」→ @@ で確認

→「続ける」

-


8). アップデートと他のソフトウェア:
  • 「通常のインストール」にチェック

-

  • Ubuntu のインストール中にアップデートをダウンロードする」にチェック

  • 「グラフィックとWi-Fi ハードウェアと追加のメディアフォーマットのサードパーティ製ソフトウェアをインストールする」にチェック

→「続ける」

-


9). インストールの種類
  • 今回は、内臓の「仮想ディスク 30GB」にインストールしました。

「ディスクを削除してUbuntu をインストール」にチェック

→「インストール」

-

以下のデバイスのパーティションテーブルが変更されます:
SCSI3(0,0,0) (sda) 

以下のパーティションは初期化されます:
SCSI3(0,0,0) (sda) のパーティション1 を ESP に
SCSI3(0,0,0) (sda) のパーティション2 を ext4 に

→ESP はUEFI パーティション(fat32 でboot フラグオン) のことです。

→「続ける」

-


10). どこに住んでいますか?:

(インストールは開始しており、並行動作しています。)

Tokyo

→「続ける」

-


11). あなたの情報を入力してください:
あなたの名前: 任意
コンピュータの名前: 任意
ユーザー名の入力: 任意
パスワードの入力: 任意
パスワードの確認: 任意
「ログイン時にパスワードを要求する」にチェック

-

すべての項目に緑色のチェックが付いたら、

→「続ける」

-


12). バーグラフが表示されます

-


13). 「インストールが完了しました。」画面が表示

→ 「今すぐ再起動する」をクリック

-


14). 下記が表示

-

Please remove the installation medium, then press ENTER:

の表示

画面下のパネルの「CD ドライブ」のアイコンを見るとマウント解除されてます。

→Enter キーで、再起動

-


15). 「アカウントが見つかりませんか?」が表示

→マウスでクリックするか、Enter キー

-


16). ログイン画面が表示

→パスワード入力

-


17). デスクトップ画面が表示:

-


18). すぐに「オンラインアカウント」画面が表示:

-

オンラインアカウントへの接続:

→「スキップ」

-

Ubuntu Pro:

→「次へ」

-

Ubuntu の改善を支援する:

「はい、システム情報をCanonical に送信します」にチェックあり

-

「いいえ、送信しません」にチェックして、

→「次へ」

-

プライバシー:

位置情報サービス: 「オフ」

→「次へ」

-

準備が完了しました!:

「ソフトウェア」アプリの紹介画面が表示

→「完了」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- --

4. インストール後の「システム更新」:

-


1). すぐに、「ソフトウェアの更新」画面が表示:

→「今すぐインストールする」をクリック

-

完了:

→「すぐに再起動」をクリック

-


2). 問題 1: 最初のシステム更新の再起動で、VirtalBox のロゴ画面のまま、止まってしまいました:

右下のステータスバーのアイコンにある「バーグラフ」が振れています。

フリーズではなく、ループしているみたい。画面が変わりません。

-


3). 再起動

Ubuntu のウィンドウの右上の「x」をクリック:

-

仮想マシンを閉じる」画面が表示:

→「仮想マシンの電源オフ」をクリック:

→「OK」

-


4). ログイン画面が表示:

→解像度が合っておらず、画面の下部に、オレンジ色の「Ubuntu」マークの一部だけ見えています。

-

クリックすると、

→パスワード入力

-


5). デスクトップ画面が表示:

→解像度が合っておらず、画面の上部のタイトルバーが表示されていません。

-


6). 参考: コマンドでシステム更新する場合:

ドックまたは、Ctrl+Alt+T で端末を起動

-

リポジトリの同期:
$ sudo apt update
:
ヒット:1 http://jp.archive.ubuntu.com/ubuntu jammy InRelease
ヒット:2 http://security.ubuntu.com/ubuntu jammy-security InRelease
ヒット:3 http://jp.archive.ubuntu.com/ubuntu jammy-updates InRelease
ヒット:4 http://jp.archive.ubuntu.com/ubuntu jammy-backports InRelease
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了        
パッケージはすべて最新です。

-

パッケージの更新:
$ sudo apt upgrade
:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
アップグレードパッケージを検出しています... 完了
Get more security updates through Ubuntu Pro with 'esm-apps' enabled:
  libpostproc55 libavcodec58 libavutil56 libswscale5 libswresample3
  libavformat58 libavfilter7
Learn more about Ubuntu Pro at https://ubuntu.com/pro
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

-

不要となったパッケージがあるときの削除:
$ sudo apt autoremove
:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ---

5. デスクトップ等の設定:

-

1). ドックに「ソフトウェアの更新」アイコンを追加:

-

(1). 「ソフトウェアの更新」を実行しており、追加する場合:

Windows + A →「ソフトウェアの更新」アイコン(「A 」のアイコン)をクリック→「ソフトウェアの更新」が起動:

ドックの「ソフトウェアの更新」アイコンを右クリック→「お気に入りに追加」→Esc を2回

ドックに「ソフトウェアの更新」が追加されました。

-

(2). アプリの一覧から「ソフトウェアの更新」を追加する場合:

Windows + A →「ソフトウェアの更新」アイコン(「A 」のアイコン)を右クリック→「お気に入りに追加」

ドックに「ソフトウェアの更新」が追加されました。

-


2). ドックに「設定」アイコンを追加:

Windows + A →「設定」アイコンを右クリック→「お気に入りに追加」

ドックに「設定」が追加されました。

-


3). ドックの「ゴミ箱」アイコンを表示させません:

デスクトップの空きで右クリック→「desktop icons の設定」→「設定」画面:

-

Dock の挙動の設定

「ゴミ箱を表示する」をオフに変更

-


4). デスクトップアイコンの設定:

デスクトップアイコンのサイズ: 大きい→「小さい」に変更

-


5). デスクトップの「ホーム」フォルダを表示しないようにする場合:

ドックの「設定」をクリック→「設定」画面:

「外観」タブ

個人フォルダを表示する:  →「オフ」に変更

→デスクトップの「ホーム」フォルダが表示されなくなります。

-


6). ドックを小さくして、右に移動:

Dock

Dock を自動的に隠す:  →「オン」に変更
パネルモード:  →「オフ」に変更
アイコンのサイズ:  → 「26」に変更
表示位置:   →「右」に変更

→アプリのウィンドウが重なるとドックが隠れます。

ドックはバーではなく、アイコンがある部分のみの表示にしました。

-


7). 「ログイン」もしくは「ロック解除」画面のアイコンを変更:

-

「ユーザー」タブ

ユーザー名の左隣の丸い円(アバター)をクリック →アイコン一覧が表示:

「英字 1文字」か、好みの「アイコン」を選択:

→ログイン画面やパスワード入力画面で表示されるようになります。クール。

-

「英字 1文字」を選んだ場合:

-

好みの「アイコン」を選んだ場合:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----

6. 日本語入力:

-

パネルの「ja」をクリックして「日本語 - Mozc」を選ぶだけで、日本語入力ができました:

→パネルの「ja」をクリックしたときのメニューに「設定」がありません。

-

1). インストールされている入力メソッドを確認:

$ apt list ibus* | grep 済
:
ibus-data/jammy,jammy,now 1.5.26-4 all [インストール済み、自動]
ibus-gtk3/jammy,now 1.5.26-4 amd64 [インストール済み、自動]
ibus-gtk4/jammy,now 1.5.26-4 amd64 [インストール済み、自動]
ibus-gtk/jammy,now 1.5.26-4 amd64 [インストール済み、自動]
ibus-mozc/jammy,now 2.26.4220.100+dfsg-5.2 amd64 [インストール済み]
ibus-table/jammy,jammy,now 1.16.7-1 all [インストール済み、自動]
ibus/jammy,now 1.5.26-4 amd64 [インストール済み、自動]

→「ibus-mozc」がインストールされていました。

-

2). インストールされているmozc 関連を確認:

$ apt list *mozc* | grep 済
:
ibus-mozc/jammy,now 2.26.4220.100+dfsg-5.2 amd64 [インストール済み]
mozc-data/jammy,jammy,now 2.26.4220.100+dfsg-5.2 all [インストール済み]
mozc-server/jammy,now 2.26.4220.100+dfsg-5.2 amd64 [インストール済み]

→「mozc-utils-gui」がインストールされていません。

-

「Mozc の設定」をインストール:
$ sudo apt install mozc-utils-gui
:
以下のパッケージが新たにインストールされます:
  libdouble-conversion3 libmd4c0 libpcre2-16-0 libqt5core5a libqt5dbus5
  libqt5gui5 libqt5network5 libqt5svg5 libqt5widgets5 libxcb-xinerama0
  libxcb-xinput0 mozc-utils-gui qt5-gtk-platformtheme qttranslations5-l10n

-

確認:
$ apt list *mozc* | grep 済
:
ibus-mozc/jammy,now 2.26.4220.100+dfsg-5.2 amd64 [インストール済み]
mozc-data/jammy,jammy,now 2.26.4220.100+dfsg-5.2 all [インストール済み]
mozc-server/jammy,now 2.26.4220.100+dfsg-5.2 amd64 [インストール済み]
mozc-utils-gui/jammy,now 2.26.4220.100+dfsg-5.2 amd64 [インストール済み]

-

ログアウト →ログイン

-

3). 日本語入力できるかの確認:

-

テキストエディター「gedit」を起動
  • Windows+スペース」キーで入力メソッドの切替えができます。(「あ」/「ja」)

→「半角/全角」キーを押して、日本語入力できました。

-

4). 任意: 「日本語 キーボード」にて、日本語オン/オフを別々のキーに割当:

-

「Mozc の設定」を起動:

パネルの「あ」をクリック →ツール →プロパティ →「Mozc プロパティ」画面

もしくは、

Windows+A →「Mozc の設定」→「Mozc プロパティ」画面

-

「一般」タブ

「初期値に戻す」をクリック →「OK」

-

キー設定の選択: MS-IME →「カスタム」に変更

→「編集」 →「編集」→「定義済のキーマップからインポート」→「MS-IME

-

表題の「入力キー」を数回押して、「入力キー」を並び替え

「Hiragana」キーのすべてのコマンド(4つ)を「IME を有効化 」に変更

「Muhenkan」キーのすべてのコマンド(3つ)を「IME を無効化 」に変更

-

「編集」 → 「エントリーを追加」 →最後に 1行追加されます

→左から、「直接入力」、「Muhenkan」、「IME を無効化 」に変更

→「OK」→「OK」

→「適用」→「OK」

-

キーの割当の確認:
- 入力メソッドの切替:  Windows+スペース   ←(「ja」/「A」に切替)
- 日本語オン/オフの切替:   半角/全角   ←(「あ」/「A」に切替)

- 日本語オン:     ひらがな   ←(「あ」に切替)
- 日本語オフ:     無変換   ←(「A」に切替)

-

問題 2: 「クリップボードの共有」機能が使えません:

クリップボードの共有」機能をオンに設定しても、

Ubuntu」のアプリから「Windows11」のアプリへの貼付けができません。 機能が無効です。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -----

7. 「ディスプレイ」の設定:

-

Ubuntu 22.04 LTS」にて、
まだ、「VirtualBox Guest Additions」をインストールしていない場合の設定です:

-

1). 「マウス統合」の機能は正常に動いています:

VM VirtualBox」ウィンドウにマウスを持っていくだけで、ゲストOS でマウス操作できます。

「マウス統合」がオフだと、マウスをVM のウィンドウの位置で使うには、そのたびに「ホームキー」(右Ctrl))を押す必要があります。

-

2). 問題 3: メニューの「画面サイズの自動調整」のアイコンをオンに切替できますが、表示のみで機能は無効です:

→オンに切替ても、ウィンドウの右下隅をドラッグして画面サイズを広げても、リアルタイムに解像度が自動調整されません。

-

3). 設定の「ディスプレイ」で、設定一覧の画面サイズへの変更は可能です:

→縦横比が固定なので、モニタの表示機能を超えて広げると、画面の右か下に「スクロールバー」が表示されます。

-


4). 問題 4: モニタが HD (1366 x 798) の場合は、 デフォルトの解像度のままだと、デスクトップ画面の「タイトルバー」が隠れて見えません:

→「タイトルバー」の右の「電源」ボタンを表示させないと、「ログアウト」、「再起動」、「シャットダウン」ができません:

→いちいち、(右と)上にスクロールさせるのは面倒です。

-


5). 使い勝手を良くする、スクロールさせる手間がない「ディスプレイの設定」の解像度に設定:

デスクトップの空きで右クリック→「解像度」を選択

→「適用」→「設定を保存」

-


モニタが HD (1366 x 798) の場合のオススメ:

-

(1).「右Ctrl + F」を押して、「フルスクリーンモード」オンで使う場合:
  • 解像度: 「1366 x 798 (16 : 9)」

→「VirtualBox」でなく、普通に「Ubuntu」を使うときの表示と同じです。

-

VirtualBox」ウィンドウの上下のバーと、「Windows11」のタスクバーが表示されないので、フルで使えます。 画面下にマウスを持って行くと、「VirtualBox」のステータスバーが表示されます。

-

欠点は、ホストOS の「Windows11」 との連携が取りづらいこと。

-

(2). 再度「右Ctrl + F」を押して、「フルスクリーンモード」オフで使う場合:
  • 解像度: 「800 x 600 (4 : 3)」

→「Windows11」のタスクバーの高さ(縦幅)の分だけ、解像度が小さくなりました。

-

VirtualBox」ウィンドウの上下のバーが表示されたまま使える最大の解像度です。

ここで、マウスで画面を横に縮めて、Windows 側でも使いやすいように「1/2 画面」にすると、下にスクロールバーが表示されて操作が面倒になります。

回避するには、そのような正方形に近い解像度の設定を作成するしかありません。

-


モニタが フルHD (1920 x 1080) の場合のオススメ:

-

(1).「右Ctrl + F」を押して、「フルスクリーンモード」オンで使う場合:
  • 解像度: 「1920 x 1080 (16 : 9)」

-

(2). 再度「右Ctrl + F」を押して、「フルスクリーンモード」オフで使う場合:
  • 解像度: 「1440 x 900 (16 : 10)」

もしくは、「1280 x 720 (16 : 9)」

-

-


6). 画面サイズを操作するショートカットキー:

同じキーを再度押すとモードは解除。

「ホストキー」は、ステータスバーの右下に表示:

→「Right Control」(右Ctrl)

-

  • 「右Ctrl + F」 : フルスクリーンモード
    (全画面表示: 上2行と下2行を表示せず。ゲストOS だけの表示)

-

  • 「右Ctrl + L」 : シームレスモード
    (ホストOS とゲストOS のパネルのみ表示。ホストOS 側にウィンドウとして表示)

-

  • 「右Ctrl + C」 : スケールモード
    (ホストOS 側にて、VirtualBox のウィンドウが通常サイズのウィンドウになります)  VirtualBox のウィンドウを選んでおいて、再度押すと解除。

-

  • 「右Ctrl + A」 : ウィンドウのサイズを調整
    (ウィンドウの余計な余白を削除)

-

-

  • 「右Ctrl + Home」 : メニューバーが表示されないモードのときに、メニュー ダイアログを表示:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -

8. ゲストOS に「VirtualBox Guest Additions」をインストール:

-

VirtualBox Guest Additions」について:

-

  • VirtualBox Guest Additions」は、Oracle(オラクル)が提供する、VirtualBox のゲストOS 側の追加コンポーネント(ライセンスを回避するために、わざわざ分離したデバイスドライバ、システムアプリケーション等)です。

  • VM 上にゲストOS をインストールした後に、任意で「ゲストOS」に手動でインストールできます。

→手動でインストールすることで、ライセンスに同意したと見なされて、同意することで使えるようになります。

-

VirtualBox Guest Additions」で、追加が期待できる機能:
- マウスポインタの統合
- 共有フォルダ
- 高解像度ディスプレイのサポート
- ウィンドウサイズの変更
- シームレスウィンドウ
- 時刻同期
- 共有クリップボード
- 自動ログオン

→機能が、高い確率で使えるようになります。

マウスポインタの統合」と「高解像度ディスプレイのサポート」は重要ですが、Ubuntu の場合は入れなくても使えてます。

-

Ubuntu の場合、「ウィンドウサイズの変更」と「共有クリップボード」の機能は、 有効に設定できますが、機能は無効でした。

VirtualBox Guest Additions」を入れることで使えました。

-


1). ゲストOS にて、カーネルヘッダを確認:

$ uname -r
5.19.0-41-generic
$ apt list linux-headers-generic
:
linux-headers-generic/jammy-updates,jammy-security 5.15.0.71.69 amd64

カーネルのバージョンとカーネルヘッダ(カーネルコンパイルするための情報)のバージョンを合わせます。

今回は、「linux-headers-generic」はバージョン違いで使えません。

ちなみに、「generic」は Debian 系のカーネルに付く文字列です。なので、他のディストリビューションでは他のパッケージ名になります。

-

VirtualBox Guest Additions」の機能の追加には、カーネルの設定変更が必要です。

つまり、カーネルの設定を変更してビルドを行います。

-

2). リポジトリにバージョンが同じカーネルヘッダがないので、自動で肩代わりしてくれる「dkms」をインストール:

$ apt list dkms
:
dkms/jammy-updates,jammy-updates 2.8.7-2ubuntu2.1 all
$ sudo apt install dkms
:
以下のパッケージが新たにインストールされます:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp-12
  dctrl-tools dkms dpkg-dev fakeroot g++ g++-11 gcc gcc-11 gcc-12
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
  libasan6 libasan8 libbinutils libc-dev-bin libc-devtools libc6-dev libcc1-0
  libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libfakeroot
  libfile-fcntllock-perl libgcc-11-dev libgcc-12-dev libitm1 liblsan0
  libnsl-dev libstdc++-11-dev libtirpc-dev libtsan0 libtsan2 libubsan1
  linux-libc-dev lto-disabled-list make manpages-dev rpcsvc-proto
アップグレード: 0 個、新規インストール: 45 個、削除: 0 個、保留: 0 個。

→多くの依存パッケージが必要です。

-

3). 参考: 同じバージョンのカーネルヘッダをゲストOS にインストールする場合:

バージョンが合わないときは、使用できません。

$ sudo apt install linux-headers-generic
:
以下のパッケージが新たにインストールされます:
  linux-headers-generic

→依存パッケージは少ないのですが、カーネルのアップデートがあるたびに、カーネルのビルドが必要なので、「dkms」をインストールした方が楽です。

-

注意:

他のディストリビューションだと「dkms」をインストールできない(リポジトリに登録がない)場合があります。

-

4). カーネルのビルドに必要なパッケージをインストール:

$  sudo apt install gcc make perl
:
gcc はすでに最新バージョン (4:11.2.0-1ubuntu1) です。
gcc は手動でインストールしたと設定されました。
make はすでに最新バージョン (4.3-4.1build1) です。
make は手動でインストールしたと設定されました。
perl はすでに最新バージョン (5.34.0-3ubuntu1.1) です。
perl は手動でインストールしたと設定されました。

→「dkms」のインストールで入った可能性があります。

-

5). メニューから Guest Additions のCD イメージを挿入(マウント)

ゲストOS の上部バーのメニュー→「デバイス」→「Guest Additions CDイメージの挿入…」

インストールされていなければ、自動で(ホストOS 側に)インストールしてくれます。

(ゲストOS 側に)マウント準備もしてくれます。

→手動でダウンロードすることもできますが、バージョンを合わせる手間を省けます。

-

6). 端末からビルドとインストールを実行:

-

(1). ゲストOS の「ファイルマネージャ」で、左の「CD イメージ名」をクリック:

→CD イメージが開きました(自動マウント)

スクリプトは実行されません)

-

→マウントされず、手動でマウントするときは、指示の仕方でマウントポイントが変わります。

例えば、/mnt/ 配下

-

(2). ファイルマネージャの空きで右クリック→「端末で開く」

-

(3). 「ゲストOS」に合わせたスクリプトを実行:

自動マウントされた位置に移動:

$ pwd
/media/ubn/VBox_GAs_7.0.8

-

「ゲストOS」は「Ubuntu」なので、「Linux」のスクリプトを実行:

$ sudo ./VBoxLinuxAdditions.run
:
[sudo] ubn のパスワード: 
Verifying archive integrity...  100%   MD5 checksums are OK. All good.
Uncompressing VirtualBox 7.0.8 Guest Additions for Linux  100%  
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Setting up modules
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel 
modules.  This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel 5.19.0-41-generic.
update-initramfs: Generating /boot/initrd.img-5.19.0-41-generic
VirtualBox Guest Additions: Running kernel modules will not be replaced until 
the system is restarted or 'rcvboxadd reload' triggered
VirtualBox Guest Additions: reloading kernel modules and services
VirtualBox Guest Additions: kernel modules and services 7.0.8 r156879 reloaded

VirtualBox Guest Additions: NOTE: you may still consider to re-login if some 
user session specific services (Shared Clipboard, Drag and Drop, Seamless or 
Guest Screen Resize) were not restarted automatically

最後の部分の和訳:

注: 場合によっては、再ログインしてください。
ユーザー セッション固有のサービス (共有クリップボード、ドラッグ アンド ドロップ、
シームレスまたはゲスト画面のサイズ変更) が自動的に再起動されませんでした。

→再起動が必要みたい。

-

7). 再起動:

$ reboot

-

8). ドックに「CD-ROM」アイコンが表示されたままです:

Guest Additions のCD イメージ(.iso) はもう使わないので、

右クリック→「取り出す」

-

9). 動作確認:

-

(1). 右Ctrl+F で「フルスクリーンモード」を解除

-

(2). 「VM VirtualBox」ウィンドウのメニュー →表示 →「ゲストOS の画面を自動リサイズ」をオフ/オンして、チェックが付いたアイコンにします

-

(3). ウィンドウの右下をドラッグして画面を広げると、自動で解像度が調整されました:

→OK

これでほとんどの問題が解決しました:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- --

9. 「VirtualBox Guest Additions」をインストールした場合の「ディスプレイ」の設定:

-

リアルタイムに解像度が調整されます:

-


モニタが HD (1366 x 798) の場合:

-

(1). 解像度を「1366 x 798 (16 : 9)」に設定

-

(2). 画面を「1/2 画面」に縮めます

-

(3). 「右Ctrl + F」を押すと、「全画面」表示で使えます:

再び、「右Ctrl + F」を押すと、「1/2 画面」表示で使えます:

-

(4). 「Ubuntu 22.04 LTS」を立ち上げたときに、小さな画面で表示されたら、

→「右Ctrl + F」を何度か押すと、「全画面」表示になります:

-


モニタが フルHD (1920 x 1080) の場合:

-

(1). 解像度を「1920 x 1080 (16 : 9)」に設定

-

(2). 画面を「1/2 画面」に縮めます

-

(3). 「右Ctrl + F」を押すと、「全画面」表示で使えます:

再び、「右Ctrl + F」を押すと、「1/2 画面」表示で使えます:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ---

10. アプリのインストール

-

前回の作業を参照:

アプリをインストール

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----

11. ゲームのインストール

-

前回の作業を参照:

ゲームのインストール

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -----

12. 任意: 「Ubuntu」に、ESR 版の「Firefox」をインストール:

-

ESR 版にすることで、起動を速くでき、更新回数も減ります。 「広告ブロック」のプラグインの追加も簡単です。

すでに Snap 版の「Firefox」がプリインストールされているので任意です。

-

ブラウザの動きが軽くなるので、早めにインストールしておくのがオススメです。

インストールで、ブックマークの登録のやり直しになるので、事前にブックマークを控えておくと良いです。

-


1). 「Ubuntu」で不足しているパッケージをインストール:

$ sudo apt install bzip2
:
以下のパッケージが新たにインストールされます:
  bzip2

-

$ sudo apt install libdbus-glib-1-2
:
以下のパッケージが新たにインストールされます:
  libdbus-glib-1-2

-

上記がないと起動時にエラーします:

$ firefox --version
:
XPCOMGlueLoad error for file /opt/firefox/libxul.so:
libdbus-glib-1.so.2: cannot open shared object file: No such file or directory
Couldn't load XPCOM.

-


2). ダウンロードするフォルダを準備:

$ mkdir -p ~/ダウンロード/apps
$ cd ~/ダウンロード/apps/

-


3). ESR 版の「Firefox」をインストール:

-

(1). firefox をダウンロード

2023-03-19 現在:

以前のバージョンですが、自動更新で最新になります:

firefox-102.8.0esr.tar.bz2 2023-02-14

→下記でダウンロードします:

$ sudo wget https://archive.mozilla.org/pub/firefox/releases/102.8.0esr/linux-x86_64/ja/firefox-102.8.0esr.tar.bz2
:
2023-05-05 04:45:35 (10.3 MB/s) - ‘firefox-102.8.0esr.tar.bz2’ へ保存完了 [77610028/77610028]

-

(2). ダウンロードしたファイルを展開:
$ tar xjf firefox-*.tar.bz2
$

-

(3). 展開した Firefox フォルダを「/opt」に移動:
$ sudo mv firefox /opt
$ ls /opt
firefox

-

(4). Firefox の実行ファイルへのシンボリックリンクを作成:
$ sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox

-

(5). Firefox の「デスクトップファイル」のコピーをダウンロード
$ sudo wget https://raw.githubusercontent.com/mozilla/sumo-kb/main/install-firefox-linux/firefox.desktop -P /usr/local/share/applications
:
2023-05-05 04:50:48 (12.4 MB/s) - ‘/usr/local/share/applications/firefox.desktop’ へ保存完了 [608/608]

-

(6). 「Ubuntu」を再起動:

一度、再起動しないと ESR 版が起動されませんでした。

-


4). 「Firefox」の確認:

$ which firefox
/usr/local/bin/firefox

-

$ firefox --version
:
Mozilla Firefox 102.8.0esr

-

ちなみに、起動するときのアプリ名は、

-

Snap 版の「Firefox」: 「Firefox ウェブ・ブラウザ」

/snap/bin/firefox

-

ESR 版の「Firefox」: 「Firefox Web Browser」

/usr/local/bin/firefox -> /opt/firefox/firefox

-


5). 「Firefox」を起動:

$ firefox &

-

→起動が速くなりました

-


6). ドックに「Firefox Web Browser」を追加:

Windows + A →「fire」と入力(リアルタイムで絞り込み) →表示された「Firefox Web Browser」アイコンを右クリック →「お気に入りに追加」

→ドックの下側に「Firefox Web Browser」アイコンが表示

-

ちなみに、「お気に入りに追加」すると「ドッグ」にそのアイコンが移動して、一覧からは消えます。

-


7). ドックの上側の「Firefox ウェブ・ブラウザ」を右クリック →「お気に入りから削除」

「ドッグ」から「Firefox ウェブ・ブラウザ」アイコンが消えて、一覧に移動しました。

-


8). ドックの下側の「Firefox Web Browser」アイコンを元の位置にドラッグして移動:

-


9). ドックの「Firefox」アイコンをクリックして、ESR 版の「Firefox」が起動されることを確認:

ブラウザ右上の「横三本線」ボタン(設定)→「ヘルプ」→「Firefoxについて」

→「Extended Support Relese」の文字列が表示に含まれていることを確認:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- -

13. 参考: 「スクリーンショット」について:

-

「Windows11」の「VirtualBox 7.0.8」に、「Ubuntu 22.04 LTS」をインストールした場合、
撮りたい画面によって、操作法(使われるアプリ)や保存される場所が異なります:

どの「ウィンドウ」を選択してから、キーを押すかで、どの画面が撮れるかが決まります。

-


1). 「Windows11」でスクリーンショットを撮る場合:

→「PrintScreen」キーのみではクリップボードにコピーされるだけで、 保存は「ペイント」等に貼り付けて保存するので手間です。

-

その場合は、

Windows+PrintScreen」キーを押下:

C:\Users\user\Pictures\Screenshots\スクリーンショット (115).png

→全画面が撮れて、自動で保存されます。

-


2). 「VirtualBox」のゲストOS でスクリーンショットを撮る場合:

→ゲストOS のログイン画面やロック解除画面を撮りたいときに使えます。

-

VirtualBox」のウィンドウを選んで、「右Ctrl+E」キーを押下:

-

ファイルの保存場所をを聞いてくるので、指定:

保存場所が散らばらないように、「Windows11」と同じ保存場所の指定でも良いです:

C:\Users\user\Pictures\Screenshots\

-

デフォルトの保存場所:

C:\Users\user\VirtualBox VMs\Ubuntu-22-04\VirtualBox_Ubuntu-22-04_05_05_2023_09_41_10.png

-


3). ゲストOS の「Ubuntu 22.04 LTS」でスクリーンショットを撮る場合:

Ubuntu 22.04 LTS」のウィンドウを選んで、「PrintScreen」キーを押下:

-

GUI で「ウィンドウ」を選択すると全画面が撮れます:

/home/ubn/ピクチャ/Screenshot from 2023-05-01 09-16-45.png

-

タイマーの機能が欲しいときは、Xfce で使われている「xfce4-screenshooter」アプリの方が便利です。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- --

14. 参考:「Ubuntu 22.04 LTS」について:

-

Ubuntu の LTS 版は、ひとつ前のリリースを使う、安定志向のポイントリリース版(延命版)です。

大きな更新があったときに「ポイントリリース番号」(22.04.2) がアップします。

Ubuntu」は、問題があっても、多くの人に使われているので、検索で解決策を見つけやすいのが利点です。

-

1). インストールしたときに使ったイメージを確認:

$ cat /var/log/installer/media-info
:
Ubuntu 22.04.2 LTS "Jammy Jellyfish" - Release amd64 (20230223)

→インストール時のログにて、ダウンロードして使ったライブイメージの提供日がわかります。

-

2). システム更新で、表示メッセージに「Ubuntu Pro」の広告が含まれています:

Ubuntu Pro」は、「Ubuntu」の有料サポート版で、業務でUbuntu を使う場合にセキュリティ関連のサポートを延ばすことができるので安心です。ただし、無料で使える台数に制限があり、個人的には「試し」のインストールが多いので、有効化してません。

こちらが表示されるということは、通常の「Ubuntu」として動いているということです。

-

$ sudo apt upgrade
:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
アップグレードパッケージを検出しています... 完了
Get more security updates through Ubuntu Pro with 'esm-apps' enabled:
  libpostproc55 libavcodec58 libavutil56 libswscale5 libswresample3
  libavformat58 libavfilter7
Learn more about Ubuntu Pro at https://ubuntu.com/pro
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

→通常のシステム更新がないときでも、「Ubuntu Pro」の広告が含まれています。

-

3). firefox ブラウザは「snap」アプリです:

snap アプリに変更されています。 ディストリビューションが違っても snap アプリであれば、多くの環境で行う必要があるメンテ時の「確認」の手間が減らせます。

-

デフォルトでインストールされている「snap」アプリを確認:
$ snap list
:
Name                       Version           Rev    Tracking         Publisher   Notes
bare                       1.0               5      latest/stable    canonical✓  base
core20                     20230308          1852   latest/stable    canonical✓  base
firefox                    110.0-3           2356   latest/stable/…  mozilla✓    -
gnome-3-38-2004            0+git.6f39565     140    latest/stable/…  canonical✓  -
gtk-common-themes          0.1-81-g442e511   1535   latest/stable/…  canonical✓  -
snap-store                 41.3-66-gfe1e325  638    latest/stable/…  canonical✓  -
snapd                      2.58.2            18357  latest/stable    canonical✓  snapd
snapd-desktop-integration  0.1               49     latest/stable/…  canonical✓  -

→「firefox」ブラウザが含まれています。

-

「snap」版の firefox は以前だと起動が遅かったです。現在は、だいぶマシです。

Linux を使うたびにブラウザは毎回起動するので、代わりに起動の速い「ESR」版をインストールすることが多いです。

-

4). Python のデフォルトは「3.10」です:

$ apt list python3.* | grep amd64
:
python3.10-dbg/jammy-updates,jammy-security 3.10.6-1~22.04.2ubuntu1 amd64
python3.10-dev/jammy-updates,jammy-security 3.10.6-1~22.04.2ubuntu1 amd64
python3.10-full/jammy-updates,jammy-security 3.10.6-1~22.04.2ubuntu1 amd64
python3.10-minimal/jammy-updates,jammy-security,now 3.10.6-1~22.04.2ubuntu1 amd64 [インストール済み、自動]
python3.10-nopie/jammy-updates,jammy-security 3.10.6-1~22.04.2ubuntu1 amd64
python3.10-venv/jammy-updates,jammy-security 3.10.6-1~22.04.2ubuntu1 amd64
python3.10/jammy-updates,jammy-security,now 3.10.6-1~22.04.2ubuntu1 amd64 [インストール済み、自動]
python3.11-dbg/jammy-updates 3.11.0~rc1-1~22.04 amd64
python3.11-dev/jammy-updates 3.11.0~rc1-1~22.04 amd64
python3.11-full/jammy-updates 3.11.0~rc1-1~22.04 amd64
python3.11-minimal/jammy-updates 3.11.0~rc1-1~22.04 amd64
python3.11-nopie/jammy-updates 3.11.0~rc1-1~22.04 amd64
python3.11-venv/jammy-updates 3.11.0~rc1-1~22.04 amd64
python3.11/jammy-updates 3.11.0~rc1-1~22.04 amd64

Python を必要とするアプリを使うときは、バージョンに注意が必要です:

すでに「3.9」はリポジトリにありません。 「3.11」への移行が進んでいます。

-

5). 「ディスプレイモード」と、「カーネル」のバージョンについて:

2023-05-05 現在

-

Ubuntu 22.04.2 LTS」の場合:
$ echo $XDG_SESSION_TYPE
wayland
$ uname -r
5.19.0-41-generic

-

Xubuntu 22.04.2 LTS」の場合:
$ echo $XDG_SESSION_TYPE
x11

-

$ uname -r
5.15.0-71-generic

-

→環境が違うと、微妙に影響が出るので注意。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ---

15. 参考:「VirtualBox 7.0.8」で、気付いたところ:

-

問題 1 : 最初のシステム更新の再起動で、VirtalBox のロゴ画面のまま、止まってしまいました:

→強制電源オフ

-

問題 2 : 「クリップボードの共有」機能が使えません:

→「VirtualBox Guest Additions」のインストールで使えるようになりました。

-

問題 3 : メニューの「画面サイズの自動調整」のアイコンをオンに切替できますが、表示のみで機能は無効です:

→「VirtualBox Guest Additions」のインストールで使えるようになりました。

-

問題 4 : モニタが HD (1366 x 798) の場合は、 インストール時の解像度のままだと、デスクトップ画面の「タイトルバー」が隠れて見えません:

→「Ubuntu 22.04 LTS」のディスプレイの要件は「1024×768」なので、問題とは言えません。

上下のバーの幅だけ足りなくなるので、こうなります。

解像度を HD (1366 x 798) に設定してから、「右Ctrl + F」 を押して、「フルスクリーンモード 」で使うと良いです。

-

問題 5 : 「VirtualBox 7.0.8」のヘルプで「ユーザマニュアル」を表示させると、肝心の内容が見えません:

→ダーク系のテーマにした場合の確認漏れみたい。白い背景に白い文字です。

マウスで範囲選択すると、背景が反転するので文字が確認できます。

-

Ubuntu 22.04 LTS」の「ウィンドウ」のテーマのデフォルトは、ダーク系です。

他のディストリビューションでも起こりそうですが、日本語に翻訳されていないので、使うことはなさそう。

-

Ubuntu 22.04 LTS」を「800 x 600」の解像度で使うのはきびしいです:

例えば、「端末」アプリの設定を変更する場合:

→設定画面の横幅が広く、固定なので、設定画面を横にズラさないと、設定できません。

-

→「Ubuntu 22.04 LTS」のディスプレイの要件は「1024×768」なので、問題とは言えません。

-

-


まとめ

「Windows11」(22H2) の「VirtualBox 7.0.8」に、定番の「Ubuntu 22.04 LTS」をインストール。

「7.0.8」の「仮想マシンの作成」の画面は、集約されて以前よりもシンプルになりました。

-

また、追加されている「無人インストール」の機能はデフォルトでオンでした。

ただし、個人的には、「ISO イメージ」で立ち上がり、OS のインストールができて、問題なく動けば十分なので、 うまく行かなかったときのやり直しの手間を避けたいので、「無人インストール」はオフにして実施しました。

-

感じたのは、「Ubuntu 22.04 LTS」の場合は、「VirtualBox Guest Additions」のインストールまでやった方が、 「VirtualBox」の使い勝手や問題点が改善されます。

また、ゲストOS として Linux を使うときは、「3 ボタンマウス」があると、「中央」ボタンで貼付け出来て、操作性が上がります。

-

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

「Windows11」(22H2) に、「VirtualBox 7.0.8」をインストール〈H166〉

登録日: 2023-04-30 更新日: 2023-05-28

こちらの「Linux あれこれ」は「Linux」メインの投稿ですが、「Windows11」にて「Linux」を使う機能にも興味があるので、投稿しました。

-

VirtualBox」は、「VirtualBox 7.0」にアップしており、ホストOS として「Windows11」(21H2) までが正式にサポートされました。 残念ながら、現行の「Windows11」(22H2) は未サポートです。

Linux」と違い、「Windows11」にて「リリース番号」を保持しながら運用するのは(よほど意識しないとアップされるので)疲れます。

-

今回、ホストOS として「Windows11」(22H2) を使うので、少しでも不具合が少ない?と思われる、 最新の「VirtualBox 7.0.8」にトライしました。

その備忘録です。

-

-

使用したPC は、USB 3.0 ポートのある「Windows 11」のノートPC です。メモリ 12GB、SSD 1TB に増設しています。 「UEFI 立ち上げ」のPC です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

参考:

Linux の場合:

  1. (当時は) 最新 の「Ubuntu 22.04 LTS」をVirtualBoxにインストールし直し〈H145-6〉:

  2. ホストOS に「VirtualBox をインストール」〈H118〉より抜粋:

-

今回の作業:

Windows11 の場合:

  1. 「WSL 2」をすでに使っていた場合の対処:

  2. 「VirtualBox」を使うので、「WSL 2」は削除:

  3. 「VirtualBox 7.0.8」をダウンロード:

  4. 「VirtualBox 7.0.8」をインストール:

  5. 「VirtualBox Extension Pack」をインストール:

  6. 参考:「VirtualBox 7.0.8」について:

-

「まとめ へ」

「目次詳細 へ」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -

「Windows11」(22H2) を起動:

-

立ち上げた「Windows11」の画面:

「Windows10」から「Windows11」にアップグレードしたので、デスクトップに以前使っていたアプリのアイコン(ショートカット)と「壁紙」が残っています。

-

Windows PowerShell 5.1」を起動:

→「Windows11」の標準のシェルです。

デスクトップの空きで右クリック →「ターミナルを開く」、
もしくは、パネルの「Windows」ボタンを右クリック→「ターミナル」で起動できます。

-

VirtualBox」を起動したときの画面:

→デスクトップにも「VirtualBox」のアイコンが置かれています。

-


現在のバージョンを表示:

-

ホストOS : 「Windows11」(22H2)

→「VirtualBox」のホストOS として使うのは、今のところ、未サポート

-

ゲストOS : Ubuntu 22.04.2 LTS

2023-04-30 現在

カーネル:

$ uname -r
5.15.0-71-generic

リリース:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - --

VirtualBox」について:

-

VirtualBox 」は、Oracle が開発している「仮想マシン」を構築するためのソフトウェアです。

-

  • 「VirtalBox」は「仮想的なパソコン」(仮想デバイス)を実現するソフトウェアです。別のパソコンに「Linux」をインストールするのと変わりません。

  • 仮想マシンを使うことで、ハードウェアで問題となりそうなPC でも、最新のLinux ディストリビューションをインストールできる可能性が高くなります。

  • Linux」をイチからインストールするため、手間はかかりますが、「WSL 2」よりも確実です。

  • 問題があっても、Linux の情報をそのまま使えるのが強みです。

-

余計なソフトが一緒に動くので、その分、負荷が大きいことと、メモリとストレージを使います。

特にホストOS とゲストOS でメモリを分割して使うので、メモリのサイズと割当て方は重要です。

-

今回使用の「VirtualBox 7.0.8」については、「項番 8 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ---

1.「WSL 2」をすでに使っていた場合の対処:

「WSL2」を使っていなければ、こちらの項番の作業は要りません。

-

1).「VirtualBox」と「Hyper-V」を使用すると、「パフォーマンスが低下する」、既知の問題があります:

「WSL2」は、「Hyper-V」の「仮想環境」を使っているので、

今のところ、「VirtualBox」と「WSL2」を一緒に使うのは避けるのがベターです:

-

2). 参考: 事前に「WSL 2」において、作成した「Linux」のデータをUSB メモリ、または「Windows11」側に退避:

やり方の参考は「項番 7 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----

2.「VirtualBox」を使うので、「WSL 2」は削除しました:

-

「WSL2」を使っていなければ、こちらの項番の作業は要りません。

-


1).「Windows11」の「WSL 2」で作成した「Linux」名を確認:

PS C:\Users\user> wsl --list -v
:
  NAME      STATE           VERSION
* Ubuntu    Stopped         2

-


2).「Windows11」の「WSL 2」で作成した「Linux」を削除(アンインストール):

PS C:\Users\user> wsl --unregister Ubuntu
:
登録解除。
この操作を正しく終了しました。

-

削除されたか確認:
PS C:\Users\user> wsl -l -v
:
Linux 用 Windows サブシステムにディストリビューションがインストールされていません。

'wsl.exe --list --online' を使用して利用可能なディストリビューション
を一覧表示し、'wsl.exe --install <Distro>' を使用してインストールします。

また、Microsoft Store にアクセスしてディストリビューションをインストールすることもできます:
https://aka.ms/wslstore
Error code: Wsl/WSL_E_DEFAULT_DISTRO_NOT_FOUND

→最後の行は「VSCode」で設定された値が削除されたためのエラー表示

-


3). 「wsl 2」の削除:

Windows」ボタン→「cont」で絞り込み→「コントロールパネル」→「アプリと機能」

-

左側の「Windowsの機能の有効化または無効化」を選択:

→「Windowsの機能」ダイアログが表示:

  • LinuxWindowsサブシステム」のチェックが外れていることを確認

  • Windows ハイパーバイザー プラットフォーム」のチェックが外れていることを確認

Linux ディストリビューションが「0」のときは(作成されていないと)、自動的に機能はオフになるみたい。

ただし、「wsl」コマンドは有効のままです。

-

下記は様子見:
  • 仮想マシン プラットフォーム」のチェックが入っていることを確認 ←(そのまま)
→影響がわからないので、今のところはさわりません。うまく「VirtualBox」が動かないときに外すつもり。

-

→OK

-


4). 「Windows11」の再起動:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -----

3.「Windows11」にて、「VirtualBox 7.0.8」をダウンロード:

ダウンロード:

-


1). 「VirtualBox 7.0」のダウンロード:

2023-04-30 現在:

VirtualBox 7.0.8」

-


2). 「VirtualBox Extension Pack」のダウンロード:

-


3). 「チェックサム」のダウンロード:

ブラウザ画面に表示:

452320f3b1da42b30c32ea5ab5887983b575638ceb4e3beacfefbbb3b0510a48 *Oracle_VM_VirtualBox_Extension_Pack-7.0.8-156879.vbox-extpack
452320f3b1da42b30c32ea5ab5887983b575638ceb4e3beacfefbbb3b0510a48 *Oracle_VM_VirtualBox_Extension_Pack-7.0.8.vbox-extpack
787675631ad359f422d589e5f2f09e4316bc71164a1d0a165ea1077501868231 *SDKRef.pdf
7b0049dd2580ee9b3a74ee8d5b5c83d65583391683c821bddd8f75e15cdb791e *UserManual.pdf
8d73e2361afbf696e6128ffa5e96d9f6a78ff32cb2cb54c727a5be7992be0b31 *VBoxGuestAdditions_7.0.8.iso
2ef2f37b7e55ca65d979fcf1006645f85fcd96bf7de675671d3c9c9d7d69581e *VirtualBox-7.0-7.0.8_156879_el7-1.x86_64.rpm
e4186ee6ce37e53a0aaba008b4aaa39f1aed0401d70d0f681c3c7160a18d1bbb *VirtualBox-7.0-7.0.8_156879_el8-1.x86_64.rpm
935bbce6dd823706a20675ebd98396bfbd17a53ac76246693c2ed61e024711a7 *VirtualBox-7.0-7.0.8_156879_el9-1.x86_64.rpm
d555da974c8e5364bb344efb0dd368ce6beffd55e0e81a94e94e2b9145d1f7ba *VirtualBox-7.0-7.0.8_156879_fedora35-1.x86_64.rpm
0ea431d8182cfcca4931a629141beb4ae515718d27c3a3491000fd39489a1e76 *VirtualBox-7.0-7.0.8_156879_fedora36-1.x86_64.rpm
b68af1c3b9b245b78e43c9b4ec5a197846669e1a9c9ce3a0c6f76e0449ad83be *VirtualBox-7.0-7.0.8_156879_openSUSE153-1.x86_64.rpm
4456fda5a68aab5ecb6f06974819b5a3f8004749ac3f67503a5c2b1576af604b *VirtualBox-7.0.8-156879-Linux_amd64.run
5c70055fb7279b32bbb9fcf05141cfc49cc9bf6c17464d3654e2458cc4540f03 *VirtualBox-7.0.8-156879-OSX.dmg
34293d2b577d00d56c494fdd78684d687f3313a441f30a0a25a690794392fced *VirtualBox-7.0.8-156879-Solaris.p5p
aa3fe39abe8a5dd539902e45c877bf787173a7cf251b845523593aa4c5e9277c *VirtualBox-7.0.8-156879-SunOS.tar.gz
8a2da26ca69c1ddfc50fb65ee4fa8f269e692302046df4e2f48948775ba6339a *VirtualBox-7.0.8-156879-Win.exe
c305fbe480f507eac7c36893ead66dffaacda944f19c3813a4533e9c39bae237 *VirtualBox-7.0.8.tar.bz2
7c24aa0d40ae65cde24d1fba5a2c2fe49a6f6c7d42b01cf3169a7e3459b80b8d *VirtualBox-7.0.8_BETA4-156879-macOSArm64.dmg
7de37359518d467b7f888235175cd388f66e9f16bd9359dd6265fbc95933c1e6 *VirtualBox-7.0.8a.tar.bz2
12f8e67f6e47e3d79568873406c5df76ce68f4e74d3b23d7c398cc2887e40edb *VirtualBoxSDK-7.0.8-156879.zip
324e3352aed3d0b5a40e4ea61de654e32c8879b692714129114c0af16e27167f *virtualbox-7.0_7.0.8-156879~Debian~bullseye_amd64.deb
5e4aa01f4a308808bff9a0a8fd6e8622350d34002e7862d1866bb4ff44c50a6c *virtualbox-7.0_7.0.8-156879~Debian~buster_amd64.deb
7f015bdfc8666edbc1fb7d37a221754e7f393c276704a0869d98806f38446aeb *virtualbox-7.0_7.0.8-156879~Ubuntu~bionic_amd64.deb
0bf941c307baa71e5b92a728e343dfd9f336930afb540ecf6fef3cd3818beab7 *virtualbox-7.0_7.0.8-156879~Ubuntu~focal_amd64.deb
a5e721c333aeea6301303cefbd1cf7a8520655634f54dc8c32bb3beff73f5ebf *virtualbox-7.0_7.0.8-156879~Ubuntu~jammy_amd64.deb

Windows 関連はひとつですが、Fedora(RHEL) 系とUbuntu は各リリースごとにサポートされているのがわかります。

-


4). 「Windows11」で「VirtualBox」のチェックサムを確認:

「Get-FileHash」コマンドレット を使うことで、

MD5 / SHA1 / SHA256 / SHA384 / SHA512 / MACTripleDES / RIPEMD160 ハッシュ値チェックサム)を確認できます:

(デフォルトは SHA256)

-

PowerShell を起動して:

PS C:\Users\user> ls C:\Users\user\Downloads\VirtualBox*

    ディレクトリ: C:\Users\user\Downloads

Mode    LastWriteTime          Length     Name
----    -------------          ------     ----
-a----  2023/04/29 土 13:31     110628872  VirtualBox-7.0.8-156879-Win.exe

-

PS C:\Users\user> Get-FileHash C:\Users\user\Downloads\VirtualBox*

Algorithm   Hash                                                                   Path
---------   ----                                                                   ----
SHA256      8A2DA26CA69C1DDFC50FB65EE4FA8F269E692302046DF4E2F48948775BA6339A       C:\Users\user\Downloads\VirtualBox-7.0.8-156879-Win.exe

→デフォルトは「SHA256」なので、チェックサムの指定を省略できます。

-

もしくは、

PS C:\Users\user> Get-FileHash C:\Users\user\Downloads\VirtualBox-7.0.8-156879-Win.exe -Algorithm SHA256

-


5). 「Windows11」で「VirtualBox Extension Pack」のチェックサムを確認:

PS C:\Users\user> ls C:\Users\user\Downloads\Oracle_VM_VirtualBox_Extension_Pack*

    ディレクトリ: C:\Users\user\Downloads

Mode    LastWriteTime        Length   Name
----    -------------        ------   ----
-a----  2023/04/29 土 13:32  18678513  Oracle_VM_VirtualBox_Extension_Pack-7.0.8-156879.vbox-extpack

-

PS C:\Users\user> Get-FileHash C:\Users\user\Downloads\Oracle_VM_VirtualBox_Extension_Pack*

Algorithm   Hash                                                                   Path
---------   ----                                                                   ----
SHA256      452320F3B1DA42B30C32EA5AB5887983B575638CEB4E3BEACFEFBBB3B0510A48       C:\Users\user\Downloads\Oracle_VM_VirtualBox_Extension_Pa...

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -

4.「Windows11」にて、「VirtualBox 7.0.8」をインストール:

-

「Windows11」(22H2) にて操作:

-

1). ダウンロードした「VirtualBox-7.0.8-156879-Win.exe」ファイルを右クリック→「管理者として実行」

→はい

-

2). 「Oracle VM VirtualBox 7.0.8 Setup」画面が表示:

警告表示:

Microsoft Visual C++ Redistributable Package being installed first.」

最初に「Microsoft Visual C++ 再頒布可能パッケージ」のインストールが必要みたい。

-

→OK

→Finish

→OK

致命的エラーが表示されますが無視。

-

3). ブラウザで、「Visual Studio Redistributable C++」 を検索:

ダウンロード:

-

4). ダウンロードした「VC_redist.x64.exe」ファイルを右クリック→「管理者として実行」

→はい

-

同意するにチェックして、「インストール」をクリック

完了で、「再起動」をクリック

-

5). 「VirtualBox-7.0.8-156879-Win.exe」ファイルを右クリック→「管理者として実行」

→はい

-

6). 「Oracle VM VirtualBox 7.0.8 Setup」画面が表示:

-

「Welcom to the Oracle VM VirtualBox 7.0.8 Setup Wizard」表示:

→右下の「Next」

-


3). 「Custom Setup」: インストール項目の選択

ショートカットを作成するか、スタートメニューに含めるか、などが選べます。

デフォルトのまま:

→右下の「Next」

-


4). 警告の「Warning: Newtwork Interfaces」が表示:

VirtualBox のインストール中に「ネットワーク接続が切断される」という警告です。

ブラウザ等で作業しているときは保存して終了させます。

→右下の「Yes」

-


5). 「Missing Dependencies Python Core / win32api」という警告が表示:

和訳:

依存関係の欠落 「Python Core / win32api」

Oracle VM VirtalBox 7.0.8 の前に、Pythonバインディングをインストールします。
Orcle VM VirtalBox 7.0.8 のインストールを続行する場合は、
後で手動でセットアップする必要があります。
詳細については、Orcle VM VirtualBox 7.0.8 SDK マニュアルを参照してください。

今すぐインストールを続行しますか?

→右下の「Yes」

-

補足:
VirtualBox を Python でプログラム制御できる機能があり、

「Python Core」及び「win32api」がインストールされていない場合は、警告が出ます。
それぞれ、先にインストールされている必要があります。
もし、インストールを継続した場合、後で手動セットアップする必要があります。

ただし、VirtualBoxPythonでプログラム制御する機能を使わないのであれば、 「Yes」で進めて、インストールしなくても良さそう。

-

今回はインストールしませんが、もし必要であれば下記を参照:

VirtualBox 7 のインストール時に「Missing Dependencies Python Core / win32api」 の警告が表示された場合の対処方法

-


6). 「installation is complete.」画面が表示:

VirtualBoxのインストールが完了

→右下の「Finish」

-


7). 「Oracle VM VirtualBox」が起動されますが、右上の「x」で閉じます:

Windows 共通のアプリだからか、使われているフォントがきれいではありません。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- --

5.「VirtualBox Extension Pack」をインストール:

-

続けて、機能拡張パッケージをインストールします。

-

→インストールされている VirtualBox のバージョンと同じバージョンの拡張パックをダウンロードします

-


1). 拡張パックで提供される追加機能:

-


2). インストール:

-

(1). エクスプローラで、ダウンロードした「ファイル」(.vbox-extpack) をダブルクリック

Oracle_VM_VirtualBox_Extension_Pack-7.0.8-156879.vbox-extpack」

-

(2). 画面の指示に従って拡張パックをインストール:

→「インストール」

-

(3). VirtualBox のライセンスが表示:

→良ければ「同意します」をクリック

-


3). 「VirtualBox 7.0.8」の起動を確認:

→起動できました。完了。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ---

6. 参考:「Windows11」(22H2) の「WSL 2」について:

-

VirtualBox」と同じように、

「WSL 2」は、WindowsLinux バイナリを実行できる環境です:

前回 は、「Windows11」(22H2) の「WSL 2」で「Ubuntu 22.04.2 LTS」をインストールしました。

「WSL 2」は、「Hyper-V」による「仮想環境」で、Windows11 のデスクトップ環境に、「Linux」のGUI アプリをひとつのウィンドウとして開けるのが特徴です。

その場合に、 「クリップボードの共有」を使えるように設定 することと、 GUI アプリを日本語化 しておけば、 Linux アプリを有効に使えます。

-

また、GUI 画面であっても、「VSCode」 であれば、日本語入力 (fcitx-mozc) をインストールしておかなくても、Windows11 を用いての日本語入力ができます。

-

「WSL 2」の難点:

  • デスクトップ環境が省かれているため、デスクトップ環境の影響を受けたり、デーモンの使用が前提のアプリで制限が出ます。

 →例えば、日本語入力で「ibus-mozc」を使うのは難しいです。

-

 →iso イメージがあっても、サポートされていないとインストールできません。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----

7. 任意:「WSL 2」において、作成した「Linux」のデータをUSB メモリ、または「Windows11」側に退避する場合:

-


1). 「Ubuntu」のファイルマネージャ、および、シェルコマンドを使う場合:

→自動で「/mnt/」に「Windows11」のファイルシステムがマウントされています。

-

以下は、プロンプトは違いますが、同じ場所です:

「Windows11」側のプロンプト:
PS C:\Users\user> 

→「user」は「Windows11」のユーザ名で任意の名前です。ユーザのフォルダになります。

-

Ubuntu」側のプロンプト:
ubn@FMVpc:/mnt/c/Users/user$

→「ubn」は「Ubuntu」のユーザ名で任意の名前です。「FMVpc」はコンピュータ名です。「Ubuntu」のマウントポイント「/mnt/」に「Windows11」の「c:」ドライブがマウントされています。

Ubuntu」側は ext4 で、マウントされている「Windows11」は ntfs と、ファイルシステムが違います。

ファイルシステムにより、ファイル名の長さやファイル属性、リンクの実現方法が違います。

なので、リンクされているファイルはリンクが切れることがあるので注意が必要です。

-


2). 「Windows11」のエクスプローラを使う場合:

エクスプローラの左下のネットワークの「Linux」を開いて作業します:

-


3). 「Windows11」のPowerShell コマンドを使う場合:

参考例です:

-

(1). PowerShell を起動して:
PS C:\Users\user>

-

(2). Ctrl+Shift+5 で「Ubuntu」を起動:
ubn@FMVpc:~$

-

(3). 「Ubuntu」で操作:
ubn@FMVpc:~$ pwd
/home/ubn
ubn@FMVpc:~$ ls -1
Desktop
Documents
Downloads
packages-microsoft-prod.deb
packages-microsoft-prod.deb.1
test.ps1

→「Documents」と「Downloads」のフォルダはデフォルトでは存在しません。 個人的に使いやすいように作成したものです。

-

(4). スクリプトの内容を確認:
ubn@FMVpc:~$ cat test.ps1
Get-Date

→日付表示のスクリプトです。

-

ubn@FMVpc:~$ ls Documents
2023-03-19-Windows11-memo.md
ubn@FMVpc:~$ ls Downloads
apps

ubn@FMVpc:~$ ls -1 Downloads/apps/
code_latest_amd64.deb
firefox-102.8.0esr.tar.bz2

-

(5). 「Ubuntu」を起動している状態で、「Windows11」から操作:

PowerShell」タブにて:

PS C:\Users\user> ls \\wsl.localhost\Ubuntu\home\
:
    ディレクトリ: \\wsl.localhost\Ubuntu\home

Mode    LastWriteTime        Length   Name
----    -------------        ------   ----
d-----  2023/04/05 水  1:36            ubn

→「Ubuntu」は「wsl」で作成した Linux ディストリビューション名です。

Ubuntu」は、ネットワーク名として、参照できます。

-

(6). 「Ubuntu」のユーザ「ubn」のホームディレクトリを確認:
PS C:\Users\user> ls \\wsl.localhost\Ubuntu\home\ubn\
:
    ディレクトリ: \\wsl.localhost\Ubuntu\home\ubn

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----     2023/03/09 木     23:25                .local
d-----     2023/03/09 木     23:25                .dbus
d-----     2023/03/21 火     11:04                .cache
d-----     2023/03/20 月      5:47                Documents
d-----     2023/03/19 日     13:34                Downloads
d-----     2023/03/20 月      5:29                .config
d-----     2023/03/19 日     16:16                Desktop
d-----     2023/03/17 金     18:25                .presage
d-----     2023/03/19 日     16:04                .mozilla
------     2023/03/06 月     15:09              0 .sudo_as_admin_successful
------     2023/03/11 土      6:59            822 .viminfo
------     2022/10/26 水      2:40           3692 packages-microsoft-prod.deb.1
------     2023/03/06 月     14:50            220 .bash_logout
------     2023/03/20 月     21:56            124 .bash_profile
------     2023/03/06 月     14:50            807 .profile
------     2023/03/17 金     21:10            132 .xinputrc
------     2023/04/19 水     16:37            460 .bash_history
------     2023/04/05 水      1:37            271 .wget-hsts
------     2023/03/21 火     11:30             10 test.ps1
------     2023/04/25 火     23:49              0 .motd_shown
------     2022/10/26 水      2:40           3692 packages-microsoft-prod.deb
------     2023/03/17 金     18:38           3771 .bashrc

-

PS C:\Users\user> ls \\wsl.localhost\Ubuntu\home\ubn\Documents\
:
    ディレクトリ: \\wsl.localhost\Ubuntu\home\ubn\Documents

Mode       LastWriteTime         Length   Name
----       -------------         ------   ----
------     2023/03/20 月  21:15  152977   2023-03-19-Windows11-memo.md

-

PS C:\Users\user> ls \\wsl.localhost\Ubuntu\home\ubn\Downloads\
:
    ディレクトリ: \\wsl.localhost\Ubuntu\home\ubn\Downloads

Mode       LastWriteTime         Length   Name
----       -------------         ------   ----
d-----     2023/04/05 水  1:37            apps
PS C:\Users\user> ls \\wsl.localhost\Ubuntu\home\ubn\Downloads\apps\
:
    ディレクトリ: \\wsl.localhost\Ubuntu\home\ubn\Downloads\apps

Mode       LastWriteTime         Length   Name
----       -------------         ------   ----
------     2023/03/29 水  19:32  88562884 code_latest_amd64.deb
------     2023/02/14 火  22:04  77610028 firefox-102.8.0esr.tar.bz2

-

PS C:\Users\user> ls -Name Documents
:
DL
DOC
FeedbackHub
PDF
PowerShell
ScreenShot

-

(7). 試しに、ファイルをひとつだけ「Windows11」側に退避:
PS C:\Users\user> cp \\wsl.localhost\Ubuntu\home\ubn\Documents\2023-03-19-Windows11-memo.md Documents\
PS C:\Users\user> ls -Name Documents
:
DL
DOC
FeedbackHub
PDF
PowerShell
ScreenShot
2023-03-19-Windows11-memo.md   ←(退避してきたファイル)

-

(8). テキストエディタVSCode」でファイルの内容を確認:
PS C:\Users\user> code Documents\2023-03-19-Windows11-memo.md

-

(9). 「Ubuntu」を終了:

PowerShell」タブで、

PS C:\Users\user> wsl -t ubuntu
:
この操作を正しく終了しました。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -----

8. 参考:「VirtualBox 7.0.8」について:

-


1). 「VirtualBox 7.0.8」にて、ホストとしてサポートされている「Windows」:

1.4. Supported Host Operating Systems

-

2023-05-28 現在:

Windows hosts (64-bit):

Windows 8.1

Windows 10

Windows 11 21H2       ←(注目: 現行の「22H2」は未サポートです)

Windows Server 2012

Windows Server 2012 R2

Windows Server 2016

Windows Server 2019

Windows Server 2022

-


2). 「VirtualBox 7.0」ユーザマニュアル:

User Manual (HTML version) :

-


3). よくある質問:

frequently asked questions list.

このページに最初に表示される情報は、定期的にユーザー マニュアルに移動されます。 そのため、ユーザー マニュアル、特に「トラブルシューティング」(12. Troubleshooting) セクションも確認してください。

-


4). 「VirtualBox 7.0.8」で修正または追加された項目:

15.1. Version 7.0.8 (2023-04-18)

-


5). 「VirtualBox 7.0.8」の既知の制限:

-

(1). 14.1. Oracle VM VirtualBox の下記の機能は、正式にはサポートされておらず、試行中です:

-

(2). 14.2.既知の問題点

抜粋:

-

同じホストで「Oracle VM VirtualBox」と「Hyper-V」を使用すると、パフォーマンスが低下します:

修正には、「Hyper-V Platform」、「Virtual Machine Platform」、「Windows Hypervisor Platform」などの特定の Windows 機能をオフにしてから、ホストを再起動する必要があります。

-

多くの仮想化アプリケーションは、最新のプロセッサで使用できる「ハードウェア仮想化拡張機能」 (Intel VT-x、AMD-V)に依存します。

その「ハードウェア仮想化拡張機能」を一度に使用できる「ソフトウェア コンポーネント」は「1つ」だけです。 仮想化アプリケーション間で共有することはできません。

つまり、「VMware」と「VirtualBox」は、「Hyper-V」と相性がよくありません:

Hyper-V」が実行されているときに、「仮想マシンを起動できない」か、「低速のエミュレート モードが使われる」ことがあります。

-

一部のセキュリティ関連アプリは、下記の「ハイパーバイザー」の影響を受けます(すでに解決?):
Device Guard
Credential Guard

-

なので、「ハードウェア準備ツール」で、「Microsoft Device Guard」および「Credential Guard」機能を無効にする必要がある場合があります。

例: 多くの機能を無効にするコマンド:

.\DG_Readiness_Tool_vX.X.ps1 -Disable -AutoReboot

→これらの機能を無効にすると、ホストの全体的なセキュリティに影響するので、注意が必要です。

-


6).「Hyper-V」が実行されているか確認:

-

Hyper-V」はオプション機能として「Windows Pro」に組み込まれています。 「Hyper-V」を単体でダウンロードすることはできません。

-

Windows + R」→「msinfo32.exe」Enter

[システム情報] を選択

詳細ウィンドウで、次のエントリを確認:

ハイパーバイザーが検出されました。 Hyper-V に必要な機能は表示されません。

-


7). 現時点では、「VirtualBox」と「WSL2」を一緒に使うのは避けるのがベターです:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -

9. 参考: 「Hyper-V」の無効化のやり方:

-

問題がなければ、作業は要りません。

-

Hyper-V はオプション機能として Windows Pro に組み込まれています。 Hyper-V を単体でダウンロードすることはできません。

-


1). 「PowerShell」で「Hyper-V」を無効化する場合:

下記の「項番 2).」を実行していたら、作業は要りません。

-

(1). Windows」ボタンを右クリック→「ターミナル(管理者)」

→管理者特権で「PowerShell」を起動:

-

(2). コマンドを実行:
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor

-


2). コントロール パネルで「Hyper-V」を無効化する場合:

上記の「項番 1).」を実行していたら、作業は要りません。

-

(1). コントロール パネルを起動:

-

(2). 「プログラムと機能」を選択

-

(3). 「Windows の機能の有効化または無効化」を選択

-

(4). 「Hyper-V」を「+」で展開、「Hyper-V platform」を「+」で展開、「Hyper-V Hypervisor」のチェックを外します。

-


3). 「Device Guard」と「Credential Guard」の無効化:

レジストリ キー」または「グループ ポリシー」を使用して、「Device Guard」と「Credential Guard」を無効にすることができます。

Windows Defender Credential Guard の管理 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- --

10. 参考: 「Linux」に、「VirtualBox」をインストールする場合:

-

1). 「VirtualBox」をダウンロード:

-

最新が必要なければ、apt でインストールできます:
$ apt search virtualbox
:
virtualbox/jammy-updates 6.1.38-dfsg-3~ubuntu1.22.04.1 amd64
  x86 仮想化ソリューション - 基本バイナリ

virtualbox-dkms/jammy-updates 6.1.38-dfsg-3~ubuntu1.22.04.1 amd64
  x86 virtualization solution - kernel module sources for dkms

virtualbox-ext-pack/jammy-updates,jammy-updates 6.1.38-1~ubuntu1.22.04.1 all
  extra capabilities for VirtualBox, downloader.

virtualbox-guest-additions-iso/jammy-updates,jammy-updates 6.1.38-1~ubuntu1.22.04.1 all
  guest additions iso image for VirtualBox

→apt でサポートされている「VirtualBox」のバージョンは低いですが、安定しています。

-

2). 「VirtualBox」をインストールする前に、端末から「dkms」パッケージをインストールします:

カーネルが更新されたときに、カーネルコンパイルが必要で、それにはカーネルヘッダーが必要です。その辺りをうまくやってくれます。

$ sudo apt virtualbox-dkms

-

3). 「VirtualBox」をインストール:

$ sudo apt virtualbox

-

4). 「virtualbox-ext-pack」をインストール:

$ sudo apt virtualbox-ext-pack

-

5). 再起動:

-

6). USB 機能をサポートするには、「VirtualBox」のインストール後に「vboxusers」グループに、現在使用しているユーザを追加:

vboxuser インストーラは、「Oracle VM VirtualBox」に必要な USB 機能をサポートするため、「VirtualBox」のインストール中にシステムユーザグループを作成します。

VirtualBox ゲスト OS から USB デバイスを使用するシステム ユーザは、このグループのメンバーである必要があります。

ユーザーをこのグループのメンバーにします:

$ sudo usermod -a -G vboxuser ユーザ名

-

-


まとめ

「Windows11」に、「VirtualBox」をインストールしてみました。Linux ではよく利用していましたが、「Windows」で「VirtualBox」を使うのは初めてです。

-

今回の作業後に、他の Linux ディストリビューションをインストールして確認していないので、もしかしたら、手順の修正が必要かもしれません。

-

その辺りを確認するために、次回は、「Linux」で定番の「Ubuntu」を「VirtualBox」にインストールしてみるつもりです。

-

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

「Ubuntu 22.04 LTS」にて、「PowerShell」のスクリプトの作成に「VSCode」を使う〈H165-5〉

登録日: 2023-04-24 更新日: 2023-04-29

こちらの「Linux あれこれ」は「Linux」メインの投稿ですが、「Windows11」にて「Linux」を使う機能にも興味があるので、投稿しました。

-

前回 は、「Windows11」(22H2) の「WSL2」で、「Ubuntu 22.04.2 LTS」をインストールしました。

その環境で、マルチプラットフォーム版の「PowerShell 7」と、そのシェルスクリプトの作成とデバッグのために「VSCode」と拡張機能をインストールしました。

また、「WSL2」だけでなく、通常版の「Ubuntu 22.04.2 LTS」でのインストール操作も記述しました。

その備忘録です。

-

-

使用したPC は、USB 3.0 ポートのある「Windows 11」のノートPC です。メモリ 12GB、SSD 1TB に増設しています。 「UEFI 立ち上げ」のPC です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

前回の作業:

「Windows11」(22H2) と「Ubuntu」で、「PowerShell」を使う〈H165-2〉

「Windows11」(22H2) にて、「PowerShell」のスクリプトの作成に「VSCode」を使う〈H165-3〉

「Windows11」(22H2) の「WSL2」で、「Ubuntu 22.04.2 LTS」をインストール〈H165-4〉

-

今回の作業:

1. 「Ubuntu」に「PowerShell 7」をインストール:

2. 「Ubuntu」に「VSCode」をインストール:

3. 「VSCode」に「PowerShell 拡張機能」をインストール:

4. 「Windows11」にて、「WSL 2」の「Ubuntu」に「VSCode」をインストールする場合:

-

参考:

1. 「PowerShell」のコマンドレット:

2. 「ls」(Get-ChildItem) コマンドのヘルプ:

3. 「PowerShell」の Tips(役立つコツ):

4. 「PowerShell」について学ぶ:

5. 「Linux」の「PowerShell」で、シェルスクリプトを使う場合:

6. 「VSCode」の使い方を学ぶ:

-

「まとめ へ」

「目次詳細 へ」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -

「Windows11」(22H2) を起動:

-

立ち上げた「Windows11」の画面:

「Windows10」から「Windows11」にアップグレードしたので、デスクトップに以前使っていたアプリのアイコン(ショートカット)と「壁紙」が残っています。

-

タスクバー右にピン留めしている 2つの「端末」アイコンが「PowerShell」のアイコンです。
青いのが「Windows PowerShell 5.1」で、黒いのが「PowerShell 7」のアイコンです。

-

PowerShell」から「VSCode」を起動 :

→普段は、テキストファイルの作成がメインですが、「PowerShell」の機能拡張をインストールすることで、「PowerShell」のスクリプトファイル (.ps1) の作成やデバッグが楽に出来るようになります。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - --

PowerShell 7」について:

-

1).「Windows11」の標準のシェルである「Windows PowerShell 5.1」を機能強化したものです。

-

2). マルチプラットフォーム版なので、Linux でも使えます。

→「Windows11」のアプリのメンテに、Linux 環境が使えます。

-

3). 「PowerShell 7」を使うにはインストールが必要です。

→「Windows11」でもインストールが必要です。

アプリのアイコンや、インストール先も異なるので、標準のシェルである「Windows PowerShell 5.1」と共存ができます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ---

1. 「Ubuntu」を最新に更新:

-

1). 「Ubuntu」のシステム更新:

$ sudo apt update
$ sudo apt upgrade

-

2). 「Ubuntu」を再起動:

$ reboot

→システム更新を反映させます。

-

3). 参考: 更新によっては、アップグレードが保留される場合があります:

$ sudo apt upgrade
:
以下のパッケージは保留されます:
  libpulse0
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。

→「保留」とは、更新するかの判断が必要なパッケージで、手動でのインストール待ちの状態です。

-

保留を解消したいときは、手動でパッケージをインストールします:
$ sudo apt install libpulse0
:
以下のパッケージはアップグレードされます:
  libpulse0

-

4). 参考: システム更新がない場合の表示:

$ sudo apt update
:
ヒット:1 https://packages.microsoft.com/ubuntu/22.04/prod jammy InRelease
ヒット:2 http://archive.ubuntu.com/ubuntu jammy InRelease
ヒット:3 http://security.ubuntu.com/ubuntu jammy-security InRelease
ヒット:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
ヒット:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
パッケージはすべて最新です。

-

$ sudo apt upgrade
:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

-

参考: 通常版の「Ubuntu」の場合:

$ sudo apt upgrade
:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
アップグレードパッケージを検出しています... 完了
Get more security updates through Ubuntu Pro with 'esm-apps' enabled:
  exo-utils libopusfile0 libopenexr25 libpostproc55 libavcodec58 libavutil56
  libswscale5 libexo-2-0 libswresample3 libavformat58 libexo-common
  libavfilter7
Learn more about Ubuntu Pro at https://ubuntu.com/pro
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

Ubuntu Pro についての表示は個人的には無視してます:

業務で使うのであれば検討できますが、 ブログを書くために頻繁にシステムのインストールやアンインストールを行っているので(台数制限があるので)無視してます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----

2. 「Ubuntu」に「PowerShell 7」をインストール:

-

Ubuntu 22.04 の場合のパッケージ:

https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb

→ダウンロードは下記の手順の「項番 2).」で行っています。

-

1). 前提条件のパッケージをインストール:

$ sudo apt install wget apt-transport-https software-properties-common

-

2). Microsoft リポジトリの GPG キーをダウンロード:

$ wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"

-

参考:

$ lsb_release -rs
22.04

-

3). Microsoft リポジトリの GPG キーを登録:

$ sudo dpkg -i packages-microsoft-prod.deb

-

4). パッケージの一覧を更新:

$ sudo apt update
:
ヒット:1 https://packages.microsoft.com/ubuntu/22.04/prod jammy InRelease  ←(追加)
ヒット:2 http://archive.ubuntu.com/ubuntu jammy InRelease
ヒット:3 http://security.ubuntu.com/ubuntu jammy-security InRelease
ヒット:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
ヒット:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
パッケージはすべて最新です。

-

5). 「PowerShell」のインストール:

$ sudo apt install powershell
:
以下のパッケージが新たにインストールされます:
  powershell

-

6). 再起動:

$ reboot

→インストール後は、モジュールが認識されていないので、再起動します

-

7). 「PowerShell 7」の場所の確認:

$ which pwsh
/usr/bin/pwsh

-

8). 「PowerShell 7」のバージョンを確認:

$ pwsh -version
:
PowerShell 7.3.3

-

9). 「PowerShell 7」の起動:

$ pwsh
:
PowerShell 7.3.3

→起動時にバージョンが表示されます。

PS /home/ubn>

→プロンプトが変わりました。「ubn」はユーザ名で任意です。

-

10). 「PowerShell 7」にて通常のコマンドを確認:

PS /home/ubn> ls -1
:
Desktop
Documents
Downloads
packages-microsoft-prod.deb

-

11). 「PowerShell 7」にて、バージョンを確認:

PS /home/ubn> $PSVersionTable.PSVersion
Major  Minor  Patch  PreReleaseLabel BuildLabel
-----  -----  -----  --------------- ----------
7      3      3

→コマンドの補完機能を使うと入力が楽です。

「$PSV」Tab →「$PSVersionTable」

$PSVersionTable「.psv」Tab →「$PSVersionTable.PSVersion」Enter

-

12). 「PowerShell 7」の終了:

PS /home/ubn> exit
$

もしくは、「タブ」を閉じます。

-

13). 「PowerShell 7」のバージョンアップ:

$ sudo apt install powershell
:
powershell はすでに最新バージョン (7.3.3-1.deb) です。

-

14). ヘルプファイルのダウンロードと更新:

PS C:\Users\user> Update-Help

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -----

3.「Ubuntu」にて、「VSCode」をインストール:

-

参考:

Linux で Visual Studio Code

2023-04-10 現在、バージョン 1.77 が利用可能:

-

「snap」パッケージでインストールされていないか検索:

$ snap list
:
Name               Version          Rev    Tracking         Publisher      Notes
bare               1.0              5      latest/stable    canonical✓     base
chromium           111.0.5563.146   2415   latest/stable    canonical✓     -
core20             20230308         1852   latest/stable    canonical✓     base
cups               2.4.2-5          872    latest/stable    openprinting✓  -
gnome-3-38-2004    0+git.6f39565    137    latest/stable/…  canonical✓     -
gtk-common-themes  0.1-81-g442e511  1535   latest/stable/…  canonical✓     -
snapd              2.58.3           18596  latest/stable    canonical✓     snapd

→「snap」パッケージのインストールはなくても、デフォルトでいくつかのパッケージがインストールされています。

-

「snap」パッケージの「VSCode」があるか確認:
$ snap search code
:
Name                            Version                Publisher             Notes    Summary
code                            7f329fe6               vscode✓               classic  Code editing. Redefined.
:

→「snap」パッケージとしてインストールできるみたい。

ただし、「snap」パッケージとしてインストールすると、色々と制限が出る場合があるようなので、

今回はダウンロードして、「VSCode」をインストールしました。

-


ダウンロードして、「VSCode」をインストールする場合:

-

(1). 依存するパッケージをインストール:
$ sudo apt install wget gpg apt-transport-https
:
wget はすでに最新バージョン (1.21.2-2ubuntu1) です。
gpg はすでに最新バージョン (2.2.27-3ubuntu2.1) です。
apt-transport-https はすでに最新バージョン (2.4.8) です。

-

(2). 作業フォルダを作成:
$ mkdir -p ~/Downloads/apps/

-

(3). 「.deb」パッケージ (64 ビット) をダウンロード:
$ cd ~/Downloads/apps/
$ wget -O code_latest_amd64.deb "https://go.microsoft.com/fwlink/?LinkID=760868"
:
場所: https://az764295.vo.msecnd.net/stable/7f329fe6c66b0f86ae1574c2911b681ad5a45d63/code_1.77.0-1680085573_amd64.deb [続く]
:
2023-04-05 01:28:03 (10.8 MB/s) - ‘code_latest_amd64.deb’ へ保存完了 [88562884/88562884]

→「code_latest_amd64.deb」はダウンロードするための「仮のファイル名」です。

今回だと、正式なファイル名は「code_1.77.0-1680085573_amd64.deb」です。ただし、更新があるとその都度ファイル名は変わってしまうので、手順を同じにするため「仮のファイル名」にしました。

-

(4). ダウンロードされたか確認:
$ ls -1 ~/Downloads/apps/
:
code_latest_amd64.deb            ←(ダウンロード)
firefox-102.8.0esr.tar.bz2

-

(5). 「.deb」パッケージをインストール:
$ cd ~/Downloads/apps/
$ sudo apt install ./code_latest_amd64.deb
:
注意、'./code_latest_amd64.deb' の代わりに 'code' を選択します
以下のパッケージが新たにインストールされます:
  code cpp cpp-11 gcc-11-base libauthen-sasl-perl libclone-perl libdata-dump-perl libencode-locale-perl
  libfile-basedir-perl libfile-desktopentry-perl libfile-listing-perl libfile-mimeinfo-perl
  libfont-afm-perl libfontenc1 libhtml-form-perl libhtml-format-perl libhtml-parser-perl
  libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl
  libhttp-message-perl libhttp-negotiate-perl libio-html-perl libio-socket-ssl-perl libio-stringy-perl
  libipc-system-simple-perl libisl23 liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl
  libmpc3 libnet-dbus-perl libnet-http-perl libnet-smtp-ssl-perl libnet-ssleay-perl libtie-ixhash-perl
  libtimedate-perl libtry-tiny-perl libvulkan1 libwww-perl libwww-robotrules-perl libx11-protocol-perl
  libxaw7 libxml-parser-perl libxml-twig-perl libxml-xpathengine-perl libxmu6 libxt6 libxxf86dga1
  mesa-vulkan-drivers perl-openssl-defaults x11-utils x11-xserver-utils xdg-utils
アップグレード: 0 個、新規インストール: 56 個、削除: 0 個、保留: 0 個。
:
続行しますか? [Y/n]
取得:1 /home/ubn/Downloads/apps/code_latest_amd64.deb code amd64 1.77.0-1680085573 [88.6 MB]
取得:2 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 xdg-utils all 1.1.3-4.1ubuntu3~22.04.1 [61.9 kB]
:
N: ファイル '/home/ubn/Downloads/apps/code_latest_amd64.deb' がユーザ '_apt' からアクセスできないため、ダウ
ンロードは root でサンドボックスを通さずに行われます。 - pkgAcquire::Run (13: 許可がありません)

→「.deb」パッケージをインストールすると、「code」がローカルにインストールされます:

$ apt list code
:
code/now 1.77.0-1680085573 amd64 [インストール済み、ローカル]

→「code」がインストールされました。「ローカル」の表示に注目。

一緒に、「apt リポジトリ」と「署名キー」も自動でインストールされるので、 apt(システムのパッケージ管理マネージャ)を使用した自動更新が有効になります。

ちなみに、ダウンロード中に表示の「code_1.77.0-1680085573_amd64.deb」とバージョン表示が合致。

-

(6). パッケージのキャッシュを更新:
$ cd
$ sudo apt update
:
ヒット:1 http://packages.microsoft.com/repos/code stable InRelease    ←(追加: code の安定版のリポジトリ)
ヒット:2 https://packages.microsoft.com/ubuntu/22.04/prod jammy InRelease    ←(powershell7 のリポジトリ)
ヒット:3 http://archive.ubuntu.com/ubuntu jammy InRelease
ヒット:4 http://security.ubuntu.com/ubuntu jammy-security InRelease
ヒット:5 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
ヒット:6 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
パッケージはすべて最新です。

-

(7). apt でパッケージをインストール:
$ sudo apt install code
:
code はすでに最新バージョン (1.77.0-1680085573) です。

-

(8). インストールされたか確認:
$ apt list code
:
code/stable,now 1.77.0-1680085573 amd64 [インストール済み]
code/stable 1.77.0-1680084405 arm64
code/stable 1.77.0-1680084633 armhf

→「ローカル」の表示が消えて、通常のパッケージをインストールしたときと同じ状態になりました。

-

$ which code
:
/usr/bin/code

-

(9). 「code」パッケージを更新する場合:

→上記の「項番 7)」と同じ操作を行います。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -

4.「VS Code」の設定:

-

1). 「VS Code」を起動:

$ code

-

2). 「VS Code」が起動されました:

「Welcome」タブが表示:

→英語で表示

-

起動したときに、画面の右下に「表示言語を日本語に変更するには言語パッケージをインストールします。」の表示があれば、クリックするだけで「日本語化」できますが、

→今回は表示されないので、再起動しました。

-

3). 「Ubuntu」を再起動:

-

再起動することで、インストールで設定された %PATH% 環境変数の変更が有効になります。

-

4). 「VS Code」を起動:

$ code

-

5). 「Welcome」タブの表示:

画面の右下に「表示言語を日本語に変更するには言語パッケージをインストールします。」が表示:

→「インストールして再起動」をクリック

-

6). アプリが再起動され、日本語化されました:

「Welcome」タブが、「ようこそ」の表示に変更されました:

-

7). 日本語化されたことで、「ようこそ」タブの表示がわかりやすくなりました:

「ようこそ」タブでは、初期設定のガイドが表示されます:

→すべて設定しなくても良いので、日本語化後に、必要なものだけ、設定すれば良いと思います。

設定した項目には、設定済の青いチェックが付きます。

-

8). 試しに、 「好きな外観を選択します」をクリック:

-

(1). 選ぶ「テーマ」が決まっている場合:

右にある一覧から、

→「ダーク」をクリックして選択(デフォルト)

→「色のテーマを参照」をクリック

-

上段に一覧が表示:

Dark+ (default Dark)→「Monokai」に変更:

-

(2). 選ぶ「テーマ」が決まっていない場合:

「ようこそ」タブからの設定だと、テーマがどういう見た目なのかわかりません。

設定したいときは、「プログラム ファイル」や「Markdown ファイル」を開いておいて、変更します。

-

左側にある「エクスプローラ」アイコンをクリック:

→「フォルダを開く」をクリック:

-

「フォルダ」と「ファイル」を指定:

→任意: DOC\2023-03-02-memo.md

-

この画面で、「Ctrl+K」「Ctrl+T」を押して、「テーマの選択」一覧を表示:

-

「↓」「↑」キーで、テーマを変えると、テーマが「リアルタイム」に反映されます:

→好みのテーマを見つけたら、Enter で確定

-

9). 自動更新されます:

毎月、リリースがあり、新しいリリースが利用可能になると通知されます。 通知があったとき、最新の更新プログラムを受け入れるとインストールされます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- --

5.「VSCode」に、「PowerShell 拡張機能」をインストール:

-

1). ターミナルにて、「VSCode」を起動:

$ code

-

2). 左の一番下の「拡張機能」アイコンをクリック:

→サイド バーに「拡張機能」ビューが開きます:

-

3). 上部の検索窓に「powershell」と入力:

→表示された一覧で、一番上のMicrosoft の「PowerShell」の拡張機能を選択

-

4). MicrosoftPowerShell 拡張機能の、 「インストール」ボタンをクリック

-

5). 「この拡張機能はグローバルに有効化されています、」と表示されれば、「拡張機能」を使った編集が可能になります。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ---

6. 参考:「Windows11」にて、「WSL 2」の「Ubuntu」に「VSCode」をインストールする場合:

-

こちらは確認のみで、作業は要りません。

-

注意: 「Windows11」側に「VS Code」をインストールすれば、「WSL2」の「Ubuntu」にて「VS Code」が起動できます。

→もし、「WSL2」の「Ubuntu」に「VSCode」をインストールすると、アンインストールしないと警告が表示されて起動できません。

-

1). 確認のため、「WSL2」の「Ubuntu」で、「VS Code」をインストールしてみました:

インストールのやり方は、「Ubuntu」で、「VS Code」をインストールした場合と同じです。

-

2). 「WSL2」で「VS Code」のバージョンを確認:

ubn@FMVpc:~$ code --version
:
To use Visual Studio Code with the Windows Subsystem for Linux, please install Visual Studio Code in Windows and uninstall the Linux version in WSL. You can then use the `code` command in a WSL terminal just as you would in a normal command prompt.
Do you want to continue anyway? [y/N]
ubn@FMVpc:~$

→警告メッセージが表示され、実行できません。

-

和訳:

「WSL2」(Linux 用 Windows サブシステム)で「Visual Studio Code」を使用する場合は、  
Windows に「Visual Studio Code」をインストールし、「WSL2」で Linux バージョンをアンインストールしてください。
その後、通常のコマンド プロンプトと同じように、WSL ターミナルで「code」コマンドを使用できます。

このまま続行しますか? [y/N]

→「Windows11」の「VS Code」と「WSL2」の「VS Code」は共存できないようです。

-

3). 「WSL2」で「VS Code」を起動:

ubn@FMVpc:~$ code
:
To use Visual Studio Code with the Windows Subsystem for Linux, please install Visual Studio Code in Windows and uninstall the Linux version in WSL. You can then use the `code` command in a WSL terminal just as you would in a normal command prompt.
Do you want to continue anyway? [y/N]
ubn@FMVpc:~$

→同じメッセージが表示されて、実行できません。

-

4).「WSL2」で「VS Code」を使うときは、「Windows11」側のみに「VS Code」をインストールします。

-

5). 「WSL2」に「VS Code」をインストールしているときは、アンインストールしないと「VS Code」が使えません:

ubn@FMVpc:~$ sudo apt remove code
:
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  cpp cpp-11 gcc-11-base libfile-basedir-perl libfile-desktopentry-perl libfile-mimeinfo-perl libfontenc1
  libio-stringy-perl libipc-system-simple-perl libisl23 libmpc3 libnet-dbus-perl libtie-ixhash-perl
  libvulkan1 libx11-protocol-perl libxaw7 libxml-parser-perl libxml-twig-perl libxml-xpathengine-perl
  libxmu6 libxt6 libxxf86dga1 mesa-vulkan-drivers x11-utils x11-xserver-utils xdg-utils
これを削除するには 'sudo apt autoremove' を利用してください。
以下のパッケージは「削除」されます:
  code

-

6). 残骸のクリア処理:

$ sudo apt autoremove
:
以下のパッケージは「削除」されます:
  cpp cpp-11 gcc-11-base libfile-basedir-perl libfile-desktopentry-perl libfile-mimeinfo-perl libfontenc1
  libio-stringy-perl libipc-system-simple-perl libisl23 libmpc3 libnet-dbus-perl libtie-ixhash-perl
  libvulkan1 libx11-protocol-perl libxaw7 libxml-parser-perl libxml-twig-perl libxml-xpathengine-perl
  libxmu6 libxt6 libxxf86dga1 mesa-vulkan-drivers x11-utils x11-xserver-utils xdg-utils
アップグレード: 0 個、新規インストール: 0 個、削除: 26 個、保留: 0 個。

-

7). 「Powershell」タブで、「Ubuntu」を停止:

PS C:\Users\user> wsl -t ubuntu
この操作を正しく終了しました。

-

8). 「Powershell」タブで、「VS Code」のバージョンを確認:

PS C:\Users\user> code --version
1.76.2
ee2b180d582a7f601fa6ecfdad8d9fd269ab1884
x64

-

9). 「Ubuntu」を起動:

PowerShell」で、Ctrl+Shift+5

→背景が紫色の「Ubuntu」タブが開きます:

-

10). 「Ubuntu」タブで「VS Code」のパスを確認:

ubn@FMVpc:~$ which code
/mnt/c/Users/user/AppData/Local/Programs/Microsoft VS Code/bin/code

→「Ubuntu」からもパスは通っています。

-

11). 「Ubuntu」タブで「VS Code」のバージョン確認:

ubn@FMVpc:~$ code --version
1.76.2
      ee2b180d582a7f601fa6ecfdad8d9fd269ab1884
                                              x64
                                                 ubn@FMVpc:~$

→「Ubuntu」側でも起動できました。 ただし、改行コードの違いからか表示が乱れています。

-

-


まとめ

Ubuntu 22.04 LTS」にて、「VSCode」をインストールして、拡張機能をインストールしました。

-

別件ですが、注目なのは、「Windows11」の「WSL 2」において、「Ubuntu」(Linux) で「VSCode」を使いたい場合は、 「Windows11」側に「VSCode」をインストールすれば、「Ubuntu」(Linux) からも「VSCode」が起動できることです。

なので、「Windows11」の「WSL 2」の「Ubuntu」(Linux) で「VSCode」を使う場合は、日本語入力は「Windows11」の日本語入力が使われます。

-

つまり、

「WSL 2」の「Linux」(Ubuntu) では、日本語入力 (fcitx-mozc) をインストールしなくても、CUI 画面(端末画面)の「vim」や「nano」と、GUI 画面の「VSCode」であれば日本語入力ができます。

→これは、「WSL 2」を使う場合に、テキストエディタとして「VSCode」を選べば簡単に日本語入力できる、重要な「ポイント」(利点)です。

-

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

「Windows11」(22H2) にて、「PowerShell」のスクリプトの作成に「VSCode」を使う〈H165-3〉

登録日: 2023-04-02 更新日: 2023-04-02

こちらの「Linux あれこれ」は「Linux」メインで投稿してますが、「Windows11」で「Linux」を使う機能に興味があり、投稿しました。

-

前回 は、「Windows11」(22H2) の標準シェルである「Windows PowerShell 5.1」の機能強化版の「PowerShell 7」をインストールしました。

PowerShell 7」でシェルスクリプトを開発(デバッグ)するときは、「VSCode」とその拡張機能が使われるようなので、その環境をインストールしてみました。

その備忘録です。

-

-

使用したPC は、USB 3.0 ポートのある「Windows 11」のノートPC です。メモリ 12GB、SSD 1TB に増設しています。 「UEFI 立ち上げ」のPC です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

前回の作業:

「Windows11」(22H2) と「Ubuntu」で、「PowerShell」を使う〈H165-2〉

-

今回の作業:

1. 「VSCode」をインストール:

2. 「PowerShell 拡張機能」をインストール:

3. 「VSCode」の使い方を学ぶ:

4. 「PowerShell」について学ぶ:

-

参考:

1. 「PowerShell」のコマンドレット:

2. 「ls」(Get-ChildItem) コマンドのヘルプ:

3. 「PowerShell」の Tips(役立つコツ):

-

「まとめ へ」

「目次詳細 へ」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -

「Windows11」(22H2) を起動:

-

立ち上げた「Windows11」の画面:

「Windows10」から「Windows11」にアップグレードしたので、デスクトップに以前使っていたアプリのアイコン(ショートカット)と「壁紙」が残っています。

-

PowerShell」から「VSCode」を起動 :

→この画面では、テキストファイルの作成に使っていますが、「PowerShell」の機能拡張をインストールすることで、「PowerShell」のスクリプトファイル (.ps1) の作成や実行してのデバッグに使えます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - --

1.「Windows PowerShell 5.1」について:

-

1). 「Windows11」(22H2) の「Windows ターミナル」で動く、基本の「シェル」です。

→「Windows PowerShell 5.1」は「Windows」に標準でプリインストールされており、「Windows」のみで使えます。

その後継の「PowerShell 7」は、機能強化だけでなく、マルチプラットフォーム版として他のOS にも提供されています。

-

2). コマンドで起動:

powershell.exe

→「.exe」は付けなくても起動できます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ---

2.「PowerShell 7」について:

-

1).「PowerShell 7」は、「Windows PowerShell 5.1」を機能強化したマルチプラットフォーム版です。

-

2).「Windows PowerShell 5.1」と共存できます。

インストール場所も、アイコンも違います:

青い端末アイコン: 「Windows PowerShell 5.1」

黒い端末アイコン: 「PowerShell 7」

-

3). 使うにはインストールが必要です。

-

(1). 「PowerShell 7」のインストール:

こちら 」を参照:

-

インストール後は、モジュールが認識されていないので、再起動します

-

(2). 「PowerShell 7」のバージョンアップ:

こちら 」を参照:

-

(3). ヘルプファイルのダウンロードと更新:

こちら 」を参照:

-

(4). 起動したら、起動アイコンを右クリックして「タスクバーにピン留め」しておくと便利です。

-

4). 「PowerShell 7」をコマンドで起動:

PS C:\Users\user> pwsh
:
PowerShell 7.3.3

→起動時にバージョンが表示されます。

-

5). 起動して、バージョンを確認:

PS C:\Users\user> pwsh -version
PowerShell 7.3.3

-

もしくは、

PS C:\Users\user> $PSVersionTable.PSVersion
Major  Minor  Patch  PreReleaseLabel BuildLabel
-----  -----  -----  --------------- ----------
7      3      3

→コマンドの補完機能を使うと入力が楽です。

「$PSV」Tab →「$PSVersionTable」

$PSVersionTable「.psv」Tab →「$PSVersionTable.PSVersion」Enter

-

6).「PowerShell 7」の終了:

PS C:\Users\user> exit

もしくは、「タブ」を閉じます。

-

7).「Windows」で、「PowerShell」の「シェルスクリプト」を使う場合:

こちら 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----

3.「Windows11」にて、「VSCode」をインストール:

-

参考:

Windows で Visual Studio Code を実行する

-

1). インストール:

-

(1). Windows 向けの「Visual Studio Code インストーラー」をダウンロード:

Visual Studio Code installer for Windows

→今回は、「VSCodeUserSetup-x64-1.76.2.exe」

-

(2). ダウンロードした「ファイル」をダブルクリック

-

(3). 「セットアップ」画面が表示:

-

(4). 「同意する」にチェック

→「次へ」

-

(5). インストール先:
C:\Users\user\AppData\Local\Programs\Microsoft VS Code

→「次へ」

-

(6). スタートメニューフォルダ:
Visual Studio Code

→「次へ」

-

(7). 追加タスクの選択:

そのまま

→「次へ」

→「インストール」

-

(8). 「インストール」開始

-

(9). 「インストール完了」画面:

Visual Studio Code を実行する」にチェックが入っています。

→「完了」をクリック

-

Visual Studio Code を実行する」のチェックを外して、すぐに「Windows11」を再起動する方がスムーズかも。

-

2). 「VS Code」が起動されました:

「Welcome」タブが表示:

→英語で表示

-

起動したときに、画面の右下に「表示言語を日本語に変更するには言語パッケージをインストールします。」の表示があれば、クリックするだけで「日本語化」できますが、

→今回は表示されないので、再起動しました。

-

3). 「Windows11」を再起動:

-

再起動することで、インストールで設定された %PATH% 環境変数の変更が有効になります。

-

4). 「VS Code」を起動:

PS C:\Users\user> code

-

5). 「Welcome」タブの表示:

画面の右下に「表示言語を日本語に変更するには言語パッケージをインストールします。」が表示:

→「インストールして再起動」をクリック

-

6). アプリが再起動され、日本語化されました:

「Welcome」タブが、「ようこそ」の表示に変更されました:

-

7). 日本語化されたことで、「ようこそ」タブの表示がわかりやすくなりました:

「ようこそ」タブでは、初期設定のガイドが表示されます:

→すべて設定しなくても良いので、日本語化後に、必要なものだけ、設定すれば良いと思います。

設定した項目には、設定済の青いチェックが付きます。

-

8). 試しに、 「好きな外観を選択します」をクリック:

-

(1). 選ぶ「テーマ」が決まっている場合:

右にある一覧から、

→「ダーク」をクリックして選択(デフォルト)

→「色のテーマを参照」をクリック

-

上段に一覧が表示:

Dark+ (default Dark)→「Monokai」に変更:

-

(2). 選ぶ「テーマ」が決まっていない場合:

「ようこそ」タブからの設定だと、テーマがどういう見た目なのかわかりません。

設定したいときは、「プログラム ファイル」や「Markdown ファイル」を開いておいて、変更します。

-

左側にある「エクスプローラ」アイコンをクリック:

→「フォルダを開く」をクリック:

-

「フォルダ」と「ファイル」を指定:

→任意: DOC\2023-03-02-memo.md

-

この画面で、「Ctrl+K」「Ctrl+T」を押して、「テーマの選択」一覧を表示:

-

「↓」「↑」キーで、テーマを変えると、テーマが「リアルタイム」に反映されます:

→好みのテーマを見つけたら、Enter で確定

-

9). 参考:

-

(1). デフォルトで、「VS Code」は下記のフォルダにインストールされます:
C:\Users\「ユーザ名」\AppData\Local\Programs\Microsoft VS Code\

→フォルダ名にスペースが含まれていることに注目

-

Microsoft VS Code」フォルダにある、ファイル名だけを(オブジェクトから選択して)表示:
PS C:\Users\user> Get-ChildItem 'C:\Users\user\AppData\Local\Programs\Microsoft VS Code\' | Select-Object Name

もしくは、

PS C:\Users\user> ls 'C:\Users\user\AppData\Local\Programs\Microsoft VS Code\' -Name
Name
----
bin
locales
policies
resources
tools
chrome_100_percent.pak
chrome_200_percent.pak
Code.exe                           ←(注目)
Code.VisualElementsManifest.xml
d3dcompiler_47.dll
ffmpeg.dll
icudtl.dat
libEGL.dll
libGLESv2.dll
resources.pak
snapshot_blob.bin
unins000.dat
unins000.exe
unins000.msg
v8_context_snapshot.bin
vk_swiftshader.dll
vk_swiftshader_icd.json
vulkan-1.dll

-

(2). 「VS Code」は、Windows では、 「ユーザ レベル」のセットアップと「システム レベル」のセットアップの両方を提供しています。

-

(3). 「ユーザ レベル」のセットアップは、管理者権限がなくても出来ます:

インストールすると、ユーザごとの「Local AppData (LOCALAPPDATA)」フォルダに配置されます。

そのユーザのみで「VS Code」を利用できます。

-

(4). 「システム レベル」のセットアップは、管理者権限が必要です:

インストールにて、システムの「Program Files」フォルダに配置されます。

管理者権限でインストールすると、すべてのユーザで「VS Code」を利用できます。

-

確認:

今回は、システムレベルでは、インストールしていないので下記には存在しません:

PS C:\Users\user> ls 'C:\Program Files\' -Name
:
Apoint2K
Bonjour
Common Files
game
HP
Intel
Internet Explorer
LibreOffice
Microsoft Office
Microsoft Update Health Tools
ModifiableWindowsApps
Mozilla Firefox
Notepad++
PCHealthCheck
PowerShell                       ←(注目)
Realtek
rempl
ruxim
UNP
VideoLAN
Windows Defender
Windows Mail
Windows Media Player
Windows NT
Windows Photo Viewer
WindowsPowerShell                ←(注目)

→「PowerShell」も、こちらのフォルダに配置されています。

-

(5). 自動更新されます:

毎月、リリースがあり、新しいリリースが利用可能になると通知されます。 通知があったとき、最新の更新プログラムを受け入れるとインストールされます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -----

4.「VSCode」に、「PowerShell 拡張機能」をインストール:

-

1). ターミナルにて、「VSCode」を起動:

PS C:\Users\user> code

-

2). 左の一番下の「拡張機能」アイコンをクリック:

→サイド バーに「拡張機能」ビューが開きます:

-

3). 上部の検索窓に「powershell」と入力:

→表示された一覧で、一番上のMicrosoft の「PowerShell」の拡張機能を選択

-

4). MicrosoftPowerShell 拡張機能の、 「インストール」ボタンをクリック

-

5). 「この拡張機能はグローバルに有効化されています、」と表示されれば、「拡張機能」を使った編集が可能になります。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -

5.「VSCode」の使い方を学ぶ:

-

1). 「PowerShell」にて、「VSCode」を起動:

PS C:\Users\user> code

-


2). 「VS Code」についての動画:

参考:

-

MacOS での操作説明なので、Windows とは特殊キーが違います:

Command :     「Ctrl」キー

Option :       「Alt」キー

Command +「←」 : 「Home」キー

Command +「→」 : 「End」キー

-

例えば、ファイルの上書き保存は、

MacOS の場合: 「Command + S」

Windows の場合: 「Ctrl + S」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- --

6.「PowerShell」について学ぶ:

-


1). 最初に見ておくと良さそうな Web サイト:

参考:

-

→PoweShell のコマンドレットの出力は、文字列ではなく、(.Net 経由の)「配列」(データのかたまり)です。 その配列についての予備知識。

-


2). 「PowerShell」のデバッグのやり方:

参考:

-


3). 「PowerShell」のトレーニング を行う Microsoft の Web サイト:

本家の Web サイトなので情報は確実です。「リンク」をたどりながら学習して行くので、深く入りすぎたり、道が外れやすいので、何を学ぶのか、はじめに「概要」(学ぶべき項目)をメモしておくのが良さそう:

-

抜粋:

-

「開始 >」ボタンをクリック

「概要 v」があったら、クリックして確認:

知りたい項目の「リンク」から、学んで行く学習方法です。

各項目が広く説明されているので、項目によって急に深くなったり、別の道にそれたり、リンクを押す順番で表示が変わってしまうのが難点。(逆に予想外のことが学べたりします)

サインインすると、「+追加」ボタンで、個人のコレクションにその項目を登録できます。

効率的な学習をするには、レベルによって読み飛ばす?、慣れが必要。

逆に、自分が知っていること以外に、知らないことがないか見直すには良いかも。

-


4). 「PowerShell」についての動画:

動画なのでわかりやすいです。感謝!! :

-

参考:

→「▶すべて再生」をクリック

-

Part 1  概要・起動方法・コマンドレット

Part 2  コマンドレット・コマンド・文字列

Part 3  パイプライン

Part 4  スクリプト・実行ポリシー・コメントベースのヘルプ  ←(今回の投稿に該当する項目)

Part 5  条件文 if~else / 比較演算子 / switch

Part 6  繰り返し文 for / foreach / while / do / break

Part 7  関数 / Function

Part 8  配列 / Array

Part 9  連想配列 / Hash Tables

Part 10  演算子 / Operators

Part 11  エラー処理 / Error handling

Part 12  Class と Enum

Part 13  PSプロバイダ/PSドライブ/レジストリ/環境変数/変数と型

Part 14  モジュール / Module

-


5). 参考:「コマンドプロンプト」と「PowerShell」の出力の違いを確認:

違いがわかるように、

VS Code」のフォルダを「コマンドプロンプト」と「PowerShell」で確認してみました:

-

(1). 「VS Code」はデフォルトで、下記のフォルダにインストールされます:
C:\Users\「ユーザ名」\AppData\Local\Programs\Microsoft VS Code\

→指定するときは、「フォルダ名」にスペースが含まれていることに注目

-

(2). 「Microsoft VS Code」フォルダを確認:
PS C:\Users\user> ls 'C:\Users\user\AppData\Local\Programs\Microsoft VS Code\'

もしくは、

PS C:\Users\user> Get-ChildItem 'C:\Users\user\AppData\Local\Programs\Microsoft VS Code\'
    ディレクトリ: C:\Users\user\AppData\Local\Programs\Microsoft VS Code


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----     2023/03/21 火     11:53                bin
d-----     2023/03/21 火     11:53                locales
d-----     2023/03/21 火     11:53                policies
d-----     2023/03/21 火     11:53                resources
d-----     2023/03/21 火     11:53                tools
-a----     2023/03/14 火     17:56         128506 chrome_100_percent.pak
-a----     2023/03/14 火     17:56         179027 chrome_200_percent.pak
-a----     2023/03/14 火     18:26      141072312 Code.exe                           ←(注目)
-a----     2023/03/14 火     17:56            376 Code.VisualElementsManifest.xml
-a----     2023/03/14 火     18:23        4901280 d3dcompiler_47.dll
-a----     2023/03/14 火     18:23        2387392 ffmpeg.dll
-a----     2023/03/14 火     17:56       10397488 icudtl.dat
-a----     2023/03/14 火     18:25         481160 libEGL.dll
-a----     2023/03/14 火     18:23        7192512 libGLESv2.dll
-a----     2023/03/14 火     17:56        4933174 resources.pak
-a----     2023/03/14 火     17:56         407384 snapshot_blob.bin
-a----     2023/03/21 火     11:53         451053 unins000.dat
-a----     2023/03/21 火     11:44        2629016 unins000.exe
-a----     2023/03/21 火     11:53          13609 unins000.msg
-a----     2023/03/14 火     17:56         730800 v8_context_snapshot.bin
-a----     2023/03/14 火     18:23        4769728 vk_swiftshader.dll
-a----     2023/03/14 火     17:56            106 vk_swiftshader_icd.json
-a----     2023/03/14 火     18:23         885144 vulkan-1.dll

→コマンドの補完機能を使うと入力が楽です。

「get-ch」Tab →「Get-ChildItem」

-

→結果は、文字列ではなく、「配列」として出力されます。

「ls」や「dir」は、「Get-ChildItem」コマンドのエイリアス(別名)です。

「user」は「ユーザ名」で、任意です。

-

(3). ファイル名だけを(オブジェクトから選択して)表示:
PS C:\Users\user> Get-ChildItem 'C:\Users\user\AppData\Local\Programs\Microsoft VS Code\' | Select-Object Name

もしくは、

PS C:\Users\user> ls 'C:\Users\user\AppData\Local\Programs\Microsoft VS Code\' -Name
Name
----
bin
locales
policies
resources
tools
chrome_100_percent.pak
chrome_200_percent.pak
Code.exe                           ←(注目)
Code.VisualElementsManifest.xml
d3dcompiler_47.dll
ffmpeg.dll
icudtl.dat
libEGL.dll
libGLESv2.dll
resources.pak
snapshot_blob.bin
unins000.dat
unins000.exe
unins000.msg
v8_context_snapshot.bin
vk_swiftshader.dll
vk_swiftshader_icd.json
vulkan-1.dll

→行頭のコマンド名の「Get-ChildItem」を別名で定義されている「ls」や「dir」に変えても結果は同じです。

-

(4). 参考: 「コマンドプロンプト」で確認すると:
C:\Users\user> dir C:\Users\user\AppData\Local\Programs\"Microsoft VS Code"\
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は 745A-4444 です

 C:\Users\user\AppData\Local\Programs\Microsoft VS Code のディレクトリ

2023/03/21 火  11:53    <DIR>          .
2023/03/21 火  11:53    <DIR>          ..
2023/03/21 火  11:53    <DIR>          bin
2023/03/14 火  17:56           128,506 chrome_100_percent.pak
2023/03/14 火  17:56           179,027 chrome_200_percent.pak
2023/03/14 火  18:26       141,072,312 Code.exe
2023/03/14 火  17:56               376 Code.VisualElementsManifest.xml
2023/03/14 火  18:23         4,901,280 d3dcompiler_47.dll
2023/03/14 火  18:23         2,387,392 ffmpeg.dll
2023/03/14 火  17:56        10,397,488 icudtl.dat
2023/03/14 火  18:25           481,160 libEGL.dll
2023/03/14 火  18:23         7,192,512 libGLESv2.dll
2023/03/21 火  11:53    <DIR>          locales
2023/03/21 火  11:53    <DIR>          policies
2023/03/21 火  11:53    <DIR>          resources
2023/03/14 火  17:56         4,933,174 resources.pak
2023/03/14 火  17:56           407,384 snapshot_blob.bin
2023/03/21 火  11:53    <DIR>          tools
2023/03/21 火  11:53           451,053 unins000.dat
2023/03/21 火  11:44         2,629,016 unins000.exe
2023/03/21 火  11:53            13,609 unins000.msg
2023/03/14 火  17:56           730,800 v8_context_snapshot.bin
2023/03/14 火  18:23         4,769,728 vk_swiftshader.dll
2023/03/14 火  17:56               106 vk_swiftshader_icd.json
2023/03/14 火  18:23           885,144 vulkan-1.dll
              18 個のファイル         181,560,067 バイト
               7 個のディレクトリ  111,034,871,808 バイトの空き領域

→こちらの出力は、「配列」(データのかたまり)ではなく「文字列」です。

ちなみに、シングルクォート「'文字列'」での文字列指定は使えませんでした。

-

(5). 参考: 「PowerShell」と同じ結果を得るには、「dir」コマンドの機能しだい:

ヘルプで機能を確認:

C:\Users\user> dir /?
ディレクトリ中のファイルとサブディレクトリを一覧表示します。

DIR [ドライブ:][パス][ファイル名] [/A[[:]属性]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]ソート順]] [/P] [/Q] [/R] [/S] [/T[[:]タイムフィールド]] [/W] [/X] [/4]

  [ドライブ:][パス][ファイル名]
              一覧表示するドライブ、ディレクトリ、またはファイルを指定します。

  /A          指定された属性のファイルを表示します。
  属性   D  ディレクトリ                R  読み取り専用
               H  隠しファイル               A  アーカイブ
               S  システム ファイル               I  非インデックス対象ファイル
               L  再解析ポイント             O  オフライン ファイル
               -  その属性以外
  /B          ファイル名のみを表示します (見出しや要約が付きません)。
  /C          ファイル サイズを桁区切り表示します。これは
              既定の設定です。/-C とすると桁区切りが表示されません。
  /D          /W と同じですが、ファイルを列で並べ替えた一覧を表示します。
  /L          小文字で表示します。
  /N          ファイル名を右端に表示する一覧形式を使用します。
  /O          ファイルを並べ替えて表示します。
  sortorder    N  名前順 (アルファベット)       S  サイズ順 (小さい方から)
               E  拡張子順 (アルファベット)   D  日時順 (古い方から)
               G  グループ (ディレクトリから)    -  降順
  /P          1 画面ごとに一時停止して表示します。
  /Q          ファイルの所有者を表示します。
  /R          ファイルの代替データ ストリームを表示します。
  /S          指定されたディレクトリおよびそのサブディレクトリのすべてのファイルを表示します。
  /T          どのタイム フィールドを表示するか、または並べ替えに使用するかを指定します。
  タイムフィールド   C  作成
              A  最終アクセス
              W  最終更新
  /W          ワイド一覧形式で表示します。
  /X          このオプションは 8dot3 形式以外のファイル名に対する短い名前を
              表示します。長い名前の前に短い名前を表示する点を除けば
              /N オプションと同じです。短い名前がない場合は、
              ブランクになります。
  /4          4 つの数字で年を表示します。

環境変数 DIRCMD にスイッチを設定できます。
/-W のように - (ハイフン) を付けると、そのスイッチは無効になります。

→「/」がオプション指定で使われおり、「-」 (ハイフン) は機能を無効にするスイッチです。

-

(6). 参考: ファイル名だけの表示なら、「/B」オプションが使えます:
C:\Users\user> dir C:\Users\user\AppData\Local\Programs\"Microsoft VS Code"\ /b
bin
chrome_100_percent.pak
chrome_200_percent.pak
Code.exe
Code.VisualElementsManifest.xml
d3dcompiler_47.dll
ffmpeg.dll
icudtl.dat
libEGL.dll
libGLESv2.dll
locales
policies
resources
resources.pak
snapshot_blob.bin
tools
unins000.dat
unins000.exe
unins000.msg
v8_context_snapshot.bin
vk_swiftshader.dll
vk_swiftshader_icd.json
vulkan-1.dll

→もし、使用するコマンドに欲しい機能がなければ、シェルの文字列操作を使うことになります。

シェルに文字列操作のコマンドが存在しないときは「外部アプリ」もしくは、テキストエディタの置換機能を利用します。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ---

7.「PowerShell」の Tips:

-


1).「PowerShell」を使うと役立つこと:

  • 作業の自動化:

  • 業務の効率化:

  • 他のOS にも流用しやすいスクリプトの作成:

-


2). はじめに、覚えておくべきコマンドレット

  • Get-Command →どんなコマンドがあるか調べられます

  • Get-Help   →コマンドの使い方を調べられます

  • Get-Member →出力されたオブジェクトについて調べられます

→「PowerShell」専用のコマンドを「コマンドレット」と言います。

-


3).「Get-Help」を初めて実行するときに、ヘルプ ファイルをインストールするか求められます:

それ以降は、「Update-Help」の実行でインストールされます。

Update-Help

言語(カルチャー)指定が必要なら、

Update-Help -UICulture en-US -Verbose

日本語が良いなら、

Update-Help -UICulture ja-JP -Verbose

多くのヘルプ ファイルがダウンロードされるため、「Update-Help」で読み込めるのは 1日に 1回だけです。強制的に上書きするには「-Force」フラグを付けます。

-


4). 「PowerShell」のスクリプトの複数行を 1行にまとめたり、複数行に分割するやり方:

参考:

-

複数の行をひとつの行にしたい時:
Write-Host "5秒後に開始" ;Start-Sleep -s 5

→接続したい行頭に「;」(セミコロン)を使います。

-

1行を分割したい時:
Get-ChildItem -Path C:\Users\user\AppData\Local\Programs\"Microsoft VS Code"\ `
 | Select-Object Name

→分割したい部分の行末に、「`」(バッククォート: Shift+@)を使います。

-

上記の貼り付けをターミナルで行うと、警告が表示されるので、

→「強制的に貼り付け」をクリックして、Enter

-


5).「PowerShell」のスクリプトであれば、キーボード操作やマウス操作が行えます:

GUI 操作ができると、おもしろいことができそう。

おもしろいと、勉強が長続きします:

-

参考:

-


6).「PowerShell」で使用できるコマンドを確認:

-

Windows PowerShell 5.1」の場合:
PS C:\Users\user> Get-Command -CommandType Cmdlet | Select-Object Name
Name
----
Add-AppProvisionedSharedPackageContainer
Add-AppSharedPackageContainer
Add-AppxPackage
Add-AppxProvisionedPackage
Add-AppxVolume
Add-BitsFile
Add-CertificateEnrollmentPolicyServer
Add-Computer
Add-Content
Add-History
Add-JobTrigger
Add-KdsRootKey
Add-LocalGroupMember
Add-Member
Add-PSSnapin
Add-Type
Add-WindowsCapability
Add-WindowsDriver
Add-WindowsImage
Add-WindowsPackage
Checkpoint-Computer
Clear-Content
Clear-EventLog
Clear-History
Clear-Item
Clear-ItemProperty
Clear-KdsCache
Clear-Recyclebin
Clear-Tpm
Clear-Variable
Clear-WindowsCorruptMountPoint
Compare-Object
Complete-BitsTransfer
Complete-DtcDiagnosticTransaction
Complete-Transaction
Confirm-SecureBootUEFI
Connect-PSSession
Connect-WSMan
ConvertFrom-Csv
ConvertFrom-Json
ConvertFrom-SecureString
ConvertFrom-String
ConvertFrom-StringData
Convert-Path
Convert-String
ConvertTo-Csv
ConvertTo-Html
ConvertTo-Json
ConvertTo-ProcessMitigationPolicy
ConvertTo-SecureString
ConvertTo-TpmOwnerAuth
ConvertTo-Xml
Copy-BcdEntry
Copy-Item
Copy-ItemProperty
Copy-UserInternationalSettingsToSystem
Debug-Job
Debug-Process
Debug-Runspace
Disable-AppBackgroundTaskDiagnosticLog
Disable-BcdElementBootDebug
Disable-BcdElementBootEms
Disable-BcdElementDebug
Disable-BcdElementEms
Disable-BcdElementEventLogging
Disable-BcdElementHypervisorDebug
Disable-ComputerRestore
Disable-JobTrigger
Disable-LocalUser
Disable-PSBreakpoint
Disable-PSRemoting
Disable-PSSessionConfiguration
Disable-RunspaceDebug
Disable-ScheduledJob
Disable-TlsCipherSuite
Disable-TlsEccCurve
Disable-TlsSessionTicketKey
Disable-TpmAutoProvisioning
Disable-WindowsErrorReporting
Disable-WindowsOptionalFeature
Disable-WSManCredSSP
Disconnect-PSSession
Disconnect-WSMan
Dismount-AppxVolume
Dismount-WindowsImage
Enable-AppBackgroundTaskDiagnosticLog
Enable-BcdElementBootDebug
Enable-BcdElementBootEms
Enable-BcdElementDebug
Enable-BcdElementEms
Enable-BcdElementEventLogging
Enable-BcdElementHypervisorDebug
Enable-ComputerRestore
Enable-JobTrigger
Enable-LocalUser
Enable-PSBreakpoint
Enable-PSRemoting
Enable-PSSessionConfiguration
Enable-RunspaceDebug
Enable-ScheduledJob
Enable-TlsCipherSuite
Enable-TlsEccCurve
Enable-TlsSessionTicketKey
Enable-TpmAutoProvisioning
Enable-WindowsErrorReporting
Enable-WindowsOptionalFeature
Enable-WSManCredSSP
Enter-PSHostProcess
Enter-PSSession
Exit-PSHostProcess
Exit-PSSession
Expand-WindowsCustomDataImage
Expand-WindowsImage
Export-Alias
Export-BcdStore
Export-BinaryMiLog
Export-Certificate
Export-Clixml
Export-Console
Export-Counter
Export-Csv
Export-FormatData
Export-ModuleMember
Export-PfxCertificate
Export-ProvisioningPackage
Export-PSSession
Export-StartLayout
Export-StartLayoutEdgeAssets
Export-TlsSessionTicketKey
Export-Trace
Export-WindowsCapabilitySource
Export-WindowsDriver
Export-WindowsImage
Find-LapsADExtendedRights
Find-Package
Find-PackageProvider
ForEach-Object
Format-Custom
Format-List
Format-SecureBootUEFI
Format-Table
Format-Wide
Get-Acl
Get-Alias
Get-AppProvisionedSharedPackageContainer
Get-AppSharedPackageContainer
Get-AppxDefaultVolume
Get-AppxPackage
Get-AppxPackageAutoUpdateSettings
Get-AppxPackageManifest
Get-AppxProvisionedPackage
Get-AppxVolume
Get-AuthenticodeSignature
Get-BcdEntry
Get-BcdEntryDebugSettings
Get-BcdEntryHypervisorSettings
Get-BcdStore
Get-BitsTransfer
Get-Certificate
Get-CertificateAutoEnrollmentPolicy
Get-CertificateEnrollmentPolicyServer
Get-CertificateNotificationTask
Get-ChildItem
Get-CimAssociatedInstance
Get-CimClass
Get-CimInstance
Get-CimSession
Get-Clipboard
Get-CmsMessage
Get-Command
Get-ComputerInfo
Get-ComputerRestorePoint
Get-Content
Get-ControlPanelItem
Get-Counter
Get-Credential
Get-Culture
Get-DAPolicyChange
Get-Date
Get-DeliveryOptimizationLog
Get-DeliveryOptimizationLogAnalysis
Get-Event
Get-EventLog
Get-EventSubscriber
Get-ExecutionPolicy
Get-FormatData
Get-Help
Get-History
Get-Host
Get-HotFix
Get-InstalledLanguage
Get-Item
Get-ItemProperty
Get-ItemPropertyValue
Get-Job
Get-JobTrigger
Get-KdsConfiguration
Get-KdsRootKey
Get-LapsADPassword
Get-LapsDiagnostics
Get-LocalGroup
Get-LocalGroupMember
Get-LocalUser
Get-Location
Get-Member
Get-Module
Get-NonRemovableAppsPolicy
Get-Package
Get-PackageProvider
Get-PackageSource
Get-PfxCertificate
Get-PfxData
Get-PmemDedicatedMemory
Get-PmemDisk
Get-PmemPhysicalDevice
Get-PmemUnusedRegion
Get-Process
Get-ProcessMitigation
Get-ProvisioningPackage
Get-PSBreakpoint
Get-PSCallStack
Get-PSDrive
Get-PSHostProcessInfo
Get-PSProvider
Get-PSReadLineKeyHandler
Get-PSReadLineOption
Get-PSSession
Get-PSSessionCapability
Get-PSSessionConfiguration
Get-PSSnapin
Get-Random
Get-Runspace
Get-RunspaceDebug
Get-ScheduledJob
Get-ScheduledJobOption
Get-SecureBootPolicy
Get-SecureBootUEFI
Get-Service
Get-SystemPreferredUILanguage
Get-TimeZone
Get-TlsCipherSuite
Get-TlsEccCurve
Get-Tpm
Get-TpmEndorsementKeyInfo
Get-TpmSupportedFeature
Get-TraceSource
Get-Transaction
Get-TroubleshootingPack
Get-TrustedProvisioningCertificate
Get-TypeData
Get-UICulture
Get-Unique
Get-Variable
Get-WheaMemoryPolicy
Get-WIMBootEntry
Get-WinAcceptLanguageFromLanguageListOptOut
Get-WinCultureFromLanguageListOptOut
Get-WinDefaultInputMethodOverride
Get-WindowsCapability
Get-WindowsDeveloperLicense
Get-WindowsDriver
Get-WindowsEdition
Get-WindowsErrorReporting
Get-WindowsImage
Get-WindowsImageContent
Get-WindowsOptionalFeature
Get-WindowsPackage
Get-WindowsReservedStorageState
Get-WindowsSearchSetting
Get-WinEvent
Get-WinHomeLocation
Get-WinLanguageBarOption
Get-WinSystemLocale
Get-WinUILanguageOverride
Get-WinUserLanguageList
Get-WmiObject
Get-WSManCredSSP
Get-WSManInstance
Group-Object
Import-Alias
Import-BcdStore
Import-BinaryMiLog
Import-Certificate
Import-Clixml
Import-Counter
Import-Csv
Import-LocalizedData
Import-Module
Import-PackageProvider
Import-PfxCertificate
Import-PSSession
Import-StartLayout
Import-TpmOwnerAuth
Initialize-PmemPhysicalDevice
Initialize-Tpm
Install-Language
Install-Package
Install-PackageProvider
Install-ProvisioningPackage
Install-TrustedProvisioningCertificate
Invoke-CimMethod
Invoke-Command
Invoke-CommandInDesktopPackage
Invoke-DscResource
Invoke-Expression
Invoke-History
Invoke-Item
Invoke-LapsPolicyProcessing
Invoke-RestMethod
Invoke-TroubleshootingPack
Invoke-WebRequest
Invoke-WmiMethod
Invoke-WSManAction
Join-DtcDiagnosticResourceManager
Join-Path
Limit-EventLog
Measure-Command
Measure-Object
Mount-AppxVolume
Mount-WindowsImage
Move-AppxPackage
Move-Item
Move-ItemProperty
New-Alias
New-BcdEntry
New-BcdStore
New-CertificateNotificationTask
New-CimInstance
New-CimSession
New-CimSessionOption
New-DtcDiagnosticTransaction
New-Event
New-EventLog
New-FileCatalog
New-Item
New-ItemProperty
New-JobTrigger
New-LocalGroup
New-LocalUser
New-Module
New-ModuleManifest
New-NetIPsecAuthProposal
New-NetIPsecMainModeCryptoProposal
New-NetIPsecQuickModeCryptoProposal
New-Object
New-PmemDedicatedMemory
New-PmemDisk
New-ProvisioningRepro
New-PSDrive
New-PSRoleCapabilityFile
New-PSSession
New-PSSessionConfigurationFile
New-PSSessionOption
New-PSTransportOption
New-PSWorkflowExecutionOption
New-ScheduledJobOption
New-SelfSignedCertificate
New-Service
New-TimeSpan
New-TlsSessionTicketKey
New-Variable
New-WebServiceProxy
New-WindowsCustomImage
New-WindowsImage
New-WinEvent
New-WinUserLanguageList
New-WSManInstance
New-WSManSessionOption
Optimize-AppxProvisionedPackages
Optimize-WindowsImage
Out-Default
Out-File
Out-GridView
Out-Host
Out-Null
Out-Printer
Out-String
Pop-Location
Protect-CmsMessage
Publish-DscConfiguration
Push-Location
Read-Host
Receive-DtcDiagnosticTransaction
Receive-Job
Receive-PSSession
Register-ArgumentCompleter
Register-CimIndicationEvent
Register-EngineEvent
Register-ObjectEvent
Register-PackageSource
Register-PSSessionConfiguration
Register-ScheduledJob
Register-WmiEvent
Remove-AppProvisionedSharedPackageContainer
Remove-AppSharedPackageContainer
Remove-AppxPackage
Remove-AppxPackageAutoUpdateSettings
Remove-AppxProvisionedPackage
Remove-AppxVolume
Remove-BcdElement
Remove-BcdEntry
Remove-BitsTransfer
Remove-CertificateEnrollmentPolicyServer
Remove-CertificateNotificationTask
Remove-CimInstance
Remove-CimSession
Remove-Computer
Remove-Event
Remove-EventLog
Remove-Item
Remove-ItemProperty
Remove-Job
Remove-JobTrigger
Remove-LocalGroup
Remove-LocalGroupMember
Remove-LocalUser
Remove-Module
Remove-PmemDedicatedMemory
Remove-PmemDisk
Remove-PSBreakpoint
Remove-PSDrive
Remove-PSReadLineKeyHandler
Remove-PSSession
Remove-PSSnapin
Remove-TypeData
Remove-Variable
Remove-WindowsCapability
Remove-WindowsDriver
Remove-WindowsImage
Remove-WindowsPackage
Remove-WmiObject
Remove-WSManInstance
Rename-Computer
Rename-Item
Rename-ItemProperty
Rename-LocalGroup
Rename-LocalUser
Repair-WindowsImage
Reset-AppSharedPackageContainer
Reset-AppxPackage
Reset-ComputerMachinePassword
Reset-LapsPassword
Resolve-DnsName
Resolve-Path
Restart-Computer
Restart-Service
Restore-Computer
Resume-BitsTransfer
Resume-Job
Resume-ProvisioningSession
Resume-Service
Save-Help
Save-Package
Save-SoftwareInventory
Save-WindowsImage
Select-Object
Select-String
Select-Xml
Send-DtcDiagnosticTransaction
Send-MailMessage
Set-Acl
Set-Alias
Set-AppBackgroundTaskResourcePolicy
Set-AppxDefaultVolume
Set-AppxPackageAutoUpdateSettings
Set-AppXProvisionedDataFile
Set-AuthenticodeSignature
Set-BcdBootDefault
Set-BcdBootDisplayOrder
Set-BcdBootSequence
Set-BcdBootTimeout
Set-BcdBootToolsDisplayOrder
Set-BcdDebugSettings
Set-BcdElement
Set-BcdHypervisorSettings
Set-BitsTransfer
Set-CertificateAutoEnrollmentPolicy
Set-CimInstance
Set-Clipboard
Set-Content
Set-Culture
Set-Date
Set-DscLocalConfigurationManager
Set-ExecutionPolicy
Set-Item
Set-ItemProperty
Set-JobTrigger
Set-KdsConfiguration
Set-LapsADAuditing
Set-LapsADComputerSelfPermission
Set-LapsADPasswordExpirationTime
Set-LapsADReadPasswordPermission
Set-LapsADResetPasswordPermission
Set-LocalGroup
Set-LocalUser
Set-Location
Set-NonRemovableAppsPolicy
Set-PackageSource
Set-ProcessMitigation
Set-PSBreakpoint
Set-PSDebug
Set-PSReadLineKeyHandler
Set-PSReadLineOption
Set-PSSessionConfiguration
Set-ScheduledJob
Set-ScheduledJobOption
Set-SecureBootUEFI
Set-Service
Set-StrictMode
Set-SystemPreferredUILanguage
Set-TimeZone
Set-TpmOwnerAuth
Set-TraceSource
Set-Variable
Set-WheaMemoryPolicy
Set-WinAcceptLanguageFromLanguageListOptOut
Set-WinCultureFromLanguageListOptOut
Set-WinDefaultInputMethodOverride
Set-WindowsEdition
Set-WindowsProductKey
Set-WindowsReservedStorageState
Set-WindowsSearchSetting
Set-WinHomeLocation
Set-WinLanguageBarOption
Set-WinSystemLocale
Set-WinUILanguageOverride
Set-WinUserLanguageList
Set-WmiInstance
Set-WSManInstance
Set-WSManQuickConfig
Show-Command
Show-ControlPanelItem
Show-EventLog
Show-WindowsDeveloperLicenseRegistration
Sort-Object
Split-Path
Split-WindowsImage
Start-BitsTransfer
Start-DscConfiguration
Start-DtcDiagnosticResourceManager
Start-Job
Start-OSUninstall
Start-Process
Start-Service
Start-Sleep
Start-Transaction
Start-Transcript
Stop-Computer
Stop-DtcDiagnosticResourceManager
Stop-Job
Stop-Process
Stop-Service
Stop-Transcript
Suspend-BitsTransfer
Suspend-Job
Suspend-Service
Switch-Certificate
Tee-Object
Test-Certificate
Test-ComputerSecureChannel
Test-Connection
Test-DscConfiguration
Test-FileCatalog
Test-KdsRootKey
Test-ModuleManifest
Test-Path
Test-PSSessionConfigurationFile
Test-WSMan
Trace-Command
Unblock-File
Unblock-Tpm
Undo-DtcDiagnosticTransaction
Undo-Transaction
Uninstall-Language
Uninstall-Package
Uninstall-ProvisioningPackage
Uninstall-TrustedProvisioningCertificate
Unprotect-CmsMessage
Unregister-Event
Unregister-PackageSource
Unregister-PSSessionConfiguration
Unregister-ScheduledJob
Unregister-WindowsDeveloperLicense
Update-FormatData
Update-Help
Update-LapsADSchema
Update-List
Update-TypeData
Update-WIMBootEntry
Use-Transaction
Use-WindowsUnattend
Wait-Debugger
Wait-Event
Wait-Job
Wait-Process
Where-Object
Write-Debug
Write-Error
Write-EventLog
Write-Host
Write-Information
Write-Output
Write-Progress
Write-Verbose
Write-Warning

→コマンド名で、どのようなことを行うコマンドなのかが予想できます。それが「PowerShell」の利点です。

-

PowerShell 7.3.3」で変更されたコマンドレット:

差分表示:

-Add-PSSnapin
-Clear-Recyclebin
+Clear-RecycleBin               ←(名前の変更)
+Convert-Path
+ConvertFrom-Markdown
+ConvertFrom-SddlString
-ConvertFrom-String
-Convert-Path
-Convert-String
+Disable-ExperimentalFeature
+Enable-ExperimentalFeature
-Export-Console
+Format-Hex
+Get-Error
+Get-ExperimentalFeature
+Get-FileHash
-Get-LapsDiagnostics
+Get-MarkdownOption
-Get-PSSnapin
+Get-Uptime
+Get-Verb
+Import-PowerShellDataFile
+Join-String
+New-Guid
+New-TemporaryFile
+Remove-Alias
-Remove-PSSnapin
+Remove-Service
-Resume-Job
+Set-MarkdownOption
+Show-Markdown
+Start-ThreadJob
-Suspend-Job
+Test-Json

差分の表示について:

行頭が「-」は、「PowerShell 7.3.3」で削除されました。
行頭が「+」は、「PowerShell 7.3.3」で追加されました。

-

-


まとめ

「Windows11」で、「VSCode」をインストールして、拡張機能をインストールしました。

-

実際に使わないと身に付かないので、

わかりやすそうな教材がないか、Web を検索したり、簡単なシェルスクリプトを作ってみると良いと思います。

-

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

「Windows11」(22H2) の「WSL2」で、「Ubuntu 22.04.2 LTS」をインストール〈H165-4〉

登録日: 2023-03-19 更新日: 2023-04-01

こちらの「Linux あれこれ」は「Linux」メインで投稿してますが、「Windows11」で「Linux」を使う機能に興味があり、投稿しました。

-

前回 、「Windows11」(22H2) で「PowerShell」について学んだので、「WSL2」で「Linux」(Ubuntu) をインストールしてみました。
「WSL2」のインストールは、「Windows10」よりも「Windows11」の方が、コマンドひとつで行えるので簡単です。

-

また、「WSL2」でインストールするときのデフォルトは「Ubuntu」です。安定版で最新の「Ubuntu 22.04.2 LTS」がインストールされました。

-

普通の Linux ディストリビューションと違い、「Ubuntu」のデスクトップ環境はインストールされませんが、「Windows」メニューから、「Windows」アプリと同じように、「Linux」のGUI アプリが起動でき、「Windows」上のウィンドウでLinuxGUI アプリが使えます。

また、Linux 上に「Windows」のファイルシステムが自動マウントされます。

使い方によっては便利です。 その備忘録です。

-

-

使用したPC は、USB 3.0 ポートのある「Windows 11」のノートPC です。メモリ 12GB、SSD 1TB に増設しています。 「UEFI 立ち上げ」のPC です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

前回の作業:

「Windows11」(22H2) と「Ubuntu」で、「PowerShell」を使う〈H165-2〉:

-

今回の作業:

1. 「WSL 2」で「Ubuntu」をインストール:             ☆

2. 「WSL 2」の「Ubuntu」で、システム更新:

3. 「Ubuntu」に、日本語フォント「fonts-noto-cjk」をインストール:  ☆

4. 「Ubuntu」を日本語表示できるように設定:            ☆

5. 「Ubuntu」に、よく使うアプリをインストール:

 (1). ブラウザ「ESR 版 firefox」:

 (2). ターミナル「xfce4-terminal」:

 (3). ファイルマネージャ「nautilus」:

 (4). テキストエディタ「gedit」:

 (5). テキストエディタ「featherpad」:

-

6. 「WSL2」での日本語入力:

7. 「fcitx-mozc」で日本語入力できるように設定:           ☆   

8. 「fcitx-mozc」で日本語入力のキー割当を別々のキーに変更:    ☆

-

9. 「Windows11」と「WSL2」でデータ共有する工夫:

10. 「WSL2」で「クリップボードの共有」機能を有効化:      ☆

11. 「Windows11」の日本語のフォルダ名を英語に変更:       ☆

-

参考:

1. 「Windows PowerShell 5.1」について:

2. 管理者権限で「Windows PowerShell 5.1」を起動:

3. 「PowerShell」のコマンドレット:

4. 「WSL」コマンドのヘルプ:

5. 「WSL」ディストリビューションのその他の操作:

6. 「WSL」ディストリビューションを追加する場合:

-

7. 「Windows ターミナル」の起動のやり方:

8. 「Ubuntu」の起動のやり方:

9. 「Ubuntu」の再起動のやり方:

10. 「Ubuntu」のその他の操作:

 (1). 指定した「Linux」の停止:

 (2). 「すべての「Linux」の停止:

 (3). コマンドで管理者権限の「PowerShell」を起動:

 (4). 「Windows11」の再起動:

 (5). 「Windows11」の電源オフ:

-

11. 「Windows11」側に、フォントをインストールする場合:

12. 「Windows 11」側のフォントを「Ubuntu」で使えるように設定:

-

13. 「Linux」アプリが固まった場合の対応:            ★

14. 「Windows11」の「IME」の設定のやり方:

-

「まとめ へ」

「目次詳細 へ」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -

「Windows11」(22H2) を起動:

-

立ち上げた「Windows11」の画面:

「Windows10」から「Windows11」にアップグレードしたので、デスクトップに以前使っていたアプリのアイコン(ショートカット)と「壁紙」が残っています。

-

Windows PowerShell 5.1」を起動:

→「Windows11」の標準のシェルです。

デスクトップの空きで右クリック →「ターミナルを開く」、
もしくは、パネルの「Windows」ボタンを右クリック→「ターミナル」で起動できます。

個人的には、タスクバーにもピン留めしてます。

-

Windows ターミナル」の「v」タブにて「Ubuntu」を起動できます:

→表示された一覧から「Ubuntu」を選択するか、Ctrl+Shift+5 にて、下記のように「Ubuntu」タブを起動できます。

-

Windows ターミナル」にて「Ubuntu 22.04.2 LTS」を起動:

→背景が紫色(Ubuntu の色)なので「Ubuntu」を使っていることがわかりやすいです。

別にこちらの紫色の画面でないと「Ubuntu」が使えないわけではありません。外観の設定がされているだけです。

-

GUI のデスクトップ環境がないので、こちらのターミナル画面がメインになります。

このターミナル画面からコマンドを投入して、アプリを起動できます。

-

ちなみに、「Windows」メニューからもアプリの起動ができます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - --

Ubuntu」について:

-

Debian GNU/Linux」の開発版を元にした Linux ディストリビューション(OS)です

参考:

Ubuntu Wiki

-

Ubuntu(ウブントゥ)は「Debian GNU/Linux」(デビアン)の開発版である「sid」(不安定版)を元にした Linux ディストリビューション(OS + アプリ群)で、標準のデスクトップ環境は「GNOME」です。

Debian と同じ、パッケージ管理システムは「APT」で、パッケージのファイル形式は「deb」です。
すべての管理者権限を持つ「root」でのログインは標準では無効で、その代わりに「sudo」を使います。

Debian は「オールフリーのOS の実現」が目的ですが、Ubuntu では使いやすさ優先で、Debian と違い、プロプライエタリな(利用制限がある)ドライバやソフトウェアを含んでいます。なので「Debian」と共有ライブラリも違うので「リポジトリ」は別だし、「バイナリ互換性」も保証されていません。

-

Canonical」(カノニカル)社、つまり、「Launchpad 」サイトでメンテされています。

-

個人的には、 Ubuntu のフレーバー(兄弟?)で「Xfce」デスクトップ環境にした「Xubuntu」をメインで使っています。

-


Ubuntu 22.04」の現在のバージョンを表示:

2023-03-19 現在

カーネル:

$ uname -r
5.15.90.1-microsoft-standard-WSL2

-

リリース:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"

→2023-03 に、「22.04.2」にアップしました。

-

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

-

Ubuntu 22.04.2 LTS」が、「x11」と「Wayland」のどちらで動作しているか、の確認:
$ echo $XDG_SESSION_TYPE
$

→デスクトップ環境がインストールされていないので「表示なし」です。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ---

「WSL 2」について:

-

参考:

-

1). 「WSL 2」は、WindowsLinux バイナリを実行できるようにする環境:

LinuxWindows サブシステム」(WSL) の新版 (WSL 2) です。

「WSL 2」は、ハイパーバイザー「Hyper-V」上の「仮想環境」で Linux カーネルが動くので、 ほぼ「Linux」です。

また、ファイル システムは ntfs から ext4 に変更され、Linux でのファイルシステムのパフォーマンスが向上しています。

-

2). WSL2 を動かす要件:

  • Windows 11」

  • または、「Windows 10」 64ビット バージョン 2004 以降 (ビルド 20262 以降)

  • CPU が仮想化機能に対応し、有効であること

-

(1).「Windows 10」で、最新ビルドであるか確認:

Windows + R を押して、「winver」Enter

→「ビルド 20262」以降が必要

表示例:

Microsoft Windows
バージョン 22H2 (OS ビルド 22621.1344)

-

(2).「Windows 10」で、仮想化機能が有効か確認:

Windows」ボタンを右クリック→「ターミナル」

もしくは、Windows + R を押して、「powershell」Enter

PS C:\Users\user> systeminfo
:
Hyper-V の要件:         VM モニター モード拡張機能: はい
                        ファームウェアで仮想化が有効になっています: はい
                        第 2 レベルのアドレス変換: はい
                        データ実行防止が使用できます: はい

→一番下に表示される「Hyper-Vの要件」にて、
4つの項目が「はい」であれば、仮想化機能は有効です

-

(3). 仮想化機能が無効のときの対応例:

BIOS Setup」でBIOSまたはUEFIを起動

「System Configuration」項目一覧から「Virtualization Technology」を選択

Enter キーを押し、「Enabled」を選択

「Exit」→「Exit Saving Changes」→「Yes」

Windows 10」を再起動

-

3). 「Windows11」の「WSL 2」は、更新のたびに「使いやすさ」が進化:

-

(1).「Windows11」では、ひとつの「wsl」コマンドだけで、「WSL2」をインストールできるようになりました。

→「LinuxWindows サブシステム」の有効化などの手順は自動で行われます。

-

(2).「Linux GUI アプリ」は、Windows メニューで、普通のアプリのように起動できます。

-

(3).「Linux GUI アプリ」の起動で、「Windows」のデスクトップ画面で、ひとつのアプリのウィンドウとして表示されます。

Linux デスクトップ画面が不要なので、X Window System を使えるようにする手間が要りません。

-

4). 利用できる「Linux ディストリビューション」は「オンライン ストア」に登録されています。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----

1.「WSL 2」で「Ubuntu」をインストール:

-

1). 「Windows11」で、管理者権限で「PowerShell」を起動:

Windows」ボタンを右クリック →「ターミナル(管理者)」

→「はい」

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows

PS C:\Users\user>

→ターミナルの「管理者: Windows PowerShell」タブで表示

-

管理者権限の「ターミナル」であるか確認するには:
PS C:\Users\user> get-tpm

→「 get-tpm」は「管理者権限」でないと動かないので、

表示されれば「管理者権限」です。

-

2). インストールできる「Linux ディストリビューション」の一覧を表示:

2023-03-18 現在:

PS C:\Users\user> wsl --list --online
:
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_8_5                        Oracle Linux 8.5
OracleLinux_7_9                        Oracle Linux 7.9
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
openSUSE-Leap-15.4                     openSUSE Leap 15.4
openSUSE-Tumbleweed                    openSUSE Tumbleweed

-

Fedora 系が欲しければ、「OracleLinux」が RHEL 互換、つまり CentOS 互換です。

デスクトップ環境は含まれていません。自動ログインされ「ターミナル」が開きます。 つまり、サーバー版に近い?イメージです。

-

3). 「Windows11」で、WSL2 をインストール:

インストールする「Linux ディストリビューション」は「-d」オプションで指定します。

-

(1). 「Linux ディストリビューション」の指定をしない場合: ★
PS C:\Users\user> wsl --install

→「Ubuntu」の最新版がインストールされます:

現在、インストールされるのは「Ubuntu 22.04.2 LTS」です。

ちなみに、「-」は 2つ必要です。

-

(2). 「Linux ディストリビューション」を指定する場合:
PS C:\Users\user> wsl --install -d Ubuntu-22.04

→「-d」オプションで指定します。

-

ちなみに、上記の「項番 (1).」と「項番 (2).」でインストールされる「Linux ディストリビューション」は同じでも、インストール先のフォルダは別です。つまり、管理上は 別の OS として、一緒にインストールできます。

-

4). 参考: インストール中の表示:

インストール中: 仮想マシン プラットフォーム
仮想マシン プラットフォーム はインストールされました。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
インストール中: Ubuntu
Ubuntu はインストールされました。
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。

-

5). ターミナルを右上の「x」で閉じました。

-

6). 指示に従い、「Windows11」を再起動:

-

7). 自動的に「ターミナル」が立ち上がり、「Ubuntu」タブが開きました:

Ubuntu は既にインストールされています。
Ubuntu を開始しています...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:

和訳:

デフォルトの UNIX ユーザ アカウントを作成してください。
ユーザ名は、Windows ユーザ名と一致する必要はありません。

-

8). ユーザ名/パスワードを設定:

Enter new UNIX username: ubn      ←「ユーザ名」を入力
New password:                     ←「パスワード」を入力
Retype new password:              ←再入力
passwd: password updated successfully
Installation successful!

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:       https://ubuntu.com/advantage

This message is shown once a day. To disable it please create the
/home/ubn/.hushlogin file.

→このメッセージは 1 日 1 回表示されます。

-

確認:

PS C:\Users\user> ls /home/ubn/.hushlogin
:
ls : パス 'C:\home\ubn\.hushlogin' が存在しないため検出できません。
発生場所 行:1 文字:1
+ ls /home/ubn/.hushlogin
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\home\ubn\.hushlogin:String) [Get-ChildItem], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

→ファイルがありません。

-

参考: 「~/.hushlogin」ファイルがない場合は、

telnetSSH でログインした場合に、システムメッセージ(最終ログイン日時)が表示されます。

ここでは、起動時のメッセージが 1 日 1 回表示されます。

-

下記のように「~/.hushlogin」ファイルを作成すると、表示されません:

$ touch ~/.hushlogin 

-

9). コンピュータ名が自動的にシステムの情報を使って設定されました。

ターミナルのタブ名が「Ubuntu」タブから「ubn@FMVpc:~」タブに変わり、
同じようにターミナルの「プロンプト」も変わりました:

ubn@FMVpc:~$ 

→プロンプト表示について:

「ubn」は、ユーザ名
「FMVpc」は、コンピュータ名(ホスト名)
「~」は、作業ディレクトリ名。「~」はホームディレクトリのこと
「$」は、 bash シェルで、管理者権限ではありません

を示します。

-

10). 「Ubuntu」が利用可能になりました:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -----

2. 参考:「Windows ターミナル」の起動のやり方:

-

Windows ターミナル」の起動のやり方はいくつかあります。

-


1). 「Windows」ボタンを右クリック →「ターミナル」

→「ターミナル」が起動:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows

PS C:\Users\user> 

-


2). 「Windows + R」→「powershell」Enter

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows

PS C:\Users\user>

-

もし、「PowerShell 7」をインストールしている場合は、

Windows + R」→「pwsh」Enter

-

→「ターミナル」が起動:

PowerShell 7.3.3
PS C:\Users\user>

→「C:\Program Files\PowerShell」タブで開きました

-


3). 「Windows」キー →「term」で検索 →「ターミナル」をクリック

→「ターミナル」が起動:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows

PS C:\Users\user>

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -

3. 参考:「Ubuntu」の起動のやり方:

-

Ubuntu」の起動のやり方はいくつかあります。

-


1). 「Windows」キーで検索して、「Ubuntu」を起動するやり方:

-

Windows」キー →「u」で検索 →「Ubuntu」をクリック

Ubuntu」が起動:

ubn@FMVpc:~$

→ターミナルの背景が黒色の「ubn@FMVpc:~」タブが表示:

-

Ubuntu」が起動していることがわかりづらいので、確認:

ubn@FMVpc:~$ uname -r
5.15.90.1-microsoft-standard-WSL2

-


2). 「Windows ターミナル」の「タブ」(プロファイル)を使い、「Ubuntu」を起動するやり方:

Ubuntu のユーザアカウントの作成で、「ターミナル」のプロファイルが追加され、「Ubuntu」の項目が表示されます。

-

(1). 「Windows」ボタンを右クリック →「ターミナル」

-

(2). 「+」タブの隣の、タブバーの「v」ボタンを押し「Ubuntu」を選択:
ubn@FMVpc:~$

→「Ubuntu」タブが表示され、ターミナルの背景が紫色の「Ubuntu」が起動:

-

(3). もしくは、「Ctrl+Shift+5」でも起動:
ubn@FMVpc:~$

→「Ubuntu」タブが表示され、ターミナルの背景が紫色の「Ubuntu」が起動:

-

この画面の利点は、背景が紫色なので、そのターミナル画面が「Ubuntu」で使っていることがわかりやすいこと。

-


3). 「Windows ターミナル」から、コマンドで「Ubuntu」を起動するやり方:

-

(1). 「Windows」ボタンを右クリック →「ターミナル」

-

(2). コマンド入力:
PS C:\Users\user> wsl
ubn@FMVpc:/mnt/c/Users/user$

→指定なしで「wsl」を起動すると「Ubuntu」が起動します。

-

もし、「ユーザ」を指定して「wsl」を起動する場合:
PS C:\Users\user> wsl -u ubn

→複数のユーザを作成していた場合の指定です。ホームフォルダ名が変わります。

-

もし、「Linux ディストリビューション」を指定して「wsl」を起動する場合:

複数の「Linux ディストリビューション」をインストールしていた場合:

PS C:\Users\user> wsl --list -v
  NAME            STATE           VERSION
* Ubuntu          Stopped         2
  Ubuntu-22.04    Stopped         2

→「Ubuntu-22.04」がインストールされている場合です。

-

Linux ディストリビューション」を指定して「wsl」を起動:

PS C:\Users\user> wsl -d Ubuntu-22.04
ubn@FMVpc:/mnt/c/Users/user$

→「Ubuntu」が起動:

「ターミナル」のタブ名と、プロンプトが変わりました。

-


4). 「Windows ターミナル」の別の「タブ」画面にて、コマンドで「Ubuntu」を起動するやり方:

PowerShell」と「Ubuntu」を起動したタブを分けて使いたい場合:

-

(1). 「Windows」ボタンを右クリック →「ターミナル」

-

(2). 「+」タブ→新しい「PowerShell」を開きます:

-

(3). コマンド入力:
PS C:\Users\user> wsl
ubn@FMVpc:/mnt/c/Users/user$

→指定なしで「wsl」を起動すると「Ubuntu」が起動します。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- --

4. 参考:「Ubuntu」を起動したときの情報について:

-

1). 「Ubuntu」の起動にて:

Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

This message is shown once a day. To disable it please create the
/home/ubn/.hushlogin file.

-

表示されるプロンプトは、起動のやり方で変わります:
ubn@FMVpc:~$

もしくは、

ubn@FMVpc:/mnt/c/Users/user$

Ubuntu の「/mnt/c/」に、Windowsファイルシステム「C:\Users\user\」がマウントされています:

-

下の表示でなくても、マウントは行われています。

-

2). 情報を確認:

ubn@FMVpc:~$ uname -r
5.15.90.1-microsoft-standard-WSL2
ubn@FMVpc:~$ cd /mnt/c/
ubn@FMVpc:/mnt/c$

-

ubn@FMVpc:/mnt/c$ ls
:
ls: cannot access 'DumpStack.log.tmp': Permission denied
ls: cannot access 'hiberfil.sys': Permission denied
ls: cannot access 'pagefile.sys': Permission denied
ls: cannot access 'swapfile.sys': Permission denied

'$Recycle.Bin'                    'Program Files (x86)'
'$WINRE_BACKUP_PARTITION.MARKER'   ProgramData
'$WinREAgent'                      Recovery
 AMTAG.BIN                         Squeak
'Documents and Settings'          'System Volume Inform
ation'
 DumpStack.log.tmp                 Users
 Intel                             Windows
'My Squeak'                        hiberfil.sys
 PerfLogs                          pagefile.sys
'Program Files'                    swapfile.sys

→すべて表示するには管理者権限が必要です。

-

Ubuntu 側から、「Windows11」のファイルシステムを確認:
ubn@FMVpc:/mnt/c$ sudo ls
:
'$Recycle.Bin'                    'My Squeak'            'System Volume Information'
'$WINRE_BACKUP_PARTITION.MARKER'   PerfLogs               Users
'$WinREAgent'                     'Program Files'         Windows
 AMTAG.BIN                        'Program Files (x86)'   hiberfil.sys
'Documents and Settings'           ProgramData            pagefile.sys
 DumpStack.log.tmp                 Recovery               swapfile.sys
 Intel                             Squeak
↓ よく見るフォルダを抜粋:
'Documents and Settings'
 'Program Files' 
 'Program Files (x86)' 
Users
Windows

→たぶん、「ntfs」です。

-

別の「PowerShell」タブで、「Windows11」側から「Ubuntu」の状態を確認:
PS C:\Users\user> wsl --list -v
:
  NAME      STATE           VERSION
* Ubuntu    Running         2

→「2」は「WSL 2 」で作成されたことを示します。表示されるということは「WSL」の場合もあるということ。

-

各バージョンを表示:
PS C:\Users\user> wsl -v
:
WSL バージョン: 1.1.3.0        ←(WSL 2)
カーネル バージョン: 5.15.90.1        ←(Linux カーネル)
WSLg バージョン: 1.0.49        ←(GUI アプリ単体で使用可能にする機能)
MSRDC バージョン: 1.2.3770
Direct3D バージョン: 1.608.2-61064218
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windowsバージョン: 10.0.22621.1413        ←(Windows11)

→更新が多いのは、一番下の「Windowsバージョン」

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ---

5. 参考:「Ubuntu」の再起動のやり方:

-

Ubuntu の「reboot」や「shutdown」コマンドは無効です。

-

Ubuntu」の再起動のやり方はいくつかあります。

-

(1). 使っているターミナルの「PowerShell」、または、「+」タブで、新しく「PowerShell」を開きます:
PS C:\Users\user> wsl -t ubuntu
:
この操作を正しく終了しました。

-

一度使うと、コンソール履歴に残るので、最初に開く「PowerShell」で「Ubuntu」の起動や再起動を行うと決めておくと、「↑」キーだけで、入力できます。

-

(2). 起動して、使っていた「Ubuntu」タブに下記が表示:
[プロセスはコード 1 (0x00000001) で終了しました]

→その画面では「操作できなくなる」ので、「Ubuntu」タブを閉じます。

-

(3). 「Ubuntu」タブがなく、「PowerShell」で起動していた場合は、
ubn@FMVpc:/mnt/c/Users/user$

PS C:\Users\user>

プロンプトが変化しただけですが「Ubuntu」が停止しました。

-

もし、「Ubuntu」の電源オフをしたいときは、このときに「ターミナル」の右上の「x」で閉じます。

-

(4). 「Ctrl+Shift+5」で「Ubuntu」を起動:
ubn@FMVpc:/mnt/c/Users/user$

→新しい「Ubuntu」タブが表示され、ターミナルの背景が紫色の「Ubuntu」が起動:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----

6.「WSL 2」の「Ubuntu」でシステム更新:

-

1). システム更新:

ubn@FMVpc:~$
ubn@FMVpc:/mnt/c/Users/user$ 

→立ち上げ方で作業ディレクトリは変わりますが、無視できます。

-

$ sudo apt update
:
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Hit:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [107 kB]
Fetched 336 kB in 2s (194 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

-

$ sudo apt upgrade
:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

-

2). 再起動:

-

3). OS の情報の表示:

ubn@FMVpc:/mnt/c/Users/user$ 
$ cat /etc/lsb-release
:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"

→更新があり、「Ubuntu 22.04.2 LTS」になっています

$ cat /etc/os-release
:
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

-

4). カーネルのバージョンを表示:

$ uname -r
5.15.90.1-microsoft-standard-WSL2

→通常のUbuntu であれば「5.15.90-1-generic」のような表示です。

こちらの表示から、Linux カーネルが WSL2 用としてコンパイルされていることがわかります。

つまり、Linux カーネルコンパイル時のオプションも違うのかもしれません。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -----

7. 「WSL 2」の「Ubuntu」で標準で使える日本語フォント:

-

1). 作業前に、WSLで利用できるフォントの一覧を確認:

$ fc-list | sort
:
Command 'fc-list' not found, but can be installed with:
sudo apt install fontconfig

-

2). 「fontconfig」のインストール:

$ sudo apt install fontconfig
:
The following NEW packages will be installed:
  fontconfig fontconfig-config fonts-dejavu-core libfontconfig1 libfreetype6

-

3). 作業前に、WSLで利用できるフォントの一覧を確認:

$ fc-list | sort
:
/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book
/usr/share/fonts/truetype/ubuntu/Ubuntu-B.ttf: Ubuntu:style=Bold
/usr/share/fonts/truetype/ubuntu/Ubuntu-BI.ttf: Ubuntu:style=Bold Italic
/usr/share/fonts/truetype/ubuntu/Ubuntu-C.ttf: Ubuntu Condensed:style=Regular
/usr/share/fonts/truetype/ubuntu/Ubuntu-L.ttf: Ubuntu,Ubuntu Light:style=Light,Regular
/usr/share/fonts/truetype/ubuntu/Ubuntu-LI.ttf: Ubuntu,Ubuntu Light:style=Light Italic,Italic
/usr/share/fonts/truetype/ubuntu/Ubuntu-M.ttf: Ubuntu,Ubuntu Light:style=Medium,Bold
/usr/share/fonts/truetype/ubuntu/Ubuntu-MI.ttf: Ubuntu,Ubuntu Light:style=Medium Italic,Bold Italic
/usr/share/fonts/truetype/ubuntu/Ubuntu-R.ttf: Ubuntu:style=Regular
/usr/share/fonts/truetype/ubuntu/Ubuntu-RI.ttf: Ubuntu:style=Italic
/usr/share/fonts/truetype/ubuntu/Ubuntu-Th.ttf: Ubuntu,Ubuntu Thin:style=Thin,Regular
/usr/share/fonts/truetype/ubuntu/UbuntuMono-B.ttf: Ubuntu Mono:style=Bold
/usr/share/fonts/truetype/ubuntu/UbuntuMono-BI.ttf: Ubuntu Mono:style=Bold Italic
/usr/share/fonts/truetype/ubuntu/UbuntuMono-R.ttf: Ubuntu Mono:style=Regular
/usr/share/fonts/truetype/ubuntu/UbuntuMono-RI.ttf: Ubuntu Mono:style=Italic

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -

7-1. 「Windows11」側に、フォントをインストール:

-


1). Adobe のフォントの入手先:

下記のフォントをGoogle では「別名」で提供しています。←(上記)

下記は使用に伴いライセンス登録が必要ですが、無料で使えます。

-

(1). 「源ノ明朝 (Source Han Serif)」明朝体(セリフ)

https://github.com/adobe-fonts/source-han-serif/archive/1.001R.zip

AdobeGoogle、イワタ で共同開発したオープンソース明朝体のフォント
4つの言語(日本語、簡体中国語、繁体中国語および韓国語)で必要な文字をサポート

-

(2). 「源ノ角ゴシック (Source Han Sans)」ゴシック体

https://github.com/adobe-fonts/source-han-sans/archive/2.004R.zip

AdobeGoogle、で共同開発したオープンソースのゴシック体のフォント
4つの言語(日本語、簡体中国語、繁体中国語および韓国語)で必要な文字をサポート

-

(3). 「source-code-pro」

https://github.com/adobe-fonts/source-code-pro/archive/refs/tags/2.038R-ro/1.058R-it/1.018R-VAR.zip

-


2). Google のフォントの入手先:

https://www.google.com/get/noto/

→★ 今回使用しました。

-

3). Google の「zip」ファイルをダウンロード:

→Noto_Sans_JP.zip

→Noto_Serif_JP.zip

→Noto_Sans_Mono.zip

-

4). ダウンロードした「zip」ファイルを展開:

-

(1). 「エクスプローラ」を起動
C:\Users\user\Downloads\

-

(2). 「zip」ファイルを右クリック →「すべて展開」

-

(3). 展開先のフォルダを指定

-

5). 「エクスプローラ」で、必要なフォントを右クリック→「インストール」ボタンをクリック

-

6). 「Windows11」を再起動

-

7). コントロールパネル →フォント で確認:

名前からして、CJK フォントの中の、日本語フォントだけがダウンロードされるかと思っていましたが、

フォントファイルには「すべての言語」が含まれていました。

-

8). これだと、サイズの節約になりません:

→インストールされたフォントで使わない言語のフォントは、選んで左上の「削除」をクリックしました。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- --

7-2.「Windows 11」側のフォントを「Ubuntu」で使えるように設定:

-

参考:

WSL上のXサーバで、Windows 10にインストールされているフォントを利用する

-

1). 「Ubuntu」で「fontconfig」パッケージをインストール:

$ sudo apt install fontconfg

-

2). 作業する前に、WSLで利用できるフォントの一覧を確認:

ubn@FMVpc:~$
$ fc-list | sort
:
/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book
/usr/share/fonts/truetype/ubuntu/Ubuntu-B.ttf: Ubuntu:style=Bold
/usr/share/fonts/truetype/ubuntu/Ubuntu-BI.ttf: Ubuntu:style=Bold Italic
/usr/share/fonts/truetype/ubuntu/Ubuntu-C.ttf: Ubuntu Condensed:style=Regular
/usr/share/fonts/truetype/ubuntu/Ubuntu-L.ttf: Ubuntu,Ubuntu Light:style=Light,Regular
/usr/share/fonts/truetype/ubuntu/Ubuntu-LI.ttf: Ubuntu,Ubuntu Light:style=Light Italic,Italic
/usr/share/fonts/truetype/ubuntu/Ubuntu-M.ttf: Ubuntu,Ubuntu Light:style=Medium,Bold
/usr/share/fonts/truetype/ubuntu/Ubuntu-MI.ttf: Ubuntu,Ubuntu Light:style=Medium Italic,Bold Italic
/usr/share/fonts/truetype/ubuntu/Ubuntu-R.ttf: Ubuntu:style=Regular
/usr/share/fonts/truetype/ubuntu/Ubuntu-RI.ttf: Ubuntu:style=Italic
/usr/share/fonts/truetype/ubuntu/Ubuntu-Th.ttf: Ubuntu,Ubuntu Thin:style=Thin,Regular
/usr/share/fonts/truetype/ubuntu/UbuntuMono-B.ttf: Ubuntu Mono:style=Bold
/usr/share/fonts/truetype/ubuntu/UbuntuMono-BI.ttf: Ubuntu Mono:style=Bold Italic
/usr/share/fonts/truetype/ubuntu/UbuntuMono-R.ttf: Ubuntu Mono:style=Regular
/usr/share/fonts/truetype/ubuntu/UbuntuMono-RI.ttf: Ubuntu Mono:style=Italic

-

3). 「Windows 11」側のフォントを追加するための設定ファイルを作成:

$ sudo nano /etc/fonts/local.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <dir>/mnt/c/Windows/Fonts</dir>
</fontconfig>

Ctrl+O で保存(または、Ctrl+S で上書き保存)

Ctrl+X で終了

-

4). フォントキャッシュをクリアして再ロード

$ fc-cache -fv

→時間がかかります。

-

5). 「Ubuntu」で使えるようになった、「Windows11」側の「Noto」フォントの一覧を確認:

ubn@FMVpc:~$ fc-list | sort | grep Noto
:
/mnt/c/Windows/Fonts/NotoMono-Regular.ttf: Noto Mono:style=Regular
/mnt/c/Windows/Fonts/NotoSans-Bold.ttf: Noto Sans:style=Bold
/mnt/c/Windows/Fonts/NotoSans-BoldItalic.ttf: Noto Sans:style=Bold Italic
/mnt/c/Windows/Fonts/NotoSans-Condensed.ttf: Noto Sans,Noto Sans Cond:style=Condensed,Regular
/mnt/c/Windows/Fonts/NotoSans-CondensedBold.ttf: Noto Sans,Noto Sans Cond:style=Condensed Bold,Bold
/mnt/c/Windows/Fonts/NotoSans-CondensedBoldItalic.ttf: Noto Sans,Noto Sans Cond:style=Condensed Bold Italic,Bold Italic
/mnt/c/Windows/Fonts/NotoSans-CondensedItalic.ttf: Noto Sans,Noto Sans Cond:style=Condensed Italic,Italic
/mnt/c/Windows/Fonts/NotoSans-Italic.ttf: Noto Sans:style=Italic
/mnt/c/Windows/Fonts/NotoSans-Light.ttf: Noto Sans,Noto Sans Light:style=Light,Regular
/mnt/c/Windows/Fonts/NotoSans-LightItalic.ttf: Noto Sans,Noto Sans Light:style=Light Italic,Italic
/mnt/c/Windows/Fonts/NotoSans-Regular.ttf: Noto Sans:style=Regular
/mnt/c/Windows/Fonts/NotoSansGeorgian-Bold.ttf: Noto Sans Georgian:style=Bold
/mnt/c/Windows/Fonts/NotoSansGeorgian-Regular.ttf: Noto Sans Georgian:style=Regular
/mnt/c/Windows/Fonts/NotoSansLisu-Regular.ttf: Noto Sans Lisu:style=Regular
/mnt/c/Windows/Fonts/NotoSerif-Bold.ttf: Noto Serif:style=Bold
/mnt/c/Windows/Fonts/NotoSerif-BoldItalic.ttf: Noto Serif:style=Bold Italic
/mnt/c/Windows/Fonts/NotoSerif-Condensed.ttf: Noto Serif,Noto Serif Cond:style=Condensed,Regular
/mnt/c/Windows/Fonts/NotoSerif-CondensedBold.ttf: Noto Serif,Noto Serif Cond:style=Condensed Bold,Bold
/mnt/c/Windows/Fonts/NotoSerif-CondensedBoldItalic.ttf: Noto Serif,Noto Serif Cond:style=Condensed Bold Italic,Bold Italic
/mnt/c/Windows/Fonts/NotoSerif-CondensedItalic.ttf: Noto Serif,Noto Serif Cond:style=Condensed Italic,Italic
/mnt/c/Windows/Fonts/NotoSerif-Italic.ttf: Noto Serif:style=Italic
/mnt/c/Windows/Fonts/NotoSerif-Light.ttf: Noto Serif,Noto Serif Light:style=Light,Regular
/mnt/c/Windows/Fonts/NotoSerif-LightItalic.ttf: Noto Serif,Noto Serif Light:style=Light Italic,Italic
/mnt/c/Windows/Fonts/NotoSerif-Regular.ttf: Noto Serif:style=Regular
/mnt/c/Windows/Fonts/NotoSerifGeorgian-Bold.ttf: Noto Serif Georgian:style=Bold
/mnt/c/Windows/Fonts/NotoSerifGeorgian-Regular.ttf: Noto Serif Georgian:style=Regular

→欲しかった「Noto」フォントが使えるようになりました:

共通で使えるフォントなので、ストレージ節約のために、「Ubuntu」側にインストールしなくても使えるように設定したつもりでした。

-

フォント名を指定してアプリを起動できます:
$ uxterm -fa 'migmix 2m'

-

アプリの中からフォントを選択できます:
$ uxterm -fa 'migmix 2m'

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ---

7-3. Ubuntu 側に、日本語フォント「fonts-noto-cjk」をインストール:

-

「項番 7-1.」の「Windows11」側のフォント(日本語のみ)を使えるようにすれば、「Ubuntu」側の作業は要らないと思っていました。でも、ダウンロードでのインストールだと漏れがあったようです。

-

Fetherpad で確認すると、「ウィンドウのタイトル名が豆腐に文字化け」が解消していません:

→「Ubuntu」側にも「fonts-noto-cjk」をインストールするのが良さそうです。

-

「Windows11」側のフォントを使えるようにしたので、重なりが出るので、ストレージを節約するなら、設定ファイルのフォルダ指定をさらに階層を下げて、細かく指定するのが良いかも。

-

「fonts-noto-cjk」の利点は一発で 3種のフォントがインストールできること。
難点は、使わない言語(中国語、韓国語)のフォントもインストールされるのでストレージが減ること。

-

$ sudo apt install fonts-noto-cjk
:
The following NEW packages will be installed:
  fonts-noto-cjk

-

$ sudo apt info fonts-noto-cjk
:
 This package contains Noto font families for Traditional Chinese,
 Simplified Chinese, Japanese and Korean:
 .
  * Noto Sans CJK JP
  * Noto Sans CJK KR
  * Noto Sans CJK SC
  * Noto Sans CJK TC
  * Noto Sans Mono CJK JP
  * Noto Sans Mono CJK KR
  * Noto Sans Mono CJK SC
  * Noto Sans Mono CJK TC
  * Noto Serif CJK JP
  * Noto Serif CJK KR
  * Noto Serif CJK SC
  * Noto Serif CJK TC
 .
 These fonts are derived from the font family Source Han Sans.
 .
 The name "Noto" is short for "No Tofu", describing the aim of covering
 all living Unicode scripts.
 .
 Tofu (豆腐) is Japanese jargon for unicode replacement character "�"
 (U+FFFD) often displayed as replacement for unassigned or unknown
 characters.
 .
 This package contains regular and bold fonts.

-

抜粋 和訳:

これらのフォントは、Source Han Sans フォント ファミリーから派生したものです。
このパッケージには、通常のフォントと太字のフォントが含まれています。

-

4). フォントキャッシュをクリアして再ロード

$ fc-cache -fv

→時間がかかります。

-

使えるようになったフォントを確認:

ubn@FMVpc:~$ fc-list | sort
:
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK HK:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK JP:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK KR:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK SC:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK TC:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK HK:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK JP:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK KR:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK SC:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK TC:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK HK:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK JP:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK KR:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK SC:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK TC:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK HK:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK JP:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK KR:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK SC:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK TC:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK HK:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK JP:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK KR:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK SC:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK TC:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK HK:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK JP:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK KR:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK SC:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK TC:style=Regular
/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book
/usr/share/fonts/truetype/ubuntu/Ubuntu-B.ttf: Ubuntu:style=Bold
/usr/share/fonts/truetype/ubuntu/Ubuntu-BI.ttf: Ubuntu:style=Bold Italic
/usr/share/fonts/truetype/ubuntu/Ubuntu-C.ttf: Ubuntu Condensed:style=Regular
/usr/share/fonts/truetype/ubuntu/Ubuntu-L.ttf: Ubuntu,Ubuntu Light:style=Light,Regular
/usr/share/fonts/truetype/ubuntu/Ubuntu-LI.ttf: Ubuntu,Ubuntu Light:style=Light Italic,Italic
/usr/share/fonts/truetype/ubuntu/Ubuntu-M.ttf: Ubuntu,Ubuntu Light:style=Medium,Bold
/usr/share/fonts/truetype/ubuntu/Ubuntu-MI.ttf: Ubuntu,Ubuntu Light:style=Medium Italic,Bold Italic
/usr/share/fonts/truetype/ubuntu/Ubuntu-R.ttf: Ubuntu:style=Regular
/usr/share/fonts/truetype/ubuntu/Ubuntu-RI.ttf: Ubuntu:style=Italic
/usr/share/fonts/truetype/ubuntu/Ubuntu-Th.ttf: Ubuntu,Ubuntu Thin:style=Thin,Regular
/usr/share/fonts/truetype/ubuntu/UbuntuMono-B.ttf: Ubuntu Mono:style=Bold
/usr/share/fonts/truetype/ubuntu/UbuntuMono-BI.ttf: Ubuntu Mono:style=Bold Italic
/usr/share/fonts/truetype/ubuntu/UbuntuMono-R.ttf: Ubuntu Mono:style=Regular
/usr/share/fonts/truetype/ubuntu/UbuntuMono-RI.ttf: Ubuntu Mono:style=Italic

→こちらの一覧に豆腐文字を解消する、「項番 7-2. 5).」のリストに含まれていないフォントがあるはずです。

もしかしたら、同じフォントは存在していても、期待しているフォント名ではないのかもしれません。

-

ちなみに、「Xubuntu 22.04.02 LTS」の場合は、下記のフォント指定がありました:

設定 →「ウィンドウマネージャ」→タイトルのフォント

Noto Sans Bold 9

-

Ubuntu 22.04.02 LTS」、しかもデスクトップ環境なしだと、たぶん、デフォルト値だろうと思います。

上記は CJK ではないけど、文字化けしていません。「項番 7-2.」では、インストールだけでなく、「リンク作業が必要」なのかもしれません。

-

ウィンドウのタイトル名が「豆腐に文字化け」が解消:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----

8.「Ubuntu」のロケールを日本語(ja_JP)に変更:

-

1). 作業前の確認:

$ date
:
Thu Mar  9 22:02:09 JST 2023

-

$ locale
:
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=

-

2). 「language-pack」のインストール:

$ sudo apt install language-pack-ja language-pack-gnome-ja
:
The following NEW packages will be installed:
  language-pack-gnome-ja language-pack-gnome-ja-base language-pack-ja language-pack-ja-base

-

3). ロケールを日本語に変更:

$ sudo update-locale LANG=ja_JP.UTF8

-

4). 再起動:

PS C:\Users\user> wsl -t ubuntu
:
この操作を正しく終了しました。

-

PS C:\Users\user> wsl
ubn@FMVpc:/mnt/c/Users/user$

-

5). 作業後の確認:

$ locale
:
LANG=ja_JP.UTF8
LANGUAGE=
LC_CTYPE="ja_JP.UTF8"
LC_NUMERIC="ja_JP.UTF8"
LC_TIME="ja_JP.UTF8"
LC_COLLATE="ja_JP.UTF8"
LC_MONETARY="ja_JP.UTF8"
LC_MESSAGES="ja_JP.UTF8"
LC_PAPER="ja_JP.UTF8"
LC_NAME="ja_JP.UTF8"
LC_ADDRESS="ja_JP.UTF8"
LC_TELEPHONE="ja_JP.UTF8"
LC_MEASUREMENT="ja_JP.UTF8"
LC_IDENTIFICATION="ja_JP.UTF8"
LC_ALL=

-

$ date
:
2023年  3月  9日 木曜日 22:11:31 JST

→日本語表示できました。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -----

9.「Ubuntu」によく使うアプリをインストール:

-

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- -

9-1. 任意: ターミナルの「xfce4-terminal」をインストール:

-

「Windows11」には「PowerShell」を起動すると使える「Windows ターミナル」があるので、追加は任意です。

日本語入力の切り分け作業のために、XubuntuUbuntuXfce デスクトップ版)の標準のターミナルをインストールしました。「Windows ターミナル」だとコマンドを混在できるので混乱します。シンプルに Bash で使う「xfce4-terminal」の方が使いやすいかも。

-

日本語入力の切り分け作業について:

Windows ターミナル」は、「Windows11」のIME が使われるので最初から日本語入力可能です。

確認のため、純粋なLinux のターミナルである「xfce4-terminal」をインストールしてみました。

→結論は、「xfce4-terminal」でも、「Windows11」のIME が使われ、日本語入力できました。

-

1). 「xfce4-terminal」のインストール:

$ sudo apt install xfce4-terminal
:
以下のパッケージが新たにインストールされます:
  exo-utils libexo-2-0 libexo-common libice6 libsm6 libstartup-notification0 liburi-perl libvte-2.91-0
  libvte-2.91-common libx11-xcb1 libxcb-util1 libxfce4ui-2-0 libxfce4ui-common libxfce4util-bin libxfce4util-common
  libxfce4util7 libxfconf-0-3 xfce4-terminal xfconf
アップグレード: 0 個、新規インストール: 19 個、削除: 0 個、保留: 0 個。

-

2). 「xfce4-terminal」の起動:

-

(1). 「Ubuntu ターミナル」からの起動:
$ xfce4-terminal &
:
セッションマネージャーへの接続に失敗しました: 
SESSION_MANAGER environment variable not defined

「&」を付けた方がエラーがあっても継続できます。

-

(2). 「Windows」メニューからの起動:

Windows」キー→「x」と入力→「Xfce4 Terminal (Ubuntu)」 をクリック

-

3). 「xfce4-terminal」が別のウィンドウで開きました:

ubn@FMVpc:/mnt/c/Users/user$ 

-

4). 使ってみました:

$ ls /usr/share/applications/
:
byobu.desktop                      org.freedesktop.IBus.Panel.Emojier.desktop         vim.desktop
htop.desktop                       org.freedesktop.IBus.Panel.Extension.Gtk3.desktop  xfce4-terminal-settings.desktop
im-config.desktop                  org.freedesktop.IBus.Setup.desktop                 xfce4-terminal.desktop
info.desktop                       python3.10.desktop
io.snapcraft.SessionAgent.desktop  snap-handle-link.desktop

-

ubn@FMVpc:/mnt/c/Users/user$ cat /usr/share/applications/im-config.desktop
:
[Desktop Entry]
Name=Input Method
Comment=Set Keyboard Input Method
Type=Application
Keywords=keyboard;input
Exec=im-config
Terminal=false
Icon=input-keyboard
Categories=Settings
X-AppStream-Ignore=true
OnlyShowIn=KDE;LXQt;
X-Ubuntu-Gettext-Domain=im-config

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- --

9-2. 任意:「Ubuntu」の「ファイルマネージャ」をインストール:

-

「Windows11」には「エクスプローラ」があり、パス指定で「\\wsl$\Ubuntu\」を使えば兼用できるので、追加は任意です。手間が減らせます。

-

UbuntuGNOME の場合の)のデフォルトの「ファイルマネージャ」のパッケージ名は「nautilus」(ノーチラス)です。

わかりづらいからか、GUI での表示は「Files」(ファイル)です。

見やすいことと、拡張機能があるのが特徴です。

-


1). 「nautilus」のインストール:

$ sudo apt install nautilus
:
以下のパッケージが新たにインストールされます:
  desktop-file-utils fdisk gcr gdisk gnome-desktop3-data gnome-keyring gnome-keyring-pkcs11 gvfs
  gvfs-backends gvfs-common gvfs-daemons gvfs-libs libarchive13 libatasmart4 libavahi-glib1
  libblockdev-crypto2 libblockdev-fs2 libblockdev-loop2 libblockdev-part-err2 libblockdev-part2
  libblockdev-swap2 libblockdev-utils2 libblockdev2 libcdio-cdda2 libcdio-paranoia2 libcdio19 libcue2
  libdbusmenu-glib4 libdee-1.0-4 libexempi8 libexif12 libexiv2-27 libfdisk1 libgck-1-0 libgcr-base-3-1
  libgcr-ui-3-1 libgd3 libgdata-common libgdata22 libgexiv2-2 libgif7 libgnome-autoar-0-0
  libgnome-desktop-3-19 libgoa-1.0-0b libgoa-1.0-common libgpgme11 libgphoto2-6 libgphoto2-l10n
  libgphoto2-port12 libgsf-1-114 libgsf-1-common libgxps2 libimobiledevice6 libldb2 libmtp-common
  libmtp-runtime libmtp9 libnautilus-extension1a libnfs13 libnm0 libnspr4 libnss3 libpam-gnome-keyring
  libparted-fs-resize0 libplist3 libpoppler-glib8 libpoppler118 libsmbclient libtalloc2 libtevent0
  libtotem-plparser-common libtotem-plparser18 libtracker-sparql-3.0-0 libudisks2-0
  libunity-protocol-private0 libunity-scopes-json-def-desktop libunity9 libupower-glib3 libusbmuxd6
  libvolume-key1 libwbclient0 libxkbregistry0 libxpm4 nautilus nautilus-data p11-kit p11-kit-modules
  pinentry-gnome3 poppler-data python3-ldb python3-talloc samba-libs tracker tracker-extract
  tracker-miner-fs udisks2 upower usbmuxd
アップグレード: 0 個、新規インストール: 98 個、削除: 0 個、保留: 0 個。

-


2). 「nautilus」の起動:

-

(1). 「Ubuntu ターミナル」からの起動:
$ files &

-

(2). 「Windows」メニューからの起動:

Windows」キー→「file」と入力→「Files (Ubuntu)」 をクリック

-

インストール時のパッケージ名と、GUI でのアプリ名が違うので注意です。

-

(3). 起動した画面:

→デスクトップ環境がないので、テーマやアイコンの指定ができないため、 デフォルトのシンプルな画像が表示されます。アイコンは多分「Adwaita」

-


3). 参考: 「Ubuntu」のファイルシステムを「Windows エクスプローラ」で開くには、:

explorer.exe .

→現在のディレクトリを開くために、必ずコマンドの最後にピリオドを追加します。

-

(1). 指定のしかたが正しいか確認:
PS C:\Users\user> ls \\wsl$\Ubuntu\

    ディレクトリ: \\wsl$\Ubuntu

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----     2023/03/06 月     14:40                lost+found
d-----     2023/03/18 土      9:39                proc
d-----     2023/03/18 土      9:39                dev
d-----     2023/01/04 水      6:40                srv
d-----     2023/01/04 水      6:40                opt
d-----     2023/01/04 水      6:41                var
d-----     2022/04/18 月     19:28                boot
d-----     2023/03/18 土     20:41                tmp
d-----     2023/03/06 月     14:50                home
d-----     2023/01/04 水      6:40                usr
d-----     2023/01/04 水      6:41                snap
d-----     2023/03/18 土     20:41                etc
d-----     2023/03/18 土      9:39                run
d-----     2023/03/09 木     23:03                root
d-----     2023/03/06 月     14:40                mnt
d-----     2023/03/18 土      9:38                sys
d-----     2023/01/04 水      6:40                media
-----l     2023/01/04 水      6:40              7 bin
------     1970/01/01 木      9:00        1955960 init
-----l     2023/01/04 水      6:40              9 lib64
-----l     2023/01/04 水      6:40              7 lib
-----l     2023/01/04 水      6:40              8 sbin
-----l     2023/01/04 水      6:40              9 lib32
-----l     2023/01/04 水      6:40             10 libx32

-

(2). 「Linux」のルートに移動:
PS C:\Users\user> cd \\wsl$\Ubuntu\
PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu> 

→ネットワーク(Linux ディストリビューション)にアクセス

-

(3). 「Windows エクスプローラ」で開く:
PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu> explorer.exe .

→「.」に注意

-


4). 参考: 「Windows ターミナル」で、Linux のコマンドを実行:

PS C:\Users\user> wsl ls -la

Linux の「ls -la」コマンドが使えます。

-


5). 参考: 「ファイルシステム」で、最速のパフォーマンス速度を実現するには:

システム全体のファイルにアクセスできますが、「Linux」(ext4) と「Windows」(ntfs) ではファイル形式が異なるので、どちらのOS で、どちらの場所をアクセスするかで、パフォーマンスが大幅に低下する可能性があります。

-

Linux ツール」を使用して Linux 環境 (Ubuntu など) で作業する場合、

→ファイルを WSL ファイル システムに格納するのがベター。

-

Windows ツール」を使用して Windows 環境 (PowerShell、コマンド プロンプト) で作業する場合、

→ファイルを Windows ファイル システムに格納するのがベター。

-

例えば、「Linux」ファイルを格納する場合であれば:

-

(1).「Linux」のルート ディレクトリを使うのがベター:
PS C:\Users\user> ls \\wsl$\Ubuntu\home\user\
→「Linux」指定に「\wsl$\Ubuntu\」が使えます。これ以上は分解できません。

-

(2).「Windows11」のルート ディレクトリは使いません:

PowerShell」にて、

PS C:\Users\user> ls C:\Users\user\

または

Ubuntu」タブにて、

ubn@FMVpc:/mnt/c/Users/user$ ls /mnt/c/Users/user/

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ---

9-3. 任意:「Ubuntu」のデフォルトのテキストエディタ「gedit」をインストール:

-

gnome 系の標準のテキストエディタで、万能で拡張機能があるのが特徴です。

パッケージ名は「gedit」(ジーエディット)ですが、 わかりやすいように、GUI での表示は「Text editor」(テキストエディター)です。

-

個人的には、背景にグリッド(細かな網目)を入れられるのがグッドです。クールです。

-

1). インストール:

$ sudo apt install gedit

→「im-config」の依存パッケージでもある、「zenity」が一緒に入りました。

-

2). 起動:

-

(1). 「Ubuntu ターミナル」からの起動:
$ gedit &

「&」の前に、新規作成や編集したいファイル名を指定できます。

-

(2). 「Windows」メニューからの起動:

Windows」キー→「te」と入力→「Text editor (Ubuntu)」 をクリック

-

インストール時のパッケージ名と、GUI でのアプリ名が違うので注意です。

-

(3). 起動した画面:

→設定で、ミニマップの表示と、背景にマス目の表示を指定しています。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----

9-4. 任意:「Ubuntu」に、テキストエディタの「Featherpad」をインストール:

-

Lubuntu (Ubuntu の LXQt デスクトップ版)の標準のテキストエディタです。

-

個人的にMarkdown ファイルでテキストは作成するので、Markdown ファイルのハイライト表示が見やすい色使いで、 「検索」や「置換」の機能が使いやすいので、よく使います。

-

「Qt アプリ」(Qt5 ライブラリが使われているアプリ)は日本語入力で問題が出やすいので、その動作確認にも使用。

これが動けば、ほとんどの「Qt アプリ」で日本語入力できます。

-

1). インストール:

$ sudo apt install featherpad

-

2). 起動:

-

(1). 「Ubuntu ターミナル」からの起動:
$ featherpad &

「&」の前に、新規作成や編集したいファイル名を指定できます。

-

(2). 「Windows」メニューからの起動:

Windows」キー→「fe」と入力→「Featherpad (Ubuntu)」 をクリック

-

(3). 起動した画面:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----- ----- -

9-5. 任意:「Ubuntu」に、ESR 版の「Firefox」をインストール:

-

前回、「Windows11」にも ESR 版の「Firefox」をインストールしており、うまくやれば兼用できるので、追加は任意です。

-

ただし、Firefoxダウンロードサイトのように、OS の種別から自動でダウンロードを行うイメージを選択するサイトだと、ひと手間になるので、Linux 側にもインストールしておくと便利です。

-

ESR 版にすることで、起動を速くできます。更新回数も減ります。 「広告ブロック」や「翻訳」のプラグインの追加が簡単です。

-


1). 「Ubuntu」で足りないパッケージをインストール:

WSL の「Ubuntu」には最小限のパッケージしかインストールされていません。

-

「.tar.bz2 解凍」のパッケージをインストール:
$ sudo apt install bzip2
:
以下のパッケージが新たにインストールされます:
  bzip2

-

firefox 起動時のエラー対策:
$ sudo apt install libdbus-glib-1-2
:
以下のパッケージが新たにインストールされます:
  libdbus-glib-1-2

→上記がないと、起動時に下記のエラーが発生します:

$ firefox --version
:
XPCOMGlueLoad error for file /opt/firefox/libxul.so:
libdbus-glib-1.so.2: cannot open shared object file: No such file or directory
Couldn't load XPCOM.

-


2). ダウンロードするフォルダを準備:

$ mkdir -p ~/Downloads/apps
$ cd ~/Downloads/apps/

-


3). ESR 版の「Firefox」をインストール:

-

(1). firefox をダウンロード

2023-03-19 現在:

以前、動いた実績のあるバージョン:

firefox-102.8.0esr.tar.bz2 2023-02-14

→下記でダウンロード:

$ sudo wget https://archive.mozilla.org/pub/firefox/releases/102.8.0esr/linux-x86_64/ja/firefox-102.8.0esr.tar.bz2
:
2023-03-19 15:25:37 (8.79 MB/s) - ‘firefox-102.8.0esr.tar.bz2’ へ保存完了 [77610028/77610028]

-

(2). ダウンロードしたファイルを展開:
$ tar xjf firefox-*.tar.bz2
$

-

(3). 展開した Firefox フォルダを「/opt」に移動:
$ sudo mv firefox /opt
$ ls /opt
firefox

-

(4). Firefox の実行ファイルへのシンボリックリンクを作成:
$ sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox

-

(5). firefox の「デスクトップファイル」をダウンロード
$ sudo wget https://raw.githubusercontent.com/mozilla/sumo-kb/main/install-firefox-linux/firefox.desktop -P /usr/local/share/applications
:
2023-03-19 15:32:49 (13.6 MB/s) - ‘/usr/local/share/applications/firefox.desktop.2’ へ保存完了 [608/608]

-

(6). 「Ubuntu」を再起動:

一度、再起動しないと ESR 版が起動されません。

-

「Ubuntu」の再起動のやり方:

-


4). 「Firefox」を起動:

$ firefox --version
:
Mozilla Firefox 102.8.0esr

-

$ which firefox
/usr/local/bin/firefox

-

起動:
$ firefox &

-

起動した画面:

→シンプルです。

プラグインを追加すれば、見映えは変更できますが、

「広告ブロック」と「翻訳」のプラグインだけを追加しました。

タイトルバーの「firefox」のアイコンにペンギン(Linux マーク)が付いています。

-

5). ダウンロードフォルダを「~/ダウンロード」から、「~/Downloads」に変更:

$ ls
Desktop  Downloads  ダウンロード

firefox で設定を開くと「ダウンロード」フォルダが自動で作成されます。

日本語名だとコマンドで使いづらいので変更しました。

-

6). フォントを「MS Gothic」から「Not Sans CJK」に変更:

-

7). アプリの起動時に更新があり、バージョンが上がりました:

$ firefox --version
:
Mozilla Firefox 102.9.0esr

-

8). ちなみに、「Windows」メニューから起動するときは、

Windows」ボタン→「fi」と入力→「Firefox Web Browser (Ubuntu)」をクリック

-

「(Ubuntu)」が付いている方を選びます。「Firefox」は選択誤りで、Windows 側のアプリです。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- -----

10.「WSL2」での日本語入力:

-

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- -

10-1.「WSL2」の「Windows ターミナル」を使って、Ubuntu の「CUI アプリ」で日本語入力:

-

「nano」や「vi」などの UbuntuCUI アプリでは、「Windows」のIME で日本語入力できます。

-

1). 「項番 8. 」までの設定で、日本語表示:

-

2). 「Ubuntu」を起動:

-


3-1). 「CUI アプリ」の「nano」を使ってみる:

$ nano test.txt

Ctrl+k で行削除

Ctrl+o で保存

Ctrl+x で終了(または、保存せず終了)

-


3-2). 「CUI アプリ」の「vi」を使ってみる:

vim」にしてもよいけどマウスでの使用感が違う場合があります。

$ vi test.txt

「i」で入力

「dd」で行削除

「:wq」で保存終了

「:q!」で保存せず終了

-

4). 「CUI アプリ」で、「半角/全角」キーを押せば、日本語入力できます:

-

→「Windows11」の日本語入力の「IME」が使われます。

→「半角/全角」キーを押したときに、「Windows11」の右下の「A」が「あ」に変化します。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- --

10-2.「Ubuntu」のターミナル「xfce4-terminal」を使って、「CUI アプリ」で日本語入力:

-

「nano」や「vi」などの UbuntuCUI アプリは、「WSL2」の「Windows ターミナル」でUbuntu を起動すれば、「Windows」のIME で日本語入力できました

-

→「Ubuntu」のターミナル「xfce4-terminal」を使っても、日本語入力できるのか確認しました:

-

(1). 「xfce4-terminal」で「半角/全角」キーを押して、コマンド行に日本語入力してみる:
ubn@FMVpc:~$ 

ubn@FMVpc:~$ テスト
テスト: コマンドが見つかりません

→「Windows」のIME で日本語入力できました。

「半角/全角」キーを押すと、「Windows11」のパネル右にある「A」が「あ」に変化するので、「Windows」のIME が使われていることがわかります。日本語候補の窓も黒色です。

入力するときは、画面をいったんクリックするのがコツ

-

(2). 「xfce4-terminal」にて、コマンドで「nano」を起動して、編集画面で「半角/全角」キーを押して、日本語を入力:
ubn@FMVpc:~$ nano
test
テスト

Ctrl+X

保存「n」

→「Windows」のIME で日本語入力できました。

-

CUI アプリ(テキストベースのアプリ)であれば、使っているターミナルが違っても「Windows」のIME で日本語入力できました

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ---

10-3.「WSL2」の「GUI アプリ」で、日本語入力:

-

1). 「GUI アプリ」で日本語表示されるように設定:

-

2). LinuxGUI アプリ「gedit」、「featherpad」で確認:

→「Windows」の IME で日本語入力しようとしても、できませんでした:

LinuxGUI アプリは、対象外です。

-

3). 「WSL2」は、デスクトップ環境のない特殊な環境です

ibus-daemon」がうまく動かないと使えない「ibus-mozc」は、難しいです

-

4). 参考: 「ibus-mozc」で日本語入力にトライ:

ibus-mozc」をインストールして設定を追加

ibus-daeamon」を起動

GUI アプリ」で英語の入力はOK。

日本語入力しようと「半角/全角」キーを押すと、キーを受け付けなくなり、画面が固まりました。

-

設定の「Mozc プロパティ」(/usr/lib/mozc/mozc_tool --mode=config_dialog) を起動:

→設定の初期化はできますが、その後「編集」ボタンが効きません。

固まりました:

何かしらの機能が足りないか、何かしらのサービスを動かす必要がありそう。

-

個人的には、「Mozc プロパティ」でキーの割当をカスタマイズできないのは痛いです。

-

5). 「fcitx-mozc」での日本語入力は「レビュー記事」があるので出来そうです:

参考:

エディタGEDITのインストールと日本語入力環境の整備 on WSL2 + Windows 11

-

6). また、「デスクトップ環境」をインストールすれば、「ibus-mozc」を使うことはできるかも

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----

11. 「fcitx-mozc」で日本語入力:

-

参考:

VirtualBox の「Arch Linux」に「OpenBox」デスクトップ〈H123〉:(日本語入力)

-

1). システム更新:

$ sudo apt update
$ sudo apt upgrade

-

2). インストール:

$ sudo apt install fcitx-mozc
以下のパッケージが新たにインストールされます:
  fcitx fcitx-bin fcitx-config-common fcitx-config-gtk fcitx-data fcitx-frontend-all
  fcitx-frontend-gtk2 fcitx-frontend-gtk3 fcitx-frontend-qt5 fcitx-module-dbus
  fcitx-module-kimpanel fcitx-module-lua fcitx-module-quickphrase-editor5
  fcitx-module-x11 fcitx-modules fcitx-mozc fcitx-mozc-data fcitx-ui-classic im-config
  libabsl20210324 libfcitx-config4 libfcitx-core0 libfcitx-gclient1 libfcitx-qt5-1
  libfcitx-qt5-data libfcitx-utils0 libgail-common libgail18 libgettextpo0 libgtk2.0-0
  libgtk2.0-bin libgtk2.0-common liblua5.2-0 libpresage-data libpresage1v5 libprotobuf23
  libtinyxml2.6.2v5 libxkbfile1 mozc-data mozc-server mozc-utils-gui presage
アップグレード: 0 個、新規インストール: 42 個、削除: 0 個、保留: 0 個。

-

3). 「~/.bash_profile」の修正:

$ nano ~/.bash_profile

↓ ファイルの最後に追記:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
sleep 1; fcitx-autostart

Ctrl + O で保存
Ctrl + X で終了

-

4). 「im-config」で IME を設定:

-

(1). 「Ubuntu ターミナル」で
$ im-config

-

(2). 「インプットメソッド設定」画面が表示:

→「OK」

→「はい」

-

(3). 「fcitx」にチェック

→「OK」

説明が表示:

ユーザー設定 /home/ubn/.xinputrc を fcitx と設定する。
マニュアル設定による選択: fcitx
Flexible Input Method Framework (fcitx)
 * Required for all: fcitx
 * Language specific input conversion support:
   * Simplified Chinese: fcitx-libpinyin or fcitx-sunpinyin or fcitx-googlepinyin
   * Traditional Chinese / generic Chinese: fcitx-rime
   * Generic keyboard translation table: fcitx-table* packages
 * Application platform support:
   Installing fcitx-frontend-all will cover all GUI platforms.
   * GNOME/GTK: fcitx-frontend-gtk2 and fcitx-frontend-gtk3 (both)
   * KDE/Qt5: fcitx-frontend-qt5

The ユーザー設定 is modified by im-config.

Restart the session to activate the new ユーザー設定.
Xセッションマネージャーによって前の設定のデーモンプログラムが再起動される場合は、kill(1)を用いて手動でkillする必要があるかもしれません。
詳細は、im-config(8)と/usr/share/doc/im-config/README.Debian.gzを参照してください。

-

(4). 設定されたか確認:
$ cat ~/.xinputrc
:
# im-config(8) generated on Fri, 17 Mar 2023 19:51:52 +0900
run_im fcitx
# im-config signature: 8e9df9aa8f7bcd5f85ee395e99f9205e  -

-

5). 「Ubuntu」を再起動:

→設定を反映させます。

-

6). GUI アプリで日本語入力できるか確認:

-

(1). 「gedit」を起動して確認:
$ gedit &

→「半角/全角」キーを押すと、日本語入力できました。

-

(2). 「featherpad」を起動して確認:
$ featherpad &

→「半角/全角」キーを押すと、日本語入力できました。

-

&」を付けているのは、固まっても抜けやすくするためです。

警告メッセージがたくさん表示されますが、無視できます。

Enter を押せば、プロンプトが返ってきます。

-

Linux アプリが固まってしまってしまった場合:

「ターミナル」の「+」タブをクリックして、「PowerShell」画面を開き、

Ubuntu」を停止します:

PS C:\Users\user> wsl -t ubuntu
:
この操作を正しく終了しました。

→アプリのウィンドウが閉じるはずです。(Ubuntu も終了)

-

コマンドを一度使うと「コンソール履歴」に残るので、「PowerShell」で「↑」キーを押すだけで、入力できます。

-

「半角/全角」キーを押すと、画面に「.................」が入力されっ放しになる場合:

「fcitx-mozc」の設定ファイルが乱れています。

-

上記の「Linux アプリが固まってしまってしまった場合」の手順で、「Ubuntu」を停止して、「Ubuntu」を起動して操作:

-

「fcitx-mozc」をアンインストール後、設定ファイルを削除:

$ sudo apt remove fcitx-mozc
$ cd ~/.config/
$ rm -r ibus
$ rm -r fcitx
$ rm -r mozc

-

→「項番 2). 」のインストールからやり直します。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- -----

11-1. 日本語入力のキー割当を別々のキーに変更:

-

日本語入力しやすいように設定を変更しました:

「半角/全角」キーだけで日本語オン・オフするなら、この作業は不要です。

-

インストールされたアプリを確認:

$ apt list fcitx-config*
:
fcitx-config-common/jammy,now 0.4.10-3 all [インストール済み、自動]
fcitx-config-gtk/jammy,now 0.4.10-3 amd64 [インストール済み、自動]

-

$ ls /usr/bin/fcitx*
/usr/bin/fcitx               /usr/bin/fcitx-diagnose
/usr/bin/fcitx-autostart     /usr/bin/fcitx-remote
/usr/bin/fcitx-config-gtk3   /usr/bin/fcitx-skin-installer
/usr/bin/fcitx-configtool    /usr/bin/fcitx4-config
/usr/bin/fcitx-dbus-watcher

-

1). 「fcitx-configtool」を起動:

$ fcitx-configtool

-

2). 「入力メソッドの設定」画面:

-

「入力メソッド」タブ:

キーボード - 英語(US)
Mozc

↓ 「キーボード - 日本語」追加:

↓ 「キーボード - 英語(US)」削除:

キーボード - 日本語
Mozc

-

-

3). 日本語オンオフのキーの割り当てを追加:

日本語入力がしやすいように別々の「日本語 キーボード」のキーに割当を定義しました:

-

「全体の設定」タブ→一番下の「Show Advanced Options」にチェック

入力メソッドをオンに   「空」   「空」
入力メソッドをオフに   「空」   「空」

入力メソッドをオンに   「Henkanmode」 「空」
入力メソッドをオフに   「Muhenkan」 「空」

-

-

右上の「x」で閉じます。

-

残念ながら今回は、「入力メソッドをオン」に、いつも使う「Hiraganakatakana」(ひらがな キー)が登録できませんでした。なので、「Henkanmode」(変換 キー)を登録しました。

-

4). テキストエディタで、日本語入力するときの操作:

- 日本語オン・オフ:  Ctrl+スペース  /  半角/全角  ←(デフォルトの定義)

- 日本語オン:     変換   ←(追加の定義)
- 日本語オフ:     無変換   ←(追加の定義)

→上記のキーで、「日本語オン/オフ」できるようになりました。

-

「半角/全角」キーでオンオフすると、日本語候補窓の「Mozc」が点滅しますが、

-

「変換」キーで日本語オン、「無変換」キーで日本語オフすると、「Mozc」の点滅が少なくなります。

「半角/全角」キーを使わなくても、「変換」キーを押してから日本語入力、「無変換」キーを押してから英語入力できるはずです。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----- -

11-2. 参考: 「Windows11」の「IME」の設定方法:

-

参考:

ご存じでしたか? Microsoft IMEの設定方法が変わりました【Windows 10 バージョン2004以降/11】

Windows11 の標準の日本語入力システム「Microsoft IME」では、デフォルトで[半角/全角]キーがIMEのオン/オフの切り替えとなっています。IMEのオン/オフの切り替えキーを別のキーに変更しました。

ただし、新しいMicrosoft IMEでは、[変換]キーや[無変換]キーなど、特定のキーしか、機能の割り当てができなくなっています。

-


1). 「Microsoft IME」画面を表示させる手順:

-

(1). Windows11」にて、「設定」アプリを起動:

-

(2). [設定]アプリの右側で「時刻と言語」を選択

-

(3). 右側の「言語と地域」をクリック

-

(4). 「言語と地域」画面が開くので「日本語」の「…」をクリック

-

(5). メニューの「言語オプション」を選択

-

(6). 「オプション」画面が開くので「キーボード」欄の「Microsoft IME」の「…」をクリック

-

(7). メニューの「キーボードオプション」を選択

-


2). 「Microsoft IME」画面が表示:

→「キーとタッチのカスタマイズ」をクリック

[キータッチのカスタマイズ]画面が表示:

キーテンプレート: 「Microsoft IME

-


3). キーの割り当てを変更:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----- --

12. 参考: 「Xubuntu 22.0.2 LTS」で使っている「fonts」:

-

Xfce デスクトップ環境の「Xubuntu 22.0.2 LTS」で使っている「fonts」を記述しました。

個人的に追加しているフォントや、未使用の言語のフォントも含まれます。

-

Fontconfig が利用するフォントパスは「/usr/share/fonts/」や「~/.local/share/fonts」です (「~/.fonts/」は非推奨)。

これらのフォルダを Fontconfig は再帰的にスキャンします。

-

使用しているフォントファイルの一覧:

(Fontconfig が認識しているフォントの一覧)

$ fc-list : file | sort
:
/usr/local/share/fonts/SourceHanCodeJP.ttc:    ←(追加: 源ノ角ゴシック Code JP)
/usr/share/fonts/X11/Type1/c0419bt_.pfb: 
/usr/share/fonts/X11/Type1/c0582bt_.pfb: 
/usr/share/fonts/X11/Type1/c0583bt_.pfb: 
/usr/share/fonts/X11/Type1/c0611bt_.pfb: 
/usr/share/fonts/X11/Type1/c0632bt_.pfb: 
/usr/share/fonts/X11/Type1/c0633bt_.pfb: 
/usr/share/fonts/X11/Type1/c0648bt_.pfb: 
/usr/share/fonts/X11/Type1/c0649bt_.pfb: 
/usr/share/fonts/opentype/malayalam/Chilanka-Regular.otf: 
/usr/share/fonts/opentype/malayalam/Gayathri-Bold.otf: 
/usr/share/fonts/opentype/malayalam/Gayathri-Regular.otf: 
/usr/share/fonts/opentype/malayalam/Gayathri-Thin.otf: 
/usr/share/fonts/opentype/malayalam/Manjari-Bold.otf: 
/usr/share/fonts/opentype/malayalam/Manjari-Regular.otf: 
/usr/share/fonts/opentype/malayalam/Manjari-Thin.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_AMS-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Caligraphic-Bold.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Caligraphic-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Fraktur-Bold.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Fraktur-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Main-Bold.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Main-Italic.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Main-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Math-BoldItalic.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Math-Italic.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Math-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_SansSerif-Bold.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_SansSerif-Italic.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_SansSerif-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Script-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Size1-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Size2-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Size3-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Size4-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Typewriter-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Vector-Bold.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_Vector-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_WinChrome-Regular.otf: 
/usr/share/fonts/opentype/mathjax/MathJax_WinIE6-Regular.otf: 
/usr/share/fonts/opentype/noto/NotoSansCJK-Black.ttc: 
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: 
/usr/share/fonts/opentype/noto/NotoSansCJK-DemiLight.ttc: 
/usr/share/fonts/opentype/noto/NotoSansCJK-Light.ttc: 
/usr/share/fonts/opentype/noto/NotoSansCJK-Medium.ttc: 
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: 
/usr/share/fonts/opentype/noto/NotoSansCJK-Thin.ttc: 
/usr/share/fonts/opentype/noto/NotoSerifCJK-Black.ttc: 
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: 
/usr/share/fonts/opentype/noto/NotoSerifCJK-ExtraLight.ttc: 
/usr/share/fonts/opentype/noto/NotoSerifCJK-Light.ttc: 
/usr/share/fonts/opentype/noto/NotoSerifCJK-Medium.ttc: 
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: 
/usr/share/fonts/opentype/noto/NotoSerifCJK-SemiBold.ttc: 
/usr/share/fonts/opentype/urw-base35/C059-BdIta.otf: 
/usr/share/fonts/opentype/urw-base35/C059-Bold.otf: 
/usr/share/fonts/opentype/urw-base35/C059-Italic.otf: 
/usr/share/fonts/opentype/urw-base35/C059-Roman.otf: 
/usr/share/fonts/opentype/urw-base35/D050000L.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusMonoPS-Bold.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusMonoPS-BoldItalic.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusMonoPS-Italic.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusMonoPS-Regular.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusRoman-Bold.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusRoman-BoldItalic.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusRoman-Italic.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusRoman-Regular.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusSans-Bold.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusSans-BoldItalic.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusSans-Italic.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusSans-Regular.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusSansNarrow-Bold.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusSansNarrow-BoldOblique.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusSansNarrow-Oblique.otf: 
/usr/share/fonts/opentype/urw-base35/NimbusSansNarrow-Regular.otf: 
/usr/share/fonts/opentype/urw-base35/P052-Bold.otf: 
/usr/share/fonts/opentype/urw-base35/P052-BoldItalic.otf: 
/usr/share/fonts/opentype/urw-base35/P052-Italic.otf: 
/usr/share/fonts/opentype/urw-base35/P052-Roman.otf: 
/usr/share/fonts/opentype/urw-base35/StandardSymbolsPS.otf: 
/usr/share/fonts/opentype/urw-base35/URWBookman-Demi.otf: 
/usr/share/fonts/opentype/urw-base35/URWBookman-DemiItalic.otf: 
/usr/share/fonts/opentype/urw-base35/URWBookman-Light.otf: 
/usr/share/fonts/opentype/urw-base35/URWBookman-LightItalic.otf: 
/usr/share/fonts/opentype/urw-base35/URWGothic-Book.otf: 
/usr/share/fonts/opentype/urw-base35/URWGothic-BookOblique.otf: 
/usr/share/fonts/opentype/urw-base35/URWGothic-Demi.otf: 
/usr/share/fonts/opentype/urw-base35/URWGothic-DemiOblique.otf: 
/usr/share/fonts/opentype/urw-base35/Z003-MediumItalic.otf: 
/usr/share/fonts/truetype/Gargi/Gargi.ttf: 
/usr/share/fonts/truetype/Gubbi/Gubbi.ttf: 
/usr/share/fonts/truetype/Nakula/nakula.ttf: 
/usr/share/fonts/truetype/Navilu/Navilu.ttf: 
/usr/share/fonts/truetype/Sahadeva/sahadeva.ttf: 
/usr/share/fonts/truetype/Sarai/Sarai.ttf: 
/usr/share/fonts/truetype/abyssinica/AbyssinicaSIL-Regular.ttf: 
/usr/share/fonts/truetype/ancient-scripts/Symbola_hint.ttf: 
/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: 
/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: 
/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf: 
/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: 
/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: 
/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf: 
/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf: 
/usr/share/fonts/truetype/fonts-beng-extra/Ani.ttf: 
/usr/share/fonts/truetype/fonts-beng-extra/JamrulNormal.ttf: 
/usr/share/fonts/truetype/fonts-beng-extra/LikhanNormal.ttf: 
/usr/share/fonts/truetype/fonts-beng-extra/MitraMono.ttf: 
/usr/share/fonts/truetype/fonts-beng-extra/Mukti.ttf: 
/usr/share/fonts/truetype/fonts-beng-extra/Muktibold.ttf: 
/usr/share/fonts/truetype/fonts-deva-extra/chandas1-2.ttf: 
/usr/share/fonts/truetype/fonts-deva-extra/kalimati.ttf: 
/usr/share/fonts/truetype/fonts-deva-extra/samanata.ttf: 
/usr/share/fonts/truetype/fonts-gujr-extra/Rekha.ttf: 
/usr/share/fonts/truetype/fonts-gujr-extra/aakar-medium.ttf: 
/usr/share/fonts/truetype/fonts-gujr-extra/padmaa-Bold.1.1.ttf: 
/usr/share/fonts/truetype/fonts-gujr-extra/padmaa-Medium-0.5.ttf: 
/usr/share/fonts/truetype/fonts-gujr-extra/padmaa.ttf: 
/usr/share/fonts/truetype/fonts-guru-extra/Saab.ttf: 
/usr/share/fonts/truetype/fonts-kalapi/Kalapi.ttf: 
/usr/share/fonts/truetype/fonts-orya-extra/utkal.ttf: 
/usr/share/fonts/truetype/fonts-telu-extra/Pothana2000.ttf: 
/usr/share/fonts/truetype/fonts-telu-extra/vemana2000.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Rasa-Bold.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Rasa-Light.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Rasa-Medium.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Rasa-Regular.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Rasa-SemiBold.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Yrsa-Bold.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Yrsa-BoldItalic.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Yrsa-Italic.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Yrsa-Light.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Yrsa-LightItalic.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Yrsa-Medium.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Yrsa-MediumItalic.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Yrsa-Regular.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Yrsa-SemiBold.ttf: 
/usr/share/fonts/truetype/fonts-yrsa-rasa/Yrsa-SemiBoldItalic.ttf: 
/usr/share/fonts/truetype/freefont/FreeMono.ttf: 
/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf: 
/usr/share/fonts/truetype/freefont/FreeMonoBoldOblique.ttf: 
/usr/share/fonts/truetype/freefont/FreeMonoOblique.ttf: 
/usr/share/fonts/truetype/freefont/FreeSans.ttf: 
/usr/share/fonts/truetype/freefont/FreeSansBold.ttf: 
/usr/share/fonts/truetype/freefont/FreeSansBoldOblique.ttf: 
/usr/share/fonts/truetype/freefont/FreeSansOblique.ttf: 
/usr/share/fonts/truetype/freefont/FreeSerif.ttf: 
/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf: 
/usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf: 
/usr/share/fonts/truetype/freefont/FreeSerifItalic.ttf: 
/usr/share/fonts/truetype/gentium-basic/GenBasB.ttf: 
/usr/share/fonts/truetype/gentium-basic/GenBasBI.ttf: 
/usr/share/fonts/truetype/gentium-basic/GenBasI.ttf: 
/usr/share/fonts/truetype/gentium-basic/GenBasR.ttf: 
/usr/share/fonts/truetype/gentium-basic/GenBkBasB.ttf: 
/usr/share/fonts/truetype/gentium-basic/GenBkBasBI.ttf: 
/usr/share/fonts/truetype/gentium-basic/GenBkBasI.ttf: 
/usr/share/fonts/truetype/gentium-basic/GenBkBasR.ttf: 
/usr/share/fonts/truetype/gentium/Gentium-I.ttf: 
/usr/share/fonts/truetype/gentium/Gentium-R.ttf: 
/usr/share/fonts/truetype/gentium/GentiumAlt-I.ttf: 
/usr/share/fonts/truetype/gentium/GentiumAlt-R.ttf: 
/usr/share/fonts/truetype/kacst-one/KacstOne-Bold.ttf: 
/usr/share/fonts/truetype/kacst-one/KacstOne.ttf: 
/usr/share/fonts/truetype/kacst/KacstArt.ttf: 
/usr/share/fonts/truetype/kacst/KacstBook.ttf: 
/usr/share/fonts/truetype/kacst/KacstDecorative.ttf: 
/usr/share/fonts/truetype/kacst/KacstDigital.ttf: 
/usr/share/fonts/truetype/kacst/KacstFarsi.ttf: 
/usr/share/fonts/truetype/kacst/KacstLetter.ttf: 
/usr/share/fonts/truetype/kacst/KacstNaskh.ttf: 
/usr/share/fonts/truetype/kacst/KacstOffice.ttf: 
/usr/share/fonts/truetype/kacst/KacstPen.ttf: 
/usr/share/fonts/truetype/kacst/KacstPoster.ttf: 
/usr/share/fonts/truetype/kacst/KacstQurn.ttf: 
/usr/share/fonts/truetype/kacst/KacstScreen.ttf: 
/usr/share/fonts/truetype/kacst/KacstTitle.ttf: 
/usr/share/fonts/truetype/kacst/KacstTitleL.ttf: 
/usr/share/fonts/truetype/kacst/mry_KacstQurn.ttf: 
/usr/share/fonts/truetype/lao/Phetsarath_OT.ttf: 
/usr/share/fonts/truetype/lato/Lato-Black.ttf: 
/usr/share/fonts/truetype/lato/Lato-BlackItalic.ttf: 
/usr/share/fonts/truetype/lato/Lato-Bold.ttf: 
/usr/share/fonts/truetype/lato/Lato-BoldItalic.ttf: 
/usr/share/fonts/truetype/lato/Lato-Hairline.ttf: 
/usr/share/fonts/truetype/lato/Lato-HairlineItalic.ttf: 
/usr/share/fonts/truetype/lato/Lato-Heavy.ttf: 
/usr/share/fonts/truetype/lato/Lato-HeavyItalic.ttf: 
/usr/share/fonts/truetype/lato/Lato-Italic.ttf: 
/usr/share/fonts/truetype/lato/Lato-Light.ttf: 
/usr/share/fonts/truetype/lato/Lato-LightItalic.ttf: 
/usr/share/fonts/truetype/lato/Lato-Medium.ttf: 
/usr/share/fonts/truetype/lato/Lato-MediumItalic.ttf: 
/usr/share/fonts/truetype/lato/Lato-Regular.ttf: 
/usr/share/fonts/truetype/lato/Lato-Semibold.ttf: 
/usr/share/fonts/truetype/lato/Lato-SemiboldItalic.ttf: 
/usr/share/fonts/truetype/lato/Lato-Thin.ttf: 
/usr/share/fonts/truetype/lato/Lato-ThinItalic.ttf: 
/usr/share/fonts/truetype/liberation/LiberationMono-Bold.ttf: 
/usr/share/fonts/truetype/liberation/LiberationMono-BoldItalic.ttf: 
/usr/share/fonts/truetype/liberation/LiberationMono-Italic.ttf: 
/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf: 
/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf: 
/usr/share/fonts/truetype/liberation/LiberationSans-BoldItalic.ttf: 
/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf: 
/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf: 
/usr/share/fonts/truetype/liberation/LiberationSansNarrow-Bold.ttf: 
/usr/share/fonts/truetype/liberation/LiberationSansNarrow-BoldItalic.ttf: 
/usr/share/fonts/truetype/liberation/LiberationSansNarrow-Italic.ttf: 
/usr/share/fonts/truetype/liberation/LiberationSansNarrow-Regular.ttf: 
/usr/share/fonts/truetype/liberation/LiberationSerif-Bold.ttf: 
/usr/share/fonts/truetype/liberation/LiberationSerif-BoldItalic.ttf: 
/usr/share/fonts/truetype/liberation/LiberationSerif-Italic.ttf: 
/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf: 
/usr/share/fonts/truetype/liberation2/LiberationMono-Bold.ttf: 
/usr/share/fonts/truetype/liberation2/LiberationMono-BoldItalic.ttf: 
/usr/share/fonts/truetype/liberation2/LiberationMono-Italic.ttf: 
/usr/share/fonts/truetype/liberation2/LiberationMono-Regular.ttf: 
/usr/share/fonts/truetype/liberation2/LiberationSans-Bold.ttf: 
/usr/share/fonts/truetype/liberation2/LiberationSans-BoldItalic.ttf: 
/usr/share/fonts/truetype/liberation2/LiberationSans-Italic.ttf: 
/usr/share/fonts/truetype/liberation2/LiberationSans-Regular.ttf: 
/usr/share/fonts/truetype/liberation2/LiberationSerif-Bold.ttf: 
/usr/share/fonts/truetype/liberation2/LiberationSerif-BoldItalic.ttf: 
/usr/share/fonts/truetype/liberation2/LiberationSerif-Italic.ttf: 
/usr/share/fonts/truetype/liberation2/LiberationSerif-Regular.ttf: 
/usr/share/fonts/truetype/libreoffice/opens___.ttf: 
/usr/share/fonts/truetype/lohit-assamese/Lohit-Assamese.ttf: 
/usr/share/fonts/truetype/lohit-bengali/Lohit-Bengali.ttf: 
/usr/share/fonts/truetype/lohit-devanagari/Lohit-Devanagari.ttf: 
/usr/share/fonts/truetype/lohit-gujarati/Lohit-Gujarati.ttf: 
/usr/share/fonts/truetype/lohit-kannada/Lohit-Kannada.ttf: 
/usr/share/fonts/truetype/lohit-malayalam/Lohit-Malayalam.ttf: 
/usr/share/fonts/truetype/lohit-oriya/Lohit-Odia.ttf: 
/usr/share/fonts/truetype/lohit-punjabi/Lohit-Gurmukhi.ttf: 
/usr/share/fonts/truetype/lohit-tamil-classical/Lohit-Tamil-Classical.ttf: 
/usr/share/fonts/truetype/lohit-tamil/Lohit-Tamil.ttf: 
/usr/share/fonts/truetype/lohit-telugu/Lohit-Telugu.ttf: 
/usr/share/fonts/truetype/malayalam/AnjaliOldLipi-Regular.ttf: 
/usr/share/fonts/truetype/malayalam/Dyuthi-Regular.ttf: 
/usr/share/fonts/truetype/malayalam/Karumbi-Regular.ttf: 
/usr/share/fonts/truetype/malayalam/Keraleeyam-Regular.ttf: 
/usr/share/fonts/truetype/malayalam/Meera-Regular.ttf: 
/usr/share/fonts/truetype/malayalam/Rachana-Bold.ttf: 
/usr/share/fonts/truetype/malayalam/Rachana-Regular.ttf: 
/usr/share/fonts/truetype/malayalam/RaghuMalayalamSans-Regular.ttf: 
/usr/share/fonts/truetype/malayalam/Suruma.ttf: 
/usr/share/fonts/truetype/malayalam/Uroob-Regular.ttf: 
/usr/share/fonts/truetype/migmix/migmix-1m-bold.ttf:          ←(追加: migフォント)
/usr/share/fonts/truetype/migmix/migmix-1m-regular.ttf: 
/usr/share/fonts/truetype/migmix/migmix-1p-bold.ttf: 
/usr/share/fonts/truetype/migmix/migmix-1p-regular.ttf: 
/usr/share/fonts/truetype/migmix/migmix-2m-bold.ttf: 
/usr/share/fonts/truetype/migmix/migmix-2m-regular.ttf: 
/usr/share/fonts/truetype/migmix/migmix-2p-bold.ttf: 
/usr/share/fonts/truetype/migmix/migmix-2p-regular.ttf: 
/usr/share/fonts/truetype/migmix/migu-1c-bold.ttf: 
/usr/share/fonts/truetype/migmix/migu-1c-regular.ttf: 
/usr/share/fonts/truetype/migmix/migu-1m-bold.ttf: 
/usr/share/fonts/truetype/migmix/migu-1m-regular.ttf: 
/usr/share/fonts/truetype/migmix/migu-1p-bold.ttf: 
/usr/share/fonts/truetype/migmix/migu-1p-regular.ttf: 
/usr/share/fonts/truetype/migmix/migu-2m-bold.ttf: 
/usr/share/fonts/truetype/migmix/migu-2m-regular.ttf: 
/usr/share/fonts/truetype/noto/NotoKufiArabic-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoKufiArabic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoLoopedLao-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoLoopedLao-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoLoopedLaoUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoLoopedLaoUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoLoopedThai-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoLoopedThai-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoLoopedThaiUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoLoopedThaiUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoMono-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoMusic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoNaskhArabic-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoNaskhArabic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoNaskhArabicUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoNaskhArabicUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoNastaliqUrdu-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoNastaliqUrdu-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoRashiHebrew-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoRashiHebrew-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSans-BoldItalic.ttf: 
/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf: 
/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansAdlam-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansAdlam-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansAdlamUnjoined-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansAdlamUnjoined-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansAnatolianHieroglyphs-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansArabic-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansArabic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansArabicUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansArabicUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansArmenian-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansArmenian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansAvestan-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBalinese-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBalinese-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBamum-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBamum-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBassaVah-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBatak-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBengali-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBengali-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBengaliUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBengaliUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBhaiksuki-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBrahmi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBuginese-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansBuhid-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansCanadianAboriginal-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansCanadianAboriginal-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansCarian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansCaucasianAlbanian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansChakma-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansCham-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansCham-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansCherokee-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansCherokee-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansCoptic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansCuneiform-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansCypriot-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansDeseret-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansDevanagari-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansDevanagari-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansDevanagariUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansDevanagariUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansDisplay-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansDisplay-BoldItalic.ttf: 
/usr/share/fonts/truetype/noto/NotoSansDisplay-Italic.ttf: 
/usr/share/fonts/truetype/noto/NotoSansDisplay-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansDuployan-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansEgyptianHieroglyphs-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansElbasan-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansElymaic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansEthiopic-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansEthiopic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGeorgian-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGeorgian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGlagolitic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGothic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGrantha-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGujarati-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGujarati-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGujaratiUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGujaratiUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGunjalaGondi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGurmukhi-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGurmukhi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGurmukhiUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansGurmukhiUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansHanifiRohingya-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansHanifiRohingya-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansHanunoo-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansHatran-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansHebrew-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansHebrew-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansImperialAramaic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansIndicSiyaqNumbers-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansInscriptionalPahlavi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansInscriptionalParthian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansJavanese-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansJavanese-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKaithi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKannada-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKannada-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKannadaUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKannadaUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKayahLi-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKayahLi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKharoshthi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKhmer-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKhmer-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKhmerUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKhmerUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKhojki-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansKhudawadi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansLao-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansLao-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansLaoUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansLaoUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansLepcha-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansLimbu-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansLinearA-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansLinearB-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansLisu-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansLisu-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansLycian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansLydian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMahajani-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMalayalam-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMalayalam-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMalayalamUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMalayalamUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMandaic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansManichaean-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMarchen-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMasaramGondi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMath-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMayanNumerals-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMedefaidrin-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMedefaidrin-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMeeteiMayek-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMeeteiMayek-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMendeKikakui-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMeroitic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMiao-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansModi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMongolian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMono-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMro-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMultani-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMyanmar-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMyanmar-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMyanmarUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansMyanmarUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansNKo-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansNabataean-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansNewTaiLue-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansNewa-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansNushu-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOgham-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOlChiki-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOlChiki-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOldHungarian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOldItalic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOldNorthArabian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOldPermic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOldPersian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOldSogdian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOldSouthArabian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOldTurkic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOriya-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOriya-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOriyaUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOriyaUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOsage-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansOsmanya-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansPahawhHmong-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansPalmyrene-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansPauCinHau-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansPhagsPa-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansPhoenician-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansPsalterPahlavi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansRejang-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansRunic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSamaritan-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSaurashtra-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSharada-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansShavian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSiddham-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSignWriting-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSinhala-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSinhala-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSinhalaUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSinhalaUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSogdian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSoraSompeng-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSoraSompeng-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSoyombo-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSundanese-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSundanese-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSylotiNagri-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSymbols-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSymbols-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansSyriac-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTagalog-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTagbanwa-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTaiLe-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTaiTham-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTaiTham-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTaiViet-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTakri-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTamil-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTamil-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTamilSupplement-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTamilUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTamilUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTelugu-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTelugu-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTeluguUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTeluguUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansThaana-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansThaana-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansThai-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansThai-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansThaiUI-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSansThaiUI-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTifinagh-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTifinaghAPT-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTifinaghAdrar-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTifinaghAgrawImazighen-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTifinaghAhaggar-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTifinaghAir-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTifinaghAzawagh-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTifinaghGhat-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTifinaghHawad-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTifinaghRhissaIxa-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTifinaghSIL-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTifinaghTawellemmet-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansTirhuta-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansUgaritic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansVai-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansWancho-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansWarangCiti-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansYi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSansZanabazarSquare-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerif-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerif-BoldItalic.ttf: 
/usr/share/fonts/truetype/noto/NotoSerif-Italic.ttf: 
/usr/share/fonts/truetype/noto/NotoSerif-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifAhom-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifArmenian-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifArmenian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifBalinese-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifBengali-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifBengali-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifDevanagari-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifDevanagari-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifDisplay-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifDisplay-BoldItalic.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifDisplay-Italic.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifDisplay-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifDogra-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifEthiopic-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifEthiopic-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifGeorgian-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifGeorgian-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifGrantha-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifGujarati-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifGujarati-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifGurmukhi-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifGurmukhi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifHebrew-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifHebrew-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifKannada-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifKannada-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifKhmer-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifKhmer-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifKhojki-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifKhojki-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifLao-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifLao-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifMalayalam-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifMalayalam-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifMyanmar-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifMyanmar-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifNyiakengPuachueHmong-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifNyiakengPuachueHmong-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifSinhala-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifSinhala-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifTamil-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifTamil-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifTamilSlanted-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifTamilSlanted-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifTangut-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifTelugu-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifTelugu-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifThai-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifThai-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifTibetan-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifTibetan-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifYezidi-Bold.ttf: 
/usr/share/fonts/truetype/noto/NotoSerifYezidi-Regular.ttf: 
/usr/share/fonts/truetype/noto/NotoTraditionalNushu-Regular.ttf: 
/usr/share/fonts/truetype/padauk/Padauk-Bold.ttf: 
/usr/share/fonts/truetype/padauk/Padauk-Regular.ttf: 
/usr/share/fonts/truetype/padauk/PadaukBook-Bold.ttf: 
/usr/share/fonts/truetype/padauk/PadaukBook-Regular.ttf: 
/usr/share/fonts/truetype/pagul/Pagul.ttf: 
/usr/share/fonts/truetype/samyak-fonts/Samyak-Gujarati.ttf: 
/usr/share/fonts/truetype/samyak-fonts/Samyak-Malayalam.ttf: 
/usr/share/fonts/truetype/samyak-fonts/Samyak-Tamil.ttf: 
/usr/share/fonts/truetype/samyak/Samyak-Devanagari.ttf: 
/usr/share/fonts/truetype/sinhala/lklug.ttf: 
/usr/share/fonts/truetype/teluguvijayam/Gidugu.ttf: 
/usr/share/fonts/truetype/teluguvijayam/Gurajada.ttf: 
/usr/share/fonts/truetype/teluguvijayam/LakkiReddy.ttf: 
/usr/share/fonts/truetype/teluguvijayam/Mandali-Regular.ttf: 
/usr/share/fonts/truetype/teluguvijayam/NATS.ttf: 
/usr/share/fonts/truetype/teluguvijayam/NTR.ttf: 
/usr/share/fonts/truetype/teluguvijayam/Peddana-Regular.ttf: 
/usr/share/fonts/truetype/teluguvijayam/Ponnala.ttf: 
/usr/share/fonts/truetype/teluguvijayam/PottiSreeramulu.ttf: 
/usr/share/fonts/truetype/teluguvijayam/Ramaraja-Regular.ttf: 
/usr/share/fonts/truetype/teluguvijayam/RaviPrakash.ttf: 
/usr/share/fonts/truetype/teluguvijayam/SreeKrushnadevaraya.ttf: 
/usr/share/fonts/truetype/teluguvijayam/Suravaram.ttf: 
/usr/share/fonts/truetype/teluguvijayam/SyamalaRamana.ttf: 
/usr/share/fonts/truetype/teluguvijayam/TenaliRamakrishna-Regular.ttf: 
/usr/share/fonts/truetype/teluguvijayam/TimmanaRegular.ttf: 
/usr/share/fonts/truetype/teluguvijayam/dhurjati.ttf: 
/usr/share/fonts/truetype/teluguvijayam/mallanna.ttf: 
/usr/share/fonts/truetype/teluguvijayam/ramabhadra.ttf: 
/usr/share/fonts/truetype/teluguvijayam/suranna.ttf: 
/usr/share/fonts/truetype/tibetan-machine/TibetanMachineUni.ttf: 
/usr/share/fonts/truetype/tlwg/Garuda-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/Garuda-BoldOblique.ttf: 
/usr/share/fonts/truetype/tlwg/Garuda-Oblique.ttf: 
/usr/share/fonts/truetype/tlwg/Garuda.ttf: 
/usr/share/fonts/truetype/tlwg/Kinnari-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/Kinnari-BoldItalic.ttf: 
/usr/share/fonts/truetype/tlwg/Kinnari-BoldOblique.ttf: 
/usr/share/fonts/truetype/tlwg/Kinnari-Italic.ttf: 
/usr/share/fonts/truetype/tlwg/Kinnari-Oblique.ttf: 
/usr/share/fonts/truetype/tlwg/Kinnari.ttf: 
/usr/share/fonts/truetype/tlwg/Laksaman-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/Laksaman-BoldItalic.ttf: 
/usr/share/fonts/truetype/tlwg/Laksaman-Italic.ttf: 
/usr/share/fonts/truetype/tlwg/Laksaman.ttf: 
/usr/share/fonts/truetype/tlwg/Loma-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/Loma-BoldOblique.ttf: 
/usr/share/fonts/truetype/tlwg/Loma-Oblique.ttf: 
/usr/share/fonts/truetype/tlwg/Loma.ttf: 
/usr/share/fonts/truetype/tlwg/Norasi-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/Norasi-BoldItalic.ttf: 
/usr/share/fonts/truetype/tlwg/Norasi-BoldOblique.ttf: 
/usr/share/fonts/truetype/tlwg/Norasi-Italic.ttf: 
/usr/share/fonts/truetype/tlwg/Norasi-Oblique.ttf: 
/usr/share/fonts/truetype/tlwg/Norasi.ttf: 
/usr/share/fonts/truetype/tlwg/Purisa-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/Purisa-BoldOblique.ttf: 
/usr/share/fonts/truetype/tlwg/Purisa-Oblique.ttf: 
/usr/share/fonts/truetype/tlwg/Purisa.ttf: 
/usr/share/fonts/truetype/tlwg/Sawasdee-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/Sawasdee-BoldOblique.ttf: 
/usr/share/fonts/truetype/tlwg/Sawasdee-Oblique.ttf: 
/usr/share/fonts/truetype/tlwg/Sawasdee.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgMono-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgMono-BoldOblique.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgMono-Oblique.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgMono.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgTypewriter-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgTypewriter-BoldOblique.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgTypewriter-Oblique.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgTypewriter.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgTypist-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgTypist-BoldOblique.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgTypist-Oblique.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgTypist.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgTypo-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgTypo-BoldOblique.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgTypo-Oblique.ttf: 
/usr/share/fonts/truetype/tlwg/TlwgTypo.ttf: 
/usr/share/fonts/truetype/tlwg/Umpush-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/Umpush-BoldOblique.ttf: 
/usr/share/fonts/truetype/tlwg/Umpush-Light.ttf: 
/usr/share/fonts/truetype/tlwg/Umpush-LightOblique.ttf: 
/usr/share/fonts/truetype/tlwg/Umpush-Oblique.ttf: 
/usr/share/fonts/truetype/tlwg/Umpush.ttf: 
/usr/share/fonts/truetype/tlwg/Waree-Bold.ttf: 
/usr/share/fonts/truetype/tlwg/Waree-BoldOblique.ttf: 
/usr/share/fonts/truetype/tlwg/Waree-Oblique.ttf: 
/usr/share/fonts/truetype/tlwg/Waree.ttf: 
/usr/share/fonts/truetype/ttf-khmeros-core/KhmerOS.ttf: 
/usr/share/fonts/truetype/ttf-khmeros-core/KhmerOSsys.ttf: 
/usr/share/fonts/truetype/ubuntu/Ubuntu-B.ttf:     ←(Ubuntu のフォント)
/usr/share/fonts/truetype/ubuntu/Ubuntu-BI.ttf: 
/usr/share/fonts/truetype/ubuntu/Ubuntu-C.ttf: 
/usr/share/fonts/truetype/ubuntu/Ubuntu-L.ttf: 
/usr/share/fonts/truetype/ubuntu/Ubuntu-LI.ttf: 
/usr/share/fonts/truetype/ubuntu/Ubuntu-M.ttf: 
/usr/share/fonts/truetype/ubuntu/Ubuntu-MI.ttf: 
/usr/share/fonts/truetype/ubuntu/Ubuntu-R.ttf: 
/usr/share/fonts/truetype/ubuntu/Ubuntu-RI.ttf: 
/usr/share/fonts/truetype/ubuntu/Ubuntu-Th.ttf: 
/usr/share/fonts/truetype/ubuntu/UbuntuMono-B.ttf: 
/usr/share/fonts/truetype/ubuntu/UbuntuMono-BI.ttf: 
/usr/share/fonts/truetype/ubuntu/UbuntuMono-R.ttf: 
/usr/share/fonts/truetype/ubuntu/UbuntuMono-RI.ttf: 
/usr/share/fonts/type1/urw-base35/C059-BdIta.t1: 
/usr/share/fonts/type1/urw-base35/C059-Bold.t1: 
/usr/share/fonts/type1/urw-base35/C059-Italic.t1: 
/usr/share/fonts/type1/urw-base35/C059-Roman.t1: 
/usr/share/fonts/type1/urw-base35/D050000L.t1: 
/usr/share/fonts/type1/urw-base35/NimbusMonoPS-Bold.t1: 
/usr/share/fonts/type1/urw-base35/NimbusMonoPS-BoldItalic.t1: 
/usr/share/fonts/type1/urw-base35/NimbusMonoPS-Italic.t1: 
/usr/share/fonts/type1/urw-base35/NimbusMonoPS-Regular.t1: 
/usr/share/fonts/type1/urw-base35/NimbusRoman-Bold.t1: 
/usr/share/fonts/type1/urw-base35/NimbusRoman-BoldItalic.t1: 
/usr/share/fonts/type1/urw-base35/NimbusRoman-Italic.t1: 
/usr/share/fonts/type1/urw-base35/NimbusRoman-Regular.t1: 
/usr/share/fonts/type1/urw-base35/NimbusSans-Bold.t1: 
/usr/share/fonts/type1/urw-base35/NimbusSans-BoldItalic.t1: 
/usr/share/fonts/type1/urw-base35/NimbusSans-Italic.t1: 
/usr/share/fonts/type1/urw-base35/NimbusSans-Regular.t1: 
/usr/share/fonts/type1/urw-base35/NimbusSansNarrow-Bold.t1: 
/usr/share/fonts/type1/urw-base35/NimbusSansNarrow-BoldOblique.t1: 
/usr/share/fonts/type1/urw-base35/NimbusSansNarrow-Oblique.t1: 
/usr/share/fonts/type1/urw-base35/NimbusSansNarrow-Regular.t1: 
/usr/share/fonts/type1/urw-base35/P052-Bold.t1: 
/usr/share/fonts/type1/urw-base35/P052-BoldItalic.t1: 
/usr/share/fonts/type1/urw-base35/P052-Italic.t1: 
/usr/share/fonts/type1/urw-base35/P052-Roman.t1: 
/usr/share/fonts/type1/urw-base35/StandardSymbolsPS.t1: 
/usr/share/fonts/type1/urw-base35/URWBookman-Demi.t1: 
/usr/share/fonts/type1/urw-base35/URWBookman-DemiItalic.t1: 
/usr/share/fonts/type1/urw-base35/URWBookman-Light.t1: 
/usr/share/fonts/type1/urw-base35/URWBookman-LightItalic.t1: 
/usr/share/fonts/type1/urw-base35/URWGothic-Book.t1: 
/usr/share/fonts/type1/urw-base35/URWGothic-BookOblique.t1: 
/usr/share/fonts/type1/urw-base35/URWGothic-Demi.t1: 
/usr/share/fonts/type1/urw-base35/URWGothic-DemiOblique.t1: 
/usr/share/fonts/type1/urw-base35/Z003-MediumItalic.t1: 

-

フォントの設定ファイル:

$ cat /etc/fonts/fonts.conf

コメント部の抜粋:

和訳:

このファイルは編集しないでください。
これは、FONTCONFIG が更新されると置き換えられます。
ローカルの変更は「local.conf」にあります。

このファイルが参照する local.conf にローカルのカスタマイズを配置します。

-

Xorg が利用しているフォントパスを確認:

$ grep /fonts /var/log/Xorg.0.log
:
[     8.237] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[     8.237] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[     8.237] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[     8.238] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[     8.238] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
    /usr/share/fonts/X11/misc,
    /usr/share/fonts/X11/Type1,

→Fontconfig と違い、Xorg は「/usr/share/fonts/」ディレクトリを再帰的に調べないことに注意

-

$ ls -1 /usr/share/fonts/
:
X11
cMap
cmap
opentype
truetype
type1

-

参考:

フォント設定 - ArchWiki

-

抜粋:

Fontconfig は全ての設定を一つの中心ファイル (/etc/fonts/fonts.conf) に集めます。

このファイルは fontconfig がアップデートしたときに置き換えられるので編集してはいけません。

Fontconfig に対応したアプリケーションはこのファイルを読み込んで利用できるフォントとレンダリング方法を知ります。

-

このファイルは、全体的な設定 (/etc/fonts/local.conf) と /etc/fonts/conf.d/ の設定済みプリセット、そしてユーザの設定ファイル ($XDG_CONFIG_HOME/fontconfig/fonts.conf) に書かれたルールの寄せ集めです。

fc-cache を使うことで fontconfig の設定をリビルドできます、ただし変更は新しく起動したアプリケーションにのみ適用されます。

-

Fontconfig の設定ファイルは XML 形式で、以下のヘッダーが必要になります:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

  <!-- settings go here -->

</fontconfig>

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----- ---

13. 参考: 「WSL」コマンドのヘルプ:

-

PS C:\Users\user> wsl --help
Copyright (c) Microsoft Corporation. All rights reserved.
この製品のプライバシー情報については、https://aka.ms/privacy にアクセスしてください。

使用法: wsl.exe [Argument] [Options...] [CommandLine]

Linux バイナリを実行するための引数:

    コマンド ラインが指定されていない場合、wsl.exe によって既定のシェルが起動されます。

    --exec, -e <CommandLine>
        既定の Linux シェルを使用せずに、指定されたコマンドを実行します。

    --shell-type <Type>
        指定したシェルの種類で、指定されたコマンドを実行します。

        種類:
            standard
                既定の Linux シェルを使用して、指定されたコマンドを実行します。

            login
                既定の Linux シェルをログイン シェルとして使用して、指定されたコマンドを実行します。

            none
                既定の Linux シェルを使用せずに、指定されたコマンドを実行します。

    --
        残りのコマンド ラインをそのまま渡します。

オプション:
    --cd <Directory>
        指定されたディレクトリを現在の作業ディレクトリとして設定します。
        ~ が使用されている場合、Linux ユーザーのホーム パスが使用されます。パスの先頭が
        / 文字の場合、Linux の絶対パスとして解釈されます。
        それ以外の場合、値は Windows の絶対パスにする必要があります。

    --distribution, -d <Distro>
        指定されたディストリビューションを実行します。

    --user, -u <UserName>
        指定されたユーザーとして実行します。

    --system
        システム ディストリビューションのシェルを起動します。

Linux 用 Windows サブシステムを管理するための引数:

    --help
        使用法に関する情報を表示します。

    --debug-shell
        診断目的で WSL2 デバッグ シェルを開きます。

    --install [Distro] [Options...]
        Linux 用 Windows サブシステム ディストリビューションをインストールします。
        有効なディストリビューションの一覧を表示するには、'wsl.exe --list --online' を使用してください。

        オプション:
            --no-launch, -n
                インストール後にディストリビューションを起動しません。

            --web-download
                Microsoft Store ではなくインターネットからディストリビューションをダウンロードします。

    --mount <Disk>
        すべての WSL 2 ディストリビューションで物理ディスクまたは仮想ディスクをアタッチしてマウントします。

        オプション:
            --vhd
                <Disk> が仮想ハード ディスクであることを指定します。

            --bare
                ディスクを WSL2 にアタッチしますが、マウントはしません。

            --name <Name>
                マウント時のカスタム名を使用してディスクをマウントします。

            --type <Type>
                ディスクのマウント時に使用するファイル システム。指定しない場合は、既定で ext4 になります。

            --options <Options>
                追加のマウント オプション。

            --partition <Index>
                マウントするパーティションのインデックス。指定しない場合は、既定でディスク全体になります。

    --set-default-version <Version>
        新しいディストリビューションの既定のインストール バージョンを変更します。

    --shutdown
        実行されているすべてのディストリビューションと WSL 2
        軽量ユーティリティ仮想マシンを直ちに終了します。

    --status
        Linux 用 Windows サブシステムの状態を表示します。

    --unmount [Disk]
        すべての WSL2 ディストリビューションからディスクのマウント解除とデタッチを行います。
        引数なしで呼び出した場合は、すべてのディスクのマウント解除とデタッチが行われます。

    --update
        Linux 用 Windows サブシステム パッケージを更新します。

        オプション:
            --web-download
                Microsoft Store ではなくインターネットから更新プログラムをダウンロードします。

            --pre-release
                利用可能な場合は、プレリリース バージョンをダウンロードします。暗黙的に --web-download となります。

    --version, -v
        バージョン情報を表示します。

Linux 用 Windows サブシステムでディストリビューションを管理するための引数:

    --export <Distro> <FileName> [Options]
        ディストリビューションを tar ファイルにエクスポートします。
        ファイル名を - にすると標準出力になります。

        オプション:
            --vhd
                ディストリビューションを .vhdx ファイルとしてエクスポートする必要があることを指定します。

    --import <Distro> <InstallLocation> <FileName> [Options]
        指定された tar ファイルを新しいディストリビューションとしてインポートします。
        ファイル名を - にすると標準入力になります。

        オプション:
            --version <Version>
                新しいディストリビューションに使用するバージョンを指定します。

            --vhd
                指定されたファイルが tar ファイルではなく .vhdx ファイルであることを指定します。
                この操作により、指定されたインストール場所に .vhdx ファイルのコピーが作成されます。

    --import-in-place <Distro> <FileName>
        指定された .vhdx ファイルを新しいディストリビューションとしてインポートします。
        この仮想ハード ディスクは ext4 ファイル システムの種類でフォーマットする必要があります。

    --list, -l [Options]
        ディストリビューションを一覧表示します。

        オプション:
            --all
                現在インストールまたはアンインストール中のディストリビューションを含む
                すべてのディストリビューションを一覧表示します。

            --running
                現在実行中のディストリビューションのみを一覧表示します。

            --quiet, -q
                ディストリビューションの名前のみを表示します。

            --verbose, -v
                すべてのディストリビューションに関する詳細情報を表示します。

            --online, -o
                'wsl.exe --install' を使用してインストールできるディストリビューションの一覧を表示します。

    --set-default, -s <Distro>
        ディストリビューションを既定として設定します。

    --set-version <Distro> <Version>
        指定されたディストリビューションのバージョンを変更します。

    --terminate, -t <Distro>
        指定されたディストリビューションを終了します。

    --unregister <Distro>
        ディストリビューションの登録を解除し、ルート ファイル システムを削除します。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----- ----

14. 参考: WSL ディストリビューションのその他の操作:

-

参考:

WSL の基本的なコマンド

WSL 開発環境を設定する

-


1). WSL を更新:

PS C:\Users\user> wsl --update

-


2). WSL の状態を確認:

PS C:\Users\user> wsl --status

-


3). WSL のバージョンを確認:

PS C:\Users\user> wsl --version

-


4). ヘルプ コマンド:

PS C:\Users\user> wsl --help

-


5). 指定した「Linux」の停止:

PS C:\Users\user> wsl -t ubuntu

-


6). 「WSL2」(Linux) のシャットダウン:

(すべての「Linux」の停止)

PS C:\Users\user> wsl --shutdown

-


7). 「Windows11」の再起動:

コマンドの実行には、管理者権限が必要です:

Windows」を右クリック→ターミナル(管理者)

ターミナル(管理者)の確認:

PS C:\Users\user> get-tpm

-

実行:

PS C:\Users\user> Restart-Computer

-


8). 「Windows11」の電源オフ:

コマンドの実行には、管理者権限が必要です:

Windows」を右クリック→ターミナル(管理者)

ターミナル(管理者)の確認:

PS C:\Users\user> get-tpm

-

実行:

PS C:\Users\user> Stop-Computer

-


9). 「Windows ターミナル」で、Linux のコマンドを実行:

PS C:\Users\user> wsl ls -la

Linux の「ls -la」コマンドが使えます。

-


10). 「Windows ターミナル」で、直接 Windows ツールを実行: <ツール名>.exe

PS C:\Users\user> notepad.exe

→起動できるプログラムは限定されます。(.exe は無くてもOK)

-

個人でインストールしたプログラムを実行するときは、

Windows+R で、「Notepad++.exe C:\Users\user\Desktop\test2.ps1」Enter

-


11). コマンドで、管理者権限の「PowerShell」を起動:

PS C:\Users\user> Start-Process powershell -verb runas

→新しい管理者権限のウィンドウが開きます。

-

背景が「青色」でわかりやすいです。
デフォルトのフォントは「MS ゴシック」で粗いので、変更したい時は、タイトルバーで右クリック →プロパティ →「フォント」タブ

個人的には、「Migu 1M 」がオススメ

-


12). 「スクリプト」(.ps1) で、管理者権限に変更:

if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole("Administrators")) { Start-Process powershell.exe "-File `"$PSCommandPath`"" -Verb RunAs; exit }

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----- -----

15. 参考: 追加の Linux ディストリビューションをインストールする場合:

-

参考:

(この既定のディストリビューションは変更できます)。

-

PS C:\Users\user> wsl --install <Distribution Name>

インストールの流れ:

オプションの WSL および仮想マシン プラットフォームのコンポーネントを有効にします
最新の Linux カーネルをダウンロードしてインストールします
WSL 2 を既定値として設定します
Ubuntu Linux ディストリビューションをダウンロードしてインストールします (再起動が必要になる場合があります)

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----- ----- --

16. 参考: 「Windows11」と「WSL2」で、データの共有をするには:

-

「WSL2」に、「VirtualBox」や「Boxes」などにある「クリップボードの共有」機能はないようです。 運用で工夫しました。

-

「Windows11」のデスクトップ上で、「Ubuntu」で使っている「featherpad」等のエディタのウィンドウが開けるようになりました。

-


1). 惜しいかな、「Windows11」と「WSL2」のアプリ間で、テキストの貼付けができません。

-


2). Windows11 の「エクスプローラ」で、Ubuntu 側のファイルシステムは「ネットワーク」の「Linux」フォルダとしてアクセスできます。

-


3). Windows11 にインストールした「notepad++」にて、Linux 側にあるテキストファイルを開いて、編集できます:

-

(1). Linux 側のファイルを開いているところ:

-

(2). Linux 側のファイルを開いたところ:

ウィンドウ下のステータスバーに注目:

Unix (LF)  UTF-8

-

(3). タイトルバーの拡大:

→ファイルマネージャでアドレスを使う時は、行末のアプリ名の「- Notepad++」は削除

-

→「Windows ターミナル」で「Ubuntu」タブを開いておかなくても、アクセスできました。
つまり、WSL2 での「Ubuntu」のインストールで、マウント状態が保持されるようです。

-

「notepad++」は Linux のテキストファイルに対応しています。

→フォントは「Not Sans CJK」に変更

-


4). Windows11 側のファイルシステムは、Ubuntu に「マウント」されており、アクセスできます。

Windows11 のテキストエディタで作成したテキストファイルは、Linux 側のテキストエディタで編集しないのが無難ですが、

notepad++ 」をインストールすれば回避できます。

設定で、新規ファイルが「UTF-8」で「LF」を使うようにして、その後、すべてのテキストファイルを作成し直しておけば、Linux 側のテキストエディタで編集できます。

-


5). 例えば、「Windows11」の「firefox」ブラウザで、ブログ記事の一部をコピー、それを「WSL2」の「Ubuntu」の「featherpad」に貼付けると、貼付け出来ませんでした。

当然ですが、「WSL2」の「Ubuntu」の「firefox」ブラウザで開いたブログ記事であれば、「featherpad」に貼付けできます。

→両方に「ブラウザ」があれば(インストールすれば)、「ブラウザ」(ブログの編集画面等)経由で「データの共有」ができます。

-


6). ちなみに、Gメールの「下書き」もデータの共有に使えます。

こちらは「テキスト」だけでなく、画像ファイル等を添付して利用できます。

自分のメールアドレス宛に下書きを作成(送信しません)して、別のPC でその下書きを開けば、「データの共有」ができます。添付ファイルのダウンロードやテキストの貼り付けが済んだら、ゴミ箱アイコンをクリック。むだに容量を使わないのが利点です。

-


7). 「Windows11」のエクスプローラでの「zip」圧縮は注意が必要です:

-

いつもは、「Windows+PrintScreen」で「スクリーンショット」を直接ファイルに保存しています:

→全画面のスクリーンショットが「ペイント」アプリを起動しなくても、「ピクチャ」の「スクリーンショット」フォルダにファイルとして保存でき手間がかかりません。(「Windows」ではクリップボードへの保存がデフォルト)

-

例:ファイル名に日本語の「スクリーンショット」が含まれます:

C:\Users(ユーザー名)\Pictures\Screenshots\スクリーンショット (78).png

-

Snipping Tool」でも保存できますが、少し面倒:

Windows + Shift + S」→「Snipping Tool」起動→「Tab」を4回(全画面の指定)→Enter

-

例:ファイル名に日本語の「スクリーンショット」が含まれます:

C:\Users(ユーザー名)\Pictures\Screenshots\スクリーンショット 2023-03-23 092233.png

途中で、保存するファイル名を変更できますが、保存のたびに行うことになるので面倒です。

-

ここで、別のLinux PC に画像ファイルを送る時は、いくつかのファイルをフォルダにまとめて、右クリックで「圧縮…」→ZIPファイルを作成 して、メールに添付してます。

-

注意: 画像のファイル名が日本語だと、Linux 側で受け取り、解凍すると、ファイル名が文字化けします。

→「Windows11」では文字コードとして「シフトJIS」が、Linux では「UTF-8」が使われています。

-

→上段の画像は、「Windows11」の「エクスプローラ」でzip 圧縮、Linux でメールで受取り、解凍したら、文字化けしているところです。

下段の画像は、Linux 側の「ファイルマネージャ」で「zip」圧縮、Linux でメールで受取り、解凍したものです。 文字化けしていません。

-


8). zip 圧縮時の文字化けの回避:

-

(1). Linux 側に「ファイルマネージャ 」をインストール:

-

(2). Linux の「ファイルマネージャ」にて、「Windows11」の画像フォルダにアクセス:

「C:\Users(ユーザー名)\Pictures\Screenshots」:

-

(3). ひとつのフォルダに集めて「zip」圧縮:

→今回は「w4」フォルダに集めて、右クリックで「zip」圧縮し、「w4.zip」を作成する予定

-

(4). ブラウザを開き、Gメールの「下書き」を作成し、「w4.zip」を添付:
(5). 別のLinux PC にて、メールの「下書き」を開きます:

-

(6). 添付ファイルを開き、それを解凍:

→文字化けは発生しません:

-

-

→ZIP 作成を「Windows11」側で行うのか、「Ubuntu」側で行うかの違いです。

-

ちなみに、「Windows11」のスクリーンショットの「ファイル名」を英語に変更するやり方は見当たりません。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----- ----- ----

17. 参考: 「Windows11」の日本語のフォルダ名を英語に変更:

-

「Windows11」のスクリーンショットの「ファイル名」を英語に変更できないかトライしました。

-

例:

C:\Users(ユーザー名)\Pictures\Screenshots\スクリーンショット (78).png

-

親フォルダを英語にすれば、スクリーンショットの「ファイル名」が英語になるかもしれません。

少しは可能性があるのでトライしますが、画像をキャプチャするアプリでの設定が必要な気がします。

それができなくても、Linux からコマンドでアクセスしやすくできそう。

-

1). 「Windows ターミナル」で確認:

PS C:\Users\user> ls -Name
:
.ms-ad
.vscode
3D Objects
Apple
Contacts
Desktop
Documents
Downloads
Favorites
iCloudDrive
Links
Music
OneDrive
Pictures
Saved Games
Searches
Shared with me
SynologyDrive
Videos

→一覧で見ると「英語」なので、GUI で「どう表示されるか」だけの気がします。

-

2). 各フォルダごとに英語のフォルダ名に変更します:

-

「Windows11」で使われている「日本語」のフォルダ名:

デスクトップ     →Desktop
ダウンロード     →Downloads
ドキュメント     →Documents
ミュージック     →Music
ビデオ         →Videos
ピクチャ       →Pictures
 スクリーンショット → Screenshots

-  
リンク         →Links
検索          →Searches
アドレス帳      →Contacts
お気に入り      →Favorites
保存したゲーム    →Saved Games
3D オブジェクト    →3D Objects

→英語のファイル名を覚える必要はありません。

「日本語のフォルダ名を使うか、使わないか」の設定なので、英語にしたいフォルダのみ変更します。

-

3). エクスプローラを開きます:

-

「横3点」ボタン→「オプション」→

「フォルダオプション」画面→「表示」タブ

-

(1). 「隠しファイル、隠しフォルダー、および隠しドライブを表示する] をチェック

-

(2). 「保護されたオペレーティングシステムファイルを表示しない(推奨)] のチェックを外します

-

→「適用」

-

警告のダイアログボックスが表示:

→「はい」

→「OK」

-

4). 英語にしたい「日本語」のフォルダを開き、「desktop.ini」、または「desktop」ファイルを右クリック→「プログラムから開く」→「メモ帳」

-

ファイルを修正:
LocalizedResourceName …

↓ 行頭に「;」を追記して、コメント行に変更:

;LocalizedResourceName …

→保存

-

5). 「ピクチャ」フォルダの下の「スクリーンショット」フォルダも忘れずに、「desktop.ini」ファイルを修正します。

-

6). 「Windows11」を再起動:

-

7). エクスプローラを開き、確認:

すべてではなく、主なフォルダのみ修正しました。

-

8). Windows + PrintScreen で、スクリーンショットを保存して、ファイル名を確認:

フォルダ名は英語になりましたが、ファイル名は以前と変わっていません:

→最後のファイルは、 「Windows + Shift + S」で、「Snipping Tool」を起動して、全画面を保存してみました。

どれも「日本語」が含まれたファイル名のままです。失敗だけど、これはこれで良いかな。

-

9). エクスプローラの設定を元に戻します:

-

「横3点」ボタン→「オプション」→

「フォルダオプション」画面→「表示」タブ

-

(1). 「規定値の戻す」をクリック

→「適用」

-

(2). 「「登録されている拡張子は表示しない」のチェックを外します

→「適用」

→「OK」

-

注意: 大きな Windows Update があると、元の「日本語」のフォルダ名に戻ってしまう可能性があります:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----- ----- ---

18. 参考: 「WSL2」で「クリップボードの共有」機能を有効化:

-

「WSL2」に、「VirtualBox」や「Boxes」などにある「クリップボードの共有」機能が見当たらないので、使えるようにトライしました:

-


1). 「Ubuntu」で確認:

$ apt list spice-vdagent
:
spice-vdagent/jammy,now 0.22.1-1 amd64

-


2). 「Ubuntu」でインストール:

$ sudo apt install spice-vdagent
:
以下のパッケージが新たにインストールされます:
  spice-vdagent

-

3). 「~/.bash_profile」の修正:

$ nano ~/.bash_profile

-

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
sleep 1; fcitx-autostart

↓ 途中に追加:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
spice-vdagent &
sleep 1; fcitx-autostart

Ctrl+S で上書き保存

Ctrl+X で終了

-

4). PC を再起動:

→「Windows11」まで再起動するのがポイントです。

-

5). 動作確認:

「Windows11」と「WSL2」のアプリ間で、テキストの貼付けが相互にできるか確認。

→OK

-

-


まとめ

「Windows11」にて、「WSL2」コマンドで、「Ubuntu 22.04.2 LTS」をインストールしてみました。

-

「Window11」のメニューからアプリ単体のウィンドウを起動できるので、 使いたかった Linux アプリ(例えば、featherpad)が「Window11」のデスクトップで使えます。

便利な機能ですが、Linux デスクトップ環境がないとうまく動かないアプリもあるので、すべてが使えるとは限りません。Linux デスクトップ環境を使うなら、「VirtualBox」が無難です。

ただし、「WSL2」は「VirtualBox」とは相性が良くない(CPU の仮想化の機能を奪い合うので、パフォーマンスが低下する)ようです。どちらを選ぶかは、PC の性能になりそう。

-

ちなみに、一度に使う Linux アプリは 2つまでにしています。また、Linux で使うフォントも多すぎるので厳選して減らした方が良いかも。

-

また、下記のコマンドを使う時は注意:

PS C:\Users\user> wsl -t ubuntu

例えば、複数の Linux アプリを使っているときに、ひとつが固まったので、上記のコマンドを投入すると、 すべての(指定した Ubuntu の) Linux アプリがいきなり閉じます。

-

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

「Windows11」(22H2) と「Ubuntu」で、「PowerShell」を使う〈H165-2〉

登録日: 2023-03-05 更新日: 2023-04-01

こちらの「Linux あれこれ」は「Linux」メインで投稿してますが、「Windows11」で「Linux」を使う機能に興味があり、投稿しました。

-

前回 の作業で、「Windows11」(22H2) の標準シェルが「Windows PowerShell 5.1」であることを知りました。その機能強化版である「PowerShell 7」をインストール。

また、「PowerShell 7」はマルチプラットフォーム版ということなので、「Xbuntu 22.04.1 LTS」(Ubuntu) にもインストールしました。

-

「今さら、「Windows」のCUI コマンドを覚えても…」と思っていましたが、サーバーやクラウドの世界では、Windows 関連の開発環境での「業務の効率化」では避けて通れないようです。色々と勉強することが多いですね。

その備忘録です。

-

-

使用したPC は、USB 3.0 ポートのある「Windows 11」のノートPC です。メモリ 12GB、SSD 1TB に増設しています。

UEFI 立ち上げ」のPC です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

参考:

1. 「Windows PowerShell 5.1」について:

2. 「Windows PowerShell 5.1」のエイリアス:

3. 「PowerShell」のコマンドレット:

4. 管理者権限で「Windows PowerShell 5.1」を起動:

-

5. 「Windows PowerShell 7」について:

6. 「Windows11」に「PowerShell 7」をインストール:

7. 「PowerShell 7」のエイリアス:

8. 管理者権限で「PowerShell 7」を起動:

9. 「Windows11」にて、「PowerShell 7」をバージョンアップ:

10. 「PowerShell 7」のヘルプをダウンロード:

11. 「Windows11」の「PowerShell 7」で、シェルスクリプトを使う:

-

12. 「Linux」に「PowerShell 7」をインストール:

13. 「Linux」の「PowerShell 7」で、シェルスクリプトを使う:

-

14. 開発環境の「Windows PowerShell ISE」:

15. 「コマンドプロンプト」について:

16. 「Windows 11」の「システム要件」である「TPM」を「Windows PowerShell」で確認:

-

17. 「ls」(Get-ChildItem) コマンドのヘルプ:

-

「まとめ へ」

「目次詳細 へ」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -

「Windows11」(22H2) を起動:

-

立ち上げた「Windows11」の画面:

「Windows10」から「Windows11」にアップグレードしたので、デスクトップに以前使っていたアプリのアイコン(ショートカット)と「壁紙」が残っています。

-

Windows PowerShell 5.1」を起動:

→「Windows11」の標準のシェルです。

デスクトップの空きで右クリック →「ターミナルを開く」、
もしくは、パネルの「Windows」ボタンを右クリック→「ターミナル」で起動できます。

-

PowerShell 7.3.2」を起動 :

→追加でインストールしました。「Windows PowerShell 5.1」と共存できます。その機能強化版です。

他のOS にも提供しているクロスプラットホーム版だからか、アプリ名に「Windows」が付きません。

Windows」メニューや、タスクバーに置いた黒い「端末」アイコンで起動できます。

-

上記と同じ「ls」コマンドを実行していますが、カラー化されています。

ちなみに、「ls」はコマンドレットの「Get-ChildItem」のエイリアスです。Linux の「bash」のコマンドに似た機能のコマンドレットには、使いやすいようにエイリアス(gci、ls、dir)が準備されています。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - --

1.「Windows PowerShell 5.1」について:

-

「Windows11」(22H2) の標準の「ターミナル」(シェル)として、プリインストールされています。

→すでに「PowerShell 7」に移行しており、「Windows PowerShell 5.1」は改修のみの対応です。

-

1).「Windows PowerShell 5.1」の起動:

-

(1). デスクトップの空きで右クリック→「ターミナルを開く」

-

(2). パネルの「Windows」ボタンを右クリック→「ターミナル」

-

2).「Windows PowerShell 5.1」の起動画面:

下記の紹介メッセージが表示されます:

PowerShell を最新にアップデート
https://aka.ms/PSWindows

→サイトでは「PowerShell 7」のインストールが推奨されています。

-

プロンプト表示:
PS C:\Users\user >

→「user」はユーザ名で、任意です。

-


3).「Windows PowerShell 5.1」の詳細:

-

(1). インストール場所:
$env:WINDIR\System32\WindowsPowerShell\v1.0

-

(2). 実行ファイル:
powershell.exe

-

(3). モジュールの格納場所:
PS C:\Users\user> $env:PSModulePath -split (';')
C:\Users\<user>\Documents\WindowsPowerShell\Modules
C:\Program Files\WindowsPowerShell\Modules
C:\WINDOWS\System32\WindowsPowerShell\v1.0\Modules

→コマンドの補完機能を使うと入力が楽です。

「$env:psm」Tab →「 $env:PSModulePath」Enter

$env:PSModulePath「スペース」「-sp」Tab→「 $env:PSModulePath -split」

-

(4). バージョンを確認:
PS C:\Users\user> $PSVersionTable
:
Name                           Value
----                           -----
PSVersion                      5.1.22621.963
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.22621.963
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

→コマンドの補完機能を使うと入力が楽です:

「$PSV」Tab →「$PSVersionTable」Enter

-

(5). バージョンを確認2:
PS C:\Users\user> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      22621  963

→コマンドの入力履歴、や 補完機能を使うと入力が楽です:

「↑」→「$PSVersionTable」

もしくは、

「$PSV」Tab →「$PSVersionTable」

$PSVersionTable「.psv」Tab →「$PSVersionTable.PSVersion」Enter

-

(6). バージョンを確認3:
PS C:\Users\user> Get-Host
:
Name             : ConsoleHost
Version          : 5.1.22621.963
InstanceId       : cba832d6-7ac0-426f-8371-5d75ca7efc6f
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : ja-JP
CurrentUICulture : ja-JP
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

→コマンドの補完機能を使うと入力が楽です。補完だけでなく、小文字で入力しても大文字にしてくれます:

「get-ho」Tab →「Get-Host」Enter

別に小文字の入力でもコマンドは有効ですが、見やすくしたり、記録として残すときは便利です。

-

(7).「.Net Framework」のバージョン確認:
PS C:\Users\user> Get-Item ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full’
:
Name Property
—- ——–
Full CBS : 1
Install : 1
InstallPath : C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
Release : 528040
Servicing : 0
TargetVersion : 4.0.0
Version : 4.8.03752

→コマンドの補完機能を使うと入力が楽です。補完だけでなく、小文字で入力しても大文字にしてくれます:

「get-it」Tab →「Get-Item」

-

(8).「Windows」のバージョンを確認1:
PS C:\Users\user> Get-WmiObject Win32_OperatingSystem
:
SystemDirectory : C:\WINDOWS\system32
Organization    :
BuildNumber     : 22621
RegisteredUser  :
SerialNumber    : xxxxx-xxxxx-xxxxx-xxOEM
Version         : 10.0.22621

→コマンドの補完機能を使うと入力が楽です。補完だけでなく、小文字で入力しても大文字にしてくれます:

「get-wm」Tab →「Get-WmiObject」

-

(9).「Windows」のバージョンを確認2:
PS C:\Users\user> cmd /c ver
:
Microsoft Windows [Version 10.0.22621.1265]

「cmd」はコマンドプロンプトのコマンドを実行する命令です。
「/c」を付けるとコマンド終了後に「PowerShell」に戻ります。

-


4).「Windows PowerShell 5.1」のエイリアスを表示:

PS C:\Users\user> Get-Alias
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           % -> ForEach-Object
Alias           ? -> Where-Object
Alias           ac -> Add-Content
Alias           asnp -> Add-PSSnapin
Alias           cat -> Get-Content
Alias           cd -> Set-Location
Alias           CFS -> ConvertFrom-String                          3.1.0.0    Microsoft.PowerShell.Utility
Alias           chdir -> Set-Location
Alias           clc -> Clear-Content
Alias           clear -> Clear-Host
Alias           clhy -> Clear-History
Alias           cli -> Clear-Item
Alias           clp -> Clear-ItemProperty
Alias           cls -> Clear-Host
Alias           clv -> Clear-Variable
Alias           cnsn -> Connect-PSSession
Alias           compare -> Compare-Object
Alias           copy -> Copy-Item
Alias           cp -> Copy-Item
Alias           cpi -> Copy-Item
Alias           cpp -> Copy-ItemProperty
Alias           curl -> Invoke-WebRequest
Alias           cvpa -> Convert-Path
Alias           dbp -> Disable-PSBreakpoint
Alias           del -> Remove-Item
Alias           diff -> Compare-Object
Alias           dir -> Get-ChildItem
Alias           dnsn -> Disconnect-PSSession
Alias           ebp -> Enable-PSBreakpoint
Alias           echo -> Write-Output
Alias           epal -> Export-Alias
Alias           epcsv -> Export-Csv
Alias           epsn -> Export-PSSession
Alias           erase -> Remove-Item
Alias           etsn -> Enter-PSSession
Alias           exsn -> Exit-PSSession
Alias           fc -> Format-Custom
Alias           fhx -> Format-Hex                                  3.1.0.0    Microsoft.PowerShell.Utility
Alias           fl -> Format-List
Alias           foreach -> ForEach-Object
Alias           ft -> Format-Table
Alias           fw -> Format-Wide
Alias           gal -> Get-Alias
Alias           gbp -> Get-PSBreakpoint
Alias           gc -> Get-Content
Alias           gci -> Get-ChildItem
Alias           gcm -> Get-Command
Alias           gcs -> Get-PSCallStack
Alias           gdr -> Get-PSDrive
Alias           ghy -> Get-History
Alias           gi -> Get-Item
Alias           gjb -> Get-Job
Alias           gl -> Get-Location
Alias           gm -> Get-Member
Alias           gmo -> Get-Module
Alias           gp -> Get-ItemProperty
Alias           gps -> Get-Process
Alias           gpv -> Get-ItemPropertyValue
Alias           group -> Group-Object
Alias           gsn -> Get-PSSession
Alias           gsnp -> Get-PSSnapin
Alias           gsv -> Get-Service
Alias           gu -> Get-Unique
Alias           gv -> Get-Variable
Alias           gwmi -> Get-WmiObject
Alias           h -> Get-History
Alias           history -> Get-History
Alias           icm -> Invoke-Command
Alias           iex -> Invoke-Expression
Alias           ihy -> Invoke-History
Alias           ii -> Invoke-Item
Alias           ipal -> Import-Alias
Alias           ipcsv -> Import-Csv
Alias           ipmo -> Import-Module
Alias           ipsn -> Import-PSSession
Alias           irm -> Invoke-RestMethod
Alias           ise -> powershell_ise.exe
Alias           iwmi -> Invoke-WMIMethod
Alias           iwr -> Invoke-WebRequest
Alias           kill -> Stop-Process
Alias           lp -> Out-Printer
Alias           ls -> Get-ChildItem
Alias           man -> help
Alias           md -> mkdir
Alias           measure -> Measure-Object
Alias           mi -> Move-Item
Alias           mount -> New-PSDrive
Alias           move -> Move-Item
Alias           mp -> Move-ItemProperty
Alias           mv -> Move-Item
Alias           nal -> New-Alias
Alias           ndr -> New-PSDrive
Alias           ni -> New-Item
Alias           nmo -> New-Module
Alias           npssc -> New-PSSessionConfigurationFile
Alias           nsn -> New-PSSession
Alias           nv -> New-Variable
Alias           ogv -> Out-GridView
Alias           oh -> Out-Host
Alias           popd -> Pop-Location
Alias           ps -> Get-Process
Alias           pushd -> Push-Location
Alias           pwd -> Get-Location
Alias           r -> Invoke-History
Alias           rbp -> Remove-PSBreakpoint
Alias           rcjb -> Receive-Job
Alias           rcsn -> Receive-PSSession
Alias           rd -> Remove-Item
Alias           rdr -> Remove-PSDrive
Alias           ren -> Rename-Item
Alias           ri -> Remove-Item
Alias           rjb -> Remove-Job
Alias           rm -> Remove-Item
Alias           rmdir -> Remove-Item
Alias           rmo -> Remove-Module
Alias           rni -> Rename-Item
Alias           rnp -> Rename-ItemProperty
Alias           rp -> Remove-ItemProperty
Alias           rsn -> Remove-PSSession
Alias           rsnp -> Remove-PSSnapin
Alias           rujb -> Resume-Job
Alias           rv -> Remove-Variable
Alias           rvpa -> Resolve-Path
Alias           rwmi -> Remove-WMIObject
Alias           sajb -> Start-Job
Alias           sal -> Set-Alias
Alias           saps -> Start-Process
Alias           sasv -> Start-Service
Alias           sbp -> Set-PSBreakpoint
Alias           sc -> Set-Content
Alias           select -> Select-Object
Alias           set -> Set-Variable
Alias           shcm -> Show-Command
Alias           si -> Set-Item
Alias           sl -> Set-Location
Alias           sleep -> Start-Sleep
Alias           sls -> Select-String
Alias           sort -> Sort-Object
Alias           sp -> Set-ItemProperty
Alias           spjb -> Stop-Job
Alias           spps -> Stop-Process
Alias           spsv -> Stop-Service
Alias           start -> Start-Process
Alias           sujb -> Suspend-Job
Alias           sv -> Set-Variable
Alias           swmi -> Set-WMIInstance
Alias           tee -> Tee-Object
Alias           trcm -> Trace-Command
Alias           type -> Get-Content
Alias           wget -> Invoke-WebRequest
Alias           where -> Where-Object
Alias           wjb -> Wait-Job
Alias           write -> Write-Output

→コマンドの補完機能を使うと入力が楽です。補完だけでなく、小文字で入力しても大文字にしてくれます:

「get-al」Tab →「Get-Alias」Enter

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ---

2. 管理者権限で「Windows PowerShell 5.1」を起動する場合:

-

管理者権限でないと使えない「コマンドレット」があります。

例えば、「Get-Tpm」コマンドレットは、「管理者権限」でないと実行できません。

-

参考:

PowerShellを管理者権限に昇格して実行

-


1). 管理者権限で「Windows PowerShell」を起動 1:

-

(1). 「Windows PowerShell」を起動:

デスクトップの空きで右クリック→「ターミナルを開く」

Windows PowerShell」が起動:

PS C:\Users\user\Desktop >

-

(2). 下記のコマンドを入力:
PS C:\Users\user\Desktop > Start-Process powershell -verb runas

→実行を許可 「はい」

-

(3). 別のウィンドウで管理者権限の「Windows PowerShell」が開きました:
PS C:\Windows\system32 >

→プロンプトが違うことに注目。

-


2). 管理者権限で「Windows PowerShell」を起動 2:

-

Windows メニューにある「PowerShell」を右クリック→「管理者として実行」:
PS C:\Windows\system32 >

→プロンプトが違うことに注目。

-


3). 「Windows11」の場合、「Windows」ボタンを右クリック →ターミナル(管理者):

Windows PowerShell」が起動:

PS C:\Users\user >

→プロンプトは変わりませんが、ウィンドウのタブが「管理者: Windows PowerShell」に変化

「デスクトップ」で開いていないので、プロンプトは、ユーザの「ホーム」を指しています。
ちなみに、「user」はユーザ名で、任意です。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----

3. 「Windows 11」の「システム要件」である「TPM」を「Windows PowerShell」で確認してみる:

-

Windows 11」の「システム要件」のひとつに「TPM 2.0」があります。

アップグレードしたい PC の「TPM」のバージョンを「Windows PowerShell」を使って確認しました:

-

参考:

Windows 11で必須になった「TPM 2.0」って何?TPMの役割や確認方法を紹介

-

TPM (Trusted Platform Module) は、デバイス上でセキュリティ機能を提供するために、 暗号化で利用する「鍵」(証明書)を、金庫?とは別の安全な場所(TPM)で管理するための仕組みです。

TPM には、「1.2」と「2.0」のバージョンが存在します。

-


1). 「tpm.msc」コマンドによる GUI 表示で「TPM」を確認:

-

(1). 「Windows PowerShell」を起動して、「tpm.msc」を入力:
PS C:\Users\user > tpm.msc
(2). もしくは、Windows + R →「コマンドを指定して実行」で、「tpm.msc」を入力:
tpm.msc

-

→「TPM」が実装されているかが GUI で表示:
仕様バージョン: 1.2

-

2). 管理者権限で起動した「PowerShell」にて、「Get-Tpm」コマンドで「TPM」を確認:

PS C:\Windows\system32 > Get-Tpm

もしくは、

コマンドを小文字で:

PS C:\Windows\system32 > get-tpm

-

→「TPM」を含んだ一覧が表示され、その中には下記の文字が含まれていました:
TPM 1.2 ではサポートされていません

-


3). 注意:

Windows 11」の導入のときに、CPU 交換なども考えている場合で、 「BitLocker」などを使っていたら、あらかじめ解除してから CPU を交換しないと(CPU に TPM がある場合があるので)起動できなくなる可能性があります。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -----

4.「PowerShell」のコマンド(コマンドレット)について:

-

参考:

Linux(Bash)とWindows(PowerShell)のコマンド対応表

-

1).「PowerShell」の命令は、「コマンドレット」(Cmdlet) と呼ばれます:

-

2). コマンドレットは「動詞-名詞」という名前の付け方がしてあります:

→初めてでも意味がわかりやすいのが利点です。

例えば、「Get-Command」と入力するとコマンド一覧を取得できます。

-

3).「PowerShell」の「コマンドレット」は、「Uinux」コマンドと対応したエイリアスがあります:

MacOSLinux に慣れた人でも使いやすいようにしてあります。

-

4).「PowerShell」を使えば、Windows ユーザだけでなく、MacOSLinux のユーザでも利用できます

→使い方を工夫すれば、日々の業務をより効率的にできます。

-

5). すべて小文字にしても、コマンドは通ります:

-

6). 一部を大文字にすることで、短縮形のエイリアスがわかりやすくなっています:

「Get-Command」の短縮系は「gcm」です。

-

7). 主なコマンドレットにはエイリアスが定義されています:

Linux コマンド PowerShell コマンドレット 短縮形 機能
./ Start-Process プロセスの起動(アプリの起動)
alias Set-Alias sal エイリアスの作成
alias Get-Alias gal エイリアスの詳細の表示
cat Get-Content gc ファイルの内容を表示
cd Set-Location カレントディレクトリを変更
chmod icacls ファイル権限の変更
chown takeown ファイル所有者の変更
cp Copy-Item cpi ファイルやフォルダのコピー
date Get-Date 現在の日付を表示
df Get-PSDrive ストレージ容量の確認
dir Get-ChildItem gci ファイルの確認
echo Write-Output 標準出力に表示
grep Select-String sls ファイル内の文字列検索
history Get-History ghy 履歴
ls Get-ChildItem gci ファイルの確認
man Get-Help コマンドのマニュアルを表示
mkdir New-Item フォルダの作成
mv Move-Item ファイルの移動
ping Test-Connection ネットワークの疎通確認
ps Get-Process プロセスの表示
rm Remove-Item フォルダやファイルの削除
- Restart-Computer 「Windows11」の再起動
- Stop-Computer 「Windows11」の電源オフ
sleep Start-Sleep タイマー遅延
sort Sort-Object ソート
start Start-Process プロセスの起動(アプリの起動)
touch New-Item ni ファイル新規作成
uniq Get-Unique gu 重複している行を削除
wget Invoke-WebRequest URLからファイルのダウンロード
which Get-Command gcm コマンドの場所を表示
zip Compress-Archive 圧縮

→コマンドが長いので、「Tab」キーで補完して使うと良いです。

-

8). 便利なコマンドレット:

「Copy-Item -Path コピー元のパス -Destination コピー先のパス」:ファイルやフォルダを別のディレクトリにコピー

「Remove-Item -Path フォルダ -Recurse」:フォルダとその中にあるファイルをすべて削除

「Send-MailMessage」:メールを送信

-

9). エイリアスの情報を表示:

PS C:\Users\user> Get-Alias

-

10). コマンドレットでの、パラメータの与え方は、例えば「ls --help」ではなく、「ls -help」のように「-」がひとつです。

また、「ls -h」や「ls -?」も有効です。

-

11). Get-Help にて、「-Online」を付けると、ブラウザで、[コマンド] のヘルプを表示できます:

Get-Help [コマンド] -Online

-

例えば、

PS C:\Users\user> Get-Help Get-ChildItem -Online

ブラウザで表示:

-

12). それ以外に、「https://docs.microsoft.com/ja-jp/powershell/」を検索:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -

5.「PowerShell 7」について:

-

1). 使用するにはインストールが必要です。

-

2).「PowerShell 7」は、「Windows PowerShell 5.1」と共存できます。

-

3). 「PowerShell 7」は、「Windows PowerShell 5.1」の後継で、機能が強化されています。

-

4). 「クロスプラットフォーム版」で、「Windows」だけでなく、「MacOS」や「Linux」にも提供されています。

→サポートされている「Linux ディストリビューション」は限られています。

-


5).「PowerShell 7」の詳細:

-

(1). インストール場所:
$env:ProgramFiles\PowerShell\7

-

(2). 実行ファイル:
pwsh.exe

-

(3). モジュールの格納場所:
PS C:\Users\user> $Env:PSModulePath -split (';')
C:\Users\user\Documents\PowerShell\Modules
C:\Program Files\PowerShell\Modules
c:\program files\powershell\7\Modules
C:\Program Files\WindowsPowerShell\Modules
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

PowerShell 7 では、モジュールが自動読み込みされるので、 Windows PowerShell のパスと PowerShell 7 のパスが含まれて表示されます。

-

(4). バージョン確認:
PS C:\Users\user> $PSVersionTable.PSVersion

Major  Minor  Patch  PreReleaseLabel BuildLabel
-----  -----  -----  --------------- ----------
7      3      2

→コマンドの補完機能を使うと入力が楽です。

「$PSV」Tab →「$PSVersionTable」

$PSVersionTable「.psv」Tab →「$PSVersionTable.PSVersion」Enter

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- --

5-1.「Windows11」に「PowerShell 7」をインストール:

-

1). 「PowerShell 7」は、「Windows PowerShell 5.1」の機能強化版です。

-

2). 「Windows PowerShell 5.1」と「PowerShell 7」は共存できます。

-

3).「Windows PowerShell 5.1」の起動時に、最新の「PowerShell 7」のオススメ表示があります:

Windows PowerShell 5.1」の起動時:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新機能と改善のために最新の PowerShell をインストールしてください! https://aka.ms/PSWindows

PS C:\Users\user>

紹介のサイト「https://aka.ms/PSWindows」を開くと:

→「Windows PowerShell 5.1 から PowerShell 7 への移行 」のドキュメントが開きました:

-

4). 「PowerShell 7」のインストールのやり方は 3つ:

-

(1). 「winget」(Windows のパッケージ管理ツール)を使ってのインストール(推奨)

→「winget」は「Windows」のパッケージ管理ツールです。

-

(2). MSI パッケージを使用して PowerShell を展開する

MSI パッケージの展開は、「管理者権限」が必要です。

-

(3). ZIP パッケージを使用して PowerShell を展開する

→ZIP パッケージの展開は、「任意のユーザ」が展開できます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ---

5-2.「Windows11」にて、winget で「PowerShell 7」をインストール:

-

「winget」は「Windows」のパッケージ管理ツールです。

-

「winget」は、Windows クライアントに PowerShell をインストールする場合に推奨される方法 です。

-


1). winget で「Powershell」を検索:

Windows」ボタンを右クリック→「ターミナル」→「Windows PowerShell」が起動:

-

PS C:\Users\user> winget search Microsoft.PowerShell
'msstore' ソースでは、使用する前に次の契約を表示する必要があります。
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
ソースが正常に機能するには、現在のマシンの 2 文字の地理的リージョンをバックエンド サービスに送信する必要があります (例: "US")。

すべてのソース契約条件に同意しますか?
[Y] はい  [N] いいえ:

→「Y」

名前       ID                           バージョン ソース
----------------------------------------------------------
PowerShell Microsoft.PowerShell         7.3.2.0    winget
PowerShell Microsoft.PowerShell.Preview 7.4.1.0    winget

-


2). winget でインストール:

winget によって Microsoft Store (MSIX) パッケージがインストールされます。

Windows の [スタート] メニューにショートカットが作成されます。

パッケージは、既定で $env:ProgramFiles\PowerShell\<version> にインストールされます。
PowerShell は、スタート メニューまたは $env:ProgramFiles\PowerShell\<version>\pwsh.exe から起動できます。

-


3). winget で「Powershell 7」の安定版をインストール:

PS C:\Users\user> winget install --id Microsoft.Powershell --source winget
見つかりました PowerShell [Microsoft.PowerShell] バージョン 7.3.2.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://github.com/PowerShell/PowerShell/releases/download/v7.3.2/PowerShell-7.3.2-win-x64.msi
  ██████████████████████████████   100 MB /  100 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----

5-3. 管理者権限で、「PowerShell 7」を起動:

-

1). 管理者権限で「Windows PowerShell 5.1」を起動:

Windows」ボタンを右クリック→「ターミナル(管理者)」→「Windows PowerShell」が起動:

PS C:\Users\user> 

→プロンプトは変わりませんが、ウィンドウのタブが「管理者:Windows PowerShell」の表示です。

-

2). 「PowerShell 7」を起動:

PS C:\Users\user> pwsh
:
PowerShell 7.3.2

→プロンプトは変わりませんが、ウィンドウのタブが「Admministrator: 管理者:Windows PowerShell」の表示に変わりました。

-

3). 現在のバージョンを確認:

PS C:\Users\user> pwsh -version
PowerShell 7.3.2

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -----

5-4.「Windows11」にて、「PowerShell 7」をバージョンアップ:

-

1). 「PowerShell 7」を起動したところ、新しいバージョンがあるとの通知がありました:

PS C:\Users\user> pwsh
:
PowerShell 7.3.2

   A new PowerShell stable release is available: v7.3.3
   Upgrade now, or check out the release page at:
     https://aka.ms/PowerShell-Release?tag=v7.3.3

→プロンプトは変わりませんが、ウィンドウのタブが「Admministrator: 管理者:Windows PowerShell」の表示に変わりました。

-

2). winget で「Powershell」を検索:

PS C:\Users\user> winget search Microsoft.PowerShell
名前       ID                           バージョン ソース
----------------------------------------------------------
PowerShell Microsoft.PowerShell         7.3.3.0    winget
PowerShell Microsoft.PowerShell.Preview 7.4.1.0    winget

→新しいバージョンがリリースされました。

-

3). winget で「Powershell 7」の新しい安定版をインストール:

PS C:\Users\user> winget install --id Microsoft.Powershell --source winget
既存のパッケージが既にインストールされています。インストールされているパッケージ...をアップグレードしようとしています
見つかりました PowerShell [Microsoft.PowerShell] バージョン 7.3.3.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://github.com/PowerShell/PowerShell/releases/download/v7.3.3/PowerShell-7.3.3-win-x64.msi
  ██████████████████████████████   101 MB /  101 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...

PS C:\Users\user>

GUI の「Windows インストーラ」(MSI) が起動して、完了しました。

-

4). バージョンの確認:

PS C:\Users\user> pwsh -version
PowerShell 7.3.3

-

5). 使ってみる:

PS C:\Users\user> Get-Alias
Get-Alias: The 'Get-Alias' command was found in the module 'Microsoft.PowerShell.Utility', but the module could not be loaded due to the following error: [Could not load file or assembly 'System.Management.Automation, Version=7.3.3.500, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 指定されたファイルが見つかりません。]
For more information, run 'Import-Module Microsoft.PowerShell.Utility'.

→モジュールが見つからないみたい。

-

6). モジュールの格納場所を確認:

PS C:\Users\user> $Env:PSModulePath -split (';')
:
C:\Users\user\Documents\PowerShell\Modules
C:\Program Files\PowerShell\Modules
c:\program files\powershell\7\Modules
C:\Users\user\Documents\WindowsPowerShell\Modules
C:\Program Files\WindowsPowerShell\Modules
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

-

PS C:\Users\user> ls 'c:\program files\powershell\7\Modules'
    Directory: C:\Program Files\PowerShell\7\Modules

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----       2023/03/05 日     6:33                CimCmdlets
d----       2023/03/05 日     6:33                Microsoft.PowerShell.Archive
d----       2023/03/05 日     6:33                Microsoft.PowerShell.Diagnostics
d----       2023/03/05 日     6:33                Microsoft.PowerShell.Host
d----       2023/03/05 日     6:33                Microsoft.PowerShell.Management
d----       2023/03/05 日     6:33                Microsoft.PowerShell.Security
d----       2023/03/05 日     6:32                Microsoft.PowerShell.Utility
d----       2023/03/05 日     6:33                Microsoft.WSMan.Management
d----       2023/03/05 日     6:33                PackageManagement
d----       2023/03/05 日     6:33                PowerShellGet
d----       2023/03/05 日     6:33                PSDiagnostics
d----       2023/03/05 日     6:33                PSReadLine
d----       2023/03/05 日     6:32                ThreadJob

-

PS C:\Users\user> ls 'c:\program files\powershell\7\Modules\Microsoft.PowerShell.Utility'
    Directory: C:\Program Files\PowerShell\7\Modules\Microsoft.PowerShell.Utility

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---       2023/02/18 土    21:53          16941 Microsoft.PowerShell.Utility.psd1

→モジュールの格納場所に「Microsoft.PowerShell.Utility」はありました。

-

インストール後は、モジュールが認識されないので、再起動が必要みたい。

-

7). ウィンドウを閉じました:

-

8). 再び、管理者権限で「Windows PowerShell」を起動:

Windows」ボタンを右クリック→「ターミナル(管理者)」→「Windows PowerShell」が起動:

-

9). 「PowerShell 7」を起動:

PS C:\Users\user> pwsh
:
PowerShell 7.3.3

-

10). 再度、使ってみる:「PowerShell 7」のエイリアスを表示:

PS C:\Users\user> Get-Alias
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           ? -> Where-Object
Alias           % -> ForEach-Object
Alias           ac -> Add-Content
Alias           cat -> Get-Content
Alias           cd -> Set-Location
Alias           chdir -> Set-Location
Alias           clc -> Clear-Content
Alias           clear -> Clear-Host
Alias           clhy -> Clear-History
Alias           cli -> Clear-Item
Alias           clp -> Clear-ItemProperty
Alias           cls -> Clear-Host
Alias           clv -> Clear-Variable
Alias           cnsn -> Connect-PSSession
Alias           compare -> Compare-Object
Alias           copy -> Copy-Item
Alias           cp -> Copy-Item
Alias           cpi -> Copy-Item
Alias           cpp -> Copy-ItemProperty
Alias           cvpa -> Convert-Path
Alias           dbp -> Disable-PSBreakpoint
Alias           del -> Remove-Item
Alias           diff -> Compare-Object
Alias           dir -> Get-ChildItem
Alias           dnsn -> Disconnect-PSSession
Alias           ebp -> Enable-PSBreakpoint
Alias           echo -> Write-Output
Alias           epal -> Export-Alias
Alias           epcsv -> Export-Csv
Alias           erase -> Remove-Item
Alias           etsn -> Enter-PSSession
Alias           exsn -> Exit-PSSession
Alias           fc -> Format-Custom
Alias           fhx -> Format-Hex                                  7.0.0.0    Microsoft.PowerShell.Utility
Alias           fl -> Format-List
Alias           foreach -> ForEach-Object
Alias           ft -> Format-Table
Alias           fw -> Format-Wide
Alias           gal -> Get-Alias
Alias           gbp -> Get-PSBreakpoint
Alias           gc -> Get-Content
Alias           gcb -> Get-Clipboard                               7.0.0.0    Microsoft.PowerShell.Management
Alias           gci -> Get-ChildItem
Alias           gcm -> Get-Command
Alias           gcs -> Get-PSCallStack
Alias           gdr -> Get-PSDrive
Alias           gerr -> Get-Error
Alias           ghy -> Get-History
Alias           gi -> Get-Item
Alias           gin -> Get-ComputerInfo                            7.0.0.0    Microsoft.PowerShell.Management
Alias           gjb -> Get-Job
Alias           gl -> Get-Location
Alias           gm -> Get-Member
Alias           gmo -> Get-Module
Alias           gp -> Get-ItemProperty
Alias           gps -> Get-Process
Alias           gpv -> Get-ItemPropertyValue
Alias           group -> Group-Object
Alias           gsn -> Get-PSSession
Alias           gsv -> Get-Service
Alias           gtz -> Get-TimeZone                                7.0.0.0    Microsoft.PowerShell.Management
Alias           gu -> Get-Unique
Alias           gv -> Get-Variable
Alias           h -> Get-History
Alias           history -> Get-History
Alias           icm -> Invoke-Command
Alias           iex -> Invoke-Expression
Alias           ihy -> Invoke-History
Alias           ii -> Invoke-Item
Alias           ipal -> Import-Alias
Alias           ipcsv -> Import-Csv
Alias           ipmo -> Import-Module
Alias           irm -> Invoke-RestMethod
Alias           iwr -> Invoke-WebRequest
Alias           kill -> Stop-Process
Alias           ls -> Get-ChildItem
Alias           man -> help
Alias           md -> mkdir
Alias           measure -> Measure-Object
Alias           mi -> Move-Item
Alias           mount -> New-PSDrive
Alias           move -> Move-Item
Alias           mp -> Move-ItemProperty
Alias           mv -> Move-Item
Alias           nal -> New-Alias
Alias           ndr -> New-PSDrive
Alias           ni -> New-Item
Alias           nmo -> New-Module
Alias           nsn -> New-PSSession
Alias           nv -> New-Variable
Alias           ogv -> Out-GridView
Alias           oh -> Out-Host
Alias           popd -> Pop-Location
Alias           ps -> Get-Process
Alias           pushd -> Push-Location
Alias           pwd -> Get-Location
Alias           r -> Invoke-History
Alias           rbp -> Remove-PSBreakpoint
Alias           rcjb -> Receive-Job
Alias           rcsn -> Receive-PSSession
Alias           rd -> Remove-Item
Alias           rdr -> Remove-PSDrive
Alias           ren -> Rename-Item
Alias           ri -> Remove-Item
Alias           rjb -> Remove-Job
Alias           rm -> Remove-Item
Alias           rmdir -> Remove-Item
Alias           rmo -> Remove-Module
Alias           rni -> Rename-Item
Alias           rnp -> Rename-ItemProperty
Alias           rp -> Remove-ItemProperty
Alias           rsn -> Remove-PSSession
Alias           rv -> Remove-Variable
Alias           rvpa -> Resolve-Path
Alias           sajb -> Start-Job
Alias           sal -> Set-Alias
Alias           saps -> Start-Process
Alias           sasv -> Start-Service
Alias           sbp -> Set-PSBreakpoint
Alias           scb -> Set-Clipboard                               7.0.0.0    Microsoft.PowerShell.Management
Alias           select -> Select-Object
Alias           set -> Set-Variable
Alias           shcm -> Show-Command
Alias           si -> Set-Item
Alias           sl -> Set-Location
Alias           sleep -> Start-Sleep
Alias           sls -> Select-String
Alias           sort -> Sort-Object
Alias           sp -> Set-ItemProperty
Alias           spjb -> Stop-Job
Alias           spps -> Stop-Process
Alias           spsv -> Stop-Service
Alias           start -> Start-Process
Alias           stz -> Set-TimeZone                                7.0.0.0    Microsoft.PowerShell.Management
Alias           sv -> Set-Variable
Alias           tee -> Tee-Object
Alias           type -> Get-Content
Alias           where -> Where-Object
Alias           wjb -> Wait-Job
Alias           write -> Write-Output

→動作しました。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -

5-5.「PowerShell 7」のヘルプをダウンロード:

-

1). ヘルプを使ってみる:

PS C:\Users\user> ls -?

もしくは、

PS C:\Users\user> Get-Help Get-ChildItem
NAME
    Get-ChildItem

SYNTAX
    Get-ChildItem [[-Path] <string[]>] [[-Filter] <string>] [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [-De
    pth <uint>] [-Force] [-Name] [-Attributes {ReadOnly | Hidden | System | Directory | Archive | Device | Normal | Tem
    porary | SparseFile | ReparsePoint | Compressed | Offline | NotContentIndexed | Encrypted | IntegrityStream | NoScr
    ubData}] [-FollowSymlink] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]

    Get-ChildItem [[-Filter] <string>] -LiteralPath <string[]> [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [
    -Depth <uint>] [-Force] [-Name] [-Attributes {ReadOnly | Hidden | System | Directory | Archive | Device | Normal |
    Temporary | SparseFile | ReparsePoint | Compressed | Offline | NotContentIndexed | Encrypted | IntegrityStream | No
    ScrubData}] [-FollowSymlink] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]


ALIASES
    gci
    ls
    dir


REMARKS
    Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help.
        -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
        -- To view the Help topic for this cmdlet online, type: "Get-Help Get-ChildItem -Online" or
           go to https://go.microsoft.com/fwlink/?LinkID=2096492.

→最後のメッセージが気になります。

和訳:

備考
「Get-Help」は、このコンピュータでこのコマンドレットの「ヘルプ ファイル」を見つけることができません。
部分的なヘルプのみを表示しています。
-- このコマンドレットを含むモジュールの「ヘルプ ファイルをダウンロードしてインストールする」には「Update-Help」を使用します。
-- このコマンドレットのヘルプ トピックを「オンラインで表示する」には、「Get-Help Get-ChildItem -Online」と入力するか、
「https://go.microsoft.com/fwlink/?LinkID=2096492」に移動します。

-

2). 「Save-Help」の使い方を確認:

PS C:\Users\user> Save-Help -?
:
NAME
    Save-Help

SYNTAX
    Save-Help [-DestinationPath] <string[]> [[-Module] <psmoduleinfo[]>] [[-UICulture] <cultureinfo[]>] [-FullyQualifie
    dModule <ModuleSpecification[]>] [-Credential <pscredential>] [-UseDefaultCredentials] [-Force] [-Scope {CurrentUse
    r | AllUsers}] [<CommonParameters>]

    Save-Help [[-Module] <psmoduleinfo[]>] [[-UICulture] <cultureinfo[]>] -LiteralPath <string[]> [-FullyQualifiedModul
    e <ModuleSpecification[]>] [-Credential <pscredential>] [-UseDefaultCredentials] [-Force] [-Scope {CurrentUser | Al
    lUsers}] [<CommonParameters>]


ALIASES
    None


REMARKS
    Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help.
        -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
        -- To view the Help topic for this cmdlet online, type: "Get-Help Save-Help -Online" or
           go to https://go.microsoft.com/fwlink/?LinkID=2096794.

→コマンドの説明がなく、コマンドの入力形式しか表示されません。有益なのは、最後の行のURL

-

ブラウザでURLを確認:

抜粋:

「Save-Help」コマンドレットは、PowerShell モジュールの最新のヘルプ ファイルをダウンロードし、指定したディレクトリに保存します。

例えば、ネットワーク環境が整っているPC でダウンロードしておき、ネットワークに接続できないPC に「Update-Help」コマンドレットでインストールできます。

-

保存したヘルプ ファイルをインストールするには、 「Update-Help」コマンドレットを実行します 。 「-SourcePath」パラメータで「ヘルプ ファイルを保存したフォルダ」を指定します。

-

参考: 操作例(管理者権限の PowerShell で実行。動作は未確認)
フォルダ作成:
New-Item -ItemType Directory "C:\SavedHelp"

保存:
Save-Help -UICulture en-US, ja-JP -DestinationPath "C:\SavedHelp"

インストール:
Update-Help -SourcePath "C:\SavedHelp"

-

3). 「Update-Help」の使い方を確認:

PS C:\Users\user> Update-Help -?
:
NAME
    Update-Help

SYNTAX
    Update-Help [[-Module] <string[]>] [[-SourcePath] <string[]>] [[-UICulture] <cultureinfo[]>] [-FullyQualifiedModule
     <ModuleSpecification[]>] [-Recurse] [-Credential <pscredential>] [-UseDefaultCredentials] [-Force] [-Scope {Curren
    tUser | AllUsers}] [-WhatIf] [-Confirm] [<CommonParameters>]

    Update-Help [[-Module] <string[]>] [[-UICulture] <cultureinfo[]>] [-FullyQualifiedModule <ModuleSpecification[]>] [
    -LiteralPath <string[]>] [-Recurse] [-Credential <pscredential>] [-UseDefaultCredentials] [-Force] [-Scope {Current
    User | AllUsers}] [-WhatIf] [-Confirm] [<CommonParameters>]


ALIASES
    None


REMARKS
    Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help.
        -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
        -- To view the Help topic for this cmdlet online, type: "Get-Help Update-Help -Online" or
           go to https://go.microsoft.com/fwlink/?LinkID=2096805.

→コマンドの説明がなく、コマンドの入力形式しか表示されません。有益なのは、最後の行のURL

-

ブラウザでURLを確認:

抜粋:

PowerShell ヘルプ トピックのローカル コピーは、コマンドの最初のヘルプが要求されたときに、 「Update-Help」の実行に「Y」と応答すると、自動で「Update-Help」コマンドレットによって更新されます。

ヘルプ コンテンツは不定期で更新されるため、 定期的に、管理者として昇格された PowerShell で「Update-Help」コマンドレットを実行して、 ヘルプ トピックの更新を行うのがオススメです。

-

4). ヘルプファイルの更新:

PS C:\Users\user> Update-Help

→いくつかのモジュールのダウンロードが進んで、下記が表示されて終了しました。

Update-Help: Failed to update Help for the module(s) 'ConfigDefenderPerformance, DefenderPerformance, Dism, Get-NetView, Kds, NetQos, PcsvDevice, Pester, PKI, Whea, WindowsUpdate' with UI culture(s) {ja-JP} : One or more errors occurred. (Response status code does not indicate success: 404 (The specified blob does not exist.).).
English-US help content is available and can be installed using: Update-Help -UICulture en-US.

→ヘルプの更新に対応していないモジュールもあるらしく、 何個かが失敗するのはよくあることみたい。

-

5). ヘルプを使ってみる:

PS C:\Users\user> ls -?

もしくは、

PS C:\Users\user> Get-Help Get-ChildItem
NAME
    Get-ChildItem

SYNOPSIS
    Gets the items and child items in one or more specified locations.


SYNTAX
    Get-ChildItem [[-Filter] <System.String>] [-Attributes {Archive | Compressed | Device | Directory | Encrypted | Hid
    den | IntegrityStream | Normal | NoScrubData | NotContentIndexed | Offline | ReadOnly | ReparsePoint | SparseFile |
     System | Temporary}] [-CodeSigningCert] [-Depth <System.UInt32>] [-Directory] [-DnsName <Microsoft.PowerShell.Comm
    ands.DnsNameRepresentation>] [-DocumentEncryptionCert] [-Eku <System.String>] [-Exclude <System.String[]>] [-Expiri
    ngInDays <System.Int32>] [-File] [-FollowSymlink] [-Force] [-Hidden] [-Include <System.String[]>] -LiteralPath <Sys
    tem.String[]> [-Name] [-ReadOnly] [-Recurse] [-SSLServerAuthentication] [-System] [<CommonParameters>]

    Get-ChildItem [[-Path] <System.String[]>] [[-Filter] <System.String>] [-Attributes {Archive | Compressed | Device |
     Directory | Encrypted | Hidden | IntegrityStream | Normal | NoScrubData | NotContentIndexed | Offline | ReadOnly |
     ReparsePoint | SparseFile | System | Temporary}] [-CodeSigningCert] [-Depth <System.UInt32>] [-Directory] [-DnsNam
    e <Microsoft.PowerShell.Commands.DnsNameRepresentation>] [-DocumentEncryptionCert] [-Eku <System.String>] [-Exclude
     <System.String[]>] [-ExpiringInDays <System.Int32>] [-File] [-FollowSymlink] [-Force] [-Hidden] [-Include <System.
    String[]>] [-Name] [-ReadOnly] [-Recurse] [-SSLServerAuthentication] [-System] [<CommonParameters>]


DESCRIPTION
    The `Get-ChildItem` cmdlet gets the items in one or more specified locations. If the item is a container, it gets t
    he items inside the container, known as child items. You can use the Recurse parameter to get items in all child co
    ntainers and use the Depth parameter to limit the number of levels to recurse.

    `Get-ChildItem` doesn't display empty directories. When a `Get-ChildItem` command includes the Depth or Recurse par
    ameters, empty directories aren't included in the output.

    Locations are exposed to `Get-ChildItem` by PowerShell providers. A location can be a file system directory, regist
    ry hive, or a certificate store. Some parameters are only available for a specific provider. For more information,
    see about_Providers (../Microsoft.PowerShell.Core/About/about_Providers.md).


RELATED LINKS
    Online Version: https://learn.microsoft.com/powershell/module/microsoft.powershell.management/get-childitem?view=po
    wershell-7.3&WT.mc_id=ps-gethelp
    about_Certificate_Provider
    about_Providers
    about_Quoting_Rules
    about_Registry_Provider
    ForEach-Object
    Get-Alias
    Get-Item
    Get-Location
    Get-Process
    Get-PSProvider
    Split-Path

REMARKS
    To see the examples, type: "Get-Help Get-ChildItem -Examples"
    For more information, type: "Get-Help Get-ChildItem -Detailed"
    For technical information, type: "Get-Help Get-ChildItem -Full"
    For online help, type: "Get-Help Get-ChildItem -Online"

→ヘルプが更新されました。

-

6).「PowerShell 7」の終了:

PS C:\Users\user> exit

→プロンプトは変わりませんが、ウィンドウのタブが「管理者:Windows PowerShell」の表示に変わりました。

Windows PowerShell」に戻りました。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- --

5-6.「Windows」の「PowerShell」で、シェルスクリプトを使う場合:

-

1). 「PowerShell」のバッチファイル(シェルスクリプト)には、「.bat」ではなく、「.ps1」の拡張子が使われます。

-

2). 「Windows」での、シェルスクリプトの例:

-

(1). 作成:

「Notepad++」エディタを起動し、新規ファイルを作成:

↓ 貼付け:

$string = “Hello World!”
Write-Host $string

→「Write-Host」は、「echo」に該当するコマンドレットです。

-

ファイル →名前を付けて保存

「デスクトップ」フォルダに「test.ps1」のファイル名で保存

-

つまり、下記のファイルが作成できました:

C:\Users\user\Desktop\test.ps1
(2). 実行:

「.ps1」ファイル(バッチファイル、シェルスクリプト)を読み込んで実行させる場合は、「-f」オプションを使います:

PS C:\Users\user> pwsh -f Desktop\test.ps1
:
Hello World!

-

3). シェルスクリプト中に記述する場合:

例:

pwsh -NoProfile -ExecutionPolicy Unrestricted C:\Users\user\Desktop\test.ps1

→ファイルは絶対パスで指定します。

スクリプトを実行できるようにポリシーを変更しています。
「-ExecutionPolicy Unrestricted」(無制限)

-

(1). 作成:

「Notepad++」エディタを起動し、新規ファイルを作成:

↓ 貼付け:

pwsh -NoProfile -ExecutionPolicy Unrestricted C:\Users\user\Desktop\test.ps1

-

ファイル →名前を付けて保存

「デスクトップ」フォルダに「test2.ps1」のファイル名で保存

-

つまり、下記のファイルが作成できました:

C:\Users\user\Desktop\test2.ps1
(2). 実行:
PS C:\Users\user> pwsh -f Desktop\test2.ps1
:
Hello World!

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ---

6. 参考: 開発環境の「Windows PowerShell ISE」について:

-

「ISE」は、「Integrated Scripting Environment」の略で、「統合スクリプト環境」の、開発用のデバッグ環境です。

-

参考:

Windows PowerShell ISE

開発環境 ISE を使用する

-

1). 「ISE」は、「Windows PowerShell V5.1」までのバージョンで使えます:

→「Windows」のみで使える開発環境です。

-

2). マルチプラットフォーム版の「PowerShell 7」ではサポートされていません:

-

3). 「PowerShell 7」では、「Visual Studio Code」と、「PowerShell 拡張機能 」が使われています

(ひとつの選択肢)

-


4). 操作:

-

(1). 起動:

3つのやり方:

-

(2). 起動された画面:

左側の青部分が「PowerShell」のターミナル画面です。
右側が「コマンドレット」のヘルプが表示。
スクリプトの作成では、左上に編集画面が開きます。

-

(3). 「Windows PowerShell」を使って、最初に不便に感じたこと:

Windows PowerShell」の画面では、コマンドを貼り付けたいとき、右クリックで、コピーや貼り付けのメニューが表示されません。(ちなみに、トラックパッドの右クリックだと、貼り付けの機能が働きます)

「ISE」の画面では、右クリックすると、コピーや貼り付けのメニューが表示されました。

Windows PowerShell」にて、CUI で使えるエディタは無いようです。「ISE」を使うと、外部のエディタからの貼り付けがしやすくなります。

-

(4). その他の操作の補足:

-

複数行の編集:

[コマンド] ペインで現在の行の下に空白行を挿入するには、Shift+Enter キーを押します。

-

選択して実行:

スクリプトの一部を実行するには、実行するテキストを選択して、
[スクリプトの実行] ボタンをクリックするか、F5 キーを押します。

-

状況依存ヘルプ:

Invoke-Item」と入力してから、F1 キーを押します。
ヘルプ ファイルが開き、「Invoke-Item」コマンドレットの記事が表示されます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----

7. 「コマンドプロンプト」の画面について:

-

Windows PowerShell」が使われる前から、「Windows」に存在していた、CUI のターミナル環境です。

コマンドは、MS-DOS のコマンドに近く、以前に使っていたバッチファイルが実行できるかも。ただし、それに必要なコマンドがインストールされているかはわかりません。

-

1). 起動:

-

2). 使用例:

C:\Users\user > dir /?

→「dir」コマンド(ls の機能)のヘルプが表示されます。

-

3). 「PowerShell 7」をインストールすると、「Windows ターミナル」で表示され、使い勝手が良くなります:

-

(1). 「コマンドプロンプト」を起動した時、デフォルトでは単なる ターミナル画面です。

-

(2). 「PowerShell 7」をインストールすると、「PowerShell」で使われる、タブ付きの画面に変化します。

-

(3). 最初の「タブ」で「コマンドプロンプト」は表示されており、タブの「+」をクリックすると、新しい「タブ」で「Windows PowerShell 5.1」が開きます。

-

(4). ショートカットキーのガイドを表示:

ターミナルの「タイトルバー」で右クリック →「設定」→「設定」タブが開きます:

左の「操作」をクリック →ショートカットキーの説明を表示

-

(5). ショートカットキーでタブの切り替えができます:

Ctrl + Alt + 1: 「コマンドプロンプト

-

Ctrl + Alt + 2: 「Windows PowerShell 5.1」

-

Ctrl + Alt + 3: 「Windows PowerShell 5.1」

-

(6). 「Windows ターミナル」では、Ctrl+C と、Ctrl + V が使え、便利です。

範囲指定してから、Ctrl+C とすると、Ctrl + V で貼り付けできます。

-

4). 「Windows ターミナル」の「設定」タブにて、各シェルが定義されていました:

→ちなみに、「%SystemRoot%」は通常「C:\Windows」です。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -----

8. Linux (Ubuntu) に「PowerShell 7」をインストール:

-

参考:

Ubuntu への PowerShell のインストール

-

Ubuntu 22.04 の場合のパッケージ:

https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb

→ダウンロードは下記の手順の「項番 (3).」で行っています。

-

1). インストール:

-

(1). パッケージのリストを更新:
$ sudo apt update

-

(2). 前提条件のパッケージをインストール:
$ sudo apt install -y wget apt-transport-https software-properties-common

-

(3). Microsoft リポジトリの GPG キーをダウンロード:
$ wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"

-

参考:

$ lsb_release -rs
22.04

-

(4). Microsoft リポジトリの GPG キーを登録:
$ sudo dpkg -i packages-microsoft-prod.deb
(5). packages.microsoft.com を追加した後、パッケージの一覧を更新:
$ sudo apt update

-

(6). 「PowerShell」のインストール:
$ sudo apt install -y powershell

-

2). 「PowerShell」の起動:

パッケージがインストールされたら、ターミナルから「pwsh」を実行:

$ pwsh

-

3). 「PowerShell」を更新する場合:

$ sudo apt install powershell

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- -

8-1.「Linux」の「PowerShell」で、シェルスクリプトを使う場合:

-

1).「PowerShell」にシェルを変更するときは、「pwsh」コマンドを使います:

$ su -
# pwsh
:
PowerShell 7.2.0
Copyright (c) Microsoft Corporation.

https://aka.ms/powershell
Type 'help' to get help.

PS /root> 

-

バージョンの確認:

PS /root> $PSVersionTable
:
Name                           Value
----                           -----
PSVersion                      7.2.0
PSEdition                      Core
GitCommitId                    7.2.0
OS                             Linux 3.10.0-957.48.1.el7.x86_64 #1 SMP Fri Mar 6 14:14:26 EST 2020
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

→「7.2」です。

-

2). シェルを変更せず、直接コマンドを実行するときは、「-c」オプションを使います:

日時の表示:

# pwsh -c "Get-Date"
2021年11月21日日曜日 15:29:19

-

3). 「.ps1」ファイル(バッチファイル、シェルスクリプト)を読み込んで実行させる場合は、「-f」オプションを使います:

「.ps1」ファイルの確認:

# cat test.ps1
Get-Date

-

「.ps1」ファイルの実行:

# pwsh -f test.ps1
:
2021年11月21日日曜日 15:31:37

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- --

9. 追記:「ls」(Get-ChildItem) コマンドのヘルプ:

-

1).「ls」コマンドのヘルプ表示:

PS C:\Users\user> ls -?

もしくは、

PS C:\Users\user> get-help Get-ChildItem

-

名前
    Get-ChildItem

概要
    Gets the items and child items in one or more specified locations.


構文
    Get-ChildItem [[-Filter] <System.String>] [-Attributes {Archive | Compressed | Device | Directory | Encrypted | Hid
    den | IntegrityStream | Normal | NoScrubData | NotContentIndexed | Offline | ReadOnly | ReparsePoint | SparseFile |
     System | Temporary}] [-Depth <System.UInt32>] [-Directory] [-Exclude <System.String[]>] [-File] [-Force] [-Hidden]
     [-Include <System.String[]>] -LiteralPath <System.String[]> [-Name] [-ReadOnly] [-Recurse] [-System] [-UseTransact
    ion] [<CommonParameters>]

    Get-ChildItem [[-Path] <System.String[]>] [[-Filter] <System.String>] [-Attributes {Archive | Compressed | Device |
     Directory | Encrypted | Hidden | IntegrityStream | Normal | NoScrubData | NotContentIndexed | Offline | ReadOnly |
     ReparsePoint | SparseFile | System | Temporary}] [-Depth <System.UInt32>] [-Directory] [-Exclude <System.String[]>
    ] [-File] [-Force] [-Hidden] [-Include <System.String[]>] [-Name] [-ReadOnly] [-Recurse] [-System] [-UseTransaction
    ] [<CommonParameters>]


説明
    The `Get-ChildItem` cmdlet gets the items in one or more specified locations. If the item is a container, it gets t
    he items inside the container, known as child items. You can use the Recurse parameter to get items in all child co
    ntainers and use the Depth parameter to limit the number of levels to recurse.

    `Get-ChildItem` doesn't display empty directories. When a `Get-ChildItem` command includes the Depth or Recurse par
    ameters, empty directories aren't included in the output.

    Locations are exposed to `Get-ChildItem` by PowerShell providers. A location can be a file system directory, regist
    ry hive, or a certificate store. For more information, see about_Providers (../Microsoft.PowerShell.Core/About/abou
    t_Providers.md).


関連するリンク
    Online Version: https://learn.microsoft.com/powershell/module/microsoft.powershell.management/get-childitem?view=po
    wershell-5.1&WT.mc_id=ps-gethelp
    about_Certificate_Provider
    about_Providers
    about_Quoting_Rules
    about_Registry_Provider
    ForEach-Object
    Get-Alias
    Get-Item
    Get-Location
    Get-Process
    Get-PSProvider
    Split-Path

注釈
    例を参照するには、次のように入力してください: "get-help Get-ChildItem -examples".
    詳細を参照するには、次のように入力してください: "get-help Get-ChildItem -detailed".
    技術情報を参照するには、次のように入力してください: "get-help Get-ChildItem -full".
    オンライン ヘルプを参照するには、次のように入力してください: "get-help Get-ChildItem -online"

-


2).「ls」コマンドの「使用例」を表示:

PS C:\Users\user> get-help Get-ChildItem -examples
名前
    Get-ChildItem

概要
    Gets the items and child items in one or more specified locations.

-

例 1: ディレクトリ、を表示:
    --- Example 1: Get child items from a file system directory ---

    Get-ChildItem -Path C:\Test

    Directory: C:\Test

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----        2/15/2019     08:29                Logs
    -a----        2/13/2019     08:55             26 anotherfile.txt
    -a----        2/12/2019     15:40         118014 Command.txt
    -a----         2/1/2019     08:43            183 CreateTestFile.ps1
    -ar---        2/12/2019     14:31             27 ReadOnlyFile.txt

    By default `Get-ChildItem` lists the mode ( Attributes ), LastWriteTime , file size ( Length ), and the Name of the
     item. The letters in the Mode property can be interpreted as follows:

    - `l` (link)

    - `d` (directory)

    - `a` (archive)

    - `r` (read-only)

    - `h` (hidden)

    - `s` (system).


    For more information about the mode flags, see about_Filesystem_Provider (../microsoft.powershell.core/about/about_
    filesystem_provider.md#attributes-flagsexpression).

→モード フラグの詳細は、「../microsoft.powershell.core/about/about_filesystem_provider.md#attributes-flagsexpression」

-

例 2: ディレクトリ表示で、そのうちの「名前」項目を表示:
    -------- Example 2: Get child item names in a directory --------

    Get-ChildItem -Path C:\Test -Name

    Logs
    anotherfile.txt
    Command.txt
    CreateTestFile.ps1
    ReadOnlyFile.txt

-

例 3: 現在のディレクトリとそのサブディレクトリ、を表示:
    Example 3: Get child items in the current directory and subdirectories

    Get-ChildItem -Path C:\Test\*.txt -Recurse -Force

    Directory: C:\Test\Logs\Adirectory

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    -a----        2/12/2019     16:16             20 Afile4.txt
    -a-h--        2/12/2019     15:52             22 hiddenfile.txt
    -a----        2/13/2019     13:26             20 LogFile4.txt

        Directory: C:\Test\Logs\Backup

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    -a----        2/12/2019     16:16             20 ATextFile.txt
    -a----        2/12/2019     15:50             20 LogFile3.txt

        Directory: C:\Test\Logs

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    -a----        2/12/2019     16:16             20 Afile.txt
    -a-h--        2/12/2019     15:52             22 hiddenfile.txt
    -a----        2/13/2019     13:26             20 LogFile1.txt

        Directory: C:\Test

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    -a----        2/13/2019     08:55             26 anotherfile.txt
    -a----        2/12/2019     15:40         118014 Command.txt
    -a-h--        2/12/2019     15:52             22 hiddenfile.txt
    -ar---        2/12/2019     14:31             27 ReadOnlyFile.txt

    The `Get-ChildItem` cmdlet uses the Path parameter to specify `C:\Test\ .txt`. Path * uses the asterisk (` `) wildc
    ard to specify all files with the filename extension `.txt`. The Recurse * parameter searches the Path directory it
    s subdirectories, as shown in the Directory: headings. The Force parameter displays hidden files such as `hiddenfil
    e.txt` that have a mode of h .

-

例 4: Include パラメータを使用して、子アイテムを表示:
    ---- Example 4: Get child items using the Include parameter ----

    # When using the -Include parameter, if you don't include an asterisk in the path
    # the command returns no output.
    Get-ChildItem -Path C:\Test\ -Include *.txt



    Get-ChildItem -Path C:\Test\* -Include *.txt

    Directory: C:\Test

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    -a----        2/13/2019     08:55             26 anotherfile.txt
    -a----        2/12/2019     15:40         118014 Command.txt
    -ar---        2/12/2019     14:31             27 ReadOnlyFile.txt

    The `Get-ChildItem` cmdlet uses the Path parameter to specify the directory C:\Test . The Path parameter includes a
     trailing asterisk (`*`) wildcard to specify the directory's contents. The Include parameter uses an asterisk (`*`)
     wildcard to specify all files with the file name extension .txt .

    When the Include parameter is used, the Path parameter needs a trailing asterisk (`*`) wildcard to specify the dire
    ctory's contents. For example, `-Path C:\Test*`.

    - If the Recurse parameter is added to the command, the trailing asterisk (` `) in the Path *   parameter is option
    al. The Recurse parameter gets items from the Path directory and its   subdirectories. For example, `-Path C:\Test\
     -Recurse -Include *.txt` - If a trailing asterisk (` `) isn't included in the Path * parameter, the command doesn'
    t return   any output and returns to the PowerShell prompt. For example, `-Path C:\Test`.

→「-Include」パラメータは、アスタリスク (*) ワイルドカードを使用して、ファイル名拡張子 .txt を持つすべてのファイルを指定します。なので、「-Include」パラメータを使用する場合、パスにアスタリスクを含めないと、コマンドは出力を返しません。

-

例 5: Exclude パラメータを使用して、子アイテムを表示:
    ---- Example 5: Get child items using the Exclude parameter ----

    Get-ChildItem -Path C:\Test\Logs

    Directory: C:\Test\Logs

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----        2/15/2019     13:21                Adirectory
    d-----        2/15/2019     08:28                AnEmptyDirectory
    d-----        2/15/2019     13:21                Backup
    -a----        2/12/2019     16:16             20 Afile.txt
    -a----        2/13/2019     13:26             20 LogFile1.txt
    -a----        2/12/2019     16:24             23 systemlog1.log

    Get-ChildItem -Path C:\Test\Logs\* -Exclude A*

    Directory: C:\Test\Logs

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----        2/15/2019     13:21                Backup
    -a----        2/13/2019     13:26             20 LogFile1.txt
    -a----        2/12/2019     16:24             23 systemlog1.log

    The `Get-ChildItem` cmdlet uses the Path parameter to specify the directory `C:\Test\Logs`. The Exclude parameter u
    ses the asterisk (`*`) wildcard to specify any files or directories that begin with A or a are excluded from the ou
    tput.

    When the Exclude parameter is used, a trailing asterisk (` `) in the Path * parameter is optional. For example, `-P
    ath C:\Test\Logs` or `-Path C:\Test\Logs*`.

    - If a trailing asterisk (` `) isn't included in the Path * parameter, the contents of the Path parameter are displ
    ayed. The exceptions are filenames or subdirectory names that match   the Exclude parameter's value. - If a trailin
    g asterisk (` `) is included in the Path * parameter, the command recurses into the Path parameter's subdirectories
    . The exceptions are filenames or subdirectory names that match   the Exclude parameter's value. - If the Recurse p
    arameter is added to the command, the recursion output is the same whether or   not the Path parameter includes a t
    railing asterisk (`*`).

→「-Exclude」パラメータは、アスタリスク (*) ワイルドカードを使用して、A または a で始まるすべてのファイルまたはディレクトリを除外して表示します。

-

例 6: レジストリから「レジストリ キー」を表示:
    ---- Example 6: Get the registry keys from a registry hive ----

    Get-ChildItem -Path HKLM:\HARDWARE

    Hive: HKEY_LOCAL_MACHINE\HARDWARE

    Name             Property
    ----             --------
    ACPI
    DESCRIPTION
    DEVICEMAP
    RESOURCEMAP
    UEFI

    Get-ChildItem -Path HKLM:\HARDWARE -Exclude D*

    Hive: HKEY_LOCAL_MACHINE\HARDWARE

    Name                           Property
    ----                           --------
    ACPI
    RESOURCEMAP

    The first command shows the contents of the `HKLM:\HARDWARE` registry key. The Exclude parameter tells `Get-ChildIt
    em` not to return any subkeys that start with `D `. Currently, the Exclude * parameter only works on subkeys, not i
    tem properties.

-

例 7:コード署名機関ですべての証明書を表示:
    - Example 7: Get all certificates with code-signing authority -

    Get-ChildItem -Path Cert:\* -Recurse -CodeSigningCert

    For more information about the Certificate provider and the Cert: drive, see about_Certificate_Provider (../Microso
    ft.PowerShell.Security/About/about_Certificate_Provider.md).

-

例 8: Depth パラメータを使用して、アイテムを表示:
    -------- Example 8: Get items using the Depth parameter --------

    Get-ChildItem -Path C:\Parent -Depth 2

    Directory: C:\Parent

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----        2/14/2019     10:24                SubDir_Level1
    -a----        2/13/2019     08:55             26 file.txt

        Directory: C:\Parent\SubDir_Level1

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----        2/14/2019     10:24                SubDir_Level2
    -a----        2/13/2019     08:55             26 file.txt

        Directory: C:\Parent\SubDir_Level1\SubDir_Level2

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----        2/14/2019     10:22                SubDir_Level3
    -a----        2/13/2019     08:55             26 file.txt

    The `Get-ChildItem` cmdlet uses the Path parameter to specify C:\Parent . The Depth parameter specifies two levels
    of recursion. `Get-ChildItem` displays the contents of the directory specified by the Path parameter and the two le
    vels of subdirectories.

→「-Depth」パラメータは、表示する再帰のレベルを指定します。

-

例 9: ジャンクション ポイントのリンク ターゲットを表示:
    ----- Example 9 - Get the link target for a junction point -----

    PS D:\> New-Item -ItemType Junction -Name tmp -Target $env:TEMP
    PS D:\> Get-ChildItem | select name,*target

    Name     Target
    ----     ------
    tmp      {C:\Users\user1\AppData\Local\Temp}

-

-


まとめ

「Windows11」で、「PowerShell」(Windowsスクリプト実行環境)について学んでみました。

-

今さらの CUI コマンドですが、GUI 操作メインの「Windows」システム関連で、その運用の効率化には「スクリプトで自動化出来る」ことが必須みたい。

-

次回は、いよいよ「Windows11」で「Linux」にトライしますが、 「PowerShell」について知っておくと、「WSL2」を扱うときに役に立つと思います。

-

-

-


-

-

    目次

-

「投稿の先頭 へ」

-