~
$HOME
여러 쉘에서 제공 하는 별명 이지만 $HOME
더 보편적입니다. $HOME
실제로 쉘에 환경 변수 HOME을 여기에 삽입 (대체)하도록 요청합니다. 대체 할 수있는 환경 변수가 많이 있습니다 env
. 목록을 실행 하십시오. 참고 ~
는 단어의 시작 부분에 있지 때 항상 인식되지 않습니다. 다음 두 명령을 비교해보십시오.
ls /~
ls /$HOME
첫 번째는 ls 실행 파일로 전달 /~
된 다음 ~
루트 디렉토리에서 호출 된 파일을 보려고 시도 하고 두 번째는 확장 $HOME
되어 //home/user
ls 실행 파일에 명령 행 인수로 전달됩니다. 하나는 너무 슬래시로 모든 POSIX 시스템 (POSIX는 UNIX 및 Linux 시스템이 어떻게 작동하는지에 대한 표준) 여러 슬래시가 동일하게 취급 할 수 있도록 //home/user
말과 동일합니다 /home/user
. ~username
쉘이 passwd 파일에서 username을 찾아보고 홈 디렉토리를 리턴하도록 지시하는 단축키입니다. 동등한 환경 변수가 없습니다. 이러한 모든 대체는 쉘에 의해 수행되며 대부분에서 $HOME
지원되지만 모든 환경에서 지원되는 환경 변수 만 보장됩니다. 또한,cd
실제로는 내장 명령입니다. 쉘 자체에게 디렉토리를 변경하도록 지시하는 특수 지시문입니다. echo
쉘 프로세스의 기본 속성을 변경하는 데 사용되므로 별도의 실행 파일로 구현할 수있는 다른 쉘 내장과 는 다릅니다. echo
성능상의 이유로 내장 된 셸일뿐 아니라 유닉스가 좋은 시절에는 자체 실행 파일로만 사용할 수있었습니다 /bin/echo
.