본문 바로가기
Computer/Linux

[리눅스 기초] 1장. 리눅스(Linux) 시작하기: 리눅스란? 사용/설치방법, 셸, 프롬프트

by injeolmialmond 2021. 7. 6.

이 글은 리눅스를 비롯해 컴퓨터 공학을 처음 접하는 비전공자를 위해 쉽게 풀어쓴 글입니다. 제가 처음 리눅스를 배울 때를 생각하며

작성한 것이기도 합니다. 비전공자이기 때문에 적합하지 않은 표현이 있을 수 있습니다. 실수가 있다면 지적 부탁드립니다.


 

1. 리눅스란 무엇인가?

리눅스가 무엇인지 설명하기 위해서는 운영체제가 무엇인지부터 알고 넘어가야 합니다.

 

컴퓨터는 하드웨어와 소프트웨어로 나뉩니다. 하드웨어란 전자 부품으로 이루어진, 실제로 사용자가 만지는 기기입니다. 컴퓨터 디스플레이, 마우스, 키보드, 스피커 등이 이에 해당됩니다. 사용자는 하드웨어에 연산(compute)을 시키기 위해, 즉 명령하기 위해서 컴퓨터가 알아들을 *명령어를 사용하는데, 이 명령어의 집합이 프로그램이고, 이런 프로그램들을 총괄적으로 지칭하는 것이 소프트웨어라고 이해하면 되겠습니다.

 

* 만약 내가 컴퓨터에게 1과 3을 더해봐! 라는 명령을 내리고 싶다면 어떻게 하면 될까요? 컴퓨터가 알아듣는 말로 바꾸어 설명해야 합니다. 1+3을 입력하면 컴퓨터가 이를 처리한 뒤 답을 알려줍니다. Compute해서 알려준다니, 이름 값 하죠?

 

 

다시 돌아와서, 소프트웨어는 컴퓨터의 전체적 운영을 담당하는 시스템 소프트웨어와 이 외 모든 프로그램을 지칭하는 응용 소프트웨어로 나뉩니다. 운영체제는 시스템 소프트웨어에 속하는 것으로, 컴퓨터 시스템의 효율적인 관리와 사용을 위해 사용합니다. 컴퓨터의 주기억장치 내에 상주하는 것으로, 컴퓨터 시스템의 자원 관리, 응용 프로그램의 수행 제어, 사용자와 하드웨어 간의 인터페이스를 담당 관리합니다.. 너무 어렵죠? 우리가 흔히 아는 운영체제로는 UNIX, Mac OS, Microsoft Windows가 있습니다. 리눅스도 이러한 운영체제 중 하나라고 생각하시면 되겠습니다.

 

리눅스를 사용하기 위해서는 두 가지 방법이 있습니다. 자신의 컴퓨터(**로컬 컴퓨터)를 사용하거나, 리눅스/유닉스 서버에 **원격 접속하여 사용하는 것입니다. 로컬 컴퓨터를 사용하는 것이 더 간단하므로, 밑에서는 이에 대해 설명할 것입니다.

 

** 원격 접속?!?! 겁 먹지 마세요! 여기서는 다루지 않습니다. 간단히 말하자면 로컬 컴퓨터가 아닌 다른 PC를 현재 내 컴퓨터를 사용해서도 이용할 수 있도록, 네트워크를 사용해서 접속하는 것을 뜻합니다. 고등학교 정보시간에 선생님이 모든 학생의 화면을 다 볼 수 있었던 것 기억하시나요? 같은 원리입니다! 참고로 '로컬'이라는 단어에 익숙해지는 것이 좋습니다. '로컬 컴퓨터', '로컬 변수' 등, '로컬'은 '현재 범주 내'라는 의미를 갖습니다. 로컬 컴퓨터는 현재 내가 사용하는 이 컴퓨터(PC), 로컬 변수는 변수가 현재 몸담고 있는 함수 내에서만 작동하는 변수입니다.

 

 

2. 리눅스 설치하기

대부분의 한국 대학생들은 삼성이나 LG의 노트북을 사용하기 때문에, 그리고 필자 역시 그렇기 때문에 Microsoft Windows 운영체제를 사용하는 경우에 대해서 다뤄볼 것입니다. 맥북의 경우, Mac OS 자체가 유닉스 기반의 운영체제이기 때문에 리눅스 명령어가 그대로 작용합니다. Terminal.app을 열어 실습하면 됩니다.

 

Microsoft Windows를 사용하는 경우, Cygwin (http://www.cygwin.com) 또는 Git Bash (https://git-scm.com)를 설치하면 됩니다. 이러한 프로그램들은 WIndows에서 제공하는 '명령 프롬프트'와 동일한 역할을 합니다. 이에 대해 설명드리겠습니다.

Cygwin 로고
Git Bash 로고

3. 셸

운영체제가 제공하는 기능을 사용자가 쓸 수 있도록 해주는 것이 셸(shell)입니다. 셸에 대해서 설명하기 위해서는 CLI와 GUI에 대해서 설명해야 합니다. CLI(Command-Line Interface)란 명령형 인터페이스로, 터미널, 콘솔이라고도 불립니다. 검은 화면에 흰 글씨가 적히는 프로그램들이 제공하는 것이 그것입니다. 사용자가 직접 명령을 내릴 수 있으나, 개발자나 개발 공부를 하는 학생이 아닌 이상은 이러한 명령 방법이 생소하고 어렵게 느껴집니다. 이를 조금 더 쉽게 만든 것이 ***GUI입니다. GUI(Graphical User Interface)는 시작 메뉴, 작업 표시줄, 익스플로러 등이 해당됩니다.

 

*** 컴퓨터야, 인터넷 익스플로러 열어줘~ 메모장 열어줘~ 이러한 명령은 CLI에서도 가능합니다. 그런데 일반적인 사용자들이 검은 화면에 오타 나지 않게 주의하면서 일일히 코드를 작성해야 할까요? 너무 번거로워요! 대신 간단하게 시작 메뉴에 있는 인터넷 익스플로러, 메모장 버튼을 더블클릭하면 됩니다.

 

 

CLI를 제공하는 프로그램을 터미널 에뮬레이터라고 합니다. 앞서 말했던 Windows 기본 제공 명령 프롬프트, Cygwin, Git Bash는 모두 이에 해당됩니다. 하지만 대체로 터미널=콘솔=셸과 같이 불립니다.

 

리눅스 셸 중 기본은 배시 셸(Bash Shell)입니다. Mac OS X, Cygwin, Git Bash모두 배시 셸에 해당합니다.

 

4. 프롬프트

터미널 창을 처음으로 열면 다음과 같은 화면이 등장합니다.

창에 나타나는 경로와 달러표시가 바로 프롬프트입니다. 프롬프트에는 여러 정보가 제공됩니다.

 

가장 먼저 sheom은 나의 사용자 이름입니다. 처음 노트북을 샀을 때 설정한 것입니다. 사용자 이름은 한글이 아닌 영문과 숫자로 이루어진 것이 좋습니다. 터미널에서 명령어를 사용하면서 계속해서 이 이름을 쓸 것이기 때문에, 간단한 것으로 설정하는 것도 좋겠습니다. 리눅스 명령어들과 겹치지 않도록 신중히 결정하셔야 합니다.

 

노란색으로 적힌 것이 경로(=디렉토리)입니다. 엥? 컴퓨터에 경로가 있어? 내 사용자 계정 역시 사용자 폴더(Users)안에 존재하는 또다른 폴더입니다. 어떤 폴더 안의 또 어떤 폴더, 그 안의 어떤 폴더를 타고 들어가야 어떤 파일에 접근할 수 있는가! 를 나타내는 것이 그 파일의 경로입니다. 그렇다면 프롬프트의 경로는 어떤 뜻일까요? 우리는 콘솔을 통해서 단순 연산을 할 수도 있습니다. 1+3을 입력하면 4가 출력됩니다. 그런데 이런 단순한 기능 말고, 어떤 파일을 만들거나, 수정하거나, 삭제할 수 있습니다. 이처럼 작업을 할 위치가 바로 프롬프트의 경로입니다. 

 

~는 이 계정, 즉 'sheom'이라는 계정의 홈 디렉토리입니다. 홈 디렉토리가 어딘지 알아보기 위해서 'pwd' 세 글자를 입력하고 엔터를 쳐 보세요.

내 홈 디렉토리는 c/Users/sheom 입니다. 시작 메뉴에서 '파일 탐색기' 프로그램을 실행시켜 이 경로로 들어가 보세요.

여기 있는 파일/폴더들이 홈 디렉토리의 파일/폴더들입니다.

노란색으로 ~가 적혔으니, 지금 경로를 바꾸지 않은 채 어떤 명령을 내린다면, 그리고 그 명령에 경로에 대한 정보를 입력하지 않는다면, 그 명령은 파일 탐색기에서 볼 수 있는 파일들을 대상으로 실행됩니다. 참고로 Git Bash와 Cygwin의 홈 디렉토리가 다르니 조심하세요.

 

$는 커서, 즉 입력창이 어디 있는지 알려주는 역할을 합니다. 콘솔을 사용하다 보면, 처리 시간이 느려서 이게 처리가 다 되어서 화면이 바뀌지 않는 건지, 아니면 처리가 진행중인 건지 헷갈리는 경우가 생깁니다. 이 때 $가 있는지로 판단할 수 있습니다. $가 없다면 아직 콘솔이 명령을 처리중이라는 뜻입니다. 이 때는 키보드로 입력을 하려고 해도 아무것도 화면에 나타나지 않을 것입니다. 우리가 앞으로 학습할 명령어들을 이 $표시 뒤에 입력하면, 컴퓨터가 명령을 알아듣고 수행합니다.

 


리눅스가 무엇인지, 어떻게 시작하는지 이해 되셨나요? 비전공자도 쉽게 이해할 수 있도록 풀어서 작성했습니다. 더 자세한 설명이 필요하다면 댓글로 피드백 부탁드립니다 :) 다음 게시물에서는 리눅스 기본 명령어를 다루도록 하겠습니다!

 

 

 

 

 

댓글