Linux
기본 정보
- 명칭: Linux
- 한글명: 리눅스
- 분류: 운영체제(OS)
- 최초 공개: 1991년
- 개발자: Linus Torvalds
- 라이선스: GNU GPL
- 주요 용도: 서버, 클라우드, 임베디드, 데스크톱, 개발 환경
- 관련 기술: 운영체제, Ubuntu, Docker, Nginx, SSH
개요
Linux는 오픈소스 기반의 운영체제 커널(Kernel) 이며, 이를 기반으로 다양한 배포판(Distribution)이 만들어진다.
현재 전 세계 웹 서버, 클라우드 서버, AI 서버, 슈퍼컴퓨터, NAS, IoT 기기 등 다양한 환경에서 가장 많이 사용되는 운영체제 중 하나이다.
개발자와 서버 관리자는 Linux를 사용하여 웹 서버 구축, 데이터베이스 운영, 컨테이너 실행, 자동화 스크립트 작성 등 다양한 작업을 수행한다.
Linux 구조
사용자(User)
↓
Shell
↓
Kernel
↓
Hardware
운영 구조
사용자 명령
↓
Shell(Bash)
↓
Kernel
↓
CPU / Memory / Disk
↓
결과 반환
주요 특징
- 오픈소스
- 무료 사용 가능
- 높은 안정성
- 뛰어난 보안성
- 멀티태스킹
- 멀티유저 지원
- 다양한 배포판
- 강력한 CLI(Command Line Interface)
주요 구성 요소
Kernel
운영체제의 핵심이다.
담당 기능
- 메모리 관리
- CPU 관리
- 프로세스 관리
- 파일 시스템
- 장치 제어
Shell
사용자가 명령어를 입력하는 환경이다.
대표 Shell
- Bash
- Zsh
- Fish
- Sh
File System
/
├── home
├── etc
├── var
├── usr
├── tmp
├── boot
└── root
대표 배포판
| 배포판 | 특징 |
|---|---|
| Ubuntu | 가장 대중적인 배포판 |
| Debian | 안정성 중심 |
| Rocky Linux | RHEL 호환 |
| AlmaLinux | 기업용 서버 |
| Fedora | 최신 기술 적용 |
| Arch Linux | 고급 사용자 |
| Kali Linux | 보안 및 침투 테스트 |
기본 명령어
현재 위치 확인
pwd
파일 목록
ls
상세 보기
ls -al
디렉터리 이동
cd /home
상위 폴더
cd ..
디렉터리 생성
mkdir project
파일 생성
touch index.php
파일 복사
cp file.txt backup.txt
파일 이동
mv old.txt new.txt
파일 삭제
rm file.txt
폴더 삭제
rm -rf folder
⚠️ rm -rf는 매우 강력한 명령이므로 사용 시 주의가 필요하다.
파일 내용 보기
cat file.txt
긴 파일 보기
less file.txt
파일 검색
find . -name "*.php"
문자열 검색
grep "error" log.txt
사용자 관리
현재 사용자
whoami
권한 변경
sudo command
권한(Permission)
chmod 755 file.sh
소유자 변경
chown user:user file.txt
프로세스 관리
실행 중인 프로세스
ps -ef
실시간 확인
top
향상된 모니터링
htop
메모리 확인
free -h
디스크 확인
df -h
디렉터리 용량
du -sh *
네트워크 확인
IP 확인
ip addr
포트 확인
ss -tulpn
Ping
ping google.com
서비스 관리 (systemd)
서비스 시작
sudo systemctl start nginx
서비스 중지
sudo systemctl stop nginx
서비스 상태
sudo systemctl status nginx
자동 실행
sudo systemctl enable nginx
패키지 관리
Ubuntu
sudo apt update
sudo apt install nginx
Rocky Linux
sudo dnf install nginx
SSH
원격 접속
ssh user@192.168.0.10
SSH는 Linux 서버 관리의 기본이다.
Bash Script
#!/bin/bash
echo "Hello Linux"
자동화 작업에 많이 사용된다.
Crontab
매일 새벽 3시 실행
0 3 * * * /home/backup.sh
자동 백업, 로그 정리 등에 활용된다.
Linux와 Windows 비교
| Linux | Windows |
|---|---|
| 오픈소스 | 상용 |
| CLI 강력 | GUI 중심 |
| 서버 점유율 높음 | 데스크톱 점유율 높음 |
| 무료 | 라이선스 필요 |
| 개발 환경 우수 | 일반 사용자 친화적 |
Linux와 Unix
| Linux | Unix |
|---|---|
| 오픈소스 | 대부분 상용 |
| 다양한 배포판 | 기업용 중심 |
| 자유로운 수정 | 제한적 |
| 커뮤니티 활발 | 안정성 중심 |
대표 활용 분야
- 웹 서버
- 클라우드
- AI 서버
- NAS
- Docker
- Kubernetes
- DevOps
- 데이터베이스 서버
구름님의 활용 사례
현재까지의 대화를 기준으로 구름님은 Linux를 다음과 같이 활용하고 있다.
- Ubuntu 서버 운영
- Synology NAS 관리
- Nginx 운영
- PHP 서비스 운영
- Docker 활용
- AWS EC2 관리
- Crontab 자동화
- SSH 원격 관리
추천 학습 순서는 다음과 같다.
기본 명령어
↓
파일 권한
↓
SSH
↓
Nginx
↓
Docker
↓
Crontab
↓
Systemd
↓
모니터링
↓
보안
실무 메모
실무에서는 다음과 같은 방식이 권장된다.
- SSH 키 기반 로그인 사용
- root 직접 로그인 비활성화
- 정기적인 시스템 업데이트
systemctl활용- Crontab 자동화
- 로그 모니터링
- 방화벽(UFW, firewalld) 설정
- 백업 자동화
- Docker 활용
- Git을 통한 서버 설정 관리
Linux와 함께 사용하는 기술
대표 활용 사례
- 웹 서버 구축
- PHP 서비스 운영
- Node.js 서버
- Python AI 서버
- Docker 컨테이너 운영
- NAS 관리
- CI/CD 서버
- 클라우드 인프라
관련 문서
출처
- Linux Kernel 공식 홈페이지
- Linux.org
- Ubuntu 공식 문서