본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


Linux

리눅스 공부 2 - 링크파일을 환경변수 디렉토리에 생성

반응형

리눅스에서 링크파일은 윈도우에서  실행파일을 가르키는 바로가기 아이콘과 같은 역할을 한다 . 

 

링크파일은 실제 실행파일과 연결되어 링크파일을 통해 실행파일을 실행하게 할 수도 있다. 

 

ln 명령어를 통해  링크파일을 생성할 수 있다. 

 

링크파일에는 2가지 종류가 있는데 

 

symbolic linkhard link가 있다

 

symbolic link는 말 그대로 원본을 가르키고 있는 단축아이콘 같은 개념이고 별도의 링크파일이 생성된다 

 

symbolic link 생성예)  ln -s test1.txt test1.ln             

-symbolic link인 경우 -s 실행파일명 링크파일명으로 생성한다.

 

hard link는 별도의 파일이 생성되는 것이 아니라  파일의 별칭을 지정하는 것이다  같은 파일에 이름이 2개가 된다고 생각하면 된다.  

 

hard link 생성 예) ln test1.txt testln.txt

- hard link는 다른 옵션을 지정하지 않는다 . 

 

보통 하드링크는 잘 사용하지 않는다고 한다.

 

 

링크파일 생성

 

hard link의 경우 링크파일과 원본파일이 존재한다고 했을떄 원본파일을 지워도 링크파일은 지워지지 않는다 . 

원본파일과 링크파일 같은 객체를 참조하고 있다고 생각하면된다 참조 변수 같은 역할을 하는것이다 .

우분투에 자바를 설치하고 다른 설정없이 java -version을 하면 버전이 명령어가 동작하지 않는다 . 

리눅스에서는 명령어 실행시 실행파일 resolving이 일어나는데 가장 기본적으로 shell이 기본적으로 갖고있는 명령어인지 확인하고 없으면 디렉토리를 뒤지는데  $PATH라는 환경변수에  등록된 디렉토리 경로만 뒤지기 떄문에 환경변수를 설정하거나 경로를 모두 적어줘야한다.    

 

이런 문제를 해결하기 위해선 환경변수에 java 디렉토리 경로를 추가를 한던가  링크 파일을 만들어 현재 환경변수로 지정된 디렉토리안에 링크파일을 넣어서 resolving시 찾아낼 수 있도록 하는 방법등이 있다. 

 

 

현재 지정된 환경변수 경로에 링크파일을 만드는 방식을 알아보려한다. 

 

일단 기본적으로 환경 변수로 지정된 디렉토리는 관리자 권한으로만 접근할 수 있기 떄문에 

 

sudo su - root 로 관리자 계정으로 바꿔주자 . (- root 띄어쓰기 해야함)

 

root로 계정이 바뀌었다 . 

 

다음으로 echo $PATH 로 현재 환경변수를 출력 확인한다 .

 

 ' : ' 기준으로 구분하여 현재 환경 변수로 지정된 경로들이 나온다 . 

 

jdk의 bin에 있는  java 와 javac에 대한 링크파일을 만들어 저 디렉토리중 하나에 넣어놓자 

 

음.. 나는 일단 /usr/local/bin 이라는 디렉토리에 만들어 보려한다. ( 관련된 것을 좀 더 찾아봐야겠다. )

 

 

 

ln -s 원본파일명 링크파일명  <- 명령어로 java javac의 링크파일을 만들었다 .

 

링크파일을 보면 원본파일을 가리키고 있다. 

 

다시 계정을 사용자 계정으로 바꾸고 아무 디렉토리에 가서 java 명령어를 실행해 봤다 .

 

 

 

java 명령어가 잘 실행 됬다.  nano 편집기로 간단하게 자바파일 만들어서 javac를 해보니 잘 컴파일 되었다.

 

 

 

생각해보니 지금이야 연습이니 java javac 이렇게 하나씩 가져오지만 좋은 방식은 아닌 것 같다 

 

아예 bin 폴더자체를 환경변수로 지정하는 방법을 공부해야겠다 .

 

반응형