
漫步Linux
Linux使用心得与经验
AnSwEr不是答案
Github:https://github.com/AnSwErYWJ
技术博客:www.answerywj.com
展开
-
UNIX下IO模型分析
UNIX下IO模型分析对UNIX下的五种常见IO模型分析,帮助理解 IO操作的两个阶段以读数据操作为例: 1. 等待内核数据准备(数据拷贝到内核缓冲区) 2. 将数据从内核拷贝到用户空间IO模型UNIX下共有五种常见的IO模型: 下面以recvfrom接口举例阻塞IO默认情况下,所有的套接字都是阻塞的 调用recvfrom接口,进程在IO操作的两个阶段都会阻塞,直到最终数据拷贝到用原创 2017-06-28 10:10:46 · 597 阅读 · 0 评论 -
Linux下C程序的反汇编
Linux下C程序的反汇编前言:本文主要介绍几种反汇编的方法。gccgcc的完整编译过程大致为:预处理->编译->汇编->链接前三个步骤分别对应了-E、-S、-c三个选项。今天我要介绍的第一种方法就是使用-S这个选项。源程序main.c:/************************************************************************* > F原创 2015-12-08 21:07:22 · 36296 阅读 · 8 评论 -
Crontab学习笔记——Linux计划任务
Crontab学习笔记——Linux计划任务简介Crontab是一个用于设置周期性被执行的任务的工具。主要由CronD这个系统服务、配置文件和crontab配置工具组成,会每分钟从配置文件刷新定时任务。安装配置本服务器为Centos 64位系统,已经缺省安装。安装前先检查:crontab -l #是否有计划任务列表service crond status #是否启动服务安装:sudo yum in原创 2015-10-27 17:21:59 · 989 阅读 · 0 评论 -
C语言配置文件解析库——iniparser
C语言配置文件解析库——iniparser前言:在对项目的优化时,发现Linux下没有专门的供给C语言使用的配置文件函数,于是搜索到了iniparser库,可以像那些面向对象语言一样,使用ini文件进行参数配置。介绍iniparser是针对INI文件的解析器。ini文件则是一些系统或者软件的配置文件。iniparser库有三种下载方式: 1. 官方网站 2. 我的github 3. 我的网盘原创 2015-10-22 21:16:49 · 16091 阅读 · 4 评论 -
C语言实现优先级队列——priqueue
C语言实现优先级队列在回顾一个学长的项目时,发现他在串口的多线程操作时不是单纯的使用互斥量在读写操作时来共享串口,而是使用了一个优先级队列,在共享串口的基础上,可以设定读或写命令的优先级来决定命令执行序列。在这里,我来分享这个优先级队列的源代码,虽然自己还不是吃的很透,但是现在这里留下记录,希望下次使用时能更进一步,也欢迎大家在下面讨论,交流。源码:priqueue反馈与建议微博:@AnSwEr不原创 2015-10-22 00:45:46 · 2926 阅读 · 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 · 1673 阅读 · 1 评论 -
浅谈Linux下Makefile编写
浅谈Linux下Makefile的编写前言:本文简要介绍Makefile文件的编写规范,结合具体项目中的应用进行讲解。具体代码地址: https://github.com/AnSwErYWJ/DogFood/blob/master/Makefile简介Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法原创 2015-10-05 19:35:05 · 2208 阅读 · 0 评论 -
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 · 2093 阅读 · 0 评论 -
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 · 2312 阅读 · 2 评论 -
VIM中Ctags插件的常用方法
『插件介绍』Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。比如,tags文件就是Taglist和OmniCppComplete工作的基础。『下载和安装』一、我是使用apt-get安装的:sudo apt-get install ctags转载 2015-04-10 18:32:54 · 1108 阅读 · 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 · 3991 阅读 · 3 评论 -
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 · 1982 阅读 · 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 · 3407 阅读 · 0 评论 -
linux下nohup命令——让程序在远程主机后台运行
最近做的一个项目,需要登录到远程主机进行运行调试,采取的是talent远程登录。进行了几次实验后发现当运行程序后关闭终端即关闭talent登录后程序有时候也会停止运行,这让我很苦恼,本来想采取守护进程进行编写程序,可是太麻烦,而且这样时间上或许来不及了,所以上网查找了另外一种方法: 用nohup命令启动程序:nohup & 提示: [~]$ appending output原创 2015-06-14 13:21:29 · 5335 阅读 · 0 评论 -
Linux程序设计的一些小工具使用
在Linux下,除了gdb,其实还有一些不错的工具是值得一试的,我就结合最近写的一个ping程序来介绍:注:程序地址:https://github.com/AnSwErYWJ/Pingcflow:打印出一个函数调用树当然你也可以选择将其重定向到一个文件。他的-i选项可以反向输出函数的调用树。先介绍到这,欢迎大家补充。我以后遇到好工具也会继续更新的。。。原创 2015-07-19 22:39:49 · 976 阅读 · 0 评论 -
Linux命令行文本加密的小技巧
Linux命令行文本加密的小技巧我在学习shell攻略时了解到了这个方法,感觉简单有趣,所以现在把它整理出来和大家分享。ROT13文本编码介绍ROT13(回转13位,rotateby13places,有时中间加了个减号称作ROT-13)是一种简易的置换暗码。把 ROT13 称为“加密”是大方的,“文本模糊处理”更准确些。有时候它被用来隐藏文本中潜在的攻击内容。原理套用ROT13到一段文字上仅仅只需要原创 2015-08-18 12:35:52 · 4806 阅读 · 0 评论 -
使用shell脚本清空文件
使用shell脚本清空文件在最近的项目中,会生成很多日志文件,所以需要写一个脚本来手动清空它们,下面提供几种典型方法。方法1代码#!/bin/bash##方法1echo "" > $1echo "$1 cleaned up."运行截图说明我想大家应该注意到了文件其实并没有真正被清空,而是有一个空行。方法2代码#!/bin/bash##方法2: > $1echo "$1 cleaned原创 2015-08-20 11:08:51 · 19769 阅读 · 2 评论 -
Linux平台上SQLite数据库教程(一)——终端使用篇
Linux平台上SQLite数据库的安装与使用SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,可能只需要几百K的内存就够了。能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口。安装在终端输入: sudo apt-get instal原创 2015-08-28 22:00:22 · 25991 阅读 · 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 · 2439 阅读 · 0 评论 -
Linux fork炸弹解析 ——Linux Fork Bomb
Linux Fork Bomb:(){ :|: & };:是一个bash函数,以Fork Bomb闻名,是一个拒绝服务攻击 的Linux 系统。如果你好奇地去执行了这个命令,那么赶快重启系统吧~!命令解析:(){ : | : &};::在这里是一个函数名,我们定义之,并在后面执行它。:|:&,:函数的输出通过管道传给另一个冒号函数作为输入,并且在后台执行。{ };标识着里面的内容是原创 2015-08-31 10:47:26 · 8311 阅读 · 0 评论 -
Friendly ARM开发板安装Linux系统教程
友善之臂ARM9开发板安装Linux系统教程前言:智能蘑菇房项目的运行环境是友善之臂ARM9开发板,所以需要在上面灌一个linux系统,下面我来简单介绍一下。准备读卡器SD卡串口线一根(USB转串口也可以)Friendly ARM开发板SuperBoot烧写BootLoader:在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从原创 2015-09-01 11:57:16 · 4945 阅读 · 0 评论 -
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 · 1231 阅读 · 0 评论