— DevOps Lecture 2026 · Introduction to Linux

🐧 Linux 기초 강의

리눅스 입문부터 파일 시스템, 패키지 관리, 텍스트 에디터까지. 실무 DevOps를 위한 Linux 핵심 가이드.

2026 DevOps
27 슬라이드
Ubuntu / RHEL / Debian
01 — 리눅스란

🐧 리눅스란?

리눅스는 오픈 소스 운영체제 커널입니다. 리누스 토르발스(Linus Torvalds)가 1991년에 개발하였으며, 누구나 자유롭게 사용·수정·배포할 수 있습니다.

📚 용어 정리: 커널 vs 배포판

  • 커널(Kernel): 하드웨어와 소프트웨어를 연결하는 운영체제의 핵심 엔진. 리눅스 자체는 이 커널을 의미합니다.
  • 배포판(Distribution): 리눅스 커널 + 각종 소프트웨어·도구를 묶어 사용하기 편하게 만든 패키지입니다.
배포판 특징
Ubuntu 입문자 친화적, 데스크탑·서버 모두 인기
CentOS / RHEL 기업용 서버에 특화, 안정성 중시
Fedora 최신 기술을 빠르게 도입하는 개발자 배포판
Debian Ubuntu의 모태, 안정성과 자유 소프트웨어 철학
02 — 왜 리눅스를 사용할까

🐧 왜 리눅스를 사용할까?

  • 🏆 서버 점유율 1위: 전 세계 서버의 약 90% 이상이 리눅스 기반으로 운영됩니다.
  • ☁️ 클라우드 표준: AWS, Azure, GCP 등 주요 클라우드 플랫폼의 기본 OS입니다.
  • 🔓 오픈 소스의 자유도: 소스 코드를 자유롭게 수정·배포할 수 있어, 원하는 대로 커스터마이징이 가능합니다.
  • ⌨️ 강력한 CLI(명령어 환경): 텍스트 명령어를 통해 시스템을 빠르고 정밀하게 제어할 수 있습니다. 자동화와 스크립팅에 매우 유리합니다.

🐳 Docker · Kubernetes도 리눅스 위에서 동작한다

앞으로 배울 Docker, Kubernetes, Jenkins 등 DevOps 핵심 도구들은 모두 리눅스를 기반으로 동작합니다. 명령어, 파일 경로, 권한 체계가 리눅스 그대로입니다.

🐳 Docker

컨테이너는 리눅스 커널의 namespacescgroups를 이용합니다. Dockerfile의 명령어도 리눅스 쉘 명령어입니다.

☸️ Kubernetes

노드(서버)는 리눅스 기반이며, Pod 안에서 실행되는 컨테이너도 리눅스 환경입니다. kubectl exec로 접속하면 리눅스 쉘이 열립니다.

🔧 Jenkins / CI 서버

빌드·배포 파이프라인의 쉘 스크립트(sh)는 리눅스 명령어로 구성됩니다.

💡 리눅스 명령어에 익숙해지면 Docker 이미지 디버깅, Kubernetes Pod 접속, CI/CD 스크립트 작성이 훨씬 수월해집니다. 리눅스는 DevOps의 공통 언어입니다.

03 — 윈도우와의 차이

🪟 윈도우와의 차이

리눅스를 처음 접할 때 가장 낯선 부분은 윈도우와의 근본적인 철학 차이입니다.

📂 "Everything is a File" (모든 것은 파일이다)

리눅스의 가장 핵심적인 철학입니다. 윈도우와 달리 리눅스에서는 거의 모든 것이 파일로 취급됩니다.

대상 윈도우 리눅스
하드디스크 C:, D: 드라이브 /dev/sda (파일)
USB 장치 장치 관리자에서 관리 /dev/usb (파일)
프로세스 정보 작업 관리자(GUI) /proc/[PID] (파일)
시스템 설정 레지스트리(GUI) /etc/ 디렉토리의 텍스트 파일

이 철학 덕분에 리눅스에서는 텍스트 명령어 하나로 장치 확인, 설정 변경, 프로세스 관리를 모두 할 수 있습니다.

04 — 리눅스와 친해지는 법

🤝 리눅스와 친해지는 법

VirtualBox

1. 직접 설치해보기

가상머신(VirtualBox, VMWare 등)이나
WSL(Windows Subsystem for Linux)로 리눅스를 설치해봅니다.

Login

2. 윈도우처럼 사용해보기

두려움 없이 리눅스 환경에
발을 들여보는 것이 중요합니다.

Terminal

3. 터미널에 익숙해지기

GUI 대신 터미널로
파일 탐색, 편집을 연습합니다.

05 — 학습용 리눅스 준비하기

💻 학습용 리눅스 준비하기

실습을 위해 가장 대중적인 Ubuntu 혹은 기업용 표준인 RHEL 중 하나를 준비합니다.

1️⃣ Ubuntu (입문자 추천)

가장 범용적이고 커뮤니티가 활성화되어 있어 실습에 가장 편리합니다.

  • WSL2 (Windows 사용자 추천): Windows에서 리눅스를 앱처럼 실행 — 가장 빠르고 간편함
  • VirtualBox: 가상 머신에 Ubuntu 설치

2️⃣ RHEL (Red Hat Enterprise Linux)

기업용 유료 OS이지만, 개인 개발자는 계정 등록 시 무료로 사용 가능합니다.

👉 등록: developers.redhat.com

3️⃣ 클라우드 VM

AWS EC2, GCP, Azure 등에서 Ubuntu 또는 RHEL 인스턴스를 생성하여 실습할 수 있습니다.

06 — 함께 쓰는 프로그램

🛠️ 함께 쓰는 프로그램

리눅스 서버를 효율적으로 사용하기 위해 Windows에서 함께 활용하는 필수 도구들을 소개합니다.

PuTTY — SSH 원격 접속 도구

PuTTY는 Windows에서 리눅스 서버에 SSH(Secure Shell)로 원격 접속할 때 가장 많이 사용하는 무료 프로그램입니다.

⚙️ 추천 설정

  • Font 변경: Window → Appearance → Font settings에서 Consolas로 변경하면 코드 가독성이 크게 향상됩니다.
  • Font 사이즈: 12~14pt를 추천합니다.
PuTTY Main

PuTTY 접속 화면

PuTTY Font Settings

PuTTY 설정 화면 (Font: Consolas)

07 — 시작하기 전에 확인할 것들

✅ 시작하기 전에 확인할 것들

본격적인 실습에 앞서, 필요한 도구들이 정상적으로 설치되어 있는지 확인합니다. 아래 명령어들을 순서대로 실행하여 버전 정보가 출력되면 정상입니다.

🔍 설치 확인 명령어

1. Git — 버전 관리 도구

[devops@localhost ~]$ git --version git version 2.47.3

2. Docker(Podman) — 컨테이너 런타임

[devops@localhost ~]$ docker --version Docker version 5.3.2, build 23624bc737

※ RHEL에서는 podman-docker가 설치되어 있으면 docker 명령어가 podman으로 연결됩니다.

3. pip3 — Python 패키지 관리자

[devops@localhost ~]$ pip3 --version pip 21.3.1 from /usr/lib/python3.9/site-packages/pip (python 3.9)

4. Screen — 세션 관리 도구

[devops@localhost ~]$ screen --version Screen version 4.08.00 (GNU) 05-Feb-20

💡 설치가 안 되어 있다면?

위 명령어 실행 시 command not found가 나오면 해당 패키지가 설치되지 않은 것입니다. 8번 슬라이드(필수 패키지 설치)를 참고하여 설치해주세요.

08 — 계정 정보 확인

👤 계정 정보 확인

리눅스에 접속한 후 가장 먼저 해야 할 일은 내가 누구이고, 어디에 접속했는지 확인하는 것입니다.

🔍 현재 사용자 확인 (whoami)

whoami는 "Who am I?"의 약자로, 현재 로그인한 사용자의 이름을 출력합니다.

[devops@localhost ~]$ whoami devops

🌐 호스트명 확인 (hostname)

hostname은 현재 접속한 서버(컴퓨터)의 이름을 출력합니다.

[devops@localhost ~]$ hostname localhost.localdomain

🔑 사용자 ID 정보 확인 (id)

id는 현재 사용자의 UID(사용자 ID), GID(그룹 ID), 소속 그룹 목록을 보여줍니다.

[devops@localhost ~]$ id uid=1000(devops) gid=1000(devops) groups=1000(devops),10(wheel) [devops@localhost ~]$ id devops uid=1000(devops) gid=1000(devops) groups=1000(devops),10(wheel)

💡 출력 결과 해석

  • uid=1000(devops): 사용자 고유 번호(UID)가 1000이고, 이름이 devops입니다.
  • gid=1000(devops): 기본 그룹 ID(GID)가 1000입니다.
  • groups=1000(devops),10(wheel): devops 그룹과 wheel 그룹에 속해 있습니다. wheel 그룹은 sudo 명령어 사용 권한과 관련됩니다.
09 — Superuser란

🔐 Superuser란?

리눅스에는 일반 사용자와 Superuser(관리자)라는 두 가지 권한 레벨이 있습니다.

👥 User vs Superuser (root)

구분 일반 사용자 (User) 슈퍼유저 (root)
권한 자기 파일만 읽기/쓰기/실행 시스템 전체에 대한 모든 권한
위험도 시스템 손상 가능성 낮음 잘못된 명령으로 시스템 파괴 가능
프롬프트 $ (달러 기호) # (해시 기호)

🔑 sudo와 관리자 그룹

sudo는 일반 사용자가 일시적으로 root 권한을 빌려 명령을 실행할 수 있게 해주는 명령어입니다. 배포판에 따라 관리자 권한을 가진 그룹 명칭이 다릅니다.

사용자에게 관리자 권한 부여하기

# Ubuntu/Debian 계열 [devops@ubuntu ~]$ sudo usermod -aG sudo devops # RHEL/CentOS 계열 [devops@rhel ~]$ sudo usermod -aG wheel devops

💡 왜 root 대신 sudo를 사용할까?

  • 안전성: 항상 root로 작업하면 실수 한 번에 시스템이 망가질 수 있습니다.
  • 추적 가능: sudo를 사용하면 누가, 언제, 어떤 명령을 실행했는지 로그가 남습니다.
  • 최소 권한 원칙: 필요한 순간에만 높은 권한을 사용하는 것이 보안의 기본입니다.
10 — 필수 패키지 설치

📦 필수 패키지 설치

리눅스 설치 후, 개발 및 운영에 필요한 기본 패키지들을 설치합니다. 배포판에 맞는 명령어를 사용하세요.

🌐 Ubuntu / Debian (APT 사용)

[devops@ubuntu ~]$ sudo apt update [devops@ubuntu ~]$ sudo apt install -y git docker.io python3-pip screen

🐧 RHEL / CentOS (DNF 사용)

[devops@rhel ~]$ sudo dnf install -y git podman podman-docker python3-pip screen

📚 주요 도구 설명

  • Git: 소스 코드 버전 관리 필수 도구
  • Docker: 컨테이너 실행 및 관리
  • pip3: Python 패키지 관리자
  • Screen: 터미널 세션 유지 (연결 끊김 방지)
11 — 파일 탐색 명령어

📂 파일 탐색 명령어

리눅스에 접속하자마자 가장 먼저 해야 할 일은 "내가 어디에 있고, 무엇이 있는지" 확인하는 것입니다.

📍 내 위치 확인 (pwd)

pwd는 "Print Working Directory"의 약자로, 현재 내가 위치한 폴더의 절대 경로를 보여줍니다.

[devops@localhost ~]$ pwd /home/devops

🔍 목록 확인 (ls)

  • ls -l: 상세 정보(권한, 크기 등)
  • ls -a: 숨겨진 파일 포함
[devops@localhost ~]$ ls -al total 28 drwx------. 14 devops devops 4096 Feb 14 18:18 . drwxr-xr-x. 3 root root 20 Apr 2 2025 .. -rw-------. 1 devops devops 160 Feb 16 22:26 .bash_history ...

🔎 파일 검색 (find)

[devops@localhost ~]$ find . -name "*.txt"

📖 파일 읽기 (cat, less)

cat은 보통 파일 전체를 빠르게 출력할 때, less는 긴 로그나 파일을 천천히 읽을 때 씨니다.

[devops@localhost ~]$ cat sample.txt [devops@localhost ~]$ less /var/log/messages
12 — 폴더 이동하기 및 구조 확인

🚶 폴더 이동하기 및 구조 확인

📂 폴더 이동 (cd)

cd는 "Change Directory"의 약자로, 작업 디렉토리를 변경할 때 사용합니다.

  • cd [경로]: 해당 경로로 이동합니다.
  • cd ..: 현재 위치에서 한 단계 위(부모) 폴더로 이동합니다.
  • cd ~: 현재 사용자의 홈 디렉토리로 즉시 이동합니다.
[devops@localhost ~]$ cd .. [devops@localhost ~]$ pwd /home [devops@localhost ~]$ cd devops/ [devops@localhost ~]$ pwd /home/devops

🌳 구조 시각화 (tree)

tree 명령어는 디렉토리 구조를 나무 모양으로 보기 좋게 시각화하여 계층 구조를 한눈에 파악할 수 있게 해줍니다.

[devops@localhost ~]$ tree . ├── Desktop ├── Documents ├── Downloads ├── Music ├── Pictures ├── Public ├── Templates └── Videos

💡 tree 명령어 직접 설치해보기

Linux 기본 설치 시 tree가 없을 수 있습니다. 이럴 때는 관리자 권한을 사용하여 직접 설치할 수 있습니다.

# Ubuntu 계열 (APT) $ sudo apt install tree -y # RHEL 계열 (DNF) $ sudo dnf install tree -y

설치 후에 tree를 입력하여 결과를 확인해 보세요! 패키지 관리자의 편리함을 체험해 볼 수 있습니다.

13 — 실습 루트 디렉토리 탐색하기

🧹 실습: 루트 디렉토리 탐색하기

지금까지 배운 pwd, cd, ls 명령어를 종합해서 리눅스의 전체 파일시스템 구조를 첫 탐색해봅니다.

목표: 현재 위치 확인 → 루트(/) 이동 → 리눅스 시스템 콘텐츠 확인 → 원래 위치로 복귀

💻 실습 명령어 시퀀스

Step 1. 현재 위치 확인

[devops@localhost ~]$ pwd /home/devops

Step 2. 루트 디렉토리로 이동

cd / 명령어로 리눅스 파일시스템의 최상단, 즉 루트(root) 디렉토리(≠ root 계정)로 이동합니다.

[devops@localhost ~]$ cd / [devops@localhost /]$ pwd /

Step 3. 루트 디렉토리 안의 목록 확인

ls -l로 리눅스의 핵심 시스템 디렉토리들을 확인합니다.

[devops@localhost /]$ ls -l total 8 dr-xr-xr-x. 2 root root 6 Oct 9 07:57 afs lrwxrwxrwx. 1 root root 7 Oct 9 07:57 bin -> usr/bin dr-xr-xr-x. 6 root root 4096 Apr 2 2025 boot drwxr-xr-x. 19 root root 3180 Mar 4 13:12 dev drwxr-xr-x. 93 root root 8192 Mar 4 22:01 etc drwxr-xr-x. 3 root root 20 Apr 2 2025 home lrwxrwxrwx. 1 root root 7 Oct 9 07:57 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Oct 9 07:57 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 Oct 9 07:57 media drwxr-xr-x. 2 root root 6 Oct 9 07:57 mnt drwxr-xr-x. 3 root root 20 Apr 2 2025 opt dr-xr-xr-x. 271 root root 0 Mar 4 13:12 proc dr-xr-x---. 4 root root 244 Mar 4 22:01 root drwxr-xr-x. 35 root root 980 Mar 4 22:01 run lrwxrwxrwx. 1 root root 8 Oct 9 07:57 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 Oct 9 07:57 srv dr-xr-xr-x. 13 root root 0 Mar 4 13:12 sys drwxrwxrwt. 8 root root 200 Mar 4 22:09 tmp drwxr-xr-x. 12 root root 144 Apr 2 2025 usr drwxr-xr-x. 20 root root 4096 Apr 2 2025 var

📁 주요 디렉토리 한눈에 보기

/home

일반 사용자들의 홈 폴더

/etc

시스템 설정 파일 모음

/dev

장치 파일 (디스크, USB 등)

/proc

실행 중인 프로세스 정보 (가상 파일)

/usr/bin

일반 명령어 실행 파일 (git, python3 등)

/tmp

임시 파일 저장소 (재부팅 시 삭제)

Step 4. 원래 위치로 복귀

cd ~ 또는 cd만 입력해도 홈 디렉토리로 돌아옵니다.

[devops@localhost /]$ cd ~ [devops@localhost ~]$ pwd /home/devops

💡 프롬프트를 확인하세요! [devops@localhost /]$[devops@localhost ~]$는 현재 위치가 다름을 보여줍니다. /는 루트, ~는 홈 디렉토리입니다.

14 — 파일과 폴더 만들기

🛠️ 파일과 폴더 만들기

리눅스 환경에서 새로운 작업 공간을 확보하고 파일을 생성하는 실습입니다.

📁 폴더 만들기 (mkdir)

mkdir은 "Make Directory"의 약자로, 새로운 디렉토리를 생성합니다.

[devops@localhost ~]$ mkdir project [devops@localhost ~]$ ls -l drwxr-xr-x. 2 devops devops 6 Feb 22 17:27 project

📄 파일 만들기 (touch)

touch는 빈 파일을 빠르게 생성하거나, 이미 존재하는 파일의 접근/수정 시간을 현재 시간으로 업데이트할 때 사용합니다.

[devops@localhost ~]$ cd project/ [devops@localhost ~]$ touch sample.txt [devops@localhost ~]$ ls -l total 0 -rw-r--r--. 1 devops devops 0 Feb 22 17:06 sample.txt
15 — 파일 복사하기

📋 파일 복사하기

cp는 "Copy"의 약자로, 기존 파일이나 디렉토리를 복사하여 동일한 내용의 새로운 파일을 만듭니다. 원본을 유지하면서 복제본을 만들 때 사용합니다.

[devops@localhost ~]$ touch copy.txt [devops@localhost ~]$ cp copy.txt copy_backup.txt [devops@localhost ~]$ ls -l total 0 -rw-r--r--. 1 devops devops 0 Feb 22 17:28 copy_backup.txt -rw-r--r--. 1 devops devops 0 Feb 22 17:27 copy.txt drwxr-xr-x. 2 devops devops 6 Feb 22 17:27 project [devops@localhost ~]$ cp copy.txt ./project/copy_project.txt [devops@localhost ~]$ cd project/ [devops@localhost ~]$ ls -l total 0 -rw-r--r--. 1 devops devops 0 Feb 22 17:28 copy_project.txt
16 — 이동 및 이름 변경

📦 이동 및 이름 변경

mv는 "Move"의 약자로, 파일이나 폴더의 위치를 이동시키거나 이름을 변경할 때 사용합니다. 윈도우의 '잘라내기(Cut) 후 붙여넣기'와 같은 원리입니다.

💡 리눅스에서의 이름 변경: 리눅스에는 일반적인 파일 이름 변경을 위한 별도의 rename 명령어가 따로 있는 것이 아니라, mv 명령어를 통해 현재 위치에서 다른 이름으로 이동시키는 개념으로 파일명을 변경합니다.

이름 변경하기 (Rename)

[devops@localhost ~]$ touch move.txt [devops@localhost ~]$ ls -l total 0 -rw-r--r--. 1 devops devops 0 Feb 22 17:30 move.txt drwxr-xr-x. 2 devops devops 6 Feb 22 17:30 project [devops@localhost ~]$ mv move.txt new_move.txt [devops@localhost ~]$ ls -l total 0 -rw-r--r--. 1 devops devops 0 Feb 22 17:30 new_move.txt drwxr-xr-x. 2 devops devops 6 Feb 22 17:30 project

파일 위치 옮기기 (Move)

[devops@localhost ~]$ mv new_move.txt ./project/new_move.txt [devops@localhost ~]$ ls -l total 0 drwxr-xr-x. 2 devops devops 26 Feb 22 17:31 project [devops@localhost ~]$ cd project/ [devops@localhost ~]$ ls -l total 0 -rw-r--r--. 1 devops devops 0 Feb 22 17:30 new_move.txt
17 — 파일 혹은 폴더 삭제하기 주의필요

🗑️ 파일 혹은 폴더 삭제하기 (주의필요)

리눅스에는 윈도우의 '휴지통' 개념이 없습니다. 명령어를 실행하면 즉시 지워지므로 숙달될 때까지 주의가 필요합니다.

📄 파일 삭제 (rm)

rm은 "Remove"의 약자로, 파일을 삭제합니다.

📁 폴더 강제 삭제 (rm -rf)

비어있지 않은 폴더를 삭제하려면 -r (Recursive)과 -f (Force) 옵션을 조합한 rm -rf를 사용합니다.

💻 삭제 실습

[devops@localhost ~]$ rm sample.txt [devops@localhost ~]$ cd .. [devops@localhost ~]$ rm project rm: cannot remove 'project': Is a directory [devops@localhost ~]$ rm -rf project

⚠️ 절대 금기 명령어: rm -rf /

rm -rf /는 루트(/) 경로 아래의 모든 파일을 강제로 삭제하는 명령어로, 운영체제를 회생 불능 상태로 만듭니다.

# 절대로 실행하지 마세요! sudo rm -rf / --no-preserve-root

호기심에라도 연습하지 마세요. 실제 서버에서 이 명령어를 실행하는 것은 시스템 파괴 행위입니다.

18 — 실습 프로젝트 구조 만들고 삭제하기

🧹 실습: 프로젝트 구조 만들고 삭제하기

지금까지 배운 mkdir, touch, tree, rm -rf를 종합하여 실제 프로젝트를 늮은 폴더 구조를 만들고, 확인하고, 삭제하는 컨플릿 실습입니다.

목표 구조:

~/myproject/ ├── docker/ │ ├── dockerfile.prod │ └── dockerfile.dev └── app/ ├── app.py └── requirements.txt

💻 실습 명령어 시퀀스

Step 1. 프로젝트 루트 폴더 생성

[devops@localhost ~]$ mkdir myproject [devops@localhost ~]$ cd myproject/

Step 2. 하위 폴더 생성

[devops@localhost myproject]$ mkdir docker app [devops@localhost myproject]$ ls -l total 0 drwxr-xr-x. 2 devops devops 6 Mar 4 21:50 app drwxr-xr-x. 2 devops devops 6 Mar 4 21:50 docker

Step 3. 파일 생성

[devops@localhost myproject]$ touch docker/dockerfile.prod docker/dockerfile.dev [devops@localhost myproject]$ touch app/app.py app/requirements.txt

Step 4. tree로 구조 확인

[devops@localhost myproject]$ tree . ├── app │ ├── app.py │ └── requirements.txt └── docker ├── dockerfile.dev └── dockerfile.prod 2 directories, 4 files

Step 5. 상위 폴더로 이동 후 전체 삭제

[devops@localhost myproject]$ cd .. [devops@localhost ~]$ rm -rf myproject [devops@localhost ~]$ ls -l total 0 # myproject 폴더가 사라졌습니다

⚠️ rm -rf는 되돌릴 수 없습니다. 삭제 전에 pwd로 위치를 확인하고, ls로 대상을 다시 한 번 확인하는 습관을 가집니다.

19 — 프로세스 & 시스템

⚙️ 프로세스 & 시스템

시스템 자원 상태와 실행 중인 프로세스를 관리하는 핵심 명령어입니다.

📊 프로세스 확인 (ps, top/htop)

# 현재 실행 중인 모든 프로세스 상세 정보 확인 [devops@localhost ~]$ ps aux # 실시간 시스템 모니터링 (종료: q) [devops@localhost ~]$ top # (설치: sudo apt install htop 또는 sudo dnf install htop) [devops@localhost ~]$ htop

🛑 프로세스 종료 (kill)

비정상 동작하는 프로세스를 강제 종료합니다. ps aux로 PID(Process ID)를 확인 후 사용합니다.

[devops@localhost ~]$ kill -9 [PID]

💾 디스크 및 메모리 확인 (df, free)

# 디스크 용량 확인 (Human-readable) [devops@localhost ~]$ df -h # 메모리 용량 확인 [devops@localhost ~]$ free -h
20 — 패키지 관리자 APT vs DNF

📦 패키지 관리자 (APT vs DNF)

리눅스 배포판에 따라 사용하는 패키지 관리자가 다릅니다. 현재 사내(또는 실습) OS에 맞는 명령어를 선택하세요.

📦 주요 패키지 관리자 비교

구분 APT (Advanced Package Tool) DNF (Dandified YUM)
주요 배포판 Ubuntu, Debian, Linux Mint RHEL, CentOS, Fedora
설치 명령어 sudo apt install [패키지] sudo dnf install [패키지]
업데이트 sudo apt update && upgrade sudo dnf update

🛠️ 실습 (git 설치 기준)

Ubuntu 계열:

sudo apt update && sudo apt install git -y

RHEL 계열:

sudo dnf install git -y
21 — 텍스트 에디터 nano vim

📝 텍스트 에디터 (nano & vim)

리눅스 터미널 환경에서 파일 내용을 수정하기 위해 사용되는 도구들입니다.

🌱 입문용: nano

메모장처럼 직관적이고 사용법이 쉽습니다. 하단에 단축키 안내가 표시되어 초보자에게 권장됩니다.

⚡ 표준/전문가용: vi/vim

거의 모든 리눅스에 내장되어 있습니다. 매우 강력하지만 '모드(Mode)' 개념이 있어 학습이 필요합니다.

💡 에디터 설치하기

만약 해당 에디터들이 설치되어 있지 않다면 아래 명령어로 설치할 수 있습니다.

# Ubuntu (APT) sudo apt install nano vim -y # RHEL (DNF) sudo dnf install nano vim -y

💡 VI/VIM 핵심 모드 안내

  • 명령 모드(Normal Mode): 기본 상태. 커서 이동, 삭제, 복사 가능
  • 입력 모드(Insert Mode): i를 눌러 진입. 글자 입력 가능
  • 명령어 라인 모드(Command Line Mode): :를 눌러 진입. 저장(w), 종료(q) 등 수행
22 — nano 에디터 사용법

📝 nano 에디터 사용법

가장 직관적이고 쉬운 터미널 에디터입니다.

주요 단축키 (화면 하단 참고)

🛠️ 실습 예시

# 1. 파일 열기 [devops@localhost ~]$ nano nano_sample.txt # 2. 내용 입력 (편집기 내부에서 작성) devops! Hello World! # 3. 저장 및 종료 # Ctrl + O (WriteOut) -> Enter (파일명 확인) -> Ctrl + X (Exit) # 4. 저장된 내용 확인 [devops@localhost ~]$ cat nano_sample.txt devops! Hello World!

💡 nano 단축키 표기 읽는 법

nano 하단에 표시되는 ^O, ^X 기호에서 ^Ctrl 키를 의미합니다. 즉, ^OCtrl + O를 함께 누르라는 뜻입니다.

23 — vim 에디터 사용법

⚡ vim 에디터 사용법

'모드'를 전환하며 사용하는 강력한 에디터입니다.

🛠️ 핵심 커맨드

  • i: 입력 모드로 전환
  • Esc: 다시 명령 모드로 복귀
  • :w: 파일 저장
  • :q: 종료 (저장 안됐으면 에러)
  • :wq: 저장하고 종료
  • :q!: 저장하지 않고 강제 종료

⌨️ 편집 편의 기능

  • dd: 현재 줄 삭제 (명령 모드)
  • yy: 현재 줄 복사 (명령 모드)
  • p: 아래 줄에 붙여넣기 (명령 모드)
  • u: 실행 취소 (Undo)

💡 기억하세요! 처음 vim을 켜면 아무 글자도 써지지 않습니다. 반드시 i를 눌러 -- INSERT -- 상태가 되었는지 확인하세요.

🛠️ 실습 예시

# 1. 파일 열기 [devops@localhost ~]$ vi vim_sample.txt # 혹은 [devops@localhost ~]$ vim vim_sample.txt # 2. 입력 모드 전환 및 내용 입력 # 'i' 키 누르기 -> 아래에 -- INSERT -- 확인 devops! Hello World! # 3. 저장 및 종료 # Esc 키 누르기 (명령 모드) -> :wq 입력 -> Enter # 4. 저장된 내용 확인 [devops@localhost ~]$ cat vim_sample.txt devops! Hello World!
24 — 네트워크 명령어

🌐 네트워크 명령어

서버 연동 상태와 API 응답을 터미널에서 직접 테스트하고 포트 상태를 점검합니다.

📡 웹 요청 (curl, wget)

API 응답 테스트 및 파일 다운로드 도구입니다.

# 1. API 응답 확인 (헤더 포함) [devops@localhost ~]$ curl -i https://jsonplaceholder.typicode.com/users/1 # 2. 웹상 파일 다운로드 [devops@localhost ~]$ wget https://example.com/file.tar.gz

🔌 포트 및 통신 상태 확인 (netstat, ss)

어떤 프로그램이 몇 번 포트에서 대기(Listen) 중인지 확인합니다.

# 사용 중인 포트와 프로그램 목록 [devops@localhost ~]$ netstat -tlnp # netstat의 최신 대안 (빠르고 간결함) [devops@localhost ~]$ ss -tlnp

💡 -tlnp 옵션: t(TCP), l(Listening state), n(숫자로 표시), p(프로세스 ID 표시)의 조합입니다.

25 — 텍스트 처리 명령어

🔎 텍스트 처리 명령어 (로그 분석)

서버 로그를 분석하거나 엄청난 양의 텍스트 속에서 원하는 내용만 뽑아낼 때 사용하는 필수 조합입니다.

🔍 텍스트 필터링 (grep)

내가 원하는 패턴이 포함된 줄만 골라냅니다.

[devops@localhost ~]$ grep "ERROR" /var/log/messages # 대소문자 구분 없이 검색 (-i) [devops@localhost ~]$ grep -i "failed" /var/log/secure

📝 실시간 로그 추적 (tail -f)

파일의 마지막 부분만 출력하는 tail 명령어에 -f (follow) 옵션을 붙여 실시간 업데이트를 모니터링합니다. (종료: Ctrl + C)

[devops@localhost ~]$ tail -f /var/log/syslog

🔗 파이프라인 (|) 활용

앞 명령어의 출력을 뒤 명령어의 입력으로 전달하여 조합합니다.

[devops@localhost ~]$ cat /var/log/messages | grep "kernel" [devops@localhost ~]$ ps aux | grep "nginx"
26 — 권한 & 사용자

🚀 권한 & 사용자

🔑 관리자 권한 (sudo)

보안을 위해 강한 권한이 필요한 순간에만 관리자(root) 권한을 빌려 패키지 설치나 관리 작업을 수행합니다.

# Ubuntu (APT) $ sudo apt install git -y # RHEL (DNF) $ sudo dnf install git -y

🛡️ 권한의 3요소 (r, w, x)

  • r (Read, 4) - 읽기 권한
  • w (Write, 2) - 쓰기 권한
  • x (Execute, 1) - 실행 권한
  • 예: chmod 755 file

🔐 권한 및 소유권 변경

리눅스 파일의 권한을 변경하거나 소유자를 바꿉니다.

# 실행 권한 부여 (chmod) [devops@localhost ~]$ chmod +x script.sh # 소유자 변경 (chown) [devops@localhost ~]$ sudo chown user:group file.txt
27 — 핵심 정리 & 실습 시나리오

🎯 핵심 정리 & 실습 시나리오

✅ 리눅스 생존 명령어 체크리스트

📂 파일 탐색 & 제어

  • 목록/위치: ls -la, pwd, cd
  • 검색/보기: find, cat, less
  • 관리: mkdir, touch, cp, mv, rm -rf

⚙️ 프로세스 & 시스템

  • 확인: ps aux, top/htop
  • 강제종료: kill -9 [PID]
  • 자원: df -h(디스크), free -h(메모리)

🌐 네트워크 & 텍스트

  • 통신: curl, wget, netstat -tlnp, ss -tlnp
  • 필터: grep, tail -f, |(파이프)
  • 권한: chmod, chown, sudo

📦 패키지 관리

  • Ubuntu: apt install [패키지]
  • RHEL: dnf install [패키지]

💡 DevOps 엔지니어의 습관: 명령어를 실행하기 전 pwd를 확인하고, 긴 로그는 grep이나 less로 필요한 부분만 봅니다. 모든 것은 파일이며, 텍스트가 곧 설정입니다.

이동  ·  T 테마
×