- How to Make a File Executable in Linux?
- Method 1: Make File Executable in Linux via CLI
- Make File Executable for Owner
- Make File Executable for Group
- Make File Executable for Others
- Make File Executable for All
- Make File Executable Using Octal Numbers
- Example
- Method 2: How to Make File Executable in Linux via GUI?
- Conclusion
- Creating executable files in Linux
- 5 Answers 5
- How to Make a File Executable in Linux
- How to make a file executable using the chmod command
- How to make a file executable using file properties
- Conclusion
- About the author
- Taimoor Mohsin
How to Make a File Executable in Linux?
Every file or directory in Linux has “read”, “write”, and “execute” permissions. These permissions are assigned by default when the directory or file is created. But > can easily change it via the CLI and GUI. In CLI, it can be modified using the “chmod” command. While in GUI, the file “properties” window helps the user to perform this task.
This guide provides the possible effects to make the files executable in Linux through CLI and GUI. The outline of this article is as follows:
Let’s start with the first method.
Method 1: Make File Executable in Linux via CLI
Linux OS offers the productive commands to access and manage the system completely. This method comprises step-by-step instructions to make a file executable in Linux using the command line interface for the owner, group, others, and all.
Before moving on to the practical implementation, let’s look into the specific “NewFile” file permissions:
The highlighted part in the output displays that the “NewFile” does not have execution rights for any user. Now, let’s make it executable using the steps.
Step 1: Change the File Permissions
First, change the permissions of the specific file with the help of the “chmod” command. As an example. A file is created in the “nano” text editor having the name “NewFile” and the following content:
Now, the execution privileges can be granted to a specific user, following their key names, which are demonstrated below.
- u: Denotes permissions for the owner of the file.
- g: Represents permissions for the group of a file.
- o: Allows permissions for other users.
- a: Accesses permissions for all.
Make File Executable for Owner
Make File Executable for Group
Make File Executable for Others
Make File Executable for All
In this scenario the permissions are allowed to all users of current OS by utilizing the below-mentioned command:
Now, every user of the current OS can execute the “NewFile” file
Step 2: Execute the File
Once the execute permission is assigned to “NewFile”, run it in this way for the verification:
Hence, the “NewFile” is executed successfully and show the output of the “ls -l” command that is described in it.
Note: If the file has the “.bin” or “.run” extension, then use this file extension with its name. The generalized syntax for making these files executable is written below:
$ chmod u+x [file-name] [file-extension]
Make File Executable Using Octal Numbers
Apart from the above classes, the user can also change the file permissions using the “octal” numbers. While each octal value represents either “read”, “write”, or “execute” permission. Look at the table to understand what octal values are in the permissions scenario.
Octal-Value | Permissions Representation | Permissions Description |
0 | — | Represents no permission |
1 | –x | Allow only the execute permission. |
2 | -w- | Shows the write permissions only. |
3 | -wx | Write and execute permissions, i.e. (1. execute) and (2. write)=3 |
4 | r– | Read permissions only. |
5 | r-x | Read and execute permission as (1. execute) and (4. read)=5 |
6 | rw- | Read and write permissions as (4. read) and (2. write)=6 |
7 | rwx | All permissions such as (1. execute), (2. write) and (4. read)=7 |
Example
Use the above octal values to make the “File1” file executable for its owner, group, and others. Its permissions are shown below:
Type the octal value in the set as “6(4 read)(2 write)” for the owner, “7 (4 read)(2 write)(1 execute)” for the group, “4(4 read)” for others with the chmod command. This octal value will make the file executable only for its group:
The output verifies that only the “itslinuxfoss” group is allowed to execute the “File1”.
Method 2: How to Make File Executable in Linux via GUI?
The user can also execute the file with the help of the graphical user interface. Follow the steps below to run the .bin file visa GUI
Step 1: Open the file Properties
Open the directory where the desired file is saved or downloaded. In this case, the file named “Extra.bin” is located in the “Documents” directory:
Right-click on the file and choose the “Properties” option from the dropdown list:
The “Extra.bin Properties” window will be opened:
Step 2: Change the File Permissions
Hit the “Permission” icon in the menu bar of the “properties” window. Tick the highlighted checkbox “Allow executing file as a program”:
Step 3: Execute the file
Now, double-click on the “Extra.bin” file to run it:
That’s how to make files executable in Linux using CLI and GUI.
Conclusion
All the commonly used Linux distributions provide the “chmod” command to make the file executable. The “chmod” command assigns the execute permissions in two ways that are using the “permission levels” or the “octal values”. Furthermore, > can also perform this task efficiently through the Graphical User Interface. This guide has provided CLI and GUI methods to make file executable in Linux.
Creating executable files in Linux
One thing I plan to be doing is writing (painfully simple) Perl scripts, and I’d like to be able to run them without explicitly calling Perl from the terminal. I appreciate that, to do this, I need to grant them execute permissions. Doing this with chmod is easy enough, but it also seems like a slightly laborious extra step. What I would like is one of two things: Firstly, is there a way to set the execute flag when saving a file? Currently I’m experimenting with gedit and geany, but would be willing to switch to a similarly- (or better-) featured editor if it had this capability. Failing that, is there a way to declare that all files created in a particular directory should have execute permissions? My umask is set to 022, which should be OK, as far as I understand, but it would appear that the files are created as text files (with 666 default permissions) rather than executable files (with 777 default permissions). Perhaps I’m just being lazy, but I figure there must be a more convenient way than chmodding every single script one creates.
You have to print the output of every file. You have to import the right libraries of every file. This seems like another step in the process of programming, and one that is dangerous to circumvent.
5 Answers 5
This should return something like
Then in the first line of your script add:
Then you can execute the file
There may be some issues with the PATH, so you may want to change that as well .
Thanks, but that’s not quite my problem. I’ve already gotten into the habit of starting my scripts with #!/usr/bin/perl. I can run scripts fine once I’ve given them executable permissions; I was just looking for a simpler way of doing so.
May I recommend #!/usr/bin/env perl instead? The env program basically finds the argument given (in this case, «perl») on the PATH and runs that. It’s useful when you’re sending scripts to other people — for example, I use a Mac, and Perl is located in /opt/local/bin.
No need to hack your editor, or switch editors.
Instead we can come up with a script to watch your development directories and chmod files as they’re created. This is what I’ve done in the attached bash script. You probably want to read through the comments and edit the ‘config’ section as fits your needs, then I would suggest putting it in your $HOME/bin/ directory and adding its execution to your $HOME/.login or similar file. Or you can just run it from the terminal.
This script does require inotifywait, which comes in the inotify-tools package on Ubuntu,
sudo apt-get install inotify-tools
Suggestions/edits/improvements are welcome.
#!/usr/bin/env bash # --- usage --- # # Depends: 'inotifywait' available in inotify-tools on Ubuntu # # Edit the 'config' section below to reflect your working directory, WORK_DIR, # and your watched directories, WATCH_DIR. Each directory in WATCH_DIR will # be logged by inotify and this script will 'chmod +x' any new files created # therein. If SUBDIRS is 'TRUE' this script will watch WATCH_DIRS recursively. # I recommend adding this script to your $HOME/.login or similar to have it # run whenever you log into a shell, eg 'echo "watchdirs.sh &" >> ~/.login'. # This script will only allow one instance of itself to run at a time. # --- config --- # WORK_DIR="$HOME/path/to/devel" # top working directory (for cleanliness?) WATCH_DIRS=" \ $WORK_DIR/dirA \ $WORK_DIR/dirC \ " # list of directories to watch SUBDIRS="TRUE" # watch subdirectories too NOTIFY_ARGS="-e create -q" # watch for create events, non-verbose # --- script starts here --- # # probably don't need to edit beyond this point # kill all previous instances of myself SCRIPT="bash.*`basename $0`" MATCHES=`ps ax | egrep $SCRIPT | grep -v grep | awk '' | grep -v $$` kill $MATCHES >& /dev/null # set recursive notifications (for subdirectories) if [ "$SUBDIRS" = "TRUE" ] ; then RECURSE="-r" else RECURSE="" fi while true ; do # grab an event EVENT=`inotifywait $RECURSE $NOTIFY_ARGS $WATCH_DIRS` # parse the event into DIR, TAGS, FILE OLDIFS=$IFS ; IFS=" " ; set -- $EVENT E_DIR=$1 E_TAGS=$2 E_FILE=$3 IFS=$OLDIFS # skip if it's not a file event or already executable (unlikely) if [ ! -f "$E_DIR$E_FILE" ] || [ -x "$E_DIR$E_FILE" ] ; then continue fi # set file executable chmod +x $E_DIR$E_FILE done
How to Make a File Executable in Linux
Making bash script files executable is an efficient way to run your bash programs because by default the scripts are not executable. This is useful mainly for system administrators, as they need to develop several bash scripts daily to automate their tasks. For example, you might wish to run bash scripts to back up your work or log certain events on your server. So this article will guide you on how you can make your bash scripts executable, and for that, there are two main ways:
- Make a bash file executable using the CHMOD command
- Make a bash file executable using file properties
How to make a file executable using the chmod command
The “chmod” command stands for change mode, and this command can be used to make changes in the file permissions, such as you can make a file writable, readable, and executable. To see these permissions for any file, first, let’s create a bash script file in nano editor:
Then we have written some text and saved the file as shown below:
echo ”This is a test file to make it executable.”
Use the below-mentioned command to check whether the file is executable or not:
In the above image, the letter ‘r’ shows that the file is readable, and ‘w’ shows that the file is writeable and ‘x’ shows that the file is executable, which is currently missing on the above output, and that means you cannot execute this file for now. To verify this, you can execute this file by following the general syntax shown below.
As you can see, it shows an error after trying to execute the text file, and this is where the chmod command comes in handy. To make this file executable, all you need to do is to follow the general syntax shown below:
In the above image, ‘u+x’ shows that you are giving permission to the user to execute a specific file, and you can see that it added a letter ‘x’ in the image and after that, you need to run this bash file by typing.
It can be seen that the content of the bash file is now executed without any error.
How to make a file executable using file properties
You can also make a file executable by right-clicking on the bash file and selecting its ‘Properties’ as shown below:
The next step is to select the ‘Permissions’ tab and then check the option of ‘Allow executing file as program’.
This will also allow you to execute the bash file for which you have selected this option, upon double clicking the file, you will get the prompt as shown below:
You can either get output in the terminal or directly run the script for the desired result.
Conclusion
Making a bash script executable allows you to execute your bash scripts without having to type bash in the terminal. This is especially useful for system administrators, who need to write several bash scripts every day to automate their jobs. So in this article, we have taught you how you can make any bash file executable, and there are two ways for doing this. One is by using the “chmod” command, and the other is by using the file properties.
About the author
Taimoor Mohsin
Hi there! I’m an avid writer who loves to help others in finding solutions by writing high-quality content about technology and gaming. In my spare time, I enjoy reading books and watching movies.