Bashrc alias o comando SSH para conectar e diretamente cd para um caminho definido

4

Eu tenho um alias que se conecta ao meu servidor de desenvolvimento:

alias sshDev='ssh -p 22 username@ip_address'

Gostaria de poder ligar e mudar automaticamente para um novo diretório:

cd ../my-favorite-directory

Existe alguma maneira de executar os dois comandos em um alias local?

    
por Eric Kean 15.10.2015 / 15:17

1 resposta

3

você pode alias o comando da seguinte forma:

alias sshDev="ssh -tp 22 username@ip_address 'cd /path/to/dir; bash'"

Como Arthur2e5 sugeriu a adição de parâmetros -il é conveniente

Parte relacionada

em man bash :

   -i        If the -i option is present, the shell is interactive.
   -l        Make bash act as if it had been invoked as a login shell (see INVOCATION below).

Se você deseja ter uma pasta de destino dinâmica (defina-a toda vez que chamar o alias), você terá que escrever uma função chamada pelo seu alias. Por exemplo:

alias sshDev=ssh·Dev

function ssh·Dev() {

  if [ "$#" -eq 0 ]; then
    fav_dir="/path/to/dir"
  else
    fav_dir=$1
  fi

  ssh -tp 22 username@ip_address "cd $fav_dir; bash"

}

Com este pequeno trecho de código, quando você chama (digita) o alias em sua linha de comando como segue: sshDev (sem parâmetros), ele usará o statical / path / to / dir definido na função, caso contrário se você chamar o alias assim, sshDev /one/other/path/to/dir usará o caminho fornecido na linha.

    
por 15.10.2015 / 15:23

Tags