Hyperskill - 컴퓨터 CS 및 영어 독해/Introduction to Docker

Variables and aliases - 변수와 별명(별칭)

코딩크리처 2024. 8. 2. 21:27

hyperskill - Variables and aliases 영어 원문

당신은 아마도 shell(쉘 or 셸) 과 관련된 환경에 대한 무언가를 들어 봤을 겁니다.

그래요, 이건 shell 이 서로 다른 프로그램들과 작업하는 데 도와주는 몇 가지 특정 데이터 뭉치입니다.

오늘은 변수와 별칭과 같은 환경의 일부들을 탐색 해 봅시다.

이러한 환경의 일부는 많은 UNIX 쉘에 흔하며, 당신의 취향에 맞게 사용자화할 수 있습니다.


Shell variables - 쉘 변수


모든 프로그래밍 언어들에 있는 변수들과 비슷하게,

shell variable(쉘 변수) 또한 몇 가지 정보/값 을 저장하는 컨테이너처럼 표현될 수 있습니다.

이러한 값들은 시스템의 액션을 조정하기 위한 쉘 내부의 프로그램으로 사용됩니다.

Bash(배쉬 or 배시) 는 에 기본적으로 할당된 많은 쉘 변수들을 사용합니다.

예를 들어, HOME 변수는 현재 유저의 홈 디렉토리로 채워져 있습니다.

HOME 변수는 cd 명령어만 사용 시 기본으로 사용되며,

또한 ~ 표시 도 HOME 과 동일한 파일 경로를 가지고 있습니다.

echo 명령어를 사용하여 변수 내부에 무엇이 있는 지 보고,

변수 이름 앞에 $ 표시를 붙여서 변수의 내용을 봅시다 :

$ echo $HOME

/home/<user name>

# macOs 의 경우
/Users/<user name>

현재 쉘에서의 새로운 쉘로 수출된 쉘 변수들의 하위 집합은 environment variables(환경 변수) 라고 부릅니다.

해석 :

현재 쉘에서 새로운 쉘을 만들었다. 그 과정에서, 현재 쉘의 변수 중 일부를 새로운 쉘로 내보낸다.

이렇게 내보내진 변수들을 환경 변수 라고 부른다.

export 명령어를 사용해서 모든 변수들을 환경 변수로 변환할 수 있습니다 :

export VARIABLE

당신은 밑의 명령어를 통해 쉘 변수들의 리스트를 볼 수 있습니다 :

set | less

| lessset 명령어를 통해 터미널에 길게 출력되는 과정 대신,

터미널에서 vim 과 같이 보고, 이동할 수 있는 수단을 제공한다.

읽기 모드에서 나가고 싶다면, q 를 입력하면 된다.

Result :

'!'=3152
'#'=0
'$'=3133
'*'=(  )
-=569JNRXghikls
0=/bin/zsh
'?'=0
@=(  )
ARGC=0
BG
CDPATH=''
COLUMNS=162
COMMAND_MODE=unix2003
.... 몇십개가 더 있음.
read 모드에서 나가고 싶다면, 영어로 q 를 입력하면 된다.

또한, 당신은 밑의 명령어를 사용하여 환경 변수들의 리스트를 볼 수 있습니다 :

printenv | less

Result :

SHELL=/bin/zsh
TERM=xterm-256color
USER=gongdamhyeong
등등...

이제, 에서 변수를 생성하는 법에 대해서 살펴 보겠습니다 :

$ MY_VARIABLE="some value"

$ echo $MY_VARIABLE

some value

당신이 값을 설정 할 때, $ 표시는 필요 없으며, = 앞뒤에 공백은 없습니다.

또한, 이름은 문자, 숫자, 언더스코어(밑줄_) 로 구성할 수 있지만, 첫 번째 문자는 숫자로 시작 할 수 없습니다.


설정했던 값을 없애기 위해 unset 명령어를 사용하며, $ 표시는 없습니다.

한편, 명령어는 변수의 값을 참조할 겁니다.

작성자가 맥락을 약간 이상하게 사용했는데,

명령어에 변수 이름을 넣으면, 변수의 값을 참조 한다는 의미이며,

$ 표시 없이 unset 명령어를 통해 설정했던 변수를 제거한다는 의미이다.

$ unset MY_VARIABLE

위와 같은 방식으로 생성된 변수들은 오로지 현재 쉘에서만 사용 할 수 있습니다.

하지만,

/etc/profile 혹은 ~/.bashrc 혹은 ~/.bash_profile 과 같은 시작 파일에,

변수들을 저장할 수 있으므로, 당신이 매번 을 시작할 때 생성한 변수들을 사용 할 수 있습니다.


PATH of programs - 프로그램의 경로


반드시 알아야 할 변수들 중 하나는 PATH 입니다.

사실, 이는 프로그램이 탐색되는 디렉토리의 리스트입니다.

이는 주로 시작 파일들 중 하나에 저장됩니다.


만약 당신이 이 변수가 당신의 시스템에서 어떤 변수를 담고 있는지 살펴본다면,

이와 같은 것을 발견 할 수 있습니다 :

$ echo $PATH

PATH=/home/hagrid/.local/bin: /bin: /usr/bin: /usr/local/bin: /sbin: /usr/sbin: /usr/local/sbin

당신의 명령어 결과는 약간 다를 것이지만, 이는 배포판에 의존합니다.

윈도우, 맥, 리눅스 등등 서로 $PATH 의 결과는 다르다는 의미이다.


당신의 프로그램이 포함된 디렉토리를 PATH 에 추가 할 수 있으며,

그리고 나서 이와 같이 환경 변수로 내보낼 수 있습니다 :

PATH=$PATH:/path-to-your-directory
export PATH

당신이 이를 유지하고 싶다면, 시작 파일 중 하나에 위의 줄들을 넣어야 합니다.


Aliases - 별칭


Aliases(별칭) 은 편의성에 따라 정의 할 수 있는 명령어를 위한 단축키이거나, 바로가기입니다.

예를 들어, 명령어의 이름을 수정하거나,

많은 옵션들을 가지고 있는 명령어 대신 더 짧은 무언가를 입력 할 수 있습니다.


alias 명령어는 이와 같이 사용됩니다 :

alias name-of-alias='command'

=앞뒤에 공백은 없어야 한다는 것을 기억하고 조심하세요


rm 명령어에 대한 별칭을 설정함으로서, 항상 interactive 모드가 될 수 있게 해 줍시다 :

rm -i 는, 어떠한 파일 혹은 디렉토리를 삭제 할 때, 항상 사용자에게 물어본다.

alias rm="rm -i"

-f(force - 강제) 옵션은 -i(interactive - 상호작용) 옵션보다 더 우선조건이므로,

rm -rf / 는 당신에게 경고하지 않고 삭제한다는 것을 기억하세요!


미리 정의된 모든 별칭과 당신의 시스템에서 당신에 의해 별칭된 집합을 보기 위해서,

어떠한 전달 arguments 없이 alias 를 입력하세요.

$ alias

alias cp='cp -i'
alias df='df -h'
alias egrep='egrep --colour=auto'
alias fgrep='fgrep --colour=auto'
alias free='free -m'
alias grep='grep --colour=auto'
alias ls='ls --color=auto'
alias more='less'
alias np='nano -w PKGBUILD'
alias rm="rm -i"

환경에서 별칭을 지우기 위해서, unalias 명령어를 사용하세요 :

unalias rm

위에서 변수들을 저장했듯이, 변수에서, 만약 당신이 또다른 세션에서 사용하기 위해 별칭을 저장하고 싶다면,

당신의 시작 파일들 중 하나에 별칭을 저장하세요.


Conclusion - 결론


지금까지 배운 내용들을 요약 해 봅시다 :

  • 쉘과 환경 변수들은 별칭과 함께 환경의 중요한 부분입니다.
  • 쉘 변수들은 export 명령어로 환경 변수 중 하나가 될 수 있습니다.
  • 쉘에서 변수를 생성하기 위해 VARIABLE="value" 템플릿을 따르며,
    변수를 사용하기 위해서 변수의 이름 앞에 $ 표시를 입력하여 사용합니다. - $VARIABLE
  • $PATH 변수는 당신의 프로그램이 탐색되는 디렉토리들을 저장하며,
    새로운 디렉토리를 추가함으로서 업데이트됩니다.
  • aliases(별칭) 은 간단히, 편의를 위한 명령어들의 바로가기이며, alias 명령어로 설정됩니다.


words to remember


expressed : 표현하다, 표하다, 짜내다, 풍기다

synonyms : 바로가기, 동의어, 유의어, 이명,

shortcuts : 단축키, 지름길