Hentikan eksekusi otomatis terminal saat menempelkan perintah


27

Benar, ini adalah fitur yang sedikit menjengkelkan karena sesuatu ini terjadi, dan kadang-kadang tidak, sangat aneh.

Saya menempelkan perintah ke terminal dengan maksud untuk mengubah argumennya, dan kadang - kadang mengeksekusi saat saya menempelkannya. Terkadang tidak.

Mulai dari memalukan (memposting komentar tidak masuk akal di IRC) ke berbahaya.

Bagaimana saya bisa mematikan fitur ini untuk selamanya? Saya tidak pernah, tidak pernah, tidak ingin terminal dieksekusi secara otomatis ketika saya menempelkannya.


mungkin menarik - bbs.archlinux.org/viewtopic.php?id=95548 , juga orang telah melakukan eksploitasi dengan menyembunyikan konten ke dalam salinan / rekatkan reddit.com/r/linux/comments/1bv54e/…
Mateo

1
Wow, fitur harus dibangun di Ubuntu untuk menghentikan ini. Kapan Anda ingin menempelkan carriage return ke terminal?
Starkers

salah satu perbaikan akan menggunakan sesuatu seperti oh-my-zshatau penggantian terminal lainnya.
Pramesh Bajracharya

Jawaban:


28

Tidak ada eksekusi otomatis. Anda mungkin juga menyalin jeda baris (atau lebih) setelah perintah.

Jika Anda menempelkan perintah dengan istirahat, shell (baris perintah) berpikir bahwa Anda menekan tombol istirahat (Enter, Kembali) sendiri.


Jawaban ini hanya menjelaskan mengapa OP mendapatkan perilaku yang tidak diinginkan. Namun, dalam jawaban lain, ada solusi nyata untuk masalah OP.


5
Benar, tetapi pertanyaannya adalah bagaimana cara menghentikannya jika memungkinkan :)
Pawel Cioch

1
Perbaikan untuk Putty setidaknya serverfault.com/questions/731022/…
Pawel Cioch

13

Salah satu solusi nyata adalah membuka mode pengeditan dengan ctrl-x ctrl-edan kemudian menempelkan clipboard Anda dengan aman ke editor pilihan Anda (umumnya emacs atau vim). Setelah Anda selesai mengedit perintah, simpan dan keluar dan itu akan berjalan di baris perintah. Ini adalah kebiasaan yang baik untuk perintah yang panjang atau rumit, terutama ketika menempelkan hash ke perintah git, dan dapat membantu Anda menghindari beberapa hasil yang menakutkan dalam jangka panjang.

Editor dapat diubah dengan mengatur variabel VISUAL dan EDITOR (ini memiliki arti yang berbeda, lihat di sini ).


wow, selalu ada sesuatu untuk dipelajari setelah puluhan tahun menggunakan linux :) terima kasih, ini adalah satu-satunya jawaban yang benar-benar menyelesaikan masalah
törzsmókus

Kedengarannya seperti itu mungkin bekerja untuk terminal linux nyata, tetapi sayangnya ini tidak membantu bagi pengguna Putty. Ada alternatif lain?
Codesmith

1
@Codesmith Saya percaya bahwa komentar Pawel Chioch pada jawaban yang diterima dapat membantu Anda: serverfault.com/questions/731022/…
borrascador

1
Poin bagus @borrascador! Tidak yakin bagaimana saya melewatkan itu. Terima kasih! :)
Codesmith

5

Sebelum menempelkan, ketikkan # lalu tempel baris Anda. Itu tidak akan dijalankan dan Anda dapat menghapus # dan tekan enter ketika modifikasi telah selesai.


Anda juga bisa menggunakan trueAKA :, yang pada dasarnya adalah perintah no-op.
wjandrea

1
@WJAndrea Saya akan mengatakan ini kurang disarankan karena akan mengalahkan status keluar ( $?) ... truetidak benar-benar gagal, ia mengembalikan status keluar 0. Komentar, di sisi lain, sepenuhnya diabaikan dan karena itu tidak akan ubah $?.
brhfl

4
ini hanya akan menghentikan baris pertama dari eksekusi. jika OP menempelkan teks dengan setidaknya dua jeda baris, mereka dikacaukan lagi.
törzsmókus
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.