Comment exécuter une commande sans appuyer sur Entrée?

119

Accidentellement Je cartographié Entervia xkbsetà Pointer_button2.

Maintenant, chaque fois que je frappe Enterun texte charabia apparaît.

J'ai pensé à une solution de contournement impliquant de le remapper, mais cela signifie que je devrai exécuter une commande xmodmap -e "keycode 135 = Pointer_Button2"(ou tout autre code clé autre que celui de Enter). Mais je ne suis pas capable d'exécuter cette commande en terminal, sans frapper Enter.

Comment je le fais?

J'utilise Ubuntu 12.04.

utilisateur13107
la source
5
Un jour, les ordinateurs pourront tout annuler. Comme avec les instantanés du système de fichiers à présent, mais avec le contenu de la RAM ... c'est comme revenir à ce que nous faisons. Annuler la saisie d'une commande. Ouvrir un fichier. Désactiver un programme. Un-Do durer 5 minutes. Puis, plus tard, Internet rattrapera son retard ... Dévissez un site Web: Vous n’avez jamais été là! Peut-être qu'un jour nous pourrons réparer les accidents d'automobile, remettre les lampadaires en position verticale, etc.
Johan
2
@Johan Quel genre de substances avez-vous prises lorsque vous avez écrit ce commentaire? </ kidding>
Luc M

Réponses:

125

Vous pouvez utiliser CTRL+ Jou CTRL+ Mcomme alternative à Enter. Ce sont les caractères de contrôle pour le saut de ligne (LF) et le retour chariot (CR).

camh
la source
4
Sheesh… pourquoi les gens avec 6 705 points ne peuvent-ils pas laisser quelques-unes de ces questions faciles aux vastes masses non lavées pour y répondre? (Je plaisante - +1 pour la réponse que j'allais publier.)
Jan Steinman
5
@JanSteinman Parce qu'alors, ils n'auraient que 6 330 points (6705 - 15 - 36 * 10). : P
ernie
3
@JanSteinman: Je l'ai laissé passer! Il y avait déjà trois autres réponses quand j'ai répondu, et une a été acceptée. Il semble que les enfants de nos jours ne connaissent pas leur code ASCII :-) (@ernie: il y a une limite de réputation quotidienne, donc vous n'obtenez pas tous ces points).
camh
Merci d’avoir accepté des côtes de bonne humeur - aucune intention du tout. Si vous le savez, montrez-le!
Jan Steinman
2
@ user13107 Pas tellement historique que la définition de code ASCII elle-même. Quand ASCII était quasiment tout ce qu'il y avait (sauf si vous étiez sur IBM Land), les clés Return et Linefeed devaient être codées comme quelque chose pour que nous puissions les saisir sur nos fidèles télétypes ASR-33 ou nos cartes perforées. Il y a même un paquet ascii que vous pouvez installer qui l'affichera. La touche Ctrl vient de prendre le code de l'un des 32 premiers caractères et de remettre un bit à 0. Pour M, elle a changé un 4D en un 0D qui est un retour chariot (et il y avait vraiment un chariot sur un ASR-33. )
Joe
40

Dans une fenêtre de terminal (je l' ai testé que aterm, rxvt, vteet xterm) vous pouvez sélectionner la fin de la ligne, qui recollé a pour effet de pression Enter:

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

Collez ensuite le texte sélectionné dans la fenêtre du terminal en cliquant avec le bouton central de la souris (ou en cliquant simultanément avec les boutons gauche et droit de la souris, le cas échéant).

homme au travail
la source
1
Cool! Je pensais qu'il n'y avait aucun moyen de copier-coller des caractères non imprimables.
user13107
26

Exécutez la commande à partir d'un terminal non-X.

CTRL+ ALT+ F2Vous devriez une console normale. Connectez-vous en tant qu'utilisateur normal, puis exécutez la commande à cet endroit.

xmodmapn'affecte que les sessions X, il doit DISPLAYdonc fonctionner en dehors du serveur X, comme ceci:

DISPLAY=:0 xmodmap
Burhan Khalid
la source
Merci. Mais cela donne une erreurxmodmap unable to open display ``
user13107
1
Vous pouvez lui donner un affichage avec DISPLAY="0", ou éditer le fichier, il devrait être$HOME/.Xmodmap
Burhan Khalid
6
Petite faute de frappe:DISPLAY=:0
Lekensteyn
14

Vous pouvez le mettre dans un script (.sh), puis double-cliquez dessus. La plupart des environnements de bureau modernes offrent la possibilité d'exécuter un script au lieu de l'ouvrir dans un fichier texte.

terdon
la source
Merci. Essayé. Vous n'avez pas trouvé l'option de l'exécuter en tant que script.
user13107
D'accord. Cela fonctionne après avoir changé les propriétés du fichier.
user13107
11

Si vous avez une souris et un affichage graphique, vous pouvez copier la fin d’une ligne précédente de votre terminal et la coller à la fin de votre commande.

Eric Layton
la source
4

CTRL+ Oest une autre option. Avec bash, il exécute la commande et passe à la suivante la plus récente de l’historique. Il est donc utile de revenir en arrière dans une chaîne de commandes précédemment exécutées.

Graeme
la source
1

Si vous avez une souris, copiez simplement ceci -> "

"

et collez à côté de votre commande, puis collez la commande entière dans le terminal.

Comme entrez la description de l'image ici

Xeon
la source
Cela a déjà été donné comme réponse
Philippos