문서의 이전 판입니다!
목차
Linux 기본 명령어 완전 정복
← 돌아가기: Linux 완전 정복 가이드 ← 다음: 권한 설정 & 고급 명령어
Linux 터미널이 처음이신가요? 괜찮습니다! 차근차근 따라하다 보면 어느새 Linux 고수가 되어 있을 거예요.
🎯 학습 목표
이 가이드를 마치면: - 파일과 폴더를 자유자재로 다룰 수 있습니다 - 터미널에서 길을 잃지 않고 원하는 곳으로 이동할 수 있습니다 - 파일 내용을 확인하고 검색할 수 있습니다 - 실무에서 자주 쓰는 명령어들을 자연스럽게 사용할 수 있습니다
🚀 Linux 터미널 첫 만남
Linux가 뭔가요?
Linux는 스마트폰의 안드로이드, 웹사이트를 돌리는 서버, 심지어 냉장고까지! 우리 주변 어디에나 있는 운영체제입니다.
터미널은 마우스 클릭 대신 글자로 명령을 내리는 방식입니다. 처음엔 불편해 보이지만, 익숙해지면 마우스보다 훨씬 빠르고 정확해요!
터미널 열기
Windows (WSL):
Windows 키 + R → "wsl" 입력 → 엔터
Mac:
Cmd + Space → "터미널" 검색 → 엔터
Linux:
Ctrl + Alt + T
🧭 1단계: 내가 어디에 있는지 파악하기
pwd - 현재 위치 확인
의미: “Print Working Directory” (현재 작업 중인 디렉토리 출력)
pwd
결과 예시:
/home/username
🔍 이해하기: - Linux에서는 모든 파일과 폴더가 트리 구조로 되어 있어요 - `/`가 최상위 폴더(루트)이고, 그 아래로 가지를 뻗어나가는 형태 - `/home/username`은 “루트 아래 home 폴더 아래 username 폴더”를 의미
ls - 현재 위치의 파일과 폴더 보기
의미: “List” (목록 보기)
# 기본 사용법 ls # 자세한 정보까지 보기 ls -l # 숨겨진 파일까지 모두 보기 ls -a # 자세한 정보 + 숨겨진 파일 모두 보기 ls -la
결과 해석:
drwxr-xr-x 2 user user 4096 Jan 15 10:30 Documents -rw-r--r-- 1 user user 1234 Jan 15 09:15 hello.txt
- 첫 글자: d
는 폴더, -
는 파일
- 숫자: 파일 크기 (바이트)
- 날짜/시간: 마지막 수정 시간
cd - 다른 폴더로 이동하기
의미: “Change Directory” (디렉토리 변경)
# Documents 폴더로 이동 cd Documents # 상위 폴더로 이동 cd .. # 홈 폴더로 이동 cd ~ cd (아무것도 안 적기) # 루트 폴더로 이동 cd / # 이전 위치로 돌아가기 cd -
💡 실습해보기:
pwd # 현재 위치 확인 ls # 뭐가 있는지 보기 cd Documents # Documents 폴더로 이동 pwd # 이동했는지 확인 cd .. # 다시 원래 위치로 pwd # 돌아왔는지 확인
📁 2단계: 폴더 만들고 지우기
mkdir - 새 폴더 만들기
의미: “Make Directory” (디렉토리 생성)
# 기본 사용법 mkdir 새폴더 # 여러 폴더 한 번에 만들기 mkdir 폴더1 폴더2 폴더3 # 중간 폴더가 없어도 자동으로 만들어주기 mkdir -p 프로젝트/문서/2024년/1월
💡 실습해보기:
mkdir 연습폴더 ls # 폴더가 생겼는지 확인 cd 연습폴더 pwd # 들어왔는지 확인
rmdir - 빈 폴더 지우기
의미: “Remove Directory” (디렉토리 삭제)
# 빈 폴더만 삭제 가능 rmdir 빈폴더 # 폴더 안에 파일이 있으면 삭제 안됨 (안전장치)
⚠️ 주의: rmdir
은 빈 폴더만 지울 수 있어요. 파일이 들어있는 폴더는 나중에 배울 rm -r
을 사용해야 합니다.
📄 3단계: 파일 다루기
touch - 빈 파일 만들기
의미: 원래는 파일의 시간을 바꾸는 명령어인데, 파일이 없으면 새로 만들어줘요
# 빈 파일 만들기 touch 새파일.txt # 여러 파일 한 번에 만들기 touch 파일1.txt 파일2.txt 파일3.txt
cp - 파일 복사하기
의미: “Copy” (복사)
# 기본 사용법: cp 원본 복사본 cp 원본.txt 복사본.txt # 폴더째 복사하기 cp -r 원본폴더 복사폴더 # 다른 폴더로 복사하기 cp 파일.txt /다른/폴더/경로/
💡 실습해보기:
touch 원본.txt # 빈 파일 만들기 cp 원본.txt 복사본.txt # 복사하기 ls # 두 파일이 모두 있는지 확인
mv - 파일 이동하기 (이름 바꾸기)
의미: “Move” (이동)
# 파일 이름 바꾸기 mv 옛이름.txt 새이름.txt # 파일을 다른 폴더로 이동 mv 파일.txt /다른/폴더/ # 폴더 이름 바꾸기 mv 옛폴더명 새폴더명
🔍 이해하기: mv
는 이동과 이름 바꾸기를 동시에 할 수 있어요!
rm - 파일 지우기
의미: “Remove” (삭제)
# 파일 삭제 rm 파일.txt # 여러 파일 삭제 rm 파일1.txt 파일2.txt # 폴더와 그 안의 모든 내용 삭제 rm -r 폴더명
⚠️ 경고: rm
은 되돌릴 수 없어요! 특히 rm -r
은 매우 위험하니 조심하세요.
💡 실습해보기:
touch 테스트.txt # 테스트 파일 만들기 ls # 파일이 있는지 확인 rm 테스트.txt # 파일 삭제 ls # 파일이 사라졌는지 확인
📖 4단계: 파일 내용 보기
cat - 파일 내용 전체 보기
의미: “Concatenate” (연결하다)
# 파일 내용 보기 cat 파일.txt # 여러 파일 내용 한 번에 보기 cat 파일1.txt 파일2.txt # 파일에 내용 추가하기 cat >> 파일.txt (내용 입력 후 Ctrl+D로 종료)
💡 실습해보기:
echo "안녕하세요" > 인사.txt # 파일에 내용 쓰기 cat 인사.txt # 내용 확인
less - 파일 내용 페이지별로 보기
의미: 긴 파일을 편리하게 볼 수 있어요
less 긴파일.txt
조작법: - 스페이스바: 다음 페이지 - b: 이전 페이지 - q: 종료 - /검색어: 내용 검색 - G: 파일 끝으로 이동 - g: 파일 처음으로 이동
head - 파일 앞부분 보기
의미: 파일의 첫 몇 줄만 보기
# 처음 10줄 보기 (기본값) head 파일.txt # 처음 5줄만 보기 head -n 5 파일.txt
tail - 파일 뒷부분 보기
의미: 파일의 마지막 몇 줄만 보기
# 마지막 10줄 보기 (기본값) tail 파일.txt # 마지막 20줄 보기 tail -n 20 파일.txt # 실시간으로 추가되는 내용 보기 (로그 파일에 유용) tail -f 로그파일.txt
🔍 5단계: 파일과 내용 찾기
find - 파일 찾기
의미: 조건에 맞는 파일을 찾아줘요
# 현재 폴더에서 이름으로 찾기 find . -name "*.txt" # 특정 폴더에서 찾기 find /home/user -name "*.pdf" # 대소문자 구분 없이 찾기 find . -iname "*.TXT" # 폴더만 찾기 find . -type d -name "test*" # 파일만 찾기 find . -type f -name "*.log"
💡 실습해보기:
touch 테스트1.txt 테스트2.txt 문서.pdf # 테스트 파일들 만들기 find . -name "*.txt" # txt 파일들 찾기 find . -name "테스트*" # 테스트로 시작하는 파일 찾기
grep - 파일 내용에서 텍스트 찾기
의미: “Global Regular Expression Print” (전역 정규표현식 출력)
# 파일에서 특정 단어 찾기 grep "찾을단어" 파일.txt # 대소문자 구분 없이 찾기 grep -i "hello" 파일.txt # 여러 파일에서 찾기 grep "에러" *.log # 줄 번호와 함께 출력 grep -n "함수" 코드.py # 찾은 단어 주변 3줄도 함께 보기 grep -C 3 "중요" 문서.txt
💡 실습해보기:
echo "안녕하세요 리눅스 세계입니다" > 인사.txt echo "리눅스는 정말 재미있어요" >> 인사.txt grep "리눅스" 인사.txt # 리눅스가 포함된 줄 찾기 grep -n "재미" 인사.txt # 재미가 포함된 줄과 줄 번호 보기
🎯 실전 연습 문제
🏋️ 연습 1: 프로젝트 폴더 구조 만들기
# 1. 홈 디렉토리에서 시작 cd ~ # 2. 프로젝트 폴더 구조 만들기 mkdir -p 내프로젝트/문서/2024 mkdir -p 내프로젝트/코드/파이썬 mkdir -p 내프로젝트/코드/웹개발 # 3. 각 폴더에 테스트 파일 만들기 touch 내프로젝트/문서/2024/계획서.txt touch 내프로젝트/코드/파이썬/main.py touch 내프로젝트/코드/웹개발/index.html # 4. 구조 확인 find 내프로젝트 -type f
🏋️ 연습 2: 파일 정리하기
# 1. 테스트 파일들 만들기 touch 문서1.txt 문서2.pdf 이미지1.jpg 이미지2.png 코드1.py # 2. 파일 종류별로 폴더 만들기 mkdir 문서파일 이미지파일 코드파일 # 3. 파일들을 적절한 폴더로 이동 mv *.txt *.pdf 문서파일/ mv *.jpg *.png 이미지파일/ mv *.py 코드파일/ # 4. 결과 확인 ls -la 문서파일/ 이미지파일/ 코드파일/
🏋️ 연습 3: 로그 파일 분석하기
# 1. 가상의 로그 파일 만들기 echo "2024-01-15 10:30:00 INFO 서버 시작" > 서버.log echo "2024-01-15 10:31:00 ERROR 데이터베이스 연결 실패" >> 서버.log echo "2024-01-15 10:32:00 INFO 데이터베이스 연결 성공" >> 서버.log echo "2024-01-15 10:33:00 WARNING 메모리 사용량 높음" >> 서버.log # 2. 로그 분석하기 cat 서버.log # 전체 로그 보기 grep "ERROR" 서버.log # 에러만 찾기 grep -c "INFO" 서버.log # INFO 로그 개수 세기 tail -n 2 서버.log # 마지막 2줄만 보기
💡 꿀팁 모음
🚀 생산성 향상 팁:
1. Tab 키 활용: 파일명이나 폴더명을 일부만 입력하고 Tab을 누르면 자동완성!
<code bash> cd Doc[Tab] # Documents로 자동완성 </code>
2. 히스토리 활용: 이전에 입력한 명령어 재사용
<code bash> history # 이전 명령어 목록 보기 !123 # 123번째 명령어 다시 실행 !! # 바로 이전 명령어 다시 실행 </code>
3. 와일드카드 활용: 여러 파일을 한 번에 처리
<code bash> ls *.txt # 모든 txt 파일 ls test?.txt # test1.txt, test2.txt 등 ls test[1-3].txt # test1.txt, test2.txt, test3.txt </code>
4. 명령어 조합: 여러 명령어를 한 번에
<code bash> mkdir 새폴더 && cd 새폴더 # 폴더 만들고 바로 이동 ls -la | grep "txt" # 파일 목록에서 txt만 필터링 </code>
⚠️ 주의사항:
- rm -rf
는 매우 위험해요! 복구 불가능합니다.
- 중요한 파일은 항상 백업하세요
- 명령어를 모르면 man 명령어
로 도움말을 확인하세요
- 파일명에 공백이 있으면 따옴표로 감싸주세요: “파일 이름.txt”
🎓 다음 단계: 기본 명령어가 익숙해지면 권한 설정 & 고급 명령어로 넘어가세요!
📚 참고자료
- 공식 문서: https://linux.die.net/man/ - 연습 사이트: https://cmdchallenge.com/ - 치트시트: https://www.cheatsheet.wtf/Linux/
💬 도움이 필요하면: 각 명령어 뒤에 –help
를 붙이거나 man 명령어
를 입력하면 자세한 설명을 볼 수 있어요!