Unix / Linux
文章平均质量分 81
sunyubo458
这个作者很懒,什么都没留下…
展开
-
关于gcc,libc等相关概念的理解
关于gcc,libc等相关概念的理解 1、gcc(gnu collect compiler)是一组编译工具的总称。它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持,如libgcc_s.so、libstdc++.so等。Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一转载 2009-07-24 15:27:00 · 825 阅读 · 0 评论 -
Linux 文件系统剖析
2007 年 12 月 03 日在文件系统方面,Linux® 可以算得上操作系统中的 “瑞士军刀”。Linux 支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统。对于使用标准的和比较奇特的文件系统以及开发文件系统来说,Linux 是极好的平台。本文讨论 Linux 内核中的虚拟文件系统(VFS,有时候称为虚拟文件系统交换器),然后介绍将文件系统连接在一起的主要结构。转载 2009-07-31 17:59:00 · 554 阅读 · 0 评论 -
Linux中/proc目录下文件详解
Linux中/proc目录下文件详解(1)2008-06-10 20:10声明 :可以自由转载本文,但请务必保留本文的完整性。作者 :张子坚email :zhangzijian@163.com说明 :本文所涉及示例均在fedora core3下得到。 参考文献 :《GNU/linux编程指南》[美]Kurt Wall等著 张辉 译 SAMS 清华大学出版社 ------转载 2009-08-04 15:27:00 · 676 阅读 · 0 评论 -
原子性
原子性这个概念初想是非常简单的。它表示一个操作序列就像一个操作一样不被打断,而不像一个操作序列一样中间容许被打断。但是细想下来还是挺有点意思的。首先需要确定的就是什么是一个操作?而什么不是一个操作却是一个操作序列?其次需要确定的是如何叫做像?怎么着就是不像了?另外,还有一个牵扯进来的概念就是原子性的范围和其在什么程度上实施这种保证。或许我这儿说的有点形而上,那我转载 2009-08-05 14:12:00 · 1055 阅读 · 0 评论 -
信号“未决”与“阻塞”
信号状态: 信号的”未决“是一种状态,指的是从信号的产生到信号被处理前的这一段时间;信号的”阻塞“是一个开关动作,指的是阻止信号被处理,但不是阻止信号产生。 APUE例题在sleep前用sigprocmask阻塞了退出信号,然后sleep,然后在sleep的过程中产生一个退出信号,但是此时退出信号被阻塞过,(中文的”阻塞”在这里容易被误解为一种状态,实际上是一种类似于开关的动作,所以转载 2009-08-25 23:33:00 · 4199 阅读 · 0 评论 -
虚拟内存、逻辑地址、线性地址、物理地址
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不转载 2009-08-27 13:17:00 · 1265 阅读 · 0 评论 -
od命令的使用
od (octal dump)和 xd(hexdump)命令可以以十进制、八进制、十六进制和ASCII码来显示文件或者流,它们对于访问或可视地检查文件中不能直接显示在终端上的字符很有用。 语法:od [选项] 文件… 命令中各选项的含义:- A 指定地址基数,包括:d 十进制o 八进制(系统默认值)x 十六进制n 不打印位移值- t 指定数据的显转载 2009-09-01 09:36:00 · 1001 阅读 · 0 评论 -
diff和patch使用指南
diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合的和运算。 diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的patch文件,即补丁文件。 patch能将diff文件运用于 原来的两个集合之一,从而得到另一个集合。举个例子来说文件A和文件B,经过diff之后生成了补丁文件C,那么着个过程相当于转载 2009-09-01 19:57:00 · 547 阅读 · 0 评论 -
linux下Subversion服务架设
一、工具准备 Apache Web服务器:httpd-2.2.4.tar.bz2 Subversion源码包及依赖包:subversion-1.4.3.tar.bz2 ,subversion-deps-1.4.3.tar.bz2 (下面假设apache和svn源码都解压到了/home/tmp下) 二、安装Apache Apache的安装就根平时安装Apache没什么两样,都记得要打开dav模块和动转载 2009-07-09 17:19:00 · 613 阅读 · 0 评论 -
浅析Linux下core文件
当我们的程序崩溃时,内核有可能把该程序当前内存映射到core文件里,方便程序员找到程序出现问题的地方。最常出现的,几乎所有C程序员都出现过的错误就是“段错误”了。也是最难查出问题原因的一个错误。下面我们就针对“段错误”来分析core文件的产生、以及我们如何利用core文件找到出现崩溃的地方。当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。转载 2009-07-09 17:22:00 · 463 阅读 · 0 评论 -
zip命令
文件压缩和归档有时候,我们需要把一组文件贮存成一个文件以便备份或传输到另一个目录甚至另一个计算机上。有时候,我们还需要把文件压缩成一个文件,因而它们仅使用少量磁盘空间并能更快地通过互联网下载。理解归档文件(archive file)和压缩文件(compressedfile)间的区别对用户来说十分重要。归档文件是一个文件和目录的集合,而这个集合被贮存在一个文件中。归档文件没有经过压缩转载 2009-07-09 17:48:00 · 1012 阅读 · 0 评论 -
grub系统引导管理器破解root密码
如果是grub系统引导管理器的话破解root密码启动时出现grub引导界面如图1根据提示按下字母 "e"键编辑出现如图2移动光标到第二行然后再次按字母"e"键出现如图3然后在"root=LABEL=/"后面输入linux 1 (或者single意为单用户模式)完成后敲回车键(Enter)出现如图4然后再工具转载 2009-07-09 18:34:00 · 982 阅读 · 0 评论 -
UNIX 高手的 10 个习惯
Michael Stutz (stutz@dsl.org), 作者, 顾问 2007 年 2 月 09 日 采用 10 个能够提高您的 UNIX?命令行效率的好习惯——并在此过程中摆脱不良的使用模式。本文循序渐进地指导您学习几项用于命令行操作的技术,这些技术非常好,但是通常被忽略。了解常见错误和克服它们的方法,以便您能够确切了解为何值得采用这些 UNIX 习惯。 引言转载 2009-07-09 18:29:00 · 461 阅读 · 0 评论 -
Ubuntu常用命令与技巧
Ubuntu常用命令与技巧 sudo apt-get install 软件名 安装软件命令 sudo nautilus 打开文件(有root权限) su root 切换到“root” ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件) ls -l 列出当前目录下文件的详细信息 cd .. 回当前目录的上一级目录 cd - 回上一次所在的目录 cd ~ 或 cd转载 2009-07-10 12:06:00 · 481 阅读 · 0 评论 -
LINUX的目录树
目录树可以分为小的部分,每个部分可以在自己的磁盘或分区上。主要部分是根、/usr 、/var 和 /home 文件系统。每个部分有不同的目的。 每台机器都有根文件系统,它包含系统引导和使其他文件系统得以mount所必要的文件,根文件系统应该有单用户状态所必须的足够的内容。还应该包括修复损坏系统、恢复备份等的工具。 /usr 文件系统包含所有命令、库、man页和其他一般操作中所需的不改变的文件。转载 2009-07-10 12:07:00 · 460 阅读 · 0 评论 -
feof函数重读问题
fgets读到文件最后一行的时候(返回不是NULL) ,feof测试为假,再fgets一次(返回为NULL),再feof测试为真。 feof是通过判断read返回错误时,才判断流已经到达结尾。 在对流操作的时候,应该判断fgets()为NULL其实正确使用 feof 函数很容易,只要记住一个原则就是了:“先读文件后用 feof 判断”。foef(stream)针转载 2009-07-10 16:00:00 · 935 阅读 · 0 评论 -
vfork的错误用法
"每个任务(进程)有一个栈,在这个进程中每个函数被调用时分别从这个栈占用一段区域,称为帧(frame)。%esp寄存器指向当前整个栈的栈顶,%ebp指向当前帧的帧底。不是当前帧(调用者)的帧底都已经被压栈。上一级调用者的帧底被压入当前%ebp内容所指的地址,也就是当前帧的帧底位置保存了上一级调用者的%ebp指针值(帧底),而每个%ebp的前一个单元存放的就是当前函数的返回地址(它是由调用者在cal原创 2009-07-14 10:25:00 · 865 阅读 · 0 评论 -
Linux应用程序开发
Linux应用程序开发本文讲述了linux应用程序开发的基本内容。值得学习!Copyright © 2006 本文遵从GNU 的自由文档许可证(Free Documentation License)的条款,欢迎转载、修改、散布。发布时间:2006年11月01日更新时间:2007年11月14日,增加网络编程内容。Abstract转载 2009-11-10 11:48:00 · 1793 阅读 · 0 评论 -
/etc/profile与/etc/enviroment的比较
先将export LANG=zh_CN加入/etc/profile ,退出系统重新登录,登录提示显示英文。将/etc/profile中的export LANG=zh_CN删除,将LNAG=zh_CN加入/etc/environment,退出系统重新登录,登录提示显示中文。用户环境建立的过程中总是先执行/etc/profile然后在读取/etc/environment。为什么会有如上转载 2009-11-17 09:59:00 · 655 阅读 · 0 评论 -
很受欢迎的Linux笔记(二)
压缩命令: *.Z compress 程式壓縮的檔案; *.bz2 bzip2 程式壓縮的檔案; *.gz gzip 程式壓縮的檔案; *.tar tar 程式打包的資料,並沒有壓縮過; *.tar.gz tar 程式打包的檔案,其中並且經過 gzip 的壓縮 compress filename 压缩文件 加 [-d]解压原创 2010-01-14 17:42:00 · 677 阅读 · 0 评论 -
五种开源协议的比较
现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种(http://www.opensource.org/licenses/alphabetical)。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。这里我转载 2009-11-20 11:47:00 · 546 阅读 · 0 评论 -
vmlinuz,initrd,system.map文件
一、vmlinuz vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接,比如图中是vmlinuz-2.4转载 2009-11-20 14:20:00 · 645 阅读 · 0 评论 -
很受欢迎的Linux笔记(一)
linux目录架构 / 根目录 /bin 常用的命令 binary file 的目錄 /boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /boot/initrd 核心解壓縮所需 RAM Disk/d转载 2009-11-20 17:58:00 · 607 阅读 · 0 评论 -
Linux常用的二进制文件分析方法
1、 最首先应该尝试strings命令,比如拿到一个叫cr1的二进制文件,可以: $ strings cr1 | more 里面可能会有一些对于这个cr1的描述,这些信息都是编译之后在程序中留下的一些文本性的说明,所以可能会告诉你这个文件是什么. 比如有输出: $ strings cr1 | more %s %s %s%s%s ->转载 2009-11-23 14:58:00 · 1992 阅读 · 0 评论 -
整理代码脚本
indent_find.sh 通过find命令,优点:代码简单,缺点:没有显示正在整理的文件1 #!/bin/sh2 #################################################################################3 # Filename: Indent C原创 2010-01-27 09:51:00 · 572 阅读 · 0 评论 -
Linux 脚本编写基础(一)
1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。当编辑好脚本时,如果要执行该脚本,还必须使其可执行。要使脚本可执行:编译 chmod +x filename 这样才能用./filename 来运行1.1.2 注原创 2010-01-28 09:46:00 · 604 阅读 · 0 评论 -
Linux 脚本编写基础(二)
1.1.5 Shell命令和流程控制在shell脚本中可以使用三类命令:1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。常用命令语法及功能echo "some text": 将文字内容打印在屏幕上ls: 文件列表wc –l filewc -w filewc -c file:原创 2010-01-28 09:52:00 · 473 阅读 · 0 评论 -
Linux 脚本编写基础(三)
3) 流程控制1.if "if" 表达式 如果条件为真则执行then后面的部分:if ....; then .... elif ....; then .... else .... fi大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的原创 2010-01-28 09:59:00 · 474 阅读 · 0 评论 -
'践踏堆栈'[C语言编程]
2000年12月20原作 by Aleph Onealeph1@underground.org翻译 xuzq@chinasafer.comwww.chinasafer.com践踏堆栈[C语言编程] n. 在许多C语言的实现中,有可能通过写入例程中所声明的数组的结尾部分来破坏可执行的堆栈.所谓践踏堆栈使用的代码可以造成例程的返回异常,从而跳到任意的地址.这导致了一些极为险恶的数据相关漏洞(已转载 2009-12-03 09:38:00 · 2633 阅读 · 1 评论 -
Linux 脚本编写基础(四)
4)函数如果您写了一些稍微复杂一些的程序,您就会发现在程序中可能在几个地方使用了相同的代码,并且您也会发现,如果我们使用了函数,会方便很多。一个函数是这个样子的:functionname() { # inside the body $1 is the first argument given to the function # $2 the second ... body原创 2010-01-29 09:46:00 · 468 阅读 · 0 评论 -
Linux脚本编写基础(五)
实例)现在我们来讨论编写一个脚本的一般步骤。任何优秀的脚本都应该具有帮助和输入参数。并且写一个伪脚本(framework.sh),该脚本包含了大多数脚本都需要的框架结构,是一个非常不错的主意。这时候,在写一个新的脚本时我们只需要执行一下copy命令:cp framework.sh myscript 然后再插入自己的函数。让我们再看两个例子:二进制到十进制的转换脚本b2d 将原创 2010-02-02 09:48:00 · 574 阅读 · 0 评论 -
Linux 脚本编写基础(六)
文件循环程序或许您是想将所有发出的邮件保存到一个文件中的人们中的一员,但是在过了几个月以后,这个文件可能会变得很大以至于使对该文件的访问速度变慢。下面的脚本rotatefile可以解决这个问题。这个脚本可以重命名邮件保存文件(假设为outmail)为outmail.1,而对于outmail.1就变成了outmail.2 等等等等... #!/bin/sh # vim: set sw=4原创 2010-02-02 09:51:00 · 527 阅读 · 0 评论 -
Linux 下的编程工具
BBS水木清华站∶精华区发信人: Kongming (没日没夜...), 信区: Linux 标 题: Re: 如何学习linux下编程? 发信站: BBS 水木清华站 (Mon Aug 2 11:27:04 1999) 我为你贴一篇文章吧,简要介绍了 Linux 下的编程工具, 入门是没有问题的。 这是我最近编写的书的部分内容。 严正声明: 本文由 Kongmin转载 2009-12-08 11:49:00 · 992 阅读 · 0 评论 -
用vi在linux下查看16进制文件
在vi的命令状态下 ::%!xxd ——将当前文本转换为16进制格式。:%!od ——将当前文本转换为16进制格式。:%!xxd -c 12——将当前文本转换为16进制格式,并每行显示12个字节。:%!xxd -r ——将当前文件转换回文本格式。xxd工具: xxd creates a hex dump of a given file or standard input转载 2009-12-10 09:37:00 · 1305 阅读 · 0 评论 -
Linux系统启动流程图
参考文章:《剖析Linux系统启动过程》 附录:剖析Linux系统启动过程 本文以RedHat9.0和i386平台为例,剖析了从用户打开电源直到屏幕出现命令行提示符的整个Linux启动过程。并且介绍了启动中涉及到的各种文件。 阅读Linux源代码,无疑是深入学习Linux的最好方法。在本文对Linux启动过程的介绍中,我们也尝试从源代码的视角来更深入的剖析L转载 2009-12-14 17:48:00 · 1303 阅读 · 0 评论 -
linux skills
++实现RedHat非正常关机的自动磁盘修复先登录到服务器,然后在/etc/sysconfig里增加一个文件autofsck,内容如下:AUTOFSCK_DEF_CHECK=yesPROMPT=yes++改变文件或目录之最后修改时间(变为当前时间)执行格式:touch name ( name 可为文件或目录名称。)++如何设置login后欢迎信息修改/etc/motd,往里面写入文本即可。++如何转载 2009-12-15 15:39:00 · 465 阅读 · 0 评论 -
王垠推荐的一些Linux工具
Shell: bash。它结合了 csh 和 ksh 的优点,并且有 readline 功能,你可以随意绑定自己的键盘。编辑器: VIM, Emacs。程序开发: GCC, make, ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk ...论文,幻灯工具:LaTeX, ConTeXt绘图工具:MetaPost。这个语言太强了,以至于我只用它转载 2009-12-31 14:28:00 · 736 阅读 · 0 评论 -
Linux汇编语法开发
汇编语言的优点是速度快,可以直接对硬件进行操作,这对诸如图形处理等关键应用是非常重要的。Linux 是一个用 C 语言开发的操作系统,这使得很多程序员开始忘记在 Linux 中还可以直接使用汇编这一底层语言来优化程序的性能。本文为那些在Linux 平台上编写汇编代码的程序员提供指南,介绍 Linux 汇编语言的语法格式和开发工具,并辅以具体的例子讲述如何开发实用的Linux 汇编程序。转载 2009-12-31 16:12:00 · 496 阅读 · 0 评论 -
find命令详解
用法总结如下:find pathname -options [-print -exec -ok]pathname:查找路径-option:主要选项如下:-name:按照文档名称查找-perm:按照文档权限查找-prune:不在当前指定的路径查找。假如同时指定了-depth选项,则prune被忽略-user:按照文档属主查找-group:按照文档属组查找-mtime -n +n:按照文档更改时间查找转载 2010-01-04 13:55:00 · 860 阅读 · 0 评论 -
Linux查看硬件信息
在LINUX环境开发驱动程序,首先要探测到新硬件,接下来就是开发驱动程序。 常用命令整理如下: 用硬件检测程序kudzu探测新硬件:service kudzu start ( or restart) 查看CPU信息:cat /proc/cpuinfo 查看板卡信息:cat /proc/pci 查看PCI信息:lspci (相比cat /proc/pci更直观) 查看内存信息:cat /proc/m转载 2010-03-17 09:50:00 · 526 阅读 · 0 评论