How to run an application on Linux from the terminal

This tutorial explains how to run an application on Linux from the terminal by typing the application name. This allows you to run AppImages, scripts or any executable file from a terminal, even though you have not installed it via any type of package manager.

The quick TL;DR (Too Long; Didn’t Read) below will most likely be enough to answer your question. The remaining article gives some more technical background infos.

The quick TL;DR answer

Copy the application itself or a link to the application to the.local/bin folder in your home directory. You can now run it by typing the exact name of the file into the terminal.

If you can’t see the .local folder in your home directory, press Ctrl + Hto show hidden files. This hotkey works in all popular file managers. If it doesn’t, look around your file manager’s menus.

If the .local or bin folder doesn’t exist, simply create it yourself. In this case, you also have to log out and back in again before the terminal recognizes applications or application links inside the bin folder.

What is $PATH?

Linux uses various other folders that it scans for applications or application links. If you type something into a terminal and Linux can find an application with that name in one of these folders, the application will run.

These folders are commonly called “$PATH” or just “PATH”. You can find out which folders are part of your $PATH by running echo $PATH in a terminal. The output will look similar to this:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

The colons are line breaks, which means that I’ve got the following folders as part of my $PATH on my machine:

  • /usr/local/sbin
  • /usr/local/bin
  • /usr/sbin
  • /usr/bin
  • /sbin
  • /bin
  • /usr/games
  • /usr/local/games
  • /snap/bin

These folders are used for different purposes. If you didn’t use the method outlined in the quick TL;DR answer, you will usually want to put your application links into /usr/local/bin (instead of /home/user/.local/bin). There is a Wikipedia page about the Filesystem Hierarchy Standard that explains what most of the folders I have listed above are for and what the differences are.

Contrary to the /home/user/.local/binfolder, all of the folders listed above require Root rights (sudo) to modify the files inside them. This means that you can’t simply copy your links into them without some extra steps.

How to create a link from the terminal by using “ln”

The ln terminal command allows you to create a link to a file at a location of your choice. The syntax is:

ln [parameters] [original file path] [target path and file name]

By writing sudo before it, you can create links in folders that require admin rights. Adding the -s parameter creates a soft link instead of a hard to your file. This excellent article explains the difference between hard and soft links.

Here’s what this looks like if I want to create a link from a Krita AppImage in /home/victor/Applications to /usr/local/bin:

sudo ln -s /home/victor/Applications/krita-4.4.5-x86_64.appimage /usr/local/bin/krita

If you want to override an existing link (for example if the location of your AppImage has changed and the link is now broken), you have to add the -f parameter.

If you want to remove a file in this folder, you can use the rm command, like so:

sudo rm /usr/local/bin/name_of_your_file

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top