ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Chapter1] 리눅스의 추억10(feat. 막힘없이 실무까지)
    Backend/LINUX 2022. 7. 30. 09:03

    본 포스팅은 2020년에 작성했던 포스팅입니다, blog를 이관하게 되어 재포스팅 하였습니다.


    아래 포스팅은 제가 수강하였던 동영상 강의, 각종 블로그 혹은 공식 홈페이지에서 습득한 자료들 제 나름대로 재구성하여 포스팅 한 자료입니다. 잘못된 내용이 있을 수도 있습니다. 최대한 글 읽으시는 시간이 헛되지 않게 검토하여 올리겠습니다. 편하게, 재미있게 제 글을 읽어주셨으면 좋겠습니다. 틀린 부분이 있으면 댓글이나 메일 주시면 수정하여 놓겠습니다. 제 글을 읽어주셔서 감사합니다^^

    - 목차 -

    Chapter1. 리눅스 맛보기

    Chapter2. 리눅스 활용하기

    Chapter3. 리눅스 개발 및 운영하기

     

    오늘은 저번 포스팅에서 언급했던 대로 파일시스템에 대해서 포스팅해보도록 하겠습니다.

     

    (28). 파일시스템(FileSystem) 관리

    여러분 만약 여러분이 아마존(요새 실무는 거의 aws로 하니까 아마존 서버를 언급하였습니다) 서버에 ssh로 처음 접속했다고 하셨을 때 여러분은 무엇부터 보실 건가요?

    리눅스 version? 아니면 명령어의 기록? 저도 이 두 개를 보는데 저는 제 개인 PC가 용량 문제로 아무 프로그램도 작동 안 할 때 바로 이 명령어를 엄청나게 사용했었습니다. 애초에 하드디스크 용량 체크를 제대로 하지도 않고 drop box 동기화시킨 상황 자체가 레전드이긴 한데 그때 엄청나게 많이 익히게 된 명령어입니다 ㅋㅋ 참고로 제 개인 피시의 운영체제는 linux ubuntu입니다. 개인 피시도 이 정도로 쓸 명령어라면, 운영서버에서는 아마 엄청나게 사용하게 될 명령어일 것입니다.

    언제나 그렇듯이 기본 명령어만 사용하면 볼 수가 없게 나옵니다. 다른 파일로 옮길 목적이 아니 시라면 옵션을 같이 곁들여서 사용하셔야 하는데, 몇 가지 옵션을 추천드리겠습니다.

    (28)-1. du -h

    사람이 보기 편하게끔 용량을 가공해서 보여줍니다.

    brandon@brandon-VirtualBox:/$ sudo du -h | more -15
    [sudo] password for brandon: 
    4.0K	./cdrom
    4.0K	./test-folder/test2
    8.0K	./test-folder/test1
    16K	./test-folder
    16K	./lost+found
    2.5M	./boot/grub/i386-pc
    2.3M	./boot/grub/fonts
    140K	./boot/grub/locale
    7.2M	./boot/grub
    139M	./boot
    4.0K	./srv
    4.0K	./permission-test-folder
    3.8M	./var/backups
    4.0K	./var/mail
    4.0K	./var/spool/cups/tmp

    그런데 제가 more 명령어로 limit을 걸어놔서 망정이지 여전히 길고 불편합니다.

    왜 그럴까요? 하위의 하위의 하위의,... 디렉토리까지 싸그리 긁어서 보여주기 때문입니다.

    그런데 여러분 window에서도 이미 경험하셨다시피

    C://ProgramFiles 폴더를 자주 들락날락하셨던 여러분과 저는 만약 Programfiles의 용량이 찬다고 하면,

    ProgramFiles의 바로 아래에 있는 디렉터리들의 용량이 궁금하지, 그 하위의 하위의 하위의 하위의 디렉토리까지는 궁금하지 않잖아요!? 왜냐면 보통 심심하거나 그냥 살펴보려고 용량을 조회하는 게 아닌 이상은 무언가 파일을 정리하려고 조회하시는 걸 텐데요. 보통 사고의 흐름이 아래와 같이 흘러갑니다.

    파일 정리해야겠다, 어디 폴더부터 정리할까? > 용량이 큰 것부터 정리하자 > 대부분 C 드라이브에 있었지 > C 드라이브의 Programfiles부터 봐야겠다 > 흠.. 여기 아래 폴더들 용량을 하나하나씩 봐야겠다 > 실제로 우 클릭해서 속성을 클릭한 다음 하나씩 하나씩 용량을 봄 > 정리하고자 하는 디렉토리를 정리한 다음 디스크 정리는 국룰

    이렇게 되죠...

    그렇다면 .... 바로 아래의 디렉토리를 일단 조회하고 싶다는 것인데요.... 그럼 다음 옵션이 유용하실 겁니다..!

    (28)-2. du -h --max-depth=1

    brandon@brandon-VirtualBox:/$ sudo du -h --max-depth=1
    4.0K	./cdrom
    16K	./test-folder
    16K	./lost+found
    139M	./boot
    4.0K	./srv
    4.0K	./permission-test-folder
    501M	./var
    20K	./root
    du: cannot access './proc/10033/task/10033/fd/4': No such file or directory
    du: cannot access './proc/10033/task/10033/fdinfo/4': No such file or directory
    du: cannot access './proc/10033/fd/3': No such file or directory
    du: cannot access './proc/10033/fdinfo/3': No such file or directory
    0	./proc
    du: cannot access './run/user/1000/gvfs': Permission denied
    19M	./run
    252K	./dev
    8.0K	./snap
    245M	./opt
    13M	./etc
    57M	./media
    755M	./lib
    4.0K	./mnt
    13M	./bin
    92K	./tmp
    141M	./home
    0	./sys
    13M	./sbin
    3.4G	./usr
    4.0K	./lib64
    5.2G	.

    바로 아래의 디렉터리들의 용량만 골라잡아줍니다. 감동이죠? 리눅스 명령어만 조금 알아도 윈도우보다 훨씬 편한 것 같습니다. 그런데, 자기 자신의 명령어를 보고 싶은 경우도 있을 것입니다.

     

    (28)-2. du -s, du -s -m

    brandon@brandon-VirtualBox:/$ sudo du -s
    du: cannot access './proc/10039/task/10039/fd/4': No such file or directory
    du: cannot access './proc/10039/task/10039/fdinfo/4': No such file or directory
    du: cannot access './proc/10039/fd/3': No such file or directory
    du: cannot access './proc/10039/fdinfo/3': No such file or directory
    du: cannot access './run/user/1000/gvfs': Permission denied
    5428068	.
    brandon@brandon-VirtualBox:/$ sudo du -s -m
    du: cannot access './proc/10043/task/10043/fd/4': No such file or directory
    du: cannot access './proc/10043/task/10043/fdinfo/4': No such file or directory
    du: cannot access './proc/10043/fd/3': No such file or directory
    du: cannot access './proc/10043/fdinfo/3': No such file or directory
    du: cannot access './run/user/1000/gvfs': Permission denied
    5301

     

    현대의 하드웨어들은 물리 저장 공간이 워낙 넉넉해져서 KB로 보는 일은 많이 없을 것입니다.

    하지만 default로 조회되는 용량에 대한 기본값은 KB이고, MB로 보고 싶다면 -m를 추가로 붙여주면 됩니다.

    이렇게 자기 자신 디렉토리의 용량 말고도, 다른 디렉토리의 용량을 지정해서 보고 싶은 경우도 있을 것입니다.

    그럴 때는 이렇게 이얍~

     

    brandon@brandon-VirtualBox:/$ sudo du -h test-folder
    4.0K	test-folder/test2
    8.0K	test-folder/test1
    16K	test-folder

    이렇게 디렉토리명을 명시해 주시기만 하면 됩니다. ㅎㅎ

    (29). find

    제가 좀 전에 파일 탐색기에 대해서 언급했었는데요. 명령어로 편하게 어디서든지 원하는 파일을 찾아보는 건 어떨까요? 몇 가지 옵션을 곁들여서 실행해보겠습니다. 만약 포스팅을 보고 계신 분이 무언가 파일을 찾으려고 하시고, 그분의 의식의 흐름이 아래와 같다고 가정하겠습니다.

    /

    /home

    /home/Download

    /etc/log

    제가 찾고자 하는 파일이 어딨는지 정확하게 모르는 상황입니다. 그런데 Download 디렉토리 밑에 있는 것이 확실하다면 Download 디렉토리에 이동해서 파일을 찾은 면 되는 것입니다.

    왜 굳이 이동해서 찾냐고요? 이건 Linux에서만 해당되는 이야기가 아닙니다. 아래 사진을 한번 보시면

    (Window 사진 첨부)

    위 사진과 같이 Window에서도 검색이 소요되는 시간을 줄이기 위해서 해당 디렉토리로 이동해서 많이 검색하죠. 다시 돌아와서 만약 특정 디렉토리는 잘 기억나지 않는데 파일 이름만큼은 어느 정도 기억이 난다. 그렇다면 아래와 같이 검색해 주시면 됩니다.

    find -name "찾고 싶은 파일 이름. 확장자"

     

    brandon@brandon-VirtualBox:/$ sudo find -name "brandon.txt"
    find: ‘./run/user/1000/gvfs’: Permission denied
    ./home/brandon/Downloads/brandon.txt

     

    그런데 만약 파일 이름도 잘 기억이 나지 않는다, 그런데 철자는 어느 정도 기억이 난다.

    게다가 확장자까지!? 그럼 희망이 보입니다! 포스팅에서 자주 나오는 와일드카드를 이용해봅니다.

     

    brandon@brandon-VirtualBox:/$ sudo find -name "br*.txt"
    find: ‘./run/user/1000/gvfs’: Permission denied
    ./home/brandon/Downloads/brandon.txt

     

    조금만 더 응용해서 만약 현재 디렉토리에서 찾고싶다 / 특정 디렉토리에서 찾고싶다

    이전 포스팅들에서 다루었으니 바로 실행해보겠습니다.

    . 을 사용하면 현 디렉토리를 지정하는 것이 됩니다.

     

    brandon@brandon-VirtualBox:/$ sudo find . -name "br*.txt"
    find: ‘./run/user/1000/gvfs’: Permission denied
    ./home/brandon/Downloads/brandon.txt

     

    아래와 같이 특정디렉토리를 지정할 수도 있습니다.

     

    brandon@brandon-VirtualBox:/$ sudo find /etc -name "br*.txt"
    brandon@brandon-VirtualBox:/$

     

    (30) 파일 속성 보기

    보통 게임할 때 스텟에 대해서 이야기를 많이 하곤 하죠. RPG 게임 같은 경우 지금처럼 스텟 자동 분배가 가능하지 않던 시절에는 스텟을 잘 찍었냐 / 못 찍었냐에 따라서 케삭에 대한 여부가 결정되곤 했죠 ㅎㅎ

    스텟이라는 게 특별한 영어 단어가 아닙니다. 리눅스에서는 그냥 상태를 알게 해주는 명령어입니다.

    Window로 치면 마우스 우 클릭 -> 속성(R) 이것과 같다고 할까요? 아예 같다고 하면 운영체제가 다른데 그것도 좀 웃기니까 비슷하다고 말씀드리겠습니다.

    stat 파일명

    brandon@brandon-VirtualBox:/etc$ stat timezone 
      File: 'timezone'
      Size: 11        	Blocks: 8          IO Block: 4096   regular file
    Device: 801h/2049d	Inode: 785118      Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2020-09-11 10:44:55.839708958 +0900
    Modify: 2020-09-11 10:56:44.951708958 +0900
    Change: 2020-09-11 10:56:44.951708958 +0900
     Birth: -

     

    위 결과처럼 파일에 대한 정보가 잘 출력됩니다. 결과들이 워낙 다 직관적이어서 다른 설명은 적지 않을게요.

    그래도 혹시 궁금한 부분 있으시면 저도 잘 모르지만 댓글 남겨주시거나 메일 주시면 성심성의껏 답변하도록 하겠습니다.

    Thanks for reading!

    댓글

Designed by Tistory.