You have a space between ./ and clipgrab-3.4.2.x86_64. It should run if you type ./clipgrab-3.4.2.x86_64 with no spaces.
Opening programs from command terminal
unix - How to set a program to run in Linux terminal only with program name - Stack Overflow
desktop environment - How to start an application in terminal? - Unix & Linux Stack Exchange
c - How to execute a program in linux after compiling it? - Stack Overflow
Videos
So, I've been looking through webpages to find a way to run programs through the terminal. None of the things I can find work. alt + f2 doesn't do anything. I've tried just typing the name into the terminal as some pages suggested, but the only programs that I use and I can find that will auto-fill with tab are firefox, Steam, and Qmmp. I don't understand why it won't work for Discord or RetroArch. Just curious what I'm doing wrong. Thank you for any advice.
You can write whatever program/script you have to behave as a command. Let's say your executable script/program is named as my_script and is placed in /path/to/my_script.
Be sure that the script is executable. If not,then please do
chmod +x /path/to/my_script
Then, place a symlink to this location in /usr/local/bin as
sudo ln -s /path/to/my_script /usr/local/bin
You can add the symlink to any of the paths mentioned in $PATH.
That's it and enjoy your program.
The other answers all involve creating a symlink in a directory that is already listed in the system PATH, but I think it is more unixy to add needed directories to your PATH.
If your script is located at $HOME/bin/myscript and you have already made sure that it is executable then you can run
export PATH=$HOME/bin:$PATH
to run it without giving the full path. And you can add that same line to your .bashrc file in your home directory to have it preloaded whenever you start your shell. This approach does not require that the user has permission to create symlinks in system directories.
You are looking for job control which is supported by most shells. See this article for an introduction. At some point you might also want to read the official documentation for bash which is the default shell in Ubuntu.
In short: To start a job automatically in the background put an & after the program call
$ program &
You can also stop programs with CTRLz and then put them into the background later with bg
$ program
^Z
$ bg
To get them to run in the foreground again use fg.
In Ubuntu 16.10 I can't get the ctrl + Z thing mentioned in an other answer to work, but
program &
^C
Does work for me, in other words, ctrl + c after you start the program with a trailing ampersand.
You can also add all the paths you have your programs in to your PATH environment variable.
Instructions for bash:
Just add to your .bashrc:
PATH=$PATH:/a/path/here:/another/path/here:/and/so/forth
replacing /a/path/here, /another/path/here, /and/so/forth with your paths. You can add as many paths as you like, but be aware to separate each of the paths with ':' and, don't add spaces between 'PATH' and the '=' sign.
You can also add
PATH=$PATH:.
so that you don't have to type ./program.sh, but only program.sh. Please, note that putting the dot ('.') in front of the path (PATH=$PATH:.) will prevent you running a program located in another directory if there is an executable file in your current working directory with the same name! So put the dot at the end of the PATH variable, so that if you run in this particular case, you can use the old ./program notation to tell apart which program you want to run.
Hope this helps.
PS: just another note: if you run a graphical program from a terminal emulator window, closing the window will automatically close the graphical interface. In order to avoid that just type myprogram & (append the ampersand sign '&' to the command you use to run your program). If you forget it, in the terminal window type CTRL+Z and just after that run the command bg.
cd to where xyz.sh is located
for example
cd /home/user/Downloads/
./xyz.sh
If it shows permission denied then do chmod +x xyz.sh from that directory.
It's possible that the current directory (".") isn't on your PATH. (You can check this by typing echo $PATH, this is a list of directories delimited with" :". "." should be in the list if you want to run something in the current directory.)
If the current directory isn't on your PATH, you'll need to type ./myprogram (or whatever the correct path is).
Copy./myprogram
should do the trick.
(But really... have you looked at the contents of the directory after compiling the program "without name"? Or do you think ./a.out is a magic sequence Bash recognizes?)