[Chapter1] 리눅스의 추억10(feat. 막힘없이 실무까지)
본 포스팅은 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!