linux
AnSwEr不是答案
Github:https://github.com/AnSwErYWJ
技术博客:www.answerywj.com
展开
-
--hash-style兼容性问题
文章目录问题名词解释实验分析结论解决方案参考本文记录了解决 --hash-style 兼容性问题的过程。问题dlopen failed: empty/missing DT_HASH in "libxxx.so" (built with --hash-style=gnu?)最近,稳定性监控平台,被这一行错误日志霸榜,刚看到时也一脸懵逼,下面我们来逐步分析。名词解释首先需要查阅一下相关文档,了解一下其中的”新朋友”。DT_HASHELF 中的一个 Sections,保存了一个用于查找符原创 2020-05-17 16:10:13 · 2589 阅读 · 4 评论 -
浅谈Linux下Makefile编写
浅谈Linux下Makefile的编写前言:本文简要介绍Makefile文件的编写规范,结合具体项目中的应用进行讲解。具体代码地址: https://github.com/AnSwErYWJ/DogFood/blob/master/Makefile简介Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法原创 2015-10-05 19:35:05 · 2196 阅读 · 0 评论 -
C语言配置文件解析库——iniparser
C语言配置文件解析库——iniparser前言:在对项目的优化时,发现Linux下没有专门的供给C语言使用的配置文件函数,于是搜索到了iniparser库,可以像那些面向对象语言一样,使用ini文件进行参数配置。介绍iniparser是针对INI文件的解析器。ini文件则是一些系统或者软件的配置文件。iniparser库有三种下载方式: 1. 官方网站 2. 我的github 3. 我的网盘原创 2015-10-22 21:16:49 · 15992 阅读 · 4 评论 -
CentOS下搭建LAMP环境
CentOS下搭建LAMP环境前言:在这里将介绍如何在CentOS下搭建LAMP环境(全部使用源码编译安装),用于web服务器开发。LAMP: Linux + Apache + PHP + Mysql。系统: CentOS 7,64位。CentOS安装我选取了64位的CentOS 7这个Linux系统,安装过程也很简单,不再过多叙述,只稍微介绍一下我的分区情况: 分区名 大小 /bo原创 2015-09-23 16:52:21 · 2280 阅读 · 2 评论 -
GDB使用教程
GDB使用教程前言: gdb(GNU debugger)是GNU开发组织发布的一个强大的UNIX/Linux下的程序调试工具。启动gdbgcc -g main.c //调试性编译gdb a.out启动后出现软件信息: 列出源代码(gdb) list9 10 int add(int n)11 {12 return n+1;13 }14 15 int main(原创 2015-09-23 21:37:56 · 2070 阅读 · 0 评论 -
Linux Shell 脚本调试总结
自制Linux屏保程序 这是一个我自制的Linux下屏幕保护程序的脚本.sl命令你没看错,是sl,不是ls. “sl”代表了蒸汽机机头,我们的屏保图像就是利用了sl所展示的蒸汽机,效果如下:在当下两个主流系统中的安装命令如下:#Ubuntu:sudo apt-get install sl#Centos:sudo yum install slsl还有一些选项,可以展示不同的效果: -a原创 2016-04-15 18:47:19 · 614 阅读 · 0 评论 -
Linux下adb devices : no permissions解决方案
Linux下adb devices : no permissions解决方案Linux下adb工具下载,下载解压到/usr/bin目录。问题当我们在Linux下连接安卓手机,进行adb调试时,执行adb devices会出现如下错误提示:List of devices attached???????????? no permissions解决方案首先创建一个规则配置文件:sudo vi /etc/原创 2016-04-29 18:13:46 · 1935 阅读 · 0 评论 -
Git实用命令补充
Git实用命令补充这是对廖雪峰老师的git教程的一个补充,增加了一些实用却很少被提及的命令.如果你是初学者,建议先阅读廖雪峰老师的git教程.ssh连接检查git支持https和ssh等协议.https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,而ssh支持的原生git协议速度最快. 当ssh配置完成后,再次检查ssh连接情况:ssh -T git@github.com如果看到如下所原创 2016-07-09 00:59:10 · 480 阅读 · 0 评论 -
Crontab学习笔记——Linux计划任务
Crontab学习笔记——Linux计划任务简介Crontab是一个用于设置周期性被执行的任务的工具。主要由CronD这个系统服务、配置文件和crontab配置工具组成,会每分钟从配置文件刷新定时任务。安装配置本服务器为Centos 64位系统,已经缺省安装。安装前先检查:crontab -l #是否有计划任务列表service crond status #是否启动服务安装:sudo yum in原创 2015-10-27 17:21:59 · 980 阅读 · 0 评论 -
Linux的硬链接和软链接
Linux下链接的命令是ln,可以通过man ln查看.硬链接链接的是索引节点(inode),硬链接文件inode值相同(在Linux的文件系统的文件不管是什么类型都给它分配一个indoe号),所以硬链接文件不占用磁盘空间.相当于创建一个别名.有两个限制:目录不能创建硬链接;只能在同一个文件系统中进行硬链接.命令: ln srouce dest 对源文件进行修改或删除,硬链接文件会同步修原创 2016-09-07 14:48:11 · 469 阅读 · 0 评论 -
Shell脚本浮点运算
本文将介绍几种Linux下通过Shell脚本进行浮点数计算的方法。WhyBash Shell本身不具备处理浮点计算的能力, 如expr命令只支持整数运算 :#!/bin/basha=59b=60expr $a / $b运行结果 :$ ./cal.sh0$Plan A使用bc进行处理。 代码 :#!/bin/basha=59b=60echo "scale=4; $a / $b" | b原创 2016-09-07 14:52:03 · 6799 阅读 · 0 评论 -
Linux下处理json数据
Linux下处理json数据当我们在LInux下需要处理json数据时,第一反应是用脚本编写一个工具,这样即耗时又不通用. 本文将介绍专门的命令行json处理工具jq. 安装Ubuntu用户可以直接使用下列命令安装:$ sudo apt-get install jq 也可以选择源码安装,当然最简单的方法是直接下载可执行文件,不过需要找到适配你系统的版本.详细的安装方法可以参考这里.使用首先构建一个原创 2016-11-23 16:26:21 · 8093 阅读 · 0 评论 -
Linux下core文件使用
有时候程序会异常退出而不带任何日志,此时就可以使用code文件进行分析,它会记录程序运行的内存,寄存器,堆栈指针等信息什么是core文件通常在Linux下遇到程序异常退出或者中止,我们都会使用core文件进行分析,其中包含了程序运行时的内存,寄存器,堆栈指针等信息,格式为ELF,可以理解是程序工作当前状态转储成一个文件,通过工具分析这个文件,我们可以定位到程序异常退出或者终止时...原创 2018-03-07 18:36:30 · 405 阅读 · 0 评论 -
Ubuntu下使用github+jekyll搭建博客
Ubuntu下使用github+jekyll搭建博客前言:本文章仅作为我自己搭建博客的一个记录,无原理性的概念,请见谅。注册github这一步较为简单,请自行解决。安装Jekyll需要先安装ruby和rubygems:sudo apt-get install ruby1.9.1-devsudo apt-get install rubygemsexport PATH=原创 2015-10-16 15:32:03 · 1654 阅读 · 1 评论 -
Ubuntu系统安装ARM-linux-gcc
Ubuntu系统安装arm-linux-gcc交叉编译器前言:由于开发的智能蘑菇房项目最终是要运行在开发板上的,而平时的开发工作则是在自己的PC上完成,为了不必每次编译都在arm板上进行,所以需要在PC上安装交叉编译环境。另外,我的系统是64位的Ubuntu,下面的安装过程也是在这上面完成的。安装1.首先需要从网上下载或者从光盘提取arm-linux-gcc安装包。(我是用的是光盘中的arm-lin原创 2015-09-01 12:11:21 · 1213 阅读 · 0 评论 -
Friendly ARM开发板安装Linux系统教程
友善之臂ARM9开发板安装Linux系统教程前言:智能蘑菇房项目的运行环境是友善之臂ARM9开发板,所以需要在上面灌一个linux系统,下面我来简单介绍一下。准备读卡器SD卡串口线一根(USB转串口也可以)Friendly ARM开发板SuperBoot烧写BootLoader:在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从原创 2015-09-01 11:57:16 · 4820 阅读 · 0 评论 -
ubuntu64位安装ARM-linux-gcc
本人安装时是使用官方提供的arm-linux-gcc-4.5.1这个版本的。步骤如下:将安装包放入到本地的一个文件夹中,然后tar xvzf xxx.tar.gz -C / ,这样解压后的文件会在/opt/FriendlyARM/toolschain/4.5.1这个里面。接着是进入root权限,使用gedit /root/.bashrc 修改这个文件,添加export PATH=$PA原创 2015-05-29 10:37:33 · 1966 阅读 · 1 评论 -
linux下脚本录制工具——script和scriptreplay
在linux环境下,想要录制一段屏幕视屏不是特别方便。在做这次项目时,通过查找资料,找到了一种方便而且便捷的方法,分享给大家。linux下有script和scriptreplay这两个工具组合用于录制命令行。在新版本系统中,已经集成了这两个工具,所以直接使用即可:$script -t 2>timing.log -a >output.session$command$command$exit原创 2015-06-11 22:12:18 · 3376 阅读 · 0 评论 -
linux下nohup命令——让程序在远程主机后台运行
最近做的一个项目,需要登录到远程主机进行运行调试,采取的是talent远程登录。进行了几次实验后发现当运行程序后关闭终端即关闭talent登录后程序有时候也会停止运行,这让我很苦恼,本来想采取守护进程进行编写程序,可是太麻烦,而且这样时间上或许来不及了,所以上网查找了另外一种方法: 用nohup命令启动程序:nohup & 提示: [~]$ appending output原创 2015-06-14 13:21:29 · 5305 阅读 · 0 评论 -
Linux程序设计的一些小工具使用
在Linux下,除了gdb,其实还有一些不错的工具是值得一试的,我就结合最近写的一个ping程序来介绍:注:程序地址:https://github.com/AnSwErYWJ/Pingcflow:打印出一个函数调用树当然你也可以选择将其重定向到一个文件。他的-i选项可以反向输出函数的调用树。先介绍到这,欢迎大家补充。我以后遇到好工具也会继续更新的。。。原创 2015-07-19 22:39:49 · 962 阅读 · 0 评论 -
使用shell脚本清空文件
使用shell脚本清空文件在最近的项目中,会生成很多日志文件,所以需要写一个脚本来手动清空它们,下面提供几种典型方法。方法1代码#!/bin/bash##方法1echo "" > $1echo "$1 cleaned up."运行截图说明我想大家应该注意到了文件其实并没有真正被清空,而是有一个空行。方法2代码#!/bin/bash##方法2: > $1echo "$1 cleaned原创 2015-08-20 11:08:51 · 19637 阅读 · 2 评论 -
Linux命令行文本加密的小技巧
Linux命令行文本加密的小技巧我在学习shell攻略时了解到了这个方法,感觉简单有趣,所以现在把它整理出来和大家分享。ROT13文本编码介绍ROT13(回转13位,rotateby13places,有时中间加了个减号称作ROT-13)是一种简易的置换暗码。把 ROT13 称为“加密”是大方的,“文本模糊处理”更准确些。有时候它被用来隐藏文本中潜在的攻击内容。原理套用ROT13到一段文字上仅仅只需要原创 2015-08-18 12:35:52 · 4735 阅读 · 0 评论 -
Linux平台上SQLite数据库教程(二)——C语言API介绍
Linux平台上SQLite数据库教程(二)——C语言API介绍本文将介绍几个基本的SQLite3数据库的C语言API接口,主要用到两个文件:sqlite3.c、sqlite3.h。源码地址:https://github.com/AnSwErYWJ/SQLite。打开数据库1.原型:int sqlite3_open( const char* filename, /原创 2015-08-29 21:42:38 · 2421 阅读 · 0 评论 -
ubuntu下math.h头文件的编译问题
在ubuntu下写了个2次方函数,如下:/************************************************************************* > File Name: power.c > Author:AnSwEr > Mail:yuanweijie1993@gmail.com > Created Time: 2015年04月16日 星期原创 2015-04-16 20:12:41 · 3967 阅读 · 3 评论 -
Linux平台上SQLite数据库教程(一)——终端使用篇
Linux平台上SQLite数据库的安装与使用SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,可能只需要几百K的内存就够了。能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口。安装在终端输入: sudo apt-get instal原创 2015-08-28 22:00:22 · 25684 阅读 · 0 评论 -
Linux fork炸弹解析 ——Linux Fork Bomb
Linux Fork Bomb:(){ :|: & };:是一个bash函数,以Fork Bomb闻名,是一个拒绝服务攻击 的Linux 系统。如果你好奇地去执行了这个命令,那么赶快重启系统吧~!命令解析:(){ : | : &};::在这里是一个函数名,我们定义之,并在后面执行它。:|:&,:函数的输出通过管道传给另一个冒号函数作为输入,并且在后台执行。{ };标识着里面的内容是原创 2015-08-31 10:47:26 · 8249 阅读 · 0 评论 -
VIM中Ctags插件的常用方法
『插件介绍』Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。比如,tags文件就是Taglist和OmniCppComplete工作的基础。『下载和安装』一、我是使用apt-get安装的:sudo apt-get install ctags转载 2015-04-10 18:32:54 · 1097 阅读 · 0 评论