Bash shell은 커맨드 쉘의 일종이다. 쉘이 무엇이냐 하면, 운영체제에서 사용자가 입력하는 명령을 읽고 해석하여 대신 실행해주는 프로그램이다. 사용자와 운영체제의 커널사이의 인터페이스를 감싸는 층이라서 쉘이라는 이름이 붙었다. 그러니까 bash는 결국 내가 입력한 명령을 해석해서 대신 실행해주는 애라는 것이다. 만약 ls 라는 명령어를 입력하면, 현재 디렉토리에 있는 모든 파일과 폴더를 보여줄것이고, 내부 명령어가 아니면 Path 환경변수에 지정된 경로에서 입력받은 명령과 같은 파일을 찾아 실행해준다.
이 bash 쉘에는 공통적인 5개의 설정 파일을 가지고 있다.
/etc/profile : 전역적인 시스템 설정 관련
/etc/bashrc : alias(별칭)과 bash가 수행될때 실행되는 함수를 제어하는 전역적인 시스템 설정과 관련된 파일
~/.bash_profile : 환경변수와 bash가 수행될 때 실행되는 프로그램을 제어하는 지역적인 시스템설정과 관련 -> 이 환경변수들은 오직 그 사용자에게만 한정되고 다른 사람에게는 영향을 미치지 않는다.
~/.bashrc : alias와 bash가 수행될 때 실행되는 프로그램을 제어하는 지역적인 시스템설정과 관련 ->모든 사용자에게 영향을 주는 /etc/bashrc 와는 달리, ~/.bashrc 는 오직bash를 실행하는 사용자에게만 영향을 준다
~/.bash_logout: 사용자가 로그 아웃하기 바로 직전에 실행하는 프로그램에 관한 bash의 지역적인 시스템 설정과 관련된 파일
그래서 우리가 환경변수를 설정할 때 bash profile을 열어서 수정해야되는 것이다
bashrc는 bash가 실행될때마다 수행되고(non-login shell), bash_profile은 bash가 login_shell로 쓰일때(예: ssh로 접속해서 처음 로그인 할 때) 수행된다.
zsh도 bash와 같은 shell의 한 종류이다. zsh을 쓰는 경우에는 bashrc와 bash_profile처럼 구분해서 쓸 필요는 없다. login이든 non-login이든 상관없이 실행되기 때문.
터미널에서 아래 명령어를 입력 한다.
vi ~/.bash_profile
1.i를 누르면 INSERT 모드로 변경이 된다.
2.내용을 입력후
3.ESC 키를 입력 하면 INSERT 모드에서 빠져 나온다.
4.:wq 입력후 엔터를 누르면 편집모드에서 빠져 나간다.
5.source ~/.bash_profile 명령어를 터미널에 입력하여 내용을 저장 한다.