nayoungs
항상 끈기있게
nayoungs
  • 분류 전체보기 (274)
    • Cloud (21)
      • AWS (15)
      • Azure (3)
      • NCP (2)
      • GCP (1)
    • DevOps (68)
      • Docker (16)
      • Kubernetes (50)
      • CICD (2)
    • IaC (25)
      • Ansible (17)
      • Terraform (8)
    • Certification (4)
    • 금융 IT (5)
    • AI (3)
    • Linux (47)
    • 미들웨어 (5)
    • Programming (7)
      • GoLang (3)
      • Spring (4)
    • CS (25)
      • 네트워크 (17)
      • 운영체제 (5)
      • Web (1)
      • 개발 상식 (2)
      • 데이터베이스 (0)
    • Algorithm (59)
      • 프로그래머스 (36)
      • 백준 (18)
      • 알고리즘 정리 (5)
    • ETC (5)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
nayoungs

항상 끈기있게

Linux

[Linux] .bash_profile로 사용자 환경 커스터마이징하기

2024. 11. 8. 00:38
728x90

리눅스에서 .bash_profile은 사용자 환경을 설정하는 데 중요한 역할을 하는 파일이다. 로그인 shell을 사용할 때 실행되는 스크립트로, 사용자가 시스템을 자신의 필요에 맞게 커스터마이즈할 수 있도록 돕는다. .bash_profile 에 설정된 변수나 경로는 오직 해당 계정에만 적용되며, 다른 계정에는 영향을 미치지 않는다. 쉽게 말해, 특정 Linux 계정에서 자주 사용하는 변수가나 명령어들을 미리 설정해두고, 사용자가 로그인할 때 자동으로 환경을 구성해주는 역할을 한다.

 

파일의 위치

.bash_profile은 사용자의 홈 디렉토리에 위치한다. 기본적으로 숨김 파일로 간주되어, 파일 이름 앞에 점(.)이 붙는다. 이 파일은 ls 명령어로는 보이지 않기 때문에, 숨김 파일을 확인하려면 ls -al 과 같이 -a 옵션을 사용해야 한다.

 

사용 목적

.bash_profile 은 리눅스에서 로그인 shell 환경을 설정하는 데 중요한 역할을 한다. 주로 다음과 같은 용도로 사용된다.

  • 환경변수 설정: PATH와 같은 환경 변수를 설정하여 프로그램이 저장된 디렉토리를 시스템이 인식하도록 한다.
  • 시작 프로그램 실행: 로그인 시 자동으로 실행할 프로그램이나 스크립트를 지정할 수 있다.
  • shell 옵션 설정: Bash의 동작 방식을 변경하는 다양한 옵션을 설정할 수 있다.
  • alias 설정 : 자주 사용하는 명령어를 간단한 alias(별칭)으로 설정하여, 입력시간을 단축하고 편리하게 사용할 수 있다.

 

파일의 구조

.bash_profile은 보통 다음과 같은 형식으로 작성된다. 주로 환경 변수 설정, 사용자 정의 프롬프트, 시작 시 실행할 프로그램 등을 포함한다. 예를 들어, Nginx를 관리하는 ngxadm 계정이 있다고 할 때, 아래와 같이 작성할 수 있다.

# Nginx 홈 디렉토리 설정 (기본 Nginx 디렉토리로 쉽게 이동)
export NGINX_HOME="/app/nginx"
export NGINX_LOG_DIR="/var/log/nginx"

# 사용자 정의 프롬프트 설정
PS1="\\u@\\h \\w$ "

# 시작 시 실행할 프로그램
if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

# 자주 사용하는 명령어에 대한 alias 설정
alias ngxstatus='systemctl status nginx'
alias ngxreload='systemctl reload nginx'
alias ngxrestart='systemctl restart nginx'
alias ngxlog='tail -f /var/log/nginx/access.log'
alias ngxhome='cd $NGINX_HOME'
alias ngxconf='vi $NGINX_HOME/nginx.conf'
  • 환경 변수 설정 : export 를 사용하여 시스템의 환경 변수를 설정한다.
  • 사용자 정의 프롬프트 : PS1 변수로 로그인 후 보여지는 프롬프트를 설정할 수 있다.
  • 시작 시 실행할 프로그램 : ~/.bashrc 파일을 포함시켜 로그인 시, .bashrc 의 설정도 자동으로 적용되도록 할 수 있다.
  • alias 설정 : 자주 사용하는 명령어를 간단한 이름으로 설정할 수 있다. 예를 들어,ngxadm으로서, nginx 관련 명령들에 대한 alias를 설정하여 명령어를 더 짧고 간편하게 실행할 수 있다.

 

실행 방법

파일을 수정한 후, 변경 사항을 적용하려면 새로운 터미널 세션을 시작하거나, 다음 명령어를 사용하여 .bash_profile 설정을 로드할 수 있다.

source ~/.bash_profile

 

.bash_profile 과 .bashrc

.bash_profile 과 .bashrc 는 모두 Bash Shell의 환경을 설정하는 데 사용되는 파일이지만, 용도와 실행되는 시점이 다르다. 이 둘의 차이를 이해하기 위해서는 Login Shell과 Non-Login Shell에 대해 먼저 이해해야 한다.

 

Login Shell과 Non-Login Shell

  • Login Shell은 사용자가 ID와 비밀번호를 입력하여 시스템에 로그인한 후 실행되는 shell을 말한다. 예를 들어, SSH로 원격 접속하거나, 로컬에서 GUI 로그인 후 터미널을 처음 실행할 때가 이에 해당한다.
  • Non-Login Shell은 이미 로그인된 상태에서 새 터미널 창을 열 때 실행되는 shell이다. 예를 들어, GUI 환경에서 터미널 창을 열거나, 로그인 후 새로운 터미널 세션을 시작할 때 시행된다.

.bash_profile

  • .bash_profile 은 Login Shell에서만 실행되며, 사용자가 시스템에 로그인할 때만 로드된다.
  • 이 파일은 사용자의 로그인 과정에서 한 번만 실행되며, 주로 시스템에 로그인할 때 필요한 환경 변수 설정이나 시작 프로그램 실행 등을 포함한다.
  • 즉, 주로 로그인 환경을 설정하는 데 사용된다.

.bashrc

  • .bashrc 는 Non-Login Shell에서 실행되며, 이미 로그인한 상태에서 새로운 터미널 창을 열 때마다 실행된다.
  • 이 파일은 주로 터미널 환경의 사용자 맞출 설정을 포함하며, 로그인 후 shell 세션에서 반복적으로 필요한 설정을 넣는 파일이다.
  • 즉, 주로 터미널 환경 설정에 사용된다.

 

 

 

Reference

더보기
  • https://jongmin92.github.io/2016/12/13/Linux%20&%20Ubuntu/bashrc-bash_profile/

 

 

 

728x90
저작자표시 비영리 (새창열림)
    'Linux' 카테고리의 다른 글
    • [Linux] 퍼미션(Permission) (2) : Special Permission (SetUID, SetGID, Sticky Bit)
    • [Linux] 퍼미션(Permission) (1) : 작동 원리
    • [Linux] 사용자 관리 톺아보기
    • [Linux] Alpine Linux란?
    nayoungs
    nayoungs
    안되면 될 때까지

    티스토리툴바