article thumbnail image
Published 2021. 3. 16. 17:09

.sh 생성 후 경로 지정

 

cd etc/profile.d

sudo nano alias.sh

alias aa='cd'

control x
Y
enter

 

 

 

path 경로 변경 : 다운받은 파일을 다른 유저가 쓸 수 있게 하기

 

디렉토리 생성

mkdir /usr/local/java

 

공유할 파일 옮기기

sudo mv jdk1.8.0_261/ /usr/local/java/

 

PATH 설정

sudo nano /etc/environment

 

PATH="" 안의 맨 뒤에다가

:/usr/local/java/jdk.1.8.0_261/bin

를 추가해준다.

 

control x

 

1. 그리고 로그인 하고 다시 실행하기

 

2. source etc/enviroment 입력

 

echo $PATH 로 확인해보면 맨 앞의 PATH가 바뀌었다.

설정 맨앞자리에 경로를 붙였던 파일은 안 읽었기 때문이다.

홈 디렉토리의 ~/.profile 다시 읽어주면 된다.

source ~/.profile

 

일시적 PATH 경로 변경

export PATH="$PATH:/usr/bin/bcftools-1.9"

source ~/.profile

 

nano 팁

control z -> 편집하던 백그라운드로 숨는다.

fg 1 -> foreground 로 나와라

 

 

환경변수를 새로 등록하거나 편집하는 명령어는 export PATH=새로 등록할 프로그램의 주소이다.
그런데 한가지 주의해야 할 점은 위의 명령어처럼 바로 해버리면 기존 환경변수에 덮어쓰기가 된다는 점이다.
따라서 기존 환경변수에 이어서 새 환경변수를 등록하기 위한 명령어는 export PATH=$PATH:새로 등록할 프로그램의 주소 를 사용한다.

 

위와 같이 제대로 PATH를 등록했다면 sh 명령어 없이 프로그램 이름인 add만으로도 어느 경로에서나 명령어처럼 사용할 수 있음을 알 수 있다.

 

참고로 export를 통한 path 설정은 일시적인 것으로 로그아웃 하면 다시 기본 설정으로 돌아간다. 


/bin 이란?

"단일 사용자에게나 다중 사용자에게 모두 기본적으로 필요한 User 유틸리티" 가 되겠다.

보통 우리가 터미널, 콘솔 창에서 실행하는 명령어들은 이곳 '/bin' 디렉토리에 정리되어 있다.

 

java/bin 이라면 java를 실행하기 위한 실행 파일들을 저장해 놓는 곳이다.


그렇다면 필수적인 저 유틸리티들이 왜 각기 다른 /bin 디렉토리에 나눠져 있는 걸까? 또 /sbin은 뭘까?

 

/sbin 이란?

"단일 사용자에게나 다중 사용자 환경에게 모두 기본적으로 필요한 System Program과 관리 유틸리티" 이다.

/bin과는 큰 차이가 없다. 다만, 저 안에 들어있는 프로그램이 일반 user들이 잘 쓰지 않는 System 관리를 위한 것이라는 점이 다르다.
그리고 저 유틸리티를 실행하기 위해서는 root 권한 이 필요하다.

 

/usr/bin 이란?

/bin과 유사한 역할을 한다. 콘솔에서 확장된 프로그램이 들어간다.
/bin과의 가장 큰 차이점은 general-system-wide 범위에서 사용가능하다는 점이다. 이에 속하는 바이너리 파일로는 sudo 명령어, vi 명령어 등이 위치한다.

 

/usr/sbin 이란?

/usr/bin과 유사한 역할을 한다. 그러나 실행하기 위해서는 root 권한이 필요하다.

 

/usr/local/bin 이란?

이곳에 위치한 바이너리 파일들과 스크립트들은 일반 사용자를 위한 프로그램이다. 다만, 이 프로그램들은 distribution package manager에 의해 관리되지 않는다. 예를들어, 사용자 본인이 직접 local directory에서 compile한 프로그램(logically compiled program)이라면, 절대로 /usr/bin에 위치시켜선 안된다. 추후 설치하는 스크립트 등에 의해 아무런 경고 없이 업그레이드되거나, 삭제될 수 있기 때문이다. 따라서 이런 프로그램들은 /usr/local/bin 디렉토리에 위치해야 한다.

 

/usr/local/sbin

/usr/local/bin과 유사한 역할을 한다. 다른 /sbin들과 마찬가지로 실행하기 위해서는 root 권한이 필요하다.

 

~/bin

마지막으로 소개할 /bin 디렉토리이다. 이 폴더는 있을 수도, 없을 수도 있다. 이 디렉토리에 들어간 프로그램과 바이너리 파일들은 user-scoped 이다. 즉, 현재 홈 디렉토리의 이름을 가진 사용자에게만 한정된 바이너리 파일들이다. 따라서 여기에 설치되는 바이너리 파일들은 user를 구분한다.



 

Reference

www.youtube.com/watch?v=gRUV7sICeNc&list=PLq8wAnVUcTFU9zLWK-dHWrvTJ0PF8Y0Sf&index=35

 

환경변수 $PATH 설정 방법 : wnw1005.tistory.com/264

 

/bin과 /usr/bin 의 차이 : wookiist.dev/10

 

 

 

 

 

'🚦 Server > Linux' 카테고리의 다른 글

./configure 뜻  (0) 2021.07.08
make 에러  (0) 2021.03.19
Linux 사용자 관리하기  (0) 2021.03.12
Linux 명령어 정리  (0) 2021.03.11
Ubuntu 기초 및 패키지 설치  (0) 2021.03.04
복사했습니다!