리눅스 기본 명령어 완벽 가이드 – 초보자도 바로 따라하는 실습 예제
리눅스 터미널 앞에서 명령어가 헷갈리시나요? 오늘은 **자동완성, 파일 관리, 사용자 관리, 권한 설정**까지 리눅스의 핵심 명령어를 실습 예제와 함께 완전히 정리해드립니다.
안녕하세요! 리눅스를 처음 접하면 가장 먼저 마주하는 게 ‘명령어’죠. 처음엔 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 tester
usermod -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 환경설정 가이드 - 프리 티어로 시작하는 서버 만들기 (5) | 2025.08.11 |
---|---|
리눅스 개요와 배포판 이해하기 (9) | 2025.08.05 |