Kadang-kadang saya secara tidak sengaja keluar dari sesi Terminal (biasanya karena saya pikir saya terhubung ke sistem jarak jauh, ketika saya tidak), jadi saya sampai ke titik ini:
Bagaimana saya bisa memulai kembali sesi pada saat ini? Saya tidak ingin menutup jendela atau tab karena saya memiliki banyak tab yang disiapkan untuk alur kerja normal saya, jadi saya hanya ingin sesi di tab saat ini berjalan lagi (yaitu kembali ke bash prompt).
Satu-satunya solusi yang saya temukan sejauh ini adalah keluar dari Terminal sepenuhnya dan membukanya lagi, tetapi itu jauh dari ideal karena jelas mengganggu apa pun yang saya lakukan di jendela / tab Terminal lainnya.
^t 8
misalnya) untuk konteks tertentu, alih-alih menghitung secara visual tab mana yang akan diklik atau (atau berapa banyak ctrl-pgup yang dipukul) .cd
diedit ke kode sumber ketika saya sedang mengerjakan kode, sehingga cocok dengan penggunaan Anda.ssh
suatu tempat. Saya baru saja terbiasa menggunakan layar, dan menggunakannya secara lokal maupun pada sesi jarak jauh. Seperti yang saya pahami, jika Anda belum memilikiscreen
memori otot, pelajari tmux karena layarnya sudah tua dan kasar. Saya mungkin bisa beralih ketmux
dan mengkonfigurasi untuk menggunakan semua keybinds yang sama seperti yang saya gunakanscreen
, tetapi layar masih berfungsi dengan baik untuk saya.Jawaban:
Pada titik ini, tidak ada cara untuk mendapatkan kembali tab. Sesi terminal ditutup, dan tidak lagi memiliki TTY. Tidak ada cara untuk referensi tab untuk melakukan sesuatu yang pintar. Saya sarankan menambahkan fungsi ini ke .bashrc atau .profile Anda sehingga Anda tidak akan memiliki masalah di masa depan:
atau, bagi kita yang menggunakan Z Shell (tambahkan ke .zshrc Anda):
Ini adalah penghalang kecil yang bagus antara Anda dan perintah keluar yang menjengkelkan! Tuhan tahu saya telah melakukan hal yang sama berkali-kali di masa lalu.
sumber
-t 5
opsi), perintah baca akan gagal, yang memicu perintah keluar mengikutinya.exit
jika Anda menggunakan Bash. Anda dapat memasukkan skrip Anda~/.bash_logout
..bash_logout
?logout
dan menetapkanIGNOREEOF
lebih dari 1 (atau rebind ^ D).Skrip William T Froggard tidak melakukan apa yang saya butuhkan, karena umumnya satu-satunya cara saya masuk ke situasi ini adalah melalui ^ D ( ctrl+ D), dan mendefinisikan ulang
exit
tidak melakukan apa pun untuk situasi itu. Bagi saya, saran pengaturan Dennis WilliamsonIGNOREEOF
sudah cukup. Saya baru saja menambahkan:ke
~/.bashrc
file saya dan sekarang (jika saya di shell tingkat atas dan akan keluar dari terminal) ^ D pertama menghasilkan respons:Jika saya mengetik ^ D lagi dengan segera, shell keluar, jadi keluar ketika saya inginkan masih mudah, tapi sekarang satu ^ D akan memberi saya peringatan. (Jika mau, Anda dapat mengatur
IGNOREEOF
ke nomor yang lebih tinggi untuk meminta ^ ^ berturut-turut tambahan.)Juga membantu, jika saya berada di sub-shell, ^ D pertama menghasilkan respons:
Sekali lagi, ^ D tambahan akan mengeluarkan saya, dan sekarang saya dapat membedakan antara keluar dari sub-shell dan keluar dari shell tingkat atas.
sumber