当前位置:首页 > Linux > 正文

Linux可执行文件运行教程?

在Linux中运行可执行文件,需先通过 chmod +x 文件名赋予执行权限,再使用 ./文件名执行,若为系统命令或已配置环境变量,可直接输入文件名运行,图形界面可双击执行。

核心前提:赋予可执行权限

Linux文件默认无执行权限,需手动添加:

chmod +x 文件名  # 为当前用户添加权限
chmod a+x 文件名 # 为所有用户添加权限

示例
若文件名为 app,执行:

chmod +x app

运行可执行文件的4种方法

直接运行(需在文件所在目录)

./文件名

示例

./app

通过绝对路径运行(无需进入目录)

/完整路径/文件名

示例

/home/user/projects/app

使用解释器运行脚本

  • Shell脚本(.sh)
    bash script.sh  # 无需权限也可运行
  • Python脚本(.py)
    python3 script.py

全局运行(安装到系统路径)

将文件移动到标准路径(需管理员权限):

Linux可执行文件运行教程?  第1张

sudo cp 文件名 /usr/local/bin/  # 复制到全局路径
文件名  # 任意位置直接运行

常见问题与解决方案

  1. 权限拒绝(Permission denied)

    -bash: ./app: Permission denied

    解决:执行 chmod +x app

  2. 文件不存在(No such file)
    原因:路径错误或文件未下载完整。
    验证:用 ls -l 文件名 检查是否存在。

  3. 动态链接库缺失

    error while loading shared libraries: libxxx.so: cannot open shared object file

    解决

    • 安装依赖库:sudo apt install libxxx(Ubuntu/Debian)或 sudo yum install libxxx(CentOS/RHEL)。
    • 手动指定库路径:
      export LD_LIBRARY_PATH=/path/to/libs:$LD_LIBRARY_PATH
      ./app
  4. 32/64位不兼容
    现象bash: ./app: cannot execute binary file: Exec format error
    解决

    • 确认系统架构:uname -m(x86_64为64位,i686为32位)。
    • 安装兼容库:
      sudo apt install libc6:i386  # Ubuntu/Debian支持32位程序

安全注意事项

  1. 验证文件来源

    • 仅运行可信来源的可执行文件,避免反面程序。
    • 下载后扫描干扰:clamscan 文件名(需安装ClamAV)。
  2. 避免使用sudo运行未知程序
    防止提权攻击,必要时用沙盒工具(如firejail)隔离运行。

  3. 检查文件属性

    file 文件名  # 查看文件类型(ELF可执行文件、脚本等)
    strings 文件名 | less  # 查看嵌入的文本(识别可疑内容)

高级技巧

  • 后台运行
    nohup ./app &  # 退出终端仍运行,日志保存到nohup.out
  • 调试运行
    gdb ./app      # 使用GDB调试
    strace ./app   # 跟踪系统调用

总结流程

  1. 下载文件 → 2. chmod +x赋予权限 → 3. 用或绝对路径运行 → 4. 遇错按本文排查。

引用说明参考Linux核心文档(kernel.org/docs)、Ubuntu Manpage仓库及Stack Exchange社区技术讨论,实践前建议查阅具体发行版官方文档(如Ubuntu、CentOS)。

0