Bourne Shell이란 무엇입니까?
Bourne 쉘은 Unix® 및 LINUX® 운영 체제에서 실행되는 작은 프로그램이며 시스템에서 프로그램을 실행하기위한 인터페이스를 제공합니다. 사용자에게 그래픽 사용자 인터페이스 (GUI)를 제공하지 않기 때문에 종종 명령 행 인터페이스 또는 명령 인터프리터라고합니다. 실행될 명령과 필요한 매개 변수는 쉘에 입력됩니다. Bourne 쉘은 스크립트 언어이기도하므로 사용자는 단일 명령으로 여러 프로그램을 통해 데이터를 처리 할 수있는 스크립트 파일을 작성하고 실행할 수 있습니다. Unix® 계열 시스템에서이 프로그램은 단순히 "sh"로 알려져 있습니다.
Unix® 시스템을위한 최초의 그러한 쉘은 Unix® 운영 체제의 최초 제작자 중 하나 인 Ken Thompson이 만든 Thompson 쉘로 알려져 있습니다. Thompson 쉘은 명령 해석으로 제한되었으며 외부 작업으로 여러 가지 추가 기능을 실행해야했습니다. 나중에 Stephen Bourne은 Bourne 쉘을 작성하여 Thompson 쉘을 대체하고 쉘 자체에 쉘 스크립트 언어뿐만 아니라 여러 가지 새로운 기능을 추가했습니다.
실제로 Bourne 쉘은 시작부터 스크립팅 언어로 계획되었습니다. 여전히 Unix® 버전 7의 명령 행 인터페이스 였지만 사용자가 데이터를 처리하기 위해 명령을 서로 연결하는 쉘 스크립트를 개발할 수있는 가능성도 열었습니다. 이 프로그래밍의 사용을 통해 사용자는 입력 또는 출력에서 알려 지거나 알려지지 않은 데이터를 캡처하기위한 변수를 설정하고 제어 흐름이라고하는 기술을 통해 스크립트에서 조건문을 사용하여 해당 데이터의 처리를 조작 할 수 있습니다.
이것은 또한 신호 처리로 알려진 기능을 구현 한 최초의 쉘이었습니다. Bourne 셸을 통해 사용자는 컴퓨터에서 이미 실행중인 프로세스에 특정 유형의 신호를 보내 다른 프로세스를 수행하도록 지시 할 수 있습니다. 이들 중 다수는 실행중인 프로세스를 중지하고 디버깅에 사용할 수있는 일종의 출력을 생성하는 방법이지만 다른 프로세스는 일시적으로 프로세스를 중단하고 재개하는 등의 방법이 있습니다.
Bourne 쉘은 파일 디스크립터를 직접 제어 할 수있는 기능이 처음이었습니다. Unix® 계열 시스템에서 실행중인 모든 프로그램에는 열려있는 파일의 파일 디스크립터를 나열하는 테이블이 있습니다. 여기에는 간단한 텍스트 파일에서 디렉토리 또는 프로세스가 서로 데이터를 공유하는 데 사용하는 통신 소켓에 이르기까지 모든 것이 포함될 수 있습니다. 사용자가 시스템에서 파일 디스크립터를 제어 할 수 있기 때문에 컴퓨터의 거의 모든 항목에 대해 전례없는 입력 및 출력 제어가 가능합니다.
물론 Bourne 셸은 사용자에게 이러한 추가 기능을 제공했지만 대화식으로 프로세스를 제어하고 명령 별칭을 설정하며 기록을 유지하는 기능과 같은 기능이 부족했습니다. 그러나 나중에 수년에 걸쳐 고안된 가장 유용한 쉘 피처를 가져 와서 새로운 쉘로 롤업 한 많은 자손이 등장하기 시작했습니다. 일반적인 예로는 Bourne-again 쉘 또는 Bash가 있으며, 이는 많은 LINUX® 시스템에서 일반적입니다. 결과적으로, 이러한 자손들 중 다수는 정규 Bourne 쉘 스크립트를 완전히 실행할 수있어 모든 Unix® 계열 시스템에 어떤 방식 으로든 원래 Bourne 쉘을 구현할 수 있습니다. 많은 LINUX® 시스템에서 이는 단순히 "sh"에서 "bash"또는 기타 유능한 하위 항목으로의 링크입니다.