一、问题
今天ssh登陆linux突然报错,如下
Sorry, command-not-found has crashed! Please file a bug report at:
https://bugs.launchpad.net/command-not-found/+filebug
Please include the following information with the report:
command-not-found version: 0.3
Python version: 3.4.3 final 0
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
Exception information:
'utf-8' codec can't encode character '\udcc0' in position 8: surrogates not allowed
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/CommandNotFound/util.py", line 24, in crash_guard
callback()
File "/usr/lib/command-not-found", line 90, in main
if not cnf.advise(args[0], options.ignore_installed) and not options.no_failure_msg:
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 265, in advise
packages = self.getPackages(command)
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 157, in getPackages
result.update([(pkg, db.component) for pkg in db.lookup(command)])
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 85, in lookup
result = self.db.lookup(command)
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 41, in lookup
key = key.encode('utf-8')
UnicodeEncodeError: 'utf-8' codec can't encode character '\udcc0' in position 8: surrogates not allowed
二,解决
原来是刚刚编辑了$HOME/.profile,然后这个文件被加密系统加密了,其他命令读这个文件是乱码的,所以报错。
申请解密或者复制个没有加密的.profile即可。