Taeyoung Kim

Cloud & Platform

리눅스 터미널 기초 학습 노트 요약-1

리눅스 터미널 기초 학습 노트 요약-1 학습 내용을 정리한 백필 노트입니다.

이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.


챕터 1. WSL 2 설치 및 Ubuntu 세팅

  • 학습 목표: Windows 내에 WSL 2를 설치하고, 가장 대중적인 리눅스 배포판인 Ubuntu 환경을 설정하여 개발의 기초를 마련합니다.
  • 핵심 개념:
    • 터미널 (Terminal): 키보드로 명령어를 입력하여 컴퓨터와 소통하는 강력한 도구.
    • WSL (Windows Subsystem for Linux): Windows 안에서 리눅스 프로그램을 실행할 수 있게 해주는 환경.
    • Ubuntu: 개발자들에게 가장 인기 있고 자료가 풍부한 리눅스 배포판.
  • 설치 절차:
    1. Windows 버전 확인: WSL 2 지원 여부 확인 (winver).
    2. Windows 기능 활성화: PowerShell(관리자 권한)에서 'Linux용 Windows 하위 시스템' 및 '가상 머신 플랫폼' 기능 활성화.
    3. 컴퓨터 재시작: 변경 사항 적용.
    4. 리눅스 커널 업데이트: 최신 WSL 2 리눅스 커널 패키지 다운로드 및 설치.
    5. WSL 2 기본 버전 설정: wsl --set-default-version 2 명령어로 기본값 설정.
    6. Ubuntu 설치: Microsoft Store에서 Ubuntu 검색 및 설치.
    7. Ubuntu 초기 설정: Ubuntu 실행 후 사용자 계정(ID, 비밀번호) 생성.

챕터 2. 터미널 기본 명령어 실습

  • 학습 목표: 터미널을 열고 파일 시스템의 기본 구조를 이해하며, 디렉토리와 파일을 직접 생성, 이동, 삭제하는 능력을 기릅니다.
  • 핵심 개념:
    • 파일 시스템 (File System): 파일이 저장되는 구조. 디렉토리(폴더)들이 나무처럼 계층적으로 구성됩니다.
    • 명령어 (Command): 터미널에 입력하는 컴퓨터가 알아들을 수 있는 지시어.
  • 주요 명령어:
    • pwd: 현재 작업 중인 디렉토리의 전체 경로를 확인합니다 (Print Working Directory).
    • ls: 현재 디렉토리의 파일 및 폴더 목록을 봅니다 (List).
    • cd [경로]: 지정된 디렉토리로 이동합니다 (Change Directory). cd ..는 상위 디렉토리로 이동합니다.
    • mkdir [이름]: 새로운 디렉토리를 생성합니다 (Make Directory).
    • touch [이름]: 비어있는 새 파일을 생성합니다.
    • rm [파일 이름]: 파일을 삭제합니다 (Remove). (주의: 휴지통으로 가지 않고 영구 삭제됩니다.)
    • rmdir [폴더 이름]: 비어있는 디렉토리를 삭제합니다 (Remove Directory).

챕터 3. 파일 조작 실습

  • 학습 목표: 파일을 복사, 이동, 이름 변경하고, 파일의 전체 또는 일부 내용을 효율적으로 확인하는 방법을 익힙니다.
  • 핵심 개념:
    • 인자 (Argument): 명령어 뒤에 붙여 '무엇을 대상으로' 할지 지정하는 추가 정보.
  • 주요 명령어:
    • 파일 생성/수정:
      • echo "내용" > [파일]: 파일에 내용을 덮어씁니다.
      • echo "내용" >> [파일]: 파일의 끝에 내용을 추가합니다.
    • 파일 내용 확인:
      • cat [파일]: 파일의 전체 내용을 출력합니다.
      • head [파일]: 파일의 앞부분 10줄을 출력합니다.
      • tail [파일]: 파일의 뒷부분 10줄을 출력합니다.
      • less [파일]: 긴 파일을 페이지 단위로 스크롤하며 볼 수 있습니다 (q로 종료).
      • more [파일]: less와 유사하지만 기능이 더 적습니다.
    • 파일 복사 및 이동:
      • cp [원본] [대상]: 파일을 복사합니다 (Copy).
      • mv [원본] [대상]: 파일을 이동하거나 파일 이름을 변경합니다 (Move).

챕터 4. 파일 권한 실습

  • 학습 목표: 파일의 소유권과 권한(읽기, 쓰기, 실행)을 이해하고 chmod 명령어로 권한을 제어하는 방법을 배웁니다.
  • 핵심 개념:
    • 사용자: 소유자(user), 그룹(group), 그 외 사용자(others)로 구분됩니다.
    • 권한: 읽기(read, r), 쓰기(write, w), 실행(execute, x) 권한이 있습니다.
    • 권한 확인: ls -l 명령어로 rwxr-xr-- 형태의 권한 정보를 확인합니다.
  • 주요 명령어:
    • chmod: 파일이나 디렉토리의 권한을 변경합니다 (Change Mode).
      • 문자 방식: u+x (소유자에게 실행 권한 추가), g-w (그룹에서 쓰기 권한 제거), o=r (기타 사용자에게 읽기 권한만 설정).
      • 숫자 방식: r=4, w=2, x=1의 합으로 권한을 표현. chmod 755 [파일] (소유자:rwx, 그룹:r-x, 기타:r-x).
    • chown: 파일의 소유자나 그룹을 변경합니다 (Change Owner).
    • ./[스크립트 파일]: 현재 디렉토리에 있는 스크립트 파일을 실행합니다.

챕터 5. 텍스트 에디터 실습 (nano)

  • 학습 목표: 터미널 환경에서 nano 에디터를 실행하여 텍스트 파일을 만들고, 내용을 입력, 수정, 저장, 검색하는 기본 기능을 익힙니다.
  • 핵심 단축키: (^는 Ctrl 키를 의미합니다)
    • 실행/종료: nano [파일] (실행), ^X (종료).
    • 저장: ^O (WriteOut, 저장).
    • 편집:
      • ^W: 내용 검색 (Where Is).
      • ^K: 한 줄 잘라내기 (Cut).
      • ^U: 잘라낸 내용 붙여넣기 (UnCut).
    • 도움말: ^G (Get Help).

챕터 6. 텍스트 에디터 실습 (vim)

  • 학습 목표: vim의 3가지 핵심 모드(일반, 입력, 명령행)를 이해하고, 모드 전환을 통해 파일을 열고, 편집하고, 저장 및 종료하는 방법을 익힙니다.
  • 핵심 개념 (모드):
    • 일반 모드 (Normal Mode): vim 시작 시 기본 모드. 커서 이동, 삭제 등 명령을 수행.
    • 입력 모드 (Insert Mode): i 키로 진입. 실제 텍스트를 입력.
    • 명령행 모드 (Command-line Mode): : 키로 진입. 저장, 종료 등 파일 단위 명령 수행.
  • 주요 명령어:
    • 모드 전환: i (입력 모드 진입), Esc (일반 모드 복귀), : (명령행 모드 진입).
    • 일반 모드: h,j,k,l (이동), x (한 글자 삭제), dd (한 줄 삭제).
    • 명령행 모드: :w (저장), :q (종료), :wq (저장 후 종료), :q! (강제 종료).

챕터 7. 파일 검색 및 관리 실습

  • 학습 목표: findgrep을 사용하여 파일과 파일 내용을 검색하고, tar, gzip, zip을 사용하여 파일을 아카이빙하고 압축/해제하는 능력을 기릅니다.
  • 주요 명령어:
    • 파일 검색:
      • find [경로] [조건]: 파일 시스템에서 조건(이름, 시간, 종류, 크기 등)에 맞는 파일을 검색합니다.
      • grep [패턴] [파일]: 파일 내용에서 특정 문자열(패턴)이 포함된 줄을 검색합니다. (r: 하위 디렉토리 포함, i: 대소문자 무시, l: 파일 이름만 출력)
    • 파일 묶기 및 압축:
      • tar -cvf [묶음.tar] [대상]: 여러 파일을 하나의 파일로 묶습니다 (아카이빙).
      • tar -xvf [묶음.tar]: 묶인 파일을 해제합니다.
      • gzip [파일]: 파일을 압축하여 .gz 파일을 만듭니다.
      • gunzip [파일.gz]: 압축을 해제합니다.
      • tar -czvf [압축.tar.gz] [대상]: 묶기와 압축을 동시에 수행합니다.
      • tar -xzvf [압축.tar.gz]: 압축과 묶음을 동시에 해제합니다.
      • zip -r [압축.zip] [대상]: 디렉토리를 zip 파일로 압축합니다.
      • unzip [압축.zip]: zip 파일의 압축을 해제합니다.