昨天让某人自行探索设置PATH环境变量,今天告诉我账号异常,具体表现是bitwise登录后sftp栏无法显示文件。做一些不懂原理的操作,接着出现自己无法解决的奇怪问题,这是linux新手常见的问题。我打心底里认为应该是环境变量导致,问题应该手到擒来。
于是用其账号密码登录系统,习惯性的敲了ll
命令,没想到竟然卡住了!按ctrl+c
kill掉命令,接着尝试ls
,发现同样卡住。这个现象让我很吃惊,不仅仅是因为之前没碰到过,更因为其home目录下文件很少,不应该出现卡住的问题。
好消息是问题原因找到了:ls
命令有问题,所以sftp不能列出文件。但ls
为什么会卡住呢?
type ls
查看ls
的具体定义,输出:ls is aliased to
ls -hF –color=tty’。接着看
ls的具体路径:
which ls,结果为
/bin/ls`。两者都没毛病,怎么突然之间就不干活了?
尝试执行原生ls
:/bin/ls
,正常显示结果;加上-l
选项:/bin/ls -l
,同样卡死了。根据别名ls
和ll
的具体形式,得出结论为:-F
选项导致命令卡死。-F
用来显示文件的真实身份,所以ls
卡死的原因应该是某个文件或文件夹损坏了。
因其一直用gnome桌面环境,之前也出现gnome下显示问题,通过重装软件包并重启解决。这次的现象应该也是某个进程出了问题,用root用户将其进程kill掉估计就可以了:ps aux | grep username | grep -v | awk '{print $2}' | xargs -n1 kill -9
。
再次用其账号密码登录,问题解决。
本次解决问题简单粗暴,想要找到出问题的文件建议用strace
命令。strace
跟踪系统调用,能很快定位到具体出问题的文件。
发表回复