Linux Shell

2026. 1. 2. 18:37📚 Linux

🐧 리눅스(Linux) & 쉘(Shell) 기초

1. 운영체제(OS)와 리눅스 개요

🔹 운영체제 (Operating System)

  • 정의: 하드웨어를 관리하는 프로그램 (사용자와 하드웨어 사이의 중개자).
  • 역할:
    • 하드웨어 자원 관리 (Base: C언어).
    • 컴퓨팅 시스템을 사용자가 사용할 수 있게 지원.
    • 프로그램 간 충돌 방지 및 파일 시스템 관리.
  • 컴퓨팅 시스템 구성: CPU + 메모리 + 저장장치 + 페리페럴(네트워크, 입출력 장치, 프린터 등).

🔹 리눅스 (Linux)

  • 특징: 서버 및 임베디드 OS 시장 지배.
  • 커널(Kernel): 리눅스는 OS 자체가 아니라 OS의 핵심 소스코드인 '커널'이다.
    • OS = App + Shell + Kernel
    • 리눅스 배포판: 리눅스 커널에 App과 Shell을 추가하여 만든 완전한 운영체제.
  • 임베디드 시스템:
    • 특정 목적을 위해 만들어진 컴퓨팅 시스템.
    • 리눅스는 커스터마이징이 용이하여 임베디드 OS로 적합함.

2. 개발 환경 구축

🔹 환경 구성 요소

  • Ubuntu (우분투): 리눅스 배포판 중 가장 널리 쓰임. 높은 안정성과 보안성(오픈소스).
    • 버전: ubuntu-22.04.5-desktop-amd64.iso (호환성 문제로 최신 LTS 사용 권장).
  • VirtualBox: 가상화 소프트웨어. 윈도우 환경 내에서 우분투를 설치하여 사용.
  • MobaXterm: 원격 접속 도구.

🔹 우분투 패키지 관리 시스템

  • 관리 도구: 각 도구끼리 독립적으로 관리됨.
    1. APT: Binary 또는 소스코드 형태로 배포.
    2. Gnome Software (우분투 소프트웨어): Binary 형태로 배포.
  • 추천 사용법:
    • GUI용 App (크롬, VSCode 등): 우분투 소프트웨어 사용.
    • Linux 전용 App: APT 명령어 사용.

3. 쉘 (Shell)

🔹 개념

  • 정의: 시스템 사용자(User)와 커널(Kernel) 간의 인터페이스(Interface)를 제공하는 프로그램.
  • 종류:
    • CLI Shell: 글자(Command) 기반 인터페이스.
    • GUI Shell: 그래픽(Graphic) 기반 인터페이스.
  • 환경별 쉘:
    • 우분투: GNOME 3 (GUI) + Bash (CLI)
    • 라즈베리파이: LXDE (GUI) + Bash (CLI)

4. 쉘 명령어 (Shell Command)

⌨️ 단축키 및 제어

단축키 기능
Ctrl + Alt + t 터미널 창 열기
Ctrl + Shift + w 터미널 창 닫기
Ctrl + Insert 복사
Shift + Insert 붙여넣기
Ctrl + S 화면 출력 Stop (멈춤, 저장 아님)
Ctrl + Q 화면 출력 Start (Ctrl+S 해제)

📂 디렉토리 이동 및 탐색

  • $ exit: 터미널 종료.
  • pwd: 현재 디렉토리 경로 확인.
  • clear: 화면 지우기.
  • ls: 현재 디렉토리 목록 출력.
  • ls -al: 숨김 파일 포함 상세 보기.
  • cd [경로]: 디렉토리 이동.
    • cd ..: 상위 디렉토리로 이동.
    • cd ~: 사용자 홈(Home) 디렉토리로 이동.
    • cd -: 바로 직전 디렉토리로 이동.

5. 리눅스 파일 시스템

🔹 특징

  • Root(/): 윈도우(C:\)와 달리 리눅스는 최상위 경로인 /(Root)에서 모든 관리가 시작됨.
  • 포맷 형식: ext4, ntfs, fat32 등.

🔹 파일 및 디렉토리 관리 명령어

명령어 설명 예시
touch 파일 생성 touch test.txt
mkdir 디렉토리 생성 mkdir workspace
mkdir -p a/b/c (하위 경로 한번에 생성)
rm 파일 삭제 rm test.txt
rmdir 디렉토리 삭제 rmdir workspace (빈 폴더만 가능)
rm -r 디렉토리 전체 삭제 rm -r workspace (내부 파일 포함 삭제)
mv 이동 / 이름 변경 mv file.txt ./dest (이동)
mv file.txt new.txt (이름 변경)
cp 복사 cp file.txt ./backup
cp -r 디렉토리 복사 cp -r folder ./backup

🔹 주요 디렉토리 구조 (/ 하위)

  • bin: 기본 명령어 포함
  • boot: 부팅 관련 파일
  • dev: 디바이스 파일
  • etc: 설정 파일
  • home: 사용자 홈 디렉토리
  • media / mnt: 마운트 포인트
  • root: 루트 사용자 홈
  • sbin: 시스템 관리자 명령어
  • sys / tmp / usr / var: 시스템, 임시 파일, 사용자 프로그램, 로그 등

'📚 Linux' 카테고리의 다른 글

[Linux] Build System 이해  (0) 2026.01.12
[Raspberry pi] sensor  (1) 2026.01.10
라즈베리파이 & 임베디드 기초  (0) 2026.01.10
[Linux] 원격접속 / 사용자와 파일 권한  (0) 2026.01.05
[Linux] vi / plugin  (0) 2026.01.05