쌓고 쌓다

[Linux] 파일 시스템 본문

프로그래밍/리눅스

[Linux] 파일 시스템

승민아 2022. 3. 15. 20:46

리눅스에서 디렉토리 구분은 /(슬래시), 윈도우에서는 (역슬래시)

리눅스의 디렉토리는 윈도우에서 폴더 개념이다.

리눅스의 최상위 디렉토리는 / 이다.

 

그 아래 다양한 디렉토리 들이 있다.

/bin : 기본 명령어

/sbin : 부팅관련 명령어

/etc : 환경설정 파일

/usr : 명령어, 시스템 프로그램, 라이브러리 루틴

/kernel : 커널 이미지

/dev : 디바이스 파일

/home : 사용자 홈디렉토리

/export : NFS 마운트

/lib 라이브러리

/var : 메일, 로그 스풀링, 웹서비스

/tmp : 임시파일

/proc : 시스템 정보를 저장하는 가상 파일 시스템

/lost+found : 훼손된 파일 장소

/cdrom : cdrom

/mnt : 외부 장치 마운트

Partition

"sd" : interface type

"a" : sequence of disk

"1", "3", "5" : sequence of partition

 

Mount command

: 파일 시스템을 디렉토리에 연결

Mount [-option] [device-name mount-point]

 

옵션

  • -a : /etc/fstab에 명시된 파일 시스템을 마운트할 때
  • -t : 파일 시스템의 유형을 지정하는 옵션 ( 지정하지 않을시 /etc/fstab 파일을 참조 ) ex) Ext3, ext4, f2fs, btrfs
  • -l : 현재 디스크의 파티션 정보를 출력합니다.
  • -> mount -t <파일 시스템 타입> <장치 파일> <마운트 포인트>
  • mount -t iso9660 /dev/cdrom /mnt/cdrom
  • mount -t ext4 /dev/sdb /home/dltmdals6718/test
  • mount -l
  • 마운트 포인트는 임의의 디렉토리여야 함
  • 반드시 포맷(파일 시스템 생성)후 사용

USB를 꼽으면 내 컴퓨터 폴더에 자동으로 연결되고

외장하드를 꼽아도 :E 이런식으로 폴더가 만들어진다.

이렇게 디스크와 같은 물리적인 장치를 특정 디렉토리에 연결시켜주는것을 마운트라고 한다.

윈도우는 자동으로 해준다...ㅠ

 

마운트 과정

  1. sudo mkfs.ext4 /dev/sdb
  2. mkdir /home/dltmdals6718/newdisk
  3. sudo mount -t ext4 /dev/sdb /home/dltmdals6718/newdisk
  4. mount -l ( 현재 정보 출력 )

 

fdisk command

fdisk [-option] [device-name]
  • 디스크의 파티션을 설정할때 필요하다.
  • 이것은 시스템 administrator (root)의 허가가 필요하다.
  • -l : 디스크 정보를 보여준다
  • fdisk /dev/sdb ( m: show help page, n: add a new partiton, w: write table to disk and exit )

mkfs command

: 파티션한 것을 포맷할 때 사용한다. ( ext3, ext4, and F2F2이런 형식으로 )

 

  • root를 사용함 ( sudo )
  • mkfs.[파일 시스템] [옵션] [디스크 파티션]
  • sudo mkfs.ext4 /dev/sdb
  • mkfs는 make file system의 약자

unmount command

: mount 한것을 해제할 때 사용

 

  • unmount /dev/sda1 (device name)
  • unmount /mnt/ssd (mount point)

Command-line prompt

Prompt (프롬프트) : 컴퓨터가 입력을 받을 준비가 되어있다는것을 알려주는 것.

  • echo $PS1 : 현재 사용중인 쉘을 확인한다.
  • 기본 PS1 형식 : \u@\h:\w\$
  • \u : 사용자명을 표시한다.
  • \h : 시스템 호스트 (서버의호스트)를 표시한다.
  • \w : 현재 디렉토리를 표시한다.
  • \$ : 루트이면 #, 일반 사용자면 $를 표시한다.

pwd command ( printing working directory )

: 현재 어떤 디렉토리에 있는가 절대경로로 표시한다.

pwd
  • ~ : Home directory

 

통로 찾기

cd command

: 현재 디렉토리를 변경해준다.

cd [directory]
  • cd /home/jean/source
  • cd . : 현재 디렉토리로 이동(아무동작X)
  • cd .. : 부모(상위) 디렉토리로 이동
  • cd /home/jean
  • cd ../joseph

디렉토리 생성과 삭제

mkdir command

: 새 디렉토리를 만들때 사용 ( 일반파일은 touch command )

mkdir [-option] [directory]
  • mkdir test
  • mkdir test1 test2 test3 ( 한번에 여러개 가능 )
  • mkdir -p/home/dltmdals6718/mid/test ( mid 폴더가 없을경우 자동으로 만들어주게함)
  • -p : middle 디렉토리를 자동으로 만들어준다. (없을경우)

rmdir command

: 비어있는 디렉토리를 삭제한다.

rmdir [-option] [directory]
  • rm -r : 파일이 들어있는 디렉토리를 삭제할때 사용 ( 사용에 주의 )

 

파일 생성, 복사, 삭제

touch command ( 파일 생성 )

  • cat >, >> 명령 또한 파일 생성하는것임
  • touch abc.txt : abc.txt 파일 생성
  • cat /proc/meminfo > mem.txt

cat file(s) > file2 : 파일 여러개를 합쳐 큰 파일을 만들때 사용

cat file file2 file3 > file4 : 파일을 합쳐 4를 만드는것?? 

cat file1 엔터후 내용 입력후 Ctrl + d 눌러 저장

cat file : 그 파일의 내용을 출력한다.

cat >> file : 그 파일의 내용을 뒤 이어서 작성

 

cp command ( 파일 복사 )

cp [-option] source destination
  • cp file1 file2 : file1을 복사해 file2를 만든다.
  • cp file1 dir1/ : file1을 디렉토리 안에 복사한다.
  • -r : 디렉토리 전체를 ( 폴더가 안비었을때 ) 복사할때 사용한다. (recursive)
  • cp -r dir1/ dir2/ 

rm command ( 파일, 디렉토리 삭제 )

rm [-option] filename
  • rm file1.txt : file1.txt 파일을 삭제한다.
  • rm -r dir1/ : dir1 디렉토리를 삭제한다. ( rmdir과 달리 파일이 있어도 삭제해버림)

 

List directory contents

ls command

: 디렉토리에 있는 내용(디렉토리, 내용, 이름) 등을 확인한다.

ls [-option] [directory or filename]
  • -l : 파일과 디렉토리에 대해 자세한 정보를 보여준다.
  • -a : 숨겨진 파일이나 디렉토리도 보여준다.
  • -i : 파일의 인덱스 값을 보여준다.
  • -al : 숨김파일을 포함하여 목록 자세히 출력 (자주쓴다, 옵션을 여러개 묶기 가능)
  •  

ls -al로 보여지는 목록에 포함된 내용들

File Type

  • d : 디렉토리를 뜻함
  • - : 보통의 평범한 파일을 뜻함

Permissions

  • r : read
  • w : write
  • x : execute

Number of links

Owner name

Group name

Size

Late modified time 과 날짜

디렉토리 또는 파일 이름

네모친 순서대로

파일 타입, 권한, 링크, Owner name, Group name, 크기, 마지막 수정 날짜, 디렉토리 또는 파일이름 입니다.

와일드 카드 ( * / ? )

  • lst *.txt : txt파일 모두 찾음
  • ls list? : list와 한글자가 더 포함된 것을 찾음

 

'프로그래밍 > 리눅스' 카테고리의 다른 글

[Linux] uniq 명령어  (0) 2022.04.06
[Linux] 파일 조작  (0) 2022.04.05
[Linux] 리다이렉션 ( Redirection )  (0) 2022.04.05
[Linux]Vi 에디터  (0) 2022.03.22
[Linux] 파일 권한  (0) 2022.03.15
Comments