Ja, Sie können den Befehl bind verwenden
bind '"\ey"':"\"less \C-m\""
Dadurch wird Alt-e dem Befehl less zugeordnet und ausgeführt (mit \ Cm aka Ctrl-m).
Wahrscheinlich für die | du musst ihm entkommen.
bind '"\ey"':"\"\|less \C-m\""
Wenn Sie es nur an die Befehlszeile anhängen möchten, entfernen Sie das * \ Cm \ ""
Seien Sie vorsichtig, da bereits einige Bindungen definiert sind:
Ctrl + A Go to the beginning of the line you are currently typing on
Ctrl + E Go to the end of the line you are currently typing on
Ctrl + L Clears the Screen, similar to the clear command
Ctrl + U Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H Same as backspace
Ctrl + R Let’s you search through previously used commands
Ctrl + C Kill whatever you are running
Ctrl + D Exit the current shell
Ctrl + Z Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W Delete the word before the cursor
Ctrl + K Clear the line after the cursor
Ctrl + T Swap the last two characters before the cursor
Esc + T Swap the last two words before the cursor
Alt + F Move cursor forward one word on the current line
Alt + B Move cursor backward one word on the current line
Tab Auto-complete files and folder names
Wie Sie oben sehen können, wird die Steuertaste mit Cm erstellt, sodass Sie den Befehl less mit Strg-g wie folgt starten können:
bind '"\ Cg"': "\" \ | less * \ Cm \ ""
Um die Schlüsselcodes für Alt (nur für ALT) abzurufen, können Sie den Befehl read aus der Shell verwenden:
@~$ read
^[y
^ [y ist gleich \ ey
Für weitere Informationen wurde diese Frage auch im Stackoverflow beantwortet:
/programming/4119991/bash-call-script-with-customized-keyboard-shortcuts