프로그래밍 언어, Linux 및 Windows 셸 액세스

프로그래밍 언어, Linux 및 Windows 셸 액세스

Linux와 Windows 셸 액세스 도구의 차이점은 무엇입니까?

일부 프로그래밍 언어(내 경험에 따른 웹 언어)에서는 일부 명령을 실행해야 할 때 Windows에서는 cmd.exe에 대한 경로를 지정해야 하지만 Linux에서는 즉시 셸에 액세스해야 합니다. 차이점은 무엇이며 왜 그렇습니까? 일종의 os.execute()명령을 실행할 때 두 시스템 모두에서 언어가 정확히 무엇에 도달합니까?

편집: 이것은 다소 이론적인 질문이며 프로그래밍 관행과 관련이 없습니다. 나는 이것이 주제를 설명하기가 간단하지 않을 수 있다는 것을 알고 있으므로 링크를 걸거나 파고드는 올바른 방향을 보여주는 것도 도움이 될 것입니다.

다음은 coldfusion의 예 중 하나입니다. (제가 말해야 할 이상하고 괴상한 것 중 하나입니다):

<cfexecute name="C:\Windows\System32\cmd.exe" arguments="echo Hm" />

답변1

글쎄요, 저는 단순하게 말하려고 노력하겠습니다(넓은 주제)

Windows와 Linux의 차이점은 분명하고 핵심은 동일하지 않습니다. 역사 방향으로 진행하지는 않겠습니다(궁금하신 경우 Wikipedia를 확인하세요;). 하지만 Linux는 사용자가 사용자 정의할 수 있기 때문에 스크립트를 선호하는 경향이 있습니다. 설치나 OS를 원하는대로 윈도우에서 등록 키를 수정하는 .exe를 사용하여 프로그램을 실행합니다.

Windows exe를 실행하기 위해 전체 경로를 입력해야 하는 이유는 매우 간단합니다(심오한 지루한 설명은 하지 않겠습니다). Windows는 실제로 전역 변수를 사용하지 않습니다(쉬운 설명: 레지스터 키는 실제로 필요하지 않습니다). 이것은 exe를 작동하기 위한 것입니다.) Linux는 전역 변수를 좋아하는 경향이 있지만 실제로 스크립트를 가리키는 전역 변수를 Linux에 쉽게 추가할 수 있습니다.

따라서 Linux 스크립트를 실행하려면 cmd(경로가 포함된 전역 변수를 가리킴)를 입력하면 마법이 일어납니다. Windons의 경우 전역 변수이므로 실행할 exe의 경로를 정의해야 합니다. 원한다면 Windows에서 자신만의 전역 변수를 만들어 Linux처럼 사용할 수 있지만 개인적으로는 그렇게 하는 것을 좋아하지 않습니다.

원리를 조금 더 잘 이해하시길 바랍니다.

답변2

그들은 완전히 다른 플랫폼이며 각각의 쉘을 통해 실행되는 대부분의 명령은 다음을 제외하고 호환되지 않습니다.시그윈Windows에서는 Linux 쉘과 동일한 명령을 사용합니다.

경험상 가능하면 OS별 호출을 사용하지 마십시오.

답변3

Python 내에서 다음과 같이 말할 수 있습니다.

>>> rc = os.system('echo yes')
yes
>>>

이는 Windows, Linux 또는 모든 Unix 변형에서 동일하게 작동합니다.

나는 당신이 관찰한 현상이 문제의 언어의 이식성에 특정한 것이라고 생각합니다.

그리고 동일한 결과를 생성하는 명령 문자열의 하위 집합은 매우 제한적입니다. Windows와 Unix에는 공통된 명령이 거의 없습니다.

관련 정보