Windows에서 Cmder를 사용할 때 쉘은 정확히 무엇입니까?

Windows에서 Cmder를 사용할 때 쉘은 정확히 무엇입니까?

저는 방금 Windows 7에서 Cmder를 사용하기 시작했으며 이것이 cmd를 사용하는 것보다 더 나은 경험을 제공하는 Windows용 콘솔 에뮬레이터라는 것을 알고 있습니다. 그러나 내가 이해하는 바에 따르면 에뮬레이터는 사용자 명령을 OS에 전달하기 위해 셸을 실행해야 합니다. 그렇다면 Windows에서 여기서 셸은 무엇입니까? CMD는 Windows의 기본 셸인가요?

이러한 도구가 어떻게 연결되어 있는지 이해해 주시면 감사하겠습니다.

답변1

Windows에는 Cmd.exe와 PowerShell 5라는 두 가지 명령줄 셸이 내장되어 있습니다. (Windows GUI는 실제로 어떤 의미에서 "셸"이지만명령쉘이며 질문에 적용되지 않습니다.)

Cmder는 기본적으로 Cmd.exe를 사용하지만무겁게사용자 정의 – 표시되는 실제 대화형 프롬프트는 일반적인 Cmd.exe 프롬프트가 아닙니다. 이는 clinkCmd 프로세스에 주입되는 ConEmu에 의해 표시됩니다 . (전체 "Cmder" 창은 실제로콘에뮤.)

따라서 기술적으로 모든 명령은 여전히 ​​Cmd를 통해 실행되지만 탭 완성 및 Readline과 유사한 키 바인딩과 같은 고급 기능을 제공하는 것은 삽입된 Clink 라이브러리입니다.

그러나 Cmd.exe 외에도 다음을 실행할 수 있습니다.다른 껍질PowerShell 또는 Bash와 같은 Cmder에서(Windows의 일부는 아니지만 Linux에서는 표준이며 Windows용 Git과 함께 설치되는 경우가 많습니다).

그러나 내가 이해하는 바에 따르면 에뮬레이터는 사용자 명령을 OS에 전달하기 위해 셸을 실행해야 합니다.

어떤 의미에서는 그렇습니다. 단지 명령을 "실행"하는 데 쉘이 필요한 것은 아니지만(모든 프로세스는 언제든지 모든 .exe 파일을 시작할 수 있습니다. 이것이 처음에 쉘을 생성하는 방법입니다). 오히려 그들의 직업은해석하다명령 – if/for/while 루프, %variable% 확장 등과 같은 기능을 제공합니다. 그러나 그 외에도 다른 프로그램이 제공하지 않는 OS 기능에 대한 특별한 액세스 권한이 없습니다. 1

(이론적으로 터미널은~할 수 있었다자체 프롬프트를 표시하고 자체 명령 언어를 구현하지만 대부분의 사람들이 Bash 구문에 익숙하기 때문에 거의 수행되지 않습니다.)


1 (이는 Windows 및 모든 Unix 계열 시스템에 적용되지만 반드시 그런 것은 아닙니다.모두운영체제. 예를 들어 OpenVMS의 DCL 명령 셸은 당시 많은 운영 체제의 경우처럼 실제로 일반 프로그램보다 더 많은 권한을 갖고 있습니다. 셸이 완전히 정상적이고 교체 가능한 도구인 전통을 깨뜨린 것은 Unix일 가능성이 높습니다.

관련 정보