[구름 k8s] TIL 1-2-2

Peppie·2022년 8월 9일
0

1. 파일 종류 및 특징

파일 시스템 (디렉토리 구조) 경로

경로 (path)

원하는 디렉토리로 이동하거나 명령을 적용하는 디렉토리의 위치 결정법

경로 지정 방법

절대경로 지정

  • 항상 / (root)로부터의 경로를 지정하는 방법
  • 경로 지정을 할 때 항상 / (root)로 시작
  • 같은 디렉토리에 대한 경로가 항상 동일한 경로 지정

상대경로 지정

  • 현재 디렉토리 (위치)를 기준으로 경로를 지정하는 방법
  • 현재 디렉토리의 하위 디렉토리에 대한 경로 지정시 유리
    단, 현재 위치를 정확히 알고 있어야 한다
  • 경로 지정시 현재 위치를 기준으로 경로 지정 시작
  • 상대 경로 지정을 위한 특수문자

    . : 현재 디렉토리, 즉 자기자신
    .. : 이전 디렉토리, 현재 디렉토리의 부모 디렉토리
    ~ (틸트) : login 사용자 (현재 사용자) 홈 디렉토리
    ~사용자 : 특정 사용자 홈 디렉토리

사용자 / 그룹 / 권한 (★매우 중요★)

사용자

  • Linux 사용자는 기본적으로 ID를 이용하여 식별
  • Linux Kernel은 사용자를 이름이 아닌 번호로 식별
  • whoami : 현재 사용자 ID 출력 명령

UID (User ID)

  • 사용자 식별 번호, Kernel에 의해 양의 정수 형태로 0번부터 임의부여
  • UID 0번은 root
  • UID 확인 명령

    id : 현재 사용자 ID 정보 출력
    id <사용자명> : 지정 사용자 정보 출력

그룹

사용자 집합

  • 최소 하나의 사용자가 그룹에 소속됨
  • Linux 사용자는 한 개 이상의 그룹에 소속됨 (최소 한 개의 그룹에 소속)
  • 각 사용자는 기본 그룹과 기타 그룹에 소속
  • Linux 사용자는 여러 그룹에 소속 가능

GID (Group ID)

  • 그룹 식별 번호, kernel에 의해 관리됨
  • GID 0번은 root 그룹

권한

파일에 대한 읽기 (Read) / 쓰기 (Write) / 실행 (eXecute) 권한 결정

  • 읽기 권한 (Read) : 파일 내용 읽기 권한; 권한 부여시 r / 미부여시 - 표시
  • 쓰기 권한 (Write) : 파일 내용 쓰기 (기록) 권한; 권한 부여시 w / 미부여시 - 표시
  • 실행 권한 (eXecute) : 파일 실행 권한; 권한 부여시 x / 미부여시 - 표시

파일 소유자 (파일 생성 사용자), 파일 소유자 그룹, 기타 사용자의 읽기/쓰기/실행에 대해 권한 부여

실행 권한이 없으면 바이너리 파일이라도 실행 불가능, 실행 권한이 있다면 텍스트 파일도 실행 가능

권한은 총 3*3=9자리로 부여 가능 (파일 소유자/그룹/기타 사용자의 각각 읽기/쓰기/실행 권한)

  • 파일 소유자: rwx, rw-, r-x, -wx, --x, ---
  • 파일 소유자 그룹: rwx, rw-, r-x, -wx, --x, ---
  • 기타 사용자: rwx, rw-, r-x, -wx, --x, ---

2. 파일 다루기

shell 기본 명령어 (파일 다루기 포함)

명령 형식

명령어 [옵션][인수]

  • 명령: shell 내장 명령 및 외부 명령
  • 옵션 (option) : 명령에 대한 부가 기능 추가, 생략가능

    -옵션 : 약자 형식(한글자)의 옵션, 여러 옵션을 중첩해서 사용가능
    --옵션 : GNU 옵션 (더 자세한 설명), 옵션 full name 사용, 여러 옵션 중첩 불가능
    일부 명렁어 중 - (하이픈) 없이 부여되는 옵션도 존재

  • 인수 (argument) : 명령 수행에 필요한 추가값, 생략가능

shell 기본 명령

history

shell 명령 history 목록 출력

file

파일 형식 확인

sudo

관리가 권한 일시 획득
sudo [옵션][인수]

su

switch user, 사용자 전환

  • su - : root로 사용자 전환
  • su -<사용자 이름> : 일반 사용자 전환

pwd

현재 위치에 대한 경로

man

명령에 대한 매뉴얼 표시

  • man <명령>
    ex) man pwd
  • man [매뉴얼 페이지 번호] <명령>
    ex) man 8 sudo
  • man 명령 종료: q

페이지 종류

  • 1 : 일반 명령어
  • 2 : 시스템 호출
  • 3 : C 표준 라이브러리 함수 ( libc )
  • 4 : 특수파일
  • 5 : 형식과 conventions
  • 6 : 게임과 화면보호기
  • 7 : 기타
  • 8 : 시스템 관리 명령과 데몬

shell 기본 명령 : 파일 시스템 명령

whereis

명령어 위치 확인 및 명령어와 관련된 파일 위치도 표시

which

명령어 위치 확인

li

List, 디렉토리 목록 확인; ls [옵션][파일명 or 디렉토리]

  • ls : 現 디렉토리의 파일목록 출력
  • --color : 파일 유형에 따라 색상 다르게 출력, 기본적으로 적용된 옵션 (GNU 방식)
  • -l : long, 파일 상세정보 출력

Linux 파일 구조 : inode block + data block

inode block : 파일 정보 저장

  • inode 번호 : 파일식별자
  • 파일 유형
  • 파일 권한
  • 파일 소유자
  • 파일 소유자 그룹
  • 파일 생성/수정 날짜 시간
  • 파일 크기

data block

  • 실제 데이터 저장
  • 기본 4KB 크기로 생성, 데이터 추가로 4KB 초과시 새 data block 생성

ls-l 입력 결과 예시와 분석

drwxr-xr-x 2 worker worker 4096 8월 5 15:53
  1. d -> 파일 유형
    d : 디렉토리
    -: 일반 파일
    l : Symbolic (soft) link 파일
    c : Character device file
    b : Block device file -> c와 b 포함한 device 파일은 파일크기 대신 major / minor 번호 표시
    p : pipe 파일
  2. rwxr-xr-x -> 3개씩 끊어서 순서대로 소유자/소유자 그룹/기타 사용자 권한
  3. 2 -> 하드링크 (파일 복사본) 파일 수
  4. (앞쪽) worker -> 파일 소유자 ID
  5. (뒤쪽) worker -> 파일 소유자 그룹 ID
  6. 4096 -> 파일크기, byte 단위
  7. 8월 5 15:53 -> 파일 최종수정 날짜 시간

위와 같은 drwxr-xr-x와 같이 파일 유형 d에서 권한 x가 있다면 해당 디렉토리에 진입 가능하단 뜻

(★중요★) 파일명은 디렉토리 파일에 저장된다
디렉토리 파일에 대한 실행권한 의미 -> 디렉토리로 이동 가능

디렉토리를 실행한다는 개념은 엄밀히 말하자면 디렉토리 內 내용물을 본다는 내용에 더 가까움

  • -i : inode 번호 출력

  • -a : hidden 파일을 포함한 모든 파일 출력

    . (dot) 으로 시작하는 파일은 hidden 파일, 주로 환경설정용
    . (dot) : 자기자신
    .. (dot dot) : 부모

  • -R : 하위 디렉토리 내용도 모두 출력

  • -F : 파일 형식에 따라 파일명 끝에 문자 표시

    / : 디렉토리 파일
    @ : Symbolic (Soft) link 파일
    *: 실행가능 파일

dir

ls 명령과 같은 결과를 색상 지정없이 출력

vdir

ls -l 과 같은 결과를 색상 지정없이 출력

cd

디렉토리 이동; cd <디렉토리명>

  • cd - : 바로 이전 경로로 이동
  • cd : 사용자 홈 디렉토리로 이동
  • cd ~ : 사용자 홈 디렉토리로 이동
  • cd ~사용자명 : 사용자 홈 디렉토리로 이동
    (sudo cd ~root는 불가능하니 정 root 홈 디렉토리로 바꾸려면 su 사용 권장)

mkdir

디렉토리 생성; mkdir <디렉토리 이름>

  • 새로 생성된 디렉토리에는 항상 . (dot), .. (dot dot) 파일 기본 생성
  • Linux 파일 시스템 계층 관리를 위해 기본 생성
  • -p : 다중 경로상의 중간경로 디렉토리 생성
    이거없이 한번에 두 디렉토리를 mkdir third/temp 방법으로 만들면 에러;
    mkdir -p third/temp 형식으로 해야 동시에 두 디렉토리 생성 성공

rmdir

디렉토리 삭제; rmdir <디렉토리 이름>

  • 디렉토리가 비어있는 경우에만 삭제 가능
  • 디렉토리가 비어있는 경우는 . (dot), .. (dot dot) 파일만 존재하는 경우 의미

cp

Copy, 파일 복사; cp <원본 파일명> <복사 파일명 or 디렉토리명>

  • cp <원본 파일명> ...(여러개) <복사 파일명 or 디렉토리명> : 원본 파일 여러개 복사
    ex) cp hosts ls third/
  • -i : 파일 복사시 동일한 파일명에 대해 확인 메세지 출력, shell 명령 공통 옵션
  • -r : 디렉토리 복사시 하위 디렉토리 포함 복사, shell 명령 공통 옵션

mv

Move, 파일 이동 또는 이름 변경

  • mv <이동 파일명> <디렉토리명> => 이동 (move)
  • mv <원본 파일명> <새로운 이름의 파일명> => 이름 변경 (rename)
  • -i : 이동 시 같은 이름 파일명이 존재하면 이동할지 확인
  • -f : 무조건 파일 이동, 같은 이름의 파일이 있으면 덮어씌움. 기본 동작

0개의 댓글