Linux는 명령 프롬프트(명령을 입력한 후 Enter 키를 사용하여)에서 호출할 수 있는 유효한 명령 목록을 어디에 보관합니까?
이 목록은 완전한 목록입니까, 아니면 이 목록에 포함되지 않은 추가 항목을 명령 프롬프트에 입력할 수 있는 방법이 있습니까? (예: CTRL+C - 명령 프롬프트 종료 등)
이 두 가지 질문에 대한 답을 모른다면 자유롭게 대답해 주십시오.
Linux에서 명령을 입력한 후 명령줄에서 Enter 키를 누르면 소스 코드는 어디에서 시작됩니까?
명령 프롬프트에서 명령을 실행하면 Linux에서 소스 코드는 어디에서 시작됩니까?
보안에 따라 내 질문은 사용자별로 다를 수 있으므로 단순화를 위해 루트 사용자를 사용하겠습니다.
답변1
아무데도.
리눅스는 커널이고, 커널일 뿐이다. 모든 명령은 쉘 내장(각 쉘 문서에 나열됨)이거나 일반적으로 및 /bin
에 /sbin
있는 /
실행 가능한 바이너리 입니다 /usr
. /usr/local
쉘 자체도 이 디렉토리에 있는 바이너리 파일입니다.
Linux 배포판에 포함된 바이너리에는 제한이 없습니다. 특정 바이너리는 표준 도구( echo
, ls
등 grep
)로 간주되지만 개발자는 이를 포함할 필요가 없습니다.
마지막 질문은 말이 안 됩니다. 소스 코드는 실행 가능한 바이너리를 생성하기 위해 작성하는 코드입니다.
답변2
Linux는 명령 프롬프트에서 호출할 수 있는 유효한 명령 목록을 어디에 보관합니까?
그건 별거 아니야리눅스계속해, 그건 네 특징이야껍데기, 어느 쪽이든 상관 없습니다! 그러나 기본적으로 Linux의 모든 쉘은 환경 변수의 디렉토리에서 PATH
실행 파일을 찾습니다. 또한 내장 명령이 있으며 대부분의 경우 함수와 별칭을 정의할 수 있습니다. 이는 쉘이 초기화할 때 수행하는 작업의 대부분입니다.
따라서 셸 및 설정 방법에 따라 이는 디렉터리 목록의 항목으로 구성되고, 명령으로 프로그래밍되고, 초기화 시 로드된 확장으로 구성된 여러 목록이 됩니다.
이 목록은 완전한 목록입니까, 아니면 이 목록에 포함되지 않은 추가 항목을 명령 프롬프트에 입력할 수 있는 방법이 있습니까?
당신은 완전한 목록을 요청했는데 이제 그것이 완전한지 묻고 있습니다. 그것은 말이 되지 않습니다.
Linux에서 명령을 입력한 후 명령줄에서 Enter 키를 누르면 소스 코드는 어디에서 시작됩니까?
다시 말하지만 이것은 Linux가 아니며 실행 중인 쉘 프로그램입니다. 구체적으로 언론은 Enter입력 처리 라이브러리에 대해 이해하고, 입력 토큰화 단계로 전달하고, 입력 토큰화 해석 단계로 전달하고, 변환/실행 단계로 전달합니다.
결국 쉘은 공식 언어의 해석기이므로 기술적으로 다른 컴파일러와 매우 유사합니다.