02 2013 档案

摘要:好吧。这个脚本你运行一下就知道了#!/bin/bashuntil[$# -eq 0 ]doecho"$@"shiftdone看见作用了吧。每次运行shift(不带参数的),销毁一个参数,后面的参数前移输出如下YY-QS:~# ./test.sh 1 2 3 4 5 6 7 8 9 101 2 3 4 5 6 7 8 9 102 3 4 5 6 7 8 9 103 4 5 6 7 8 9 104 5 6 7 8 9 105 6 7 8 9 106 7 8 9 107 8 9 108 9 109 1010Shift命令一次移动参数的个数由其所带的参数指定。例如当shell程序处 阅读全文
posted @ 2013-02-28 15:58 ArcherDev 阅读(438) 评论(0) 推荐(0) 编辑
摘要:1.#-------------------------------------------------------------------------9 #强烈注意,在赋值的前后一定不要有空格10 # 如果有空格会发生什么?1112 # 如果"VARIABLE =value",13 # ^14 #+ 脚本将尝试运行一个"VARIABLE"的命令,带着一个"=value"参数.1516 # 如果"VARIABLE= value",17 # ^18 #+ script tries to run "value 阅读全文
posted @ 2013-02-28 14:36 ArcherDev 阅读(2477) 评论(0) 推荐(0) 编辑
摘要:http://bbs.chinaunix.net/thread-554405-1-1.html承蒙CU各位大侠关照,现将自己搜集整理的文件批量改名方法总结如下,有原创也有引用,引用恕不一一注明。学习研究中经常碰到批量文件改名问题,所以下决心一劳永逸地解决了这个问题,不正之处请方家指正,欢迎评点、补充,谢谢!A 加后缀1.问题:同以目录下有海量以日期命名的文件,其中有的有后缀,有的以点结尾,如20020101.,20020102.,……,20020101.td,20020102.td……要求: 把所有以点结尾的加上后缀.ts我的方法:#!/bin/bashfor files in `ls *.` 阅读全文
posted @ 2013-02-28 13:52 ArcherDev 阅读(203) 评论(0) 推荐(0) 编辑
摘要:http://os.51cto.com/art/200910/158857.htm本文详细讲解linux脚本Shell命令基本知识,包括:1 开头2 注释3 变量4 环境变量5 linux脚本Shell命令和流程控制等五方面内容。在向大家详细介绍linux编译之前,首先让大家了解下Linux脚本Shell命令。然后讲解在shell脚本中可以使用任意的unix命令。语法基本介绍1.开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。当编辑好脚本时,如果要执行该脚本,还必须使其可 阅读全文
posted @ 2013-02-28 13:43 ArcherDev 阅读(209) 评论(0) 推荐(0) 编辑
摘要:From:http://os.51cto.com/art/200912/165922.htm写一个脚本,来检查某个文件是否存在,如果存在,则输出它的详细信息,如果不存在,则提示输出文件不存在。在给出这个脚本之前,先来了解一下如下几个命令:文件upload.zip为例1. # ll -h upload.zip-rw-r--r-- 1 root root 3.3M 06-28 23:21 upload.zip2. # file upload.zipupload.zip: Zip archive data, at least v1.0 to extract3. # ls -i upload.zip1 阅读全文
posted @ 2013-02-28 13:41 ArcherDev 阅读(921) 评论(0) 推荐(0) 编辑
摘要:From:http://os.51cto.com/art/200912/165925_1.htm位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字,第一个参数代表$1,第二个参数代表$2,以此类推,参数数量的总数存在$#中,上面的例子显示了怎么改变脚本,如果参数少于或者多余2个来打印出一条消息。shell 编程中使用到得if语句内判断参数–b 当file存在并且是块文件时返回真-c 当file存在并且是字符文件时返回真-d 当pathname存在并且是一个目录时返回真-e 当pathname指定的文件或目录存在时返回真-f 当file存在并且是正规文件时 阅读全文
posted @ 2013-02-28 13:40 ArcherDev 阅读(295) 评论(0) 推荐(0) 编辑
摘要:http://spaces.msn.com/dingy/blog/cns!2F24B9E66A542581!327.entry VIM中常用的替换模式总结。1,简单替换表达式替换命令可以在全文中用一个单词替换另一个单词::%s/four/4/g”%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可 如果你有一个象 “thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4”。要解决这个问题,用 “\<” 来指定匹配单词开头: :%s/\<four/4/g显然,这样 阅读全文
posted @ 2013-02-26 17:22 ArcherDev 阅读(191) 评论(0) 推荐(0) 编辑
摘要:语法为 :[addr]s/源字符串/目的字符串/[option]全局替换命令为::%s/源字符串/目的字符串/g[addr] 表示检索范围,省略时表示当前行。如:“1,20” :表示从第1行到20行;“%” :表示整个文件,同“1,$”;“. ,$” :从当前行到文件尾;s : 表示替换操作[option] :表示操作类型如:g 表示全局替换;c 表示进行确认p 表示替代结果逐行显示(Ctrl + L恢复屏幕);省略option时仅对每行第一个匹配串进行替换;如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义下面是一些例子:#将That or this 换成 This or that: 阅读全文
posted @ 2013-02-26 17:22 ArcherDev 阅读(511) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.htmlLinux中find常见用法示例·find path -option [ -print ] [ -exec -ok command ] {} \;find命令的参数;pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print: find命令将匹配的文件输出到标准输出。-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ 阅读全文
posted @ 2013-02-26 17:21 ArcherDev 阅读(144) 评论(0) 推荐(0) 编辑
摘要:http://www.linuxfly.org/post/131/ 上一篇日志写到,为什么要制作rpm包,以及如何使用.src.rpm文件生成rpm包。最后部分还看到.src.rpm的内容,实际上就是 由.tar.gz源码、补丁软件和.spec脚本组成的。由此知道,使用.spec生成rpm包是比较简单的,因为.src.rpm通常都是由软件开发者 或者第三方的专业制作人根据源码调试好的,所以,只要处理好平台兼容性和相关的版本,不会遇到太大的问题。 但我觉得单纯明白用.spec生成rpm是不够的。常见有两个原因值得我们去了解用如何用源码制作rpm:引用1、并不是所有的软件都提供.rpm方式的。这. 阅读全文
posted @ 2013-02-22 17:19 ArcherDev 阅读(325) 评论(0) 推荐(0) 编辑
摘要:http://www.linuxfly.org/post/130/我们都知道,在目前的Linux环境下,要安装新软件,通常有两种方式:一是使用源码安装;二是使用rpm软件包。使用源码安装可以让用户了解编译过 程,及定制一些模块,和修改编译参数,但其工作量通常都很大,而且要求用户有足够的计算机知识。而rpm软件包方式则相对来说比较简单,也易于管理和升 级。所以,当前Linux发行版的前十中,有八个都是使用基于二进制软件包方式的(deb和rpm格式可以互转)。同样的,红旗也是基于rpm的打包方 式。 下面要写的,就是如何制作自己的rpm包。这通常是为了减轻工作上带来的麻烦,例如分发软件到客户手上. 阅读全文
posted @ 2013-02-22 17:16 ArcherDev 阅读(591) 评论(0) 推荐(0) 编辑
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://mumaren.blog.51cto.com/4180778/971507在实际的应用之中,二进制包的使用显得有些麻烦,最好的办法还是将源码包制作成为RPM包,放进yum仓库,再使用类似于puppet来进行管理工作。这样会方便许多,做运维的,你懂的。其实,制作RPM软件包并不是一件复杂的工作,其中的关键在于编写SPEC软件包描述文件。下面我详细说明一下RPM软件包的制作过程。一个RPM包的制作主要有这几个步骤:1 计划好你想做什么。有的rpm包是一个软件,但有的例如... 阅读全文
posted @ 2013-02-22 17:12 ArcherDev 阅读(1128) 评论(0) 推荐(0) 编辑
摘要:http://www.bitscn.com/os/linux/200604/7305.html模块(module)是在内核空间运行的程序,实际上是一种目标对象文件,没有链接,不能独立运行,但是可以装载到系统中作为内核的一部分运行,从而可以动态扩充内核的功能。模块最主要的用处就是用来实现设备驱动程序。 Linux下对于一个硬件的驱动,可以有两种方式:直接加载到内核代码中,启动内核时就会驱动此硬件设备。另一种就是以模块方式,编译生成一个.o文件。当应用程序需要时再加载进内核空间运行。所以我们所说的一个硬件的驱动程序,通常指的就是一个驱动模块。 设备文件 对于一个设备,它可以在/dev... 阅读全文
posted @ 2013-02-22 14:57 ArcherDev 阅读(625) 评论(0) 推荐(0) 编辑
摘要:本文来自:Linux文库 -- http://doc.linuxpk.com/2363.html今天一个网友问了一个问题,没有想到,自己忘记知识的能力倒很强.....把一些常用的放在这里,大家需要也可以拷贝过去,基础的东西还 是不要丢,唉....三天不练手生啊1.如何安装rpm软件包rmp软件包的安装可以使用程序rpm来完成。执行下面的命令rpm -i your-package.rpm其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。安装过程中可能出现下面的警告或者提示:... conflict with ... 可能是要安装的包里有一些文件可能会覆盖现有的 阅读全文
posted @ 2013-02-08 16:05 ArcherDev 阅读(854) 评论(0) 推荐(0) 编辑
摘要:本文来自:Linux文库 -- http://doc.linuxpk.com/2361.htmlRPM不仅在安装,升级,卸载方面工作出色,而且在查询方面比其它软件包管理工具更胜一筹。这从以下几种情况可以看出:* 当你在浏览系统文件时,发现一个文件,想知道它来自哪个软件包时,可以用RPM来查询得知;* 当你的朋友给你发送来一个软件包,但你不知道这是个什么样的软件包,不知道它做些什么,安装些什么,来源是哪里。这时,你可以用RPM查询搞定;* 几个月前你安装了XFree86窗口软件,但现在你忘了它的版本号,也不知它的说明文档在哪里。这时,你可以用RPM查询一下这个软件包,得到这方面的信息。RPM的查 阅读全文
posted @ 2013-02-08 16:05 ArcherDev 阅读(948) 评论(0) 推荐(0) 编辑
摘要:作者:张子坚说明:本文所涉及示例均在fedora core3下得到。所使用RPM包为:lynx-2.8.5-11.i386.rpm和lynx-2.8.5-18.i386.rpm。--------------------------------------------------------------------------------Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在 阅读全文
posted @ 2013-02-08 16:04 ArcherDev 阅读(893) 评论(0) 推荐(0) 编辑
摘要:作者:杨爱林来自:Linux文库更新时间:2012年12月本文分为两部分,第一部分阐述了 rpm 工具的功能以及 rpmbuild 工具,详细的介绍了 spec文件的书写规则以及关键部分,第二部分对一个典型的 spec 文件做了详细的分析。为了方便朋友们查看,我找了中文的rpmbuild 的MAN 附在最后一 、rpm 介绍1. 概述RPM全称是 Red Hat Package Manager(Red Hat包管理器)。几乎所有的 Linux 发行版本都使用这种形式的软件包管理安装、更新和卸载软件。RPM 是一个开放的软件包管理系统。它工作于Red Hat Linux以及其它Linux和UNI 阅读全文
posted @ 2013-02-08 16:00 ArcherDev 阅读(2847) 评论(0) 推荐(0) 编辑
摘要:http://www.chenjunlu.com/2011/03/understanding-pkg-config-tool/http://www.mike.org.cn/articles/description-configure-pkg-config-pkg_config_path-of-the-relations-between/ 一、什么是configure 源码安装过程中大多会用到configure这个程序,一般的configure都是一个script,执行时可以传入必要参数告知配置项目。 configure程序它会根据传入的配置项目检查程序编译时所依赖的环境以及对程序编译安装... 阅读全文
posted @ 2013-02-08 14:52 ArcherDev 阅读(2884) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/rlj021/archive/2008/12/16/3530939.aspx一、头文件gcc 在编译时寻找所需要的头文件 :※搜寻会从-I开始※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH※再找内定目录/usr/include /usr/local/include/usr/lib/gcc-lib/i386-linux/2.95.2/include/usr/lib/gcc-lib/i386-linux/2.95.2/http://www.cnblogs.com/htt 阅读全文
posted @ 2013-02-08 14:00 ArcherDev 阅读(328) 评论(0) 推荐(0) 编辑
摘要:http://www.lingcc.com/2011/06/27/11679/最近研究了一把GCC的选项,比较有意思,选些出来,学习学习。编译器作为程序员的重要工具,GCC作为编译器中应用最广泛的,无不处处体现出贴心的设计和功能支持。Table of Contents1 -dumpmachine 2 -xc 3 -dM 4 -print-file-name=include 5 -isystem DIR 6 -nostdinc/-nostdinc++ 7 -Wp/-Wa/-Wl 8 -EL/-EB 9 -DMACRO/-UMACRO 10 -G num 11 -msym32/-mnosym32 阅读全文
posted @ 2013-02-08 13:40 ArcherDev 阅读(4871) 评论(0) 推荐(0) 编辑
摘要:http://www.cppblog.com/SEMAN/archive/2005/11/23/1270.html预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。3). 意识到这个表达式将使一个16位 阅读全文
posted @ 2013-02-08 12:45 ArcherDev 阅读(231) 评论(0) 推荐(0) 编辑
摘要:Fromhttp://www.cppblog.com/SEMAN/archive/2005/11/30/1440.html[介绍]gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]3.汇编变为目标代码(机器代码),生成.o的文件[汇编器as]4.连接目标代码,生成可执行程序[链接器ld][参数详解]-x language filename 设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称 阅读全文
posted @ 2013-02-08 12:42 ArcherDev 阅读(243) 评论(0) 推荐(0) 编辑
摘要:进程请点评目录1. 引言2. 环境变量3. 进程控制3.1. fork函数3.2. exec函数3.3. wait和waitpid函数4. 进程间通信4.1. 管道4.2. 其它IPC机制5. 练习:实现简单的Shell1.引言请点评我们知道,每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。现在我们全面了解一下其中都有哪些信息。进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整数。进程的状态,有运行、挂起、停止、僵尸等状态。进程切换时需要保存和恢复的一些CPU寄存器。描述虚拟地址空 阅读全文
posted @ 2013-02-06 09:52 ArcherDev 阅读(428) 评论(0) 推荐(0) 编辑
摘要:http://learn.akae.cn/media/ch20.html目录1. 多目标文件的链接2. 定义和声明2.1.extern和static关键字2.2. 头文件2.3. 定义和声明的详细规则3. 静态库4. 共享库4.1. 编译、链接、运行4.2. 动态链接的过程4.3. 共享库的命名惯例5. 虚拟内存管理1.多目标文件的链接请点评现在我们把例12.1 “用堆栈实现倒序打印”拆成两个程序文件,stack.c实现堆栈,而main.c使用堆栈:/* stack.c */char stack[512];int top = -1;void push(char c){ stack[++top] 阅读全文
posted @ 2013-02-06 08:51 ArcherDev 阅读(969) 评论(0) 推荐(0) 编辑
摘要:http://learn.akae.cn/media/ch31.html目录1. Shell的历史2. Shell如何执行命令2.1. 执行交互式命令2.2. 执行脚本3. Shell的基本语法3.1. 变量3.2. 文件名代换(Globbing):* ? []3.3. 命令代换:`或 $()3.4. 算术代换:$(())3.5. 转义字符\3.6. 单引号3.7. 双引号4. bash启动脚本4.1. 作为交互登录Shell启动,或者使用--login参数启动4.2. 以交互非登录Shell启动4.3. 非交互启动4.4. 以sh命令启动5. Shell脚本语法5.1. 条件测试:test 阅读全文
posted @ 2013-02-05 18:16 ArcherDev 阅读(970) 评论(0) 推荐(0) 编辑
摘要:4.段错误如果程序运行时出现段错误,用gdb可以很容易定位到究竟是哪一行引发的段错误,例如这个小程序:例10.4.段错误调试实例一#include <stdio.h>int main(void){ int man = 0; scanf("%d", man); return 0;}调试过程如下:$ gdb main...(gdb) rStarting program: /home/akaedu/main 123Program received signal SIGSEGV, Segmentation fault.0xb7e1404b in _IO_vfscanf 阅读全文
posted @ 2013-02-05 17:34 ArcherDev 阅读(1180) 评论(0) 推荐(0) 编辑
摘要:http://learn.akae.cn/media/ch10s03.html3.观察点接着上一节的步骤,经过调试我们知道,虽然sum已经赋了初值0,但仍需要在while (1)循环的开头加上sum = 0;:例10.3.观察点调试实例#include <stdio.h>int main(void){ int sum = 0, i = 0; char input[5]; while (1) { sum = 0; scanf("%s", input); for (i = 0; input[i] != '\0'; i++) sum = sum*10 阅读全文
posted @ 2013-02-05 17:25 ArcherDev 阅读(927) 评论(0) 推荐(0) 编辑
摘要:http://learn.akae.cn/media/ch10s02.html2.断点看以下程序:例10.2.断点调试实例#include <stdio.h>int main(void){ int sum = 0, i = 0; char input[5]; while (1) { scanf("%s", input); for (i = 0; input[i] != '\0'; i++) sum = sum*10 + input[i] - '0'; printf("input=%d\n", sum); } r 阅读全文
posted @ 2013-02-05 17:24 ArcherDev 阅读(449) 评论(0) 推荐(0) 编辑
摘要:http://learn.akae.cn/media/ch10s01.html1.单步执行和跟踪函数调用看下面的程序:例10.1.函数调试实例#include <stdio.h>int add_range(int low, int high){ int i, sum; for (i = low; i <= high; i++) sum = sum + i; return sum;}int main(void){ int result[100]; result[0] = add_range(1, 10); result[1] = add_range(1, 100); print 阅读全文
posted @ 2013-02-05 16:54 ArcherDev 阅读(4390) 评论(0) 推荐(0) 编辑
摘要:/etc/init.d 是 /etc/rc.d/init.d 的软链接(soft link)。可以通过 ll 命令查看,如下:/********************************************************************************************************************* [root@Rex ~]# ll /etc/init.d lrwxrwxrwx 1 root root 11 3?10 09:24 /etc/init.d -> rc.d/init.d**********... 阅读全文
posted @ 2013-02-04 17:53 ArcherDev 阅读(1954) 评论(0) 推荐(0) 编辑
摘要:http://blog.rexzhao.com/2011/11/22/git-branch.htmlGit虽然是分布式的系统,但是小组工作时Git一般都会设置一个中心服务器,大家都往这个服务器上push/pull代码。有时候需要离开主线(master)做一些测试或者Debug工作,或者想将代码分为开发版、稳定版等,这时候就需要做分支。在中心服务器这种结构下,所有人的remote端都是这个中心服务器,因此配置方法是(以建立dev分支为例):登陆服务器执行git branch dev来建立dev分支在本地执行git pull来做更新,然后git checkout dev就可以切换到dev分支另外, 阅读全文
posted @ 2013-02-04 14:08 ArcherDev 阅读(404) 评论(0) 推荐(0) 编辑
摘要:http://blog.rexzhao.com/category/Git在push之前有时候会不放心是不是忘记加某些文件,或者是不是多删了个什么东西,这时候希望能够看看上次commit都做了些什么。一开始想到的是用git diff,但是git diff用于当前修改尚未commit的时候较为方便,一旦commit后,需要指定上次节点的名称(一个hash值),不方便。这种时候用git log更合适,因为commit的内容会以log来记录。下面记录几个常用的情境以及对应的命令。仅仅想看最近谁有提交,以及提交的描述对应命令 git log显示Samplecommit 6305aa81a265f9316 阅读全文
posted @ 2013-02-04 14:07 ArcherDev 阅读(308) 评论(0) 推荐(0) 编辑
摘要:http://ruby-china.org/topics/939git已经变成了很多程序员日常工具之一。git log是查看git历史的好工具,不过默认的格式并不是特别的直观。很多时候想要更简便的输出更多或者更少的信息,这里列出几个git log的format。可以根据自己的需要定制。git log命令可一接受一个--pretty选项,来确定输出的格式.如果我们只想输出hash.git log --pretty=format:"%h" git用各种placeholder来决定各种显示内容:下面内容来自这里%H: commit hash%h: 缩短的commit hash%T 阅读全文
posted @ 2013-02-04 14:02 ArcherDev 阅读(405) 评论(0) 推荐(0) 编辑
摘要:http://gitref.cyj.me/zh/inspect/Git 参考手册 阅读全文
posted @ 2013-02-04 13:50 ArcherDev 阅读(119) 评论(0) 推荐(0) 编辑
摘要:http://linuxtoy.org/archives/sed-awk.html{ 撰文/bones7456}sed 和 awk 都是 Linux 下常用的流编辑器,他们各有各的特色,本文并不是要做什么对比,而是权当好玩,把《SED 单行脚本快速参考》这文章,用 awk 做了一遍~ 至于孰好孰坏,那真是很难评论了。一般来说,sed 的命令会更短小一些,同时也更难读懂;而 awk 稍微长点,但是 if、while 这样的,逻辑性比较强,更加像“程序”。到底喜欢用哪个,就让各位看官自己决定吧!文本间隔:# 在每一行后面增加一空行sed Gawk '{printf("%s\n\n 阅读全文
posted @ 2013-02-04 13:10 ArcherDev 阅读(218) 评论(0) 推荐(0) 编辑
摘要:http://zensheno.blog.51cto.com/2712776/4907481. Git概念1.1. Git库中由三部分组成 Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制。.git目录位于工作目录内。1) 工作目录:用户本地的目录;2) Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Git 称该区域为索引。3) 仓库:将索引通过commit命令提交至仓库中,每一次提交都意味着版本在进行一次更新。1.2. 使用Git时的初始化事项1 阅读全文
posted @ 2013-02-04 13:07 ArcherDev 阅读(158) 评论(0) 推荐(0) 编辑
摘要:GIT基本概念和用法总结 http://guibin.iteye.com/blog/1014369guibin.beijing@gmail.com在日常使用GIT过程中,经常会出错,比如无意间丢失了未提交的数据,回退版本时丢失了工作目录,等等。经过思考发现,所有这些错误都是因为对GIT中一些基本的概念模糊而导致,因为对一些基本概念不清晰,导致对GIT每一条命令将会产生的结果不符合预期。下面我就梳理以下我经常碰到的问题相关的基本概念。1. Working Directory(工作目录)Git的工作目录是保存当前正在工作的文件所在的目录,和working tree是相同的意思。在这个目录中的文件可 阅读全文
posted @ 2013-02-04 12:36 ArcherDev 阅读(282) 评论(0) 推荐(0) 编辑
摘要:http://omiga.org/blog/archives/1896Git是什么?Git是一个分布式版本控制系统(Distributed Version Control System,简称 DVCS)。Git与svn有什么关系?对于大多数人而言,或许对svn更为熟悉,svn属于集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS ),在CVCS中会有一个对版本进行集中管理的服务器,协同工作的人都通过客户端连接到该服务器,检出最新文件或提交更新。CVCS在协同开发中有两个比较主要的缺点:如遇服务器宕机,整个协同工作无法进行,因为此时无法 阅读全文
posted @ 2013-02-04 11:37 ArcherDev 阅读(203) 评论(0) 推荐(0) 编辑
摘要:$git log –since=2011-3-24 –until=2011-3-25 -p查看2011-3-25的日志,包括commit和修改涉及的代码;参考了:http://www.enjoyrails.com/wikis/Git%E4%B8%80%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8BGit一分钟上手流程:取代码 → 每次工作前更新代码到最新版本 → 修改代码 → 提交代码到服务器取代码及修改全局设置设置用户名与邮箱1 2 git config --global user.name "My Name" git config --globa 阅读全文
posted @ 2013-02-04 11:36 ArcherDev 阅读(4458) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/witcxc/archive/2011/12/28/2304704.html 阅读全文
posted @ 2013-02-04 08:34 ArcherDev 阅读(130) 评论(0) 推荐(0) 编辑
摘要:在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进等功能的。为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc。 在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本,所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便,即创建的命令为: $vi ~/.vimrc 设置完后 $:x 或者 $wq 进行保存退出即可。 下面给出一个例子,其中列出了经常用到的设置,详细的设置信息请参照参考资料: “双引号开始的行为注释行,下同 “去掉讨厌的有关vi一致性模式,避免以前... 阅读全文
posted @ 2013-02-02 16:36 ArcherDev 阅读(288) 评论(0) 推荐(0) 编辑
摘要:set指令能设置所使用shell的执行方式,可依照不同的需求来做设置 -a 标示已修改的变量,以供输出至环境变量。 -b 使被中止的后台程序立刻回报执行状态。 -C 转向所产生的文件无法覆盖已存在的文件。 -d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。 -e 若指令传回值不等于0,则立即退出shell。 -f 取消使用通配符。 -h 自动记录函数的所在位置。 -H Shell 可利用"!"加<指令编号>的方式来执行history中记录的指令。 -k 指令所给的参数都会被视为此指令的环境变量。 -l 记录for循环的变量名称 阅读全文
posted @ 2013-02-02 16:06 ArcherDev 阅读(713) 评论(0) 推荐(0) 编辑
摘要:rsync 的核心算法http://coolshell.cn/articles/7425.html简明 Vim 练级攻略http://coolshell.cn/articles/5426.html如何调试bash脚本http://coolshell.cn/articles/1379.html将vim变得简单:如何在vim中得到你最喜爱的IDE特性http://coolshell.cn/articles/894.html 阅读全文
posted @ 2013-02-02 16:05 ArcherDev 阅读(200) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示