Puoi copiare temporaneamente il tuo .bashrc
alla tua macchina remota con un altro nome. Ad esempio, utilizzando .bashrc_temp
:
[email protected]$ scp .bashrc [email protected]:~/.bashrc_temp
Successivamente puoi accedere al computer remoto:
[email protected]$ ssh [email protected]
e source
il file .bashrc_temp
:
[email protected]$ source ~/.bashrc_temp
Ora puoi usare il tuo .bashrc
e le tue funzioni Quando hai finito con il tuo lavoro puoi rimuovere il file ~/.bashrc_temp sul computer remoto e disconnetterti.
La copia del file e l'accesso alla macchina remota possono essere ottenuti con una funzione bash:
# copy the .bashrc to the remote machine
# and log into the remote machine.
# parameter $1: [email protected]
function s() {
scp ~/.bashrc $1:~/.bashrc_temp
ssh $1
}
Aggiorna :
Puoi anche considerare di copiare il .bashrc
a /tmp
sulla tua macchina remota e sorgente /tmp/.bashrc_temp
.
Aggiornamento 2 :
Puoi accedere alla macchina remota usando ssh -t. Questo utilizzerà automaticamente il tuo temp .bashrc
. Funzione aggiornata s()
:
function s() {
scp ~/.bashrc $1:/tmp/.bashrc_temp
ssh -t $1 "bash --rcfile /tmp/.bashrc_temp ; rm /tmp/.bashrc_temp"
}
jens-na ha fornito una risposta eccellente. Ho passato un po 'di tempo e l'ho rielaborato un po' per funzionare un po' meglio. In questo modo, puoi passare qualsiasi parametro a SSH, come i numeri di porta. La differenza è che usa il ssh
comando per caricare il .bashrc
file, invece di scp
, che utilizza nomi di parametri di comando diversi.
Noterai anche che carica un file diverso, .bashrc_remote
, in modo che tu possa selezionare esattamente ciò che vuoi trovare su server remoti, invece di tutto
sshs() {
ssh [email protected] "cat > /tmp/.bashrc_temp" < ~/.bashrc_remote
ssh -t [email protected] "bash --rcfile /tmp/.bashrc_temp ; rm /tmp/.bashrc_temp"
}
Eseguilo come segue:
sshs [email protected]
Il nome 'sshs
' sta per "Fonte SSH". Usa ssh
quando non vuoi la fonte, e usa sshs
quando lo fai.
https://gist.github.com/jonahbron/5549848
Penso che sshrc sia quello che stai cercando:https://github.com/Russell91/sshrc
sshrc funziona proprio come ssh, ma genera anche ~/.sshrc dopo l'accesso remoto.
$ echo "echo welcome" > ~/.sshrc
$ sshrc [email protected]
welcome
$ echo "alias ..='cd ..'" > ~/.sshrc
$ sshrc [email protected]
$ type ..
.. is aliased to `cd ..'
Puoi usarlo per impostare variabili di ambiente, definire funzioni ed eseguire comandi post-accesso. È così semplice e non avrà alcun impatto sugli altri utenti sul server, anche se usano anche sshrc. Per una configurazione più avanzata, continua a leggere.