TL;DR
To make a file executable in Linux, you can try these four methods:
- Use the
chmod
command with the+x
option to change the file permissions and make it executable. - Add the
shebang
line at the top of the script to specify which interpreter to use and then make the script executable using thechmod
command in the Terminal. - Use the GUI to make a file executable in Linux by marking the Execute option in the Permissions tab after right-clicking the file and selecting the Properties of the desired file.
When making a file executable in Linux, you may experience common issues. If you get a “Permission denied” error, try running the file as a superuser with sudo. For “File is in a read-only file system,” change the file system or move the file. If the file is corrupted, download it again. For “Command not found,” install the necessary command or add the directory to your PATH
. And finally, if your file has no extension, rename it and add the appropriate one.
To find out more about how to make a file executable in Linux and resolve its common issues, read the step-by-step guide below.
When you download a file from the internet or create a script in any of the Linux distros, it’s often not executable by default. This is because this OS aims to minimize the risk of running potentially malicious or harmful code on your system. But this can be frustrating, especially if you’re new to Linux and don’t know how to make necessary files executable. To help you out, I’ll guide you through the process of making the file executable in Linux. With my three practical methods, you will be able to run any executable files on your Linux machine. Along with that, you’ll learn about the five common errors and their easy solutions.
How to Make a File Executable in Linux [3 Easy Ways]
To make a file executable in Linux, you can set the execute permission using the chmod
command, add a shebang
line at the top of the file, or use the graphical user interface (GUI) to enable the execution of the file. Here’s a breakdown of each of these methods:
1. Use chmod Command
Before learning to make a file executable in Linux, you should know the basics of file permissions. This includes read (r), write (w), and execute (x), which can be assigned to the owner, group, and others. The ls
and -l
command displays permissions, and the chmod
command is used to modify them. Once you know about the file permissions for a certain file, use chmod
to modify its access permissions. Here’s how to do it:
- Run the
ll
command to view the permission of the file before making it executable.

- To make a file executable in Linux Terminal, you need to set the execute permission for the user group to which the file belongs. Here is the command to do that:
chmod u+x [filename]
- This command sets the execute permission (x) for the user (u) file group. You can also set the execute permission for the group (g) or others (o) by replacing u with g or o, respectively.

2. Use Shebang Notation
Another way to make a file executable in Linux is by using the shebang (#!) notation. It’s a special sequence of characters that tells the shell what interpreter to use to run the script. Here’s how to add a shebang to make a file executable in Linux:
- Right-click the script file, then open it using the text editor app.

- Add the shebang line (
#!
) at the top of the file, specifying the path to the interpreter. For example, if you want to use the Bash interpreter, the shebang line should be!/bin/bash

- Save the file with a meaningful name and the
.sh
extension.

- Once you’ve added the shebang to the file, head to the Terminal and navigate to the directory where the script file is located.
cd ~/directory-name
- Next, run the
ls
command to confirm whether the script file exists in that directory.

- Run the following command to make the script file executable while replacing “script.sh” with the actual name of your script file:
chmod +x script.sh
- Again, run the
ls
command to see if the file has become executable. If it is, it’ll show in a different color.

- You can now execute the script by running
./script.sh
in the Terminal. Theshebang
line ensures that the correct interpreter is used to execute the script. Here is the output:

3. Use Linux GUI
You can also make a file executable in Linux using the graphical user interface (GUI). This method is very simple and easy for people who prefer to use the graphical representation of the Linux distros. Here are the steps to follow:
- Right-click on the file you want to make executable and select Properties.

- Then navigate to the Permissions tab.

- From there, you can check the Execute box to make the file executable.

- Once done, head to the Terminal window and run the script with the following command:
./filename
- Now, you should see the following output:

5 Common Issues When Making a File Executable
When making a file executable in Linux, you may encounter a few common issues or errors. Here are five of them, along with their easy solutions to help you troubleshoot:
- 🛡️ Executing Commands with Superuser Privileges: If you encounter a “Permission denied” error, it’s often because the command requires elevated permissions. In such a case, use the sudo command to execute the file as a superuser. Here’s an example of how you do it:
sudo ./file_name
. - 📂 Handling Read-Only File Systems: If you experience a “File is in a read-only file system” error, it means you’re trying to modify a file in a read-only location. You can either move the file to a different directory or remount the file system as read-write. Here’s how you remount the file system:
sudo mount -o remount,rw /
. - 🚨 Reacquiring Corrupted Files: If you encounter a “File is corrupted” error, the file you’re trying to use might have been damaged or improperly downloaded. Consider redownloading the file or acquiring a different copy to resolve this issue.
- 🔍 Installing Missing Commands: A “Command not found” error typically suggests that the command you’re trying to use is not installed on your system or not available in your current
PATH
. To fix this, install the necessary command or add the directory containing the command to yourPATH
variable. Here’s an example of installing a command:sudo apt-get install command_name
. - 📝 Renaming Files with Correct Extensions: If you’re experiencing a “File has no extension” issue, it’s likely because the file you’re trying to use lacks a proper extension. To resolve this, rename the file and add an appropriate extension. For instance, if it’s a shell script, you should rename it with a “.sh” extension. You can do this with the following command:
mv file_name file_name.sh
.
In Conclusion
In this article, I have explained how to make a file executable in Linux using three methods, which are using the chmod
command, adding a shebang
to the script file and Linux GUI option. I have also explained five common errors along with their simple and effective solutions to let you easily make and manage executable files in Linux.
I hope this article has been helpful in your Linux journey. If you want to learn more about Linux file management, check out my articles on how to concatenate the content of multiple files or view the file content in the Linux Terminal. You should also learn to view the hidden files in Linux, as it’ll help you to configure the important system files based on your needs or preferences. Remember, the more you know about Linux, the more it empowers you to perform powerful and versatile operations on this operating system. So, read them now!
Frequently Asked Questions
How to change file ownership in Linux?
To change file ownership in Linux, use the chown
command. Here’s the syntax for using this command chown [new_owner]:[new_group] [filename]
. The [new_owner]
argument is the new owner of the file, and the [new_group]
argument is the new group to which the file will belong. If you want to keep the same group, you can omit the :[new_group]
part of the command.
How do I check if a file is executable in Linux?
To check if a file is executable in Linux, you can use the ls
command with the -l
option. This will show you the file permissions for the file. Here’s an example, ls -l [filename]
. You will see an x
in the file permissions if the file is executable. For example, if the file is named “myscript.sh”, and it’s executable, you will see something like this -rwxr-xr-x 1 user user 1234 Apr 28 10:00 myscript.sh
. The first character (-
) indicates that it’s a regular file. The next three characters (rwx
) indicate the permissions for the owner of the file. The next three characters (r-x
) indicate the permissions for the group, and the last three characters (r-x
) indicate the permissions for everyone else. The x
in the second set of permissions (rwx
) indicates that the file is executable.
What to do if the executable file does not have an extension?
Many file formats in Linux do not have a file extension, so it can be difficult to identify the appropriate extension to add. In such cases, it is necessary to determine the type of file and add an appropriate extension manually. There are several methods to identify file types, such as the file
command, which can provide information on the file type, its encoding, and other details. Once the file type is identified, the appropriate extension can be added using the mv
command.
How do I make a file executable in Linux by default?
To make a file executable in Linux by default, you can set the default file creation mask (umask
) to 022
. This will ensure that any new files you create have the executable bit set by default. To set the default umask
, you can add the following line to your .bashrc
or .bash_profile
file umask 022
. This will set the default file creation mask to 022
, which means that new files will have permissions of 644
(readable and writable by the owner, readable by everyone else). If you want new files to be executable by default, you can set the umask
to 002
, which will give new files permissions of 755
(readable, writable, and executable by the owner, readable and executable by everyone else).
Can I make a directory executable in Linux?
Yes, it is possible to make a directory executable in Linux. This means you can make a directory executable to execute commands within the directory. However, it is not recommended as it can pose security risks, especially if the directory contains sensitive files or is accessible to other users. In general, directories should be set to read and write permissions only, and executable permissions should be restricted to specific files within the directory as needed.