본문 바로가기
linux

유닉스 완전 정복 2026 | 실무 명령어·파일시스템·프로세스 관리까지

by devcomet 2026. 4. 17.
728x90

유닉스 완전 정복 2026을 위한 썸네일로, 파일시스템, 프로세스, 권한 관리, 쉘 및 명령어를 상징하는 아이콘들이 연결된 현대적인 디자인

핵심 요약

유닉스(Unix)는 리눅스·macOS·클라우드 서버의 공통 뿌리로, 백엔드 개발자와 시스템 엔지니어라면 실무에서 반드시 마주치는 환경입니다.

이 글에서는 유닉스 핵심 명령어, 파일시스템 구조, 권한 관리, 쉘 스크립트 자동화, 서버 운영 체크리스트까지 실무 중심으로 정리했습니다.

POSIX 표준 기반이라 유닉스·리눅스·macOS 어디서든 동일하게 적용됩니다.

 

2026 공공조달데이터·AI 활용 창업경진대회 완벽 가이드 – 조달청 주관, 6월 마감

조달청이 주관하는 2026 공공조달데이터·AI 활용 창업경진대회 신청 자격, 제출 서류, 심사 절차, 수상 혜택까지 한 번에 정리했습니다. 6월 19일 마감 전 반드시 확인하세요.

benefit.zzamlunch.com


목차

유닉스, 여전히 IT 실무의 뿌리

클라우드 시대에도 유닉스(Unix)는 사라지지 않았다. AWS·GCP·Azure의 서버 대부분이 리눅스 기반이고, macOS의 커널 역시 유닉스 계열(BSD)에서 파생됐다. 백엔드 개발자, 시스템 엔지니어, 데이터 엔지니어라면 유닉스 명령어와 철학을 모르고서는 실무에서 벽에 부딪히는 순간이 반드시 온다.

문제는 유닉스를 배우겠다고 마음먹어도 어디서부터 시작해야 할지 막막하다는 것이다. 책은 너무 두껍고, 인터넷 자료는 파편화돼 있다.

이 글에서는 2026년 실무 기준으로 꼭 알아야 할 유닉스 핵심 명령어, 파일시스템 구조, 프로세스와 권한 관리, 쉘 스크립트 자동화를 실무 중심으로 정리한다. 처음 배우는 사람도, 오랜만에 복습하는 사람도 바로 쓸 수 있도록 구성했다.

유닉스 공식 표준 문서 (The Open Group) →

유닉스 vs 리눅스 – 뭐가 다른가

많은 사람이 유닉스와 리눅스를 혼용하지만 정확히는 다르다.

유닉스는 1969년 AT&T 벨 연구소에서 탄생한 운영체제로, The Open Group의 인증을 받은 시스템만 공식 유닉스다. 대표적으로 IBM AIX, HP-UX, Oracle Solaris, macOS(POSIX 인증)가 여기에 속한다.

리눅스는 1991년 리누스 토르발스가 유닉스의 철학을 따라 새로 만든 오픈소스 커널이다. 유닉스의 설계 원칙(모든 것은 파일이다, 작은 프로그램을 파이프로 연결하라)을 이어받았지만 코드 계보는 다르다.

실무에서 중요한 것은 이 구분보다도 유닉스 계열 시스템의 공통 인터페이스인 POSIX 표준이다. POSIX를 알면 유닉스든 리눅스든 macOS든 동일한 명령어와 쉘 문법이 통용된다.

반드시 알아야 할 유닉스 핵심 명령어

파일 및 디렉터리 조작

명령어 기능 실무 예시
ls -alh 파일 목록 (숨김+권한+사람이 읽기 쉬운 크기) 디렉터리 내용 확인
find / -name "*.log" -mtime +7 7일 이상 된 .log 파일 검색 오래된 로그 정리
cp -r src/ dst/ 디렉터리 재귀 복사 백업 생성
chmod 755 script.sh 파일 권한 변경 실행 권한 부여
chown user:group file 파일 소유자 변경 서비스 계정 정리

텍스트 처리

명령어 기능 실무 예시
grep -r "ERROR" /var/log/ 재귀 패턴 검색 에러 로그 추적
awk '{print $1, $4}' access.log 특정 필드 추출 접속 IP 분석
sed 's/old/new/g' file.txt 문자열 치환 설정 파일 일괄 수정
sort -k2 -n file.txt 숫자 기준 정렬 응답시간 정렬 분석
uniq -c 중복 제거 + 카운트 접속 횟수 집계

프로세스 및 시스템

명령어 기능 실무 예시
ps aux | grep nginx 프로세스 목록 + 필터 서비스 실행 확인
top / htop 실시간 리소스 모니터 CPU/메모리 분석
df -h 디스크 사용량 용량 점검
du -sh /var/* 디렉터리별 용량 대용량 디렉터리 탐색
netstat -tulpn 열린 포트 확인 보안 점검
lsof -i :8080 특정 포트 사용 프로세스 포트 충돌 해결

Linux man pages 온라인 레퍼런스 →

유닉스 파일시스템 구조 이해

유닉스의 핵심 철학은 "모든 것은 파일이다(Everything is a file)"다. 하드웨어 장치, 네트워크 소켓, 프로세스 정보까지 모두 파일 인터페이스로 접근한다.

주요 디렉터리 역할

경로 역할 실무 중요도
/etc 시스템·서비스 설정 파일 ★★★ 매우 높음
/var/log 로그 파일 모음 ★★★ 매우 높음
/tmp 임시 파일 (재부팅 시 삭제) ★★ 보통
/proc 커널·프로세스 가상 파일시스템 ★★★ 진단 필수
/usr/local/bin 수동 설치 실행파일 ★★ 보통
/home 사용자 홈 디렉터리 ★★ 보통
/dev 장치 파일 ★ 저수준 개발 시

/proc/cpuinfo로 CPU 정보를, /proc/meminfo로 메모리 현황을 파일을 읽듯이 확인할 수 있다. cat /proc/loadavg는 시스템 부하를 숫자 세 개로 보여준다(1분/5분/15분 평균 부하).

권한 관리와 보안 실무

유닉스 권한 모델은 소유자(owner), 그룹(group), 기타(others) 세 계층으로 나뉜다. 각각 읽기(r=4), 쓰기(w=2), 실행(x=1) 권한의 합으로 표현한다.

  • chmod 644 file → 소유자 읽기+쓰기(6), 그룹 읽기(4), 기타 읽기(4)
  • chmod 755 script.sh → 소유자 전체(7), 그룹 읽기+실행(5), 기타 읽기+실행(5)

실무에서 자주 쓰는 권한 패턴

  • 웹 서버 설정 파일: 640 (소유자 읽기+쓰기, 그룹 읽기, 기타 접근 금지)
  • SSH 개인키: 600 (소유자만 읽기+쓰기, 이보다 느슨하면 ssh 연결 거부)
  • 실행 스크립트: 755 또는 700 (보안이 중요한 스크립트는 소유자만)
  • 공유 디렉터리: 775 + setgid 비트 (그룹 내 파일 생성 시 그룹 상속)

SUID, SGID, Sticky bit 같은 특수 권한도 실무에서 중요하다. /tmp 디렉터리의 sticky bit(chmod +t /tmp)는 자신이 만든 파일만 삭제 가능하게 해 다중 사용자 환경에서 파일 보호에 사용된다.

쉘 스크립트 자동화 실전

유닉스 실무의 꽃은 쉘 스크립트다. 반복 작업, 배치 처리, 서버 모니터링을 자동화하면 운영 효율이 크게 올라간다.

로그 백업 자동화 스크립트 예시

#!/bin/bash
LOG_DIR="/var/log/myapp"
BACKUP_DIR="/backup/logs"
DATE=$(date +%Y%m%d)

# 오늘 로그 압축 백업
tar -czf "${BACKUP_DIR}/app_${DATE}.tar.gz" "${LOG_DIR}/"

# 7일 이상 된 백업 파일 삭제
find "${BACKUP_DIR}" -name "*.tar.gz" -mtime +7 -delete

echo "백업 완료: ${DATE}" >> /var/log/backup.log

cron으로 매일 새벽 2시에 실행하려면 crontab에 다음을 추가한다.

0 2 * * * /usr/local/bin/backup_logs.sh

스크립트 작성 핵심 원칙

  • 첫 줄에 #!/bin/bash 또는 #!/usr/bin/env bash 명시
  • 변수는 "${VAR}" 형태로 항상 따옴표 처리 (공백 포함 경로 대비)
  • set -euo pipefail 맨 위에 추가해 에러 즉시 중단
  • 중요한 rm/삭제 전에 dry-run(echo 치환) 테스트 먼저

서버 운영 실무 체크리스트

신규 서버 세팅 시

  • root 패스워드 변경 및 SSH 키 기반 인증 설정
  • /etc/ssh/sshd_config에서 PasswordAuthentication no 설정
  • 방화벽(ufw/iptables) 기본 정책 DROP, 필요한 포트만 ALLOW
  • 불필요한 서비스 비활성화 (systemctl disable 적용)
  • 타임존 설정 확인 (timedatectl set-timezone Asia/Seoul)
  • NTP 동기화 확인 (timedatectl status)
  • 로그 로테이션 설정 /etc/logrotate.conf 검토

정기 점검 항목

  • 디스크 사용률 80% 이상 디렉터리 파악 (df -h, du -sh)
  • 좀비 프로세스 존재 여부 (ps aux | grep 'Z')
  • 비정상 포트 리스닝 여부 (netstat -tulpn)
  • 인증 로그 무차별 대입 시도 확인 (/var/log/auth.log)
  • 크론 작업 정상 실행 여부 확인 (/var/log/cron)
  • 패키지 보안 업데이트 확인 (apt list --upgradable / yum check-update)

성능 이슈 대응

  • CPU 스파이크: top → PID 확인 → strace -p PID로 시스템 콜 추적
  • 메모리 부족: /proc/meminfo + free -h → OOM killer 로그 확인 (dmesg | grep oom)
  • 디스크 I/O 병목: iostat -x 1iotop으로 프로세스별 I/O 확인
  • 네트워크 지연: ping, traceroute, ss -s로 연결 상태 진단

POSIX 표준 명령어 레퍼런스 →

자주 묻는 질문 (FAQ)

Q. 유닉스와 리눅스 중 어느 것을 먼저 배워야 하나요?

실무 목적이라면 리눅스(Ubuntu, CentOS, RHEL)부터 시작하는 것이 효율적입니다. 무료로 설치 가능하고 자료가 방대하며, 클라우드 서버 대부분이 리눅스 기반입니다. 유닉스 원리를 이해하면 리눅스는 자연스럽게 따라옵니다.

Q. 쉘 스크립트와 Python 중 서버 자동화에 뭐가 나은가요?

단순 파일 조작, 파이프라인, OS 명령어 조합은 쉘 스크립트가 유리합니다. 설치 없이 어디서든 실행되고 실행 오버헤드가 낮습니다. 반면 데이터 파싱, API 호출, 복잡한 로직이 필요하면 Python이 낫습니다. 실무에서는 두 가지를 섞어 쓰는 경우가 많습니다.

Q. `sudo`와 `su -` 차이가 무엇인가요?

sudo는 현재 사용자 권한을 유지하면서 특정 명령어만 root 권한으로 실행합니다. su -는 root 계정으로 완전히 전환하며 root의 환경변수와 PATH를 그대로 가져옵니다. 보안 측면에서는 sudo를 사용해 필요한 명령만 권한을 부여하는 것이 권장됩니다.

Q. 프로세스가 죽지 않을 때 `kill -9` 말고 방법이 있나요?

kill -9(SIGKILL)은 프로세스를 강제 종료해 정리 작업(파일 닫기, 임시파일 삭제)을 건너뜁니다. 먼저 kill -15(SIGTERM)로 정상 종료를 시도하고, 그래도 안 되면 kill -2(SIGINT, Ctrl+C 동작)를 써보세요. 그래도 안 될 때만 kill -9를 씁니다.

Q. 유닉스 명령어를 어디서 연습하면 좋나요?

WSL2(Windows Subsystem for Linux)로 Windows에서 리눅스 환경을 띄우거나, macOS 터미널을 바로 활용할 수 있습니다. 클라우드 실습이 목적이라면 AWS Free Tier EC2 인스턴스(t2.micro, Ubuntu)를 무료로 1년 사용할 수 있습니다.

728x90
home 기피말고깊이 tnals1569@gmail.com