[리눅스] 파일 시스템 탐색

Becoming a Data Engineer ·2023년 9월 5일
0

리눅스

목록 보기
1/9
post-thumbnail

pwd : 현재 경로 확인


print name of current/working directory

hyojin@computer:~$ pwd
/home/hyojin

ls : 목록 출력


list directory contents

hyojin@computer:~/test$ pwd
/home/hyojin/test

hyojin@computer:~/test$ ls
color.txt  price.txt  redirection  
  • -a : do not ignore entries starting with *
hyojin@computer:~/test$ ls -a
.  ..  color.txt  price.txt  redirection  
  • -l : use a long listing format
hyojin@computer:~/test$ ls -l
total 16
-rw-r--r-- 1 hyojin hyojin   50 Aug 22 12:00 color.txt
-rw-r--r-- 1 hyojin hyojin   88 Aug 24 10:59 price.txt
drwxr-xr-x 2 hyojin hyojin 4096 Sep  1 15:42 redirection
  • -R : list subdirectories recursively
hyojin@computer:~/test$ ls -R
.:
color.txt  price.txt  redirection  

./redirection:
date.txt  errorlog.txt  greeting.txt  list.txt
  • -alR
hyojin@computer:~/test$ ls -alR
.:
total 24
drwxr-xr-x 3 hyojin hyojin 4096 Aug 30 14:52 .
drwxr-x--- 7 hyojin hyojin 4096 Sep  5 14:25 ..
-rw-r--r-- 1 hyojin hyojin   50 Aug 22 12:00 color.txt
-rw-r--r-- 1 hyojin hyojin   88 Aug 24 10:59 price.txt
drwxr-xr-x 2 hyojin hyojin 4096 Sep  1 15:42 redirection

./redirection:
total 116
drwxr-xr-x 2 hyojin hyojin  4096 Sep  1 15:42 .
drwxr-xr-x 3 hyojin hyojin  4096 Aug 30 14:52 ..
-rw-r--r-- 1 hyojin hyojin    58 Aug 31 13:37 date.txt
-rw-r--r-- 1 hyojin hyojin   105 Sep  1 15:45 errorlog.txt
-rw-r--r-- 1 hyojin hyojin    45 Aug 30 17:46 greeting.txt
-rw-r--r-- 1 hyojin hyojin 48331 Aug 30 17:32 list.txt

cd : 경로 이동


change directory

hyojin@computer:~/test$ pwd
/home/hyojin/test

hyojin@computer:~/test$ cd .
hyojin@computer:~/test$ pwd
/home/hyojin/test

hyojin@computer:~/test$ cd ..
hyojin@computer:~$ pwd
/home/hyojin

hyojin@computer:~$ cd test
hyojin@computer:~/test$ pwd
/home/hyojin/test
  • cd - : 바로 직전 위치로 이동
hyojin@computer:~$ pwd
/home/ubuntu

hyojin@computer:~$ cd ./dir1/dir2/dir3

hyojin@computer:~/dir1/dir2/dir3$ pwd
/home/ubuntu/dir1/dir2/dir3

hyojin@computer:~/dir1/dir2/dir3$ cd -
/home/ubuntu

hyojin@computer:~$ pwd
/home/ubuntu

df : 파일 시스템 디스크 용량 확인


report file system disk space usage

리눅스의 파일들은 파일의 종류에 따라 파일시스템이 달라진다. df 명령어는 파일시스템 종류에 따른 용량과 어디에 마운트 되어있는지에 대한 정보들을 보여줍니다.

hyojin@computer:~$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root       50620216 1745304  48858528   4% /
devtmpfs         7796664       0   7796664   0% /dev
tmpfs            7804420       0   7804420   0% /dev/shm
tmpfs            1560884     864   1560020   1% /run
tmpfs               5120       0      5120   0% /run/lock
tmpfs            7804420       0   7804420   0% /sys/fs/cgroup
/dev/loop2         57088   57088         0 100% /snap/core18/2745
/dev/loop1         65024   65024         0 100% /snap/core20/1891
/dev/loop0         25088   25088         0 100% /snap/amazon-ssm-agent/6312
/dev/loop3         94080   94080         0 100% /snap/lxd/24061
/dev/loop4         54528   54528         0 100% /snap/snapd/19122
/dev/xvda15       106858    6182    100677   6% /boot/efi
/dev/loop5         57088   57088         0 100% /snap/core18/2790
tmpfs            1560884       0   1560884   0% /run/user/1000

du : 파일 사용량 확인


estimate file space usage

파일시스템 정보가 아닌, 원하는 공간에서의 디렉토리 사용량 정보를 보여줍니다. 현재 디렉토리의 용량 사용량을 보고 싶으면 다음과 같이 입력하면 됩니다.

hyojin@computer:~$ du
4       ./.cache
8       ./.ssh
4       ./dir1/dir2/dir3
8       ./dir1/dir2
12      ./dir1
44      .
  • -h : print sizes in human readable format (e.g., 1K 234M 2G)
hyojin@computer:~$ du -h
4.0K    ./.cache
8.0K    ./.ssh
4.0K    ./dir1/dir2/dir3
8.0K    ./dir1/dir2
12K     ./dir1
44K     .

hyojin@computer:~$ du -h dir1
4.0K    dir1/dir2/dir3
8.0K    dir1/dir2
12K     dir1
  • -d : 원하는 깊이(Depth)까지의 용량 정보를 확인, print the total for a directory (or file, with --all)
hyojin@computer:~$ du -h -d 1 dir1
8.0K    dir1/dir2
12K     dir1

chmod : 권한 변경


change file mode bits

파일의 소유자로 하여금 소유자가 속한 그룹이나 다른 그룹에 속한 사용자들이 파일에 접근하기 위한 권한을 변경할 때 사용

ubuntu@$your_host_name:~$ ls -al
...
drwxrwxr-x 3 ubuntu ubuntu 4096 Sep 10 10:57 dir1/
  • 권한을 구분하는 방법은 d/rwx/rwx/r-x 처럼 끊어서 구분하며, 각 구분이 의미하는 바는 다음과 같다. (r : 읽기, w : 쓰기, x : 실행)
    • d : 디렉토리를 의미한다. 파일인 경우 -로 표기된다.
    • rwx : 파일 소유자에 대한 권한
    • rwx : 파일 소유자가 속한 그룹에 대한 권한
    • r-x : 파일 소유자가 속하지 않은 그룹에 대한 권한
  • 권한을 수정하는 경우 일반적으로 숫자를 사용한다.

    • --- : 0+0+0=0
    • --x : 0+0+1=1
    • -w- : 0+2+0=2
    • -wx : 0+2+1=3
    • r-- : 4+0+0=4
    • r-x : 4+0+1=5
    • rw- : 4+2+0=6
    • rwx : 4+2+1=7

    예를 들어 읽기, 실행만 설정하려면 r-x이고, 이를 이진법으로 표현하면 101(2)101_{(2)}로 표현된다. 이를 10진법으로 바꿨을 때의 숫자는 101(2)=22+01+20=4+0+1=5101_{(2)}=2^{2}+0^{1}+2^{0}=4+0+1=5으로 설정된다.

    • dir1 폴더에 대한 권한을 소유자는 읽기,쓰기,실행을 모두할 수 있고(rwx : 7), 같은 그룹내 사용자는 읽기와 쓰기만(rw- : 6), 다른 그룹내의 사용자는 실행에 대한 권한(--x : 1)을 주려면 다음과 같이 권한을 설정하면 된다.

      ubuntu@$your_host_name:~$ chmod 761 dir1
      ubuntu@$your_host_name:~$ ll
      ...
      drwxrw---x 3 ubuntu ubuntu 4096 Sep 10 10:57 dir1/
    • -R : 하위 디렉토리의 권한까지 모두 한꺼번에 설정, change files and directories recursively

      ubuntu@$your_host_name:~$ chmod 777 dir1
      ubuntu@$your_host_name:~$ chmod -R 766 dir1
      ubuntu@$your_host_name:~$ ls -alR dir1/
      dir1/:
      total 12
      drwxrw-rw- 3 ubuntu ubuntu 4096 Sep 10 10:57 .
      drwxr-xr-x 6 ubuntu ubuntu 4096 Sep 10 10:59 ..
      drwxrw-rw- 3 ubuntu ubuntu 4096 Sep 10 10:57 dir2
      
      dir1/dir2:
      total 12
      drwxrw-rw- 3 ubuntu ubuntu 4096 Sep 10 10:57 .
      drwxrw-rw- 3 ubuntu ubuntu 4096 Sep 10 10:57 ..
      drwxrw-rw- 2 ubuntu ubuntu 4096 Sep 10 10:57 dir3
      
      dir1/dir2/dir3:
      total 8
      drwxrw-rw- 2 ubuntu ubuntu 4096 Sep 10 10:57 .
      drwxrw-rw- 3 ubuntu ubuntu 4096 Sep 10 10:57 ..
  • 특정 사용자 별로 권한을 부여하는 방법도 있다.

    소유자(User)는 u, 그룹(Group)은 g, 다른 그룹의 사용자(Others)는 o 로 관리하며, 전체 지정(All)은 a로 할 수 있습니다. 여기에 특정 권한을 더하려면 +를 사용하고, 권한을 제거하려면 -를 사용한다.

    • chmod o-w dir1 : 다른 그룹의 사용자(o)에 대해 읽기 권한을 제거(-w)
    ubuntu@$your_host_name:~$ chmod o-w dir1
    ubuntu@$your_host_name:~$ l -l
    ...
    drwxrw-r-- 3 ubuntu ubuntu 4096 Sep 10 10:57 dir1/
    • chmod g+x dir1 : 같은 그룹 내 사용자(g)에게 실행 권한을 부여(+x)
    ubuntu@$your_host_name:~$ chmod g+x dir1
    ubuntu@$your_host_name:~$ l -l
    ...
    drwxrwxr-- 3 ubuntu ubuntu 4096 Sep 10 10:57 dir1/

리눅스 디렉토리 구조


Standard-unix-filesystem-hierarchy

/ : 루트 디렉토리

리눅스 파일 시스템에서 최상위 디렉토리로 시스템의 시작점을 나타낸다.

  • /bin
    • 리눅스와 유닉스 기반 운영 체제에서 중요한 실행 가능한 바이너리(실행 파일)들을 저장하는 디렉토리이다.
    • 시스템 부팅과 관련된 기본 명령어와 필수 실행 파일을 포함하고 있으며, 시스템이 시작될 때 필요한 명령어를 제공하기 위해 사용된다.
    • 현재 사용자가 누구이던지 이 프로그램(ex. man, pwd ...)을 수행할 수 있다.
  • /etc
    • 리눅스 설정을 위한 각종 파일들을 가지고 있는 디렉토리이다.
  • /usr
    • 기본 실행파일과 라이브러리 파일, 헤더 파일등의 파일이 저장되어있는 디렉토리이다.
    • SW를 설치하거나 새로운 명령어를 설치하면 설치 파일은 이 폴더 어딘가에 위치하게 된다.

~ , /home : home 디렉토리

/home contains a home folder 'for each user' on the system.

hyojin@computer:~$ pwd
/home/hyojin
profile
I want to improve more 👩🏻‍💻

0개의 댓글