수업시간에 놓친내용인데요

교수님이 gedit로 source.c파일을 만들어서 이 파일을 실행할때 터미널에서 아무 명령없이

source 이름만 쳐서 실행되도록 하게 하였습니다.

이것을 가능하게 하려면 export PATH=$PATH:./

이런식으로 PATH설정을 해야한댔는데 PATH 설정할때 ./ 이거 맞나요?

[quote="hyeong3920":22v7iih5]교수님이 gedit로 source.c파일을 만들어서 이 파일을 실행할때 터미널에서 아무 명령없이

source 이름만 쳐서 실행되도록 하게 하였습니다.

이것을 가능하게 하려면 export PATH=$PATH:./

이런식으로 PATH설정을 해야한댔는데 PATH 설정할때 ./ 이거 맞나요?[/quote:22v7iih5]
PATH에 ./ 말고 .만 해도 될 겁니다. 네, 그렇습니다. 그렇죠. 그렇긴 한데요. 예전에 요런 것을 이용한 해킹 기법이 벌써 교과서에도 실릴 만큼 오래전부터 있었습니다. 그러니 그렇게 안 하는 게 좋아요.

그리고, source.c 파일을 만들었는데 source라는 이름만으로 실행되게 하려면, 음… 그니까… 그걸 컴파일해서 어쩌구 저쩌구… 가 필요합니다. 그냥은 안 돼요. 그건 다시 그 교수님한테 물어보세요. 수업 내용을 좀 많이 놓치신 것 같네요.

패스설정은 bash 를 기준으로 .bashrc 파일내 마지막에

export PATH=".:$PATH"

를 추가하시고,

학교에서 짜는 간단한 프로그램 source.c 파일은 별다른 헤더파일 (e.g. math.h)을 추가하지 않는 이상 단순히

make source

명령을 주면 source 실행파일이 만들어 집니다.

PATH 맨 뒤에 오면 우선 순위에서 밀립니다. 앞에 올수록 우선순위가 높습니다.
다음과 같이 맨 앞에 두면 항상 현재 디렉토리에 있는 프로그램을 실행시킬 겁니다.
export PATH=.:$PATH

그런데 이렇게 하는 건 보안의 이유로 권장하지 않는다고 하네요. 현재 디렉토리에 있는 명령을 실행시킬 때는 그냥
./를 붙여 실행시키는 게 좋겠네요.

딴 얘기로 source 란 이름은 bash builtin command가 쓰고 있어요.
source 했더니 항상 이 builtin이 실행되더군요. 어떻게 하면 PATH에 있는 것을 실행시킬지 모르겠네요.
물론 ./source 하면 되지만…

소스 코드를 실행한다라… 그게 인터프리트 형 언어로 쓰여진 것이라면 가능하겠지만 확장자로 보아하니 C 언어인 것 같은데, C 언어 같은 컴파일 형 언어는 컴파일 없이 실행이 불가능합니다. 아니, 어떤 의미로서 소스 코드와 같은 텍스트 파일의 실행이란 그것을 적절한 편집기로 연다는 의미가 되는데, 이것을 의미하신 것은 물론 아니시겠지요.

gcc와 같은 컴파일러(물론 gcc가 링크까지 해줍니다…)를 이용하여 컴파일(+ 링크)를 하고 나면 executable 파일이 생성됩니다. ls로 해당 파일을 보시면 실행 권한이 주어져 있겠죠. 없으면 'chmod +x <파일이름>'으로 실행 권한을 주시면 됩니다.

그리고 해당 디렉터리에 위치한 실행 파일을 그냥 '<파일이름>'으로 실행하려면 위에 많은 분들께서 언급해 주셨다시피 PATH에 현재 디렉터리(.)를 추가하면 됩니다만, 역시 많은 분들이 언급하셨다시피 보안 문제로 그렇게 하시면 안 됩니다. './<파일이름>'으로 실행하시는 것이 좋습니다.

물론 해당 디렉터리 경로를 PATH 환경 변수에 추가해 두시면, 해당 디렉터리 외에 다른 곳에서는 그냥 '<파일이름>'으로 실행 가능합니다. 이편이 좋습니다.

늦었지만 다른 분들도 참고 되시라고 댓글 달아 봅니다…