OS

[Linux Command Line] environment variables, alias(환경 변수와 에일리어스)

ride-dev 2024. 1. 9. 23:17

The Environment 쉘 환경

쉘은 쉘 세션 동안 환경이라고 알려진 일련의 정보를 유지 및 관리합니다.

환경은 아래와 같은 속성을 정의하는 일련의 키-값 쌍입니다.

  • 사용자 홈디렉토리
  • 사용자 작업 디렉토리
  • 쉘 이름
  • 로그인 사용자 이름
  • ...

등 많은 정보를 저장하며, 쉘 세션마다 환경이 다릅니다.

printenv

printenv명령어를 통해 환경을 구성하는 키-값 쌍을 볼 수 있습니다.

printenv
printenv | less

Parameter Expansion 매개변수 확장

$

환경변수의 키 앞에 $를 붙이면 쉘에서 환경변수의 값을 대체할 수 있습니다.

존재하지 않는 변수를 참조하려고 시도하면 아무것도 얻을 수 없습니다.

존재하지 않는 변수를 참조하려고 시도하면 아무것도 얻을 수 없습니다.

Defining Variables 변수 정의

아래와 같은 형식으로 현재 쉘 세션에 쉘 변수를 정의할 수 있습니다.

 

(대소문자를 구분합니다)

(환경변수와 다릅니다, 하나의 쉘 세션에서만, 부모 세션에서만 존재합니다)

variable=value
variable="v  a  l  u  e"

아래와 같은 형식으로 환경변수를 정의할 수 있습니다.

(모든 하위 세션에 생성됩니다, 새로운 창에선 볼 수 없습니다)

export variable=value

업데이트를 하는 방법은 변수를 선언할 때와 동일합니다.

스타트업 파일

스타트업 파일은 세션을 시작할 때, 쉘이 읽는 데 사용되는 파일입니다.

쉘은 먼저 글로벌 설정(global config) 스타트업 파일을 읽고, 유저별 스타트업 파일을 읽습니다.

 

스타트업 파일은 세션에 영향을 줄 수 있습니다.

세션은 로그인, 비 로그인 쉘 세션으로 나뉩니다.

For non-login sessions 비로그인 세션(일반적으로 terminal 실행 시 세션)

etc/bash.bashrc - 글로벌 설정으로, 모든 사용자에게 영향을 줍니다.

~/.bashrc - 각각의 사용자별 설정이 가능합니다. 홈 디렉토리의 모든 사용자는 .bashrc를 가지고 있습니다.

(쉘을 맞춤화하고, PS1으로 프롬프트 설정을 하거나 맞춤형 에일리어스, 변수를 설정할 수 있습니다)

For login sessions 로그인 세션(로그인이 이후의 세션)

/etc/profile -global config for all users

~/.bash_profile -user's personal config file

~/.bash_login -read if bash_profile isn't  found

~/.profile -used if previous two aren't found

Aliases 에일리어스

alias를 통해 기존 커맨드를 사용하고 그 위에 빌드하거나 결합하는 자체 맞춤형 커맨드를 정의할 수 있습니다.

에일리어스는 일종의 바로가기입니다.

alias ll='ls -al'

~/.bashrc 에 에일리어스 항목은 아래와 같습니다.

아래와 같이 에일리어스를 정의할 수 있습니다.

(어디에 정의하든 상관 없으나, 모아 두는 것을 권장합니다)

세션을 재부팅하면, 정의한 명령어가 실행되는 것을 확인할 수 있습니다.

에일리어스를 .bashrc에 입력할 수 있지만, 다른 파일에 모아둘 수도 있습니다.

.bash_aliases 파일을 생성하고 그 곳에 에일리어스를 모아둘 수 있습니다.

이를 통해, 나만의 에일리어스를 만들고 관리할 수 있습니다.

다른 사람들이 만든 alias를 찾아보면 유용한 것들이 아주 많습니다.

다만, 기존의 명령어를 수정하고 사용하는 것에 익숙해져 있을 때,

새로운 환경에선 명령어가 다르게 작동할 수 있다는 것을 명심해야 합니다.

예컨대 alias c='clear' 로 설정한 환경이 있을 수 있고, alias c='xsel --clipboard' 로 설정한 환경이 있을 수 있습니다.

알고 사용하면 편리하지만, 모르고 사용하면 위험할 수 있으므로 주의할 필요가 있습니다.

 

(아래는 몇가지 alias에 대한 게시글입니다)

https://ride-dev.tistory.com/75

 

[Aliases] Useful bash aliases, 유용한 bash 에일리어스

# Set up 'rm' alias with interactive prompt and preserve root directory alias rm='rm -I --preserve-root' # Shortcuts for navigating directories alias ..='cd ..' # Navigate up one directory alias ...='cd ../..' # Navigate up two directories alias ....='cd .

ride-dev.tistory.com

 

728x90

'OS' 카테고리의 다른 글

[Linux Command Line] Cron 크론  (0) 2024.01.12
[Linux Command Line] Bash Scripts 배쉬 스크립트  (0) 2024.01.11
[Linux Command Line] 권한 변경  (0) 2024.01.08
[Linux Command Line] 권한 기초  (2) 2024.01.08
[Linux Command Line] grep  (1) 2024.01.05