제가 알기로는 bash는 Python Interactive Shell과 유사한 프로그램으로, 입력 스트림을 통해 명령(또는 명령)을 받아 Linux API 함수를 호출하여 실행하고, 실행 결과를 출력 스트림에 제공하는 프로그램입니다.
터미널 역시 명령 기록, 강조 표시 등 일부 기능을 제공하고 내부적으로는 쉘(bash)을 사용하는 프로그램이다.
그러나 Nautilus와 같은 애플리케이션은 /bin/bash를 사용합니까, 아니면 Linux의 API를 사용하여 통신합니까?
답변1
예, 프로그램은 명시적으로 또는 암시적으로 셸을 사용할 수 있습니다.
예를 들어 참조하십시오.스티븐의 대답관련없는 질문입니다.
예를 들어, 그들의 대답은 프로그램이 C 라이브러리 함수를 사용하거나 명령을 실행하는 경우 execlp()
일반적 execvp()
으로 execve()
반환 시 ENOEXEC
호출된다는 것입니다 sh
("it"은 명령의 컨텍스트인 명시적 인터프리터를 지정하지 않는 쉘 스크립트입니다). ) . sh
껍질이에요.
유틸리티를 실행하는 데 사용되는 응용 프로그램은 system()
일반적으로 셸도 호출합니다.
노틸러스에 대해 구체적으로 말할 수는 없지만 어떤 종류의 스크립트를 실행할 수 있다면 이를 위해 쉘을 사용할 가능성이 높습니다. 나머지 애플리케이션에서는 GUI 요소용 라이브러리와 이벤트, 파일 시스템 작업 등에 대한 기타 라이브러리를 사용할 수 있습니다. 이러한 라이브러리는 C 또는 유사한 언어로 작성되었을 가능성이 높으며 C 라이브러리를 사용하며, 그 중 일부는 특정 작업을 위해 운영 체제 커널과 상호 작용합니다.
파일 관리자 자체가 의심스럽습니다.다음과 같이 쓰여졌다모든 종류의 쉘 스크립팅 언어에서 가능하지만사용시작 또는 기타 작업을 위한 쉘 스크립트입니다.