![[1일차] 2025 정보처리산업기사 운영체제 - 운영체제 종류 리눅스편 1 정보처리산업기사 운영체제](https://i0.wp.com/jupocket.com/wp-content/uploads/2025/05/image.png?resize=492%2C492&ssl=1)
오늘은 유닉스에 이어 리눅스(Linux) 운영체제를 정리했다.
리눅스는 오픈소스 기반으로 개발된 운영체제이며, 서버와 클라우드 환경의 표준으로 자리 잡고 있다.
윈도우보다 명령 중심적이지만, 구조가 명확하고 시스템 제어가 자유로워 실무와 시험에서 모두 중요하게 다뤄진다.
정보처리산업기사 1개월 단기 과정 스케줄을 확인하고 싶은분들은 아래글을 이용바랍니다.
1. 리눅스의 개요
리눅스는 1991년 리누스 토르발스(Linus Torvalds)가 개발한 커널에서 시작되었다.
“유닉스 호환”을 목표로 만들어졌으며, 누구나 수정·배포 가능한 GPL(General Public License) 을 따른다.
현재는 커널을 중심으로 배포판(Distro)이 다양하게 발전했으며,
대표적인 계열은 다음과 같다.
| 계열 | 대표 배포판 | 특징 |
|---|---|---|
| Debian 계열 | Ubuntu, Kali | 직관적, 패키지 관리가 쉬움 |
| Red Hat 계열 | CentOS, Fedora, RHEL | 안정적, 기업용 서버 중심 |
| Arch 계열 | Arch Linux, Manjaro | 최신 버전 중심, 커스터마이징 자유도 높음 |
2. 리눅스의 구조
리눅스는 커널(Kernel), 쉘(Shell), 파일 시스템(File System), 유틸리티(Utilities) 로 구성된다.
| 구성 요소 | 역할 |
|---|---|
| 커널 | 메모리·프로세스·장치 제어, 시스템 핵심 |
| 쉘 | 사용자의 명령을 해석해 커널에 전달 |
| 파일 시스템 | /을 루트로 하는 계층 구조 |
| 유틸리티 | 명령과 도구 모음 (ls, grep, tar, ps, top 등) |
3. 디렉터리 구조
리눅스의 파일 시스템은 모든 경로가 / 루트에서 시작된다.
/
├── bin : 기본 명령어
├── boot : 부팅 관련 파일
├── dev : 장치 파일
├── etc : 설정 파일
├── home : 사용자 디렉터리
├── lib : 라이브러리
├── root : 관리자 홈 디렉터리
├── sbin : 시스템 명령어
├── tmp : 임시 저장소
├── usr : 응용 프로그램, 라이브러리
└── var : 로그 및 캐시 데이터
4. 파일 권한과 소유권
리눅스의 권한 구조는 rwx(읽기·쓰기·실행) 세 가지로 구성된다.
각 파일과 디렉터리는 소유자, 그룹, 기타 사용자(others) 단위로 권한이 구분된다.
예시:
-rwxr-xr--
| 구분 | 설명 |
|---|---|
| 소유자 (owner) | 파일 작성자 |
| 그룹 (group) | 소유자와 같은 그룹 사용자 |
| 기타 사용자 (others) | 그 외 사용자 |
숫자 권한 예시 (r=4, w=2, x=1)
chmod 755 script.sh # 소유자: rwx / 그룹, 기타: r-x
chmod 644 file.txt # 소유자: rw / 그룹, 기타: r
소유자 변경:
chown user1:devteam data.log
기본 권한 설정 (umask)
umask는 새로 생성되는 파일이나 디렉터리의 기본 권한을 제한하는 설정값이다.
즉, “기본 권한 = 시스템 기본값 – umask” 공식으로 계산된다.
| 항목 | 기본 권한 |
|---|---|
| 파일 | 666 (rw-rw-rw-) |
| 디렉터리 | 777 (rwxrwxrwx) |
예를 들어 umask 022 로 설정되어 있다면,
파일은 666 - 022 = 644, 디렉터리는 777 - 022 = 755 권한으로 생성된다.
umask # 현재 설정 확인
umask 002 # 그룹 쓰기 허용 (664 / 775)
umask 077 # 개인만 접근 가능 (600 / 700)
현재 쉘 환경에서 umask 명령을 실행하면 4자리 형태(예: 0002)로 표시될 수 있다.
이는 앞의 한 자리가 특수 권한 비트(setuid, setgid, sticky bit)를 의미하며,
일반적인 환경에서는 umask 022 와 umask 0022 가 동일하게 작동한다.
로그인 시 자동 적용하려면 ~/.bashrc 또는 /etc/profile 에 다음을 추가한다.
echo "umask 0022" >> ~/.bashrc
결과적으로 umask 는 파일 생성 시의 “기본 보안 정책”을 결정하며,
chmod 와 함께 리눅스 권한 관리의 핵심을 이룬다.
5. 관리자 권한 (sudo)
일반 사용자로 로그인해도 sudo 명령을 통해 일시적으로 관리자 권한을 얻을 수 있다.
sudo apt update
sudo systemctl restart ssh
관리 권한 설정은 /etc/sudoers 파일에서 정의된다.
6. 패키지 관리 시스템
리눅스는 배포판에 따라 패키지 관리 방식이 다르다.
| 계열 | 명령 예시 | 설명 |
|---|---|---|
| Debian 계열 (Ubuntu 등) | sudo apt install nginx | APT(Aptitude) 사용 |
| Red Hat 계열 (CentOS 등) | sudo yum install httpd | YUM/DNF 사용 |
| Arch 계열 | sudo pacman -S vim | Pacman 사용 |
7. 기본 명령어
| 명령어 | 설명 |
|---|---|
| pwd | 현재 경로 출력 |
| ls -al | 파일 목록 보기 |
| cd, mkdir, rmdir | 디렉터리 이동·생성·삭제 |
| cp, mv, rm | 파일 복사·이동·삭제 |
| cat, less, tail | 파일 내용 확인 |
| grep, find, awk | 데이터 검색·필터링 |
| df -h, du -sh * | 디스크 사용량 확인 |
| ps, top, kill | 프로세스 관리 |
| tar, gzip, unzip | 압축 및 해제 |
| systemctl, service | 서비스 관리 |
8. 서비스 관리 (systemctl)
리눅스의 systemd는 서비스와 프로세스를 관리한다.
sudo systemctl start nginx # 서비스 시작
sudo systemctl stop nginx # 중지
sudo systemctl restart nginx # 재시작
sudo systemctl status nginx # 상태 확인
sudo systemctl enable nginx # 부팅 시 자동 실행
9. 사용자 및 그룹 관리
사용자 관리
sudo useradd devuser
sudo passwd devuser
sudo userdel devuser
그룹 관리
sudo groupadd devteam
sudo usermod -aG devteam devuser
id devuser
관련 파일
- etc/passwd: 사용자 계정 정보
- etc/group : 그룹 정보
- etc/shadow : 암호화된 비밀번호 저장
10. 프로세스 관리
ps -ef # 전체 프로세스 목록
top # 실시간 상태 확인
kill -9 [PID] # 프로세스 강제 종료
jobs # 백그라운드 작업 목록
fg %1 # 포그라운드로 이동
bg %1 # 백그라운드 재시작
프로세스 상태
| 상태 | 의미 |
|---|---|
| R | 실행 중 (Running) |
| S | 대기 (Sleeping) |
| Z | 좀비 (Zombie) |
| T | 중지 (Stopped) |
11. 파일 압축과 묶기
tar cvf backup.tar /home/user
tar xvf backup.tar
gzip backup.tar
gunzip backup.tar.gz
옵션 요약
- c: 생성(create)
- x: 해제(extract)
- v: 처리 과정 표시(verbose)
- f: 파일 지정(file)
12. 네트워크 관리 명령
ping 8.8.8.8 # 네트워크 연결 확인
ip addr show # IP 정보 확인
netstat -tuln # 열려 있는 포트
ss -tuln # netstat 대체 명령
nslookup naver.com # DNS 조회
traceroute google.com # 경로 추적
13. Vi 에디터 사용법
| 모드 | 설명 |
|---|---|
| 명령 모드 | 기본 상태 (탐색, 삭제, 복사 등) |
| 입력 모드 | i, a, o 키로 진입 |
| 명령행 모드 | : 입력 후 wq, q! 등 실행 |
주요 명령어
| 명령 | 기능 |
|---|---|
| i | 입력 모드로 전환 |
| x | 한 글자 삭제 |
| dd | 한 줄 삭제 |
| yy | 한 줄 복사 |
| p | 붙여넣기 |
| /문자열 | 검색 |
| :wq | 저장 후 종료 |
| :q! | 저장하지 않고 종료 |
14. 시스템 로그 관리
시스템 동작 상태는 /var/log 디렉터리에 기록된다.
| 파일 | 설명 |
|---|---|
| /var/log/messages | 시스템 전반 로그 |
| /var/log/secure | 로그인 및 보안 관련 |
| /var/log/cron | 예약 작업 로그 |
| /var/log/dmesg | 부팅 시 커널 로그 |
| /var/log/syslog | 일반 로그 |
tail -n 50 /var/log/messages grep “error” /var/log/secure
15. 자동화 (Cron)
crontab -e
예시: 매일 9시에 백업 실행
0 9 * * * /home/user/backup.sh
필드 구성: 분 시 일 월 요일 명령
16. 학습 정리
| 주제 | 주요 명령 | 비고 |
|---|---|---|
| 사용자 관리 | useradd, passwd, id | etc/passwd |
| 권한 관리 | chmod, chown | rwx 조합 |
| 프로세스 | ps, top, kill | PID, 상태 확인 |
| 파일 관리 | cp, mv, find | 파일 탐색, 정리 |
| 압축/해제 | tar, gzip | 백업 자동화 |
| 네트워크 | ping, netstat, ss | 연결 점검 |
| 편집기 | vi, :wq, :q! | 시험 단골 |
| 로그/자동화 | tail, grep, crontab | 점검, 예약 |
다음 학습 예고
다음은 [2일차] 정보처리산업기사 운영체제 – 프로세스 관리 기초로 이어진다.
프로세스의 생성과 종료, 스케줄링, CPU 관리 기법을 중심으로 정리할 예정이다.