What is a linux executable file?
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".
#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:
The script file outputs:
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:
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.
#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
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:
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:
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:
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
.
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.
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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

VS Code system requirements: Operating system: Windows 10 and above, macOS 10.12 and above, Linux distribution processor: minimum 1.6 GHz, recommended 2.0 GHz and above memory: minimum 512 MB, recommended 4 GB and above storage space: minimum 250 MB, recommended 1 GB and above other requirements: stable network connection, Xorg/Wayland (Linux)

The five basic components of the Linux system are: 1. Kernel, 2. System library, 3. System utilities, 4. Graphical user interface, 5. Applications. The kernel manages hardware resources, the system library provides precompiled functions, system utilities are used for system management, the GUI provides visual interaction, and applications use these components to implement functions.

vscode built-in terminal is a development tool that allows running commands and scripts within the editor to simplify the development process. How to use vscode terminal: Open the terminal with the shortcut key (Ctrl/Cmd). Enter a command or run the script. Use hotkeys (such as Ctrl L to clear the terminal). Change the working directory (such as the cd command). Advanced features include debug mode, automatic code snippet completion, and interactive command history.

To view the Git repository address, perform the following steps: 1. Open the command line and navigate to the repository directory; 2. Run the "git remote -v" command; 3. View the repository name in the output and its corresponding address.

Although Notepad cannot run Java code directly, it can be achieved by using other tools: using the command line compiler (javac) to generate a bytecode file (filename.class). Use the Java interpreter (java) to interpret bytecode, execute the code, and output the result.

Writing code in Visual Studio Code (VSCode) is simple and easy to use. Just install VSCode, create a project, select a language, create a file, write code, save and run it. The advantages of VSCode include cross-platform, free and open source, powerful features, rich extensions, and lightweight and fast.

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

Causes and solutions for the VS Code terminal commands not available: The necessary tools are not installed (Windows: WSL; macOS: Xcode command line tools) Path configuration is wrong (add executable files to PATH environment variables) Permission issues (run VS Code as administrator) Firewall or proxy restrictions (check settings, unrestrictions) Terminal settings are incorrect (enable use of external terminals) VS Code installation is corrupt (reinstall or update) Terminal configuration is incompatible (try different terminal types or commands) Specific environment variables are missing (set necessary environment variables)