Linux终端执行可执行文件需掌握路径、权限及实践步骤,路径分绝对路径(如/bin/ls)和相对路径(如./script.sh),前者从根目录定位,后者基于当前目录,权限是核心,通过ls -l查看rwx权限位,若无执行权限需用chmod +x赋权,实践步骤为:先用ls确认文件存在,ls -l检查权限,chmod +x赋予执行权,最后通过./文件名执行(当前目录需加./)或绝对路径调用,确保路径正确、权限充分即可顺利运行。
在Linux系统中,终端(命令行)是与系统交互的核心方式之一,而执行可执行文件是终端操作中最常见的任务之一,无论是编译生成的二进制程序、编写的Shell脚本,还是安装的第三方工具,都需要通过终端命令来运行,本文将从可执行文件的本质、执行前的准备、具体操作步骤到常见问题解决,全面介绍Linux终端执行可执行文件的方法与原理。
什么是可执行文件?
在Linux中,可执行文件是指系统可以直接识别并运行的文件,它可以是两种主要类型:
- 二进制可执行文件:由C、C++、Rust等高级语言编译生成的机器码文件(如
gcc编译后的a.out、/bin/ls等),系统内核可直接加载到内存执行。 - 脚本可执行文件:包含一系列命令文本的文件(如Shell脚本
.sh、Python脚本.py等),需通过解释器(如bash、python3)逐行执行。
无论是哪种类型,Linux系统都需要通过文件权限和路径信息来确定“如何执行”和“在哪里执行”。

执行可执行文件的核心前提:权限与路径
文件权限:可执行权限的设置
Linux通过r(读)、w(写)、x(执行)三组权限控制文件访问,只有拥有执行权限(x)的文件才能被运行,默认情况下,新建的文件(如通过touch或echo创建的脚本)没有执行权限,需手动添加。
查看权限
使用ls -l命令可查看文件权限,
$ ls -l hello.sh -rw-r--r-- 1 user user 48 Oct 20 10:30 hello.sh
输出中的-rw-r--r--表示:文件所有者(user)有读写权限,所属组和其他用户仅有读权限,无执行权限(x位为)。
添加执行权限
使用chmod(change mode)命令添加执行权限,常用两种方式:
- 符号法:
+x表示添加执行权限,-x表示移除。chmod +x hello.sh # 为所有用户添加执行权限 chmod u+x hello.sh # 仅添加文件所有者的执行权限
- 数字法:
r=4、w=2、x=1,三组权限相加,例如755表示所有者rwx(7=4+2+1),组和其他用户r-x(5=4+1)。chmod 755 hello.sh
添加权限后,再次查看:
$ ls -l hello.sh -rwxr-xr-x 1 user user 48 Oct 20 10:30 hello.sh
此时x位变为r-x,文件可执行。
文件路径:系统如何找到可执行文件?
终端执行文件时,系统需要通过“路径”定位文件,路径分为绝对路径(从根目录开始,如/home/user/hello.sh)和相对路径(从当前目录开始,如./hello.sh、../scripts/hello.sh)。
为什么常需要前缀?
Linux的PATH环境变量定义了系统默认搜索可执行文件的目录列表(如/bin、/usr/bin、/usr/local/bin),当输入命令(如ls)时,系统会按PATH中的顺序搜索文件,找到后执行。
当前目录默认不在PATH中(出于安全考虑,避免意外执行当前目录下的恶意程序),因此执行当前目录下的可执行文件时,必须显式指定,告诉系统“在当前目录搜索”。
$ hello.sh # 错误:系统在PATH目录中找不到hello.sh bash: hello.sh: command not found $ ./hello.sh # 正确:明确指定当前目录下的文件 Hello, Linux!
执行可执行文件的具体步骤
场景1:执行编译后的二进制文件
以C语言为例,编写hello.c:
#include <stdio.h>
int main() {
printf("Hello from binary!\n");
return 0;
}
步骤1:编译生成可执行文件
使用gcc编译器,通过-o参数指定输出文件名:
gcc hello.c -o hello # 生成hello可执行文件
编译后,当前目录会生成hello文件(无扩展名是Linux二进制文件的常见习惯)。
步骤2:添加执行权限(若无)
chmod +x hello
步骤3:执行文件
$ ./hello Hello from binary!
场景2:执行Shell脚本
编写简单的Shell脚本hello.sh:
#!/bin/bash # Shebang行:指定解释器为bash echo "Hello from Shell script!"
关键:Shebang行
脚本文件的第一行#!/bin/bash称为“Shebang”,它告诉系统“使用哪个解释器执行此脚本”,若省略,系统会默认使用当前用户的Shell(如/bin/bash或/bin/zsh),但可能导致兼容性问题。
执行步骤
- 添加执行权限:
chmod +x hello.sh - 执行脚本:
$ ./hello.sh Hello from Shell script!
也可以直接通过解释器执行(无需执行权限,但需明确指定解释器):
$ bash hello.sh Hello from Shell script!
场景3:执行Python等解释型脚本
编写Python脚本hello.py:
#!/usr/bin/env python3 # 使用

