리눅스 기초 완벽 정리 | 초보자를 위한 커널부터 명령어까지
리눅스란 무엇인가?
리눅스는 1991년 Linus Torvalds가 만든 오픈소스 운영체제 커널입니다. Windows, macOS와 달리 완전히 무료이며, 소스 코드가 공개되어 있어 누구나 수정하고 배포할 수 있습니다.
리눅스를 사용하는 곳:
- 전 세계 96% 슈퍼컴퓨터
- 90% 클라우드 서버 (AWS, Azure, Google Cloud)
- 70% 스마트폰 (Android는 리눅스 기반)
- 대부분의 웹 서버 (Nginx, Apache)
Windows vs macOS vs Linux
| 항목 | Windows | macOS | Linux |
| 가격 | 15-30만원 | 200만원 이상 | 무료 |
| 사용성 | 매우 쉬움 | 쉬움 | 어려움(초보) |
| 보안 | 중간 | 높음 | 높음 |
| 개발 도구 | 좋음 | 최고 | 최고 |
| 시장 점유율 | 72% | 25% | 1.5%(데스크탑) |
| 학습 곡선 | 낮음 | 중간 | 높음 |
리눅스 설치하기
1. VirtualBox 가상머신으로 시작 (추천)
메리트: 기존 PC 영향 없음, 언제든 삭제 가능
설치 과정:
필요 사양: RAM 4GB, SSD 20GB 이상
2. WSL 2 (Windows의 경우)
# PowerShell (관리자)에서 실행
wsl --install
wsl --install -d Ubuntu메리트: 가볍고 빠름, Windows와 통합
3. 듀얼 부팅
메리트: 실제 성능 단점: 복잡하고 위험 (데이터 손실 가능)
초보자 추천: VirtualBox → WSL 2 → 듀얼 부팅 순서
필수 명령어 30개
파일/폴더 관련
# 현재 위치 확인
pwd
# 파일/폴더 목록 조회
ls # 기본
ls -l # 상세 정보
ls -la # 숨김 파일 포함
# 디렉토리 이동
cd /home
cd ~ # 홈 디렉토리
cd .. # 상위 폴더
cd - # 이전 폴더
# 폴더 생성
mkdir myFolder
mkdir -p a/b/c # 중첩 폴더
# 파일 생성
touch file.txt파일 편집
# 파일 내용 보기
cat file.txt
cat file1.txt file2.txt # 두 파일 연결해서 보기
# 페이지 단위 보기
less file.txt # 화살표로 스크롤, q로 나가기
# 파일 수정 (간단한 텍스트 에디터)
nano file.txt # 초보자 친화적
vim file.txt # 강력하지만 어려움
# 파일 복사
cp file.txt file_copy.txt
cp -r folder /dest # 폴더 복사
# 파일 이동/이름 변경
mv file.txt renamed.txt
mv file.txt /home/documents/ # 이동
# 파일 삭제
rm file.txt
rm -r folder/ # 폴더 삭제 (주의!)권한 관리
# 파일 권한 확인
ls -l file.txt
# 결과: -rw-r--r-- 1 user group 1234 Jan 20 10:30 file.txt
# 권한 변경 (숫자)
chmod 755 file.txt # rwxr-xr-x
chmod 644 file.txt # rw-r--r--
# 소유자 변경 (관리자만)
chown user:group file.txt권한 설명:
- r (읽기, 4)
- w (쓰기, 2)
- x (실행, 1)
- 소유자 / 그룹 / 기타 순서
검색 & 필터
# 파일 찾기
find . -name "*.txt" # 텍스트 파일
find . -type f -size +1M # 1MB 이상 파일
# 텍스트 검색
grep "keyword" file.txt
grep -r "keyword" . # 모든 파일 검색
grep -i "keyword" file.txt # 대소문자 구분 안함
# 파이프: 명령어 연결
ls -la | grep "\.txt" # txt 파일만 필터링
cat file.txt | wc -l # 줄 수 세기시스템 정보
# CPU/메모리 사용량
top # 실시간 모니터링 (q로 나가기)
htop # 더 보기 좋은 버전
# 디스크 사용량
df -h # 마운트된 디스크
du -sh /home # 폴더 용량
# 시스템 정보
uname -a # 커널 정보
cat /etc/os-release # OS 정보패키지 관리
# Ubuntu/Debian
sudo apt update # 패키지 목록 최신화
sudo apt install git # 설치
sudo apt remove git # 제거
# CentOS/RHEL
sudo yum install git
sudo yum remove git기타 필수 명령어
# 관리자 권한 실행
sudo command
# 프로세스 관리
ps aux # 실행 중인 프로세스
kill 1234 # PID 1234 프로세스 종료
# 텍스트 처리
echo "Hello" # 텍스트 출력
cat file.txt | head -5 # 처음 5줄
cat file.txt | tail -5 # 마지막 5줄
# 파일 압축
tar -czf archive.tar.gz folder/ # 압축
tar -xzf archive.tar.gz # 해제
# 파일 비교
diff file1.txt file2.txt
# 시간/날짜
date리눅스 파일 시스템 이해하기
/
├── bin/ # 필수 명령어
├── home/ # 사용자 홈 디렉토리
│ └── username/
├── etc/ # 설정 파일
├── var/ # 로그, 캐시
├── tmp/ # 임시 파일 (재부팅 시 삭제)
├── usr/ # 사용자 설치 프로그램
├── root/ # 관리자 홈
└── dev/ # 디바이스 파일중요한 파일들:
/etc/passwd: 사용자 정보/etc/shadow: 비밀번호 (암호화)/var/log/syslog: 시스템 로그/home/username/.bashrc: 설정 파일
권한 시스템 상세
파일 권한 읽기
-rw-r--r-- 1 user group 1234 date time filename
│ │││ │││
│ │││ └── 기타 (other) 권한: r--
│ └─┴── 그룹 (group) 권한: r--
└─────── 소유자 (owner) 권한: rw-권한 숫자 표기
7 = rwx (4+2+1) 모든 권한
6 = rw- (4+2) 읽기 + 쓰기
5 = r-x (4+1) 읽기 + 실행
4 = r-- (4) 읽기만
0 = --- (0) 권한 없음
755 = rwxr-xr-x (소유자만 쓰기, 모두 실행 가능)
644 = rw-r--r-- (소유자만 쓰기, 모두 읽기)초보자가 실수하기 쉬운 위험한 명령어
# 절대 실행하면 안됨!
rm -rf / # 전체 시스템 삭제
rm -rf /* # 모든 주요 폴더 삭제
dd if=/dev/zero of=/dev/sda # 하드드라이브 초기화
# 신중해야 할 명령어
sudo command # 관리자 권한 (실수 위험)
rm -rf folder/ # 폴더 완전 삭제 (복구 불가)SSH로 원격 서버 접속
# 원격 접속
ssh username@server.com
ssh -p 2222 user@192.168.1.1 # 다른 포트
# 키 기반 인증 생성
ssh-keygen -t rsa -b 4096
# ~/.ssh/id_rsa (개인키) 와 id_rsa.pub (공개키) 생성
# 공개키 서버에 복사
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server.com
# 이후 비밀번호 없이 접속 가능
ssh user@server.com자주 묻는 질문
리눅스와 유닉스의 차이는?
A. Unix는 1970년대 개발된 원본이고, Linux는 Unix 스타일을 따른 오픈소스 버전입니다. 명령어와 개념이 유사합니다.
리눅스 배포판이 많은데 뭘 선택해야 하나요?
A. 초보자는 Ubuntu (가장 사용자 친화적), 서버는 CentOS/RHEL, 보안 중시는 Kali Linux를 추천합니다.
GUI 없이 명령어만으로 작업하기 어렵지 않나요?
A. 처음엔 어렵지만, 2-3주면 익숙해집니다. 오히려 명령어가 더 빠르고 강력합니다.
리눅스도 바이러스에 걸릴까요?
A. 가능하지만 매우 드뭅니다. 권한 시스템이 엄격해서 자동 설치가 어렵습니다.
Windows 프로그램을 리눅스에서 실행할 수 있나요?
A. Wine 같은 에뮬레이터로 가능하지만, 완벽하지 않습니다. 리눅스 네이티브 프로그램 사용을 권장합니다.
결론
리눅스는 2026년 모든 개발자에게 필수 기술입니다. 클라우드, 서버, 데이터센터 거의 모든 곳에서 리눅스가 사용되고 있습니다.
VirtualBox에서 가볍게 시작해서 기본 명령어 30개를 익히면, 서버 관리와 개발 환경 구축이 가능합니다.
관련 글: 서버 관리 필수 가이드 | 클라우드 게이밍 완벽 가이드