처음 터미널 창을 마주하면 깜빡이는 커서 앞에서 뭘 입력해야 할지부터 막막하다. 온라인 가이드마다 “터미널을 열고 이 명령을 입력하세요”라고 나오는데, 정작 경로가 뭔지, 파이프(|)가 뭔지, sudo를 왜 조심해야 하는지는 설명 없이 넘어가는 경우가 많다. Canonical의 공식 튜토리얼 The Linux command line for beginners는 이 빈틈을 실습 위주로 채워주는 입문 자료다. 이 글에서는 그 튜토리얼에 등장하는 명령어만 추려 카테고리별로 정리하고, 실제로 하나씩 실행해 확인한 결과를 남긴다.
위치 확인과 이동
| 명령어 | 설명 |
pwd | 현재 작업 디렉터리(working directory) 경로 출력 |
cd <dir> | 디렉터리 이동 |
cd (인자 없이) | 홈 디렉터리로 이동 |
cd .. / cd ../.. | 상위 / 두 단계 상위 디렉터리로 이동 |
cd ~ / cd ~/<dir> | 홈 디렉터리 기준 절대 경로 이동 |
cd /<path> | 루트(/) 기준 절대 경로 이동 |
whoami | 현재 로그인한 사용자명 출력 |
$ pwd
/home/noble
$ cd /
$ pwd
/
$ cd ~
$ pwd
/home/noble
$ whoami
noble
cd <dir>처럼 슬래시 없이 시작하면 현재 위치 기준 상대 경로, /나 ~로 시작하면 항상 같은 곳을 가리키는 절대 경로다.
폴더와 파일 만들기
| 명령어 | 설명 |
mkdir <dir> | 디렉터리 생성 |
mkdir <d1> <d2> <d3> | 여러 디렉터리를 한 번에 생성 |
mkdir -p <a>/<b>/<c> | 중간 경로가 없어도 한 번에 중첩 생성 |
mkdir "name with space" | 공백 있는 이름은 따옴표나 백슬래시(\)로 escape |
ls | 현재 디렉터리 목록 확인 |
$ mkdir /tmp/tutorial && cd /tmp/tutorial
$ mkdir dir1 dir2 dir3
$ mkdir -p dir4/dir5/dir6
$ mkdir "folder 1" "folder 2"
$ ls
dir1 dir2 dir3 dir4 'folder 1' 'folder 2'
mkdir -p는 dir4 하나만 목록에 나타난다 — dir5, dir6은 그 안에 중첩 생성됐기 때문이다.
리다이렉션으로 파일 만들기
| 명령어 | 설명 |
<command> > file | 출력을 파일로 저장(기존 내용 덮어씀) |
<command> >> file | 출력을 파일 끝에 이어붙임(append) |
cat <file> | 파일 내용 출력, 여러 파일을 이어붙여 출력 |
echo "text" | 인자로 받은 문자열을 그대로 출력 |
$ ls > output.txt
$ cat output.txt
dir1
dir2
dir3
dir4
folder 1
folder 2
output.txt
$ echo "This is a test" > test_1.txt
$ echo "This is a second test" > test_2.txt
$ echo "This is a third test" > test_3.txt
$ cat t* > combined.txt
$ cat t* >> combined.txt
$ cat combined.txt
This is a test
This is a second test
This is a third test
This is a test
This is a second test
This is a third test
cat t*를 >로 두 번 실행했다면 매번 덮어써 내용이 그대로였겠지만, 두 번째는 >>(append)라 같은 내용이 뒤에 이어붙어 6줄이 됐다.
파일 복사·이동·삭제
| 명령어 | 설명 |
cp <src> <dst> | 파일 복사 |
mv <src> <dst> | 파일 이동 또는 이름 변경 |
rm <file> | 파일 삭제(휴지통을 거치지 않고 즉시 삭제) |
rmdir <dir> | 빈 디렉터리 삭제 |
rm -r <dir> | 디렉터리를 내용물까지 재귀적으로 삭제 |
rm -i <file> | 삭제 전 하나씩 확인(대화형) |
* / ? | 와일드카드: 0개 이상 / 정확히 1개 문자 매칭 |
$ cp combined.txt backup_combined.txt
$ mv backup_combined.txt combined_backup.txt
$ rm combined_backup.txt
$ rmdir "folder 2"
$ rm -r "folder 1"
$ ls
combined.txt dir1 dir2 dir3 dir4 output.txt test_1.txt test_2.txt test_3.txt
rmdir는 내용이 없는 디렉터리만 지울 수 있고, 안에 파일/폴더가 남아 있으면 rm -r이 필요하다.
파이프라인으로 명령 연결하기
| 명령어 | 설명 |
<cmd1> | <cmd2> | cmd1의 출력(STDOUT)을 cmd2의 입력(STDIN)으로 연결 |
wc -l <file> | 줄 수 세기 |
sort <file> | 줄 단위로 정렬 |
uniq | 인접한 중복 줄 제거(먼저 정렬 필요) |
less <file> | 페이지 단위로 파일 보기(q로 종료) |
man <command> | 명령어 매뉴얼(man page) 열람 |
$ wc -l combined.txt
6 combined.txt
$ ls /etc | wc -l
246
$ cat combined.txt | uniq | wc -l
6
$ sort combined.txt | uniq | wc -l
3
uniq는 “인접한” 중복 줄만 지우기 때문에 정렬 없이 cat | uniq만 쓰면 6줄 그대로다. sort로 같은 줄을 붙여준 뒤에야 3줄로 줄어든다.
관리자 권한 (sudo)
| 명령어 | 설명 |
sudo <command> | 해당 명령 하나만 superuser 권한으로 실행 |
su | 다른 사용자(기본 root)로 전환 — Ubuntu는 root 계정이 기본 비활성화라 동작 안 함 |
sudo su | root 셸로 전환 — 이후 모든 명령이 root 권한으로 실행되니 주의 |
sudo apt install <pkg> | 패키지 설치 예시(superuser 권한 필요) |
$ cat /etc/shadow
cat: /etc/shadow: Permission denied
$ sudo cat /etc/shadow | head -1
root:<hash-redacted>:19837:0:99999:7:::
일반 사용자로는 /etc/shadow(암호 해시가 담긴 파일)를 읽을 수 없지만, sudo를 붙이면 비밀번호 확인 후 접근이 허용된다(해시 값은 보안상 위 출력에서 가렸다).
숨김 파일
| 명령어 | 설명 |
.filename | 이름이 점(.)으로 시작하면 숨김 파일/폴더가 됨 |
ls -a | 숨김 파일/폴더까지 전부 표시(., .. 포함) |
$ mv combined.txt .combined.txt
$ ls
dir1 dir2 dir3 dir4 output.txt test_1.txt test_2.txt test_3.txt
$ ls -a
. .. .combined.txt dir1 dir2 dir3 dir4 output.txt test_1.txt test_2.txt test_3.txt
이름 앞에 점만 붙이면 숨김 처리되고, ls -a로 확인하면 현재 디렉터리(.)와 상위 디렉터리(..)도 항목으로 같이 보인다.
주의사항
rm은 휴지통을 거치지 않고 즉시, 영구적으로 삭제한다. 특히rm -r은 대상 경로를pwd로 한 번 더 확인한 뒤 실행한다.- 와일드카드는 스페이스 하나로 의미가 완전히 달라진다 —
rm t*(t로 시작하는 파일 삭제)와rm t *(파일 t와 현재 디렉터리 전체 삭제)는 결과가 전혀 다르다. >리다이렉션은 기존 파일 내용을 통째로 덮어쓴다. 이어붙이려면>>를 쓴다.- root 계정을 직접 활성화하거나
su/sudo su로 장시간 root 셸에 머무르는 건 피한다. 필요한 명령 앞에만sudo를 붙이는 쪽이 안전하다. - 출처가 불분명한 사이트에서
curl | sudo bash류의 설치 스크립트를 그대로 실행하라고 하면, 먼저 스크립트 내용을 확인하고 실행한다.
마무리
경로(상대/절대), 리다이렉션, 파이프, sudo 이 네 가지 개념만 익혀도 온라인에서 흔히 보는 “터미널을 열고 이 명령을 입력하세요” 안내 대부분을 이해하고 안전하게 따라 할 수 있다.
참고
- The Linux command line for beginners (Canonical 공식 튜토리얼): 이 글이 명령어를 추린 원본
- The Linux command line for beginners (Ubuntu Desktop 공식 문서, 최신판): 위 튜토리얼을 대체한 최신 버전
- The Linux Command Line (William Shotts): 원본 튜토리얼이 추천하는 무료 PDF 서적