bash는 리눅스에서 많이 사용되는 쉘 환경 중 하나입니다.
.bashrc는 bash 의 유저 설정 파일입니다.
새 터미널이 bash 로 시작되면. profile 이 먼저 읽어집니다.
.profile을 열어보면
$HOME/.bashrc 파일이 있으면 $HOME/.bashrc 파일을 source에 추가하라고 되어있습니다.
. $HOME/.bashrc 라 적힌 줄이 있습니다.
리눅스에서 . 은 source 명령어와 같습니다.
source나 . 은 현재 쉘에 스크립트 파일을 적용하라는 의미입니다.
스크립트 파일이 실행 가능이 아닐 때 사용하는 것 같습니다.
.bashrc 파일에서 자주 사용하는 설정입니다.
umask 022
alias ssh='ssh -Y'
alias ls='ls --color=tty -F'
export PYTHONPATH="/home/ggg/Programs/pdbtools:${PYTHONPATH}"
export PATH="/home/ggg/Programs/pdbtools/bin:$PATH"
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
export OMP_NUM_THREADS=1
export OPENBLAS_NUM_THREADS=1
export MKL_NUM_THREADS=1
export NUMEXPR_NUM_THREADS=1
export VECLIB_MAXIMUM_THREADS=1
export CUDA_VISIBLE_DEVICES=7
umask는 새로 생성되는 파일의 기본 권한을 제어하는 명령어입니다.
이 세 숫자는 각각 유저 권한, 그룹 권한, 기타 권한을 의미합니다.
권한 자체라기보다는 권한의 보수입니다.
0이라면, 권한 7이 생성됩니다.
파일 권한은 읽기, 쓰기, 실행 세 가지가 있는데
이를 3개의 2진수로 표현합니다. 권한이 있으면 1, 없으면 0입니다.
3개의 권한을 모두 가진다면, 2진수로 111 로 표현되고 이를 10진수를 변환하면 7입니다.
읽기, 쓰기 권한만 가지면 110 로 표현하고, 이는 6입니다.
읽기, 실행 권한만을 가지면 101이고 이는 5에 해당합니다.
chmod 755 라고 적으면, 유저에겐 7의 권한을, 그룹과 기타 사용자에겐 5의 권한을 준다는 의미입니다.
umask의 022는 새로 생성되는 파일 (touch 나 vi 등으로 만들어진)에 755의 권한을 주라는 의미입니다.
다만, umask 명령어는 쓰기 권한을 주진 않기에 파일은 644의 권한으로 만들어집니다.
즉, umask 022나 umask 133 이나 같은 결과가 나옵니다.
alias ssh='ssh -Y'
alias ls='ls --color=tty -F'
alias 는 단축 명령어를 지정하는 명령어입니다.
위의 명령어처럼 지정하면 ssh -Y 를 입력하는 대신 ssh 만 쳐도 동일한 결과가 나옵니다.
export PATH="/home/ggg/anaconda3/bin:$PATH"
PATH 에 경로를 추가하고, 이를 환경 변수로 내보내라는 의미입니다. 내보내기 전까지는 bash 변수입니다.
환경변수는 python 등 별도의 프로그램에서 읽어올 수 있습니다.
환경변수는 env 명령으로 확인할 수 있습니다.
이것이 실행되면, PATH에 설정되어있는 경로에 있는 실행파일들은 어디서나 경로를 적어주지 않아도 실행이 가능합니다. 경로에 포함된 대표적인 폴더는 /usr/bin 폴더가 있습니다.
예를 들어 우리가 ls 라는 명령어를 실행하면 실제로는 파일인 /usr/bin/ls 가 실행되는 것입니다.
실행할 명령어의 전체 경로를 찾는 명령어는 which 입니다. which 도 사실은 실행파일입니다.
하지만 명령어 중 cd 는 파일이 아닙니다. 아마 이렇게 실행파일이 아닌 것을 내부 명령어라 하고 실행파일인 것을 외부 명령어라 부르던 것 같습니다.
export OMP_NUM_THREADS=1
export OPENBLAS_NUM_THREADS=1
export MKL_NUM_THREADS=1
export NUMEXPR_NUM_THREADS=1
export VECLIB_MAXIMUM_THREADS=1
OMP_NUM_THREADS1은 openmp에서 사용할 threads의 수를 지정하는 환경변수 입니다. 하드웨어의 threads의 수만큼으로 지정할 수도 있지만 (0), 병렬화를 직접 제어할 경우는 이 수치도 직접 조절해야 합니다.
python에서 numpy도 멀티 스레드를 사용하도록 되어있는데, 단일 스레드로 사용하고 싶다면, 위 설정을 적용해줍니다.
(5개 중 무엇인지 정확히 모르겠습니다.)
export PYTHONPATH="/home/ggg/Programs/pdbtools:${PYTHONPATH}"
export PATH="/home/ggg/Programs/pdbtools/bin:$PATH"
PATH와 비슷하게 PYTHONPATH 라는 변수가 있습니다.
이 변수에 등록된 경로는 PYATHON library 경로에 포함되고, import 명령어의 참조 경로가 됩니다.
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
LD_LIBRARY_PATH 도 PATH나 PYTHONPATH와 비슷합니다.
프로그램을 실행할 때 필요한 라이브러리를 참조할 경로를 추가해주는 것입니다.
ldd 명령어로 프로그램 실행시 필요한 (동적) 라이브러리를 확인할 수 있습니다.
'Computer' 카테고리의 다른 글
AMD 라이젠 7700X, B650 메인보드, AM5 쿨러 조립, 부팅 실패 (1) | 2023.02.12 |
---|---|
linux mint 20.3 cinnamon 설치, UEFI 문제 해결 (0) | 2022.05.09 |
VHTS와 병렬 컴퓨팅: 3. job list 파일 공유를 이용한 병렬처리 (0) | 2022.03.28 |
VHTS와 병렬 컴퓨팅: 2. python multiprocessing 을 이용한 분자 처리 (0) | 2022.02.27 |
VHTS와 병렬 컴퓨팅: 1. 기초 개념, file split (0) | 2022.02.27 |