12

Is there any way to run a program without pressing enter?

I could then have a script that cd's one folder up. Then I could hold down ctrl and every time i would hit a button, that script would run.

That could make life easier in the shell as I could go up the folder structure faster. And could even clear the screen each time and run ls. Or do whatever with just a single click of a button, while in the shell.

I'm using bash and my terminal emulator is Linux Mint, Xfce's default.

0

2 Answers 2

21

You can do this using bash's .inputrc file, the readline startup configuration file. First, edit the file ~/.inputrc (this means a file named .inputrc in your $HOME directory; create it if it doesn't exist) and add this line:

Control-u: "cd ../\n"

That sets the keyboard shortcut Ctrl+u to insert cd ../ followed by a newline (enter). Now, open a new terminal and you can use Ctrl+u to move one directory up. So yes, you can hold down Ctrl and then move one directory up every time you press u.

4
  • 1
    Custom things you put in .inputrc are also available in other programs that use readline for interactive use, such as rlwrap. Commented Oct 7, 2021 at 17:37
  • @glennjackman that seems like a good thing, right? Or do you mean it can cause conflicts or something? Commented Oct 7, 2021 at 19:50
  • No it's a plus. The only things I have in my .inputrc are set editing-mode vi and set show-mode-in-prompt on Commented Oct 7, 2021 at 21:17
  • 11
    I don't think it is a plus, because in other utilities that use Readline (and thus .inputrc) cd .. makes no sense. To work around that, you could put bind 'Control-u:"cd ..\n"' in .bashrc, so it only affects Bash. Nice answer nonetheless. Commented Oct 8, 2021 at 12:16
1

If you don't have a specific task that you want to automate, but you want to speed up some command right now by executing it with a single keypress, why not simply use copy-paste:

  1. Type the command you want to repeat, and type <enter>.
  2. Highlight the command to the end of the line (including the newline at the end), and copy the selection to the clipboard.
  3. Type control-V to paste and execute the copied command. Repeat.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.