승코딩당당당

[리눅스] 리눅스 기초 정리 (파일, 디렉터리, 셸) 본문

개발/임베디드

[리눅스] 리눅스 기초 정리 (파일, 디렉터리, 셸)

승코딩당당당 2026. 2. 11. 01:01

 

리눅스는 서버 환경을 비롯해 다양한 시스템에서 널리 사용되는 운영체제로,
기본 개념을 정확히 이해하는 것이 이후 시스템 프로그래밍이나 서버 관리 학습의 기초가 된다.

 

이 글에서는 리눅스의 전반적인 구조를 시작으로 커널과 셸의 역할을 살펴보고,
리눅스 파일 시스템의 특징파일·디렉터리의 종류, 계층 구조를 정리한다.
또한 절대 경로와 상대 경로의 차이, 작업 디렉터리홈 디렉터리 개념을 함께 정리하여
리눅스 환경에서 파일을 다루는 기본적인 감각을 익히는 것을 목표로 한다.

 

마지막으로 셸의 기능과 종류를 통해 사용자가 리눅스 시스템과 어떻게 상호작용하는지 이해해본다.

 


 

리눅스 기초

  • 리눅스의 특징
    • 리눅스는 공개 소프트웨어이며 무료로 사용할 수 있다.
    • 유닉스와의 완벽한 호환성을 유지한다.
    • 서버용 운영체제로 많이 사용된다.
    • 편리한 GUI 환경을 제공한다.
  • 리눅스의 구조
    • 커널: 리눅스의 핵심
      • 프로세스/메모리/파일 시스템/장치 관리
      • 컴퓨터의 모든 자원 초기화 및 제어 기능
    • 셸: 사용자 인터페이스
      • 명령 해석
      • 프로그래밍 기능
      • 리눅스 기본 셸: 배시 셸 (리눅스 셸)
    • 응용 프로그램
      • 각종 프로그래밍 개발 도구
      • 문서 편집 도구
      • 네트워크 관련 도구 등

 


 

파일 및 폴더 다루기

리눅스 파일의 종류와 특징

  • 파일의 종류
    • 파일: 관련 있는 정보들의 집합
    • 리눅스는 파일을 효과적으로 관리하기 위해 디렉터리를 사용
    • 리눅스에서 파일은 사용 목적에 따라 일반 파일, 디렉터리, 심볼릭 링크, 장치 파일로 구분
  • 일반 파일(Regular File)
    • 데이터를 저장하는 데 주로 사용
    • 각종 텍스트 파일, 실행 파일, 이미지 파일 등 리눅스에서 사용하는 대부분의 파일은 일반 파일에 해당
    • 실행 파일이나 이미지 파일의 경우 바이너리 형태로 데이터가 저장되어 바이너리 파일이라고 함
    • 텍스트 파일은 문서 편집기를 사용하여 내용을 보거나 편집할 수 있으나, 실행 파일이나 이미지 파일의 경우 해당 파일의 내용을 확인할 수 있는 특정 응용 프로그램이 있어야 확인할 수 있음
  • 디렉터리(Directory)
    • 리눅스에서는 디렉터리도 파일로 취급
    • 디렉터리 파일에는 해당 디렉터리에 저장된 파일이나 하위 디렉터리에 대한 정보가 저장
  • 심볼릭 링크
    • 원본 파일을 대신하여 다른 이름으로 파일명을 지정한 것 (윈도의 바로가기와 비슷)
  • 장치 파일
    • 리눅스에서는 하드디스크나 키보드 같은 각종 장치도 파일로 취급

디렉터리 계층 구조

  • 리눅스에서는 파일을 효율적으로 관리하기 위해 디렉터리를 계층적으로 구성 → 트리(tree) 구조
  • 모든 디렉터리의 출발점은 루트(root, 뿌리) 디렉터리이며, 빗금(/, 슬래시)으로 표시
  • 하위 디렉터리(서브 디렉터리): 디렉터리 아래에 있는 디렉터리 (bin, etc, usr, home, boot)
  • 루트 디렉터리를 제외하고 모든 디렉터리에는 부모 디렉터리가 있음

https://www.lainyzine.com/ko/article/linux-basics-root-directory-and-direcotry-structure/

 

  • 루트 디렉터리의 서브 디렉터리  ls -F / 
    • /: 해당 파일이 디렉터리임을 표시
    • @: 심볼릭 링크
  • 작업 디렉터리
    • 현재 사용 중인 디렉터리를 작업 디렉터리(working directory) 또는 현재 디렉터리(current directory)라고 함
    • 현재 디렉터리는 “.” 기호로 표시
    • 현재 디렉터리의 위치는 pwd 명령으로 확인
  • 홈 디렉터리
    • 각 사용자에게 할당된 디렉터리로 처음 사용자 계정을 만들 때 지정
    • 사용자는 자신의 홈 디렉터리 아래에 파일이나 서브 디렉터리를 생성하며 작업 가능
    • 홈 디렉터리는 ‘~’ 기호로 표시: ~user1

https://things-voyager.tistory.com/20

 

 

 

  • 경로명
    • 파일 시스템에서 디렉터리 계층 구조에 있는 특정 파일이나 디렉터리의 위치 표시
    • 경로명에서 각 경로를 구분하는 구분자로 슬래시(/)를 사용
    • 경로명에서 가장 앞에 있는 /는 루트 디렉터리를 뜻하지만 경로명 중간에 있는 /는 구분자
    • 예:  /usr/bin/ls 에서 맨 앞의 /는 루트 디렉터리를 의미하고, 중간에 있는 / 두 개는 디렉터리 이름과 파일 이름을 구분하는 구분자
  • 절대 경로명
    • 항상 루트(/) 디렉터리부터 시작
    • 반드시 /로 시작한다
    • / 디렉터리부터 시작하여 특정 파일이나 디렉터리의 위치까지 이동하면서 거치게 되는 모든 중간 디렉터리의 이름을 표시
    • 특정 위치를 가리키는 절대 경로명은 항상 동일
  • 상대 경로명
    • 현재 디렉터리를 기준으로 시작
    • / 이외의 문자로 시작
    • 현재 디렉터리를 기준으로 서브 디렉터리로 내려가면 그냥 서브 디렉터리의 이름을 추가
    • 현재 디렉터리를 기준으로 상위 디렉터리로 가려면 ..을 추가
    • 상대 경로명은 현재 디렉터리가 어디냐에 따라 달라짐
  • 파일과 디렉터리 이름 규칙
    • 파일과 디렉터리 이름에는 /를 사용할 수 없다.
      /는 경로명에서 구분자로 사용하기 때문이다.
    • 파일과 디렉터리 이름에는 알파벳, 숫자, 붙임표(-), 밑줄(_), 점(.)만 사용한다.
    • 파일과 디렉터리 이름에는 공백 문자, *, |, “, ‘, @, #, $, %, ^, & 등을 사용하면 안 된다.
    • 파일과 디렉터리 이름의 영문자는 대문자와 소문자를 구별하여 다른 글자로 취급한다.
    • 파일과 디렉터리 이름이 ‘.’으로 시작하면 숨김 파일로 간주한다.
  • 파일 이름 예
    • 좋은 이름: game.txt, hello.c, test, sample11
    • 나쁜 이름: &game, *dir, my home, game\
    • 사용할 수 없는 이름: myhome/, test, bad/name

 


 

셸 사용하기

셸의 기능과 종류

  • 셸의 기능
    • 명령어 해석기 기능, 프로그래밍 기능, 사용자 환경 설정 기능
  • 명령어 해석기 기능
    • 사용자와 커널 사이에서 명령을 해석하여 전달하는 해석기(interpreter)와 번역기(translator) 기능
    • 사용자가 로그인하면 셸이 자동으로 실행되어 사용자가 명령을 입력하기를 기다림 → 로그인 셸
    • 로그인 셸은 /etc/passwd 파일에 사용자별로 지정
    • 프롬프트: 셸이 사용자의 명령을 기다리고 있음을 나타내는 표시
  • 프로그래밍 기능
    • 셸은 자체 내에 프로그래밍 기능이 있어 반복적으로 수행하는 작업을 하나의 프로그램으로 작성 가능
    • 셸 프로그램을 셸 스크립트라고 함
  • 사용자 환경 설정 기능
    • 사용자 환경을 설정할 수 있도록 초기화 파일 기능을 제공
    • 초기화 파일에는 명령을 찾아오는 경로를 설정하거나, 파일과 디렉터리를 새로 생성할 때 기본 권한을 설정하거나, 다양한 환경 변수 등을 설정
  • 셸의 종류
    • 본 셸, 콘 셸, C 셸, 배시 셸, 대시 셸