리눅스 관련

리눅스 - 서브 셀에 대한 개념

낙산암 2024. 5. 17. 15:21

 

🟢 Shell의 종류

cat /etc/shells

 

 

 

🟢 로그인쉘과 서브쉘

 

 

 로그인 쉘 (login Shell)

리눅스를 로그인 할 때, 사용자를 선택하고 알맞게 패스워드를 입력하면 짠! 하고 로그인이 되지만 사실 그 뒤에는 여러가지 일들, 정확히 말하자면 여러 쉘 스크립트 파일(.sh)이 실행됩니다. 그렇다면 그 쉘 스크립트 파일은 혼자 돌아가는 것일까요? 아니죠! 일처리는 Shell이 한다고 했으니 쉘 스크립트 파일이 실행되려면 Shell이 필요합니다.

이제 로그인 쉘에 대해 정확한 느낌이 오실 것 같습니다. 로그인 쉘이란 로그인 처리에 필요한 파일들을 실행하는 Shell을 의미하게 되겠죠!

추가로 로그인이 실행하는 여러 쉘 스크립트 파일은 대부분 사용자 환경의 초기 세팅을 지정합니다. 그 과정에서 터미널에서 기본적으로 쓰게 되는 쉘 또한 로그인 쉘을 담당하는 쉘로 지정되게 됩니다.

◾서브 쉘 (sub Shell or non-login Shell)

그렇다면 서브 쉘이란 무엇일까요? 앞서 로그인 쉘은 사용자의 로그인을 처리해주는 쉘이며, 초기화 과정을 통해 터미널 기본 쉘로 지정된다고 했었습니다. 서브쉘은 기본 쉘 위에서 추가로 실행되는 쉘을 의미합니다. 서브쉘의 예를 몇가지 보겠습니다.

위의 사진은 기본 쉘인 bash Shell에서 sh Shell을 추가로 실행시킨 것입니다. 두 번째 줄에 $ 가 있는 것으로 보아 sh Shell이 명령을 기다리고 있는 것 같습니다.

위의 사진은 현재 계정에서 user1 이라는 계정으로 바꾸기 위한 명령어를 보여주고 있습니다. 이 과정 또한 로그인 과정이기 때문에 로그인 쉘(현재는 bash Shell)이 이 과정을 처리하기 위해 서브쉘로서 실행됩니다. 즉, 로그인 쉘 또한 서브 쉘로 등장할 수 있다는 이야기죠!

💡 서브 쉘의 특징

기본 쉘과 그 위에 실행된 서브 쉘은 어떤 면에서 부모-자식의 관계라고 볼 수 있습니다. 서브 쉘은 상위 쉘의 환경변수 를 사용할 수 있습니다.

 

 

https://velog.io/@skydreamer21/Shell-in-Linux