본문 바로가기

카테고리 없음

[IT] 리눅스 기초 - bash_profile

bash_profile이란

bash_profile이란? 쉘 로그인 시 자동으로 실행되는 파일로 환경변수, alias, 초기화가 필요한 작업 등을 설정할 때 쓰인다.

즉, 쉘에 로그인 하여 작업을 수행하기 전에 미리 정의된 어떤 일련의 작업들을 수행하여 이후 작업을 편리하게 하기 위한 목적으로 쓰인다.

 

비슷한 용도로 쓰이는 파일 중 .bashrc와 .profile 등이 있다.

bashrc는 로그인 동작과 관계없이 쉘이 실행될 때마다 실행되는 차이점이 있고,

profile은 bash가 아닌 다른 쉘 로그인 시에도 실행되는 차이점이 있다.

파일끼리 서로 호출하는 문장이 없을 경우 보통 .bash_profile 파일이 가장 나중에 실행되므로 지역변수나 설정 등은 이 파일에 입력해주면 된다.

 

그럼 다시 .bash_profile로 돌아와서, 이 파일은 각 로그인 계정의 홈(cd 입력 시 홈으로 이동)에 숨김파일로 존재한다.

리눅스에서는 숨김파일을 표시할 때 파일 앞에 .을 붙여서 표시하고, ls -a 옵션을 통해서 파일 목록에서 확인할 수 있다.

현재 위치와 상관없이 .bash_profile을 편집하기 위해서는 ~/.bash_profile 을 입력하면 된다.

$ ~/.bash_profile
 

bash_profile 기능

.bash_profile에서 자주 쓰이는 기능들을 알아보자.

 

# If not running interactively, don't do anything
case $- in
   *i*) ;;
   *) return;;
esac
대화형(interactive)으로 입력되는 경우에만 수행되며, 비대화형(non-interactive)으로 입력되는 경우 아무것도 수행하지 않는다.

즉, script에 의해 미리 정의된 입력이 아닌 사용자가 실시간으로 CLI(Command Line Interface)를 통해 직접 입력한 명령어에 대해서만 .bash_profile 파일의 내용을 읽어서 미리 정의된 기능을 수행하도록 한다.

 

set -o vi
커맨드 입력 라인에서 vi 기능들을 사용할 수 있다.

입력 중 Esc키를 눌러서 vi의 명령 모드로 진입할 수 있고, vi의 기능들을 사용하여 입력을 조금 더 편리하게 할 수 있다.

 

export LANG=ko_KR.utf8
사용할 언어 인코딩 방식을 설정한다.

단, OS에 설치되어 있는 인코딩 방식 중에 하나를 선택하여 사용해야 한다.

 

export JAVA_HOME=/home/anylink/jdk1.8.0_333
export PATH=$JAVA_HOME/bin:$PATH

Java 등 어떤 프로그램을 설치한 후 위와같이 해당 프로그램의 홈과 경로를 설정하여 사용하는 경우가 많다.

사용자 환경마다 Java가 실제로 설치된 경로가 다르기 때문에 보통 이렇게 미리 정의된 변수(JAVA_HOME)로 프로그래밍을 해놓고,

사용자 환경에서 환경변수로 등록하여 환경마다 다른 경로를 변수를 통해서 동일하게 가져와서 사용할 수 있다.

 

그리고 Java의 경우 $JAVA_HOME/bin 경로에 java.exe, javac.exe를 포함하여 여러가지 유틸 프로그램(실행 프로그램)들이 존재 하는데 해당 프로그램들을 어떤 위치에서도 바로 실행하기 위해서는 PATH 변수에 실행파일들이 위치하는 경로를 추가해줘야 한다.

이미 설정되어 있던 PATH 값들도 그대로 사용하기 위해서 뒤에 :$PATH 를 붙여준다.

 

alias pp='ps -ef | grep java | grep `whoami`'

alias 기능을 통해서 자주 사용하는 명령어를 간단하게 등록하여 사용할 수 있다.

내 계정으로 동작중인 java 프로세스를 확인하기 위한 ps -ef | grep java | grep `whoami` 명령을 간단하게 pp로 alias를 등록해 놓으면,

입력창에 pp만 입력해서 긴 문장의 명령어를 실행할 수 있다.

 

이 외에도 많은 기능들을 .bash_profile에 미리 등록하여 사용할 수 있는데,

.bash_profile은 쉘 로그인을 통해서 동작하므로 수정이 발생한 경우 재로그인을 해줘야 한다.

혹은 . ~/.bash_profile 이나 source ~/.bash_profile 명령어를 통해서 수정사항을 적용할 수 있다.

$ . ~/.bash_profile
$ source ~/.bash_profile