linux程序设计
安仔都有人用
这个作者很懒,什么都没留下…
展开
-
shell基础(一)
一.第一个shell脚本因为工作原因,不得不学习一下shell,但是又因为用的不多,学了又忘,忘了又学。已经记不清是第几次再看了,这里把以前学习的东西做个笔记。 1.1shell的历史 要想全面的了解一个东西,对于他的历史,对它的历史的了解很有必要。想当初学复变函数时,为了弄清这些数学理论在整个数学中地位,也便于自己应该学到什么样的深度有所了解。买了一本数学史看。到现在来看,这个无心之举,确实让原创 2017-04-07 00:29:10 · 364 阅读 · 0 评论 -
git原理笔记(一)
git原理笔记(一)这个笔记是对于git内部原理的一个理解。网上很多关于git的用法的教程。这里推荐廖雪峰的git教程。这里主要记录如下的内部原理的理解 1. git如何存储 2. git如何管理版本一. git如何存储常常在使用git的过程中,一直在思考,git到底是如何存储我们提交的这些代码的。后来通过种种学习,发现,git将我们的所有东西都放在了.git目录下...原创 2018-04-18 18:27:14 · 485 阅读 · 0 评论 -
makefile(七):makefile的命令行参数
本节已经是makefile的最后一小节了,本节介绍makefile的常见的调试和运行参数-n--just-print--dry-run--reconmake不执行命令,只打印出需要重建目标使用的命令-t--touch更新所有目标文件的时间戳( 对于过时的目标文件不进行内容更新, 只更新时间戳)。-q--question不执行任何命令并且不打印任何输出信息, 只检查所指定的目标是否已经是最新原创 2017-10-18 16:36:04 · 7656 阅读 · 0 评论 -
makefile(六):makefile的内置函数
makefile内置有许多函数,包括文本处理函数,文件名处理函数,以及一些其他操作的函数,对于文本处理函数和文件名处理函数,可以参考《gnu make手册》,这里介绍几个特殊的函数一.foreach函数foreach函数参见上一节的说明,此处不再赘述二.if函数$(if CONDITION,THEN-PART[,ELSE-PART])condition为真,返回THEN-PART部分的结构,否则返回原创 2017-10-18 16:27:42 · 1738 阅读 · 0 评论 -
makefile(五):makefile的条件判断与循环
如果说任何程序都可以由顺序,分支,循环来组成的话,前面介绍的相当于顺序部分,本部分介绍分支和循环 makefile的条件判断和循环非常简单。一.条件判断条件判断的语法如下:ifeq (条件表达式) 运行体endififeq (条件表达式) 运行体else运行体endif解释:如果条件表达式的返回值为真,则运行下面的运行体,否则运行else后面的运行体,每一个条件表达式都必须以endif原创 2017-10-18 16:22:06 · 5409 阅读 · 0 评论 -
makefile(四):makefile规则中的命令
规则中的命令被传递给shell进行解析执行。除跟在依赖后面的第一条命令以外,其他命令必须与tab键开头。如下:目标:依赖;命令1 命令2通常情况下也并不推荐这种写法,推荐的写法还是将命令1,另起一行,并以tab键开头,这样做的好处,就是便于观察,但是对于空命令除外,详见空命令一节一.命令的回显makefile在执行命令的时候,通常会将命令显示在标准输出中,如果不想显示在标准输出中,可以使用下原创 2017-10-18 16:12:06 · 2772 阅读 · 0 评论 -
makefile(三):隐含规则
一.隐含规则上面介绍的全是显式规则,下面叙述隐含规则。隐含规则是make内置的规则,这些规则通常为一些常见的规则,比如c文件的编译,库文件的编译。这样可以减少makefile文件内容的编写。 举例如下。 在src目录下存在一个test.c文件。此时不用编写任何makefile文件,直接运行make test,那么此时,会生成对应的test可执行文件。 此时make在执行的时候,发现test可以原创 2017-10-18 16:04:06 · 1008 阅读 · 0 评论 -
makefile(二):普通规则
makefile(二):普通规则一.普通规则规则是makefile的主要内容,它决定了编译系统何时,如何来编译指定的目标。规则的语法如下:目标:依赖 指令请特别注意,指令前面有一个tab空格。同时指令可以直接写在依赖后面,即同一行上,并且这种情况下指令前可以不用tab键,但各个指令以分号分隔,这种写法常常用来写一个空命令,如下,target:;普通命令请不要这样书写,因为这样并不便于原创 2017-10-18 15:52:17 · 923 阅读 · 1 评论 -
makefile(一):变量
makefile简介对于linux来说,IDE环境并不多,就算有IDE也没有命令行好用。在这种情况下,没有ID E的帮助,要管理一个工程的编译是非常困难的,此时make工具诞生了。 make将管理一个工程的规则,写入文件中,然后,make读取这里面的规则,来决定如何编译一个工程(比如,那些文件先编译,那些文件后编译等) 那么这里面的重中之重就是规则了。下面来一个简单的规则文件。main:main原创 2017-07-07 11:54:30 · 784 阅读 · 0 评论 -
curses
上一个专题复习了shell的编程,当然只是非常基础的东西,包括awk,sed这些命令 使用都没有进行详细的介绍。这些问题就交给读者,自行学习了,下面我们希望在终端中能开发出像dialog这样的工具。 如果自己手动的对终端进行操作是非常繁琐的事情,就好比你要写个应用程序,居然是从寄存器开始进行编写的,不仅工作量大,而且非常容易出错。现在对终端的操作有了现成的函数库可以使用,那就是curse原创 2017-06-12 21:43:55 · 2777 阅读 · 0 评论 -
shell的图形化工具(七)
随着新工具的出现,在shell中也能够进行图形化的编程了,不过这些比起用java或者其他的高级语言实现的图形界面是非常简陋的。7.1 dialog的普通使用我们先来显示一个普通的文本框,来看看。在命令行下输入如下的命令: dialog –msgbox “this is content” 10 20 产生如下的界面 如果提示没有安装dialog,请安装dialog。下面的指令是在Ubuntu下原创 2017-05-10 01:34:15 · 3726 阅读 · 2 评论 -
shell基础(五)
五.Shell的通配符和正则表达式讲到正则表达式,必须先说自动机。这里的自动机是计算机理论里面的编译原理范畴 而不是自动化理论里面的另外一种说法。关于自动机的理论非常成熟,笔者最早的入门书籍就是清华大学的计算机教材《编译原理》张素琴,吕映芝,蒋维杜,戴桂兰编著。书中理论简洁有力,举例恰当,当然在编译领域还有很多经典的书籍,有待读者去参阅。书中有关于正则表达式与自动机之间的转换的理论支持,而至于如何原创 2017-04-25 23:24:30 · 222 阅读 · 0 评论 -
shell基础(六)
六.shell常用命令本节只是列出一些常见的操作,具体的操作,可以参考man 6.1 文件与目录操作相关 cd 切换目录cd /home/wannbiao切换到/home/wannbiao目录下 pwd 显示目前所在的目录 mkdir 创建目录 -p 选项,递归建立目录。如果上层目录没有,一并创建上层目录 rmdir 删除空目录 -p 选项,递归删除。 ls 列出目录 -a原创 2017-05-05 23:47:27 · 215 阅读 · 0 评论 -
shell基础(四)
四.shell的数据流重定向,管道,here文档,命令列表4.1shell的数据流重定向 程序就像是一个黑盒子,将原始数据输入进去,然后将需要的结果输出。将程序的输入通道比喻成一个水管,输入的数据,比喻成水流,程序的输出通道也比喻成一个水管,输出的数据比喻成过滤之后的水流。那么我们可以称输入的数据,叫做输入流,输出的数据叫做输出流。关于输入,输出的通道,可以理解为:传送数据的各种总线。 笔者猜测原创 2017-04-16 18:26:27 · 276 阅读 · 0 评论 -
shell基础(三)
三.shell脚本的内容讲述了变量相关的知识。接下来引用一句非常著名的话来引入下节的开始。 “任何单入单出程序都可以以顺序,选择,循环三种结构组成”至于这个论断的证明,就交给读者了。 这节要学习就是shell脚本的这三种结构,在学习之前,我们先学习一下,shell脚本中的判断 3.1shell的逻辑判断语句。 在shell中判断通常使用test命令。同样的test也可以被替换成左方括号“[”原创 2017-04-12 00:20:28 · 251 阅读 · 0 评论 -
Shell基础知识(二)
二.shell脚本的变量。到目前为止,已经将shell当成了一门脚本语言在讲述。同样这也避不开的是shell的各种变量了。这节主要学习一下shell的变量。 shell变量不像c语言那样要事先声明和定义。shell变量需要时直接使用即可,看一个例子。 在first.sh里面。最后一行加入如下的内容: first=bye echo “$fist”运行脚本,输出如下:原创 2017-04-08 00:39:56 · 285 阅读 · 0 评论 -
git原理笔记(二)
git原理笔记(二)git如果每次查看记录的时候,都使用上一节的命令 git log –stat bc2be49f6d218c6434e65b02a7907bb53abe4f9a 那么得记住这个sha-1值,git使用引用来记住这个值。git将引用保存在.git/refs/下面。目前我们还没有引用被创建。我们可以看一下refs下面的目录结果,如下图: heads——目录就是用来存放...原创 2018-04-18 18:43:44 · 254 阅读 · 0 评论