다른 호스트에 로그인( 사용 ssh
)하고 새 탭을 열 때( CTRL+ Shift+ 누르기 T). 원격 호스트의 현재 작업 디렉터리와 관계없이 현재 작업 디렉터리를 내 집의 특정 디렉터리로 설정합니다.
- 그렇다면 이 행동의 원인은 무엇입니까?
- 어떻게 바꿀 수 있나요?
저는 레드햇을 사용하고 있습니다.
답변1
Ctrl+ 를 Shift누르면 Gnome TTerminal은 이 탭에서 실행 중인 프로세스의 현재 디렉터리를 보고 해당 디렉터리로 전환하여 새 탭에서 프로세스를 실행합니다.
bash
이미 셸을 실행 중이고 해당 bash 인스턴스에 있는 Gnome 터미널 탭을 입력한 경우 /directory1
++를 누르면 에 있는 셸이 있는 새 탭이 시작됩니다. Gnome 터미널은 하위 프로세스가 아닌 하위 프로세스의 현재 디렉터리만 살펴봅니다. (이것이 실제로 유일하게 합리적인 방법입니다. 어떤 자손을 선택할지 어떻게 결정할까요?)cd /directory2
CtrlShiftT/directory1
Gnome 터미널은 다른 시스템에서 열린 쉘을 실행할 때 항상 수행하는 작업을 수행합니다 ssh
. 새 탭을 열면 명령을 실행한 쉘의 디렉토리에서 탭이 시작됩니다 ssh
.
Gnome-terminal은 다른 시스템의 현재 디렉토리를 알 수 있는 방법이 없습니다. 이를 위해서는 SSH 및 원격 셸과의 긴밀한 통합이 필요합니다. 나는 그것이 불가능하다고 말하는 것이 아닙니다 - Emacs도보 여행가원격 쉘에서 프롬프트를 구문 분석하여 원격 디렉토리를 찾으십시오. 그러나 복잡성, 신뢰성 및 유연성이 저하됩니다. Gnome-terminal은 원하는 작업을 수행할 수 있는 터미널을 제공합니다. TRAMP는 SSH 연결을 제어하고 원격 셸의 임의 동작을 처리하지 않습니다.
중요한 개발 작업을 수행하지 않고는 이를 변경할 수 없습니다. Emacs를 터미널 에뮬레이터로 사용할 수 있습니다(물론 Emacs는 Gnome 터미널을 직접 대체하는 것과는 거리가 멀기 때문에 다른 습관을 길러야 합니다). 원격 컴퓨터에서 해야 할 일이 프로그램을 실행하는 것이 아니라 파일을 조작하는 것뿐이라면 파일을 다음 위치에 마운트할 수 있습니다.SSHFS, 그런 다음 로컬 쉘을 실행하면 원하는 현재 디렉토리 추적을 얻을 수 있습니다. 그러나 동일한 원격 디렉터리에 새 탭을 만드는 가장 쉬운 방법은 새 탭을 만들고 동일한 ssh
명령을 실행한 다음 원격 경로를 복사하여 붙여넣는 것입니다.