ls 명령을 입력하세요.

ls 명령을 입력하세요.

그래서 저는 이 명령을 어딘가에서 조사했고 typetype명령이 함께 사용되는 명령의 위치, 더 구체적으로 명령과 관련된 실행 파일의 위치를 ​​제공할 수 있다는 것을 알게 되었습니다. 그래서 몇 가지 기본 명령(예: 등)을 사용해 보았습니다. type위치를 알지만 with를 사용하면 뭔가 다른 것을 얻습니다.pswcdatetypels

ls is aliased to `ls --color=auto'

그러나 나는 자리를 기대하고 있었다.

답변1

type명령은 실행 파일의 위치를 ​​알려주는 것 이상의 역할을 합니다. 다음의 결과를 인용하겠습니다 help type.

명령 유형에 대한 정보를 표시합니다.

각 이름에 대해 명령 이름으로 사용될 경우 어떻게 해석되는지 표시하십시오.

즉, type명령은 주어진 인수에 대해 명령으로 사용될 경우 쉘이 이를 해석하는 방법을 알려줍니다. 경로에 있는 실행 파일의 경우 해당 위치를 제공합니다. 그러나 실행할 수 없는 다른 유형의 명령도 있습니다. 여기에는 bash 내장 기능이 포함됩니다. 예를 들어, 다음 명령 cd은 bash 내장 명령입니다.

$ type cd
cd is a shell builtin

즉, 이라는 실행 파일이 없습니다 cd. 오히려 이는 쉘에서 직접 해석되는 명령이며 쉘 언어의 일부입니다. 다시 말하지만, 이 명령 type은 bash 내장 명령입니다.

$ type type
type is a shell builtin

또 다른 유형의 명령은 별명입니다. 별칭은 입력하기에 매우 긴 사용자 정의 명령에 대한 편리한 바로 가기로 사용할 수 있습니다. 명령을 입력하면 alias현재 셸에 설정된 별칭을 볼 수 있습니다. 나에게 그것은 다음을 제공한다:

$ alias 
alias ll='ls -la'
alias ls='ls --color=auto'

(직접 구성한 것도 있지만 편의상 생략했습니다)

따라서 을 입력하면 귀하의 경우와 같이 type ls별칭 정보를 얻게 됩니다 .ls

$ type ls
ls is aliased to `ls --color=auto'

이는 배포판이 사용자의 셸 구성 어딘가에 이 별칭을 설정하기 때문입니다(예: .bashrcbash를 사용하는 경우). 그 이유는 ls명령의 출력이 항상 색상으로 표시되기 때문입니다(기본값은 아님). ls이 별칭이 존재하지 않는 경우의 의미를 알고 싶다면 ls현재 쉘 세션에서 별칭을 취소하고 다음을 사용하면 됩니다 type ls.

$ unalias ls
$ type ls
ls is hashed (/bin/ls)

답변2

많은 명령 셸에는 ls 세트에 대한 별칭이 있습니다. 사용 중인 쉘의 rc 파일에서 홈 디렉토리를 확인할 수 있습니다. (csh의 경우 .cshrc입니다.) 별칭이 있을 수 있습니다. 이 항목을 삭제한 경우 로그아웃한 후 다시 로그인하십시오. 그런 다음 입력하면 필요한 정보가 제공됩니다.

답변3

"사용되는 명령의 위치, 더 구체적으로 해당 명령과 관련된 실행 파일의 위치를 ​​제공하는 것이 가능합니다."

도움이 된다면 whichwhereis명령을 사용하여 실행 파일의 위치를 ​​찾을 수도 있습니다.

robert@pip2:/tmp$ which ls
/bin/ls

robert@pip2:/tmp$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

관련 정보