2014-01-16 45 views
0

我輸入錯誤ls而不是打印sl,而不是警告我,sl沒有安裝,因爲它用於我現在得到下面的Python代碼。爲什麼當我輸入sl時,bash運行python代碼?Bash終端試圖運行python代碼 - 爲什麼?

$ sl 
Fatal Python error: Py_Initialize: Unable to get the locale encoding 
    File "/usr/lib/python2.7/encodings/__init__.py", line 123 
    raise CodecRegistryError,\ 
          ^
SyntaxError: invalid syntax 
Aborted (core dumped) 
+2

'哪個sl輸出? – Kent

+1

你在那個系統上檢查過你的別名嗎?您也可以運行'which sl'並查看它的安裝位置。它是從每個目錄發生還是從屏幕截圖中顯示的目錄發生? –

+3

您的終端顯示*文本*,OS X終端可讓您複製該文本並將其粘貼到您的問題中,無任何問題。 –

回答

1
sl

經常是安裝在系統中的惡作劇,使整個屏幕上的汽機車驅動;它通常位於Linux boxen上的/usr/games。但是,它通常是編譯的二進制文件而不是Python腳本。正如評論中所建議的那樣,which sl會告訴您無意中運行的sl腳本所在的位置,並且file $(which sl)會告訴您它是什麼類型的文件。

它也可能是一個惡意程序,當您嘗試打字ls時嘗試對您的系統造成傷害,正如您顯然所做的那樣;如果這是真的,那麼它是一件好事(或者顯然是這樣)。無論哪種方式,我都會仔細閱讀腳本以查看它的功能。

+0

我曾經得到一個bash消息,說''sl'沒有安裝在你的系統上 - 安裝時輸入'sudo apt-get install sl'。我擔心我安裝了一個python包作爲root用戶,它有以某種方式劫持我的bash終端 – djvine

+0

這就是爲什麼我建議你使用'哪個sl'來查看腳本的位置,並閱讀它看看它是什麼。 – DopeGhoti