Yanıtlar:
Komutları gir ~/.bashrc
. Buradaki herhangi bir şey, her giriş yaptığınızda gerçekleştirilir.
Yalnızca ssh ile giriş yaparken çalıştırmak için komutlara ihtiyacınız varsa (ancak fiziksel olarak giriş yaparken), muhtemelen SSH_CONNECTION
ortam değişkeninin varlığını test edebilir ve sadece komutları bulursanız komutları çalıştırabilirsiniz.
Bunu tüm kullanıcılar için istiyorsanız, bunu ~ / .bashrc veya /etc/bash.bashrc dizinine koymanız yeterlidir:
if [[ -n $SSH_CONNECTION ]] ; then
echo "I'm logged in remotely"
fi
screen
istersem cevabınızı kullanabilir screen
ve yankı yerine oraya koyabilirim . Bununla ilgili sorun, ekran oturumunu bitirmenin oturumu kapatmak yerine SSH istemine geri dönmesidir. Sadece bu yorumu yazmak bana cevap verdi, yine de: logout
komuttan sonra komutu ekleyin screen
.
exec command
, yürüttüğünüz neyse o anki kabuğu değiştirir.
Alternatif olarak, aşağıdakilerin çalıştırılması sırasında çalıştırılacak bir komut belirleyebilirsiniz ssh
:
$ ssh -t server 'cmd; exec bash -l'
Listedeki son komut tercih ettiğiniz kabukta etkileşimli bir oturum başlatmalıdır. Çalıştırılacak çok fazla komutunuz varsa, SSH sunucunuzda bir komut dosyası oluşturmayı düşünün.
Aslında ~/.ssh/rc
komut eklemek için doğru yer
~/.ssh/rc
Commands in this file are executed by ssh when the user logs in,
just before the user’s shell (or command) is started. See the
sshd(8) manual page for more information.
İlk önce uzak ana bilgisayarda .bashrc komutunu çalıştırmak , daha sonra komut satırından geçireceğiniz komutları yürütün (bu, .bashrc sunucunuzda tanımlanmış takma adları ve işlevleri kullanabilecek), sonra sizi bir bash komutunda bırakın (varsayarak çalıştırdığınız komutlar, istemine geri döner):
$ ssh user@host "bash -lc cmd; cmd; ..."
-l seçeneği bir giriş kabuğu yapar (örneğin .bashrc komutunu çalıştır)
-c seçeneği açık komut bash çalışacak sağlar
man bash
) bölümünde okumalısınız .