작성자: admin 작성일시: 2016-08-31 12:13:53 조회수: 1364 다운로드: 90
카테고리: 개발/운용 환경 태그목록:

셀, 터미널, 콘솔

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

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

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

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

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

프롬프트

셸 화면에서 항상 줄 앞에서 표시되는 글자를 프롬프트(prompt)라고 한다. 위 그림에서는 dockeruser@7e2af2c6d2d:~$ 라는 글자가 프롬프트이다. 프롬프트는 컴퓨터의 현재 상태 등을 보여주는 동시에 셸이 사용자의 명령을 받을 준비가 되었다는 것을 알려준다.

앞으로 셸 명령 예제를 보여줄 때 프롬프트까지 포함하여 보여줄 것이다. 따라서 이러한 예제들을 직접 타이핑하여 실행할 때는 프롬프트 부분은 타이핑하면 안된다.

셀 시작하기

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

윈도우즈에서 셸 시작하기

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

  • "시작" 버튼 선택 > 검색창에 "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. 셸을 나간다.

계정과 홈 디렉토리

윈도우즈, 맥, 리눅스와 같은 운영체제는 사용자 계정(account)과 홈 디렉토리(home directory)를 지원한다. 사용자 계정은 운영체제에 로그인하기 위한 사용자 이름이고 디렉토리는 각각의 사용자의 개인화 정보를 저정하기 위한 디렉토리이다.

셸을 가동하면 보통은 로그인한 사용자의 홈 디렉토리에서 셸이 시작한다. 만약 홈 디렉토리에서 시작하지 않았다면 다음 명령으로 홈 디렉토리로 옮길 수 있다. ~ 기호는 틸드(tilde)라고 읽는다. 이 기호는 사용자의 홈 디렉토리를 표시하는 단축 기호이다.

$ cd ~

만약 현재 자신의 계정 이름을 모르겠다면 홈 디렉토리로 옮겨서 디렉토리 이름을 보면된다. 윈도우즈에서는 보통 홈 디렉토리를 C:\Users\계정이름 과 같이 만들어 준다.

연습 문제 4

  1. 셸을 가동하여 자신의 홈 디렉토리로 이동한다.
  2. 자신의 계정 이름을 알아낸다.
  3. 자신의 홈 디렉토리에 어떤 서브 디렉토리(숨겨진 디렉토리를 포함)들이 있는지 그리고 각각의 서브 디렉토리에는 어떤 파일들이 있는지 조사한다.

계정 이름에 대해

계정 이름을 만들 때에는 다음과 같이 만들기를 권장한다.

  • 한국어가 아닌 영어로 만들 것
  • 띄어쓰기가 없는 한 단어로 만들 것

위와 같은 조건을 만족하지 않는다고 해도 큰 영향은 없지만 다음과 같은 이유로 가끔 어려음을 겪을 수도 있다.

  • 어떤 프로그램은 영문이 아니거나 띄어쓰기가 있는 계정 이름을 지원하지 않는 경우도 있다.
  • 디렉토리 이름에 띄어쓰기가 있는 경우 셸에서 사용이 불편하다.
  • 리눅스 등의 운영체제에서는 한글 표시/입력 설정을 추가로 해야 하므로 홈 디렉토리 표시나 사용이 불편해진다.

연습 문제 5

자신의 운영체제에서 새로운 계정을 만들어 보자. 계정 이름은 영어 한 단어로 된 이름을 사용한다.

참고 문헌

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

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

질문/덧글

아직 질문이나 덧글이 없습니다. 첫번째 글을 남겨주세요!