}

블로그 소개


*여러분들의 따듯한 댓글은 5%, 팔로우는 10% 블로그 포스팅 속도와 퀄리티를 높여줍니다.*

프로필

팔로우 해주시면 포스트할 때 큰 힘이 됩니다!!! 사실 저도 이 팔로우가 무슨 기능이 있는지는 모르겠습니다만, 팔로우 수가 늘면 '날 응원해주는 사람들이 있구나' 생각이 들어서 큰 힘이 됩니다.

팔로어

다른 페이지로 이동


리눅스 독학 페이지 운영체제 독학 페이지 네트워크 독학 페이지 하드웨어 독학 페이지 프로그래밍 독학 페이지 보안 페이지

오스 페이지 다이어트 정보 페이지 게임 정보 페이지 인생 꿀팁


****사진을 클릭하시면 페이지로 이동할 수 있습니다!****

<===***===↓↓↓You can use translate on the chrome↓↓↓===***===>

2019년 8월 10일 토요일

리눅스 상위 디렉토리

안녕하세요 마무입니다~ 이번 포스트에서는 리눅스 상위 디렉토리의 용도를 알려드리려합니다.

"상위 디렉토리 총 정리" 포스트이지만, 사실 리눅스 1급 과정 공부를 안해보셨을 경우
사용해본 적도 없는 디렉토리들이라 공감도 잘 안되고 공부도 잘 안되실 겁니다..

그러니 그냥 각 디렉토리의 이름 "유래"만 안다는 느낌으로 가볍게 읽어주세요!


리눅스의 모든 것은 전부 최상위 디렉토리라 불리는 루트 "/" 안에 있죠

오늘은 리눅스에서 "/"디렉토리 밑에 있는 상위디렉토리








bin ,dev ,home , lib64 , mnt, proc, run , srv ,tmp, var, boot, etc, lib ,media, opt, root,
sbin, sys, usr 에 대해

이 디렉토리가 무슨용도인지 또  이름이 뭘 의미하는지에 대해 포스팅하겠습니다.

---목차---

1. /bin

2. /dev

3. /home

4. /lib64

5. /lib

6. /mnt

7. /proc

8. /run

9. /srv

10. /tmp

11. /usr

12. /var

13. /boot

14. /etc

15. /media

16. /opt

17. /root

18. /sbin

19. /sys

20. 정리를 위한 간단한 질문

----------------




제일 앞에 있는 bin부터 정리하겠습니다


/bin






/ 디렉토리에 있는 bin은 사실 링크파일이고 실제 bin은 /usr/에 들어있습니다.

왜 bin디렉토리를 /usr파일 안에 뒀고 링크파일로 해두었냐에 대한건 다른 포스트에서 다루겠습니다.

"bin(binaries)"이름대로 유저가 리눅스를 사용할 때 필수적으로 필요한
"바이너리 파일들(명령어 파일)"이 들어있는 디렉토리입니다.

정확히는 "컴파일 된 실행 파일들"이라고 할 수 있죠

"이진 파일(바이너리 파일)"은 말 그대로 0,1인 기계어로만 쓰여진 파일이기 때문에 저희는 봐도 모른다는 것은 저번 포스트에서 배웠었죠?




/dev







"-d"옵션은 dev디렉토리 내부가 아닌 "dev"라는 디렉토리자체를 보라는 옵션입니다.

"dev(device)"는 디바이스를 나타내는 특수파일들이 있는 디렉토리입니다.
예로들어 SATA방식의 디스크는 이 /dev/에 "sda"란 파일로 있죠.

"/dev"디렉토리엔 하드웨어가 아닌 가상의 디바이스(장치)들도 들어있는데
예로들어 "/dev/random"이란 파일은 사용할 시 랜덤한 수를 생성합니다.
뿐만 아니라 "/dev/null"이란 블랙홀 같이 무언가를 넣으면 사라지는 장치도 있고요.

프로그래밍 할 때 쓰이는 라이브러리 같은 거라고 보시면 됩니다!


/home



home(home)디렉토리는




이름 그대로 유저들의 홈 디렉토리를 가지고 있는 "home" 디렉토리입니다
예로들어 저 디렉토리중 mamu라는 디렉토리로 "cd(change directory)"를 써서 이동한다면

리눅스 처음 킬 때 mamu라는 유저로 로그인 했을 때와 똑같은 겁니다.
물론 저흰 root기 때문에 권한은 mamu유저보다 훠~얼씬 많아서 다시
mamu 디렉토리 상위로 이동할 수 있죠

반대로 /home/디렉토리에 있는 유저들은 자신의 홈 디렉토리 상위로
올라갈 수가 없습니다.

일부로 그렇게 해둔거죠, 만약 유저들이 자기 홈 디렉토리 상위로 올라간다면
보안에 상당한 문제가 생기겠죠?





/lib64





"lib64디렉토리는 기존의 lib(Libraries-32bit)"에 있는 것들을 64비트 운영체제용 으로 만든거라고 보시면 됩니다

그럼 lib 디렉토리에 대해 설명해야겠죠?


/lib 





"lib(library)"디렉토리는 library뜻인 "컴퓨터에서 즉시 사용할 수 있도록 정리해서 모아둔 
정보 집단" 이란 뜻처럼 "/bin" 과 "/sbin"디렉토리의 파일들이 실행될 때마다 즉시
필요한 파일들이 들어있습니다.

"라이브러리" 라는 단어는 사실 컴퓨터 프로그래밍 쪽을 배우셨으면 다들 많이 접해보셨을
텐데요, 그냥 "바로 갖다 쓸 수 있게 미리 만들어 놓은 것들" 이라고 생각하시면 됩니다!



/mnt





mnt(mount)디렉토리는 시스템 관리자들이 보통 임시적으로 파일시스템을 마운팅할 때
쓰는 디렉토리입니다 물론 꼭 /mnt 디렉토리에 파일시스템을 마운트할 필욘 없습니다
파일시스템외 다른 어떤 프로그램을 마운트할 때도 사용해도 되긴 하죠

여기서 mount가 뭔지 궁금하실 분들은 나중에 다루겠지만 지금은 "파일을 어떤 공간과 연결한다는 것"으로 알아두세요

파일시스템이란 디스크를 관리하는 소프트웨어라고 보시면 됩니다. 우리가 사용하는 모든 디스크는 당연히 용도에 맞는 파일시스템을 사용하고 있습니다
FAT32, NTFS , ext3, ext4 등등 있는데 분명 컴퓨터를 자주 사용하시는 분이라면
한 번쯤은 본 적이 있을 겁니다.

파일시스템 이해를 돕기위해 예시를 들자면
만약 저희가 어떤 문서들을 영어순으로 정리하고 싶으면 영어순으로 정리해주는 파일시스템을 사용하는 것이고
한글순으로 정리하고 싶으면 한글순으로 정리하는 파일시스템을 사용하듯이
디스크의 용도에 맞게 여러 파일 시스템중 하나를 쓰는겁니다~

자세히 알고 싶으시면!
파일 시스템 핵심 정리 포스트 : https://mamu2830.blogspot.com/2019/10/chs-lba.html
를 보시면 되겠습니다!



/proc





proc(process)는 시스템에서 운영되고 있는 커널이나 프로세스들에 대한
내용이나 프로그램들을 가지고 있는 디렉토리입니다.



/run





"run(run)"는 이름 그대로, 실행되고 있는 프로세스들이 들어있는 파일입니다



/srv




srv(service data)은 시스템으로부터 제공되는 특정사이트들의 데이터,
ftp, rsync, www와 같은 프로토콜 데이터들이 기본적으로 저장되는 디렉토리입니다

말이냐 이제 www나 ftp 프로토콜을 이용해 사이트에서 뭔가 활동을 하면
사이트에서 얻는 정보들이 보통 이 디렉토리에 쌓이는 겁니다.



/tmp 





tmp(temporary files)은 어플리케이션들이 임시파일을 저장하는 디렉토리입니다

임시파일이란 인터넷을 열 때 그 인터넷에 대한 정보들을 저희가 다운받는 데
이때 다운받은 파일을 바로 삭제하지 않고 임시적으로 놔두는 파일을 말합니다.
한번 다운받고 임시적으로 놔두면 다음에 그 페이지를 또 열 때 다운안받아도 되니
빠르겠죠?

그런데 tmp파일은 초록색이죠? 나중에 권한부분에서 배울 내용인데 쉽게 설명하자면
tmp파일은 어플리케이션들의 임시파일을 저장해야하기 때문에 누구나 이 디렉토리을 읽고,쓰고,실행할 수 있게 권한을 줬는데요.

만약 어떤 "A라는 유저"가 임시파일을 저장해두고 사용하고 있는데 "B라는 유저"가
그걸 갑자기 삭제해버리면 안되잖아요? 그래서 자기가 만든 건 자기만 삭제 및 수정 할 수 있게 권한을 또 붙이는데  sticky bit인 "t"입니다





보라색 동그라미 친 부분처럼 말이죠


/usr





usr(universal system resources & Read-only files)는 이름 그대로 대부분의 시스템 그리고 오직 읽을 수 밖에 없는 파일들이 있는 디렉토리입니다, 내용을 수정할 수 없습니다.

쉽게 생각해서 window의 C드라이브 안에 있는 ProgramFiles같은 느낌이라 생각하시면 돼요 저희가 프로그램이나 게임 깔면 자동으로 PrfogramFiles에 깔리던거 기억나시나요?
그거와 같다고 보시면 됩니다.








링크파일이던 /bin, /lib ,/lib64 , /sbin 디렉토리들의 원본은 여기에 있죠



/var





var(variable data files)는 내용을 수정할 수 있는 /usr 디렉토리라고 보면 되는데요
이름 그대로 variable(변할 수 있는) 데이터 파일들이 있는 곳입니다
가장 대표적인 variable 파일엔 log파일이 있죠 그래서 /var디렉토리에
log파일들이 쌓이는 log디렉토리가 있습니다



/boot





boot(boot files)은 시스템 부트에 필요한 파일들이 있는 디렉토리입니다.



/etc





사실상 리눅스를 사용하면서 가장 많이 사용하게 될 디렉토리인데요

etc(etcetera)는 본래 영어의 뜻 "기타등등"과는 다르게 시스템과 관련된
설정파일들이 있는 디렉토리입니다

특정 유저만 쓰는 설정파일은 그 유저의 홈 디렉토리에 생깁니다




/media





media(media)는 media(매개물)이란 뜻대로 매개가 되는 장치들 파일을
가지는 디렉토리인데요 CD-ROM이나 플로피디스크 같은 제거가능한 미디어들을
리눅스에 사용할 때 마운트지점으로 사용하는 곳입니다


그럼 /mnt와 헷갈리시죠? 같이 마운트지점 아니야? 라고 하실텐데
그래서 제가 /mnt를 설명할 때 보통 시스템 관리자들이 파일시스템을 마운팅할 때
사용하는 디렉토리라 한 것 입니다.


/opt




opt(optional packages)는 파일시스템에 종속되지 않는 개개인 소프트웨어
파일들을 가지는 디렉토리입니다 그래서 보통 응용프로그램은
이 /opt디렉토리에 설치됩니다


/root





root(root home)는 이름 그대로 root의 홈 디렉토리입니다.
일반 유저들은 /home/mamu 이렇게 있는 거에 비해 root는 디렉토리 제한이 있을 필요가 없으니 /home에 두지 않고 이렇게 따로 밖에 꺼내놓는 겁니다.





/sbin




sbin(system binaries)는 root계정으로 활동하는 시스템관리자를 위한 /bin디렉토리다


/sys





sys(sysfs)란 sysfs가 마운팅 된 디렉토리인데요

sysfs가 뭐야?? 하실겁니다  sysfs란 리눅스 커널 2.6부터 도입된 가상 파일시스템으로
기존에 /proc디렉토리 안에 무질서하게 있던 디바이스에 관련된 파일들을 체계적으로
정리해주는 녀석이라고 생각하시면 됩니다

/sys디렉토리는 그 sysfs이 마운팅 된 디렉토리고요





이렇게 /sys디렉토리를 보시면 디바이스에 관련된 파일들이 보기좋게? 정리돼 있는 걸
볼 수 있습니다.



자! 그러면 정리할겸 간단한 질문과 답변을 만들어 볼게요!


Q1)명령어들은 어딨을까요?
A1)명령어는 bin과 sbin 디렉토리에 있고 -> bin과 sbin은 /usr디렉토리에 들어있다


Q2) 어떤 시스템에 관련된 프로그램을 실행시키는데 설정을 바꿔야 할 것 같다 그 프로그램의 설정파일은 어디에 있을까?
A2) 시스템 설정파일은 /etc에 있으니 /etc에 가서 찾는다


Q3) 만약 A라는 유저가 카카오톡을 깔았다고 치자 그 카카오톡 파일은 어디에 있을까?
A3) A 유저만 쓰는 프로그램이니까 카카오톡 파일은 A유저 홈디렉토리에 있을 것이다.


Q4)부트에 관련된 파일은 어딨을까?
A4) /boot 디렉토리에 있겠지?


Q5) 디바이스에 관련된 특수파일들은 어딨을까?
A5) 디바이스들은 /dev 디렉토리에 있을 것이다


Q6) 마운팅을 하고 싶은데 어디 디렉토리에 할까?
A6) 어느 곳이든 상관없는데 이동장치 같이 제거가능 한 것들은 /media에 하고
파일시스템에 관련된 것은 /mnt에 하자


Q7) 커널이나 프로세스에 대한 파일들은 어딨을까?
A7) 커널이나 프로세스에 대한 파일은 /proc 디렉토리에 있을 것이다


Q8) 커널이나 프로세스에 대한 파일중 디바이스에 관련된 파일들은 어디에 있을가?
A8) 커널이나 프로세스에 대한 파일중 디바이스들은 sysfs이 정리한가 sysfs이 마운트되는 /sys에 있을 것 이다!


Q9)현재 실행되고 있는 파일들의 대한 정보들은 어디에 있을까?
A9) 실행되고 있는 거니까 /run에 있을 것이다


Q10) wireshark 프로그램을 root권한으로 깔았을 때 어디에 저장될까?
A10) /usr에 저장이 될 것이다


Q11) wireshark의 log파일 같이 수정가능한 파일은 어디에 저장될까?
A)11) /var에 저장이 될 것이다.


Q12) root계정으로 로그인해서 홈에서 만든 파일들은 어디에 저장이 될까?
A12) /root디렉토리에 저장 될 것이다.


Q13) bin과 sbin디렉토리에 있는 명령어 파일을 사용할 때 필요한 파일들은 어디에
있을까?
A13) /lib 에 있을 것인데 운영체제가 64bit이면 /lib64에 있을 것이다



Q14)임시파일은 어디에 저장될 까?
A14) 임시파일이니까 temporary! /tmp에 저장될 것이다




도움이 되셨다면 좋아요와 댓글 남겨주세요! 저에게 큰 힘이 됩니다!

만약 틀린 내용이나 오타가 나오면 댓글로 서슴없이 알려주세요! 바로 수정하겠습니다!

더더욱 좋은 포스트로 찾아뵙겠습니다!
이상 마무였습니다~


댓글 없음:

댓글 쓰기

#1 여러분들이 소중한 시간을 투자해 달아주시는 따뜻한 댓글들은 저에게 정말 큰 힘이 됩니다!

#2 저의 각 포스트들은 엄청난 노력과 시간 투자를 통해 만들어진 포스트들로, 무단 복제나 모방하는 것을 금지합니다.

#3 저의 포스트에도 틀린 정보가 있을 수도 있습니다. 그럴 경우 친절한 말투로 근거와 함께 댓글로 달아주시면 정말 감사하겠습니다!

* 바쁜 개인 일정으로 댓글 답변이 많이 느립니다 *