Windows & Ubuntu에 왜 비슷한 쉘 명령이 있습니까?


14

우분투에는 bash (Bourne Again SHell)가 있지만 Windows에는 독점 쉘이 있습니다. 내 연구에 따르면 Windows / Ubuntu의 셸 스크립팅에 사용되는 언어의 이름이 없습니다. 그냥 쉘 스크립팅이라고합니다.

왜 윈도우 & 우분투 쉘과 같은 동일한 명령을 이해한다 : ls, mkdir, rmdir, mount등?

쉘 스크립팅을위한 일종의 lingua franca가 있습니까? 그렇다면 자세한 내용을 알려주십시오.


9
en.wikipedia.org/wiki/List_of_Unix_commands를 참조하십시오 -이러한 명령이 처음 나타난시기를 확인하고 Windows 및 GNU가 처음 나타난시기를 확인하십시오. 이 명령은 bash의 일부가 아닙니다. 외부 유틸리티이므로 사용되는 쉘은 관련이 없습니다.
muru

10
그리고 저는 lsPowershell이 ​​아닌 지원한다고 확신 cmd.exe합니다. Powershell 제작자는 일반적인 Unix 명령에 대한 별칭을 추가하여 Unix 사용자가 더 편안하게 사용할 수 있도록 노력했기 때문입니다. technet.microsoft.com/ko-kr/library/dd347739.aspx
muru

7
DOS에 관한 Wikipedia 기사는 이것에 대해 약간의 설명을 해줄 수 있습니다. 인용 : "DOS 대신 Intel 8086 16 비트 프로세서에서 실행되었습니다. MS-DOS 1.28 및 PC DOS 2.0부터 운영 체제는 Microsoft의 Unix 변형 인 Xenix에서 영감을 얻은 다양한 기능을 통합했습니다." 유닉스는 MS-DOS의 조상이다. en.wikipedia.org/wiki/DOS
theodorn

4
@muru : 사실, 모두 유닉스 도스 명령은 실제로 단지 별칭 실제 표준화에 따라 지정됩니다 PowerShell을 명령, Action-Object또한 표준화 활동과 개체의 집합으로 구성된 구조. 예를 들어, 모두 lsdir의 별칭은 Get-ChildItem(추가 별칭이있는 gci), mkdir그리고 md실제로 New-Item등등 (실제로 PowerShell에서의 객체 기반 접근 방식 때문에, 더 많은 단지 디렉토리보다 더 만들 수있는)합니다.
Jörg W Mittag

2
CPM, VMS, JCL도보십시오.
Zan Lynx

답변:


44

윈도우는 cmd.exe지원하지 않습니다 ls, mount당신이 자신을 설치하고 그들을 추가하지 않는 등, %PATH%(Cygwin에서,는 MinGW를 통해 UNIX 기반 응용 프로그램 (SUA) 용 하위 시스템 또는 뭔가 다른). Powershell 이합니다. Powershell에는 표준 Powershell 명령의 별칭이 있으므로 Unix 사용자가 더 편안하게 사용할 수 있기 때문입니다. Powershell호환성 별명 목록을 참조하십시오 . 윈도우 있는가 rmdir, mkdir등, 하지만, 이러한 물론, 당신은 우분투에서 찾을 거라고 같은 옵션 구문을 지원하지 않습니다.

우분투에서는 Bash와 아무런 관련이 없습니다. 그것들은 모두 외부 명령입니다. 이러한 유틸리티에는 표준이 있습니다. POSIX 가 가장 눈에 띄며 ( POSIX 필수 유틸리티 목록 참조 ) Linux 표준베이스 (LSB) 는 Linux 시스템에 중요한 또 다른 요소입니다 (주로 POSIX를 기반으로하지만 추가 사항이 있음 ). Ubuntu의 기능은 대부분 GNU 에서 제공 하며 GNU 유틸리티는 종종 POSIX에 필요한 기본 기능보다 많은 기능을 제공합니다.

POSIX는 또한 언급 한 쉘 언어 를 정의합니다 ( 의 언어 와 실질적으로 다름 cmd.exe). Bourne 쉘 의 구문 에서 파생됩니다 . GNU의 Bash (이제 Bourne이 다시 참조하는 것을 알고 있음 )도 맨 위에 기능을 추가하지만 필요한 경우 POSIX 호환 방식으로 동작 할 수 있습니다. POSIX 언어는와 함께 얻을 것으로 예상되는 언어입니다 sh. bash, ksh, ash, dash, zsh모두 사용 향상된 기능과 언어. csh자신의 (악몽) 세계에 있으며 tcsh향상시킵니다 csh.

좀 더 이해하려면 유닉스와 유닉스 계열 시스템 의 역사를 살펴보십시오 . Unix는 Windows보다 10 년 이상 앞서 왔으며 이러한 유틸리티는 Unix에서 처음 나타났습니다.

Windows는 미국 정부가 정부 기관에서 사용하는 운영체제를 위해 필요하기 때문에, 한 번에, POSIX 호환이었다 (그들이 추가의 유닉스 (SFU)의 서비스를 , 어떤에서 SUA는 첫 번째 단락에서 언급했다). 그러나 그 요구 사항은 폐기되었고, 그 결과 SUA는 폐기되었습니다.

관련 :

(이 게시물의 공통 부분은 모두 유닉스 및 리눅스 에 있으며 태그 기록 은 해당 태그를 통한 탐색이 매우 유익하다는 것을 알 수 있습니다.)


3
AFAIK, rmdir(함께 mkdir하고 cd / chdir) 네이티브 command.comMS-DOS 2.0 (도스 파일 시스템에는 계층 구조 이전에 없었다)부터 내장 명령
jlliagre

1
rd바로 가기였습니다 md.
jlliagre

1
이것은 내가 다른 사람들이 제공 한 링크를 통해 답을 읽고 감추고 얻은 것입니다.이 명령 / 유틸리티는 과거에 다양한 시스템에서 처음 나타났습니다. 시간이 지남에 따라 대부분은 Ubuntu에 통합되었고 일부는 Windows에 통합되었습니다. 그러나 Windows는 자체적으로 작업을 수행하고 이러한 유틸리티의 자체 버전을 만들기로 결정했습니다. 시간이 지남에 따라 Windows는 자신의 쉘 명령에 별명을 추가하여 Linux 사용자가 표면에서 시스템과 동일하게 보이지만 그 아래에서 Windows 명령으로 변환되는 명령을 사용할 수 있도록 결정했습니다
Shady Programmer

1
POSIX 언어는와 함께 얻을 것으로 예상되는 언어입니다 sh. bash, ksh, ash, dash, zsh모두 사용 향상된 기능과 언어. csh자신의 (악몽) 세계에 있으며 tcsh향상시킵니다 csh. Windows는 한 번에 POSIX를 준수했습니다. 미국 정부는 정부 기관 (SUA가 시작된 곳)에서 사용하는 OS에 대해 OS를 요구했기 때문입니다. 그러나 그 요구 사항은 폐기되었고, 그 결과 SUA는 폐기되었습니다.
muru

1
@ShadyProgrammer 다른 U & L 게시물도 있습니다 : unix.stackexchange.com/q/145522/70524
muru

0

단순한:

Linux는 Dennis Ritchie와 Ken Thompson이 발명 한 UNIX 모델 기반 시스템입니다.

Windows / DOS는 CP / M이라는 저렴한 시스템으로 1970 년대 TV에 꽂은 오래된 컴퓨터에서 인기를 얻었습니다.이 시스템은 60 년대 후반부터 70 년대 초반까지 초기 UNIX 시스템의 저렴한 시작이었습니다. .


당신의 대답에는 진실이 있지만 너무 지나치게 단순화되어 유용하지 않습니다. (그리고 우리는 TV가 아닌 CP / M 모니터 또는 터미널을 사용했습니다.) 64k 컴퓨터에서 메모리가 부족하지 않았습니다.
Joe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.