文章轉載自:Ubuntu的ls命令卡住linux
昨天讓某人自行探索設置PATH環境變量,今天告訴我帳號異常,具體表現是bitwise登陸後sftp欄沒法顯示文件。作一些不懂原理的操做,接着出現本身沒法解決的奇怪問題,這是linux新手常見的問題。我打心底裏認爲應該是環境變量致使,問題應該手到擒來。ubuntu
因而用其帳號密碼登陸系統,習慣性的敲了ll
命令,沒想到居然卡住了!按ctrl+c
kill掉命令,接着嘗試ls
,發現一樣卡住。這個現象讓我很吃驚,不單單是由於以前沒碰到過,更由於其home目錄下文件不多,不該該出現卡住的問題。code
好消息是問題緣由找到了:ls
命令有問題,因此sftp不能列出文件。但ls
爲何會卡住呢?進程
type ls
查看ls
的具體定義,輸出:ls is aliased to
ls -hF --color=tty'。接着看
ls的具體路徑:
which ls,結果爲
/bin/ls`。二者都沒毛病,怎麼忽然之間就不幹活了?get
嘗試執行原生ls
:/bin/ls
,正常顯示結果;加上-l
選項:/bin/ls -l
,一樣卡死了。根據別名ls
和ll
的具體形式,得出結論爲:-F
選項致使命令卡死。-F
用來顯示文件的真實身份,因此ls
卡死的緣由應該是某個文件或文件夾損壞了。it
因其一直用gnome桌面環境,以前也出現gnome下顯示問題,經過重裝軟件包並重啓解決。此次的現象應該也是某個進程出了問題,用root用戶將其進程kill掉估計就能夠了:ps aux | grep username | grep -v | awk '{print $2}' | xargs -n1 kill -9
。awk
再次用其帳號密碼登陸,問題解決。登錄
本次解決問題簡單粗暴,想要找到出問題的文件建議用strace
命令。strace
跟蹤系統調用,能很快定位到具體出問題的文件。變量