리눅스 시스템은 디렉토리가 모든 작업을 한다고 해도 과언이 아닐 정도로 중요한 개념이다.
우리가 처음 리눅스를 시작할때 home디렉토리에서 시작하며 ~로 표시하고 나름 안전한 영역(?)에서 작업을 하는 것이다.
![](https://blog.kakaocdn.net/dn/dXiFXq/btrrI9xIJLg/AKXKqhlYmVtuIP7awFIp8K/img.png)
최상위 단은 root디렉토리 라고 부르며 / 로 시작한다.
![](https://blog.kakaocdn.net/dn/4noPj/btrrJaJ64eK/OdmReBIKSNjW7ijSc9tt8k/img.png)
root디렉토리에 있는 다른 디렉토리는 시스템을 진행할 때 매우 중요한 자료가 저장되어 있기 때문에 함부로 건들면 안된다.
간단히 bin(Essential User Binaries)이라는 디렉토리를 확인해보자.
![](https://blog.kakaocdn.net/dn/kxNRB/btrrJs4SllF/Ydmk0QADWoeFjVOodnKdS0/img.png)
해당 디렉토리에는 우리가 흔히 사용하는mv, rm, ls와 같은 프로그램 명령어들이 저장되어 있는것을 알 수 있다.
이렇게 root디렉토리에는 각각의 역할을 하는 중요한 디렉토리별로 시스템이 나뉜것을 알 수 있으며 각각의 역할은 다음 글을 보면 자세히 알 수 있다.
The Linux Directory Structure, Explained
If you’re coming from Windows, the Linux file system structure can seem particularly alien. The C:\ drive and drive letters are gone, replaced by a / and cryptic-sounding directories, most of which have three letter names.
www.howtogeek.com
파일 찾기
locate
locate 명령어는 디렉토리를 일일히 탐색하는 것이 아니라 내 pc의 데이터베이스에 접근해 검색하고자 하는 파일 이름을 전부 출력해준다.
리눅스 시스템은 하루에 한번씩 pc의 데이터베이스의 정보를 업데이트를 한다고 한다.
![](https://blog.kakaocdn.net/dn/cnKqW0/btrrPotkWpb/ylBQY2hATKcwuYU3T01kD0/img.png)
find
find 명령어는 locate와 다르게 디렉토리를 탐색하는 방식이라 속도측면에서는 느리지만 디렉토리를 지정해서 탐색을 할 수 있기 때문에 보다 세부적으로 다룰 수 있다.
~ find / #루트 디렉토리에서 탐색
~ find . #현재 디렉토리에서 탐색
find는 사용법이 워낙 다양하기 때문에 그때그때 필요한 작업에 맞춰서 찾으면 된다.
가장 기본적으로 파일 이름으로 찾는 방법은 다음과 같다.
~ find / -name *.log # 루트디렉토리에서부터 .log로 끝나는 모든 파일 찾기
~ find . -name *.log # 현재디렉토리에서부터 .log로 끝나는 모든 파일 찾기
![](https://blog.kakaocdn.net/dn/4IRtp/btrrKHUKfTb/ySTUWVp6lGKaGWbhcz5ZC1/img.png)
![](https://blog.kakaocdn.net/dn/dFk8Ls/btrrKJdV7AG/L9YQyGAGKrTkb30rZd0KLK/img.png)
whereis
whereis라는 명령어는 실행파일의 위치를 찾아주는 기능을 한다.
사용법은 다음과 같으며 첫번째로 알려주는 정보는 해당 명령어의 위치이며 두번째 정보는 매뉴얼의 위치를 알려준다.
~ whereis ls
~ whereis rm
![](https://blog.kakaocdn.net/dn/bHY3s9/btrrPoUo1g3/uEnCWh9X02m2thgLXdqXNk/img.png)
man whereis를 실행하면 다음과 같이 표현함을 알 수 있다.
![](https://blog.kakaocdn.net/dn/OBd0x/btrrPn82YFL/E8Mda52DLbh1WroVFpd6f0/img.png)
여기서 한가지 궁금점이 생긴다.
ls는 분명히 /bin/ls디렉토리 안에 있는데 어떻게 어느 위치에서나 해당 명령어를 쓰면 동작을 하는 것일까?
그 이유는 바로 $PATH에 있다.
$PATH
$PATH는 환경변수라고 부르며 해당 변수는 사용자가 생성한 것이 아닌 리눅스 자체적으로 생성된 변수이다.
![](https://blog.kakaocdn.net/dn/cEaAt6/btrrJai3NFs/LDl1QzgisEqWzj3PwdyAT0/img.png)
위와같이 $PATH는 콜론(:)을 기준으로 해당 경로에 저장되어 있으며 ls와 같은 명령어를 내리면 해당 파일이 실행되는 원리이다. 즉, 우리가 사용하는 모든 명령어가 환경변수라는 $PATH안에 있기 때문에 어디서든 사용 가능한 것이다.
'테크 > 리눅스' 카테고리의 다른 글
[리눅스] 정기적 실행(cron) & wsl에서 cron안될때 해결법 (0) | 2022.01.27 |
---|---|
[리눅스] 백그라운드, 데몬 프로세스 (0) | 2022.01.27 |
[리눅스] 쉘 스크립트 맛보기 (0) | 2022.01.25 |
[리눅스] I/O Redirection (0) | 2022.01.24 |
[리눅스] 패키지 매니저(apt, wget, git) (0) | 2022.01.22 |