나는 이것이 어리석은 것처럼 들리지만 Linux 세계에서 사용되는 두 단어 사이에 실제로 다른 점이 있는지 알고 싶었습니다. 셸은 명령 줄 인터페이스이며 Bash, Korn 등과 같은 많은 변형이 있음을 알고 있습니다. 또한 Ctrl + Alt + T는 Ubuntu에서 터미널을 시작합니다. 이 두 점을 연결하고 싶습니다.
터미널이 열린 창이고 쉘이 창에 입력 된 명령을 해석하기 위해 실행되는 프로그램이라는 것을 의미합니까? 또는 터미널이 쉘 등의 개념을 추상화하는 데 사용되는 일반적인 용어 인 경우에도 동일합니까?
두 단어를 정확히 구별하는 것은 무엇입니까?
답변
터미널 에뮬레이터 (종종 터미널이라고 함)는 “단지 창”입니다. 기본적으로 로그인 쉘 (우분투의 bash) 인 텍스트 기반 프로그램을 실행합니다. 창에 문자를 입력하면 터미널은 문자를 쉘 (또는 다른 프로그램)의 stdin으로 보내는 것 외에도 창에 문자를 그립니다. 쉘이 stdout으로 출력하고 stderr로 출력하는 문자는 터미널로 보내지며,이 문자는 차례로 창에 그려집니다.
그렇습니다. 셸과 터미널 에뮬레이터는 완전히 별개의 프로그램이므로 다른 프로그램없이 사용할 수 있습니다.
답변
이 질문은 유닉스와 리눅스 스택 교환 사이트에서 매우 철저하게 탐구되었다고 생각합니다. 쉘, 콘솔 및 터미널의 차이점
답변
예, 터미널 에뮬레이터와 셸은 서로 다른 두 프로그램입니다. 아시다시피, 차이점의 한 가지 예는 터미널 창을 시작하면 구성 한 내용 (bash, tcsh, ksh, ash, python!)에 따라 다른 쉘을 실행할 수 있다는 것입니다.
또 다른 차이점은 그놈 터미널, 여러 종류의 xterm, 곤솔 (KDE 용) 등 기본값보다 많은 터미널 에뮬레이터가 있다는 것입니다 ( http://www.howtogeek.com/howto/ubuntu/set- -default-terminal-emulator-on-ubuntu-linux / ). 모든 쉘은 이러한 어려움없이 터미널 에뮬레이터에서 실행될 수 있습니다.
세 번째 차이점은 셸 명령을 실행하는 것 외에도 터미널 에뮬레이터에서 특정 대화 형 응용 프로그램을 시작할 수 있으며 동일한 창에서 실행되며 실제 그래픽을 처리하기 위해 동일한 터미널 에뮬레이터 프로그램에 의존한다는 것입니다. vim 텍스트 편집기, nethack RPG 등 원하는 경우 터미널 에뮬레이터에서 새 탭을 열 때 자동으로 nethack을 시작하도록 프로파일을 설정할 수 있습니다. 쉘은 포함되지 않지만 터미널 에뮬레이터는 여전히 동일한 프로그램입니다.
네 번째 차이점은 터미널 창에서 ssh와 같은 프로그램을 사용하여 원격 로그인을 수행 할 수 있다는 것입니다. 이 경우, 쉘 (또는 원격으로 실행하는 모든 프로그램)이 다른 컴퓨터에서 실행되고 있고 ssh 프로그램은이를 컴퓨터에서 실행되는 로컬 터미널 에뮬레이터 프로그램에 연결하여 그래픽을 처리합니다.