Linux(WSL)のWindowsサブシステムの下のWindowsにUbuntu 18.04.4 LTSをインストールしました。 bashターミナルに存在しないコマンドを実行すると(たとえば、誤ってls
に余分なsを追加した場合)、次のエラーが発生します。
$ lss
-bash: /usr/bin/python: No such file or directory
エラーは正しい、私はpython3のみをインストールしています:
$ ls /usr/bin/python*
/usr/bin/python3 /usr/bin/python3-jsonpatch /usr/bin/python3-jsonschema /usr/bin/python3.6m
/usr/bin/python3-jsondiff /usr/bin/python3-jsonpointer /usr/bin/python3.6 /usr/bin/python3m
Ubuntuの以前の使用から、メッセージは「プログラム 'lss'は次のパッケージにあります:」であることを覚えています。このメッセージはもう必要ありません。動作させるためだけにpython2をインストールしたくありません。 ( この質問には、py2をインストールして問題を解決するための回答があります )。
Python2をインストールしたり、python 3 as 2として)したり、完璧になってタイプミスを起こしたりせずに、これを修正することはできますか?
理想的には、「コマンドが存在しない」スクリプトをpython3に移植するか、完全に無効にすることができます。
私がcommand_not_found_handle
関数( a bash機能 )を使用して、bashrcでpython
を直接呼び出しました。
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/bin/python /usr/lib/command-not-found -- $1
return $?
else
return 127
fi
}
fi
このコードは不要になりました(以前に使用したことはありますか?)、それを削除すると私の問題が修正されました。古い「出力は次のパッケージで見つかります」という出力が再び表示されるようになりました。
完全性のために:pythonコードとコマンドが存在しない単純な出力をスキップしたい場合は、これをbashrcに入れることができます:
function command_not_found_handle {
echo Command not found: $1
return 127
}