Home > Common Problem > body text

What is a linux executable file?

青灯夜游
Release: 2023-03-09 10:00:21
Original
3163 people have browsed it

In Linux, an executable file means that the file can be run and the file has "x" permissions; the executable file can be a code file (script file) or a binary file. There are two ways to run a file: 1. Use the interpreter to run the file directly; 2. Use "./" to run the file, and the syntax is "./ file name".

What is a linux executable file?

#The operating environment of this tutorial: linux7.3 system, Dell G3 computer.

What is an executable file

An executable file refers to a file that can be run. This file can be a code file, or It can be a binary file

There are only files and directories in the Linux file system (everything is a file).

In Linux, there are two main ways to run a file: bash test .sh or ./test.sh.

This test.sh is called an executable file.

Executable file Divided into two types: one is a common binary file, and the other is a script file. The former, such as the commonly used ls, mkdir commands, etc. are all binary files, while the latter is a common There are shell scripts or Python scripts that rely on interpreter execution.

You can check the type of a file through the command file. For example, a binary file will display:

What is a linux executable file?

The script file outputs:
What is a linux executable file?

The difference between executable files

As you can see from the two script files above, the output content is different. One is recognized as shell script and the other is considered an ordinary text file. However, both files are executable:

What is a linux executable file?

As shown in the picture: after running both files, they will output hello world!.

Two different runs are used here Method, the first method directly specifies an executable file ./hello.sh. If run in this way, the script must meet the following two requirements:

  • The file has "x" permissions

  • If the file is not a binary type file, its interpreter must be specified in the first line at the beginning

The first one refers to "rwx" in the Linux file system. r means read-only, w means writable, and "x" means that the file is executable.

Judge this file here The executable is somewhat similar to the "duck type", that is, as long as an animal can quack, I think it is a duck. At this time, even if a dog walks over and quacks twice, then it is also considered a duck.
Convert. No matter what the file type is, as long as the file has "X" permissions, the system will consider it an executable file.

Example: Create a new text type file with the content hello world !, and then add "x" execution permission.

What is a linux executable file?

#You can see that when viewing the file type, it is consistent with the content printed by the Python script above, and it is considered to be a txt file.

Then execute permission is added to it, and then './' is run, prompting "Command not found".

Here, the system treats it as a shell script to execute , read the content from it in turn, and then hand it over to the "/bin/bash" interpreter for execution.

Then follow the same method and turn the Python script into an executable file recognized by the system

What is a linux executable file?

At this time, you can also use ./ to run it.

./What does it mean?

There are two ways to run a file. The first is to run it directly using its interpreter, such as:

What is a linux executable file?

Each interpreter can only run scripts corresponding to its own syntax. If another interpreter is used, an error will be thrown. For example, the Python interpreter cannot run shell scripts.

Let’s talk next./, dot means "current directory" in Linux system, and "/" is an ordinary path separator. When combined together, it is nothing more than a relative path, such as:

What is a linux executable file?

So when executing an executable file recognized by the system, ./ is not the most important part, the file itself is. For example, I can run an executable file with an absolute path document:

7-What is a linux executable file?

If you remove the /root/file/ in front, and then delete the .py at the end, that is, just enter "hello" and print a hello world !, then this file seems to be no different from a command in the Linux system.

Next, let’s turn it into a "command" that is the same as ls .

What is a linux executable file?

  • First rename the executable file

  • Then put it in / In the usr/bin directory

  • , enter hello directly, and hello world!

is printed directly. From the side, as long as you turn a script into an executable file recognized by the system and put it in the /usr/bin directory, it will be no different from commonly used commands.

Why is it /usr/bin?

In fact, there is a variable called PATH in the Linux system. This variable is a set of paths. When When you enter a command (such as ls), it will look for a file with the corresponding name in the directory given in the content of this variable, and then run it.

So, if I can put the current The directory is also added to this variable, then the files in the current directory can be directly run by the system without specifying a path.

What is a linux executable file?

If a file does not have " x" belongs to the line, then it cannot be executed even if it is thrown into the /usr/bin directory.

Generally, the PATH variable is rarely declared directly, and it will also be written to when operating on this variable. ~/.bashrc directory or /etc/profile in the files of these two environment variables. In this way, after the session is connected, the contents inside will be automatically run and this directory will be added. to the PATH variable.

Summary

If a script file has "x" permissions and the corresponding interpreter is specified on the first line, or a binary If the file has "X" permission, then the file becomes an executable file recognized by the system. At this time, when running it, not only can you specify an absolute path or a relative path, but you can also execute it through its interpreter, or you can put it where it is. Add the directory to the "PATH" variable.

If a script file does not meet the above requirements, you can only execute it through its interpreter, such as "bash hello.sh" or "python hello.py" this way.

Related recommendations: "Linux Video Tutorial"

The above is the detailed content of What is a linux executable file?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!