[조선족]님이 남기신 글:
>쓰신 책 잘 보고 있습니다.
>그런데 제가 초보라 보니 기본적인 걸 너무
몰라서여..
>책도 너무 초보용이 아니라..
>제가 알고 싶은 내용이 빠져 있어서여..
>그래서 궁금한 내용을 몇개 올립니다.
>
>질문 1)
> path 설정에 대해서 궁금합니다.
>책에도 나온데를 못 봐서여..
>기본적인 것인것 같은데..
>예를 들어 /bin 밑에 실행 프로그램이 만차나여?
>그런데 이런 프로그램 (예를 들어 /bin/echo 라 안하고 그냥 echo만
>해도 되자나여) 이런 path설정은 어느 파일에서 어떻게 하는
건지
>알고 싶어요.각 사용자마다 동일 하게 적용되는지 아니면 개별
사용자의
>path설정은 다른데서 하나여?
>
>
>질문 2)보통 프로그램을 처음 깔때 rpm 형식이던 tar.gz던 간에
>이것을 풀면 기본적으로 어느 디렉토리에 깔리는
건가여?
>
>그럼 수고하세요 ^^;;
========================================
[답변1]
쉘에서,
root 일경우
# echo $PATH
일반 유저일 경우
$ echo $PATH
하면 path 디렉토리가 출력됩니다.
물론 root와 일반 사용자는 조금 다르게 나옵니다.
이런 PATH 설정은 각 사용자가 로그인 할때
/etc/passwd 파일에 명시된 SHELL에 따라서 각각의 다른 파일을
읽어 쉘환경변수를 export 합니다.
리눅스는 일반적으로 /bin/bash 를 사용하므로
/etc/passwd 파일의 각 라인 끝에 /bin/bash라고 되어 있을 겁니다.
/bin/false 는 쉘을 사용할 수없는 쉘입니다..
bash를 예를 들자면,
앞에서 "각각의 다른 파일"이란 여기에서는 각
홈디렉토리와 /etc 밑의
다음의 파일들을 의미합니다. 그외 /etc/profile.d/*.sh 도
있습니다.
.bashrc : User specific aliases and functions
.bash_profile : Get the aliases and functions
/etc/rc.d/init.d/functions
/etc/bashrc : System wide functions and aliases
/etc/profile : Environment stuff goes in /etc/profile
환경변수 $PATH는
1) /etc/rc.d/init.d/functions : 기본 설정
2) /etc/profile : 전체 사용자 설정
3) $HOME/.bashrc_profile : 사용자 설정
으로 이루어집니다.
따라서 전체 사용자에게 적용시키려면 관리자가 /etc/profile
파일에
$PATH 변수에 추가해 줘야하고
각 사용자 나름대로 $PATH를 설정하려면
$HOME/.bash_profile 파일에 PATH를 추가해 주면 됩니다.
$PATH에 추가된 디렉토리에 있는 프로그램은 굳지
긴 PATH 를 입력하지 않고도 어느 위치에서도 명령어 만으로
실행가능합니다.
만약 각각 다른 디렉토리에 같은 명령어가 존재한다면 나중에
$PATH에
추가된 명령어가 실행됩니다.
[답변2]
RPM으로 설치했을 경우
# rpm -ql package-name | more
하면 package-name 가 설치된 경로를 알 수 있습니다.
만약 아직 package-name 가 설치되어 있지 않고
이 패키지가 어디에 설치될 것인지 알아보는 명령어는
# rpm -qpl package-name | more
입니다.
q 옵션은 질의모드.
p 옵션은 "아직 설치되지 않은 패키지에 대해서" 를
의미합니다.
l 옵션은 list를 출력하라...의 의미
Tar.GZ 으로 설치또는 설치하고자 한다면
이는 각 프로그램의 README 파일이나 INSTALL 파일을 꼭~~~
읽어보아야
합니다.
또한 configure --help 가 제공된다면 여기에서 일반적으로
--prefix=설치될디렉토리
로 설정합니다.
모두 이와 같지는 않고
README 파일이나 INSTALL 파일을 꼭~~~ 읽어보아야
합니다.
각각 프로그램마다 설치되는 경로가 천차만별입니다...
|