리눅스 기본 명령어 완벽 가이드 – 초보자도 바로 따라하는 실습 예제
리눅스 터미널 앞에서 명령어가 헷갈리시나요? 오늘은 **자동완성, 파일 관리, 사용자 관리, 권한 설정**까지 리눅스의 핵심 명령어를 실습 예제와 함께 완전히 정리해드립니다.

안녕하세요! 리눅스를 처음 접하면 가장 먼저 마주하는 게 ‘명령어’죠. 처음엔 ls와 cd 정도만 알아도 뭔가 프로그래머가 된 기분이 들지만, 막상 깊게 들어가면 디렉터리 구조, 권한, 사용자 관리까지 배워야 할 게 많습니다. 이번 글에서는 리눅스 기본 명령어를 **PDF 자료의 예제 코드 그대로** 가져와 실습과 함께 설명드릴 거예요. 명령어 설명과 예제, 그리고 제가 직접 써본 팁까지 곁들여서 초보자도 쉽게 이해할 수 있도록 구성했습니다. 글을 끝까지 보시면, 리눅스 환경에서 기본 작업을 혼자서 척척 해낼 수 있을 겁니다.
목차
1. 자동 완성과 명령어 이력 활용
리눅스 터미널의 **자동 완성** 기능은 초보자뿐 아니라 숙련자에게도 필수입니다. 긴 디렉터리 경로나 파일명을 모두 타이핑하지 않고 Tab 키 한 번으로 완성할 수 있으니까요.
자동 완성 기본 사용법
cd /li [Tab] syst [Tab] sys [Tab]
- 파일명이나 디렉터리명을 일부 입력한 후 Tab을 누르면 나머지가 자동 완성됩니다.
- 비슷한 이름이 여러 개라면, Tab을 두 번 눌러 후보 목록을 확인합니다.
예를 들어 cd /etc로 이동 후 cd sys + Tab을 누르면 후보가 여러 개 나오고, syst까지 입력하면 systemd로 바로 완성됩니다.
명령어 이력 관리 – history
자동 완성과 함께 많이 쓰는 기능이 명령어 이력입니다. 터미널에서 위/아래 화살표를 누르면 이전에 실행했던 명령어가 나옵니다.
$ history # 모든 명령어 이력 확인
$ history -c # 명령어 이력 전체 삭제
💡 팁 : 특정 명령어를 다시 실행하고 싶을 땐 !번호 형식을 사용하면 됩니다. 예를 들어 !25는 이력 25번 명령을 바로 실행합니다.
실습 시나리오 예제
- 홈 디렉터리에서
/etc로 이동 sys입력 후 Tab 두 번 눌러 후보 목록 확인syst입력 후 Tab 눌러systemd로 완성- 이전 명령어 기록을
history로 확인
이렇게 자동 완성과 이력 기능만 잘 활용해도, 리눅스 작업 속도가 2배는 빨라집니다.
2. 디렉터리 구조와 이동 명령어
리눅스 시스템은 계층형 디렉터리 구조를 가지고 있습니다. 최상위는 루트 디렉터리(/)이며, 그 아래에 다양한 역할을 하는 디렉터리들이 배치됩니다. 이를 이해하면 파일 위치를 빠르게 파악하고 이동할 수 있습니다.
기본 디렉터리 이동 명령어
$ pwd # 현재 디렉터리 경로 확인
$ ls # 현재 디렉터리 목록 출력
$ ls -l # 상세 정보까지 출력
$ cd .. # 상위 디렉터리로 이동
$ cd users # 하위 디렉터리로 이동
$ cd ~ # 홈 디렉터리로 이동
💡 팁 : clear 명령을 사용하면 터미널 화면 내용을 한 번에 지워서 작업 결과를 깔끔하게 볼 수 있습니다.
주요 시스템 디렉터리 설명
| 디렉터리 | 설명 |
|---|---|
| /bin → /usr/bin | 기본 명령어 저장소 (ls, cp, mv 등), 실제 위치는 /usr/bin |
| /boot | 시스템 부팅에 필요한 커널, 부트로더 설정 파일 |
| /dev | 디바이스 파일, 하드웨어 장치 접근 (/dev/sda 등) |
| /etc | 시스템 설정 파일 저장소 |
| /home | 일반 사용자 홈 디렉터리 |
| /lib → /usr/lib | 시스템 라이브러리 저장소, 실제 위치는 /usr/lib |
| /sbin → /usr/sbin | 시스템 관리용 명령어 저장소 |
| /var | 변경되는 데이터 저장 (로그, 캐시 등) |
심볼릭 링크(lrwxrwxrwx)는 다른 경로를 참조하는 기능입니다. 예를 들어 /bin 디렉터리가 /usr/bin으로 연결되어 있어도, 사용자는 그냥 /bin 안의 명령어를 실행하면 됩니다.
디렉터리 구조 실습
sudo su -로 root 권한 획득cd /로 루트 디렉터리 이동ls -l로 하위 디렉터리 및 링크 구조 확인
이 과정을 거치면, 디렉터리 구조의 큰 그림을 머릿속에 그릴 수 있어 이후 파일 관리가 훨씬 수월해집니다.
3. 파일 생성·편집·삭제·복사·이동 🔧
리눅스에서 가장 자주 하는 일이 바로 파일 생성과 편집, 그리고 삭제/복사/이동입니다. 아래 예제들은 첨부된 PDF의 실습 명령을 그대로 사용해 정리했습니다. (명령은 터미널에서 순서대로 실행하세요.)
3-1) 작업 디렉터리 만들기와 이동 🚶
1. Documents 디렉터리로 이동 후 testdir 디렉터리를 생성하고 testdir 디렉터리로 이동
$ mkdir testdir
$ cd testdir
-
mkdir는 디렉터리를 생성하고,cd는 이동합니다. - 경로를 길게 입력할 때는 Tab 자동완성을 적극 활용하세요.
3-2) Vim으로 텍스트 파일 생성/편집 ✍️
터미널에서 텍스트 편집은 Vim을 많이 사용합니다. PDF의 예제를 그대로 따라가며 첫 파일을 만들어 봅니다.
2. testdir 디렉터리에 test.txt 파일을 생성하기 위해 vim 명령을 사용
$ vim test.txt
Vim은 입력 모드와 ex(명령) 모드가 있습니다. PDF의 안내처럼 다음 흐름으로 저장/종료를 연습합니다.
3. 새로 만든 파일에 아무 내용이나 입력해 보면 제대로 입력되지 않음
Vim에는 문서를 작성하는 ‘입력 모드’와 문서를 저장하는 ‘ex 모드’가 있음
Vim 명령으로 문서를 생성하거나 편집할 때 ‘ex모드’가 기본 모드
영문자 I 또는 a를 누름
Esc 키를 누르고 명령어 입력
4. 텍스트 입력을 위해 ex 모드 상태에서 i 또는 a를 눌러서 입력 모드 상태로 변경 → “안녕하세요. “ 입력
파일을 저장하기 위해 입력 모드에서 Esc 키를 누르고 ex 모드로 변경
‘:wq’를 입력하고 저장하고 Vim 편집기 종료하고 터미널 환경으로 돌아옴
만약 비정상 종료로 .swp 파일이 남았다면 PDF에 나온 대로 처리합니다.
⚫ 비정상 종료 : .test.txt.swp 스왑 파일 생성
▪ 스왑 파일 삭제하기
ls -a 명령을 입력하여 파일 확인, rm -rf .new.txt.swp 명령 입력
▪ 해당 스왑 파일을 삭제하면 new.txt 파일을 정상적으로 편집할 수 있음
3-3) 텍스트 내용/파일 유형 빠르게 확인 👀
▪ 터미널 환경에서 텍스트 문서의 내용을 간단히 확인할 때는 리눅스의 cat {파일이름} 명령을 사용
▪ test.txt 파일의 내용 확인
$ cat text.txt
⚫ 텍스트로 작성된 파일의 앞 10행 또는 마지막 10행만 출력 : head, tail
$ head cloud-init.log
$ tail cloud-init.log
⚫ 텍스트로 작성된 파일을 화면에 페이지 단위로 출력
$ more cloud-init.log
⚫ File이 어떤 종류의 파일인지를 표시
$file test.txt
$file cloud-init.log
💡 참고 : cat text.txt는 PDF의 표기 그대로 인용했습니다. 실습 중 실제 파일명이 test.txt라면 cat test.txt로 확인하세요.
3-4) 파일/디렉터리 조작(생성·삭제·복사·이동) 🧩
| 명령 | 용도 | PDF 예제 (그대로) |
|---|---|---|
touch |
크기 0의 새 파일 생성, 기존 파일이면 수정시간 갱신 | $touch abc.txt |
cp |
파일/디렉터리 복사 | $cp abc.txt cba.txt |
mv |
이름 변경 또는 위치 이동 | $mv abc.txt test.txt |
rm |
파일/디렉터리 삭제 | $ rm -r testdir |
rmdir |
비어있는 디렉터리 삭제 | $rmdir test |
삭제 옵션 자세히 보기 (rm)
| 옵션 | 설명 | PDF 표기 |
|---|---|---|
-r |
디렉터리와 내부 전체를 재귀적으로 삭제 | -r 옵션을 붙이면 디렉터리 안에 있는 하위 디렉터리와 파일을 모두 삭제 |
-f / --force |
확인 없이 강제 삭제 | 강제 삭제삭제 확인 메시지 없이 파일을 강제로 삭제 |
-i |
삭제 전 확인 요청 | 삭제 확인파일을 삭제하기 전에 확인 메시지를 표시 |
-v / --verbose |
삭제 과정을 상세 출력 | 삭제 과정을 자세히 출력 |
-rf |
디렉터리 강제 삭제(주의) | 디렉터리와 그 안의 모든 파일을 강제로 삭제 |
⚠️ 주의 : rm -rf는 복구가 거의 불가능하니, 경로를 두 번 확인하고 실행하세요.
3-5) 세션 마무리와 정리 🧹
⚫ 터미널 종료
$ exit
- 실습 후에는
history로 실행 이력을 점검하고, 중요 명령은 메모해 두면 다음 작업이 빨라집니다. -
clear로 화면을 정리하면 결과 확인이 한결 수월해요.
3-6) 체크리스트 ✅
4. 사용자와 그룹 관리 👥
리눅스는 다중 사용자 시스템입니다. 즉, 여러 사용자가 동시에 한 시스템을 쓰더라도 계정과 그룹, 그리고 권한으로 작업 범위를 깔끔하게 나누죠. 이 파트에서는 첨부된 자료의 예제 코드 그대로 보여드리면서, 계정 정보가 어디에 저장되는지, 어떤 명령으로 사용자를 추가·변경·삭제하는지 한 번에 정리합니다. 중간중간 초보자가 헷갈리기 쉬운 포인트도 체크해 둘게요. 🙂
4-1) 사용자/비밀번호/그룹 정보 파일 📁
가장 기본은 /etc/passwd, /etc/shadow, /etc/group 세 파일입니다. 자료의 예제를 그대로 확인해 볼게요.
# cat passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
…
tcpdump:x:72:72::/:/sbin/nologin
ec2-user:x:1000:1000:EC2 Default User:/home/ec2-user:/bin/bash
각 행은 사용자 이름:암호:사용자 ID:그룹 ID:전체 이름:홈 디렉터리:기본 셸 의미를 가집니다. 예시도 그대로 살펴보죠.
# cat passwd
root:x:0:0:root:/root:/bin/bash
- root : 시스템 관리자 계정 (UID=0, GID=0), 홈
/root, 셸/bin/bash - 비밀번호는 실제로
/etc/shadow에 저장되므로x로 표시됩니다.
root:$6$saltsalt$EtlHlRc.4Ivkj93v9I.vI4u/:18648:0:99999:7:::
위와 같은 /etc/shadow 항목은 암호화된 비밀번호, 마지막 변경일, 최소/최대 사용기간, 만료 경고, 잠금 기간, 계정 만료일 등의 필드를 포함합니다.
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:ec2-user
…
users:x:100:
nobody:x:65534:
…
screen:x:84:
ec2-user:x:1000:
/etc/group 형식은 그룹명:비밀번호:그룹ID:그룹에 속한 사용자명입니다. 예를 들어 adm 그룹은 시스템 로그 확인 권한 등 특정 역할을 갖습니다.
| 파일 | 역할 | 핵심 필드 |
|---|---|---|
/etc/passwd |
사용자 기본 정보 | name:x:UID:GID:comment:home:shell |
/etc/shadow |
암호/만료 정책 | hash:lastchg:min:max:warn:inactive:expire |
/etc/group |
그룹 정보 | group:x:GID:members |
4-2) 사용자(User) 관리 명령어 🧑💻
자료의 명령을 그대로 따라 적었습니다. 옵션 설명도 함께 보세요.
▪ 새로운 사용자를 추가
useradd [옵션] 사용자이름
# useradd newuser
• 사용자 생성시 옵션
-u : ID 지정
-g : 그룹 지정 useradd -G wheel john
-d : 홈 디렉터리 지정 useradd -d /home/john john
-s : 셸 지정 useradd -s /bin/bash john
▪ 사용자의 비밀번호를 지정하거나 변경
# passwd newuser
▪ 사용자의 속성을 변경
usermod [옵션] 사용자이름
# usermod -g root test1
• 옵션
-l: 사용자 이름 변경
-d: 홈 디렉터리 변경
-m: 홈 디렉터리 이동
-s: 기본 셸 변경
-g: 추가 그룹 지정
-L: 계정 잠금, -U: 계정 잠금 해제
▪ 사용자를 삭제
# userdel tester
▪ 사용자의 암호를 주기적으로 변경하도록 설정
# chage -m 2 newuser
- 주의 :
userdel전에는 중요한 홈 디렉터리 자료를 백업하세요. - 계정 정책은
chage로 최소/최대 사용 기간 등을 관리할 수 있습니다.
4-3) 그룹(Group) 관리 명령어 🧩
▪ 현재 사용자가 속한 그룹을 보여줌
# groups
▪ 새로운 그룹을 생성
# groupadd tester
▪ 그룹의 속성을 변경
# groupmod -n newtester tester
• 옵션
-n: 그룹 이름 변경
-g: 그룹 ID(GID) 변경
▪ 그룹을 삭제
# groupdel newtester
▪ 그룹의 암호를 설정하거나, 그룹의 관리를 수행
# gpasswd newgroup
| 범주 | 명령 | 용도/예시 |
|---|---|---|
| 사용자 | useradd, passwd, usermod, userdel, chage |
생성/비번/속성변경/삭제/암호정책 |
| 그룹 | groupadd, groupmod, groupdel, gpasswd, groups |
생성/변경/삭제/관리/소속확인 |
4-4) 자주 하는 실수와 안전수칙 🚨
- /etc/passwd나 /etc/group을 직접 편집하는 대신 해당
user*/group*명령을 사용하세요. - 계정 잠금(
usermod -L)과 해제(-U)는 실수로 서비스 계정을 막지 않게 신중히. - 새 사용자 생성 시
-s /bin/bash등 원하는 셸을 명시하고, 홈 디렉터리(-d)도 함께 확인하세요.
4-5) 따라 해보는 간단 루틴 ✅
useradd newuser→passwd newuser로 비밀번호 설정groupadd tester→ 필요 시groupmod -n newtester testerusermod -g root test1로 기본 그룹 바꾸기(예시)groups로 소속 그룹 확인chage -m 2 newuser로 암호 정책 적용
5. 🔑 파일 소유권과 권한 관리
리눅스는 모든 파일과 디렉터리에 대해 소유권과 접근 권한을 설정합니다. 이를 통해 시스템의 보안과 안정성을 유지하죠. 이번 절에서는 chmod, chown, chgrp 명령을 이용해 권한을 설정하고 소유권을 변경하는 방법을 살펴봅니다.
5-1. 파일 권한 구조 이해
리눅스 파일 권한은 소유자(owner), 그룹(group), 기타 사용자(others)로 나뉘며, 각 주체별로 읽기(r), 쓰기(w), 실행(x) 권한을 부여하거나 제거할 수 있습니다.
# 파일 상세 정보 확인
ls -l
-rwxr-xr-- 1 user group 4096 Aug 11 10:00 script.sh
r: 읽기 권한 (4)w: 쓰기 권한 (2)x: 실행 권한 (1)
5-2. chmod : 권한 변경
chmod 명령어는 기호 모드와 8진수 모드 두 가지 방법으로 권한을 변경할 수 있습니다.
# 실행 권한 추가 (기호 모드)
chmod u+x script.sh
# 읽기/쓰기/실행 권한 설정 (8진수 모드)
chmod 755 script.sh
| 8진수 값 | 권한 |
|---|---|
| 7 | rwx (읽기, 쓰기, 실행) |
| 6 | rw- (읽기, 쓰기) |
| 5 | r-x (읽기, 실행) |
5-3. chown : 파일 소유권 변경
chown 명령은 파일이나 디렉터리의 소유자를 변경합니다. 주로 관리자 권한이 필요합니다.
# 소유자 변경
sudo chown user1 file.txt
# 소유자와 그룹 변경
sudo chown user1:group1 file.txt
5-4. chgrp : 그룹 소유권 변경
그룹 소유권만 변경하려면 chgrp 명령을 사용합니다.
# 그룹 소유권 변경
sudo chgrp developers project/
💡 TIP : 권한과 소유권 변경은 보안에 직결되므로 변경 전 반드시 필요성을 확인하세요.
6. 💡 실습 팁과 자주 쓰는 명령어 모음
리눅스를 다루다 보면 기본 명령어를 빠르게 활용하는 것이 큰 도움이 됩니다. 이번 절에서는 실습 중 유용하게 쓸 수 있는 명령어 모음과 함께, 초보자가 헷갈리기 쉬운 사용 팁을 정리했습니다.
6-1. 디렉터리 탐색과 이동
# 현재 작업 디렉터리 확인
pwd
# 홈 디렉터리로 이동
cd ~
# 상위 디렉터리로 이동
cd ..
# 특정 경로로 이동
cd /etc
pwd: 현재 경로를 출력cd: 디렉터리 이동..: 상위 디렉터리
6-2. 파일 및 디렉터리 관리
# 파일 목록 보기
ls -l
# 숨김 파일 포함 목록 보기
ls -la
# 디렉터리 생성
mkdir new_folder
# 파일 복사
cp source.txt backup.txt
# 파일 이동/이름 변경
mv file1.txt file2.txt
# 파일 삭제
rm file.txt
| 명령어 | 설명 |
|---|---|
ls -l |
자세한 파일 정보 출력 |
mkdir |
새 디렉터리 생성 |
cp |
파일 복사 |
6-3. 파일 내용 확인 및 검색
# 파일 내용 출력
cat file.txt
# 페이지 단위로 보기
less file.txt
# 특정 단어 검색
grep "keyword" file.txt
💡 TIP : grep에 -n 옵션을 주면 검색 결과의 줄 번호까지 함께 표시됩니다.
6-4. 시스템 상태 확인
# 현재 로그인 사용자
who
# 현재 실행 중인 프로세스
ps aux
# 디스크 사용량
df -h
# 메모리 사용량
free -h
df -h: 디스크 공간을 사람이 읽기 쉬운 단위로 표시free -h: 메모리 사용량을 보기 좋게 출력
🔚 마무리
이번 글에서는 리눅스 기본 명령어와 파일 관리, 권한 설정, 실습 팁까지 초보자도 쉽게 따라 할 수 있는 예제로 정리했습니다. 명령어 하나하나가 단순해 보여도, 실제 서버 운영이나 개발 환경에서 적용해 보면 그 가치가 훨씬 크게 느껴질 것입니다.
앞으로 리눅스를 더 깊게 배우고자 한다면, 오늘 배운 명령어를 반복 연습하며 자신의 워크플로우에 자연스럽게 녹여내는 것이 중요합니다.
또한, 파일 권한과 소유권 개념은 보안과 직결되므로 반드시 숙지해야 하며, 실무에서 발생할 수 있는 오류를 미리 예방하는 습관을 들이는 것이 좋습니다.
다음에는 프로세스 관리, 네트워크 관련 명령어, 셸 스크립트 등 한 단계 더 심화된 주제로 찾아오겠습니다. 꾸준히 연습하고 체득한다면, 리눅스는 더 이상 어렵지 않고 여러분의 든든한 도구가 될 것입니다. 🚀
'Linux + AWS' 카테고리의 다른 글
| AWS EC2 환경설정 가이드 - 프리 티어로 시작하는 서버 만들기 (6) | 2025.08.11 |
|---|---|
| 리눅스 개요와 배포판 이해하기 (9) | 2025.08.05 |