티스토리 뷰
Goal
- 파일을 묶거나 압축하는 명령어 tar에 대해 알아본다
- 웹브라우저의 자료를 가져오는 wget명령어를 사용하여 Java JDK압축파일을 다운로드 한다.
- 링크파일에 대해 알아본다
- 링크파일을 이용하여 실행파일을 리졸빙하는 실습을 진행한다.
1. tar(Tape ARchive) + zip
- 파일을 묶거나, 용량을 줄이기 위해 압축을 한다.
1) 파일 묶기
- tar -cf name.tar a b c : tar -cf 명령어를 사용하여 a b c파일을 name.tar의 확장자로 묶는다
- tar -cf name.tar * : 현재 폴더의 모든 파일을 묶는다.
2) 압축 하기
- tar -zcf name.tar.gz a b c : a b c파일을 압축한다. (name.tar로 해도 되지만, 압축한 파일이라는 구분을 짓기 위해 gz를 붙인다)
3) 압축 풀기
- tar -xvf name.tar : 묶여진 파일 풀기
- tar -zxvf name.tar.gz : 압축 풀기, tar -zxf를 하면 압축을 진행하고 있는 상황을 보여주지 않는다. zxvf, v를 추가하여 압축의 진행상황을 확인할 수 있다.
2. 압축본 JDK 설치하기
- wget : 웹브라우저를 사용하지 않아도, 웹브라우저의 자료에 접근할 수 있게 해주는 명령어
- wget 명령어를 통해 JDK를 설치하고, tar -zxvf 명령어로 압축을 푼다
- -java version 명령어를 통해 버전을 확인하려고 하지만 패스가 설정되지 않아, 정상적 명령어가 실행되지 않고 파일을 찾을 수 없게 된다. 패스를 설정하기 위해서는 링크파일을 이용해야 하는데 먼저 링크파일의 개념을 알아보도록 하자.
3. 링크파일 (ln, path, cp)
- l로 시작하는 파일 = 링크파일, 링크파일은 window에서 바로가기 아이콘이라고 생각하면 된다.
- 리눅스에서도 윈도우스 처럼 실행파일이 있고, 실행파일을 실행하기위해 윈도우의 바로가기 아이콘처럼 링크파일을 두어 링크파일을 통해 실행한다.
- ln -s test1.txt test1.ln : test1.txt를 가르키는 test1.ln이라는 링크파일 생성
- Symbolic Link : 링크파일을 만드는 명령어 ln 뒤에 -s를 붙여 Symbolic Link를 만든다. 원본을 가르키는 포인터와 같은 역할을 수행하며, 바로가기와 같은 역할을 한다. 일반적으로 링크파일이라고 하면 Symbolic Link를 지칭한다
- Hard Link : In을 사용하여 Hard Link를 만든다. Hard Link로 만들어진 링크파일은 원본 파일과 크기와 생성 날짜가 같고, 이름만 다르다. Hard Link파일을 수정하면 원본 파일도 수정된다. 즉, 원본을 그대로 복사한 이름만 다른 별칭파일이라고 생각하면 된다. 일반적으로 많이 쓰이지 않는다.
4. 링크파일을 이용한 실행파일 리졸빙
- Resolving : 실행파일을 찾는 작업
- 리눅스에서는 어떤 명령어를 입력했을 때, 명령어를 실행하기전에 그 명령어가 어디에 있는지 찾는다. 먼저 쉘이 가지고 있는 기본 명령어인지 확인하고, 기본 명령어가 아니면 디렉터리를 서칭하는데, 명령어를 실행하는 현재 디렉터리를 서칭하는 것이 아닌 환경변수(PATH)에 등록된 경로만 확인하여 명령어를 찾는다. 최종적으로 원하는 명령어를 찾지 못하면 Resolving error가 발생하고 명령어가 정상적으로 처리되지 않는다.
- 따라서 명령어를 실행하기 위해서는 항상 해당 파일의 경로를 명시하여 명령어를 실행하든지 환경변수로 지정하거나 링크파일을 만들어서 사용해야 한다.
- 명령어를 실행하면 기본적으로 리눅스에서는 user의 홈디렉터리/bin 경로를 탐색한다. 따라서 해당 경로에 어느 경로에서나 실행하기 원하는 파일의 Symbolic Link파일을 생성하면. 어떤 경로에서든 해당 파일에 접근할 수 있다
1) cd ~/bin 입력 : ~(사용자 홈디렉터리)/bin으로 이동한다
2) ln -s ~/원하는파일이있는디렉터리 파일명 : Symbolic Link파일을 생성한다.
ex) ln -s ~/download/jdk1.8.0_131/bin/java java : bin파일에 java파일을 가르키는 java링크 파일이 생성된다.
3) 아무 디렉터리에가서 java -version을 실행해본다. 정상적으로 java의 버전이 출력된다면 링크파일이 잘 생성된 것이다.
* 홈디렉터리/bin 경로가 PATH에 추가되어 있지 않다면 패스 설정을 해주어야 한다. export PATH=$PATH:/home/사용자이름/bin/을 입력하여 홈디렉터리 패스를 넣어준다.
5. 링크파일로 컴파일과 실행하기
- 홈디렉터리/bin에 java와 javac의 링크파일을 생성했기 때문에, 어느 폴더에서든 해당 명령어를 사용할 수 있게 됐다
- workspace폴더로 이동하여, 만들어놓은 java파일을 컴파일하고 실행해본다
1) ~/workspace 이동
2) Hello1.java 파일 컴파일
- javac Hello1.jave를 입력하면 컴파일을 실행하고, Hello1.java 파일의 public 클래스명에 해당하는 class 파일을 생성해준다
3) 컴파일된 class 파일 실행
- 실행은 java 명령어로 진행하며, 'java 컴파일된 파일 명'을 입력하면, 해당 java class 파일을 실행한다.
위와 같이 home/사용자/bin 디렉터리에 링크파일을 등록하는 것은 자신만의 계정과 환경에서 jdk를 사용하는 방법이다. 하지만 jdk는 system level에서 사용됐을 때 다른 유저와 같이 사용해야 한다. 해당 jdk의 패스경로가 home/사용자/bin 디렉토리로 설정되어 있다면, 다른 사용자가 jdk의 명령어를 실행했을 때, 리졸빙에러가 발생할 수 있다(다른 사용자의 home/사용자/bin 경로는 각각 상이하기 때문). 따라서 모든 유저가 사용할 수 있도록 사용자를 추가해야 한다.
'리눅스 > Ubuntu on Windows 10' 카테고리의 다른 글
사용자 추가하기 (0) | 2020.05.02 |
---|---|
Linux(Unix) 유용한 명령어 (0) | 2020.04.29 |
Linux(Unix) 파일 찾기와 파일 정보 확인 (0) | 2020.04.29 |
Linux(Unix) 파일 편집 및 관리 (VI, nano) (0) | 2020.04.29 |
Linux(Unix) 계정, 파일관리 명령어 (0) | 2020.04.29 |
- 20200429
- 20200403
- 20200406
- 20201204
- 20200425
- 20200624
- 20200415
- 20200424
- 20200510
- 20200427
- 백준
- chapter7
- 20200413
- 20200503
- 20200502
- 20200804
- 생활코딩리눅스
- likelion
- 20200421
- 20200317
- 20200504
- 20200622
- 20200420
- 20200428
- chapter8
- 20200423
- 20200417
- 20200512
- 20200330
- 20200319
- Total
- Today
- Yesterday