PATH란 쉽게 생각해서 내가 linux상에서 커맨드를 입력하였을 때 command not found 가 나오지 않고
어떠한 경로에서도 내가 원하는 명령어를 사용할 수 있도록 설정하는 것이다.
그렇다면 사용자 홈 디렉터리에 있는 .bashrc는 무엇이고 /etc/bashrc는 무엇일까
.bashrc 는 지역변수라고 한다. 한마디로 개인 사용자 환경설정이다.
/etc/bashrc 전역 변수라고 한다. 전체 사용자에게 전용되는 환경 설정이다.
redhat계열인 centos는 /etc/bashrc 이지만 debian계열의 ubuntu는 /etc/bash.bashrc 이다.
어떤 차이가 있는지 한번 정확하게 살펴보자.
내 Test서버에는 root 관리자 권한 계정과 ckkim, test의 두 유저가 생성되어있다.
root
(base) root@ubuntu:~# tail -n 5 /etc/bash.bashrc
# export PATH=/usr/local/cuda-10.0/bin:$PATH
# export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
# export LD_LIBRARY_PATH=/usr/local/cuda-10.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH
export PATH=/root/anaconda3/bin:$PATH
(base) root@ubuntu:~# nvcc -V
Command 'nvcc' not found, but can be installed with:
apt install nvidia-cuda-toolkit
전역 변수에 cuda path를 설정하였다가 주석 처리해놓은 상태라 nvcc -V 의 command를 찾을 수 없는 것이다.
위에 말한 것처럼 ubuntu server는 /etc/bashrc 가 아닌 /etc/bash.bashrc 이다.
ckkim
ckkim@ubuntu:~$ tail -n 4 .bashrc
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH
ckkim@ubuntu:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130
cuda 10.0 path를 ckkim 홈 디렉토리 .bashrc에 입력되어있어 nvcc version이 10.0으로 표기되었다.
test
test@ubuntu:~$ tail -n 4 .bashrc
export PATH=/usr/local/cuda-11.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH
test@ubuntu:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Thu_Jun_11_22:26:38_PDT_2020
Cuda compilation tools, release 11.0, V11.0.194
Build cuda_11.0_bu.TC445_37.28540450_0
test계정 역시 홈 디렉토리 .bashrc에 cuda 11.0 path를 입력해 두었다.
왜 지역변수와 전역 변수를 나누는 것일까? 전역 변수로 한 번에 모든 계정의 path를 하면 안 될까라는 생각도 들 수 있다.
그 생각을 지우기 위해 위와 같은 cuda로 설명해 두었다.
cuda를 사용하는 개발자분들은 cuda 10.0, cuda 9.0, cuda 10.2 이런 식으로 본인이 맞는 버전을 쓰게 되어있는데
/etc/bashrc에 전역 변수로 한 version의 적용이 되게 되면 서로 불편한 일이 생길 수 있다.
centos
[root@centos ~]# ls -al .bashrc
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
[root@centos ~]# ls /etc/bashrc
/etc/bashrc
마지막으로 centos의 지역변수는 ubuntu와 동일하게 .bashrc이며 전역 변수는 /etc/bashrc 이다.
2020/07/20 - [linux] - linux - hostname, hosts 파일 및 hosts.deny hosts.allow 알아보기
2020/07/19 - [linux] - ssh 접속 MobaXterm
2020/07/15 - [linux] - sosreport 및 nvidia-bug-report 시스템 log 추출 툴
linux - ssh 접속하기 및 포트 변경 (2) | 2020.07.29 |
---|---|
리눅스(linux) - 기본 명령어 사용법 (2) | 2020.07.27 |
linux - hostname, hosts 파일 및 hosts.deny hosts.allow 알아보기 (2) | 2020.07.20 |
ssh 접속 MobaXterm (0) | 2020.07.19 |
sosreport 및 nvidia-bug-report 시스템 log 추출 툴 (0) | 2020.07.15 |