셀, 터미널, 콘솔

본격적인 프로그래밍을 시작하기 전에 반드시 알아야 하는 것이 (shell)과 터미널(terminal), 그리고 콘솔(console)이다. 윈도우즈에서는 커맨드 프롬프트 라인(command prompt line), 우리말로 번역하여 명령줄이라고도 한다.

사실 정확히 따지자면 이 단어들은 서로 같은 뜻이 아니지만 프로그램을 처음으로 시작하는 초보자는 일단 다음과 같이 같은 개념으로 생각해도 된다.

검은 바탕에 글자만 하얗게 나오는 화면.

커서가 반짝거리고 키보드를 타이핑하면 글자가 써진다.

예를 들어 다음과 같은 화면을 말한다.

셀 시작하기

셸을 사용하는 것은 모든 컴퓨터 사용의 가장 기초이다. 앞으로 여러가지 데이터 분석을 수행할 때마다 자주 셸을 사용하게 될 것이다. 따라서 자신이 사용하는 컴퓨터 운영체제에서 어떻게 셸을 시작하고 어떤 셸 명령어를 지원하는지 잘 알고 있어야 한다.

윈도우즈에서 셸 시작하기

윈도우즈 운영체제를 사용하는 경우에는 다음과 같이 셸을 시작할 수 있다.

  • "시작" 버튼 선택 > 검색창에 "cmd" 라고 친다. > 검색되어 나오는 "cmd.exe" 프로그램이나 "명령 프롬프트" 프로그램을 선택
  • "시작" 버튼 선택 > "모든 프로그램" 선택 > "보조 프로그램" 선택 > "명령 프롬프트" 프로그램 선택

맥 OS X 에서 셸 시작하기

맥 OS X 운영체제를 사용하는 경우에는 다음과 같이 셸을 시작할 수 있다.

  • Spotlight 검색 > 검색창에 "Terminal" 또는 "터미널" 이라고 친다. > 검색되어 나오는 "Terminal" 혹은 "터미널" 앱 실행
  • 파인더 > 응용 프로그램 > 유틸리티 > 터미널

연습 문제 1

자신의 컴퓨터에서 셸을 시작해본다. 익숙해질 때까지 여러번 반복한다.

프롬프트

셸 화면에서는 항상 새로운 줄이 시작할 때마다 무언가 글씨가 출력되어 있다. 가장 일반적으로 나오는 것이 $(달러 표시) 기호이다. 경우에 따라 $(달러 표시) 기호 앞에 사용자 이름이나 컴퓨터 이름 혹은 현재 디렉토리 위치 등 다른 글자들이 있을 수도 있다.

이러한 글자와 기호를 프롬프트(prompt)라고 한다.

프롬프트는 셸이 사용자의 명령을 받을 수 있는 상태가 되었음을 알려준다. 프롬프트가 나오면 키보드로 명령을 입력할 수 있다.

연습 문제 2

자신의 셸에서 나오는 프롬프트를 적어보고 무슨 뜻인지 알아본다.

셸 명령

아까 셸과 터미널/콘솔은 각각 의미가 다르다고 했는데 정확하게 말하면

  • 셀은 사용자가 글자를 타이핑하여 컴퓨터에게 명령할 수 있도록 하는 프로그램을 뜻하고
  • 터미널/콘솔은 셸을 실행하기 위해 글자 입력을 받아 컴퓨터에게 전달하거나 컴퓨터의 출력을 글자 화면에 쓰는 프로그램을 말한다.

따라서 셸과 터미널/콘솔은 항상 같이 실행할 수 밖에 없기 때문에 보통 같은 의미로 사용된다.

셸 화면에서는 컴퓨터에게 글자를 타이핑하여 간단한 명령을 수행할 수 있다. 셸 명령은 주로 파일이나 폴더(디렉토리)를 관리하기 위한 명령이다. 윈도우즈의 셸 명령과 맥/리눅스의 셸 명령은 비슷하지만 약간 차이가 있다.

기본 셸 명령

셸에서는 디렉토리와 파일을 만들고 관리할 수 있으며 현재 사용자가 보고 있는 디렉토리를 변경(이동)할 수도 있다. 다음은 셸에서 많이 사용되는 몇가지 명령을 정리한 것이다.

명령 윈도우즈 셸 맥/리눅스 셸
화면 지우기 cls ctrl+l
현재 디렉토리 이름 출력 cd pwd
현재 디렉토리의 파일 목록 출력 dir ls -Fcal
한 칸 위의 디렉토리로 이동 cd .. cd ..
한 칸 아래의 디렉토리로 이동 cd 디렉토리이름 cd 디렉토리이름
파일 지우기 del 파일이름 rm 파일이름
디렉토리 만들기 mkdir 디렉토리이름 mkdir 디렉토리이름
디렉토리 지우기 rmdir 디렉토리이름 rmdir 디렉토리이름
셸 나가기 exit exit

연습 문제 3

셸을 가동한 뒤 다음 명령을 수행한다.

  1. 현재 디렉토리의 이름을 알아본다.
  2. 현재 디렉토리의 모든 파일과 디렉토리 목록을 알아낸다.
  3. 이 디렉토리에 foo 라는 이름의 디렉토리를 만든다.
  4. foo 디렉토리로 들어간다.
  5. foo 디렉토리에 bar 라는 이름의 디렉토리를 만든다.
  6. 다시 foo 디렉토리로 이동한다.
  7. bar 디렉토리를 삭제한다.
  8. 화면을 지운다.
  9. 다시 가장 처음의 디렉토리로 이동한다.
  10. foo 디렉토리를 삭제한다.
  11. 셸을 나간다.

참고 문헌

셸 명령을 잘 사용하는 것은 컴퓨터를 다루는 가장 기본적인 능력이다. 여기에서 설명한 것은 가장 기초적인 셸 명령에 지나지 않는다. 좀 더 다양한 셸 명령이나 셸 스크립트 프로그래밍 방법을 알고 싶다면 다음 서적을 참고한다.

  • "The Linux Command Line"(William Shotts 지음, No Starch Press 출판)
    • 이 책은 다음 웹사이트에서 무료로 영문판 pdf 파일을 다운로드 받을 수 있다.
    • "리눅스 커맨드라인 완벽 입문서"(이종우, 정영신 옮김, 비제이퍼블릭 출판) 라는 한글 번역서도 있다.