'ls'를 실행하면 왜 기차가 옵니까?

'ls'를 실행하면 왜 기차가 옵니까?

나는 최근에 별로 좋아하지 않는 이상한 점을 발견했습니다.

ls를 실행하면 기차가 옵니다.

그런데 왜 달리다가 기차를 타게 되는 걸까요 ls? 어떻게 하면 이것을 중지하고 정상적으로 작동하게 할 수 있습니까? 이것은 내가 발견한 이스터 에그인가요? 우분투 그놈 15.04를 실행 중입니다.

정보 업데이트:

달리는 것은 which ls나에게 같은 기차를 가져다 주고, 달리는 것은 ls -l $(which ls)나에게 다른 유형의 기차를 가져다 줍니다.

실행하면 command -v ls아무것도 출력되지 않습니다. 그리고 실행해도 command -v sl아무것도 출력되지 않습니다.

cow이것은 모두 내가 최근에 설치한 '조금 가벼운 것'을 약속하는 패키지(또는 이와 유사한 것) 와 관련이 있을 수 있습니다 .

답변1

  1. 다음을 통해 재미있는 패키지를 제거해 보세요.

    sudo apt-get purge sl 
    
  2. ls예를 들어 ~/.bashrc또는 에서 별칭을 확인하세요 ~/.profile.

  3. 바이너리를 확인 /usr/games/sl하고 삭제하세요.

    sudo rm /usr/games/sl
    
  4. 출력을 확인하십시오.

    strace sl |& grep execve
    strace ls |& grep execve
    

    포인트 3이 성공하지 못한 경우.

  5. 그리고 앞으로는 설명에 '조금 밝게'하겠다고 약속하는 어떤 것도 설치하지 마세요.;)

답변2

일반적으로 명령 실행의 해당 인스턴스에 대해서만 별칭을 비활성화하려면 명령 앞에 \를 추가할 수 있습니다. 예:

[2023]$ 별칭 ls
별칭 ls='ls -F -Chs --color=tty'
[2024]$ ls
총 140K
4.0K bin/ 0 다운로드@ 0 prog.git@
...

[2025]$ \ls
bin 다운로드 doc.git freertos.git prog.git tmp
...

따라서 앞에 '\'를 붙여서 ls를 시도해 보는 것이 좋습니다.

다음으로 전체 경로를 사용하여 ls 명령을 직접 실행해 볼 수 있습니다.

/bin/ls

다음으로 /bin/ls 명령을 실행하세요.

또한 경로를 확인하세요.

$PATH 에코
/bin이 첫 번째 항목인지 확인하세요.
$PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin:usr/local/sbin:/usr/local/bin

하지만 제거하는 것이 도움이 될 것이라고 믿습니다 cow.

관련 정보