Unix 하위 명령 이름은 대소문자를 구분해야 합니까?

Unix 하위 명령 이름은 대소문자를 구분해야 합니까?

git, hg및 같은 명령에는 apt-get하위 명령(더 나은 이름이 있습니까?)이 있으며 모두 대소문자를 구분합니다.

hg log                    # not hg Log
git status                # not git Status
sudo apt-get install nano # not sudo apt-get Install nano

분명히 Unix의 많은 것들은 대소문자를 구분해야 합니다.유닉스가 그렇죠.

그러나 이 경우 잠재적인 모호성은 없습니다. 인수는 명령 이름만 가능하며 다른 것은 불가능합니다(그렇습니까?). git오류 메시지는 상황이 다음과 같다는 것을 나타냅니다.

> git Status
git: 'Status' is not a git command. See 'git --help'.

Did you mean this?
        status

초보자에게 약간의 좌절감을 더하고 Unix 문화와 일관성을 유지하는 것 외에 대소문자를 구분해야 할 이유가 있습니까?

답변1

대소 문자를 구분하는 이유가 있습니까?

그것은 더 큰 것을 남긴다네임스페이스쓸 수 있는. 예를 들어, 이후 버전의 git에서는 명령 이름의 대문자 변형을 구현하거나 셸과 같은 사용자 정의 매크로/별칭을 허용하여 재정의할 필요 없이 자신만의 등을 정의 할 수 있습니다 MV.CPmvcp

답변2

대소문자 구분은 POSIX가 명령과 인수를 처리하는 방식의 일부이며 의미와는 아무런 관련이 없습니다.

시스템의 기본 파일 시스템은 POSIX 규칙으로 인해 대소문자를 구분하므로 상태와 상태가 동일하지 않다는 것은 매우 좋은 일입니다. 일반적으로 시스템 전체에서 동일한 동작을 유지하는 것이 좋습니다.

예를 들어, 두 번째 인수가 파일 이름이나 키워드일 수 있는 경우 키워드가 대소문자를 구분하는 것이 허용된다고 생각하십니까? 명령이 대소문자 구분 인수를 허용하는 경우도 있고 그렇지 않은 경우도 있으면 혼란스러울 수 있습니다.

내 생각에 키 민감도에 대한 마지막 중요한 점은 ls -L유형을 직접 정의하고 실제로 대문자로 입력하려는 경우 L시스템이 추측을 시도해서는 안 되며 항상 사용자가 입력한 대로 수행해야 한다는 것입니다.

답변3

다른 관점에서 살펴보세요. 컴퓨터는 언어나 알파벳을 이해하지 못하며 숫자를 보고 이를 문자로 매핑합니다. I(문자 I)와 |(파이프)는 여러분과 매우 비슷해 보이지만 컴퓨터와는 전혀 다릅니다.

이를 설명하기 위해 아래 표를 살펴보십시오. 대문자 코드와 해당 소문자 코드가 일치하지 않음을 알 수 있습니다. 연속적이지 않고 전혀 다른 코드로 표현됩니다(표원천):

                                     여기에 이미지 설명을 입력하세요.

즉, 사용자에게는 aA가 동일한 것처럼 보일 수 있지만 컴퓨터에는 그렇지 않습니다.

관련 정보