셸 PATH
실행파일을 조회하는 경로
full path 없이 응용프로그램을 실행하게 한다
현재 작업 디렉터리 확인하기
pwd : print working directory
ubuntu:~$ pwd /home/gdhong
PATH 변수 내용 확인하기
PATH변수는 콜론(:)으로 구분된다. 콜론으로 여러 디렉터리를 PATH에 추가할 수 있다.
ubuntu:~$ echo $PATH /home/gdhong/bin:/home/gdhong/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ubuntu:~$ export | grep PATH declare -x PATH="/home/gdhong/bin:/home/gdhong/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
PATH 변수의 역할
/bin 안에는 ls 프로그램이 들어있다. 4번째 줄을 통해 PATH 변수에서 '/bin'을 제외하였다. 6~7번 줄에서는 ls 라는 프로그램을 찾지 못한다는 에러가 발생한다.
PATH 변수 내용 확인하기
ubuntu:~$ which ls /bin/ls ubuntu:~$ export PATH="/home/gdhong/bin:/home/gdhong/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin" ubuntu:~$ ls ls: command not found ubuntu:~$ which ls # 아무것도 표시되지 않음
LD_LIBRARY_PATH
리눅스에서 PATH 이외에 중요한 경로 변수로는 LD_LIBRARY_PATH 가 있다.
리눅스 응용프로그램의 대부분은 .so 라이브러리 파일을 동적으로 링킹하여 동작한다. (윈도우의 경우는 .DLL 파일을 참조한다). LD_LIBRARY_PATH 는 응용프로그램이 so 동적 라이브러리를 조회하는 경로이다. 시스템에 라이브러리가 설치되어 있어도, 이 변수에 등록되어있지 않다면 라이브러리를 찾을 수 없다는 에러가 발생한다.
(참고) ld.so - 리눅스 메뉴얼