본문 바로가기
Computer Science/Linux 다뤄보는 문과생

Linux 다뤄보는 문과생 (4) - 리눅스의 파일시스템 사용하기

by 싸코 2017. 11. 21.

리눅스 터미널 환경에서는 Windows에서는 cmd나 powershell과 같은 환경이랑 동일하기 때문에 파일 관리가 비슷하게 힘들다. GUI 환경에서는 드래그앤드랍 으로도 쉽게 파일을 이동하는 것이 커맨드 라인으로 작업을 하면 파일경로나 명령어들을 기억해서 사용해야 하기 때문에 여간 번거로운게 아니다.

 

그래도 재밌는건 파일시스템과 디렉토리 구조가 머리 속에 들어있으면 이 과정이 꽤나 숙달된 상태에서는 상당부분 편하다는 장점이 있다. 3편에서 배웠던 파일위치 재지정 같이 ">" 이런 것들을 사용하면 파일 복사나 이동 등이 상당히 편하다

 

파일시스템은 리눅스를 써야할 때 쉘 명령어, vi와 함께 가장 필수적인 사항이 아닐까 싶다.

 

Linux 다뤄보는 문과생 (4)

리눅스의 파일시스템 사용하기

 

 

1. 리눅스 파일시스템

리눅스 파일 시스템은 여러 파일들로 구성되어 있으며 '일반 파일', '디렉토리', '링크된 파일', '디바이스 파일'이 있음

 

1) Linux 파일시스템의 특징

Linux에서 데이터와 프로그램은 조직화되고 위계적인 구조를 가진 파일에 저장됨 => 파일 시스템

우리가 보통 아는 /a/b/c 와 같은 구조를 말하는 드함

 

계층구조 파일 시스템 Hierarchical Directory

마치 나무와 비슷한 모양의 계층적인 구조를 가진 디렉토리를 말함

파일 시스템의 관리를 쉽게 할 수 있어 파일의 정리와 보호에 유용한 구조

 

root directory (/)

 : 트리 구조에서 가장 위에 있는 최상위를 가리키는 말. 오직 자식 노드만 존재한다

   시스템 관리자 root 와는 구별된 것임

 

단일 루트 파일 시스템

root 개수가 하나이며 마운트가 필요함. 드라이브 문자가 필요없음

 

/boot  : 부팅 중 사용되는 커널과 기타 파일이 저장된 디렉토리

/usr    : 일반 사용자 및 관리자를 위한 명령어들을 포함하는 디렉토리

/home : 개인 사용자를 위한 디렉토리

/etc    : 시스템 환경설정과 관련된 파일을 포함하는 디렉토리

/var    : 시스템의 각종 로그 파일이나 메일을 관리하는 디렉토리

/dev   : 각종 장치를 사용하는데 필요한 장치 파일을 포함하는 디렉토리

/bin    : 사용자가 실행시킬 수 있는 명령들이 포함된 디렉토리

/lib     : 프로그램 개발이나 실행시 필요한 라이브러리가 포함된 디렉토리

/sbin   : 시스템 관리에 필요한 명령들이 포함된 디렉토리

/tmp   : 임시 파일들을 저장하는 디렉토리

 

출처: http://realforce111.tistory.com/63

 

 

 

 

2. 파일명 지정

1) 파일명 지정의 규칙

  1. 기본적으로 슬래시(/)를 제외한 어떤 ASCII 문자라도 파일명으로 사용 가능 (편의를 위해 .과 _ 문자를 이용하는 것이 좋음)
  2. 파일명 최대 길이는 255자로 제한, 대소문자 구별이 엄격
  3. 파일명의 확장자는 의미가 없음. 컴파일러나 특정 프로그램에서 확장자를 인식하여 다른 동작을 하는 경우는 있음
  4. 대부분의 Linux 프로그램들은 백업파일 이름으로 끝에 -이나 ~를 추가
  5. 점. 으로 시작되는 파일은 보통 숨김 파일(Hidden File)이라고 함

파일명은 경로명을 포함한 개념임

 

 

2) 경로명 Path Name

파일시스템 상의 특정 디렉토리나 파일을 지칭

 

  • 절대경로
    - 루트 디렉토리와의 상관 관계로 지칭하는 경로
    - 루트에서부터 시작하여 현재 위치를 나타내는 경로
  • 상대경로
    - 현재 디렉토리와의 상관 관계를 지칭하는 경로

 

디렉토리 이름으로 "." 이나 ".."을 사용하면 ASCII문자 이상의 의미를 가짐

하나의 . 은  현재 디렉토리를,

두개의 .. 은 상위 디렉토리를 의미함

 

 

3) 홈 디렉토리

모든 사용자에게는 홈 디렉토리가 있으며 로그인했을때 UID를 할당받으며 홈 디렉토리ㅗㄹ 옮겨지고 모든 파일 제어 및 명령은 기본적으로 홈 디렉토리에서 수행됨

 

홈 디렉토리에서는 사용자의 파일을 만들 수 있으며 다른 사용자로부터 보호됨

 

홈 디렉토리에는 사용자별 개별 설정 사항이 숨기파일로 보관됨

 

 

 

3. 기본적인 파일 제어 명령

1) 도움말 기능 : man 명령어

man[섹션번호] 명령어 또는 파일명

 

 

2) 경로이동 및 확인 : cd, pwd

이건 너무 많이 사용하는거라서 몸이 기억한다

디렉토리명을 생략하면 홈 디렉토리로 이동하고

디렉토리명 대신 '-'을 이용하면 바로 이전의 디렉토리로 이동함

 

 

3) 파일 목록: ls

ls [옵션] [파일명]

-l 파일의 정보를 자세히 보여줌

-a 숨김파일까지 보여줌

-R 서브 디렉토리의 파일까지 재귀적으로 보여줌

-t 파일의 수정시간을 기준으로 정렬하여 보여줌

 

-rw------

가장 앞에 '-'는 일판 파일을 의미하며

 

 

4) 파일 및 디렉토리 복사 & 이동

cp [옵션] <원본파일명> <목적 파일명>

-r 디렉토리 복사

-i 목적파일에 해당하는 파일이 존재하는 경우 확인 요구

 

mv <원본파일명> <목적 파일명>

 

 

5) 파일 및 디렉토리 생성과 삭제

touch 파일명

 - 내용이 없는 빈파일을 만드는 명령

 - 프로그램을 설치하고 프로그램 동작에 필요한 초기 파일 만들 때 사용

 

파일 삭제

$ rm [옵션] 파일/디렉토리

-i 삭제전 삭제여부 물어봄

-r 디렉토리 삭제

-f 무조건 삭제

 

디렉토리 생성

mkdir 디렉토리명

 

디렉토리 삭제

rmdir 디렉토리명
  - 파일이나 서브 디렉토리가 남아있는 경우에는 rm -r 명령을 이용하여 삭제

 

 

6) 파일 내용 보기

cat

파일의 내용 전체를 확인하고자 할 때 사용하는 명령

 

less 파일명

more 파일명

파일의 내용을 페이지 단위로 제시하며 앞/뒤로 스크롤 시킬 수 있는 기능이 있으며 |(파이프)를 이요하여 다른 명령어와 ㅎ마꼐 사용되고 j, k 옵션으로 강력하게 수행될 수 있음

ex. ps -e | more       현재 시스템에 동작되고 있는 모든 프로세스에 대한 정보를 보여주는 명령

 

head

tail

파일이 매우크고 보고자 하는 내용이 처음이나 끝에 있을 때 사용함

ex. head -10 파일명

 

 

7) 파일 찾기

find <경로> [옵션] 파일명

- name : 파일 명이 filename과 일치하는 파일을 찾음

- type x : 팡리 타입이 x와 일치하는 파일을 찾음 x는 다음중 하나(f:일반파일, d:디렉토리, I:심볼릭링크)

- user username : 파일 소유자가 user name과 일치하는 파일을 찾음

- exec command \;  : find 명령에서 찾은 파일을 command에 지정된 명령으로 실행하는 옵션

 

ex. find / -name passwd   파일 시스템의 최상위 루트 디렉토리에서 파일명이 passwd 인 파일을 찾은 결과

ex. find ~ .type d    홈 디렉토리 이하에서 파일 타입이 디렉토리인 경우만 찾은 결과

 

 

8) 문자열 찾기

grep 문자열 <파일명>

 

^ 라인의 시작

$ 라인의 끝

[] 안의 한문자

* 앞 글자가 0번 이상 반복

. 임의의 한 문자

 

ex. grep ^user /etc/passwd     Linux 시스템에 사용자 명이 등록되어 있는지 문자열 찾기

ex. ls -l | grep ^-     일반 파일의 정보만 확인 (첫 번째 글자가 -로 시작하는 것을 찾기 때문)

ex. ps -e | grep httpd      웹서버 프로세스 httpd와 ftp 서버 프로세스인 vsftpd가 동작중인지 확인

 

 

9) 파일의 압축과 관리

압축 파일은 다음과 같이 압축되어 있음

.tar.gz

.tar.bz2

 

압축을 풀기위해서는

tar [옵션] <tar파일명> [파일명1 파일명2]

 

 

ex. 파일 압축풀기  tar -xvzf python213.tar.gz

ex. 파일 압축하기  tar -cvjf /tmp/home.tar.bz2

 

 

10) 디스크 관련 명령

남은 공간 측정

df [옵션] [파일시스템]

-k 블록크기의 단위를 KB로 보여줌

-i 파일의 크기를 블록대신 inode 수로 보여줌

-h 블록의 크기를 알기 쉬운 형태로 보여줌 (G, M, K Byte 단위)

 

사용량 측정

du [옵션] [디렉토리명]

 

 

11) 파일 공유

링크의 개념과 특징

  • 하드링크
     - 파일의 아이노드를 함께 공유하는 링크 방법
     - 동일한 파일시스템 안에서만 링크가 가능
     - 디렉토리는 하드링크가 안됨
    ln 파일명 링크명
  • 심볼릭링크
     - 원본파일의 링크를 공유
     - 링크 수에 영향을 주지 않음
     - 원본 파일이 삭제되면 파일 내용 참조 불가능
     - 서로 다른 파일 시스템 간 링크 가능
     ln -s 파일명 링크명

 

12) 파일 비교

diff 파일1 파일2

파일의 차이 나는 부분을 알아볼 때 이용

 

댓글