Wie führe ich einen Befehl aus, ohne die Eingabetaste zu drücken?

119

Aus Versehen habe ich Entervia xkbsetto gemappt Pointer_button2.

Jetzt erscheint jedes Mal, wenn ich Entereinen Kauderwelsch-Text drücke.

Ich dachte an eine Problemumgehung, bei der es darum ging, es erneut zuzuordnen, aber das bedeutet, dass ich einen Befehl ausführen muss xmodmap -e "keycode 135 = Pointer_Button2"(oder einen anderen Schlüsselcode als den von Enter). Aber ich bin nicht in der Lage, diesen Befehl im Terminal auszuführen, ohne zu schlagen Enter.

Wie mache ich das?

Ich verwende Ubuntu 12.04.

user13107
quelle
5
Eines Tages können Computer alles rückgängig machen. Wie wir es jetzt mit Dateisystem-Snapshots gemacht haben, aber mit dem Inhalt des Arbeitsspeichers ... als würde man zurücksetzen, was wir tun. Geben Sie einen Befehl ab. Öffnen Sie eine Datei. Führen Sie ein Programm aus. Un-Do dauert 5 Minuten. Dann wird das Internet später aufholen ... Ungelesene Website: Sie waren noch nie dort! Vielleicht werden wir eines Tages in der Lage sein, Autounfälle zu lösen, die Laternenpfähle wieder aufrecht zu stellen usw.
Johan
2
@Johan Welche Art von Substanzen hast du genommen, als du diesen Kommentar geschrieben hast? </ kidding>
Luc M

Antworten:

125

Sie können CTRL+ Joder CTRL+ Mals Alternative zu verwenden Enter. Sie sind die Steuerzeichen für Zeilenvorschub (LF) und Wagenrücklauf (CR).

camh
quelle
4
Meine Güte… warum können Leute mit 6.705 Punkten nicht einige dieser einfachen Fragen an die riesigen ungewaschenen Massen durchlassen, um sie zu beantworten? (Ich mache nur Spaß - +1 für die Antwort, die ich posten wollte.)
Jan Steinman
5
@ JanSteinman Denn dann hätten sie nur 6.330 Punkte (6705 - 15 - 36 * 10). : P
ernie
3
@ JanSteinman: Ich habe es durchgelassen! Als ich antwortete, gab es bereits drei andere Antworten und eine wurde angenommen. Es scheint, dass Kinder heutzutage ihre ASCII nicht kennen :-) (@ernie: Es gibt eine tägliche Reputationsgrenze, sodass Sie nicht alle diese Punkte erhalten).
camh
Vielen Dank, dass Sie gutmütige Rippereien akzeptieren - keine leichte Absicht. Wenn Sie es wissen, zeigen Sie es!
Jan Steinman
2
@ user13107 Nicht so sehr historisch wie nur die ASCII-Codedefinition selbst. Wenn ASCII so ziemlich alles war, mussten die Return- und Linefeed-Schlüssel (es sei denn, Sie befanden sich im Land von IBM) als Codierung verwendet werden, damit wir sie auf unseren zuverlässigen ASR-33-Teletypen oder auf unseren Lochkarten eingeben konnten. Es gibt sogar ein ASCII-Paket, das Sie installieren können und das es anzeigt. Die Strg-Taste hat nur den Code für eines der ersten 32 Zeichen übernommen und ein Bit auf 0 zurückgesetzt. Für M hat sie eine 4D in eine 0D geändert, die ein Wagenrücklauf ist (und es gab wirklich einen Wagen auf einem ASR-33). )
Joe
40

In einem Terminal - Fenster (Getestet habe ich nur aterm, rxvt, vteund xterm) können Sie das Ende der Zeile auswählen können, die die Wirkung des Pressens hat wieder eingefügt Enter:

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

Fügen Sie dann den ausgewählten Text mit der mittleren Maustaste (oder bei entsprechender Konfiguration mit gleichzeitiger linker und rechter Maustaste) wieder in das Terminalfenster ein.

Mann bei der Arbeit
quelle
1
Cool! Ich dachte, es gibt keine Möglichkeit, nicht druckbare Zeichen zu kopieren und einzufügen.
user13107
26

Führen Sie den Befehl von einem Nicht-X-Terminal aus.

CTRL+ ALT+ F2Sollten Sie auf eine normale Konsole erhalten. Melden Sie sich als normaler Benutzer an und führen Sie den Befehl dort aus.

xmodmapBetrifft nur X-Sitzungen und muss DISPLAYdaher außerhalb des X-Servers wie folgt ausgeführt werden:

DISPLAY=:0 xmodmap
Burhan Khalid
quelle
Vielen Dank. Aber es gibt Fehler, dassxmodmap unable to open display ``
user13107
1
Sie können eine Anzeige mit geben DISPLAY="0"oder die Datei bearbeiten, sollte in$HOME/.Xmodmap
Burhan Khalid
6
Kleiner Tippfehler:DISPLAY=:0
Lekensteyn
14

Sie können es in ein Skript (.sh) einfügen und dann darauf doppelklicken. Die meisten modernen Desktop-Umgebungen bieten die Möglichkeit, ein Skript auszuführen, anstatt es in einer Textdatei zu öffnen.

terdon
quelle
Vielen Dank. Ich habe es versucht. Die Option zum Ausführen als Skript wurde nicht gefunden.
user13107
Okay. Es funktioniert nach dem Ändern der Dateieigenschaften.
user13107
11

Wenn Sie eine Maus und eine grafische Anzeige haben, können Sie das Ende einer vorherigen Zeile in Ihr Terminal kopieren und am Ende Ihres Befehls einfügen.

Eric Layton
quelle
4

CTRL+ Oist eine weitere Option. Mit bash wird der Befehl ausgeführt, und es wird zum nächstaktuellen Befehl in der Geschichte gewechselt. Es ist hilfreich, eine Reihe zuvor ausgeführter Befehle zu durchlaufen.

Graeme
quelle
1

Wenn Sie eine Maus haben, kopieren Sie diese einfach -> "

"

und fügen Sie neben Ihrem Befehl und dann den gesamten Befehl in das Terminal ein.

Mögen Bildbeschreibung hier eingeben

xeon
quelle
Dies wurde bereits als Antwort gegeben
Philippos