Skip to main content

Command Palette

Search for a command to run...

How to Make Executable File in Linux

Published
7 min readView as Markdown

Making an executable file in Linux is a useful skill that can save you time and make your work smoother. Whether you want to run a script or a program, knowing how to create an executable file lets you launch it quickly. You don’t need to be a Linux expert to do this. I’ll walk you through the process step-by-step.

In this article, you’ll learn how to create executable files from scripts or compiled programs. We’ll cover setting permissions, running files, and even some tips to avoid common mistakes. By the end, you’ll feel confident making your own executable files in Linux.

What Is an Executable File in Linux?

An executable file is a file that your Linux system can run as a program. It contains instructions that the computer understands and can execute directly. Unlike regular files, executable files have special permissions that allow them to be run.

Why Are Executable Files Important?

  • They let you run scripts or programs without typing the interpreter command every time.
  • They simplify launching software or automation tasks.
  • They help organize your work by bundling commands into one file.

In Linux, executable files can be scripts (like Bash or Python) or compiled programs (like C or C++ binaries).

How to Create a Simple Executable Script

Creating an executable script is one of the easiest ways to make a file runnable in Linux. Here’s how you can do it.

Step 1: Write Your Script

You can use any text editor like nano, vim, or gedit to write your script. For example, create a simple Bash script:

#!/bin/bash
echo "Hello, this is my executable script!"

Save this as hello.sh.

Step 2: Make the Script Executable

By default, your script won’t run as a program. You need to change its permissions using the chmod command:

chmod +x hello.sh

This command adds the execute (x) permission to the file.

Step 3: Run Your Executable Script

Now you can run the script directly:

./hello.sh

The ./ tells Linux to look for the file in the current directory.

Tips for Writing Executable Scripts

  • Always start with a shebang (#!) line to specify the interpreter.
  • Use clear and simple commands inside your script.
  • Test your script by running it before making it executable.

How to Make a Compiled Program Executable

If you write programs in languages like C or C++, you first need to compile them before making them executable.

Step 1: Write Your Program

Here’s a simple C program saved as hello.c:

#include <stdio.h>

int main() {
    printf("Hello from compiled program!\n");
    return 0;
}

Step 2: Compile the Program

Use the gcc compiler to compile the program:

gcc hello.c -o hello

This creates an executable file named hello.

Step 3: Run the Executable

Run the compiled program like this:

./hello

You should see the output on your terminal.

Notes on Compiled Executables

  • The -o option lets you name the output file.
  • Make sure you have the compiler installed (gcc is common on most Linux systems).
  • Compiled executables usually have execute permission by default.

Understanding File Permissions in Linux

Linux uses a permission system to control who can read, write, or execute files. Understanding this system helps you manage executables better.

Permission Types

  • Read (r): Allows viewing the file content.
  • Write (w): Allows modifying the file.
  • Execute (x): Allows running the file as a program.

Permission Categories

  • User (u): The file owner.
  • Group (g): Users in the file’s group.
  • Others (o): Everyone else.

Viewing Permissions

Use the ls -l command to see permissions:

-rwxr-xr-- 1 user user 1234 Apr 27 12:00 hello.sh
  • The first part -rwxr-xr-- shows permissions.
  • rwx means the owner can read, write, and execute.
  • r-x means the group can read and execute.
  • r-- means others can only read.

Changing Permissions

Use chmod to modify permissions:

  • Add execute permission: chmod +x filename
  • Remove execute permission: chmod -x filename
  • Set specific permissions: chmod 755 filename (owner full, group and others read and execute)

Running Executable Files from Anywhere

By default, you run executables with ./filename if they are in the current directory. But what if you want to run them from anywhere?

Add Executable to PATH

The PATH environment variable lists directories where Linux looks for executables.

To run your executable from any location:

  1. Move the file to a directory in your PATH, like /usr/local/bin or ~/bin.
  2. Or add your directory to PATH.

Example to add ~/bin to PATH:

export PATH=$PATH:~/bin

Add this line to your .bashrc or .zshrc file to make it permanent.

Benefits of Adding to PATH

  • Run your executables without typing the full path.
  • Organize your scripts and programs in one place.
  • Simplify command usage.

Common Mistakes When Making Executable Files

Even simple tasks can have pitfalls. Here are some common mistakes to avoid.

  • Forgetting the shebang line: Scripts without it may not run correctly.
  • Not setting execute permission: Without chmod +x, the file won’t run.
  • Running without ./ in current directory: Linux won’t find the file unless it’s in PATH.
  • Wrong file format: Windows line endings (\r\n) can cause errors in Linux scripts.
  • Missing dependencies: Compiled programs may fail if required libraries are missing.

Using File Managers to Make Files Executable

If you prefer a graphical interface, most Linux file managers let you change permissions easily.

How to Do It

  • Right-click the file and select “Properties.”
  • Go to the “Permissions” tab.
  • Check the box for “Allow executing file as program.”
  • Close the dialog.

Now you can run the file by double-clicking or from the terminal.

Advanced: Creating Executable Files with Scripts in Other Languages

You can make executable files in languages like Python, Perl, or Ruby by following similar steps.

Example: Python Script

  1. Write your Python script script.py:
#!/usr/bin/env python3
print("Hello from Python executable!")
  1. Make it executable:
chmod +x script.py
  1. Run it:
./script.py

The shebang line tells Linux to use Python to run the script.

Summary Table: Commands to Make Executable Files

TaskCommand ExampleDescription
Make file executablechmod +x filenameAdds execute permission
Run executable in current dir./filenameRuns the file from current folder
Compile C programgcc program.c -o programCompiles C source to executable
View file permissionsls -l filenameShows permissions and ownership
Add directory to PATHexport PATH=$PATH:/path/to/dirAllows running executables anywhere

Conclusion

Making executable files in Linux is straightforward once you understand the basics. Whether you’re writing a simple Bash script or compiling a program, the key steps are writing your code, setting execute permissions, and running the file. You can also add your executables to the PATH for easier access.

By mastering these steps, you’ll save time and improve your Linux workflow. Remember to check permissions carefully and use the right interpreter for scripts. With practice, creating and running executables will become second nature.

FAQs

How do I check if a file is executable in Linux?

Use ls -l filename to see permissions. If you see an x in the permission string (like -rwxr-xr-x), the file is executable.

Can I make any file executable?

You can add execute permission to any file, but it only runs correctly if it contains valid code or a script.

What does the shebang (#!) line do?

It tells Linux which interpreter to use to run the script, like /bin/bash or /usr/bin/python3.

How do I run an executable without ./?

Place the executable in a directory listed in your PATH environment variable or add its directory to PATH.

What happens if I forget to make a script executable?

You’ll get a “Permission denied” error when trying to run it until you add execute permission with chmod +x.

More from this blog

L

LinuxBloke | Linux Tips, Tricks & Troubleshooting

672 posts