Jak uruchomić polecenie bez naciskania klawisza Enter?

119

I przypadkowo odwzorowywane Enterprzez xkbsetsię Pointer_button2.

Teraz za każdym razem, gdy uderzam, Enterpojawia się jakiś bełkotliwy tekst.

Pomyślałem o obejściu polegającym na ponownym mapowaniu go z powrotem, ale oznacza to, że będę musiał uruchomić polecenie xmodmap -e "keycode 135 = Pointer_Button2"(lub inny kod inny niż Enter). Ale nie jestem w stanie uruchomić tego polecenia w terminalu, bez kliknięcia Enter.

Jak mam to zrobić?

Używam Ubuntu 12.04.

użytkownik13107
źródło
5
Pewnego dnia komputery będą mogły cofnąć wszystko. Tak jak teraz z migawkami systemu plików, ale z zawartością pamięci RAM ... jak cofanie tego, co robimy. Cofnij polecenie. Otwórz plik. Uruchom program. Un-Do trwa 5 minut. Potem internet nadrobi zaległości ... Odczyt witryny: Nigdy cię nie było! Może któregoś dnia będziemy w stanie naprawić wypadki samochodowe, przywrócić słupy do pozycji pionowej itp.
Johan
2
@Johan Jakie substancje zażyłeś, pisząc ten komentarz? </kidding>
Luc M

Odpowiedzi:

125

Możesz użyć CTRL+ Jlub CTRL+ Mjako alternatywy dla Enter. Są to znaki kontrolne dla podawania linii (LF) i powrotu karetki (CR).

camh
źródło
4
Sheesh… dlaczego ludzie z 6 705 punktami nie potrafią odpowiedzieć na niektóre z tych łatwych pytań aż do ogromnej liczby niemytych mas? (Żartowałem - +1 za odpowiedź, którą zamierzałem zamieścić.)
Jan Steinman,
5
@JanSteinman Ponieważ wtedy mieliby tylko 6330 punktów (6705 - 15 - 36 * 10). : P
ernie,
3
@JanSteinman: Przepuściłem to! Kiedy odpowiedziałem, były już trzy inne odpowiedzi i jedna została zaakceptowana. Wygląda na to, że dzieci w dzisiejszych czasach nie znają swojego ASCII :-) (@ernie: istnieje limit dziennej reputacji, więc nie dostajesz wszystkich tych punktów).
camh
Dzięki za przyjęcie dobrodusznego ściągacza - wcale nie zamierzonego. Jeśli wiesz, pokaż to!
Jan Steinman,
2
@ user13107 Nie tyle historyczny, co sama definicja kodu ASCII. Kiedy ASCII było właściwie wszystkim, co było (chyba że jesteś na ziemi IBM), klawisze Return i Linefeed musiały zostać zakodowane jako coś, abyśmy mogli wpisać je na naszych zaufanych teletypach ASR-33 lub kartach dziurkaczy. Istnieje nawet pakiet ascii, który możesz zainstalować, aby go wyświetlić. Klawisz Ctrl właśnie wziął kod dla jednego z pierwszych 32 znaków i ustawił jeden bit z powrotem na 0. Dla M zmienił 4D na 0D, co jest znakiem powrotu karetki (i naprawdę był karetka na ASR-33. )
Joe
40

W oknie terminala (testowałem tylko aterm, rxvt, vtei xterm) można wybrać się do końca linii, które wklejone z powrotem daje efekt tłoczenia Enter:

#          ____________type the command____________  __select to end of line__
#         /                                        \/                         \
bash-4.2$ xmodmap -e "keycode 135 = Pointer_Button2"

Następnie wklej zaznaczony tekst z powrotem do okna terminala środkowym kliknięciem przycisku myszy (lub jednoczesnym kliknięciem lewego i prawego przycisku myszy, jeśli tak skonfigurowano).

człowiek w pracy
źródło
1
Chłodny! Myślałem, że nie ma sposobu, aby skopiować i wkleić znaki niedrukowalne.
user13107,
26

Uruchom polecenie z terminala innego niż X.

CTRL+ ALT+ F2powinien doprowadzić cię do normalnej konsoli. Zaloguj się jako normalny użytkownik, a następnie uruchom tam komendę.

xmodmapwpływa tylko na sesje X, więc musi DISPLAYdziałać poza serwerem X, w następujący sposób:

DISPLAY=:0 xmodmap
Burhan Khalid
źródło
Dzięki. Daje jednak błąd, żexmodmap unable to open display ``
użytkownik13107
1
Możesz go wyświetlić DISPLAY="0"lub edytować plik, powinien być w$HOME/.Xmodmap
Burhan Khalid
6
Mała literówka:DISPLAY=:0
Lekensteyn,
14

Możesz umieścić go w skrypcie (.sh), a następnie kliknąć dwukrotnie. Większość współczesnych środowisk pulpitu daje opcję uruchamiania skryptu zamiast otwierania go w pliku tekstowym.

terdon
źródło
Dzięki. Spróbował tego. Nie znalazłem opcji uruchamiania go jako skryptu.
user13107,
Dobrze. Działa po zmianie właściwości pliku.
user13107,
11

Jeśli masz mysz i wyświetlacz graficzny, możesz skopiować koniec poprzedniego wiersza w terminalu i wkleić go na końcu polecenia.

Eric Layton
źródło
4

CTRL+ Oto kolejna opcja. Dzięki bash wykonuje polecenie i przechodzi do następnej najnowszej w historii, przydatne jest cofanie się przez łańcuch poprzednio wykonanych poleceń.

Graeme
źródło
1

Jeśli masz mysz, po prostu skopiuj ją -> „

i wklej obok polecenia, a następnie wklej całe polecenie w terminalu.

Lubić wprowadź opis zdjęcia tutaj

Xeon
źródło
To już zostało udzielone jako odpowiedź
Philippos