LInux命令只是和Kernel一起被编译进操作系统的存在于FS的ELF格式二进制文件,或者权限足够的脚本,或者一个软链 ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(Object files)中都放了什么东西.以及都以什么样的格式去放这些东西.它自最早在 System V 系统上出现后,被 xNIX 世界所广泛接受,作为缺省的二进制文件格式来使用.可以说,ELF是构成众多xNIX系统的基础之一,所以作为嵌入式Linux系统…
Linux下的可执行文件 Linux下如何查找可执行文件,作为一个Linux小菜刚刚有了这个问题, 在windows中,可以通过后缀名判断是否是可执行文件,比如.exe,.bat等是可执行文件,但是在Linux下呢? Linux下不能简单根据文件后缀判断是否可执行. linux下判断一个文件是否可执行,关键看是否有可执行权限,比如: 在终端中输入:ls -l ,会列出类似于下的列表: -rwxrwxr-x 1 bingyue bingyue 48141 Jul 17 02:50 redis-tr…
由于绝大多数的国内程序员以前只接触过Intel格式的汇编语言,很少或几乎没有接触过AT&T汇编语言,虽然这些汇编代码都是Intel风格的.但在Unix和Linux系统中,更多采用的还是AT&T格式,两者在语法格式上有着很大的不同,其实完全可以使用原来汇编的思路解决问题,只要掌握下面两者的不同: 一.在AT&T汇编格式中,寄存器名要加上' %'作为前缀:而在Intel汇编格式中,寄存器名不需要加前缀.例如: AT&T格式 Intel格式 pushl %eax push eax…
老样子,不多BiBi,直接进入主题! 有时候在linux下编译好QT程序,用QTCreator运行没问题,打包移植到另一台机器上,用命令./XX执行就会报错:error while loading shared libraries:等等问题,有同学可能会问我的依赖库已经放在可执行文件同目录下了,怎么会找不到呢,这里需要把你的可执行文件的目录配置到ld.so.conf文件下,这里介绍两种方法: 一. 1.cd /etc 2.vim ld.so.conf 3.添加你可执行文件的目录,也就是你的依赖库…
很多人也许都碰到过这样的错误:linux下程序刚一运行就报错:Floating point exception. 其实这个问题很容易排查,绝大多数情况情况都是逻辑的问题,如:c = a/b;或 c = a%b; 如果这里面的b不小心是0,则一定会出现Floating point exception的问题,大家可以检查检查啦!哈哈! 当然也有可能是版本的原因:同一个程序在一台高版本Linux上运行时没有问题,而在另一台低版本机器上运行报Floating Point Exception时,那么这极有…
本文给出万能Makefile的具体实现,以及对其中的关键点进行解析.所谓C++万能Makefile,即可编译链接所有的C++程序,而只需作很少的修改. 号称万能Makefile,一统江湖.我对原版的Makefile做了些修改.首先揭开它的庐山真面目: #################################################### # Generic makefile - 万能Makefile # for compiling and linking C++ project…
摘要 ImageMagick是一款功能强大的图片处理工具包,很多互联网应用中都会涉及到图片处理工作,比如切割.缩放.水印.格式转换等.ImageMagick就是一个理想的工具包. 安装基础依赖 先检查一些基本的图片支持包是否已经安装,比如jpge和png RedHat环境下: rpm -qa | grep libpng-devel rpm -qa | grep libjpeg-devel 如果没有,可以用yum或者下载源码安装: yum -y install libpng-devel libjp…
在当前目录下创建一个C源文件并打开: touch test.c gedit test.c直接编译: gcc test.c -o test 分步骤编译: 1) 预处理    gcc -E test.c -o test.i在当前目录下会多出一个预处理结果文件 test.i,打开 test.i 可以看到,在 test.c 的基础上把stdio.h和stdlib.h的内容插进去了. 2) 编译为汇编代码    gcc -S test.i -o test.s其中-S参数是在编译完成后退出,-o为指定文件名…
下面的代码演示如何将当前目录下sj目录下的所有.Z格式文件解压到sj_result目录下. 代码示例: for file in `ls ./sj` do prefix=${file%.*} echo $prefix zcat ./sj/$file > ./sj_result/$prefix done…
用正则表达式匹配时间格式命名的文件夹 ls mypath | grep -E "[0-9]{4}-[0-9]{1,2}" mypath为需要查询的目录 查询出来的文件夹格式为:例 2018-12 如果要 2018-12-1 这种格式则把正则改为 ls mypath | grep -E "[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}" 如果是2018/12/1这种格式就把中间的"-"改为"/" 如果是两种格式都要…