Zatrzymaj automatyczne uruchamianie terminala podczas wklejania polecenia

27

Racja, jest to nieco denerwująca funkcja, ponieważ coś się dzieje, a innym razem nie, bardzo dziwne.

Wklejam polecenie do terminala w celu poprawienia jego argumentów, a czasami wykonuje się to po drugim wklejeniu. Czasem tak nie jest.

Od wahających się (zamieszczanie bezsensownych komentarzy na IRC) do niebezpiecznych.

Jak mogę na stałe wyłączyć tę funkcję? Nigdy, nigdy, nigdy nie chcę, aby terminal uruchamiał się automatycznie po wklejeniu do niego.

Starkers
źródło
mogą być interesujące - bbs.archlinux.org/viewtopic.php?id=95548 , również ludzie dokonali exploitów, ukrywając zawartość w kopii / wklej reddit.com/r/linux/comments/1bv54e/…
Mateo
1
Wow, w Ubuntu powinna być wbudowana funkcja, aby to zatrzymać. Kiedy chcesz wkleić zwrot karetki do terminala?
Starkers,
jedną z poprawek byłoby użycie czegoś podobnego oh-my-zshlub innej zamiany terminala.
Pramesh Bajracharya

Odpowiedzi:

28

Nie ma automatycznego wykonywania. Prawdopodobnie kopiujesz podział wiersza (lub więcej) po poleceniu.

Jeśli wkleisz polecenie z przerwą, powłoka (linia poleceń) myśli, że nacisnąłeś przycisk przerwy (Enter, Return).


Ta odpowiedź wyjaśnia tylko, dlaczego OP otrzymuje niepożądane zachowanie. Jednak w innej odpowiedzi istnieje prawdziwe rozwiązanie problemu PO.

Mitchkman
źródło
5
To prawda, ale pytanie brzmi: jak to zatrzymać, jeśli to możliwe :)
Paweł Cioch,
1
Poprawka dla Putty przynajmniej serverfault.com/questions/731022/…
Pawel Cioch
13

Jednym prawdziwym rozwiązaniem jest otwarcie trybu edycji, ctrl-x ctrl-ea następnie bezpieczne wklejenie schowka do wybranego edytora (zwykle emacs lub vim). Po zakończeniu edycji polecenia zapisz i wyjdź, a uruchomi się ono w wierszu poleceń. Jest to dobry nawyk do długich lub złożonych poleceń, szczególnie przy wklejaniu skrótów zatwierdzania do poleceń git, i może pomóc uniknąć przerażających wyników na dłuższą metę.

Edytor można zmienić, ustawiając zmienne VISUAL i EDITOR (mają one różne znaczenia, patrz tutaj ).

borrascador
źródło
wow, zawsze jest coś, aby dowiedzieć się po dziesięcioleciach używać Linuksa :) dzięki, jest to jedyna odpowiedź, która rzeczywiście rozwiązuje problem
törzsmókus
Wygląda na to, że może działać na prawdziwym terminalu Linux, ale niestety nie jest to pomocne dla użytkowników PuTTY. Jakieś inne alternatywy?
Codesmith
1
@Codesmith Uważam, że komentarz Pawła Chiocha dotyczący przyjętej odpowiedzi może być dla Ciebie pomocny: serverfault.com/questions/731022/…
borrascador
1
Dobry punkt @borrascador! Nie jestem pewien, jak mi tego brakowało. Dzięki! :)
Codesmith
5

Przed wklejeniem wpisz #, a następnie wklej swoją linię. Nie uruchomi się i możesz usunąć # i nacisnąć Enter po zakończeniu modyfikacji.

Lanca
źródło
Możesz także użyć trueAKA :, która jest w zasadzie poleceniem no-op.
wjandrea
1
@WJAndrea Powiedziałbym, że jest to mniej wskazane, ponieważ spowoduje to zablokowanie statusu wyjścia ( $?) ... truetak naprawdę nie jest nop, zwraca status wyjścia 0. Z drugiej strony komentarz jest całkowicie ignorowany i dlatego nie będzie alter $?.
brhfl
4
zatrzyma to tylko wykonanie pierwszego wiersza . jeśli OP wklei tekst z co najmniej dwoma podziałami linii, zostaną one ponownie wkręcone.
törzsmókus