
Linux开发
danforn
纳言敏行,随遇而安
展开
-
最优秀的5个Linux文本编辑器
Vi / Vim Editor Vim以绝对优势获胜在大家的意料之中。如果你不熟悉最好的5个Linux文本编辑器中的任何一个,阅读本文剩下的部分对那些编辑器多点了解。1. Vim Editor主页: http://www.vim.org/ 作者: Bram Moolenaar最新稳定版本: Vim 7.2 用 C 和 Vim scri转载 2013-12-05 09:59:17 · 2433 阅读 · 0 评论 -
Linux shell编程
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对原创 2007-07-25 12:18:00 · 1173 阅读 · 2 评论 -
Linux Shell变量使用
一、本地变量的使用本地变量就如同局部变量一样,只在本SHELL中起作用。它不会影响到其他SHELL中的变量。1。显示变量值可以使用echo命令。需要注意的是,使用变量的时候必须在变量名前加上$符号2。清除变量使用unset命令可以清除命令。3。显示所有本地SHELL变量SHELL中预定义了一些环境变量。要想显示这些命令,可以使用set命令。另外,用户自己已经定义过的本地变量也会在其中显示。原创 2007-07-27 18:02:00 · 1153 阅读 · 0 评论 -
编写shell脚本
在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。 下面,让我们一起来看看shell是如何工作的: 建立一个脚本 Linux中有好多中不同的shell,原创 2007-07-27 17:00:00 · 1136 阅读 · 0 评论 -
bash入门教程
想玩转bash吗? 那么进入bash编程教学 Shell Script(bash)简介 众所皆知地,UNIX上以小工具著名,利用许多简单的小工具,来完成原本需要大量软体开发的工作,这一点特色,使得UNIX成为许多人心目中理想的系统平台。 在众多的小工具中,Shell Script算得上是最基本、最强大、运用最广泛的一个。它运用围之广,不但从系统启动、程式编译、定期作业、上网连线,甚至安装整转载 2007-07-25 12:27:00 · 1262 阅读 · 0 评论 -
shell编程简介
Bourne Shell 介绍:Bourne Shell 基础及其他很多有用的特性,shell编程及组织。 主要内容: .shell基础 基本介绍,环境,选项,特殊字符 .shell变量 用户定义变量,环境变量,位置变量(shell 参数) .shell script编程 条件测试,循环及重复控制 .shell定制 1.shell基础知识 作者:Stephen Bourne 在Bell实验室开发转载 2007-07-25 12:15:00 · 1647 阅读 · 0 评论 -
跟我一起写Makefile (共14 篇)
跟我一起写 Makefile(一)http://blog.youkuaiyun.com/haoel/archive/2004/02/24/2886.aspx跟我一起写 Makefile(二)http://blog.youkuaiyun.com/haoel/archive/2004/02/24/2887.aspx跟我一起写 Makefile(三)http://blog.youkuaiyun.com/haoel/arch转载 2007-06-25 17:47:00 · 2007 阅读 · 1 评论 -
批处理命令用法简介
一.简单批处理内部命令简介1.Echo 命令打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。语法echo [{on|off}] [message]Sample:@echo off / echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体原创 2007-06-25 16:54:00 · 1699 阅读 · 0 评论 -
Linux下的C语言开发初学者指南
一、工具的使用1、学会使用vim/emacs,vim/emacs是linux下最常用的源码编辑具,不光要学会用它们编辑源码,还要学会用它们进行查找、定位、替换等。新手的话推荐使用vim,这也是我目前使用的文本编辑器。vim有一个中文在线手册http://vcd.gro.clinux.org。2、学会makefile文件的编写规则,并结合使用工具aclocal、autoconf和automake原创 2007-01-17 16:39:00 · 1519 阅读 · 0 评论 -
Linux中断解析
中断是什么中断的汉语解释是半中间发生阻隔、停顿或故障而断开。那么,在计算机系统中,我们为什么需要“阻隔、停顿和断开”呢?举个日常生活中的例子,比如说我正在厨房用煤气烧一壶水,这样就只能守在厨房里,苦苦等着水开——如果水溢出来浇灭了煤气,有可能就要发生一场灾难了。等啊等啊,外边突然传来了惊奇的叫声“怎么不关水龙头?”于是我惭愧的发现,刚才接水之后只顾着抱怨这份无聊的差事,居然忘了这事转载 2007-01-04 13:12:00 · 2317 阅读 · 0 评论 -
vi操作手册
vi 的工作模式 编辑模式 插入模式 命令模式 shell 切换 选项设置 vim 和 gvim 的高级特色 1.1 vi 的工作模式Vi 在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标、删除文字、复制或粘贴文字等。这些按键均是普通的字符,例如 l 是向右移动光标,相当于向右箭头键,k 是向下移动光标,相当于向下箭头键。在编辑模式下,用原创 2006-12-29 12:26:00 · 2568 阅读 · 0 评论 -
GCC参数详解
gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld] [参数详解] -x language filename 设原创 2006-12-28 11:51:00 · 5264 阅读 · 0 评论 -
Vi操作指南
1)文件操作 vi FileName 打开文件 FileName,并将光标置于第一行首。 vi +n FileName 打开文件 FileName,并将光标置于第 n 行首。 vi + FileName 打开文件 FileName,并将光标置于最后一行。 vi + /pattern File 打开文件 File,并将光标置于其中第一个于 pattern 匹配的字符串处。 vi –r FileNam原创 2006-12-29 12:00:00 · 1444 阅读 · 0 评论 -
Makefile规则
目录1.简介 1.1.准备工作 1.2.Makefile介绍 1.3.规则简介 1.4.make工作原理 1.5.使用变量 1.6.简化命令 1.7.另一种风格 1.8.清理 2.Makefile 2.1.makefile名字 2.2.包含 2.3.‘MAKEFILE’变量 2.4.如何重新生成makefile 2.5.重载makefile 3.规则 3.1.例子 3.2.规则的语法 3.3.通原创 2006-12-25 11:10:00 · 2307 阅读 · 0 评论 -
Shell编程
任何发明都具有供用户使用的界面。UNIX供用户使用的界面就是Shell(DOS的command熟悉吧,但UNIX的要强大的多)。 Shell为用户提供了输入命令和参数并可得到命令执行结果的环境。 为了不同的需要,UNIX提供了不同的Shell。现在的UNIX大部分都支持BourneShell,以下教程就以BourneShell(Bsh)为例,一步步的领略UNIX Shell的强大功能,占先原创 2007-07-25 14:15:00 · 1988 阅读 · 0 评论 -
Shell 编程之一
快捷操作符 熟悉C语言的朋友可能会很喜欢下面的表达式: [ -f "/etc/shadow" ] && echo "This computer uses shadow passwors" 这里 && 就是一个快捷操作符,如果左边的原创 2007-07-27 17:38:00 · 1029 阅读 · 0 评论 -
socket编程头文件和常用函数
sys/types.h:数据类型定义sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数netdb.h:提供设置及获取域名的函数sys/ioctl.h:提供对I/O控制的函数sys/poll.h:提供socket等待测试机制的函数 其他在网络程序中常见的头文件原创 2010-03-19 16:11:00 · 1518 阅读 · 0 评论 -
socket编程头文件和常用函数
sys/types.h:数据类型定义sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数netdb.h:提供设置及获取域名的函数sys/ioctl.h:提供对I/O控制的函数sys/poll.h:提供socket等待测试机制的函数 其他在网络程序中常见的头文件原创 2009-04-04 17:20:00 · 7178 阅读 · 2 评论 -
GNU C 的 __attribute__ 机制
GNU C的__attribute__ 可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__ 后面紧跟一对括号,里面是相应的__attribute__参数。__attribute__ 语法格式为:__attribute__ ((attribute-list))位置原创 2008-09-02 17:21:00 · 927 阅读 · 0 评论 -
文件和设备编程
文件和设备编程 目 录 文件和设备编程 文件访问原语 网卡驱动编写 概述 设备驱动 需要注意 参考 设备驱动转载 2008-01-02 15:36:00 · 1987 阅读 · 0 评论 -
编译Linux内核过程简介
最近研究了一下Linux内核的编译,有些许心得,这里要谈的不涉及到源码,只是一些内核编译的步骤及相关知识。首先有一台装有Linux的系统,编译内核可以在本机上直接对本机内核进行编译,也可以从网上下载内核在其基础上进行编译.我们这里详细讲一下升级内核的方法,您可以从www.kernel.org下载到最新的Kernel版本,我们这里以FC 8为例(其他版本其实也都一样,只是在make原创 2007-12-26 20:03:00 · 2035 阅读 · 1 评论 -
Linux下的软件包安装方法
1、已经编译打包好的xxx.rpm 如果你的Linux系统带有安装程序,最好用系统自带的安装程序来安装。比如SuSE的YaST2就带有安装程序,在KDE环境下只要是rpm,就可以在Konqueror里面点击再“Install with YaST2”,这样做的好处是YaST2会给你提示包的详细信息,自动检查信赖关系,而且以后可以方便地在YaST2里面卸载软件包。SuSE的Red-Carpet也原创 2007-10-12 13:53:00 · 1917 阅读 · 0 评论 -
Linux编译安装源码包软件
一、什么是源码包软件;顾名思义,源码包就是源代码的可见的软件包,基于Linux和BSD系统的软件最常见;在国内源可见的软件几乎绝迹;大多开源软件都是国外出品;在国内较为出名的开源软件有fcitx;lumaqq;Lumaqq及scim等; 但软件的源代码可见并不等于软件是开源的,我们还要以软件的许可为准;比如有些软件是源码可见的,但他约定用户只能按他约定的内容来修改;比如vbb论坛程序;所以一个转载 2007-10-12 13:50:00 · 1935 阅读 · 0 评论 -
GCC与Dev-Cpp支持C99标准设置方法
GCC与Dev-Cpp都是支持C99的,但其默认值不是C99标准,为了使用C99语法可以进行如下操作:(1) GCC编译时加入编译选项 -std=C99 (注意C为大写)(2) Dev-Cppstep1 工具->编译选项->编译器选项卡中,在"编译时加入以下命令"复选框前打钩,里面输入命令 -std=c99 (与GCC不同,这里c99中的字母c是小写)s原创 2007-09-17 20:36:00 · 11863 阅读 · 3 评论 -
Linux系列书籍导读
原创 2007-08-01 11:16:00 · 1231 阅读 · 0 评论 -
Unix学习方法高手之路
前言: 对于一些想学习linux及正在学习linux系统的人,非常希望成为linux甚至unix高手,本人从事unix方面的工作很多年了,想介绍一下自已的经验 Unix有很多分支,这里不再赘述,一般来说主要包括:Linux、Solaris、HP-UNIX、AIX、SCO、BSD、AS400等等系统,一般人精通2到3门类即可,触类旁通即可很快掌握其它系统。下面是本人的原创 2007-08-01 11:09:00 · 1284 阅读 · 0 评论 -
UNIX 高手的10 个习惯
要采用的十个好习惯: 在单个命令中创建目录树。 更改路径;不要移动存档。 将命令与控制操作符组合使用。 谨慎引用变量。 使用转义序列来管理较长的输入。 在列表中对命令分组。 在 find 之外使用 xargs。 了解何时 grep 应该执行计数——何时应该绕过。 匹配输出中的某些字段,原创 2007-07-27 16:55:00 · 1212 阅读 · 0 评论 -
Unix的环境变量
一、SHELL的功能及分类 SHELL是UNIX作业系统中的命令编译器(Command Inter- preter),它基本上是一个常驻的执行程式,它在使用者一签入 成功後就立即被载入(可在签入後以ps指令看到),主要功能则 在於接受使用者的指令、寻找命令(即档案)的所在并加以执行。 因此,SHELL的不同可能直接影响使用者输入指令的方式、档 案寻找的程序及速度等。 UNIX作业原创 2007-07-25 12:28:00 · 1094 阅读 · 0 评论 -
使用 head 和 tail 以块方式读取文本流
文章中介绍了 head 和 tail 命令,它们对于以块方式处理静态和动态文件中的数据非常有用。假定您想只处理文件的一部分,譬如头几行或后几行,那您该怎么做呢?请使用 head (它将头 10 行发送至标准输出)或 tail (它将后 10 行发送至标准输出)。 您可以通过使用 -n 选项改变这些命令发送至其标准输出的行数(当然,输出结果将随 XF86Config 文件的内容而不同):原创 2007-07-25 12:21:00 · 1192 阅读 · 0 评论 -
如何阅读Linux源码
Linux内核的配置系统由三个部分组成,分别是: Makefile:分布在 Linux 内核源代码中的 Makefile,定义 Linux 内核的编译规则; 配置文件(config.in):给用户提供配置选择的功能; 配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于 Ncurses 图形界面以及基于 Xwindows 图形界面的用户配置转载 2006-12-20 09:58:00 · 1639 阅读 · 2 评论 -
笔记:内核中的互斥
需要澄清的是,互斥手段的选择,不是根据临界区的大小,而是根据临界区的性质,以及 有哪些部分的代码,即哪些内核执行路径来争夺。 从严格意义上说,semaphore和spinlock_XXX属于不同层次的互斥手段,前者的 实现有赖于后者,这有点象HTTP和TCP的关系,都是协议,但层次是不同的。 先说semaphore,它是进程级的,用于多个进程之间对资源的互斥,虽然也是在 内核中,但是该内核执行转载 2006-12-20 11:20:00 · 1044 阅读 · 0 评论 -
linux字符设备驱动程序相关的数据结构及操作
以下数据结构以内核2.4.0为例:file结构(定义在中):struct file { struct list_head f_list; struct dentry *f_dentry; struct vfsmount *f_vfsmnt; struct file_operations *f_op; atomic_t原创 2006-12-07 11:53:00 · 1767 阅读 · 0 评论 -
Linux下字符型驱动程序完整源码入门示例
本文中的程序在redhat9.0下通过。参考OReilly《linux设备驱动程序》,及网上的一些参考资料,与网上所能搜索到的资料大体相同,把它贴出来,是自己学习的一个总结,和作为笔记记录,以供初学者一个完整的源代码。/* firstdriver.c 起始 */#define __NO_VERSION__#include #include char kernel_version[]转载 2006-12-07 11:52:00 · 1859 阅读 · 0 评论 -
Linux 下的多进程编程
(一) 理解Linux下进程的结构 Linux下一个进程在内存里有三部份的数据,就是“数据段”,“堆栈段”和“代码段”,其实学过汇编语言的人一定知道,一般的CPU象I386,都有上述三种段寄存器,以方便操作系统的运行。“代码段”,顾名思义,就是存放了程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们就可以使用同一个代码段。 堆栈段存放的就是子程序的返回地址、子程序的参数以转载 2006-12-01 15:52:00 · 941 阅读 · 0 评论 -
Linux下的Socket编程
Socket概念 Socket实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个Socket接口来实现。在应用开发中就像使用文件句柄一样,可以对 Socket句柄进行读、写操作。我们将 Socket翻译为套接字,套接字分为以下三种类型:字节流套接字(Stream Socket) 是最常用的原创 2006-12-01 15:50:00 · 1170 阅读 · 0 评论 -
linux 线程
一.基础知识:线程和进程 按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。 无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu、内存、文件等等),而将线程分配到某个cpu上执行。一个进程当然可以拥有多个线程,此时,如果进程运行在S转载 2006-12-01 15:53:00 · 1048 阅读 · 0 评论 -
Linux下Makefile的automake生成全攻略
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样转载 2006-12-01 15:48:00 · 1016 阅读 · 0 评论 -
Linux内核配置系统浅析
随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中。面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选项,并最终被编译进 Linux 内核。这就需要了解 Linux 的内核配置系统。 众所周知,Li转载 2006-12-01 15:39:00 · 1562 阅读 · 0 评论 -
linux内核模块加载
1,一个简单的驱动程序 //hello.c#ifndef __KERNEL__#define __KERNEL__#endif#ifndef MODULE#define MODULE#endif#include #include #include int hello(void){ printk("This is a module,hello PeiJun!/n"); ret原创 2006-12-01 15:46:00 · 4070 阅读 · 0 评论 -
Linux内核Makefile文件
=== 目录 === 1 概述 === 2 角色分工 === 3 内核编译文件 --- 3.1 目标定义 --- 3.2 内嵌对象 - obj-y --- 3.3 可加载模块 - obj-m --- 3.4 导出符号 --- 3.5 库文件 - lib-y --- 3.6 目录递归转载 2006-12-01 15:42:00 · 9596 阅读 · 1 评论