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

1.1 커맨드 라인 인터페이스

이 절은 컴퓨터 혹은 프로그래밍을 처음 시작하는 사람을 위한 내용이다. 셸 사용이나 프로그래밍에 익숙한 독자는 이 절을 생략하고 다음 절을 읽어도 된다.

본격적인 프로그래밍을 시작하기 전에 반드시 알아야 하는 것이 커맨드 라인 인터페이스(CLI: Command Line Interface)이다. 커맨드 라인 인터페이스는 마우스 등이 필요한 그래픽 유저 인터페이스(GUI: Graphic User Interface)가 아닌 키보드 만으로 컴퓨터에게 입력하고 출력을 받는 방법을 총칭한다. 프로그램을 처음으로 시작하는 초보자는 다음과 같은 개념으로 뭉뚱그려 생각해도 된다.

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

커서가 반짝거리고 키보드를 타이핑하면 글자가 써지는 화면

그림 1.1.1: 커맨드 라인 인터페이스 화면의 예

콘솔(console)이라는 용어도 커맨드 라인 인터페이스를 뜻하는 말이다. 윈도우에서는 커맨드 프롬프트 라인(command prompt line), 우리말로 명령줄이라고 한다. 맥이나 리눅스에서는 터미널(terminal)이라는 용어를 더 많이 사용한다. 앞으로 이 책에서는 터미널이라는 용어를 대표 용어로 사용하도록 한다.

윈도우에서 터미널 시작하기

윈도우 운영체제에서 터미널을 시작하는 방법은 다음과 같다.

  • "시작" 버튼 > 검색 창에 "cmd" 입력 > 검색 결과에서 "cmd.exe"나 "명령 프롬프트" 선택
  • "시작" 버튼 > "모든 프로그램" 선택 > "보조 프로그램" 선택 > "명령 프롬프트" 선택

그림 1.1.2: 윈도우에서 명령 프롬프트 시작하기

맥에서 터미널 시작하기

맥 운영체제에서 터미널을 시작하는 방법은 다음과 같다.

  • Spotlight 검색 > 검색 창에 "Terminal" 또는 "터미널" 입력 > 검색 결과에서 "Terminal"이나 "터미널" 실행
  • 파인더 > 응용 프로그램 > 유틸리티 > 터미널

그림 1.1.3: 맥에서 터미널 시작하기

연습 문제 1.1.1

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

프롬프트

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

앞의 그림에서 dockeruser@7e2af2c6d2d:~$라는 글자가 프롬프트의 예다. 프롬프트는 컴퓨터의 현재 상태 등을 보여주는 동시에 셸이 사용자의 명령을 받을 준비가 되었다는 것을 알려준다. 프롬프트가 나오면 사용자는 키보드로 명령을 입력할 수 있다.

참고로 이 책에서는 셸 명령 예제를 보여줄 때 프롬프트까지 포함하여 보여주지만 독자 여러분이 예제를 직접 작성할 때는 프롬프트 부분을 생략하고 작성해야 한다. 그리고 셸, 터미널, 콘솔이라는 의미로 프롬프트라는 말을 쓰기도 한다.

연습 문제 1.1.2

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

셸 명령

터미널을 통해 컴퓨터에 다양한 명령을 내릴 수 있도록 도와주는 프로그램을 셸(shell)이라고 한다. 현대의 모든 컴퓨터 터미널은 셸을 내장하고 있기 때문에 터미널과 셸이라는 용어를 구분하지 않고 섞어서 쓰기도 한다.

  • 터미널/콘솔 : 셸을 실행하기 위해 글자 입력을 받아 컴퓨터에 전달하거나 컴퓨터의 출력을 글자 화면에 쓰는 프로그램
  • 셸 : 사용자가 글자를 입력하여 컴퓨터에 명령할 수 있도록 하는 프로그램

터미널 화면에서는 쓸 수 있는 셸 명령은 주로 파일이나 디렉터리를 관리하는 명령이다. 윈도우의 셸 명령과 맥/리눅스의 셸 명령은 비슷하지만 약간 차이가 있다. 다음은 셸에서 많이 사용되는 몇 가지 명령을 정리한 것이다.

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

연습 문제 1.1.3

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

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

계정과 홈 디렉터리

운영체제는 사용자 계정(account)홈 디렉터리(home directory)를 지원한다. 사용자 계정이란 같은 컴퓨터를 여러 사용자가 사용할 수 있도록 한 것이다. 홈 디렉터리는 각 사용자에게 할당된 디렉터리다. 터미널을 가동하면 보통은 로그인한 사용자의 홈 디렉터리에서 셸이 시작한다. 언제든 다음 명령으로 홈 디렉터리로 이동할 수 있다.

  • 윈도우: $ cd %HOMEPATH%
  • 맥/리눅스: $ cd ~

~ 기호는 틸드(tilde)라고 읽는다. 이 기호는 사용자의 홈 디렉터리를 표시하는 단축 기호이다. 만약 현재 자신의 계정 이름을 모르겠다면 홈 디렉터리로 옮겨서 디렉터리 이름을 보면된다. 윈도우에서는 보통 홈 디렉터리를 C:\Users\계정이름과 같이 만들어 준다.

연습 문제 1.1.4

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

계정 이름에 대해

참고로 컴퓨터에서 사용자 계정(account)을 만들 때는 이름을 다음과 같이 만들기를 권장한다.

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

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

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

연습 문제 1.1.5

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

셸 명령을 잘 사용하는 것은 컴퓨터를 다루는 가장 기본적인 능력이다. 여기에서 설명한 것은 가장 기초적인 셸 명령에 지나지 않는다. 다양한 셸 명령이나 셸 스크립트 프로그래밍 방법에 익숙해지는 것은 데이터 분석을 위한 가장 기초적인 능력이다.

질문/덧글

The Linux Command Line PDF file 경로입니다. capj*** 2017년 6월 23일 9:47 오전

http://www.linuxzasve.com/preuzimanje/TLCL-09.12.pdf

답변: The Linux Command Line PDF file 경로입니다. 관리자 2017년 6월 23일 9:11 오후

다운로드 URL이 빠져있었네요. 지적해 주셔서 감사합니다. TLCL 저자가 지정한 정식 다운로드 주소를 올려놓았으니 위의 덧글은 삭제해 주시면 고맙겠습니다.