How can I start my application in a more convenient way?
I am new in Ubuntu. I have an application which I open in the following way. I type in the console:
cd ~/MyDirectory
./myapp +some arguments
How can I find a solution, so I could launch my application without typing these commands in the console every time? I am thinking of a script, like a bat-script or .lnk in windows.
In other similar questions I didn't find a solution because there was only some mention and discussion of scripting. I didn't find how I can use "cd" command in other questions, and this question is not duplicate of others I suggest.
Solution 1:
A script is quite overkill.
Use a .desktop file like:
[Desktop Entry]
Exec=/bin/bash -c "cd ~/MyDirectory && myapp some_arguments"
Name=Some App
Type=Application
- Save it as
some_app.desktop
- Make it executable and double click
N.B.
The question is if it needs to be run from its own directory or not. If not, the command could even be simpler:
Exec='/home/MyUserName/MyDirectory/myapp' some_arguments
Solution 2:
Create a file with following content:
#!/bin/bash
cd ~/MyDirectory
./myapp +some arguments
Then make it executable:
chmod u+x scriptname
Now you can call this script like this: /pathtoscript/scriptname
You can combine this with answer by v010dya, and put this script in any bin
that is in the $PATH, so both calling methods are possible: in the shell in any directory type scriptname
or use the desktop shortcut explained below. Just change /pathtoscript
to the actual placement of the script.
Make a shortcut to the script, place it in ~/.local/share/applications/
and name it like somename.desktop with the following content:
[Desktop Entry]
Version=1.0
Name=Script
Comment=
Keywords=Script
Exec=/pathtoscript/scriptname
Terminal=false
X-MultipleArgs=true
Type=Application
Icon=preferences-system
Categories=GTK;Development;
StartupNotify=false
Then it will appear in the applications list
Solution 3:
Although you have already found a solution that you can double click on, there's a solution that makes it more trivial to run from command line:
Step 1 - Write a script
This is already covered by an answer of LeonidMew, i will copy it here:
#!/bin/bash
cd ~/MyDirectory
./myapp +some arguments
and then
chmod u+x scriptname
Step 2 - Make it easy to execute
You need to create a directory ~/bin
and make bash search it for commands. So in terminal we write:
mkdir ~/bin
mv scriptname ~/bin
vim ~/.profile
Here i am doing everything in terminal, you can of course create a directory dir
in your home directory and also move your script there via graphical tools that you are comfortable with. Also i am using vim as an editor, but it is a little difficult for beginners to use, i would advise you to learn, but you can just use a different editor (even graphical) to edit .profile
inside your home directory, note that this file is hidden by default.
You need to add the following to an end of that file
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
If you are using vim you press i to start adding text, and then Esc to end adding. After that you input :wq
to write file and exit. Or, as i have already said, use a more simple editor.
Step 3 - Enjoy
Now, it will not matter what directory you are in, you can always just type scriptname
and press Enter. You can also place other scripts and applications that you want to be executable in ~/bin
.