
.bashrc, .profile, .bash_profile 등 파일 간의 관계와 로그인/비로그인 셸, 대화형/비대화형 셸 등의 의미를 이해하려고 합니다.
제가 찾은 정보 하나하나가 너무 추상적이어서 구체적이고 실용적인 설명을 원했습니다.
그래서 제 질문은 (Ubuntu와 같은 Linux 시스템과 관련이 있습니다)
시스템이 시작되고 로그인할 때(그래픽 데스크탑 표시) 어떤 파일이 실행됩니까?
터미널 에뮬레이터가 열리면 어떤 파일이 실행됩니까?
텍스트 콘솔에 로그인할 때 실행되는 파일(Ctrl-Alt-Fn을 누른 후)
이 파일은 어떤 다른 이벤트에서 실행됩니까?
대화형 로그인 셸을 시작하는 방법은 무엇입니까?
비대화형 로그인 셸을 시작하는 방법은 무엇입니까?
대화형 비로그인 셸을 시작하는 방법은 무엇입니까?
비대화형 비로그인 쉘을 시작하는 방법은 무엇입니까?
몇 가지 질문에 자유롭게 답변해 주세요... 감사합니다...
답변1
먼저 Waltinator의 리뷰를 읽어보세요. 하지만 귀하의 질문 중 일부에 답변하려면(기술적 정확성보다 개념이 더 중요함)..
GUI에 로그인하면 일반 쉘 파일이 로드되지 않습니다. GUI에서 TUI(일반 텍스트) 셸이나 터미널 프로그램에 로그인하면 로드됩니다. 실제로 GUI 자체는 텍스트 인터페이스 대신 그래픽 인터페이스를 제공한다는 점을 제외하면 bash와 매우 유사한 쉘입니다. 또한 자체 구성 파일과 시작 파일도 있습니다.
로드되는 정확한 파일은 셸에 따라 다릅니다. 사용 중인 셸에 대한 설명서를 참조하세요.
찾다. GUI의 가상 터미널과 터미널 프로그램은 모두 동일한 경로를 사용합니다. 즉, 기본 로그인 쉘로 정의된 쉘(사용자 이름에 대해 /etc/passwd에 정의/구성됨)에 로그인하게 합니다.
실제로 거의 모든 질문이 동일합니다.
쉘의 임무는 다른 프로그램을 실행하는 것입니다. 이는 셸의 내부 프로그램(내부 명령), 셸의 명령 파일(DOS 배치 파일과 유사한 셸 스크립트) 또는 시스템에 설치된 기타 응용 프로그램/프로그램(외부 프로그램)일 수 있습니다. 또한 다양한 모드에서 실행될 수 있습니다. 대화형 모드는 명령 프롬프트를 표시하고 사용자가 명령을 입력할 때까지 기다립니다. 비대화형 모드는 셸이 시작될 때 실행할 셸 스크립트를 가져오고 사용자가 입력하는 대신 스크립트에서 명령을 가져오는 것을 의미합니다.
이해해야 할 또 다른 중요한 점은 un*x 시스템에서 쉘을 프로그래밍하는 것은 마치 지구 반대편에서 인터넷을 통해 쉘에 명령을 보내는 것과 거의 같다는 것입니다. 컴퓨터 앞에 앉아 있더라도 로그인 세션은 마치 네트워크를 통한 것처럼 처리됩니다. 그렇기 때문에 터미널, 콘솔, 네트워크, ssh/telnet, TUI/GUI, 직렬 또는 상상할 수 있는 모든 종류의 로그인이든 항상 동일하게 작동합니다. 어쩌면 언젠가 우리는 텔레파시 로그인을 할 수도 있겠지만, 쉘은 여전히 일반 로그인처럼 작동하고 지금처럼 작동할 것입니다.
"비로그인" 쉘에 대한 마지막 참고 사항도 동일합니다. 귀하의 경우 유일한 차이점은~에서이미 로그인되어 있으므로 다시 로그인할 필요가 없습니다(사용자 이름과 비밀번호를 입력하세요).
물론 기술적인 세부 사항 중 많은 부분이 조금씩 다르며 명백하고 미묘한 부작용과 의미를 갖습니다. 그러나 여기서는 실제로 셸 작동 방식에 대해 더 자세히 설명하는 리소스와 웹사이트를 웹에서 검색해야 하는 곳입니다.