대화식 쉘은 무엇을 의미합니까?


25

유닉스 : Kenneth H. Rosen et al.

쉘 이름을 명령으로 사용하여 로그인 한 후 다른 쉘을 시작할 수 있습니다. 예를 들어 Korn 쉘을 시작하려면 명령 프롬프트에서 ksh를 입력 할 수 있습니다. 이 유형의 쉘은 로그인 쉘이 아니며이를 사용하기 위해 다시 로그인 할 필요는 없지만 여전히 대화식 쉘이므로 쉘을 사용하는 것과 달리 명령을 입력하여 쉘과 상호 작용합니다. 20 장에서 설명한대로 스크립트를 실행하십시오. 그래픽 인터페이스를 사용할 때 터미널 창에서 실행되는 쉘의 인스턴스는 대화식 비 로그인 쉘입니다. 비 로그인 셸을 시작하면 .profile, .bash_profile 또는 .login 파일 (또는 .logout 파일)은 읽지 않지만 두 번째 셸 구성 파일 (예 : .bashrc)은 읽습니다. 이는의 변경 사항을 테스트 할 수 있음을 의미합니다.

나는 위의 줄을 겪고 ​​있었고 대화 형 쉘의 의미를 이해하지 못합니다. 터미널을 사용하는 경우 .profile을 읽을 수 없다는 것이 사실입니까?

게다가 bourne은 대화식 쉘이 아니라고 bash / csh는 대화식 쉘이라고 말할 때 무엇을 의미합니까?

답변:


27

대화식 쉘은 단순히 명령을 입력하고 해당 명령에서 출력을 얻는 데 사용하는 모든 쉘 프로세스입니다. 즉, 상호 작용하는 쉘입니다.

따라서 질문에 인용 한 발췌 부분에 설명 된대로 수동으로 시작하는 다른 셸과 마찬가지로 로그인 셸은 대화식입니다. 반대로 셸 스크립트를 실행하면 비 대화식 셸이 시작되어 스크립트에서 명령을 실행 한 다음 스크립트가 끝나면 종료됩니다.

Bourne 쉘은 bash또는 처럼 대화식 쉘로 사용될 수 있습니다 tcsh. 실제로 FreeBSD와 같은 많은 시스템 sh이 기본 사용자 쉘로 사용 됩니다. 현대 쉘 좋아 bash, zsh, tcsh, 등, 대화 형 (명령 기록, 완료 등)하기에 더욱 편안하고 편리하도록 Bourne 쉘이하지 않는 많은 기능을 보유하고 있습니다.

대화 형 비 로그인 쉘 (즉, 다른 쉘에서 수동으로 시작하거나 터미널 창을 열어서 시작한 쉘)은 사용자 .login또는 .profile파일을 읽지 않습니다 . 이들은 로그인 쉘 ( login시스템 프로세스 또는 X 디스플레이 관리자에 의해 시작된 쉘)에 의해서만 읽고 실행 되므로 포함 된 명령 및 설정은 로그인 세션 시작시 한 번만 적용됩니다. 따라서 터미널을 시작할 때 생성되는 쉘은 로그인 파일 ( .loginc 스타일 쉘, 본 .profile스타일 쉘)을 읽지 않지만 .cshrc, .bashrcetc 파일을 읽습니다 .


비 대화식 로그인 쉘로 쉘을 실행할 수 있습니다.
jw013

사실이지만 혼동 될 수 있습니다!
D_Bye

ksh는 또한 현대적인 쉘입니다 :-) www2.research.att.com/sw/download를 참조 하고 왼쪽 여백의 메뉴를 사용하여 AST-> ksh-> 개요로 이동하십시오. David Korn과 Glen Fowler가 1 년에 몇 차례 새 릴리스를 출시합니다. 모두에게 행운을 빕니다.
shellter

1
@ shellter-그렇습니다. 그러나 그것은 내가 사용해 본 적이 아니며 어딘가에서 껍질 열거를 중단해야했습니다! ;-)
D_Bye

당신이 말한 The Bourne shell can be used as an interactive shell, just like bash or tcsh. 것입니다하지 Bourne의이 같은 쉘 bash?
Mr.Web
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.