비 로그인 쉘의 설정은 .bashrc
파일 로 가고 로그인 쉘 설정은 .profile
파일 로 간다고 합니다.
실제로 로그인 및 비 로그인 쉘은 무엇을 의미합니까?
기술 전문 용어를 최대한 사용하지 말고 설명하십시오.
답변
간단히 말해서 :
- 쉘이나 터미널을 열거 나 (또는 스위치로 전환) 프롬프트가 표시되기 전에 로그인 (사용자 이름? 비밀번호?)을 요청하는 경우 로그인 쉘입니다.
- 그것이 gnome-terminal 과 같지 않고 바로 사용할 수 있다면, 그것은 비 로그인 쉘입니다.
Ubuntu Desktop의 일반 사용자 인 경우 유일한 로그인 쉘은 … 데스크톱입니다 (암호를 입력하려면 오른쪽에 입력하십시오). 글쎄, 기술적으로 GUI를 시작하는 로그인 쉘이지만 전문 용어가 들어갑니다. 그리고 네, 설정을 읽습니다..profile
데스크탑에 문제가 있고 + + 바로 가기 를 사용하여 가상 터미널로 전환하는 경우 (정상 사용자) 로그인 쉘 처럼 보이는 로그인 쉘을 볼 수있는 유일한 시간입니다 .CtrlAltF1
로그인 쉘을 갖는 다른 일반적인 경우는 다음과 같습니다.
- 를 통해 원격으로 컴퓨터에 액세스
ssh
(또는로 로컬로 연결ssh localhost
) bash -l
(또는sh -l
) 로 초기 로그인 쉘 시뮬레이션- 초기
root
로그인 쉘 시뮬레이션sudo -i
- 또는 다른 비 사용자 용
sudo -u username -i
root
- 또는 다른 비 사용자 용
- 다른 비로서 인증
root
과 사용자 (및 그 암호)su - username
sudo login
명령을 사용하여 사용자 전환
답변
나는 생각하지 않습니다 올바른 대답은 “기술적 인 전문 용어”없이 부여 할 수 있습니다. 이 질문은 “로그인 쉘이란 무엇입니까?”라는 쿼리에 대해 Google에서 처음 나타나는 질문이므로 아래에보다 정확한 답변을 제공하고 있습니다.
로그인 쉘은 단순히 로그인 쉘이라고하는 쉘입니다. 일반적으로 로그인하는 응용 프로그램이 쉘에 로그인 쉘이 시작된다고 알려주는 것은 아니지만 로그인 후 팝업되는 쉘을 의미 하지는 않습니다 . 쉘에게 로그인 방법을 알려주는 방법은 다음과 같습니다.
- 그것을 알고 있다고 가정
-l
하거나--login
인수를 실행 하면 (알지 못하는 쉘은 알지-l
못하지만--login
일부 쉘에서만 지원됩니다). - 로
argv[0]
설정된 쉘 실행-{some_string}
(예 : HYPHEN-MINUS가 보통argv[0]
또는 다른 문자열 앞에 추가됨 ). 이것은 ssh와 su 가하는 일입니다 : su는-su
asargv[0]
(argv[0]
현재 실행중인 실행 파일 이름과 관련이 있다고 생각하는 모든 사람들에게 안녕하세요)로 실행 파일을 실행하고, ssh는-zsh
사용자가/bin/zsh
쉘로 설정했을 때 zsh를 실행 합니다.
쉘의 로지스틱스는 암호를 요구하거나 다른 인증 절차를 수행하는 사람과는 전혀 관련이 없습니다. ssh 또는 login (또는 urxvt와 같은 일부 터미널 에뮬레이터)과 같은 일부 프로그램 argv[0]
은 HYPHEN-MINUS로 시작 하는 로그인 프로그램으로 쉘을 실행 합니다. su 또는 sudo (또는 zsh :의 -
PRECOMMAND MODIFIERS 섹션에 설명 된 사전 명령 수정 자 참조)와 같은 일부 man zshmisc
는 기본적으로이를 수행하지 않지만 그렇게 할 수 있습니다. 일부는 쉘에게 인자 (즉, bash -l
)를 사용하여 로그인하는 것을 쉘에게 알려주는 유일한 옵션을 가지고 있습니다 : ssh with command argument (명명하게 ssh에게 원격 끝에서 실행할 것을 알려줍니다).
일반적으로 먼저 셸을 호출하는 데 사용되는 프로그램의 설명서를 참조하여 셸이 로그인인지 여부를 확인하고 두 번째로 앱이 로그인 셸을 시작할지 여부를 결정하는 테스트를 수행하는 echo
것이 .profile
좋습니다 (예 :에 추가 ).