본문 바로가기
Linux 2급

리눅스 지역변수,전역변수,알리아스 (Alias)

by 방뭉밍봉 2023. 11. 2.

리눅스에는 다른 프로그래밍 언어와 같이 변수 설정이 가능합니다 이 변수 설정은 리눅스를 사용하는데 굉장히 편안한 기능들이라고 할 수 있어요 말은 그만하고 바로 알아봅시다.

변수?

프로그래밍 언어에서 사용하셧던 그 변수가 맞습니다

어떠한 변수 명의 값을 대입해서 우리가 편하게 사용할 수 있게 만들어주는 역할을 하죠

[shell] 환경 변수

지역 환경 변수

전역 환경 변수

리눅스의 변수는 크게 두 가지로 나눌 수 있습니다

변수를 등록한 사용자만 사용할 수 있는 지역 환경 변수

(변수를 등록할 시 변수를 생성한 해당 계정의 홈 디렉터리에 숨겨진 bashrc라는 파일에 저장) -> /.bashrc

1) 지역 환경 변수

확인: #> set (지역, 전역 변수 확인)

생성: #> [변수 이름]=[데이터]

사용: $[변수 이름]

해제: #> unset [변수 이름]

set 명령어로 확인해보면 지금 사용하고 있는 root 계정의 설정된 변수들을 전부 볼 수 있습니다

간단하게 clear 명령어를 변수로 등록하여 사용해 봅시다

(clear 명령어는 지저분한 화면을 정리해주는 기능입니다 안 쓰시는 분 혹시 없겠죠..?)

c라는 변수명에 clear를 넣어주었습니다

이렇게 등록한 변수들을 사용할 때는 "$"를 앞에 붙여줘야 사용이 됩니다 저렇게 $c를 사용하면 우리가 아까 등록한 clear 명령어가 실행됩니다

깔------끔

ls -la 리스트를 출력할 때 -la 옵션 붙이기 귀찮다면 이 또한 변수로 만들어 버리면 간단하게 사용할 수 있습니다만! 다 만!

리눅스 문법에서는 띄어쓰기도 하나의 문자로 보기 때문에 띄어쓰기가 들어간 변수를 지정할 때에는 "" 큰따옴표를 사용하셔야 합니다

 

이런 식으로 말입니다 lla = "ls -la" 하는데 오류가 뜬 걸 볼 수 있습니다 그건 = 양쪽에 띄어쓰기를 사용해서 그런 겁니다 변수와 값 사이에는 띄어쓰기가 필요 없습니다

그리고 ls -la 같은 변수를 저장할 땐 "" 큰따옴표가 사용된 걸 볼 수 있죠 이런 식으로 변수를 지정해주면

이와 같이 $lla로 ls -la 명령어를 대신하는 걸 볼 수 있습니다.

이렇게 PATH 경로를 변수에 저장하여 사용할 수도 있습니다.

 

그리고 이렇게 우리가 등록한 변수들은 set 명령어를 사용하면 확인할 수 있습니다

echo $[변수] 로 사용하면 해당 변수값만 출력해 올 수도 있습니다

모든 사용자가 같이 사용할 수 있는 전역 환경 변수

2) 전역 환경 변수

확인 #>set (지역, 전역 둘 다 확인)

확인 #>env (전역변수 확인)

생성 #>export [변수 이름]

#>export [변수 이름]=[데이터]

우리가 위에서 설정했던 지역변수들은 말 그대로 "지역"변수입니다 변수를 등록한 해당 지역(사용자)만 사용할 수 있습니다 하지만 이 전역변수를 사용하면 사용자가 바뀌어도 등록한 변수를 사용할 수 있습니다.

su ming 명령어를 통하여 ming 사용자로 변경해봅시다 아까 등록한 $ensnet 명령어를 사용해보지만 echo 명령어로 확인했듯이 아무것도 들어있지 않습니다.

exit를 하여 root 계정으로 돌아온 후 아까 지역변수로 설정해뒀던 ensnet 을 unset 명령어로 해제한 뒤 ensnet 을 다시 전역 변수로 설정해 줍시다.

전역변수 설정은 지역변수 설정했던 거 앞에 export라는 구절을 붙여주시면 됩니다

다시 su ming로 돌아와서 echo $ensnet 변수를 사용해보면? 자자 잔~~

다른 계정으로 로그인해도 변수가 사용되는 걸 확인할 수 있습니다

 

https://www.snoopybox.co.kr/1721

 

 

 

(리눅스의 변수는 이런 식으로도 사용 가능합니다 이 외에도 여러 가지 많지만 다 쓰면 글이 너무너무 길어지기에 여기까지만 설명하겠습니다)

하지만 이러한 변수들은 로그인 중에만 적용이 되고 로그아웃 후 다시 로그인하면 설정한 변수들은 없어져 있습니다 나중에 로그인 후에도 사용할 수 있게 설정하려면

vi /etc/profile 파일을 설정해주면 됩니다

밑으로 쭉 내려와서 변수를 지정해주고 저장 후 나가서 재접속을 해도 ensnet이라는 변수를 사용할 수 있습니다.

3)알리아스(alias)

확인 #>alias (지역알리아스 확인)

생성 #>alias [변수 이름]=[명령어]

해제: #> unalias [변수 이름]

알리아스는 명령어들을 쉽고 간단한 조합으로 $를 붙이지 않고도 사용할 수 있는 복잡한 명령어와 옵션을 짧은 문자열로 바꿔주는 역할을 합니다 알리아스는 아래처럼

이런 식으로 사용할 수가 없습니다 딱 알리아스는 명령어와 옵션을 조합하여 정말 편하게 사용할 수 있게 만들어줬다고 생각하면 편합니다

우리는 보통 ls 라는 명령어를 사용할 때 ls만 사용하지 않고 -l 옵션을 붙여서 사용합니다

그래서 ll <-(LL)이라는 ls -l 명령어가 따로 있죠 이런 게 알리아스 입니다

이런 식으로 말이죠 이 알리아스는

alias [변수명]=[값]

으로 다른 변수 지정 명령어들과 같이 지정해주면 이 역시 재접속 후에는 사라지게 됩니다

이런 식으로 rm -rf로 변수를 지정해 봅시다 "" 큰따옴표는 값이 띄어쓰기가 존재하면 사용합니다

그러면 우리는 rm -rf 명령어를 -rf 옵션 없이 rm만으로 사용할 수 있게 됩니다

(지역,환경변수들과의 차이점은 알겠죠? $가 없어도 쓸 수 있습니다 기본 명령어처럼)

이 알리아스를 재접속 후에도 저장하고 싶다면 사용자의 홈 디렉터리에 숨김 파일. bashrc를 설정해주시면 됩니다

-a 옵션 -> 숨김 파일 보기

저기 alias 구절에 저런 식으로 똑같이 추가해주고 저장 후 나가면 재접속 후에도 알리아스가 저장됩니다

[환경 변수]

PS1 Prompt

\u 사용자이름

\h 호스트이름

\W 작업디렉터리 이름

\$ 사용자 레벨

USER 사용자 이름

HOME 사용자의 홈디렉터리 경로

SHELL 사용자의 Shell경로

SHLVL 쉘의 레벨(쉘의 중첩)

LANG 사용하는 언어

PATH 실행파일의 경로

HISTSIZE history의 크기

echo 명령어를 사용하여 root 계정의 환경변수를 확인하는 과정