1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

窓辺の小石 第168回 コマンドラインは行方不明

マイナビニュース / 2024年5月31日 23時55分

この機能を有効化すると、コマンドが見つからない場合に、エラーメッセージに続いて、WinGetを使ったコマンドインストールの提案が行われる。ただし、提案はあくまでもコマンド名でのみ行われるため、必ずしも正解とは限らない。また、Wingetのパッケージを前提にしているため、Microsoftストアの一部と、Wingetリポジトリに登録されているパッケージに限られる。

PowerShellに限らず、一般にシェルは、Path変数など、実行ファイルへのパスが定義されていないとコマンドを見つけることができない。このため、インストールされていてスタートメニューから起動可能でも、Path変数にパスが設定されていないコマンドは、Command not foundエラーになることに注意されたい。

PowerShellの実行中にF2キーを使って、予測IntelliSenseのListViewを有効にしておくと、コマンドの補完候補に、Command-Not-Foundの提案が含まれるようになる。たとえば、エラーのためwingetコマンドが提案されたあと、コマンドラインにwinと入力すれば、提案されたwingetコマンドが補完候補として表示される(写真01)。ここでは上下カーソルキーを使ってコマンドの選択ができる。この機能により、エラーの直後にコマンドラインの補完機能でインストールのためのwingetコマンドを起動できる。

なお、PowerShell v7.4のCommand-Not-Foundは、GitHubでソースが公開されている。

実は、同名の機能がLinuxのbashにある。WSLにもあるUbuntuなどいくつかのディストリビューションでは、標準でこれが有効になっている。Command Not Foundエラーのとき、aptパッケージマネージャーのコマンドで提案を行う。この機能は、2010年前後、bash Ver.4あたりから導入されたと記憶する。

bashでは、command-not-found-handlerと呼ばれる関数を定義することで、コマンドが見つからないときのエラー処理を定義できる。現在のUbuntuには、標準でインストールされるcommand-not-foundというパッケージがあり、ここでこの関数を定義している。現在のUbuntuでは、このあたりの処理は、/etc/bash.bashrcの中に記述されている。

PowerShellのCommand-Not-Foundは、PSReadlineなどと同じく、Linux/bashの機能に「インスパイア」されたものなのである。

今回のタイトルネタは、1965年のモノクロ映画「バニー・レークは行方不明」(Bunny Lake Is Missing)である。ネタバレになるので中身については何も言わないが、主演女優のキャロル・リンレイ(Carol Lynley)は、のちに「ポセイドンアドベンチャー」(1972年。The Poseidon Adventure)で最後まで生き残る歌手役を演じた。1970年台、日本でも放映されていた米国のテレビドラマのゲストとしてときどき見かけた。映画「2001年宇宙の旅」(1968年。2001: A Space Odyssey)で、ディスカバリー号の船長を務めたキュア・デリア(Keir Dullea)も出演している。
(塩田紳二)



この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください