2014-01-16 5 views
0

Я ошибся ls, набрав sl вместо этого, вместо того чтобы предупредить меня, что sl не установлен, поскольку он используется для получения следующего кода на Python. Почему bash запускает код python при вводе sl?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 часто шалость установлены на системах, делает Локомотивная привод Паровой через экран; он обычно живет в /usr/games на Linux boxen. Однако это обычно скомпилированный двоичный код, а не сценарий Python. Как было предложено в комментариях, which sl расскажет вам, где находится скрипт sl, который вы случайно включили, и file $(which sl) расскажет вам, какой файл он есть.

Возможно, это вредоносная программа, которая пытается нанести вред вашей системе, когда вы опечатаете ls, как вы, по-видимому, сделали; если это правда, хорошо, что он разбился (или, по-видимому, сделал это). В любом случае, я бы внимательно прочитал сценарий, чтобы посмотреть, что он делает.

+0

Я использовал сообщение bash, в котором говорилось: «sl» не установлен в вашей системе - для установки его типа «sudo apt-get install sl». Я беспокоюсь, что я установил пакет python как root, и он имеет каким-то образом угнал мой терминал bash – djvine

+0

Вот почему я предложил вам использовать 'какой sl', чтобы увидеть, где находится скрипт, и прочитать его, чтобы посмотреть, что он делает. – DopeGhoti

Смежные вопросы