Novo diretório de trabalho do terminal

1

Quando eu fizer login (usando ssh ) para outro host e abrir uma nova aba (pressionando CTRL + Deslocamento + T ). Ele define o diretório de trabalho atual para um diretório específico em minha casa, independente do diretório de trabalho atual no host remoto.

  • Então, qual pode ser a razão para esse comportamento?
  • E como posso alterá-lo?

Estou usando o RedHat.

    
por pointer 02.03.2016 / 11:37

1 resposta

1

Quando você pressiona Ctrl + Desloca + T , o Gnome-terminal examina o diretório atual do processo que está sendo executado nesta guia, e alterna para esse diretório para executar o processo na nova guia.

Observe que, se você digitar bash em uma guia do terminal Gnome que já esteja executando um shell e estiver em /directory1 , e executar cd /directory2 nessa instância do bash, pressione Ctrl + Shift + T lança uma nova aba com um shell em /directory1 . O Gnome-terminal apenas olha para o diretório atual do seu processo filho, não para seus descendentes. (Esse é o único caminho razoável, realmente: como ele decidiria qual descendente escolher?)

Quando você executa ssh para abrir um shell em outra máquina, o Gnome-terminal faz o que sempre faz: quando você abre uma nova guia, essa guia é iniciada no diretório do shell a partir do qual você executou a ssh comando.

O Gnome-terminal não tem como saber sobre o diretório atual em outra máquina. Para fazer isso, seria necessário uma integração muito strong com o SSH e com o shell remoto. Eu não estou dizendo que é impossível - o Tramp do Emacs analisa o prompt do shell remoto para descobrir o diretório remoto - mas tem um custo em complexidade, confiabilidade e flexibilidade. O terminal Gnome fornece um terminal e permite que você faça o que quiser nele; Tramp assume o controle da conexão SSH e não suporta o comportamento arbitrário do shell remoto.

Você não pode mudar isso sem fazer algum trabalho de desenvolvimento não trivial. Você poderia usar o Emacs como seu emulador de terminal (mas é claro que o Emacs está longe de ser um substituto para o Gnome-terminal, você precisaria pegar hábitos diferentes). Se tudo que você precisa fazer na máquina remota é manipular arquivos e não executar programas, você pode montar os arquivos em SSHFS , e você só estaria executando um shell local para obter o rastreamento de diretório atual desejado. Mas, de longe, a maneira mais simples de criar uma nova guia no mesmo diretório remoto é criar uma nova guia, executar o mesmo comando ssh e copiar e colar o caminho remoto.

    
por 03.03.2016 / 02:12