기타/미분류

리눅스의 쉘

유닉스의 강력한 점은 다중 작업과 다중 사용자를 지원한다는 것이다. 특히 다중 작업은 매우 유용하며, 또한 안전하게 작동한다. DOS의 변칙적인 다중 작업이나 MS-Windows 에서의 제한적인 다중 작업이 아닌 쓰레드(thread)차원의 다중작업은 매우 강력하며 안정적이다.

다중 작업을 사용하려면, 기본적으로 shell 명령어를 사용해야 하며, 이 shell 이라는 것은 DOS의 command.com 과 마찬가지로, 사용자가 프롬프트상에서 입력하는 명령을 해석, 처리하는 사용자 인터페이스이다.

유닉스 shell은 프로그램을 백그라운드로 실행시키며, 다중 작업들을 서로 전환하고, "pipeline"을 사용하여 단일 명령으로 복잡한 결과를 수행해 낼 수 있다. 또한, 이것은 언어로써의 기능을 가지고 있다. shell 스크립트(script)라고 불리우는 것은 배치 파일과도 비교될 수 있지만, 실제로 하나의 언어로써 사용되는 매우 강력한 도구이며, 유닉스를 간편하고, 폭넓게 사용하도록 해줄 것이다.

유닉스 세계에서는 여러 개의 shell들이 있다. 가장 중요한 두 가지는 "Bourne shell"과 "C Shell"이다. Bourne shell은 시스템III와 같은 초기 유닉스의 오리지널 shell 과 유사한 명령 문법을 사용한다. 대부분의 유닉스 시스템의 Bourne shell의 이름은 /bin/sh 이다. C shell은 프로그래밍 언어인 C와 비슷한 복잡한 문법을 가지고 있으며 대부분의 유닉스 시스템에서의 이름은 /bin/csh 이다.

리눅스에서도 이런 shell 중 몇 가지가 쓰이는데, 일반적으로 사용되는 것은 Bourne Again Shell이나 “Bash”(/bin/bash)이다. Bash는 Bourne shell에 C shell의 특징과 향상된 많은 명령어들을 포함한 것이다. Bash는 Bourne shell 문법의 명령어 셋을 제공하기 때문에 표준 Bourne shell로 작성된 shell 스크립트는 Bash에서도 사용할 수 있다. 또한, C shell 문법을 사용할 수 있도록 리눅스에서는 ‘tcsh’가 제공되는데, 이것은 초기 C shell의 확장된 버전이며, 특히, 콘솔에서 한글을 사용하기 위해서는 이 csh shell을 사용하여야 한다.

먼저, 사용할 shell을 결정하여야 한다. 어떤 사람은 향상된 명령어가 포함된 Bash같은 문법을 사용한 Bourne shell이, 어떤 사람은 구조화된 C shell의 문법이 더 좋다고 한다. ‘cp’나 ‘ls’같은 일반적인 명령어의 문법은 같고, 단지 shell 스크립트를 작성하거나 shell의 향상된 기능을 사용하려고 할 때 shell의 종류에 따라 달라진다.