博文

linux常用命令(3)(2007-07-18 10:44:00)

摘要:三、进程管理和作业控制 1、          ps [-参数] ——查看系统进程            -a:显示当前控制终端的进程(包含其它用户的)            -u:显示进程的用户名和启动时间等信息            -w:宽行输出不截取输出中的命令行            -l:按长格式显示输出            -x:显示没有终端控制的进程            -e:显示所有进程            -f:产生某个进程的一个完整清单            -t num:显示第num个终端的进程 2、          kill  进程号——给进程发送终止信号           kill –9 进程号:终止该进程 3、          top 命令——实时监控进程程序 四、文件压缩和备份 1、     &nb......

阅读全文(2657) | 评论:1

linux常用命令(2)(2007-07-18 10:43:00)

摘要:二、显示命令: 1、         cat 文件名1 文件名2 .. . . .——显示文件的内容 2、         more 文件名——逐页显示文件的内容 若文件太长,用cat命令只能看到文件的最后一页,而用more命令时可以一页一页的显示。“回车”可以向后移一行,“空格”可以向后移一页;用q键退出。 3、         head [-参数] 文件名——显示文件的前几行         -n num:显示文件的前num行         -c num:显示文件的前num个字符 默认显示文件的前10行 4、         tail [-参数] 文件名——显示文件的末尾几行         -n num:显示文件的末尾num行         -n num:显示文件的末尾num个字符 默认显示文件的后10行 5、         which 命令——确定某一命令的具体位置 6、         file  文件名或目录——显示文件或目录的类型 7、         locate 字符串——查找绝对路径中包含指定字符串的文件 请看下文——三、进程管理和作业控制......

阅读全文(2621) | 评论:0

linux常用命令(1)(2007-07-18 10:42:00)

摘要:一、     文件和目录的操作命令 1、          pwd——显示用户当前所处的目录路径 2、          cd 目录名——改变当前所处的目录或处理绝对目录和相对  路径         $cd  . .——回到上一层目录         $cd .——回到原目录         $cd ~——回到user 的HOME directory         $cd /——切换到根目录         $cd . ./目录名——切换到上一层目录中的某一个目录 3、          ls [-参数] 路径或文件名——列出文件回子目录的信息 -a:显示所有的文件,包括以“.”开头的文件(即隐藏文件) -l:以长格式显示文件或目录的信息(详细信息) -i:显示每个文件的索引(节点)号 默认:蓝色的是目录、绿色是可执行文件、   红色是压缩文件、灰色是其他文件、浅蓝色是链接文件 4、          tree 目录名——以树的形式显示指定目录下的内容 若不带任何参数,则以树的形式显示目录下的文件和子目录,并递归到各子目录 5、          mkdir [-参数] 目录名——创建目录 -p:建立目录时,如果父目录不存在,则此时可以与子目录一起建立 6、 &n......

阅读全文(2645) | 评论:0

第一天碰壁(2007-07-01 13:51:00)

摘要:今天好不容易下了半天,把linux的两张安装盘下载下来刻成光盘,并且在网上查了安装资料。在安装时却出现问题,郁闷死了,提示没有驱动磁盘,真晕,我试了在别的电脑都行,就我的有问题,我请教很多人都不知道,郁闷一天,我只好借了台电脑,装在别人电脑上,真累,学个linux真不容易。哈哈,不过很有意思啊,加油啊,好好努力了,现在现在别人电脑上学吧。......

阅读全文(2642) | 评论:1

今天郁闷了(2007-06-12 22:30:00)

摘要:今天遇到了一个问题,一直没解决啊,很简单,就是 ret 和 mov ax,4c00h int 21h 的区别啊,我问了很多人,他们都说是一样的只不过前者返回过程,后者是直接返回 dos 但我在做一个题时遇到问题觉得他们说的都不准确啊,请看: DATA SEGMENT
MESG1 db 0DH,0AH,'FOUND$'
MESG2 Db 0DH,0AH,'NO FOUND$'
MESG3 Db 'ENTER KEYWORD:$'
BUFFER  DW  3213,5128,57826,7632,1387
        DW  45321,928,9876,1899,45678
COUNT dw 10
ADDR  DW   0
DATA ENDS
CODE SEGMENT
  ASSUME  CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AH,9
MOV DX,OFFSET MESG3
INT 21H
CALL  DECIBIN
MOV  AX,BX
MOV   DI,OFFSET BUFFER
MOV  CX,COUNT
NEXT:     CMP AX,[DI]
          JE  OK
          ADD  DI,2
          LOOP  NEXT
          MOV ADDR,-1
 ......

阅读全文(2772) | 评论:4

堆栈的使用心的(2007-06-11 11:35:00)

摘要:请看下面的lea sp,tos这句为什么用-t指令不显示啊,但是执行执行了 stack_seg  segment    dw 100 dup(?)    tos label word stack_seg ends code segment main proc far assume cs:code,ss:stack_seg start: mov ax,stack_seg mov ss,ax lea sp,tos //就是这句为什么不显示 ret
main endp code ends end start 在查了有关资料得出:这个是 cpu 的个保护功能的体现吧. 堆栈是由 SS 和 SP 共同指定的, 要设置完整的堆栈地址, 需要有两条指令, 如果在这两条指令间发生中断, 那么就可能导致堆栈的错误使用, 引发的后果难以预料. 因此, 一般在设置堆栈前, 早期的做法就是采用 cli 指令禁止可屏蔽类中断, 设置完成后再 sti; 后来的 cpu 籍此增加了个保险措施, 就是遇见设置堆栈的指令组时, 让它们一并执行, 中间不允许中断, 行如一条指令, 这样也是为了防止无意中漏了 cli 指令导致不良后果
哈哈哈,学习了,我也验证了,凡是跟在 mov ax,stack_seg mov ss,ax 后的语句都不显示,和mov ss,ax一起连续执行......

阅读全文(2690) | 评论:0

乔丹纪录(2007-06-10 09:45:00)

摘要:多人说,乔丹是靠荣誉和6冠军是其成神的。荣誉和冠军是集体的。所以他也没啥了不起。但事实上论冠军,拉塞尔有11个,手指都戴不完。论记录和数据,大半的记录和数据大王是由张伯伦保持的。而乔丹之所以可怕,是因为他同时集合了超强的集体荣誉,和超强的记录和数据。让我们抛开冠军和其他集体荣誉,来看下乔丹究竟在nba历史上留下了哪些历史最高记录。
乔丹的历史最高记录主要在得分,但因为历史上的疯狂得分记录几乎是由张大怪物保持的,乔丹经常只能排他后面屈居第二。所以总的来说并不多,不过说少,那也不少哦!
常规赛记录:   1.职业生涯场均30.123分 历史第一(张伯伦以30.06委列第二)   2.个人10次得分王 历史第一   3.平了张伯伦连续七次得分王纪录(1987——1993)   4.连续866场比赛得分超过两位数,历史第一   5.保持单节罚球命中NBA最高记录14次(注:有两次,一次是1989年11月15日,对犹他爵士队,单节罚中14球,另一次是1993年对热火)
6.保持着单节罚球次数最高16次(1992年12月30日对热火的第4节,乔丹全场24罚球)   7.NBA历史最多的10个赛季的投篮次数和投中次数均列NBA历史第一位   8.1987年对亚特兰大老鹰队一战创下连续得23分的NBA记录(就是投篮罚球全部命中,并且在这期间本队无任何其他球员得分),单场连续得分排行榜前四均为乔丹:23分(1987),22分(2002),19分(1996),18分(1987)   9.1992年12月30日,对迈阿密热队,半场获得23次罚球机会   10.并且罚球中20个,均创NBA记录   11.带领公牛拿到72胜10负的常规赛记录,历史绝无仅有   12.唯一在一只球队一场比赛中出现2人三双,和皮蓬共享的第1荣誉   13.唯一40岁拿40+分球员   14.第一个在40岁还能平均每场得20分以上得球员   15.保持38岁以上球员单场得分最高记录:51分   16.保持39岁以上球员单场得分最高记录:45分   17.保持40岁以上球员单场得分最高记录:43分   18.88年兼得得分王和防守王,历史上只有这一个人   19.10次入选NBA"最佳阵容" (1986-87至199......

阅读全文(1793) | 评论:0

debug详解(2007-06-10 09:27:00)

摘要:DEBUG是DOS中的一个外部命令,从DOS 1.0起就带有此命令,因此可见此命令的重要性了。虽然此命令的功能非常强大,可以解决许多问题,可是对许多人来说,尤其是初学者来说,却非常不易掌握。因此,现将DEBUG的命令详细介绍一番,以让大家知道它的使用。 Debug:A(汇编)
直接将 8086/8087/8088 记忆码合并到内存。 该命令从汇编语言语句创建可执行的机器码。所有数值都是十六进制格式,必须按一到四个字符输入这些数值。在引用的操作代码(操作码)前指定前缀记忆码。
a [address]
参数 address 指定键入汇编语言指令的位置。对 address 使用十六进制值,并键入不以“h”字符结尾的每个值。如果不指定地址,a 将在它上次停止处开始汇编。 有关将数据输入到指定字节中的信息,请单击“相关主题”列表中的 Debug E(键入)。 有关反汇编字节的信息,请单击“相关主题”列表中的 Debug U(反汇编)。
说明 使用记忆码 段的替代记忆码为 cs:、ds:、es: 和 ss:。远程返回的记忆码是 retf。字符串处理的记忆码必须明确声明字符串大小。例如,使用 movsw 可以移动 16 位的字串,使用 movsb 可以移动 8 位字节串。
汇编跳转和调用 汇编程序根据字节替换自动将短、近和远的跳转及调用汇编到目标地址。通过使用 near 或 far 前缀可以替代这样的跳转或调用,如下例所示: -a0100:0500
0100:0500 jmp 502 ; a 2-byte short jump
0100:0502 jmp near 505 ; a 3-byte near jump
0100:0505 jmp far 50a ; a 5-byte far jump 可以将 near 前缀缩写为 ne。
区分字和字节内存位置 当某个操作数可以引用某个字内存位置或者字节内存位置时,必须用前缀 word ptr 或者前缀 byte ptr 指定数据类型。可接受的缩写分别是 wo 和 by。以下范例显示两种格式: dec wo [si]
neg byte ptr [128]
指定操作数 Debug 使用包括在中括号 ([ ]) 的操作......

阅读全文(2470) | 评论:1

高效程序员应该养成的七个习惯 (转)(2007-05-27 21:12:00)

摘要:于软件工程师来说,工作也许意味着许多东西 -- 稳定的收入、做自己感兴趣的项目、找一份更好工作的跳板,或者你只是喜欢与其他程序员共事。但说到“效率”,强调的是在一定时间内按质完成项目的能力。Phil Chu根据自己的经验提出了高效程序员应该养成的七个习惯。 1.理解你的需求
成为一个有效率的程序员首先要知道如何正确的支配自己的时间。对时间最大的浪费莫过于去做那些没有用处或者永远不会上线的项目。而导致这种结果的根源往往是对需求理解的偏差。
要最大程度避免这种情况的发生,最好的办法是快速建模,尽可能让演示系统早点出来。对于客户来说,只有看得到摸得着的产品摆在面前,他们才会有兴趣去试用观察,才会在实际的操作中发现供需双方在需求理解上的偏差。否则即使你写上几百页的需求分析文档也只能是自己的一面之词,客户可没耐心去检查这些文档写的是否准确。
另一方面,你应该让每一个阶段的开发成果都能够尽早的提交给客户。让他们以完全不考虑操作合理性和业务逻辑性的傻瓜级操作来发现程序员编程中的固有思维局限。尤其必须让QA尽早的介入到项目开发中来。如果能够每天提交一份测试版本给QA自然是最理想的了,但大多数项目开发做不到这样的粒度,那么就争取每周提交一份可测试版本。重要的是应该让QA和开发能够保持交错并行状态。只有这样,才能让QA尽早发现bug,降低每个bug的修复成本,同时缩减独立测试周期的跨度。
程序员往往不愿意把半成品代码交付给测试人员,相反他们更喜欢在所有代码都完工,达到自己满意的程度之后再让别人来测试。因为在这之前的代码往往存在很多程序员自己知道需要修改(或者故意留待后续补全)的流程缺失和Bug,测试人员并不知道哪些是真正的Bug,哪些只是临时性的运行错误,每次都会一股脑儿作为Bug反馈给程序员。这往往让程序员们心烦。同时测试人员有时候也不喜欢测试这种很多分支都走不通的中间版本。
但不管喜不喜欢,测试并发现问题是测试人员的工作;程序员则应该认识到,Bug反馈得越早就越是件好事情。QA和开发之间的关系往往很敌对,可实际上双方的目标是一致的。“忠言逆耳”古训有之,对于程序员来说就应该“有则改之,无则加勉”。总好过项目完成之后才发现一堆的问题,到那时候再要做修改,基本上都会牵一发而动全身,痛苦的还是程序员自己。
2.保持真实性
尽可能让你的系......

阅读全文(2334) | 评论:0

七种QSORT排序方法(2007-05-27 21:04:00)

摘要:本文中排序都是采用的从小到大排序>   一、对int类型数组排序   int num[100];   Sample:   int cmp ( const void *a , const void *b) { return *(int *)a - *(int *)b; }   qsort(num,100,sizeof(num[0]),cmp);   二、对char类型数组排序(同int类型)   char word[100];   Sample:   int cmp( const void *a , const void *b) { return *(char *)a - *(char  *)b; }   qsort(word,100,sizeof(word[0]),cmp);   三、对double类型数组排序(特别要注意)   double in[100];   int cmp( const void *a , const void *b) { return *(double *)a > *(double *)b ? 1 : -1; }   qsort(in,100,sizeof(in[0]),cmp);   四、对结构体一级排序   struct In { double data; int other; }s[100]   //按照data的值从小到大将结构体排序,关于结构体内的排序关键数据data的类型可以很多种,参考上面的例子写   int cmp( const void *a ,const void *b) { return (*(In *)a)->data > (*(In *)b)->data ? 1 : -1; }   qsort(s,100,sizeof(s[0]),cmp);   五、对结构体......

阅读全文(2544) | 评论:0