Linux终端执行可执行文件,从路径、权限到实践步骤

admin
Linux终端执行可执行文件需掌握路径、权限及实践步骤,路径分绝对路径(如/bin/ls)和相对路径(如./script.sh),前者从根目录定位,后者基于当前目录,权限是核心,通过ls -l查看rwx权限位,若无执行权限需用chmod +x赋权,实践步骤为:先用ls确认文件存在,ls -l检查权限,chmod +x赋予执行权,最后通过./文件名执行(当前目录需加./)或绝对路径调用,确保路径正确、权限充分即可顺利运行。

在Linux系统中,终端(命令行)是与系统交互的核心方式之一,而执行可执行文件是终端操作中最常见的任务之一,无论是编译生成的二进制程序、编写的Shell脚本,还是安装的第三方工具,都需要通过终端命令来运行,本文将从可执行文件的本质、执行前的准备、具体操作步骤到常见问题解决,全面介绍Linux终端执行可执行文件的方法与原理。

什么是可执行文件?

在Linux中,可执行文件是指系统可以直接识别并运行的文件,它可以是两种主要类型:

  1. 二进制可执行文件:由C、C++、Rust等高级语言编译生成的机器码文件(如gcc编译后的a.out/bin/ls等),系统内核可直接加载到内存执行。
  2. 脚本可执行文件:包含一系列命令文本的文件(如Shell脚本.sh、Python脚本.py等),需通过解释器(如bashpython3)逐行执行。

无论是哪种类型,Linux系统都需要通过文件权限和路径信息来确定“如何执行”和“在哪里执行”。

Linux终端执行可执行文件,从路径、权限到实践步骤

执行可执行文件的核心前提:权限与路径

文件权限:可执行权限的设置

Linux通过r(读)、w(写)、x(执行)三组权限控制文件访问,只有拥有执行权限(x)的文件才能被运行,默认情况下,新建的文件(如通过touchecho创建的脚本)没有执行权限,需手动添加。

查看权限

使用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=4w=2x=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),但可能导致兼容性问题。

执行步骤

  1. 添加执行权限:chmod +x hello.sh
  2. 执行脚本:
    $ ./hello.sh
    Hello from Shell script!

    也可以直接通过解释器执行(无需执行权限,但需明确指定解释器):

    $ bash hello.sh
    Hello from Shell script!

场景3:执行Python等解释型脚本

编写Python脚本hello.py

#!/usr/bin/env python3  # 使用
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码