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
全局运行(安装到系统路径)
将文件移动到标准路径(需管理员权限):
sudo cp 文件名 /usr/local/bin/ # 复制到全局路径 文件名 # 任意位置直接运行
常见问题与解决方案
-
权限拒绝(Permission denied)
-bash: ./app: Permission denied
解决:执行
chmod +x app
。 -
文件不存在(No such file)
原因:路径错误或文件未下载完整。
验证:用ls -l 文件名
检查是否存在。 -
动态链接库缺失
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
- 安装依赖库:
-
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位程序
- 确认系统架构:
安全注意事项
-
验证文件来源
- 仅运行可信来源的可执行文件,避免恶意程序。
- 下载后扫描病毒:
clamscan 文件名
(需安装ClamAV)。
-
避免使用
sudo
运行未知程序
防止提权攻击,必要时用沙盒工具(如firejail
)隔离运行。 -
检查文件属性
file 文件名 # 查看文件类型(ELF可执行文件、脚本等) strings 文件名 | less # 查看嵌入的文本(识别可疑内容)
高级技巧
- 后台运行:
nohup ./app & # 退出终端仍运行,日志保存到nohup.out
- 调试运行:
gdb ./app # 使用GDB调试 strace ./app # 跟踪系统调用
总结流程
- 下载文件 → 2.
chmod +x
赋予权限 → 3. 用或绝对路径运行 → 4. 遇错按本文排查。
引用说明参考Linux核心文档(kernel.org/docs)、Ubuntu Manpage仓库及Stack Exchange社区技术讨论,实践前建议查阅具体发行版官方文档(如Ubuntu、CentOS)。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/28149.html