Ubuntu系统文件或文件夹损坏导致ls命令无响应解决方法
昨天让某人自行探索设置PATH环境变量,今天告诉我账号异常,具体表现是bitwise登录后sftp栏无法显示文件。做一些不懂原理的操作,接着出现自己无法解决的奇怪问题,这是linux新手常见的问题。我打心底里认为应该是环境变量导致,问题应该手到擒来。
于是用其账号密码登录系统,习惯性的敲了ll命令,没想到竟然卡住了!按ctrl+c kill掉命令,接着尝试ls,发现同样卡住。这个现象让我很吃惊,不仅仅是因为之前没碰到过,更因为其home目录下文件很少,不应该出现卡住的问题。
好消息是问题原因找到了:ls命令有问题,所以sftp不能列出文件。但ls为什么会卡住呢?
type ls
查看ls的具体定义,输出:ls is aliased tols -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跟踪系统调用,能很快定位到具体出问题的文件。
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包