Saya menggunakan perintah ProxyJump untuk sejumlah sesi ssh yang saya gunakan setiap hari, dan juga banyak beralih pengguna pada sesi ini dan harus mengetik exit
3 atau 4 kali berturut-turut tidak terlalu menyenangkan.
Saya mengetahui newline
+ ~
+ .
untuk mengakhiri sesi ssh, saya masih harus memeriksa apakah itu mengakhiri secara damai seperti sebuah keinginan exit
, tetapi bagaimana Anda keluar dari semua sesi di shell saat ini dengan satu perintah atau pintasan sehingga mengetik exit
3 atau 4 kali dalam kasus saya menjadi hal yang satu kali?
~.
cukup putuskan klien SSH Anda (itu berguna ketika jaringan telah menghilang, misalnya). Biasanya, daemon SSH akan mengenalinya dan memberi sinyal sesiSIGHUP
, jadi itu tidak sama dengan berhenti dari shell secara normal (tapi itu berguna jika Anda tidak bisa mendapatkan respon dari shell).Jawaban:
Ctrl- DAkan keluar dari shell dalam banyak kasus. Ini lebih cepat daripada mengetik
exit
Enter. Ini masih bukan perintah tunggal untuk mengakhiri semuanya, tetapi menahan Ctrldan memukul Dbeberapa kali lebih mudah dan lebih cepat. Tidak yakin seberapa berharganya ini untuk kasus penggunaan Anda.Dibahas secara rinci di sini .
sumber
rm
perintah dan kemudian tekan CTRL + D jika Anda tidak ingin menjalankannya. Saya tidak melihat perilaku ini di ksh.vi
binding input terminal.Mengetik
~.
sebenarnya bisa untuk menutup semua koneksi "bersarang" hingga yang terdalam.Itu melakukannya dengan keluar damai yang Anda inginkan selama semua shell Anda dikonfigurasi untuk menangani SIGHUP sebagai kematian anggun. Bash melakukannya secara default. Anda dapat dengan mudah memeriksa keluar secara damai untuk pengaturan Anda dengan misalnya melihat apakah
.bash_history
file sesi Anda yang lebih dalam mendapatkan pembaruan dengan benar setelah~.
, atau jika Anda mengatur bash-es Anda untuk tidak memperbarui .bash_history saat keluar maka Anda mungkin menetapkantrap
pada EXIT event (atau di Anda~/.bash_logout
) dengan perintah yang menulis sesuatu di suatu tempat dan kemudian lihat apakah itu dijalankan.Selain itu, saya tidak yakin apa yang Anda maksud dengan "keluar dari semua sesi di shell saat ini". Setiap bash interaktif hanya satu sesi, dan perintah yang Anda ketikkan selalu hanya untuk shell terdalam dari rantai ProxyJump. Jika Anda maksudkan "pekerjaan latar belakang di shell saat ini", bash mengirimkan SIGHUP ke semua pekerjaannya saat menerima SIGHUP oleh daemon ssh pada
~.
, oleh karena itu keluar seperti itu harus sepenuhnya damai jika mereka yang menjalankan pekerjaan bereaksi dengan benar terhadap SIGHUP.sumber