리눅스 시스템은 디렉토리가 모든 작업을 한다고 해도 과언이 아닐 정도로 중요한 개념이다.
우리가 처음 리눅스를 시작할때 home디렉토리에서 시작하며 ~로 표시하고 나름 안전한 영역(?)에서 작업을 하는 것이다.
최상위 단은 root디렉토리 라고 부르며 / 로 시작한다.
root디렉토리에 있는 다른 디렉토리는 시스템을 진행할 때 매우 중요한 자료가 저장되어 있기 때문에 함부로 건들면 안된다.
간단히 bin(Essential User Binaries)이라는 디렉토리를 확인해보자.
해당 디렉토리에는 우리가 흔히 사용하는mv, rm, ls와 같은 프로그램 명령어들이 저장되어 있는것을 알 수 있다.
이렇게 root디렉토리에는 각각의 역할을 하는 중요한 디렉토리별로 시스템이 나뉜것을 알 수 있으며 각각의 역할은 다음 글을 보면 자세히 알 수 있다.
파일 찾기
locate
locate 명령어는 디렉토리를 일일히 탐색하는 것이 아니라 내 pc의 데이터베이스에 접근해 검색하고자 하는 파일 이름을 전부 출력해준다.
리눅스 시스템은 하루에 한번씩 pc의 데이터베이스의 정보를 업데이트를 한다고 한다.
find
find 명령어는 locate와 다르게 디렉토리를 탐색하는 방식이라 속도측면에서는 느리지만 디렉토리를 지정해서 탐색을 할 수 있기 때문에 보다 세부적으로 다룰 수 있다.
~ find / #루트 디렉토리에서 탐색
~ find . #현재 디렉토리에서 탐색
find는 사용법이 워낙 다양하기 때문에 그때그때 필요한 작업에 맞춰서 찾으면 된다.
가장 기본적으로 파일 이름으로 찾는 방법은 다음과 같다.
~ find / -name *.log # 루트디렉토리에서부터 .log로 끝나는 모든 파일 찾기
~ find . -name *.log # 현재디렉토리에서부터 .log로 끝나는 모든 파일 찾기
whereis
whereis라는 명령어는 실행파일의 위치를 찾아주는 기능을 한다.
사용법은 다음과 같으며 첫번째로 알려주는 정보는 해당 명령어의 위치이며 두번째 정보는 매뉴얼의 위치를 알려준다.
~ whereis ls
~ whereis rm
man whereis를 실행하면 다음과 같이 표현함을 알 수 있다.
여기서 한가지 궁금점이 생긴다.
ls는 분명히 /bin/ls디렉토리 안에 있는데 어떻게 어느 위치에서나 해당 명령어를 쓰면 동작을 하는 것일까?
그 이유는 바로 $PATH에 있다.
$PATH
$PATH는 환경변수라고 부르며 해당 변수는 사용자가 생성한 것이 아닌 리눅스 자체적으로 생성된 변수이다.
위와같이 $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 |