명령이 거의 작동하지 않으며 "apt_pkg"라는 모듈이 없습니다.

명령이 거의 작동하지 않으며 "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를 새로 설치하고 파일을 유지해야 합니까?

답변1

OP에서 일부 디버깅을 수행했습니다.

  1. cd /bin 작동하므로 /bin이 삭제되지 않았음을 알 수 있습니다.
  2. cd /bin; echo ls*그러면 "ls*" 대신 "ls lsblk lsmod"가 생성되므로 /bin에 최소 3개의 파일이 있음을 알 수 있습니다.
  3. /bin/ls -l /bin/ls이로 인해 "-rwxr-xr-x 1 root root 133792 Jan 18 2018 /bin/ls"가 생성되었으므로 실행 권한을 제거하는 것은 문제가 되지 않습니다.
  4. PATH=/bin:/usr/bin:$PATH이로 인해 명령을 찾을 수 있는 몇 가지 일반적인 위치가 생성되었으며 이제 다시 작동합니다 ls.sudo

결론: PATH변수가 손상되어 bash가 아무것도 찾을 수 없습니다. 이 문제는 cd내장 명령 (and)으로 시작하는 단계별 디버깅을 사용하여 신속하게 진단할 수 있습니다. echoOP가 눈물을 닦고 다시 웃기를 바랍니다.

OP는 "내 .bashrc에서 정말 어리석은 편집 내용을 제거했는데 모든 것이 괜찮은 것 같습니다"라고 언급했습니다.

관련 정보