BOX-IT/Linux

[Linux] C셸을 B셸로 바꾸는 방법

Buang 2022. 4. 22. 11:00
반응형

문제상황

umask를 입력했더니

0022로 나와야 할 것이

2로 나왔다. 

 

B셸을 C셸로 바꿔서 이런 거였다.

C셸을 B셸로 바꿔줘야 한다.


해결방법

chsh -s $(which bash)  <<b셸로 바꾸는 명령어어다.

                                    <<chsh는 쉘을 관리하는 명령어 chsh -s는 쉘을 변경하는 명령어, 

                                    << $(which bash)는 bash 경로를 출력값(?)으로 바꿔줘서

                                     << 즉 bash 결로로 쉘을 변경해달라가 된다.

echo $SHELL             <<입력해서 /bin/bash 나오면 잘 바뀐 거다.

                                <<SHELL이란 변수를 출력해줘란 뜻이다.


해결방법 해석

 

(1) chsh 

 

chsh 명령은 사용자의 로그인 shell 속성을 변경한다.

쉘 속성은 사용자가 시스템에 로그인한 후에 실행되는 초기 프로그램을 정의한다.

이 속성은 /etc/passwd 파일에 저장된다.

 

(2) chsh -s

 

지정하는 쉘을 앞으로 사용할 로그인 쉘로 바꿔준다.

s라는 인수는 쉘을 바꿔주는 인수다.

chsh는 쉘을 관리하는 인수다.

 

(3) $   <<echo $SHELL이라고 입력하면 변수의 값을 출력해 준다.

 

c언어에서 int a = 10;을 입력해서

a라는 변수를 선언했던 것처럼

리눅스에서도 변수를 선언할 수 있다.

 

리눅스에서 가령 a라는 변수를 선언하고 그 변수에 10이란 값을 저장했다고 하자.

이 변수에 있는 값을 알고 싶을 땐

echo $a라고 입력하면 된다.

그럼 10이 나온다.

 

마찬가지로 현재 리눅스에 있는

SHELL이라는 변수에 담긴 것을 보고 싶을 땐

echo $SHELL을 입력하면

/usr/bin/zsh이 출력된다.

즉 SHELL 변수는 /usr/bin/zsh로 정의되어 있다는 걸 알 수 있다.

 

만약에 내가

 

cd $SHELL

 

이라고 입력하면

 

/usr/bin/zsh

 

로 이동한 걸 알 수 있다.

 

 

(4) $() <<명령어의 실행 결과를 의미한다.

 

$(Command)쓰면, $(Command)는 명령어 Command의 실행 결과로 대치된다.

 

 

 

 

 

which

 

which는 특정 명령어의 위치를 찾아주는 명령어다.

가령 which find라고 입력하면

 

/bin/find

 

이렇게 find 명령어가 저장된 위치를 알려준다.

bin밑에 find란 명령어가 있다는 거다. 


참고 사이트

 

https://codingdog.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%89%98-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%99%80-%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B4%85%EC%8B%9C%EB%8B%A4

 

리눅스 쉘 스크립트 $와 $()에 대해 알아봅시다.

 oh my zsh를 셋팅하는 글들을 보면, 이상한 명령어들을 많이 쓴다는 것을 알 수 있습니다. 특히 $ 표시가 붙은 것들 말입니다. 이것들이 대체 무엇일까요? 간단하게 알아보겠습니다.  먼저, echo $SH

codingdog.tistory.com

 

 

반응형