Linux: 운영체제

Ohback·2025년 4월 3일
post-thumbnail

1. 운영체제란?

운영체제(Operating System, OS)는 하드웨어와 소프트웨어를 연결해 주는 중간 관리자 역할을 하는 시스템 소프트웨어이다.

What is an Operation System?, 출처: https://www.howtogeek.com

사용자가 키보드, 마우스 등을 통해 내린 명령을 하드웨어가 이해할 수 있도록 변환하고, 하드웨어 자원을 효율적으로 관리하여 여러 프로그램이 동시에 원활하게 실행될 수 있게 한다.

  • 주요 기능
    • 프로세스 관리: 실행 중인 프로그램(프로세스)의 생성, 종료, 스케줄링 관리
    • 메모리 관리: 각 프로그램이 사용할 메모리 공간을 할당·해제
    • 파일 시스템 관리: 데이터를 저장하고 읽는 구조 제공
    • 입출력(I/O) 관리: 키보드, 마우스, 디스크, 네트워크 등의 장치 제어
  • 대표 OS 예시: Windows, macOS, Linux, Android, iOS



2. 리눅스(Linux)

리눅스(Linux)는 1991년 리누스 토르발스(Linus Torvalds)가 개발한 오픈소스 커널을 기반으로 한 운영체제(OS)로, 서버와 배포 환경에서 가장 널리 사용된다.
가볍고 안정적이며, CLI(Command Line Interface) 중심이라 서버 관리와 자동화 작업에 적합하다. 전 세계 대부분의 서버가 리눅스를 사용하고 있다.

2-1. 리눅스(Linux)의 특징 및 활용 사례

  • 특징
    • 오픈소스: 누구나 소스코드를 열람·수정·배포 가능
    • 다양한 배포판: Ubuntu, CentOS, Debian, Fedora 등
    • 멀티유저·멀티태스킹 지원
    • CLI 중심 환경: 명령어 기반 제어에 최적화
  • 활용 사례
    • 서버 운영 (웹 서버, DB 서버 등)
    • 임베디드 시스템 (스마트폰, 가전제품)
    • 클라우드 인프라 (AWS, GCP, Azure 기반)

2-2. 리눅스를 사용하는 이유

  • 가볍고 빠름 → OS가 차지하는 메모리가 적어 더 많은 요청 처리 가능
  • 오픈소스 & 무료 → 대규모 인프라 구축 시 비용 절감
  • 서버 최적화 → 안정적이고 장기간 무중단 운영 가능
  • 자동화에 강함 → CI/CD, Docker, 시스템 관리 스크립트에 적합
  • 보안성 우수 → 최소 설치, SSH 기반 원격 접속
  • 클라우드 표준 → AWS, GCP, Azure 등 기본 OS로 채택

2-3. O/S 별 차이점

구분커널(Kernel)배포(Distribution)특징
WindowsWindows NT 커널 (마이크로소프트)Windows 10, 11 등 (마이크로소프트에서 직접 배포)커널과 배포판이 하나의 회사에서 통합 개발
macOSXNU 커널 (애플)macOS Sonoma, Ventura 등 (애플에서 직접 배포)하드웨어(맥)와 OS가 강하게 결합
LinuxLinux 커널 (오픈소스, 리누스 토르발스 시작)Ubuntu, Debian, Fedora 등 (다양한 단체/기업 배포)커널은 오픈소스, 배포판은 여러 주체가 제작



3. 버추얼박스

버추얼박스(VirtualBox)는 오라클(Oracle)에서 제공하는 무료 가상화 소프트웨어로, 한 PC 안에서 여러 개의 가상 컴퓨터를 실행할 수 있게 한다.
Windows, macOS, Linux 등 다양한 호스트 OS에서 동작하며, 그 위에 또 다른 OS(게스트 OS)를 설치해 사용할 수 있다.

VirtualBox, 출처: https://dora-guide.com
  • 장점
    • 무료 & 크로스 플랫폼 지원
    • 스냅샷 기능으로 특정 시점 상태 저장·복원 가능
    • 네트워크 모드 설정으로 다양한 환경 시뮬레이션 가능
  • 활용 예시
    • 리눅스 학습 환경 구축
    • 테스트 서버 운영
    • 멀티 OS 개발 환경 구성



4. 우분투 세팅

우분투(Ubuntu)는 가장 대중적이고 사용자 친화적인 리눅스 배포판 중 하나로, 서버용과 데스크탑용 모두 제공된다.

버추얼박스에서 우분투를 설치하려면 다음 단계를 따른다.

  1. 우분투 ISO 다운로드: https://ubuntu.com/download
  2. 버추얼박스 VM 생성: OS 종류는 "Linux", 버전은 "Ubuntu (64-bit)" 선택
  3. 리소스 할당: CPU, RAM, 디스크 용량 설정
  4. ISO 연결 후 설치 진행
  5. 게스트 확장 설치: 화면 해상도, 마우스 포인터 통합, 폴더 공유 등 편의 기능 활성화



5. 우분투 기본 명령어

리눅스는 CLI(Command Line Interface) 환경에서 명령어 사용이 필수적이다.
대표적인 우분투 명령어는 다음과 같다.

구분명령어설명
디렉토리 이동 & 경로 확인pwd현재 작업 디렉토리 경로 출력
cd ~홈 디렉토리로 이동
cd /루트 디렉토리로 이동
ls현재 디렉토리의 파일/폴더 목록 표시
ls -al숨김 파일 포함 상세 목록 표시
mkdir [directory_name]새 디렉토리 생성
rm -r [directory_name]디렉토리 삭제 (하위 내용 포함)
파일 읽기 & 편집vim hello.txtvim 편집기로 파일 열기
cat hello.txt파일 전체 내용 출력
more hello.txt한 화면씩 내용 출력
cat -b hello.txt줄 번호 출력(빈 줄 제외)
cat -n hello.txt줄 번호 출력(빈 줄 포함)
tail hello.txt마지막 10줄 출력
tail -5 hello.txt마지막 5줄 출력
파일 생성 & 복사 & 이동touch [file_name]빈 파일 생성
cp hello.txt copy_hello.txt파일 복사
cp -r test_0403 test디렉토리 복사
mv [파일명] [폴더명]파일을 폴더로 이동
mv [파일명] [새_파일명]파일 이름 변경
검색grep "검색어" [파일명]해당 파일에서 검색어 포함된 줄 출력
grep -i "검색어" *대소문자 구분 없이 검색
ls -al \| grep "검색어"현재 디렉토리에서 검색어 포함된 파일 표시
사용자 관리sudo adduser [username]새 사용자 생성
sudo su [username]해당 사용자 계정으로 전환
exit원래 사용자로 복귀
sudo userdel -r [username]사용자와 홈 디렉토리 삭제
프로세스 관리ps현재 사용자 프로세스 목록 표시
ps -e모든 사용자 프로세스 표시
ps -ef전체 프로세스 상세 표시
pstree트리 구조로 프로세스 표시
ps -ef \| grep apache2apache2 관련 프로세스 검색
sudo kill -9 [PID]해당 PID 프로세스 강제 종료
서비스 관리sudo apt install apache2Apache 웹 서버 설치
sudo service apache2 startApache 서버 시작
sudo service apache2 stopApache 서버 중지
sudo service apache2 restartApache 서버 재시작



6. SSH

SSH(Secure Shell)는 네트워크를 통해 원격 시스템에 안전하게 접속하기 위한 프로토콜로, 암호화된 통신을 사용하므로 비밀번호나 데이터가 외부에 노출되지 않는다.

  • 주요 특징
    • 원격 서버 로그인 및 명령 실행
    • 파일 전송 (SCP, SFTP 지원)
    • 포트 포워딩으로 네트워크 터널링 가능
  • 기본 사용 예시
# 원격 서버 접속
ssh username@server_ip

# 파일 전송
scp localfile.txt username@server_ip:/path/to/destination
profile
기록은 기억을 지배한다.

0개의 댓글