오늘도 공부
리눅스 필수 명령어 완벽 가이드 📚 본문
CodeDeck - 개발자를 위한 코드 학습 카드 뉴스
프로그래밍 언어와 프레임워크를 카드 뉴스 형태로 쉽게 배우는 개발자 학습 플랫폼
www.codedeck.kr
리눅스를 처음 시작하는 분들을 위한 필수 명령어 모음집입니다. 각 명령어마다 실용적인 예제를 포함하여 쉽게 따라할 수 있도록 구성했습니다.
📂 파일 및 디렉토리 관리
1️⃣ ls - 디렉토리 내용 보기
리눅스에서 가장 많이 사용하는 명령어로, 현재 디렉토리의 파일과 폴더 목록을 확인합니다.
예제:
# 기본 사용법
ls
# 자세한 정보와 함께 보기
ls -la
# 특정 디렉토리 내용 보기
ls /home/user/Documents
# 파일 크기를 읽기 쉽게 표시
ls -lh
2️⃣ pwd - 현재 작업 디렉토리 확인
지금 어느 위치에 있는지 전체 경로를 보여줍니다.
예제:
pwd
# 출력 예: /home/user/projects
3️⃣ cd - 디렉토리 이동
원하는 폴더로 이동할 때 사용합니다.
예제:
# 홈 디렉토리로 이동
cd ~
# 상위 디렉토리로 이동
cd ..
# 특정 경로로 이동
cd /var/log
# 이전 디렉토리로 돌아가기
cd -
4️⃣ mkdir - 디렉토리 생성
새로운 폴더를 만듭니다.
예제:
# 단일 디렉토리 생성
mkdir my_project
# 여러 디렉토리 동시 생성
mkdir folder1 folder2 folder3
# 중첩된 디렉토리 생성
mkdir -p parent/child/grandchild
5️⃣ rm - 파일/디렉토리 삭제
파일이나 폴더를 삭제합니다. 주의해서 사용해야 합니다!
예제:
# 파일 삭제
rm file.txt
# 여러 파일 삭제
rm file1.txt file2.txt
# 디렉토리와 내용 전체 삭제
rm -rf folder_name
# 삭제 전 확인 메시지
rm -i important_file.txt
6️⃣ mv - 파일 이동 및 이름 변경
파일을 이동하거나 이름을 바꿉니다.
예제:
# 파일 이름 변경
mv old_name.txt new_name.txt
# 파일 이동
mv file.txt /home/user/Documents/
# 여러 파일 이동
mv *.jpg /home/user/Pictures/
7️⃣ cp - 파일 복사
파일이나 디렉토리를 복사합니다.
예제:
# 파일 복사
cp source.txt destination.txt
# 디렉토리 전체 복사
cp -r source_folder/ destination_folder/
# 백업 생성
cp important.txt important.txt.backup
8️⃣ touch - 빈 파일 생성
새로운 빈 파일을 만들거나 파일의 타임스탬프를 업데이트합니다.
예제:
# 빈 파일 생성
touch newfile.txt
# 여러 파일 동시 생성
touch file1.txt file2.txt file3.txt
9️⃣ ln - 심볼릭 링크 생성
파일이나 디렉토리의 바로가기(링크)를 만듭니다.
예제:
# 심볼릭 링크 생성
ln -s /path/to/original /path/to/link
# 예: 설정 파일 링크
ln -s ~/Dropbox/config/.bashrc ~/.bashrc
📄 파일 내용 확인
🔟 cat - 파일 내용 출력
파일의 전체 내용을 터미널에 표시합니다.
예제:
# 파일 내용 보기
cat file.txt
# 여러 파일 합쳐서 보기
cat file1.txt file2.txt
# 줄 번호와 함께 보기
cat -n file.txt
1️⃣3️⃣ less - 페이지 단위로 파일 보기
긴 파일을 편하게 스크롤하며 볼 수 있습니다.
예제:
# 파일 내용을 페이지별로 보기
less largefile.log
# 검색: /검색어 입력 후 엔터
# 종료: q 키 누르기
1️⃣2️⃣ echo - 텍스트 출력
터미널에 텍스트를 출력하거나 파일에 저장합니다.
예제:
# 텍스트 출력
echo "Hello, World!"
# 변수 출력
echo $PATH
# 파일에 텍스트 추가
echo "새로운 줄" >> file.txt
# 파일 덮어쓰기
echo "처음부터 다시" > file.txt
1️⃣9️⃣ head - 파일 앞부분 보기
파일의 처음 몇 줄을 출력합니다.
예제:
# 기본 10줄 보기
head file.txt
# 처음 20줄 보기
head -n 20 file.txt
# 여러 파일의 처음 부분 보기
head file1.txt file2.txt
2️⃣0️⃣ tail - 파일 끝부분 보기
파일의 마지막 몇 줄을 출력합니다. 로그 모니터링에 유용합니다.
예제:
# 마지막 10줄 보기
tail file.txt
# 마지막 50줄 보기
tail -n 50 error.log
# 실시간 로그 모니터링
tail -f /var/log/syslog
🔍 검색 및 비교
1️⃣8️⃣ grep - 텍스트 검색
파일이나 출력에서 특정 문자열을 찾습니다.
예제:
# 파일에서 검색
grep "error" log.txt
# 대소문자 구분 없이 검색
grep -i "ERROR" log.txt
# 여러 파일에서 검색
grep "TODO" *.js
# 재귀적으로 디렉토리 검색
grep -r "function" ./src/
# 줄 번호와 함께 표시
grep -n "import" app.py
2️⃣1️⃣ diff - 파일 비교
두 파일의 차이점을 찾습니다.
예제:
# 두 파일 비교
diff file1.txt file2.txt
# 나란히 비교
diff -y file1.txt file2.txt
# 통합 형식으로 보기
diff -u original.txt modified.txt
2️⃣2️⃣ cmp - 파일 동일성 확인
두 파일이 동일한지 바이트 단위로 비교합니다.
예제:
# 파일 비교
cmp file1.txt file2.txt
# 차이점 상세 정보
cmp -l file1.bin file2.bin
4️⃣6️⃣ whereis - 명령어 위치 찾기
바이너리, 소스, 매뉴얼 페이지의 위치를 찾습니다.
예제:
# Python 위치 찾기
whereis python
# gcc 관련 파일 모두 찾기
whereis gcc
4️⃣7️⃣ whatis - 명령어 설명 보기
명령어가 무엇인지 간단히 설명합니다.
예제:
# ls 명령어 설명
whatis ls
# 여러 명령어 동시 조회
whatis cat grep sed
📊 파일 처리
2️⃣4️⃣ sort - 내용 정렬
파일 내용을 정렬하여 출력합니다.
예제:
# 기본 정렬
sort names.txt
# 역순 정렬
sort -r numbers.txt
# 숫자로 정렬
sort -n numbers.txt
# 중복 제거
sort -u list.txt
1️⃣7️⃣ tar - 압축 및 아카이브
여러 파일을 하나로 묶거나 압축합니다.
예제:
# 압축 파일 생성
tar -czf archive.tar.gz folder/
# 압축 해제
tar -xzf archive.tar.gz
# 내용 확인
tar -tzf archive.tar.gz
# 특정 디렉토리에 압축 해제
tar -xzf archive.tar.gz -C /path/to/destination/
2️⃣6️⃣ zip - ZIP 압축
ZIP 형식으로 파일을 압축합니다.
예제:
# 파일 압축
zip archive.zip file1.txt file2.txt
# 디렉토리 압축
zip -r project.zip project_folder/
# 암호 설정
zip -e secure.zip sensitive.doc
2️⃣7️⃣ unzip - ZIP 압축 해제
ZIP 파일의 압축을 풉니다.
예제:
# 기본 압축 해제
unzip archive.zip
# 특정 디렉토리에 해제
unzip archive.zip -d /target/folder/
# 내용만 확인
unzip -l archive.zip
💻 시스템 정보
1️⃣5️⃣ uname - 시스템 정보
운영체제 및 시스템 정보를 확인합니다.
예제:
# 모든 정보 보기
uname -a
# 커널 버전만 보기
uname -r
# 운영체제 이름
uname -s
1️⃣4️⃣ man - 매뉴얼 페이지
명령어의 상세한 사용법을 확인합니다.
예제:
# ls 명령어 매뉴얼
man ls
# 특정 섹션 보기
man 5 passwd
# 검색
man -k network
3️⃣8️⃣ wget - 파일 다운로드
인터넷에서 파일을 다운로드합니다.
예제:
# 파일 다운로드
wget https://example.com/file.zip
# 이름 지정하여 다운로드
wget -O newname.zip https://example.com/file.zip
# 중단된 다운로드 이어받기
wget -c https://example.com/large-file.iso
3️⃣5️⃣ df - 디스크 공간 확인
파일시스템의 디스크 사용량을 표시합니다.
예제:
# 기본 사용량 보기
df
# 읽기 쉬운 형식으로
df -h
# 특정 파일시스템만
df -h /home
3️⃣6️⃣ chown - 소유권 변경
파일이나 디렉토리의 소유자를 변경합니다.
예제:
# 소유자 변경
sudo chown user file.txt
# 소유자와 그룹 동시 변경
sudo chown user:group file.txt
# 디렉토리 전체 재귀적 변경
sudo chown -R user:group /var/www/
🔐 권한 및 보안
3️⃣4️⃣ chmod - 파일 권한 변경
파일의 읽기, 쓰기, 실행 권한을 변경합니다.
예제:
# 실행 권한 추가
chmod +x script.sh
# 숫자로 권한 설정 (755 = rwxr-xr-x)
chmod 755 script.sh
# 모든 사용자에게 읽기 권한
chmod a+r file.txt
# 재귀적으로 권한 변경
chmod -R 644 /var/www/html/
4️⃣2️⃣ sudo - 관리자 권한 실행
명령어를 관리자 권한으로 실행합니다.
예제:
# 패키지 설치
sudo apt install nginx
# 파일 편집
sudo nano /etc/hosts
# 관리자 권한 유지하며 여러 명령 실행
sudo -i
5️⃣0️⃣ passwd - 비밀번호 변경
사용자 계정의 비밀번호를 변경합니다.
예제:
# 현재 사용자 비밀번호 변경
passwd
# 다른 사용자 비밀번호 변경 (관리자)
sudo passwd username
🌐 네트워크
2️⃣8️⃣ ssh - 원격 접속
안전하게 원격 서버에 접속합니다.
예제:
# 기본 접속
ssh user@server.com
# 포트 지정
ssh -p 2222 user@server.com
# 키 파일 사용
ssh -i ~/.ssh/mykey.pem user@server.com
# X11 포워딩
ssh -X user@server.com
3️⃣6️⃣ ifconfig - 네트워크 인터페이스 정보
네트워크 인터페이스와 IP 주소 정보를 확인합니다.
예제:
# 모든 인터페이스 보기
ifconfig
# 특정 인터페이스만
ifconfig eth0
# IP 주소 변경 (관리자 권한)
sudo ifconfig eth0 192.168.1.100
3️⃣9️⃣ ufw - 방화벽 관리
Ubuntu 방화벽을 간단하게 관리합니다.
예제:
# 방화벽 활성화
sudo ufw enable
# 포트 허용
sudo ufw allow 22
sudo ufw allow 80/tcp
# 상태 확인
sudo ufw status
# 규칙 삭제
sudo ufw delete allow 80
4️⃣0️⃣ iptables - 고급 방화벽 설정
더 세밀한 방화벽 규칙을 설정합니다.
예제:
# 현재 규칙 보기
sudo iptables -L
# 특정 IP 차단
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
# 포트 허용
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
3️⃣7️⃣ traceroute - 네트워크 경로 추적
패킷이 목적지까지 가는 경로를 확인합니다.
예제:
# 경로 추적
traceroute google.com
# 최대 홉 수 지정
traceroute -m 20 google.com
⚙️ 프로세스 관리
1️⃣6️⃣ whoami - 현재 사용자 확인
현재 로그인한 사용자 이름을 표시합니다.
예제:
whoami
# 출력 예: john
3️⃣0️⃣ ps - 실행 중인 프로세스 확인
시스템의 프로세스 정보를 표시합니다.
예제:
# 현재 터미널의 프로세스
ps
# 모든 프로세스 자세히 보기
ps aux
# 특정 사용자의 프로세스
ps -u username
# 트리 형태로 보기
ps auxf
4️⃣8️⃣ top - 실시간 프로세스 모니터링
시스템 리소스 사용량을 실시간으로 확인합니다.
예제:
# 기본 실행
top
# 특정 사용자 프로세스만
top -u username
# 종료: q 키
# 정렬: Shift+P (CPU), Shift+M (메모리)
3️⃣1️⃣ kill / killall - 프로세스 종료
프로세스를 종료시킵니다.
예제:
# 프로세스 ID로 종료
kill 1234
# 강제 종료
kill -9 1234
# 이름으로 모든 프로세스 종료
killall firefox
# 안전한 종료 시그널
kill -15 1234
2️⃣9️⃣ service - 시스템 서비스 관리
백그라운드 서비스를 시작, 중지, 재시작합니다.
예제:
# 서비스 시작
sudo service nginx start
# 서비스 중지
sudo service nginx stop
# 서비스 재시작
sudo service nginx restart
# 상태 확인
sudo service nginx status
📦 패키지 관리
4️⃣1️⃣ apt - 패키지 관리 (Ubuntu/Debian)
소프트웨어를 설치, 업데이트, 제거합니다.
예제:
# 패키지 목록 업데이트
sudo apt update
# 시스템 업그레이드
sudo apt upgrade
# 패키지 설치
sudo apt install nginx
# 패키지 제거
sudo apt remove nginx
# 검색
apt search python
# 패키지 정보 확인
apt show nginx
🔧 사용자 관리
4️⃣4️⃣ alias - 명령어 단축키 만들기
자주 사용하는 명령어에 별칭을 지정합니다.
예제:
# 단축키 만들기
alias ll='ls -la'
alias update='sudo apt update && sudo apt upgrade'
# 영구적으로 저장 (~/.bashrc에 추가)
echo "alias ll='ls -la'" >> ~/.bashrc
# 현재 alias 목록 보기
alias
4️⃣9️⃣ useradd / usermod - 사용자 계정 관리
시스템에 새로운 사용자를 추가하거나 수정합니다.
예제:
# 새 사용자 추가
sudo useradd -m -s /bin/bash newuser
# 홈 디렉토리와 함께 생성
sudo useradd -m -d /home/customhome username
# 그룹에 사용자 추가
sudo usermod -aG sudo username
# 사용자 정보 수정
sudo usermod -l newname oldname
🗄️ 기타 유용한 명령어
1️⃣0️⃣ ca - 파일 내용 터미널 출력
(원본 이미지에서 "ca"로 표기되어 있으나, 일반적으로 "cat"의 오타로 보입니다)
1️⃣1️⃣ clear - 터미널 화면 지우기
터미널 화면을 깨끗하게 정리합니다.
예제:
clear
# 또는 단축키: Ctrl + L
2️⃣3️⃣ comm - 파일 비교 (정렬된 파일)
정렬된 두 파일을 라인별로 비교합니다.
예제:
# 공통된 줄만 표시
comm -12 file1.txt file2.txt
# file1에만 있는 줄
comm -23 file1.txt file2.txt
# file2에만 있는 줄
comm -13 file1.txt file2.txt
2️⃣5️⃣ export - 환경 변수 설정
시스템 환경 변수를 설정합니다.
예제:
# 환경 변수 설정
export PATH=$PATH:/new/path
# 변수 확인
echo $PATH
# 영구 설정 (~/.bashrc에 추가)
echo 'export JAVA_HOME=/usr/lib/jvm/java-11' >> ~/.bashrc
3️⃣3️⃣ mount - 파일시스템 마운트
디스크나 파티션을 시스템에 연결합니다.
예제:
# USB 드라이브 마운트
sudo mount /dev/sdb1 /mnt/usb
# ISO 파일 마운트
sudo mount -o loop image.iso /mnt/iso
# 현재 마운트된 목록
mount | grep /dev/sd
4️⃣3️⃣ cal - 달력 보기
터미널에서 달력을 표시합니다.
예제:
# 이번 달 달력
cal
# 특정 연도 전체
cal 2024
# 3개월 보기
cal -3
4️⃣5️⃣ dd - 디스크 복사 및 백업
저수준에서 데이터를 복사합니다. 주의해서 사용!
예제:
# ISO를 USB에 굽기
sudo dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress
# 디스크 백업
sudo dd if=/dev/sda of=/backup/disk.img bs=4M
# 메모리 테스트용 파일 생성
dd if=/dev/zero of=testfile bs=1M count=100
💡 실전 팁
파이프(|) 활용
여러 명령어를 연결하여 강력한 조합을 만듭니다.
예제:
# 프로세스 검색
ps aux | grep python
# 가장 큰 파일 10개 찾기
du -ah /home | sort -rh | head -10
# 로그에서 에러만 필터링
cat /var/log/syslog | grep -i error | tail -20
# 특정 포트 사용 프로세스 찾기
netstat -tulpn | grep :80
리다이렉션 활용
명령어 출력을 파일로 저장합니다.
예제:
# 출력을 파일에 저장 (덮어쓰기)
ls -la > file_list.txt
# 출력을 파일에 추가
echo "New entry" >> log.txt
# 에러 메시지를 파일에 저장
command 2> error.log
# 출력과 에러 모두 저장
command > output.log 2>&1
백그라운드 실행
프로그램을 백그라운드에서 실행합니다.
예제:
# 백그라운드 실행
python script.py &
# nohup으로 로그아웃 후에도 실행
nohup python script.py &
# 포그라운드로 가져오기
fg
# 백그라운드 작업 목록
jobs
🎓 마무리
이 가이드에 소개된 명령어들은 리눅스를 사용하는 데 있어 가장 기본이 되는 도구들입니다. 처음에는 어렵게 느껴질 수 있지만, 자주 사용하다 보면 자연스럽게 익숙해집니다.
학습 팁:
- man 명령어로 더 자세한 설명 확인하기
- --help 옵션으로 간단한 도움말 보기
- 매일 조금씩 새로운 명령어 시도해보기
- 실제 프로젝트에 적용하며 익히기
- 명령어를 조합하여 자신만의 워크플로우 만들기
추가 학습 자료:
- tldr 명령어: 간단한 예제 중심 도움말
- apropos 키워드: 관련 명령어 검색
- 온라인 튜토리얼: Linux Journey, OverTheWire 등
'개발상식' 카테고리의 다른 글
| 좋은 Git 커밋 메시지 작성법 (0) | 2025.11.12 |
|---|---|
| README 파일 작성 완벽 가이드 - 실전 예제와 함께 (0) | 2025.11.12 |
| 대규모 시스템 설계 블루프린트: 완벽 가이드 (0) | 2025.10.28 |
| 2025년 기준 주요 Vercel 대체 플랫폼들의 장단점 (0) | 2025.10.25 |
| 프로그래밍 기본기가 주는 불공평한 경쟁력 (0) | 2025.10.01 |
