무서운 검은 화면을 해커의 놀이터로 만들어 봅시다.
리눅스를 처음 접하면 보통 검은 터미널 화면을 보며 잘못 건드렸다가 폭발할 것 같은 무서운 도구라고 느낍니다. 실수로 뭔가를 눌러서 홈 디렉토리를 날려버릴까봐 겁이 나는 것이죠. 하지만 일단 익숙해지면, 이 화면은 여러분을 멋진 해커처럼 보이게 만들어 줍니다.
이 포스트를 읽고 나면 리눅스 터미널에서 자유롭게 이동하고, 파일을 관리하고, 당황하지 않고 텍스트를 편집할 수 있습니다.
1. 어두운 집 #
CLI(Command Line Interface, 명령줄 인터페이스)를 탐색하는 건 한밤중에 잠에서 깨는 것과 비슷합니다.
누군가 예쁜 GUI(Graphical User Interface, 그래픽 사용자 인터페이스)를 빼앗고 CLI 화면 앞에 던져놓는다면, 정전이 난 것처럼 막막하게 느껴질 겁니다.
소파에서 낮잠을 자다가 새벽 3시에 깼다고 상상해 봅시다. 사방이 캄캄하고 침대까지 가는 길은 알고 있지만, 아무것도 보이지 않습니다.
터미널을 사용하는 것은 정확히 이와 같습니다. 한 걸음 내딛기 전에 내가 어디 있는지, 주변에 무엇이 있는지 확인해야 합니다. 어디로 가야 할지 정확히 안다면 곧장 방으로 걸어갈 수 있습니다. 하지만 테이블에 발부리를 걸리지 않도록 항상 조심해야 합니다.
2. 집 안을 돌아다니기 #
새벽 3시, 불은 꺼지고, 손전등도 없습니다. 침대까지 가고 싶습니다.
먼저 자신의 위치를 확인해야 합니다. pwd(Print Working Directory)가 이 역할을 합니다. 지금 내가 서 있는 곳을 정확히 알려줍니다.
$ pwd
/home/my_family/first_floor이동하기 전에 주변에 무엇이 있는지 알아야 테이블에 걸려 넘어지지 않습니다. ls(List) 명령어는 주변을 손으로 더듬어 확인하는 것과 같습니다. 옵션을 추가하면 숨겨진 항목이나 상세 정보도 볼 수 있습니다.
$ ls
couch kitchen lamp restroom staircase trash_bin TV
$ ls -a
couch kitchen lamp .phone .remote restroom TV user123_room
# Now you found a phone and a remote hidden under the couch!
# (Files starting with '.' are hidden in Linux)
$ ls -l
total 32
-rwxr-xr-x. 1 family family 4096 Dec 27 20:22 couch
drwxr--r--. 1 family family 4096 Dec 6 20:02 kitchen
-rwxr--r--. 1 family family 10517 Dec 26 18:51 lamp
drwxr-xr-x. 1 family family 4096 Dec 26 17:49 restroom
-rwxr-xr-x. 1 parents family 840 Dec 26 18:03 TV
-rwxr-xr-x. 1 family family 840 Dec 26 18:03 trash_bin
drwxr-xr-x. 1 user123 family 4096 Dec 26 18:03 user123_room
# You can see full details about each item or room
# You won't see hidden items here참고: -a와 -l을 합쳐 -la로 사용하면 모든 항목의 상세 정보를 볼 수 있습니다.
상세 보기(-l)를 켜면 암호 같은 코드들이 나타납니다. 비밀 코드처럼 보이지만 걱정하지 마세요. 해독 해보겠습니다.
-rwxrw-r-- 1 user group 46 Feb 14 16:37 File.txt
^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | |
1 2 3 4 5 6 7 8- 파일 유형:
-(파일) 또는d(디렉토리) - 권한(Permissions):
rwxrw-r--(누가 무엇을 할 수 있는지) - 소유자 및 그룹: 이 항목을 소유한 사람
- 크기 및 시간: 크기와 마지막으로 수정된 시각
첫 번째 부분을 자세히 봅시다. 방에 들어오거나 물건을 만질 수 있는 사람을 정의합니다.
Type Owner Group Others
[-] [rwx] [rw-] [r--]
| | | |
File Read Read Read
Write Write
Execrwx가 보이면 소유자가 모든 권한(읽기, 쓰기, 실행)을 갖고 있다는 뜻입니다.
이제 지도 읽는 법을 배웠으니 이동해 봅시다.
먼저 화장실(restroom)로 가겠습니다. 목록에 보이므로 cd(Change Directory) 명령어로 바로 들어갈 수 있습니다.
$ cd restroom
$ pwd
/home/my_family/first_floor/restroom
$ ls
bath_tub body_wash hand_soap shampoo shower sink toilet towel볼일을 마치고 침실(user123_room)로 가고 싶습니다. 그런데 ls로 보니 방이 없습니다! 두 가지 방법이 있습니다.
- 복도로 나가서 위치를 확인한 뒤 방으로 들어가기.
$ cd ..
$ cd user123_room- 복도로 나가면서 바로 방으로 들어가기.
$ cd ../user123_room..이 뭔가요?
리눅스에서 점 하나(.)는 여기(현재 위치), 점 두 개(..)는 **부모 디렉토리(한 단계 위)**를 나타냅니다.
(아쉽게도 점은 두 개가 최대입니다. “...“이나 “....“은 없습니다.)
상대 경로 vs. 절대 경로
점(. 또는 ..)을 사용하는 방법은 현재 위치 근처에서만 작동합니다. 친구 집에 있거나 현재 위치에서 멀리 떨어져 있다면 어떨까요? 친구 집 화장실에서 나올 수는 있지만(..), 거기서 내 방(user123_room)을 찾을 수는 없습니다.
이럴 때는 절대 경로(전체 주소)가 필요합니다.
# Relative path (Works only if you are in the hallway)
$ cd user123_room
# Absolute path (Works from anywhere in the universe)
$ cd /home/my_family/user123_room3. 마법 주문: 파일 조작 #
이제 상상력이 좀 더 필요합니다. 캄캄한 집 안을 걷는 사람이 아니라 마법사가 되었습니다. 마법 지팡이로 방과 물건을 만들거나, 쓰레기를 순식간에 없앨 수 있습니다.
생성 (mkdir, touch)
먼저 빈 방을 만들어 봅시다. 주문은 mkdir(Make Directory)입니다.
$ mkdir new_room빈 파일(물건)을 만들고 싶다면 touch를 사용합니다.
$ touch magic_scroll.txt순간이동 (mv)
거실에 있는 TV를 새 방으로 옮기고 싶습니다. mv(Move) 주문을 외웁니다.
$ mv /home/my_family/first_floor/TV /home/my_family/first_floor/new_room/참고: 리눅스에서 파일 이름을 바꾸는 것은 같은 위치에 새 이름으로 이동하는 것과 같습니다.
$ mv old_name.txt new_name.txt복제 (cp)
TV를 가져가면 아빠가 슬퍼할 것입니다. cp(Copy)로 복제본을 만들어 봅시다.
# Copy TV to the parent directory
$ cp ./TV ../이제 모두가 행복합니다!
소멸 (rm)
엄마가 쓰레기를 버려달라고 했습니다. 마법 능력으로 그냥 소각해 버리면 됩니다. rm(Remove)을 사용합니다.
$ rm ./trash_bin팁:
rm을 사용할 때는 정확히 무엇을 삭제하는지 알 수 있도록 상대 경로를 사용하는 것이 좋습니다.
경고: Windows나 Mac과 달리 리눅스의 rm은 파일을 휴지통에 보내지 않습니다.
rm으로 삭제된 파일은 영원히 사라집니다. 소각된 것입니다. 이 주문을 사용할 때는 신중하게 하십시오.
4. X-Ray 시야 (파일 확인하기) #
밖에 나갔다 오니 부모님이 테이블에 메모를 남겨두었습니다.
사촌 데리러 공항에 간다.
부엌 좀 치워놔.
저녁 내내 TV만 보지 말고.
… (100줄 더) …
우리 오기 전에 숙제 꼭 다 끝내놓아.
저녁에 뭐 사다줄 거 있으면 전화해.
어떻게 읽을까요?
cat: 메모 전체를 한 번에 열기less: 내용 뷰어에서 위아래로 스크롤하며 읽기head: 처음 몇 줄만 확인tail: 마지막 몇 줄만 확인
추천 사용법:
| 명령어 | 사용 상황 |
|---|---|
cat |
짧은 파일 (한 화면에 들어오는 분량) |
less |
긴 파일 (로그 파일이나 코드) |
head |
첫 부분만 확인하고 싶을 때 |
tail |
최신 내용 확인 (로그 파일 끝부분) |
참고: less는 내용 뷰어입니다. 닫으려면 q를 누르세요. ESC로는 닫히지 않습니다.
# Read the first 2 lines
$ head -2 note.txt
Hey, we are leaving to pick up your cousin from the airport.
You have a few things to do once you are back.
# Read the last 2 lines
$ tail -2 note.txt
Make sure to finish your homework before we are back.
Call if you want us to pick up anything for dinner.5. 기록하기 (에디터) #
답장을 쓰고 싶습니다. 터미널에서는 Microsoft Word를 열 수 없습니다. nano나 vim 같은 터미널 에디터가 필요합니다.
그리고… emacs 이야기는 지금 하지 않겠습니다. emacs 팬이시라면 양해 부탁드립니다.
옵션 1: Nano (메모장)
간단한 메모지와 펜이 필요하다면 nano를 사용하세요. 초보자에게 매우 친화적입니다.
$ nano reply.txt
원하는 내용을 그냥 입력하면 됩니다. 단축키는 화면 하단에 표시됩니다.
^는 Ctrl 키를 의미합니다.- 저장:
Ctrl + O(Write Out)를 누른 뒤 Enter. - 종료:
Ctrl + X.
옵션 2: Vim (전문가 도구) 강력하지만 조금 까다로운 도구입니다. 가장 중요한 개념은 모드입니다.
- 일반 모드(Normal Mode): 텍스트를 입력할 수 없습니다. 내용을 보거나 명령을 입력하는 모드입니다.
- 입력 모드(Insert Mode): 실제로 텍스트를 입력하고 편집할 수 있습니다.

Vim에서 살아남는 법:
vim reply.txt를 입력합니다.i를 눌러 입력을 시작합니다 (Insert Mode).- 다 작성했으면
Esc를 누릅니다 (Insert Mode 종료). :wq를 입력하고 Enter를 누릅니다 (저장 후 종료).- 막혀서 패닉 상태라면?
Esc를 누르고:q!를 입력합니다 (저장 없이 강제 종료).
6. 비밀 팁 #
이 팁들은 우리끼리만 알기로 합시다.
1. Tab 자동완성 (마법 키) 긴 파일 이름을 직접 타이핑하지 마세요. 앞 글자 몇 개만 입력하고 TAB 키를 누르면 됩니다.
$ cd /home/my_family/first_f [TAB]
# Becomes:
$ cd /home/my_family/first_floor/2. 히스토리 (방향키) 전에 사용한 명령어가 있나요? 다시 타이핑하지 말고 위아래 방향키로 이전 명령어를 찾아 실행하세요.
3. 중단 버튼 (Ctrl + C) 실행 중인 프로그램에서 빠져나오고 싶거나, 잘못 입력한 명령어를 취소하고 싶다면? Ctrl + C를 누르세요.
[user@linux]$ i_wrote_a_very_long_random_command [Ctrl+C]
[user@linux]$ i_wrote_a_very_long_random_command^C
[user@linux]$ (Canceled!)4. 화면 초기화 (clear)
화면이 너무 지저분해졌나요? clear를 입력하면 화면이 깨끗하게 지워집니다.
금지된 주문 마지막 경고입니다. 절대로 이 명령어는 실행하지 마세요.
$ rm -rf /이것은 리눅스 세계의 핵폭탄 버튼입니다. 루트 디렉토리에서 모든 것을 삭제하려고 시도합니다. 한 번 실행하면 되돌릴 수 없습니다.
정리
- 탐색:
pwd(어디 있지?),ls(주변에 뭐 있지?),cd(이동하기). - 관리:
mkdir(디렉토리 생성),touch(파일 생성),cp(복사),mv(이동/이름 변경),rm(삭제). - 보기:
cat(짧은 파일),less(긴 파일),head/tail(처음/끝 부분). - 편집:
nano(간단한 도구),vim(고급 도구). - 생존: TAB으로 자동완성, Ctrl+C로 중단.
잘 하셨습니다! 이제 어두운 곳에서도 편안하게 이동할 수 있습니다.
즐거운 컴퓨팅 되세요!