Recent Posts
Recent Comments
반응형
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Archives
Today
Total
관리 메뉴

오늘도 공부

리눅스 필수 명령어 완벽 가이드 📚 본문

개발상식

리눅스 필수 명령어 완벽 가이드 📚

행복한 수지아빠 2025. 11. 3. 14:57
반응형

 

 

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

🎓 마무리

이 가이드에 소개된 명령어들은 리눅스를 사용하는 데 있어 가장 기본이 되는 도구들입니다. 처음에는 어렵게 느껴질 수 있지만, 자주 사용하다 보면 자연스럽게 익숙해집니다.

학습 팁:

  1. man 명령어로 더 자세한 설명 확인하기
  2. --help 옵션으로 간단한 도움말 보기
  3. 매일 조금씩 새로운 명령어 시도해보기
  4. 실제 프로젝트에 적용하며 익히기
  5. 명령어를 조합하여 자신만의 워크플로우 만들기

추가 학습 자료:

  • tldr 명령어: 간단한 예제 중심 도움말
  • apropos 키워드: 관련 명령어 검색
  • 온라인 튜토리얼: Linux Journey, OverTheWire 등

 

반응형