[팁] 터미널
-
- 첨부파일 : terminal.pdf (209.1K) - 다운로드
본문
최근에 Unix나 이를 기반으로 하는 Mac OS X을 사용하기 시작한 사용자라면 윈도우와 마우스를 이용하는 GUI (그래픽 사용자 인터페이스) 환경에 익숙해져 있을 것이다. 결론적으로는 이러한 편리함과 화려함이 Unix에 대한 막연한 두려움을 느끼지 않고 Mac OS X에 접근할 수 있도록 해주었다고 봐야 할 것이다. 하지만 겉모양이 어찌 되었든 Mac OS X은 Unix를 기반으로 하는 운영체제이고, 그 강력함을 충분히 경험하려면 반드시 터미널을 통한 커맨드라인 방식을 사용하여야 한다. "커맨드라인은 MS-DOS 시절이나 필요한 것 아닌가* 윈도우가 훨씬 쉬운데” 라고 말할 사람도 있을 것이다. 물론 몇 가지 기초적인 작동 방법만 익히면 그래픽 인터페이스는 쉽게 사용할 수 있다. 그렇지만, 그 기초적인 작동 방식만을 원하는 것이 아니라면 문제가 발생한다. Finder 윈도우를 작성한 개발자는 사용자가 알파벳과 세부적인 기준으로 배열된 목록을 필요로 할 것이라고 생각하지 않으므로 메뉴를 간단하게 하는데 중점을 두었을 것이다. 이런 점이 커맨드라인을 익혀야 하는 이유이다.
커맨드라인에서는 수 많은 유틸리티를 다양한 옵션을 사용하면서 거의 무한하게 붙여서 사용할 수 있도록 여러가지의 연결 방식을 제공한다. 일단 커맨드라인의 기초적인 작동과 몇몇의 기초적인 유틸리티를 익힌다면 윈도우 시스템 사용자가 생각하지 못하는 강력함을 얻을 수 있을 것이다. 쉘 스크립트까지 작성하는 수준이라면 단 한 단어로 복잡한 명령을 실행할 수도 있다.
터미널을 처음 실행하면 다음과 같은 형태의 윈도우를 볼 수 있다. 윈도우 타이틀을 보면 'bash'라고 적혀 있는데, 이는 현재 사용하고있는 쉘의 이름을 나타내는 것이다. 그 옆의 숫자는 현재 터미널 윈도우에서 표현 가능한 가로x세로열을 가르키는데, 이는 윈도우의 사이즈에따라서 유동적으로 보여준다.
<그림 1. 터미널 실행 화면. Shell은 기본적으로 bash를 사용한다.>
* 쉘(Shell)
먼저 쉘에 대한 설명이 수반되어야 할 것으로 보인다. 쉘을 쉽게 표현하면 도스의 command.com이 하는 역할처럼 login 이후부터사용자가 입력하는 명령어를 기계어로 변역하여 커널에 전달하는 역할을 하는 명령해석기를 말한다. Mac OS X에서는 기본적으로 /bin/csh(tcsh), /bin/bash, /bin/zsh 쉘을 제공하며, 원한다면 다른 쉘을 설치하여 사용할 수도 있다. 다양한 종류로 인해 혼란스러운것도 사실이지만 지금까지 꾸준하게 진화되어온 결과로 받아들이면 될 것이다. 기본적으로는 bash 쉘이 사용되며 터미널 환경설정에서 다른쉘을 지정할 수도 있다. 필자의 경우에는 이미 익숙해진 tcsh을 사용하는데, 변경을 하려면 터미널 > 환경설정을 실행하고 다음의그림처럼 "다음 명령 실행"에서 사용할 쉘의 절대 경로(/bin/csh (tcsh), /bin/bash, /bin/zsh)를입력하면 된다.
<그림 2. 터미널 환경 설정 화면. 이곳에서 사용할 쉘을 변경할 수 있다.>
- csh
버클리 캘리포니아 대학에서 개발된 프로그래머들에게 적합한 쉘이다. 대화형 사용법에서는 Bourne 쉘과 대부분 호환되지만 전혀 다른 프로그래밍 인터페이스를 가지고 있고, 히스토리 대체라는 복잡한 기능으로 대신하고 있지만 명령행 편집 기능은 제공하지 않는다.
- tcsh
확장 C 쉘. 명령행 편집 기능을 제공한다.
- bash
Bourne again shell은 최초로 개발된 쉘인 Bourne shell의 변종이라 할 수 있다. 가장 많이 사용되는 쉘이며, POSIX 호환이며 Borune shell과 호환되는 쉘로서 GNU 프로젝트에 의해 만들어지고 배포되고 있다. 명령행 편집 기능을 제공한다.
- zsh
Z 쉘. 가장 최근에 나온 쉘이며, 본 쉘과 호환된다. 명령행 편집 기능을 제공한다.
* 참고: 사용하는 시스템에서 사용 가능한 shell의 종류를 알아보려면 /etc/shells라는 파일을 열어보면 된다. 이 파일에는서버에서 지원되는 shell의 종류가 나열되어 있다. 다음 그림은 shells 파일의 내용을 pico 편집기를 통해서 본 것이다.
<그림 3. /etc/shells 파일을 열어보면 사용 가능한 쉘의 종류를 알 수 있다.>
* UNIX 명령어 배우기
Mac OS X은 터미널 유틸리티를 사용하여 접근할 수 있는 BSD UNIX에서 파생된 수백 개의 명령어를 포함하고 있으며, 또한 추가할 수도 있다. 바로 이점이 한정된 수의 명령만을 가지는 대부분의 운영체제와 결정적으로 다른 점이다.
유닉스에서 명령은 그냥 파일일 뿐이다. 예를 들어 ls 명령은 bin이라는 디렉토리에 들어 있는 바이너리 파일이다. 따라서 ls 대신 다음처럼 완전한 경로명(절대 경로명이라고 부른다.)을 사용할 수도 있다.
$ /bin/ls
이 때문에 유닉스는 유연성을 가지면서도 강력하다. 새로운 유틸리티를 제공하려면 시스템 관리자는 명령을 저장하는 표준 디렉토리에 설치하기만 하면 된다. 또한 한 명령의 여러 버전도 설치할 수 있다. 예를 들어, 테스트를 위한 새 버전의 유틸리티를 한 곳에 설치하고 나머지 버전은 다른 곳에 둠으로써 사용자들이 선택하여 실행할 수 있도록 할 수 있다.
명령어를 사용하는 방법을 배우려면, 명령어의 "man"(manual) 페이지를 참조하는 것이 좋을 것이다. 일반적으로 man 페이지는 다른 프로그래머들과 시스템 관리자가 사용할 수 있도록 프로그래머에 의해 쓰여지는 것인데, 자세히 읽으면 각 명령어의 기능을 익히는데 많은 도움이 된다. 명령어의 man 페이지를 보려면, 터미널을 실행한 다음 "man"과 명령어 이름을 입력하면 된다. 예를 들어, uptime 명령어를 익히려면 다음과 같이 입력한다.
man uptime
그럼 Unix에서 사용되는 기본적인 명령어를 알아보도록 한다.
- 유닉스 기본 명령어
■passwd
자신의 패스워드를 바꾸는 명령이다. 유닉스, 특히 인터넷의 세계에서는 일반 컴퓨팅 상황에 비하여 훨씬 해킹에 대한 위험이 높다. 패스워드는 완성된 단어 보다는 단어 중간에 쉽게 연상 할 수 없는 기호를 삽입하여 만들어 주는 것이 좋다.
■ls (디렉토리의 파일 표시)
도스의 dir명령과 흡사한 명령다. 일반적으로 ls라고 입력했을 때에는 디렉토리와 파일만을 표시해 주지만, 사실 ls에는 도스의 dir과는 비교할 수도 없을 만큼 다양한 옵션을 지니고 있다. 다음은 자주 사용되는 몇가지 옵션이다.
ls -al : Hidden 속성의 파일을 표시해주는 a 옵션과 파일의 종류, 사용권한 등 자세한 정보를 보여주는 옵션 l을 함께 사용하여 보다 자세한 정보를 보고자 할 때 이용한다.
ls -aC : Hidden속성의 파일을 보여주되, 도스의 dir /w명령과 같이 한줄에 여러 개의 정보를 보여주도록 C옵션을 함께 사용한다.
ls -R : 도스의 dir /s 명령과 같이 서브 디렉토리의 모든 파일들을 보여주는 옵션 R과 같이 사용할 수도 있다.
■cd (Change Directory)
cd 명령어는 도스의 cd와 그 쓰임새도 같고 사용할 때에 한가지만 주의하면 된다. 그것은 도스에서는 cd\\dos와 같이 사용하지만, 유닉스에서는 반드시 cd 뒤에 한칸을 띄우고 '\\' 대신 '/'를 사용한다는 것이다.
예) cd temp
유닉스의 디렉토리는 말 그대로 거미줄 같이 복잡하게 얽혀 있다. 따라서 개인의 홈 디렉토리로의 이동을 위하여 'cd ~'를 입력하면 자신의 홈디렉토리로 이동하도록 되어 있다. 참고로, 상위 디렉토리로 이동하려면 'cd ..' 라고 입력한다.
■mkdir (도스의 MD, Make Directory)
이 기능 역시 도스의 MD와 같은 기능을 하는 명령어이다. 옛날 도스책을 본 사용자라면 'MD (Make Directory-MKDIR)이라는 설명이 기억날 수도 있겠는데, 유닉스에서는 md라는 명령어가 아니라 반드시 mkdir로 디렉토리를 만들어야 한다.
■rmdir (도스의 RD, Remove Directory)
rmdir 명령어는 도스의 RD 명령어와 동일하게 사용할 수 있는 명령어로, rmdir로 이용하면 된다는 것외에는 다른 점이 없다. 주의할 점은 절대로 자신의 홈 디렉토리를 지우면 안된다는 것이다. 자신의 홈디렉토리는 '/Users/개인아이디'의 이름으로 존재한다.
■mv (move)
마치 도스의 move와 같이 사용되는 명령어이다. 파일을 다른곳으로 이동시키거나 이름을 바꿀때 이용하는 명령어이다.
■cp (copy)
도스의 copy 명령어와 같다라고 생각하면 된다. 그러나 도스의 일반 옵션을 이용할 수는 없다. 일반적으로 옵션을 많이 사용하지는 않지만, 옵션을 보고 싶을 때에는 'man cp'라고 입력하면 된다.
■rm (remove)
파일을 지울때 사용하는 명령어이다. 도스의 DEL명령어처럼 사용하면 되지만, 주의할 점은 유닉스에서는 도스와 같이 undelete를 지원하지 않는다는 것이다. 즉, 터미널상에서 지운 파일은 복구가 불가능하다. 물론 휴지통을 찾아봐도 찾을 수 없을 것이다. 그러니 삭제 명령들을 사용할 때에는 신중하길 바란다.
■pwd (현재의 디렉토리 표시)
현재 디렉토리를 표시할 필요가 왜 있는지 궁금해 할 수도 있지만, 유닉스 시스템에서는 사용자에게 일일이 현재 디렉 토리를 가르쳐 주지 않는 경우가 많다. 도스등 개인 사용자를 위주로 하는 시스템에서는 디렉토리의 길이가 그리 길지 않아서 디렉토리를 모두 보여줘도 큰 지장이 없지만 유닉스 시스템에서는 디렉토리의 길이만 한줄을 넘기는 경우도 발생할 수 있다. 이렇게 현재 자신이 작업을 하고 있는 디렉토리가 어디인지 알수 없을 때 이용하는 명령어이다.
■alias
doskey alias와 비슷하게 이용할 수 있는 쉘 명령어 alias는 말그대로 별명이다. 사용자는 alias를 이용하여 긴 유닉스 명령어를 간단하게 줄여서 사용할 수 있다. 이들 alias는 [alias ls 'ls -al']등과 같이 사용하면 되는데, 한 번 지정한 alias를 계속해서 이용하려면, 자신의 홈디렉토리에 있는 .cshrc(Hidden 속성)을 pico 등의 에디터를 이용하여 변경시키면 된다.
*참고: 터미널로 드래그 앤 드롭하기
터미널에서 다양한 명령을 사용하다보면, 경로를 찾아다니느라고 고생한 경험이 있을 것이다. 하지만 Mac OS X에서는 터미널로의 드래그 앤 드롭이 가능하여 경로뿐만이 아니라 다양한 작업을 간편하게 진행할 수 있도록 함으로써, 사용자 친화적인 OS라는 장점을 그대로 보여준다.
* 실행 가능 파일을 실행하려면, 파일의 아이콘을 터미널 윈도우로 드래그하고 Return을 누른다.
* 터미널 윈도우나 텍스트 색상을 변경하려면, 색상 윈도우의 색상을 터미널 윈도우로 드래그한다. 윈도우의 빈 부분으로 색상을 드롭하면, 윈도우 배경이 해당 색상으로 변경될 것이다. 텍스트 위에 드롭하면, 텍스트가 새로운 색상으로 변경된다.
* 삽입 지점에 디렉토리 경로를 나타나게 하려면, 디렉토리(또는 디렉토리내의 파일)를 터미널 윈도우로 드래그하면 된다. 예를 들어, 작업 디렉토리를 데스크탑의 "Feedback" 디렉토리로 변경하려면, cd와 빈칸 하나를 입력한 다음, 데스크탑의 Feedback 디렉토리를 터미널로 드래그한다. 다음이 나타날 것이다.
[hostname:~] yourname% cd/Users/yourname/Desktop/Feedback
Return을 누르면 터미널이 Feedback 디렉토리로 변경되는 것을 볼 수 있다.
지금까지 쉘과 자주 사용하는 Unix 명령어들에 관하여 설명하였다. 물론 더 많은 명령어와 옵션들이 있지만 그것들은 사용하면서 필요할 때마다 스스로 찾아서 사용하길 바란다. 이를 위해서는, GUI 환경에서 안된다고 하여 터미널에서도 안될것이라는 생각은 금물임을 꼭 명심해야 할 것이다.
터미널을 사용하는 방법에 대해서는 따로 깊이 설명하지 않을 것이다. 응용 프로그램 자체가 난해하지 않을 뿐더러, 터미널의 사용 목적을 감안한다면 더 이상의 설명도 무의미하다고 본다. 혹시 터미널을 자신의 취향에 맞게 설정을 원한다면 윈도우 설정을 통해 다양한 변화를 줄 수 있을 것이다.
최신글이 없습니다.
최신글이 없습니다.
댓글목록 1
이경미님의 댓글
터미널 say 명령어가 재미있어요ㅎㅎㅎㅎ