저자 : 정원석
리눅스 쉘 I (1) : 쉘의 기본 개념 |
GNOME이나 KDE라는 윈도우 매니저의 도움으로 유저들은 쉘 명령어 같은 것을 배울 필요없이 리눅스의 강력한 능력을 사용할 수 있게 되 었다. 그러나 쉘은 아직까지도 유저들에게 많은 기능을 제공하고 있다. 간단한 명령어 프로그램이나 스크립트를 통해 자동 반복적인 작업들을 쉽고 빠르게 작성하거나 좀 더 크고 복잡한 프로그램도 약간의 노력으로 만들 수 있다. 이번회에서는 리눅스에서 사용되는 쉘의 기본적인 개념과 기본 유틸리티에 대해서 알아 볼 것이다. 1.쉘의 정의 쉘은 사용자와 운영체제 사이를 연결시켜주는 대화형 인터페이스 프로그램이다. 쉘은 사용자가 내리는 명령을 해석하여 운영체제에게 전달하는 명령어 해석기의 역할도 하며 유닉스나 리눅스 자체를 위한 고급 프로그래밍 언어이기도 하다. [그림 01] 쉘의 개념도 2.쉘의 종류 Bourne Shell Bourne Shell은 최초의 대중화된 유닉스 쉘이며, 그것의 변종인 Bash는 현재 리눅스에서 가장 많이 사용하고 있으며 GNU 프로젝트에 의해 만들어지고 배포되고 있다. Bourne Shell은 쉘 프로그램 하는데에도 가장 좋다. 리눅스에서 가장 많이 쓰인다. Korn Sell Korn Shell은 Bourne Shell을 포함하는 더욱 강력한 쉘이며 강력한 명령어 편집기로 인해 일반적으로 유닉스에 많이 쓰이고 있다. C Shell 버클리 대학교에서 개발된 C Shell은 Bourne Shell과 호환이 되지만 인터페이스 구조가 다르고, C 언어 문법과 제어구조에 비슷한 면을 가지고 있다. C Shell은 명령어 모드에서 다양한 기능을 제공하기 때문에 유닉스 실행 시의 기본 Shell로 주로 쓰이기도 하다. |
리눅스 쉘 I (2) : 쉘(Shell)에서 사용하는 기본 유틸리티(Utility) - 1 |
처음 로그인 후 보이는 프롬프트 ($,%)를 통해 쉘이 실행되고 있다는 것을 알 수 있다. 쉘을 이용해서 프로그램을 실행하는 것은 매우 쉽다. 프롬프트 상태에서 여러분들이 실행 하고 싶은 프로그램의 이름을 타이핑 한다. 예를 들어, 여러분들이 리눅스 커맨더인 mc를 시작 하고 싶다면 명령어 프롬프트에서 mc를 치면 된다. 그러면 여러분들은 mc가 실행된 것을 볼 수 있을 것이다. 여러분들의 PATH(경로)에 있는 디렉토리 안의 프로그램들은 이런 방법으로 바로 실행할 수 있다. 여기서 경로 이름에 대해 알아보자. 같은 이름을 갖는 여러 개의 파일들이 서로 다른 디렉토리들에 존재하는 것은 가능하나 한 디렉토리 안에 같은 이름의 2개의 파일은 존재하지 못한다.
[표 01] 디렉토리의 절대경로 위의 경우는 같은 이름을 가지고는 있지만 디렉토리의 서로 다른 위치에 있기 때문에 가능하며 각 파일들은 루트를 기준으로 절대 경로 이름으로 표헌할 수 있다. 대부분의 디렉토리는 일반적으로 기본 PATH 안에서 실행 가능한 프로그램들을 포함하고 있다. 여러분이 실행하려는 프로그램이 PATH에 설정되어 있지 않은 디렉토리 안에 있다면 여러분들은 프로그램의 디렉토리 경로를 검색하여 명령어 라인에 실행하려는 프로그램의 전체 경로를 써주 어야 한다. 예를 들어, 여러분이 /home/wacky 디렉토리 안에 위치한 “hello”라는 프로그램을 실행하길 원한다면 "/home/wacky/hello" 라고 치면 된다. 그러면 어떠한 디렉토리 안에서도 프로그램을 실행할 수 있다. |
리눅스 쉘 I (3) : 쉘(Shell)에서 사용하는 기본 유틸리티(Utility) - 2 |
파일 생성
cat 명령어는 파일의 내용을 표준 출력으로 보여주라는 명령이다. cat을 이용하여 파일내용을 보거나
위의 예는 cat이라는 유틸리티를 이용하여 파일 생성하는 방법을 나타낸다. 파일의 내용보기 방금 생성하였던 파일의 내용을 보기 원할 때 cat 명령어를 이용하여 파일의 내용을 화면에 출력할 수 있다.
파일의 내용을 볼 수 있는 유틸리티는 cat과 vi등 여러 편집기 유틸리티를 이용할 수 있다. vi에 관한 내용은 나중에 자세히 설명하겠다. 디렉토리 내용 보기 hello라는 파일을 생성하였는데 그 파일이 디렉토리에 존재하는지와 파일의 저장 크기가 얼마인지 알고 싶을 때 사용하는 유틸리티이다.
-1 옵션과 함께 사용하면 현재 디렉토리에 있는 파일과 디렉토리의 이름만 출력된다. 파일의 이동과 이름 바꾸기 hello라는 파일을 /home/wacky의 위치에서 /home/isteam이라는 곳으로 옮기길 원할 경우에 사용하는 유틸리티이다. 또한 파일의 이름을 hello에서 merong으로 바꾸길 원할 때에도 사용할 수 있다. mv라는 명 령어는 파일을 이동시킬 때나 파일의 이름을 변경할 때 그리고 파일의 이름을 변경하여 옮길 때 사용할 수 있다.
-f 옵션은 기존에 동일한 이름의 파일이 있는 경우 이를 삭제하지만 사용자에게는 알려주지 않는다.
다른 디렉토리로 이동 어떤 작업을 다른 디렉토리에서 수행하고자 그 디렉토리로 쉘을 이동하고자 할 때 사용하는 유틸리티이다. cd 는 유틸리티는 아니고 쉘의 내부 명령어이다. 파일 복사 cp라는 유틸리티는 파일을 복사할 때 사용하는 유틸리티이다.
cp 명령문에는 적어도 두 개의 인자가 필요하다. 첫 번째 인자 source file은 복사하려고 하는 원본 파일이고 두 번째 인자는 파일이 저장될 디렉토리명이나 파일의 이름이다. cp는 source file과 동일한 이름으로 디렉토리에 복사한다. cp 명령어의 사용법은 다음과 같다. 파일의 삭제 rm 유틸리티는 트리(tree)구조로부터 파일의 레이블을 삭제한다. 더 이상 파일을 참조하는 레이블이 없다면 리눅스는 그 파일 자체를 삭제한다.
-i 옵션은 파일을 삭제하기 전에 사용자에게 삭제할 것인지를 확인한다. 이번에는 쉘의 기본적인 개념과 종류 그리고 가장 많이 쓰이는 유틸리티에 대해 알아보았다. 정말 기본적인 내용들이기 때문에 리눅스를 사용해보신 분들에게는 너무나도 쉬운 내용이라 생각한다. 좀 더 자세히 알고 싶으신 분들은 관련 서적을 참고하시기 바란다 |
댓글 없음:
댓글 쓰기