自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Memory

Something about a programmer

  • 博客(64)
  • 资源 (2)
  • 收藏
  • 关注

原创 高级Bash脚本编程指南(2):带着一个Sha-Bang出发

特别说明,Sha-Bang 指的是 ( #! ) 。在一个最简单的例子中,一个shell脚本其实就是将一堆系统命令列在一个文件中。它的最基本的用处就是,在你每次输入特定顺序的命令时,可以少敲一些字。以清除/var/log下的某些log文件的脚本为例:cd /var/logcat /dev/null > messagescat /dev/null > wtmpecho "Logs

2016-09-02 00:33:02 720

原创 高级Bash脚本编程指南(1): 为什么使用shell编程

高级Bash脚本编程指南(1):为什么使用shell编程毫无疑问,UNIX/Linux最重要的软件之一就是shell,目前最流行的shell被称为Bash(Bourne Again Shell)。作为系统和用户之间的交互接口,shell几乎是你在 UNIX工作平台上最亲密的朋友。 学好shell是学习Linux/UNIX的开始。想真正学习脚本编程的唯一途径就是编写脚本。

2016-08-30 00:15:45 803

原创 UNIX环境高级编程(7):文件和目录(1)

stat、fstat、lstat函数:本章讨论的中心是三个stat函数以及它们返回的信息:#include int stat(const char *restrict pathname,struct stat *restrict buf);int fstat(int filedes, struct stat *buf);int lstat(const char *restric

2015-08-31 20:34:17 788

原创 UNIX环境高级编程(6):文件I/O(2)

文件共享:UNIX系统支持在不同进程间共享打开的文件。内核使用三种数据结构表示打开的文件,他们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响:(1)每个进程在进程表中都有一个记录项,记录项中包含有一张打开文件描述符表,可将其视为一个矢量,每个描述符都占用一项,与每个文件描述符相关联的是:文件描述符标志指向一个文件表项的指针(2)内核为所有打开文件维护一张文

2015-08-23 19:08:19 1094

原创 UNIX环境高级编程(5):文件I/O(1)

UNIX系统中的大多数文件I/O只需要用到5个函数:open、read、write、lseek以及close。本章说明的函数经常称为“不带缓冲的I/0”,术语不带缓冲指的是每个read和write都调用内核中的一个系统调用。这些不带缓冲的I/O函数不是ISO C的组成部分,但是它们是POSIX.1和Single UNIX Specification的组成部分。文件描述符:对内核而言,所有打

2015-08-23 19:06:14 855

原创 UNIX环境高级编程(4):UNIX标准化及实现(2)

不确定的运行时限制:如果某些限制值没有在中定义,则在编译时不能使用这些限制;而且即使对于运行时限制,如果它们的值是不确定的,那么它们也是未定义的。如下的程序用来为路径名动态分配存储区(一般来说,很多程序在编译时就为其分配了存储区,而且不同的程序使用不同的幻数,例如256,512,1024或标准I/O常量BUFSIZ,但很少是正确的)。/* * Copyright (C) fuchen

2015-08-20 21:11:19 783

原创 UNIX环境高级编程(3):UNIX标准化及实现(1)

虽然UNIX应用程序在不同的UNIX操作系统版本之间进行移植相同容易,但是20世纪80年代UNIX版本的剧增以及它们之间的差别扩大,导致很多用户呼吁对其进行标准化。标准化工作的一个重要部分是对每种实现必须定义的各种限制进行说明。UNIX标准化:ISO C:1989年,C程序设计语言的ANSI标准X3.159-1989得到批准,随后该标准被采纳为国际标准ISO/IEC 9899:1990

2015-08-20 21:09:48 946

原创 UNIX环境高级编程(2):概述(2)

出错处理:当UNIX函数出错时,常常返回一个负值,而且整型变量errno通常被设置为包含附加信息的一个值。头文件中定义了符号errno以及可以赋予它的各种常量,这些常量都以字符E开头。而且UNIX系统手册第2部分的intro(2)列出了所有这些出错常量(在Linux中,这些出错常量在errno(3)手册页中列出)。在支持线程的环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部e

2015-08-19 21:41:26 762

原创 UNIX环境高级编程(1):UNIX基础知识(1)

本系列文章是学习被誉为UNIX编程圣经的《UNIX环境高级编程》的读书笔记。《UNIX环境高级编程》的英文全称为《Advanced Programming in the UNIX Environment》,简称《APUE》,其作者是UNIX和网络技术领域的知名专家W.Richard Stevens。本书描述了UNIX系统的程序设计接口:系统调用接口和标准C库提供的很多函数。与大多数操作系统一样

2015-08-19 21:39:24 1542

原创 浪潮记(9):学习、工作

过去的三月份,是较为充实的一个月。从这个月开始,天眼2.0进入实际编码阶段了。给予我的任务是整个底层服务的编码:包括天眼服务端、客户端、getdata命令,另外再加上一个IB采集库。给我的时间是一个半月,从心里讲我觉得这个时间足够了。三月份主要是把客户端以及getdata命令的代码写完了,并且初步用GDB对部分代码调试了一遍。由于服务端代码还没有写完,所以无法对这两部分代码进行完整的测试。

2015-04-08 21:51:09 895 1

原创 学习vi和vim编辑器(17):vim的多窗口功能(2)

接着上一篇文章,继续学习vim编辑器的多窗口功能。本篇文章主要学习调整窗口尺寸、缓冲区及其与窗口的交互、分页编辑、关闭与离开窗口。调整窗口尺寸:在gvim中,可以使用鼠标调整窗口尺寸,只需要用鼠标点击及拖动窗口边界即可。如果是在vim中,只要开启mouse选型(" :set mouse=a "),也能够用鼠标调整窗口尺寸。窗口尺寸调整命令:^W=:试图调整所有窗口至相同尺寸(此命令

2015-03-31 22:09:33 1833

原创 学习vi和vim编辑器(16):vim的多窗口功能(1)

vim默认是在一个窗口中编辑所有文件,在文件间移动或者移动到文件的不同部分时只显示一个缓冲区。但vim也提供了多窗口编辑功能,可以简化复合的编辑任务。这篇文章将学习如何在一个运行的vim进程里使用多窗口,包括多窗口编辑工作的初始化与启动,在窗口间移动光标,在显示区中移动窗口等。启动多窗口编辑:可以在打开vim时启动多窗口编辑,也可以在编辑会话中分割窗口。从命令行(shell)启动多窗口

2015-03-17 22:01:52 1295

原创 学习vi和vim编辑器(15):vim对vi的主要改进

vim对vi做了大量改进,本章将讨论在vim中添加的主要功能:包括内置帮助功能、启动与初始化选项、新的移动命令、扩展的正则表达式、扩展的撤销、自定义可执行文件等。内置帮助功能:vim的说明文档超过10万行,几乎所有的说明都可以通过vim内置的帮助工具取得,使用它最简单的形式就是调用" :help "命令。使用内置的帮助功能需要了解vi的导航技巧,知道如何在标签间前进与后退。当光标处于某个标

2015-03-08 20:32:44 1848

原创 浪潮记(8):过年

二月份主要是回家过年,所以工作上做的事情并不多。这个月主要是把Teye2.0中底层服务动态加载模块的框架搭建好了,并完成了底层服务的详细设计初稿。然后补充了一份文档,详细的说明了被我修改后的tsmmc2.1报警模块的代码结构。还学习了一个软件的用法,就是Dia。因为要编写文档,当然免不了要画代码流程图,而在我的电脑上Microsoft Viso始终装不上,因此不得已使用Dia。Dia号称Lin

2015-03-03 21:00:14 872

原创 重读《C程序设计语言》(2):导言

这一章主要是概要的介绍C语言,通过实际程序引入C语言的基本元素。至于具体细节,后续章节将进一步介绍。(1)学习一门新程序设计语言的唯一途径就是使用它编写程序。/* * Copyright (C) fuchencong@163.com */#include main(){ printf("hello, world\n");}(2)在UNIX中,要运

2015-02-02 22:07:21 1096

原创 浪潮记(7):转正

这个月对我来说最重要的事情就是转正了吧。一月初,参加了浪潮信息2014届应届生转正评审会。评审会最重要的环节就是我给指导老师、部门领导汇报自己的工作。在浪潮工作的半年,自己还是非常努力的,也取得了一些工作成果,所以对我来说,汇报工作也没有什么好害怕的。而且在汇报工作之外,我把自己工作半年来的一些想法也如实地表达出来。所以在我汇报之后,部门经理认为我说的很真诚,的确我说的都是心里话。评审会上

2015-02-02 21:54:32 4838

原创 重读《C程序设计语言》(1):序言

之前已经读过一遍K&R的《C程序设计语言》了,但是并没有写读书笔记。这次想再认认真真地读一遍被誉为C语言圣经的《C程序设计语言》。正如书中所说,C语言并不是一种大型语言,也不需要一本很厚的书来描述。所以这次读书笔记也希望采用简洁的方式来记录C语言中的重要知识点。(1)C语言最早是由Deninis Ritchie于1973年设计并实现的。(2)C语言是在UNIX系统上开发的,并且无论是UNI

2015-01-20 18:50:57 1063

原创 学习vi和vim编辑器(14):vim概述

vim指的是" vi improved ",即改进版的vi。目前vim可能是使用最为广泛的vi同类品。概览:作者与简史:vim由Bram Moolenaar编写,也得到其他人的协助开发。所以vim能够随着计算机工业以及文本编辑需求而相应地成长与改变,并维持着自身的价值。今天的vim是功能最为全面的类vi编辑器之一,在线帮助也很丰富。与vi的比较:vim的接受度比vi更为广泛,因

2015-01-15 19:15:00 1017

原创 学习vi和vim编辑器(13):vi同类品的功能总览

本章将学习vi同类品提供的相关功能。它们都是我兄弟:有许多可以自由取得的vi编辑器同类品。《vi和vim编辑器》重点介绍了vim编辑器,也简要地介绍了另外三种常用的同类品:nvi,elvis,vile。这些同类品都提供了vi之外的许多扩展功能,尽管方式可能不同,但这些同类品通常会提供相同的扩展功能。本篇文章将总体介绍这些同类品提供的扩展功能。多窗口编辑:可以将屏幕分割成多个“窗口”,从

2015-01-14 20:24:32 1402

原创 学习vi和vim编辑器(12):高级编辑方法(3)

本章主要学习vi编辑器中的@功能,ex脚本以及ctags工具的使用。@功能:命名缓冲区提供了另一种方法来创建“宏”,即可以将复杂的命令序列保存到某个命名缓冲区中,再通过@命令执行缓冲区中的内容。举个例子,首先在插入模式中输入如下一行:然后将该行内容删除并将其保存到" a "这个命名缓冲区中,之后便可以将光标移动到某个单词的首部,执行" @a ",就可以将缓冲区中的内容作为命令进

2015-01-11 15:17:42 1127

原创 学习vi和vim编辑器(11):高级编辑方法(2)

本章学习在vi编辑器中如何保存命令。保存命令:vi和ex中提供了许多方法来保存一长串命令序列,这样当调用已保存的序列时,只需要输入几个字符即可。单词缩写:可以定义缩写,让vi在处于插入模式时替你自动将输入展开成原文。定义缩写的命令为:"  ab abbr phrase ",其中abbr就是给phrase指定的缩写。注意,在插入模式中,只有将缩写当成单个单词输入时,缩写才会被展开,单

2015-01-08 20:44:31 1231

原创 学习vi和vim编辑器(10):高级编辑方法(1)

从本章开始将介绍一些vi和ex编辑器的高级功能。这一篇文章主要介绍如何自定义编辑环境,如何在vi中执行UNIX命令以及如何通过UNIX命令在vi中过滤文本。自定义vi:vi编辑器中有许多可以设置的选项,这些选项将影响vi编辑器的运作。可以使用ex命令 " :set "在vi中改变选项。而且,只要vi被打开,就会读取位于你的主目录的" .exrc "文件,以取得vi的相关设置。在这个文件

2015-01-05 16:15:38 2027

原创 浪潮记(6):再见2014

今天是2014年的最后一天了,也是《浪潮记》系列的第六篇,这意味着我来浪潮已经有半年时间了。12月主要完成了两项工作,一个是我们部门天眼项目demo程序的编写,另一个就是tsmmc的优化与重构。天眼项目是我们部门接下来的主要研发任务。天眼程序主要用于提取高性能应用程序的运行特征并进行分析,从而使集群管理人员清楚地了解到这些应用程序对自己集群资源的占用情况,也能为开发人员优化自己的高性能应用

2014-12-31 16:56:01 939

原创 学习vi和vim编辑器(9):全局替换(2)

上一篇文章已经学习了如何通过vi编辑器中" :s "命令进行全局替换,而且可以在替换命令中使用正则表达式以进行强大的模式匹配。这一篇文章将学习模式匹配的更多范例,以进一步熟悉正则表达式。模式匹配的范例:(1)匹配一个完整的单词:如下图所示,如果需要将文本里所有的child单词替换成为children,可能最先想到的就是下图所示的替换命令:但是这个命令会把childrendish,F

2014-12-30 22:04:09 4420

原创 学习vi和vim编辑器(8):全局替换(1)

本章学习vi编辑器中的全局替换命令。通过全局替换命令,可以自动替换文件中所有出现过的某个单词。全局替换一般会用到两个ex命令:" :g "(global,全局)," :s "(substitute,替换)。替换命令:替换命令的语法如下: " :s/old/new/ ",该命令会将当前这一行中第一个出现的old模式替换为new。其中斜线用来分隔命令的各部分(如果斜线位于该命令的最后一个字符,

2014-12-27 14:42:51 17249 1

原创 学习vi和vim编辑器(7):ex编辑器概述(2)

接着上一篇文章,学习ex编辑器。更改缓冲区名称:可以使用" :w new_file_name"的方式将当前编辑缓冲区保存为新的文件。这样就可以使得当前的编辑结果得以保存,同时又不修改原来的文件(前提是没有对当前文件进行过保存)。保存一部分文件:通过使用ex的行寻址命令和写入命令w,可以将文件中的一部分保存为新的文件。例如通过" :20 ,$ w new_file_name "命

2014-12-14 20:05:17 1345

原创 学习vi和vim编辑器(6):ex编辑器概述(1)

vi编辑器使用的底层编辑器就是ex行编辑器,可以认为vi编辑器是ex行编辑器的可视化模式。ex可以给你机动性更高,能力更强的编辑命令。ex以行为导向,在对文件做大规模改变时就成了优点。打开文件:" ex filename "命令使用ex行编辑器打开文件,它列出来了文件的总行数及命令提示符(:),此时无法看到文件的任何一行,除非下达显示一行或多行的ex命令,如下图所示:ex命令由行地

2014-12-13 21:44:04 2491

原创 浪潮记(5):调研

十一月可以说是来浪潮以来最忙的一个月了吧,忙到这个月的总结到现在才写。这个月其实并没有做软件开发方面的工作,相反,一直是做调研方面的工作。这个月主要做了两方面的调研:一方面是接着做能耗检测方面的调研,另一方面做了Globus Toolkit方面的调研。能耗检测调研着重调研了几款能耗检测方面的工具,例如PowerTop, Likwid,PCM等等,同时简单地了解了一些ACPI规范。利用RAP

2014-12-05 21:01:13 1325

原创 学习vi和vim编辑器(5):越过基础的藩篱

本章将对之前学习的编辑命令如" c "," d ",“ y ”等命令进行总结,并学习一些新的知识:其他进入vi的方法,利用缓冲区来存储拖曳与删除的文本以及如何在文件中做标记。更多命令的组合:之前已经不止一次讲过,对于" c ", " d "," y "等命令具有"command" "TextObject"的使用形式,即这些编辑命令可以与光标移动命令进行组合使用,通过光标移动

2014-11-15 22:27:50 1308

原创 浪潮记(4):第一次

回想十月,应该用哪个词来总结上个月呢?我想“第一次”是比较合适的吧。十月份主要的工作就是和又一位离职的师兄交接工作,虽然已经是第二次交接工作了,但是这是在浪潮第一次独立交接工作,因为这次没有老师的逐步指导了。我需要接手的工作主要有两份:应用特征监控分析系统以及扩展报警。总体来说,这两份代码的健壮性和可读性都要好于之前的tsmmc2.0。因此对于我来说,虽然是交接工作,但更像是学习。也祝

2014-11-01 22:07:17 1416

原创 学习vi和vim编辑器(4):快速移动位置

通常,编辑文本所需要做的第一步就是将光标移动到需要编辑的地方,因此编辑文本的速度一定程度上取决于将光标移动到目的地所需要的按键数。这一篇文章,主要介绍如何快速的移动光标。根据屏幕来移动:在一个有几千行文本的文件中,如果按照行来移动的话,可能效率非常低。此时可以按照屏幕来移动。可以把文件看成一个具有文字的常常的卷轴,而屏幕是一个窗口,通常显示其中的24行文字(我的是显示26行)。

2014-10-30 21:55:24 4189

原创 学习vi和vim编辑器(3):简单的文本编辑(2)

接着上一篇文章,继续讲解vi编辑器中一些简单的文本编辑命令。这一篇文章主要是文本的删除,复制,移动等命令。删除文本:正如上一篇文章中讲过的,对于删除命令("d")也具有“(command)(TextObject)”的使用形式,其中command代表的是如删除("d"),替换("c")等命令,而TextObject指的是光标移动命令,代表的command影响的文本对象范围。只

2014-10-23 22:01:44 1168

原创 学习vi和vim编辑器(2): 简单的文本编辑(1)

vi编辑器对老手而言,最大的优点之一就是有很多选项可以使用,而对于新手而言,这也是它的一大难点。本章介绍基本的vi文本编辑命令。这一篇文章主要介绍如何移动光标,以及如何增加和更改文本。之前讲过,vi编辑器有两种模式,命令行模式和插入模式。在命令行模式中,所输入的一切的会被vi编辑器当做是输入的命令,而在插入模式中,所输入的一切都被当做相应的文本更新到文件缓冲区中。当打开vi编辑器时,默

2014-10-17 21:37:11 1348

原创 学习vi和vim编辑器(1):vi文本编辑器

UNIX系统中有很多编辑器,可以分为两种类型:行编辑器和全屏编辑器。行编辑器每次只能在屏幕中显示文件的一行,如ed和ex编辑器,全屏编辑器可以在屏幕上显示文件的一部分。vi(读为vee-eye)编辑器是UNIX_Like操作系统的标准文本编辑器。vi是 visual editor的缩写,vi编辑器属于全屏编辑器,可以在阅读文件时当场就修改,并且立刻看到修改后的结果。对于新手而言

2014-10-12 19:53:59 2319

原创 鸟哥的Linux私房菜 基础学习篇读书笔记(10):Linux磁盘与文件系统管理(3)

鸟哥的Linux私房菜 基础学习篇读书笔记(10):Linux磁盘与文件系统管理(3)当我们在系统中增加了一块硬盘,我们需要经历哪些步骤才能真正使用这块硬盘呢?大致可以分为以下步骤,(1)对磁盘进行分区,已新建可以使用的分区;(2)对分区进行格式化,将分区格式化为我们操作系统能够使用的文件系统;(3)对新建好的文件系统进行检验;(4)创建挂载点,将该文件系统挂载上来。

2014-10-10 21:26:17 1595

原创 鸟哥的Linux私房菜 基础学习篇读书笔记(9):Linux磁盘与文件系统管理(2)

上一篇文章主要从理论上分析了Linux的Ext2文件系统,这一篇主要讲解如何查看Linux的文件系统的容量,以及Linux文件系统中的连接文件。可以通过df和du命令来查看磁盘与目录的容量,df命令用来列出文件系统的整体磁盘使用量,df命令的用法是 df[-ahikHTm] 目录或文件名,如果df命令不加任何参数,则默认将系统内所有的文件系统的容量都列出来。关于df命令还需要说明的

2014-10-05 20:41:49 1476

原创 浪潮记(3):碰撞

这是来到浪潮的第三个月了,也是来到部门的第二个月了。此时的我已不再是一个freshman了,九月的我依然对工作,对学习充满了热情,而且也收到了部分肯定,但是随着对浪潮,对工作的逐渐熟悉,也渐渐地看到了一些具有负能量的事情。就将九月定为正负能量碰撞的九月吧。这个月主要是修改了tsmmc2.0的源代码,对tsmmc2.0中一些可能会影响程序性能的模块进行修改,然后在中科大集群环

2014-10-02 11:39:20 1043

原创 鸟哥的Linux私房菜 基础学习篇读书笔记(8):Linux磁盘与文件系统管理(1)

Linux最传统的磁盘文件系统就是EXT2了(当然现在已经升级成为EXT4),这一章主要介绍Linux的磁盘文件系统,而这篇文章主要聚焦的是Linux的EXT2文件系统。我们都知道磁盘分区完成之后要进行格式化,之所以要格式化就是因为每种操作系统所使用的文件系统格式是不一样的。在Linux中,主要就是EXT2这种文件系统格式了,默认情况下Windows操作系统是无法识别Linux

2014-09-22 22:38:26 1322

原创 经典算法详解(2):费氏数列

经典算法详解(2):费氏数列说明:Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免子,一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三只免子,三个月后有五只免子(小免子投入生产)......。 如果不太理解这个例子的话,举个图就知道了,注意新生的小免子需一个月成长期才会投入生产,类似的道

2014-09-13 21:54:54 4041

原创 经典算法详解(1): 河内之塔

说明:河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disc),并命令僧侣

2014-09-11 23:18:36 2918 2

mtcp-master.zip

mTCP开源代码

2016-11-14

现代操作系统

非常好操作系统入门书籍 作者风趣 幽默 让学习不再成为痛苦

2013-06-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除