[웹진ActOn] 새벽

뜨거운 한낮이 지나고, 해가 기울어 날이 어둑어둑해집니다. 내일부터 하나씩 가꿔나가기로 하고, 오늘은 일단 좀 쉬기로 하죠. 새 집에 들여놓은 이삿짐 정리도 내일로 미룹시다. 대신 이 집을 어떻게 꾸밀지 그림을 그리기 위해 집 구조는 먼저 둘러봐야겠습니다. 새로운 생활의 원칙도 다시 확인해 보고요. 잠시 시간을 거슬러 올라가, 모든 것이 시작하기 전에 알아두어야 했던 것들을 떠올려봅니다.

* 이 부분은 실용적인 “따라하기” 내용이 아니라, 이후 맞부닥칠 상황을 해결하기 위해 알고 넘어가야 할 배경 지식입니다. 나중에 반드시 쓸 일이 있으니 낯설어도 천천히 따라가 보시기 바랍니다.

0. 모든 장치는 평등하다

아래 단락이 머리 아프면 이 한 줄만 기억하시고 다음 단락으로 넘어가세요. “리눅스(유닉스)에서 모든 것은(장치도) 파일이다”



컴퓨터는 다양한 장치들이 연결되어 하나의 시스템을 구성합니다. 본체, 모니터, 키보드, 스피커... 윈도 제국과 달리 리눅스 마을에서는, 어떤 장치든 연결되면 /dev 라는 디렉토리 아래 그 장치를 매개하는 파일이 만들어집니다. 마우스를 연결했습니까? 그럼  /dev/mouse 라는 파일이 만들어졌을 겁니다. CD롬을 리눅스는 /dev/cdrom 라고 알고 있습니다. 하드디스크를 세 개 연결했습니까? 이건 이름이 왜 이럴까 싶겠지만 /dev/hda, /dev/hdb, /dev/hdc 라고, 리눅스는 그 하드디스크들을 부를 겁니다. SCSI 하드디스크라면 /dev/sda, /dev/sdb, /dev/sdc 라고 부를 거고요. (참고로 첫 번째 하드디스크의 첫 번째 파티션은 /dev/hda1)

1. 모든 자원은 공유된다

윈도 제국의 방식에 익숙하다면, 가장 먼저 주위를 둘러보고 당황할 만한 것은, “C 드라이브가 어디 있지?”일 것입니다. 하드 디스크에 디렉토리를 만들어 거기에 파일을 저장하고, 필요할 때 불러 오고... 하는 것이 그동안 컴퓨터를 사용하며 가장 많이 한 작업일 텐데, 아 도무지 특정 하드디스크에 접근하는 방식을 모르겠습니다. 왜냐면? 그럴 필요가 없기 때문입니다!

윈도 제국에서 “내 문서”라는 폴더를 써 봤을 겁니다. 이것은 상황에 따라 이 디렉토리, 저 디렉토리를 가리킬 수 있습니다. (간단히 변경할 수 있어요.) 컴퓨터 사용자는, 지금 이 “내 문서” 폴더가 실제로 어떤 하드디스크의 어디쯤에 위치한 어떤 디렉토리인지 알 필요가 없습니다. 이것은 그 폴더가 미리 “약속된 의미”를 갖는 “가상”의 디렉토리이기 때문입니다.

리눅스에서는 모든 디렉토리가 그런 “가상”의 디렉토리입니다. “내 개인 파일들(/home)”, “프로그램 실행 파일들(/bin)”, “설정 파일들(/etc)” 이런 식으로 약속된 의미가 그 이름으로 부여되어 있습니다. 그래서 컴퓨터 사용자는 내 개인 파일을 찾기 위해 /home 아래로 들어가지만, 실제로 /home이라는 디렉토리가 (여러 하드디스크 중) 어떤 하드디스크에 있는지 알 필요 없이 바로 그 디렉토리에 접근할 수 있게 됩니다.



이렇게 하기 위해 리눅스에서는 여러 하드디스크나 다른 장치들을 각자 따로 놀리지 않고, 그것들을 모두 모아 전체 시스템을 구성하고, 적절히 역할을 분담합니다. 모든 자원은? 공유됩니다. 특정 하드디스크에 실제로 파일이 기록된다고 해서, 그건 “그 하드디스크(소유)의 파일”이 아닙니다. 그냥 그 파일은 “시스템 전체”의 파일이고, 약속된 의미를 갖는 디렉토리로 들어가서 접근할 수 있게 됩니다. 이걸 가상 파일 시스템(VFS)이라고 하고요. 그리고 어떤 장치를 특정 디렉토리에 연결해, 컴퓨터 사용자가 쓸 수 있게 만드는 과정을 “마운트(Mount)”한다고 합니다. 예를 들어, 여러분이 USB 플래시 메모리를 꽂으면? 대개, 우선 /dev 아래에 /dev/sda 같은 걸 만들고요, 그걸 바탕화면에 “disk” 같은 이름으로 마운트합니다. 그럼 이제 그 메모리에 파일을 복사하는 등 원하는 대로 쓰면 됩니다.

2. 세상을 가리키는 말은 숲

우리의 한 마을은 사실 큰 나무에 지어진 것과 같습니다. 맨 아래에 “뿌리(/)” 디렉토리가 있고, 그 위에 줄기들이 갈라져 뻗어 있습니다. 그 줄기는 /home, /usr, /var, /bin, /etc, /dev 등입니다. 각각의 줄기는 또다시 더 작은 가지로 계속 갈라져 갑니다. 예를 들면 /usr 는 /usr/share, /usr/src, /usr/local 등으로. 나무의 세세한 모습은 마을마다 다르고, 한 번에 알 수는 없지만, 뿌리에서 갈라진 기본 줄기는 어느 마을이나 거의 똑같고, 눈에 잘 보입니다. 각 줄기가 고유의 정해진 역할이 있는데, 중요한 것은 이렇습니다.  

 /home : 각 사용자들의 개인 파일들이 위치합니다.
 /bin : 실행 파일들이 있습니다.  
/usr : 프로그램을 구성하는, 모든 사용자가 같이 쓰는 파일들이 여기에 자리 잡습니다.
 /dev : 모든 장치들은 연결되면 이름을 부여받고 이곳에 모여 있습니다.  
/etc : 시스템 설정 파일들이 모여 있는 곳입니다. 여러분이 마을을 꾸려 갈 때 이곳을 뻔질나게 들락날락 거리게 될 겁니다.
 /var : 컴퓨터가 켜져 있는 동안 계속 값이 변하는 파일들이 위치하는데, 예를 들면 시스템 사용 기록 등이 이곳에 있습니다. 여기는 사용자보단 컴퓨터가 자꾸 들락날락하는 곳입니다.  
/tmp : 임시 파일들이 위치하는 곳입니다.

3. 혼자가 아니야

윈도 제국에서는 나 혼자뿐이었습니다. 나 말고 다른 사람은 보이지 않습니다. 아니, 윈도에게는 다른 사람이 보이지 않습니다. 하지만, 실제로 컴퓨터는 혼자만 쓰는 경우는 그렇게 많지 않지요. 깊은 심산유곡에서 혼자 사는 사람이 자기 방에 문 걸어 놓고 바깥손님을 절대 안들이고 자기만 쓴다면 모르겠지만. 그런데 내가 어떤 행동을 하고, 다른 사람이 어떤 행동을 해도 윈도는 누가 누군지 알아채지 못합니다. 그나마 얼마 전부터 이 사람 저 사람 구분하는 능력이 생기긴 했지만요. 나 아닌 누군가가 실수로 내 컴퓨터를 말아먹을 수도 있고, 내 개인 파일을 열어볼 수도 있습니다만 윈도는 그걸 막아낼 수 없고요, 또 자기가 실수로 중요한 것을 잘못 건드려 컴퓨터가 못쓰게 되는 걸 막지도 못합니다.

하지만 리눅스(유닉스)는 처음 태어났을 때부터 자기 앞에 있는, 대화하고 있는 사람을 분간할 수 있었습니다. 그래서 이 사람의 실수가 저 사람에게 영향을 주지 못하게 할 수 있고요, 또 관리자와 일반 사용자를 구분할 수 있어서, 한 사람의 실수가 전체 시스템을 망가뜨리는 일이 없도록 할 수 있습니다. 그러려면, 리눅스를 쓸 때는 먼저 로그인을 해서 “나는 지각생이야”하고 말해주면 됩니다. (미리 지각생이란 사람이 앞으로 이걸 쓸 수 있다는 걸 말해주고요.) 그러면 이제부터 지각생이 그 컴퓨터를 갖고 뭘 하던 알아서 다른 사람 방해 안 하고, 전체 시스템 날리지 않도록 막아줍니다. 이걸 다중사용자시스템(Multi-User System)이라고 부르면 되겠습니다.



리눅스를 설치하면, 관리자 아이디(root)와 일반 사용자 아이디를 만들게 됩니다. 일반 사용자 아이디는 나중에 얼마든지 추가할 수 있습니다. 관리자 아이디로 로그인하면 뭐든지 할 수 있는데, 그 덕에 실수로 시스템을 말아먹을 수도 있으니 평소에는 일반 사용자 아이디로 로그인해서 쓰는 게 좋습니다. 우분투(ubuntu) 리눅스에서는 기본적으로 일반 사용자 아이디로 로그인하게 되어 있습니다.

4. 검은 화면 줄까 파란 화면 줄까

윈도 제국이 사람들에게 준 가장 큰 스트레스인 “파란 화면”. 반면 여러 사람에게 다양한 감정을 불러 일으키지만, 대체로 “두려움”의 존재인 “검은 화면” - CUI라고 합니다. (명령행 사용자 인터페이스 Command-line User Interface.)



검은 화면은 파란 화면과는 정반대의 상황에 있다고 하겠습니다. 파란 화면이 “넌 더 이상 할 수 있는 게 아무것도 없어.”라고 말하는 거라면, 검은 화면은 “뭐든지 말만 해. 다 들어줄게.”라고 말하는 것과 같습니다. 흔히 우리가 마우스로 클릭, 클릭해서 창을 열고, 닫고 하는 GUI(그래픽 사용자 인터페이스 Graphic User Interface라고 합니다.)가 더 진보한 거라고 생각하지만, 실제로 GUI로는 CUI보다 상대적으로 단순한 일만을 할 수 있을 뿐입니다. 미리 정해놓은 곳을 클릭하고, 몇 가지 키를 누르는 정도죠. CUI는 대체로 더 복잡하고 다양한 작업을 처리할 수 있습니다.

리눅스가 어렵다는 편견을 쌓게 한 가장 큰 주범 중의 하나가, 바로 이 CUI인데(명령어를 익혀야 하니까), 요즘에는 대부분의 리눅스용 프로그램이 다 GUI로 만들어지기 때문에 윈도를 쓸 때와 큰 차이를 못 느끼고 리눅스를 쓸 수 있습니다. 그래도 CUI를 알면, 그래서 리눅스와 좀 더 깊은 대화를 나눌 수 있게 되면, 컴퓨터가 가진 역량을 좀 더 끌어내 여러분의 삶을 해피하게 만들어주지요. 가끔 어떤 문제를 해결하기 위해서나, 여러분만의 필요에 의해, 독창적인 방식으로 컴퓨터를 사용하게 될 때 CUI는 참으로 유용한 방식입니다.

5. 기도합시다 - sudo

이제 왜 리눅스를 설치할 때 “사용자 계정”을 만들었는지 아실 테고, 컴퓨터를 켤 때 그 아이디로 로그인한다는 걸 알았는데, 가끔 이럴 때가 있습니다. 새로운 프로그램을 설치했는데, 이건 모든 사람이 공유하는 겁니다. 그러려면 모든 사람이 접근할 수 있는 디렉토리에 이 파일들을 놓으면 되겠죠. 그런데 그랬다가는 다른 사람이 그 파일을 지울 수도 있겠죠. 이건 원하는 바가 아닙니다. 또 하나의 방법은 관리자만 접근할 수 있는 디렉토리에 파일을 놓고, 그걸 갖다 쓸 수만 있게(지우거나 맘대로 뭘 만들지는 못하게) 하면 됩니다. 즉, 가끔, 시스템 전반에 영향을 미치는 작업을 하게 되면, 당신은 “관리자(root)”의 계정으로 로그인하거나, 임시로 그 권능을 양도받아야 한다는 것입니다.

자, 한 개인(사용자)이 무언가를 간절히 원합니다. 그런데 할 수 없는 일들이 있습니다. 이럴 때 관리자가 대신 해 달라고 하거나 잠깐 관리자의 권능을 빌려달라고 “기도”를 하게 되죠. 그렇게 임시로 관리자(root)의 권능을 빌려 어떤 일들을 하게 해주는 것이 있는데, 그게 “sudo”입니다. 여러분이 우분투 리눅스를 쓰게 된다면, 기본적으로 일반 사용자 계정으로 로그인했을 것이기에, sudo 명령어를 쓸 일이 종종 생길 것입니다. “관리자이시여, 제가 잠시 관리자의 영역을 넘나들어야 하나이다. 이 일을 할 수 있도록 힘을 주소서”

실제로 쓰는 법? 두 가지가 있습니다. CUI를 사용할 때는, 명령어 친 그 줄 맨 앞에 “sudo” 라고 써줍니다. 또 하나는 GUI가 이미 있는 경우, 알아서 권한이 필요하면 화면을 잠그고 암호를 물어봅니다. 그걸 입력해주면 됩니다.



자, 여기까지 잘 따라왔다면, 이제 리눅스와 본격적으로 친해지는 과정만 남았습니다. 내일부턴 이런 걸 바탕으로 리눅스를 내 입맛에 맞게 바꿔나갑시다. 다음 편부터는 다시 하나씩 직접 따라해 보는 내용이에요~

출처: 웹진ActOn
태그

리눅스 , 우분투

로그인하시면 태그를 입력하실 수 있습니다.
지각생의 다른 기사
관련기사
  • 관련기사가 없습니다.
많이본기사

의견 쓰기

덧글 목록