리눅스에서 source명령어의 의미와 bashrc의 용도
글쓴이: luke419 / 작성시간: 목, 2009/01/08 - 9:08오후
1. shell programing에서 source명령어는 무엇을 의미하는지요?
아래와 같은 예제가 있네요.
– in kornshell : . ${HOME}/.prgmrc
– in C–shell : source ${HOME}/.prgmrc
bash shell은 C-shell로 봐야하나요?
2. 보통 .bash_profile에 path, 기타 환경변수 설정, shell 명령어 등이 들어가는 걸로 알고 있습니다.
그리고 보통 .bash_profile에 bashrc도 실행되게 되어 있고 path를 bashrc에 넣어도 된다고 하네요.
그런데 왜 굳이 이렇게 두개의 화일을 쓰는 건지요?
두 화일에 쓰이는 용도가 다른 것이 있는지요?
bashrc는 어느 경우에 쓰이는 화일인지요?
그럼..
Forums:
include 의 의미로
include 의 의미로 이해하세요.
bash 는 sh 계열입니다.
원칙적으로
profile 은 login shell 로 쓰일 때,
rc 는 그 밖에 실행될 때마다,
입니다.
OTL
strace에서 bashrc가..
그렇다면 그냥 bash를 실행할 때 마다
bashrc를 찾아야할꺼같아서
아래와 같이 테스트 해봤습니다.
왜 여기선 bashrc가 안나오죠?
실제론 분명 bashrc를 실행하더군요..
ㅎㅁㅎ
자세히는
자세히는 모르겠습니다.
-l 옵션이 login shell 을 의미하는 것 처럼,
-i 옵션이 interactive shell 을 의미합니다.
명시적으로 -i 옵션을 주면 .bashrc 가 읽히는 것이 잡힙니다만,
아무 옵션 없이 그냥 다시 쉘을 실행시키는 경우엔 안 잡히는군요.
(strace 는 exec/fork 된 후부터 추적이 되기 때문에 부모가 뭘 하는 지는 모릅니다.
strace 의 -p 옵션을 사용해서 부모 쉘을 트레이스 해보세요.)
OTL
이걸 해보게된
이걸 해보게된 경위는.. xserver에서 gnome-terminal만 띄워서 쓰다가..
PATH 지정이 bash_profile에서 안되서 해보게되었습니다.
말씀하신대로 -p옵션을 써봤습니다.
gnome-terminal에서 새탭을 여니 위처럼 3줄이 나오더군요.
왜 여전히 bashrc가 안나올까요; 분명히 bashrc를 바꾸고 새탭을 열면 적용이 되던데..
ㅎㅁㅎ
child 까지
child 까지 트레이스하려면 -f 옵션이 필요합니다.
저도 gnome-terminal 에서 새 탭을 열어봤습니다.
OTL
아..
아.. 그렇군요.
strace.. 2>&1..
많이 배웠습니다. 감사합니다.
ㅎㅁㅎ
댓글 달기