質問: ほとんどすべてのコマンドが機能し、「apt_pkg」という名前のモジュールはありません 何をしたかわかりませんが、「ls」や「sudo」などの基本的なコマンドが機能しなくなり、このエラーメッセージが表示されます。file "/usr/lib/command-not-found", line 28, in <module> from commandnotfound import commandnotfound file "/usr/lib/python3/dist-packages/commandnotfound/commandnotfound.py", line 19, in <module> from commandnotfound.db.db import sqlitedatabase file "/usr/lib/python3/dist-packages/commandnotfound/db/db.py", line 5, in <module> import apt_pkg modulenotfounderror: no module named 'apt_pkg' error in sys.excepthook: traceback (most recent call last): file "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook from apport.fileutils import likely_packaged, get_recent_crashes file "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module> from apport.report import report file "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module> import apport.fileutils file "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module> from apport.packaging_impl import impl as packaging file "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 24, in <module> import apt file "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module> import apt_pkg modulenotfounderror: no module named 'apt_pkg' original exception was: traceback (most recent call last): file "/usr/lib/command-not-found", line 28, in <module> from commandnotfound import commandnotfound file "/usr/lib/python3/dist-packages/commandnotfound/commandnotfound.py", line 19, in <module> from commandnotfound.db.db import sqlitedatabase file "/usr/lib/python3/dist-packages/commandnotfound/db/db.py", line 5, in <module> import apt_pkg modulenotfounderror: no module named 'apt_pkg' 助けてください、私は泣いています、私には明日期限があります。ubuntuの新規インストールを実行するだけでファイルを保持する必要がありますか?
回答: opを使用してデバッグを行いました。 cd /binこれは機能したため、/ binが削除されていないことがわかった cd /bin; echo ls*これにより、「ls *」ではなく「ls lsblk lsmod」が生成されたため、/ binに少なくとも3つのファイルがあることがわかりました。 /bin/ls -l /bin/lsこれにより、「-rwxr-xr-x 1ルートルート133792 2018年1月18日/ bin/ls」が生成されたため、実行権限が削除されるという問題はありませんでした。 path=/bin:/usr/bin:$pathこれにより、コマンドを探すための正しいカップルが作成され、lsとsudoが再び機能するようになります。 結論:path変数が破損していたため、bashは何も検出できませんでした。組み込みコマンド(cdおよびecho)から始めて段階的にデバッグを行うと、これはすぐに診断されました。うまくいけば、opは涙を乾かして、再び笑顔になります。opは、「私の.bashrcへの非常にばかげた編集をいくつか削除し、すべてが問題ないようだ」とコメントしました。