设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
Linux 基础讨论区(新手速成)
›
关于Linux可执行文件的格式问题
返回列表
查看:
995
|
回复:
8
关于Linux可执行文件的格式问题
[复制链接]
nokuta1024
nokuta1024
当前离线
积分
19
IP卡
狗仔卡
发表于 2004-7-4 15:51:58
|
显示全部楼层
|
阅读模式
初学Linux,对Linux的可执行文件格式有点搞不清楚,下面我详细说说我的困惑,希望得到各位大侠指点。
我目前掌握的知识:
在windows平台下,可执行文件总是.exe或者.com的,也就是说,我们通过后缀名来识别该文件是否可执行。但是在linux平台下,这样的方法失效了,我们要知道一个文件是否可执行,似乎并非通过后缀名来判断。我知道的方式是用ls -F命令,如果文件名后面带有*号,则为可执行文件。
我的困惑:
1、从论坛搜索到的一些信息显示, linux下面的可执行文件分为ELF、a.out、misc等格式,还有.bin格式的二进制文件,请问这四种格式有什么关系和区别?.bin格式的二进制文件必须加上后缀名.bin吗?ELF、a.out、misc三种格式又是不是二进制形式?它们和.bin格式是包含和被包含关系,还是并行关系?
2、在windows下我们可以直接输入可执行文件的程序名来运行它,或者通过鼠标在窗口环境下直接点击可执行文件。那么在linux环境下,我们也是通过直接在console下面输入可执行文件名来运行它的吗?或者用在xwindows下用鼠标直接点击文件名?我看到一些大侠在运行可执行文件的时候给出了“./可执行文件名”或者“#./可执行文件名”的格式,请问这个“./”和“#./”是什么意思?同时我知道“./可执行文件名 &”是在后台运行的意思,请问后台运行和前台有什么区别?
3、后缀名为.sh的是shell脚本文件的意思吗?脚本文件是不是可执行文件?我尝试过在console下直接输入脚本文件名但无法执行,请问我应该如何执行脚本文件?
4、我用gcc自己编译的程序,例如 gcc -o obj main.c,生成的obj属于哪类可执行文件呢?
问题很多,希望各位大侠能够尽量回答,即使只回答了一小部分,我也非常感谢各位的指导!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2004-7-4 16:48:21
|
显示全部楼层
1,在linux下,判断文件类型用file命令:
file filename
2, ./file 是执行当前目录下的文件, ./表示当前目录
3,linux下可执行文件的含义是此文件被赋予了执行权限!要是脚本文件的话
chmod +x filename后,就可以 ./filename来执行他了! 或者 sh filename
只知道那么多 :sorry ;)
回复
支持
反对
使用道具
举报
显身卡
arone
arone
当前离线
积分
103
IP卡
狗仔卡
发表于 2004-7-4 16:52:10
|
显示全部楼层
我也是新手,我只知道 ./表示当前目录 好象unix下没有想win下执行文件默认路径为当前目录这一说,所以执行文件要加上./表示当前目录。
另可执行文件要加上执行权限才可以执行。
.sh脚本一样,要执行他就要给他执行权限。
这是我理解,其他的我就不清楚了,也不知道对不对,望高手指点。
回复
支持
反对
使用道具
举报
显身卡
yangtou
yangtou
当前离线
积分
1210
IP卡
狗仔卡
发表于 2004-7-4 17:21:05
|
显示全部楼层
unix默认执行文件目录是社在PATH变量里面
echo $PATH就可以看到
如果要执行一个不在path里面的文件就要把文件的路径写出来:/usr/bin/fcitx
如果要执行的文件在当前目录就可以./fcitx
. 是当前目录,.. 是当前目录的上级目录,在任一个目录下ls -a都可以看到.和..两个文件夹
回复
支持
反对
使用道具
举报
显身卡
addone
addone
当前离线
积分
1305
IP卡
狗仔卡
发表于 2004-7-9 15:52:59
|
显示全部楼层
顶一下。这个问题我也想问。
不知道哪位大虾能指导一下。
不过第4个问题,obj文件应该不属于可执行文件,只是经编译形成的目标文件而已。
回复
支持
反对
使用道具
举报
显身卡
addone
addone
当前离线
积分
1305
IP卡
狗仔卡
发表于 2004-7-9 16:29:04
|
显示全部楼层
另外,除了可执行文件外,其他文件是怎么回事?
比如.deb文件是靠扩展名识别的吗?.zip文件和文本文件又是怎么回事?为什么我有两个.rpm文件,有一个识别为软件包,有一个识别为脚本?
回复
支持
反对
使用道具
举报
显身卡
minus273
minus273
当前离线
积分
1395
IP卡
狗仔卡
发表于 2004-7-9 16:45:23
|
显示全部楼层
unix(几乎)从来不用扩展名识别文件
ELF a.out bin和interpreted都有文件头的
通过文件头识别
比如文件头有个#!的
肯定是interpreted
回复
支持
反对
使用道具
举报
显身卡
minus273
minus273
当前离线
积分
1395
IP卡
狗仔卡
发表于 2004-7-9 16:46:31
|
显示全部楼层
现代的GNU/linux雇佣ELF档案格式
回复
支持
反对
使用道具
举报
显身卡
addone
addone
当前离线
积分
1305
IP卡
狗仔卡
发表于 2004-7-9 17:16:47
|
显示全部楼层
解析Linux特殊文件
http://www.easysea.com/diannao/b ... nux/index01/098.htm
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
SuSE Linux
服务器架设、应用、维护
Linux 程序设计专题讨论
Ubuntu Linux 专题讨论
LinuxSir 论坛管理
红旗 REDFLAG Linux
网络技术\网络安全讨论
shell进阶应用、shell编程
Mandriva Linux
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表