UNIX系统开发gcc参数详解Windows系统
“梦里不知身是客”通过精心收集,向本站投稿了6篇UNIX系统开发gcc参数详解Windows系统,以下是小编收集整理后的UNIX系统开发gcc参数详解Windows系统,欢迎阅读与借鉴。
篇1:[]UNIX系统开发gcc参数详解Windows系统
[版本]-0.13 [声明] 这篇文档是我的关于gcc参数的笔记,我很怀念dos年代我用小本子,纪录所有的dos命令的参数.哈哈,下面的东西可能也不是很全面,我参考了很多的书,和gcc的帮助.不全的原因是,有可能我还没有看到这个参数,另一种原因是,我可能还不会用它不过,我
[版本] -0.13
[声明]
这篇文档是我的关于gcc参数的笔记,我很怀念dos年代我用小本子,纪录所有的dos 命令的参数.哈哈,下面的东西可能也不是很全面,我参考了很多的书,和gcc的帮助.不全的原因是,有可能我还没有看到这个参数,另一种原因是,我可能还不会用它 不过,我会慢慢的补齐的.哈哈 如果你要转在本文章请保留我email(pianopan@beeship.com)和文章的全面性.
[介绍]
gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步
1.预处理,生成.i的文件[预处理器cpp]
2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]
3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
4.连接目标代码,生成可执行程序[链接器ld]
[参数详解]
-x language filename
设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用,
可以使用的参数吗有下面的这些
`c', `objective-c', `c-header', `c++', `cpp-output', `assembler', and `assembler-with-cpp'.
看到英文,应该可以理解的。
例子用法:
gcc -x c hello.pig
-x none filename
关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型
例子用法:
gcc -x c hello.pig -x none hello2.c
-c
只激活预处理,编译,和汇编,也就是他只把程序做成obj文件
例子用法:
gcc -c hello.c
他将生成.o的obj文件
-S
只激活预处理和编译,就是指把文件编译成为汇编代码。
例子用法
gcc -S hello.c
他将生成.s的汇编代码,你可以用文本编辑器察看
-E
只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面.
例子用法:
gcc -E hello.c > pianoapan.txt
gcc -E hello.c | more
慢慢看吧,一个hello word 也要与处理成800行的代码
-o
制定目标名称,缺省的时候,gcc 编译出来的文件是a.out,很难听,如果你和我有同感,改掉它,哈哈
例子用法
gcc -o hello.exe hello.c (哦,windows用习惯了)
gcc -o hello.asm -S hello.c
-pipe
使用管道代替编译中临时文件,在使用非gnu汇编工具的时候,可能有些问题
gcc -pipe -o hello.exe hello.c
-ansi
关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一些asm inline typeof关键字,以及UNIX,vax等预处理宏,
-fno-asm
此选项实现ansi选项的功能的一部分,它禁止将asm,inline和typeof用作关键字。
-fno-strict-prototype
只对g++起作用,使用这个选项,g++将对不带参数的函数,都认为是没有显式的对参数的个数和类型说明,而不是没有参数.
而gcc无论是否使用这个参数,都将对没有带参数的函数,认为城没有显式说明的类型
-fthis-is-varialble
就是向传统c++看齐,可以使用this当一般变量使用.
-fcond-mismatch
允许条件表达式的第二和第三参数类型不匹配,表达式的值将为void类型
-funsigned-char
-fno-signed-char
-fsigned-char
-fno-unsigned-char
这四个参数是对char类型进行设置,决定将char类型设置成unsigned char(前两个参数)或者 signed char(后两个参数)
-include file
包含某个代码,简单来说,就是便以某个文件,需要另一个文件的时候,就可以用它设定,功能就相当于在代码中使用#include
例子用法:
gcc hello.c -include /root/pianopan.h
-imacros file
将file文件的宏,扩展到gcc/g++的输入文件,宏定义本身并不出现在输入文件中
-Dmacro
相当于C语言中的#define macro
-Dmacro=defn
相当于C语言中的#define macro=defn
-Umacro
相当于C语言中的#undef macro
-undef
取消对任何非标准宏的定义
-Idir
在你是用#include“file”的时候,gcc/g++会先在当前目录查找你所制定的头文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他
回先在你所制定的目录查找,然后再按常规的顺序去找.
对于#include
-I-
就是取消前一个参数的功能,所以一般在-Idir之后使用
-idirafter dir
在-I的目录里面查找失败,讲到这个目录里面查找.
-iprefix prefix
-iwithprefix dir
一般一起使用,当-I的目录查找失败,会到prefix+dir下查找
-nostdinc
使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确限定头文件的位置
-nostdin C++
规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,.此选项在创libg++库使用
-C
在预处理的时候,不删除注释信息,一般和-E使用,有时候分析程序,用这个很方便的
-M
生成文件关联的信息。包含目标文件所依赖的所有源代码你可以用gcc -M hello.c来测试一下,很简单。
-MM
和上面的那个一样,但是它将忽略由#include
-MD
和-M相同,但是输出将导入到.d的文件里面
-MMD
和-MM相同,但是输出将导入到.d的文件里面
-Wa,option
此选项传递option给汇编程序;如果option中间有逗号,就将option分成多个选项,然后传递给会汇编程序
-Wl.option
此选项传递option给连接程序;如果option中间有逗号,就将option分成多个选项,然后传递给会连接程序.
-llibrary
制定编译的时候使用的库
例子用法
gcc -lcurses hello.c
使用ncurses库编译程序
-Ldir
制定编译的时候,搜索库的路径,
比如你自己的库,可以用它制定目录,不然
编译器将只在标准库的目录找。这个dir就是目录的名称。
-O0
-O1
-O2
-O3
编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-g
只是编译器,在编译的时候,产生调试信息。
-gstabs
此选项以stabs格式声称调试信息,但是不包括gdb调试信息.
-gstabs+
此选项以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息.
-ggdb
此选项将尽可能的生成gdb的可以使用的调试信息.
-static
此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么
动态连接库,就可以运行.
-share
此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.
-traditional
试图让编译器支持传统的C语言特性
[参考资料]
-Linux/UNIX高级编程
中科红旗软件技术有限公司编著.清华大学出版社出版
-Gcc man page
[ChangeLog]
--08-10
ver 0.1 发布最初的文档
-2002-08-11
ver 0.11 修改文档格式
-2002-08-12
ver 0.12 加入了对静态库,动态库的参数
-2002-08-16
ver 0.16 增加了gcc编译的4个阶段的命令
运行 gcc/egcs
**********运行 gcc/egcs***********************
GCC是 GNU 的 C 和 C++ 编译器。实际上,GCC 能够编译三种语言:C、C++ 和 Object C(C 语言的一种面向对象扩展)。利用 gcc 命令可同时编译并连接 C 和 C++ 源程序。
如果你有两个或少数几个 C 源文件,也可以方便地利用 GCC 编译、连接并生成可执行文件。例如,假设你有两个源文件 main.c 和 factorial.c 两个源文件,现在要编译生成一个计算阶乘的程序。
代码:
-----------------------
清单 factorial.c
-----------------------
int factorial (int n)
{
if (n <= 1)
return 1;
else
return factorial (n - 1) * n;
}
-----------------------
清单 main.c
-----------------------
#include
#include
int factorial (int n);
int main (int argc, char **argv)
{
int n;
if (argc < 2)
{
printf (“Usage: %s n\n”, argv [0]);
return -1;
}
else
{
n = atoi (argv[1]);
printf (“Factorial of %d is %d.\n”, n, factorial (n));
}
return 0;
}
-----------------------
利用如下的命令可编译生成可执行文件,并执行程序:
$ gcc -o factorial main.c factorial.c
$ ./factorial 5
Factorial of 5 is 120.
GCC 可同时用来编译 C 程序和 C++ 程序。一般来说,C 编译器通过源文件的后缀名来判断是 C 程序还是 C++ 程序。在 Linux 中,C 源文件的后缀名为 .c,而 C++ 源文件的后缀名为 .C 或 .cpp。但是,gcc 命令只能编译 C++ 源文件,而不能自动和 C++ 程序使用的库连接。因此,通常使用 g++ 命令来完成 C++ 程序的编译和连接,该程序会自动调用 gcc 实现编译。假设我们有一个如下的 C++ 源文件(hello.C):
#include
void main (void)
{
cout << “Hello, world!” << endl;
}
则可以如下调用 g++ 命令编译、连接并生成可执行文件:
$ g++ -o hello hello.C
$ ./hello
Hello, world!
**********************gcc/egcs 的主要选项*********
gcc 命令的常用选项
选项 解释
-ansi 只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色,
例如 asm 或 typeof 关键词。
-c 只编译并生成目标文件。
-DMACRO 以字符串“1”定义 MACRO 宏。
-DMACRO=DEFN 以字符串“DEFN”定义 MACRO 宏。
-E 只运行 C 预编译器。
-g 生成调试信息。GNU 调试器可利用该信息。
-IDIRECTORY 指定额外的头文件搜索路径DIRECTORY。
-LDIRECTORY 指定额外的函数库搜索路径DIRECTORY。
-lLIBRARY 连接时搜索指定的函数库LIBRARY。
-m486 针对 486 进行代码优化。
-o FILE 生成指定的输出文件。用在生成可执行文件时。
-O0 不进行优化处理。
-O 或 -O1 优化生成代码。
-O2 进一步优化。
-O3 比 -O2 更进一步优化,包括 inline 函数。
-shared 生成共享目标文件。通常用在建立共享库时。
-static 禁止使用共享连接。
-UMACRO 取消对 MACRO 宏的定义。
-w 不生成任何警告信息。
-Wall 生成所有警告信息。
【发表回复】【查看CU论坛原帖】【添加到收藏夹】【关闭】
原文转自:www.ltesting.net
篇2:UNIX系统开发gcc参数详解Unix系统
gcc and g++分别是gnu的c c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成
gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]
2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]
3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
4.连接目标代码,生成可执行程序[链接器ld]
[版本] -0.13
[声明]
这篇文档是我的关于gcc参数的笔记,我很怀念dos年代我用小本子,纪录所有的dos 命令
的参数.哈哈,下面的东西可能也不是很全面,我参考了很多的书,和gcc的帮助.不全的原
因是,有可能我还没有看到这个参数,另一种原因是,我可能还不会用它 不过,我会慢慢的
补齐的.哈哈 如果你要转在本文章请保留我email(pianopan@beeship.com)和文章的全面
性.
[介绍]
gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步
1.预处理,生成.i的文件[预处理器cpp]
2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]
3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
4.连接目标代码,生成可执行程序[链接器ld]
[参数详解]
-x language filename
设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后
缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀
名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了
下一个参数的使用,
可以使用的参数吗有下面的这些
`c', `objective-c', `c-header', `c++', `cpp-output', `assembler', and `a
ssembler-with-cpp'.
看到英文,应该可以理解的。
例子用法:
gcc -x c hello.pig
-x none filename
关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型
例子用法:
gcc -x c hello.pig -x none hello2.c
-c
只激活预处理,编译,和汇编,也就是他只把程序做成obj文件
例子用法:
gcc -c hello.c
他将生成.o的obj文件
-S
只激活预处理和编译,就是指把文件编译成为汇编代码。
例子用法
gcc -S hello.c
他将生成.s的汇编代码,你可以用文本编辑器察看
-E
只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面.
例子用法:
gcc -E hello.c >pianoapan.txt
gcc -E hello.c | more
慢慢看吧,一个hello word 也要与处理成800行的代码
-o
制定目标名称,缺省的时候,gcc 编译出来的文件是a.out,很难听,如果你和我有同感
,改掉它,哈哈
例子用法
gcc -o hello.exe hello.c (哦,windows用习惯了)
gcc -o hello.asm -S hello.c
-pipe
使用管道代替编译中临时文件,在使用非gnu汇编工具的时候,可能有些问题
gcc -pipe -o hello.exe hello.c
-ansi
关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一些asm inl
ine typeof关键字,以及UNIX,vax等预处理宏,
-fno-asm
此选项实现ansi选项的功能的一部分,它禁止将asm,inline和typeof用作关键字。
-fno-strict-prototype
只对g++起作用,使用这个选项,g++将对不带参数的函数,都认为是没有显式的对参数
的个数和类型说明,而不是没有参数.
而gcc无论是否使用这个参数,都将对没有带参数的函数,认为城没有显式说明的类型
-fthis-is-varialble
就是向传统c++看齐,可以使用this当一般变量使用.
-fcond-mismatch
允许条件表达式的第二和第三参数类型不匹配,表达式的值将为void类型
-funsigned-char
-fno-signed-char
-fsigned-char
-fno-unsigned-char
这四个参数是对char类型进行设置,决定将char类型设置成unsigned char(前两个参
数)或者 signed char(后两个参数)
-include file
包含某个代码,简单来说,就是便以某个文件,需要另一个文件的时候,就可以用它设
定,功能就相当于在代码中使用#include
例子用法:
gcc hello.c -include /root/pianopan.h
-imacros file
将file文件的宏,扩展到gcc/g++的输入文件,宏定义本身并不出现在输入文件中
-Dmacro
相当于C语言中的#define macro
-Dmacro=defn
相当于C语言中的#define macro=defn
-Umacro
相当于C语言中的#undef macro
-undef
取消对任何非标准宏的定义
-Idir
在你是用#include“file”的时候,gcc/g++会先在当前目录查找你所制定的头文件,如
果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他
回先在你所制定的目录查找,然后再按常规的顺序去找.
对于#include
省的头文件目录查找
-I-
就是取消前一个参数的功能,所以一般在-Idir之后使用
-idirafter dir
在-I的目录里面查找失败,讲到这个目录里面查找.
-iprefix prefix
-iwithprefix dir
一般一起使用,当-I的目录查找失败,会到prefix+dir下查找
-nostdinc
使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确限定头
文件的位置
-nostdin C++
规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,.此选项在创libg++库
使用
-C
在预处理的时候,不删除注释信息,一般和-E使用,有时候分析程序,用这个很方便的
-M
生成文件关联的信息,
包含目标文件所依赖的所有源代码你可以用gcc -M hello.c
来测试一下,很简单。
-MM
和上面的那个一样,但是它将忽略由#include
-MD
和-M相同,但是输出将导入到.d的文件里面
-MMD
和-MM相同,但是输出将导入到.d的文件里面
-Wa,option
此选项传递option给汇编程序;如果option中间有逗号,就将option分成多个选项,然
后传递给会汇编程序
-Wl.option
此选项传递option给连接程序;如果option中间有逗号,就将option分成多个选项,然
后传递给会连接程序.
-llibrary
制定编译的时候使用的库
例子用法
gcc -lcurses hello.c
使用ncurses库编译程序
-Ldir
制定编译的时候,搜索库的路径。比如你自己的库,可以用它制定目录,不然
编译器将只在标准库的目录找。这个dir就是目录的名称。
-O0
-O1
-O2
-O3
编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-g
只是编译器,在编译的时候,产生调试信息。
-gstabs
此选项以stabs格式声称调试信息,但是不包括gdb调试信息.
-gstabs+
此选项以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息.
-ggdb
此选项将尽可能的生成gdb的可以使用的调试信息.
-static
此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么
动态连接库,就可以运行.
-share
此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.
-traditional
试图让编译器支持传统的C语言特性
[参考资料]
-Linux/UNIX高级编程
中科红旗软件技术有限公司编著.清华大学出版社出版
-Gcc man page
原文转自:www.ltesting.net
篇3:Windows故障详解Windows系统
一、在 Windows 下经常出现蓝屏故障 出现此类故障的表现方式多样,有时在Windows启动时出现,有时在Windows下运行一些软件时出现,出现此类故障一般是由于用户操作不当促使 Windows系统 损坏造成,此类现象具体表现在以 安全 模式引导时不能正常进入系统,出
一、在Windows下经常出现蓝屏故障
出现此类故障的表现方式多样,有时在Windows启动时出现,有时在Windows下运行一些软件时出现,出现此类故障一般是由于用户操作不当促使Windows系统损坏造成,此类现象具体表现在以安全模式引导时不能正常进入系统,出现蓝屏故障,有时碎片太多也会引发此类故障,有一次笔者在整理碎片后就解决了该故障,如若排除此项可能则有以下几种原因可能引发该故障。
1、内存原因。由于内存原因引发该故障的现象比较常见,出现此类故障一般是由于芯片质量不佳所造成,但有时我们通过修改CMOS设置中的延迟时间CAS(将其由3改为2)可以解决该问题,倘若不行则只有更换内存条,如若条件允许可按作者《电脑综合诊治之内存故障详解》一文的办法予以修复看能否解决问题。
2、主板原因。由于主板原因引发该故障的概率较内存稍低,一般由于主板原因出现此类故障后,计算机在蓝屏后一般不会死机,而且故障出现频繁,对此唯有更换主板一途。
3、CPU原因,由于CPU原因出现此类故障的现象比较少见,一般常见于cyrix的CPU上,对此我们可以降低CPU频率,看能否解决,如若不行,则只有更换一途。
二、计算机以正常模式在Windows启动时出现一般保护错误
出现此类故障的原因一般有以下几点:
1、内存条原因。倘若是内存原因,我们可以改变一下CAS延迟时间看能否解决问题,倘若内存条是工作在非66MHz 外频下,例如75MHz 、83MHz 、100MHz甚至以上的频率,我们可以通过降低外频或者内存频率来试一下,如若不行,只有将其更换了。
2、磁盘出现坏道。倘若是由于磁盘出现坏道引起,我们可以用安全模式引导系统,再用磁盘扫描程序修复一下硬盘错误,看能否解决问题。硬盘出现坏道后,如不及时予以修复,可能会导致坏道逐渐增多或硬盘彻底损坏,因此,我们应尽早予以修复,修复方法可参看《电脑综合诊治之硬盘故障详解》一文。 3、windows系统损坏。对此唯有重装系统方可解决。
4、在CMOS设置内开启了防病毒功能。此类故障一般在系统安装时出现,在系统安装好后开启此功能一般不会出现问题。
三、计算机经常出现随机性死机现象
死机故障比较常见,但因其涉及面广,是以维修比较麻烦,现在我将逐步予以详解。
1、病毒原因造成电脑频繁死机
由于此类原因造成该故障的现象比较常见,当计算机感染病毒后,主要表现在以下几个方面:
①系统启动时间延长;
②系统启动时自动启动一些不必要的程序;
③无故死机
④屏幕上出现一些乱码。
其表现形式层出不穷,由于篇幅原因就介绍到此,在此需要一并提出的是,倘若因为病毒损坏了一些系统文件,导致系统工作不稳定,我们可以在安全模式下用系统文件检查器对系统文件予以修复。 2、由于某些元件热稳定性不良造成此类故障(具体表现在CPU、电源、内存条、主板)
对此,我们可以让电脑运行一段时间,待其死机后,再用手触摸以上各部件,倘若温度太高则说明该部件可能存在问题,我们可用替换法来诊断。值得注意的是在安装CPU风扇时最好能涂一些散热硅脂,但我在某些组装的电脑上却是很难见其踪影,实践证明,硅脂能降低温度5―10度左右,特别是P Ⅲ 的电脑上,倘若不涂散热硅脂,计算机根本就不能正常工作,笔者就曾遇到过一次此类现象。该机主要配置如下:磐英815EP主板、PⅢ733CPU、133外频的128M内存条,当该机组装完后,频繁死机,连Windows系统都不能正常安装,但是更换赛扬533的CPU后,故障排除,怀疑主板或CPU有问题,但更换同型号的主板、CPU后该故障也不能解决。后来由于发现其温度太高,在CPU上涂了一些散热硅脂,故障完全解决。实践证明在赛扬533以上的CPU上必须要涂散热硅脂,否则极有可能引起死机故障。
3、由于各部件接触不良导致计算机频繁死机
此类现象比较常见,特别是在购买一段时间的电脑上。由于各部件大多是靠金手指与主板接触,经过一段时间后其金手指部位会出现氧化现象,在拔下各卡后会发现金手指部位已经泛黄,此时,我们可用橡皮擦来回擦拭其泛黄处来予以清洁。
4、由于硬件之间不兼容造成电脑频繁死机
此类现象常见于显卡与其它部件不兼容或内存条与主板不兼容,例如SIS的显卡,当然其它设备也有可能发生不兼容现象,对此可以将其它不必要的设备如Modem、声卡等设备拆下后予以判断。
5、软件冲突或损坏引起死机
此类故障,一般都会发生在同一点,对此可将该软件卸掉来予以解决。
四、计算机在Windows启动系统时出现*.Vxd或其它文件未找到,按任意键继续的故障
此类故障一般是由于用户在卸载软件时未删除彻底或安装硬件时驱动程序安装不正确造成,对此,我们可以进入注册表管理程序,利用其查找功能,将提示未找到的文件,从注册表中删除后即可予以解决 。
五、在Windows以正常模式引导到登录对话框时,点“取消”或“确定”后桌面无任何图标,不能进行任何操作。
此类故障一般是由于用户操作不当,造成系统损坏造成。解决方法如下:首先我们以安全模式引导系统,进入控制面板,进入“密码”选项,将“用户配置文件”设为“此桌面用户使用相同的桌面及首选项”,再进入“网络”,将“拔号网络适配器”以外的各项删除,使其登录方式为Windows登录,重新启动计算机,即可予以解决。
六、在Windows下关闭计算机时电脑重新启动
我在电脑报近期的一篇文章中看到其解决办法是用整理硬盘或重装Windows来解决,其实不然,产生此类故障一般是由于用户在不经意或利用一些设置系统的软件时,使用了Windows系统的快速关机功能,从而引发该故障,其解决方法如下:点击“开始”―“运行”―“msconfig”,再在“系统配置实用程序”面板中选择高级,将其中“禁用快速关机”选中,重新启动计算机即可予以解决。
七、Windows中汉字丢失
在电脑中安装了Windows后又安装了其他软件,整理硬盘碎片时,系统提示:“硬盘碎片含有错误”。用SCANDISK修复后,碎片真理便不能用了,再进入Windows附件中时,发现其中汉字不见了。经检查没有病毒,再查看SCANDIDSK.LOG文件,提示:“文件夹C:\WINDOWS已被损坏………”。
根据上述故障现象,中文Windows发生汉字乱码,大多是因注册表中有关汉字显示的内容丢失而造成。此时,打开注册表编辑器(WINDOWS\REGEDIT.EXE),再打开有“Associated Default Fonts”及“Associated Char Set”这两行关键字,若有,再分别打开这两行关键字即可看到其中内容,
当只有“默认”一行而无其他内容,表明无法定义有关的汉字显示,为汉字乱码的原因。
可采用手工方法进行修复。
(1)单击“开始”,选择“运行”。
(2)在“运行”对话框中,键入regedit,单击“确定”,打开注册表编辑器。
(3)展开“我的电脑\HKEY―LWCAL―MACHINE\System\current Control Set\Control Fontassoc”查看底下有无“Aossiated Char Set文件夹图标,在窗口的右栏中,将增加以下内容:
ANSI(00)“Yes”
GB2312(86)“Yes”
WEM(FF)“Yes”
SYMBOL(02)“on”
增加方法为:在编辑\新建菜单中,单击“串值”,再在右栏中出现的文字框中,键入ANSI(00),之后双击该文字框,在出现的对话框中,键入Yes,单击“确定”,其余增加的内容依此类推。
(4)按照上述方法,单击Associated Default Fonts文件图标,其窗口的右栏中将增加以下内容:
Assoc System Font“Simsun、ttf”
Font Package Decorative“宋体”
Font Package Don't Care“宋体”
Font Package Modern“宋体”
Font Package Roman“宋体”
Font Package Script“宋体”
Font Package Swiess“宋体” (5)当没有“Associated Char Set”及“Associated Default Fonts”两行关键字时,则Fontassoc文件夹,在编辑\新菜单下,单击“主键”,再在出现的文字框中,分别键入上述两行关键字,之后按步骤(4)增加所列之内容。
(6)关闭系统,重新启动计算机。
八、在Windows下打印机不能打印
在确认打印机完好的情况下,首先用户进入DOS状态(纯DOS),在命令提示行输入dir>prn或按键盘上的“Print screen sysrq”键,看打印机能否打印,倘若不行一般可判断主板的打印口或打印线缆有问题,但据笔者经验有可能与cmos设置中的打印口模式(一般有Ecp、Epp、Spp几种)设置有关,用户可相应调换试验,还有一种比较特殊的情况,当打印口损坏后ucdos、Windows下均能打印,但按上述检测方法或理德名片系统下却不能打印,对此唯有加多功能卡方能解决(加多功能卡后要屏蔽主板上的IDE、com、打印口)。倘若Dos下能够打印,可按以下方法来予以解决:
①在Windows下,进入控制面板的系统属性,看打印端口LPT1是否存在,倘若没有可进入控制面板--添加新硬件,让其搜索新硬件,再将找到的打印口添加进去就可以了。
②驱动程序是否已经正确安装,重新安装打印机驱动程序。
③安装系统文件的磁盘是否有剩余空间,一般空间不足会有内存不足的提示,只要卸除一些软件就可以了。
④计算机可能感染病毒。
九、在Windows下运行应用程序时提示内存不足 一般出现内存不足的提示可能有以下几种原因:
①磁盘剩余空间不足,只要相应删除一些文件即可。
②同时运行了多个应用程序。③计算机感染了病毒。
十、在Windows下打印机打出的字均为乱码
此类故障一般是由于打印机驱动程序未正确安装或并行口模式设置不符有关,对于第一种情况解决办法比较简单,如若是第二种情况可进入Cmos设置后更改并行口模式且逐个试验即可(一般有Ecp、Epp、Spp三种)。
十一、在Windows下运行应用程序时出现非法操作的提示
此类故障引起原因较多,有如下几种可能:
①系统文件被更改或损坏。倘若由此引发则打开一些系统自带的程序时就会出现非法操作的提示,(例如打开控制面板)。
②驱动程序未正确安装,此类故障一般表现在显卡驱动程序之上,倘若由此引发,则打开一些游戏程序时均会产生非法操作的提示,笔者还曾遇到过一例由此引发的特殊现象,有时在打开某些网页时出现非法操作的提示。
③内存条质量不佳引起(有时提高内存延迟时间即将系统默认的3改为2可以解决此类故障)。
④有时程序运行时倘若未安装声卡驱动程序亦会产生此类故障,例如抢滩登陆战 ,倘若未安装声卡驱动程序,运行时就会产生非法操作错误。 ⑤软件之间不兼容,例如IE5.5装于win98第二版的系统上,当IE同时打开多个窗口时有时会产生非法操作的提示。
十二、拨号成功后不能打开网页
出现此类故障后有以下几种现象:
1、提示无法打开搜索页。此类故障一般是由于网络配置有问题造成。进入“控制面板”--“网络”,将拨号适配器以外的各项全部删除,重新启动计算机后再添加microsoft的“TCP/IP协议”重新启动计算机后即可解决。
2、一些能够进去的站点不能进去且长时间查找站点。有一些MODEM如若用户没有为其指定当地的IP地址就会出现此类故障,可进入MODEM设置项再为其指定当地的IP地址即可,例如湖南的IP地址为:202.103.96.68。还有一种可能是由于用户用快猫加鞭等软件优化过,对此也可按上面介绍的方法重新安装网络选项或恢复一下注册表看能否解决问题,如若不行的话,就笔者经验只有重新安装系统方可解决。 3、在windows的IE浏览器中,为了限制对某些inte.net站点的访问,可以在“控制面板”的“internet”设置的“内容”页中启用“分级审查”,用户可以对不同的内容级别进行限制,但是当我们浏览含有activex的页面时,总会出现口令对话框要求我们输入口令,如果口令不对,就会无法看到此页面。这个口令被遗忘后,用户便无法正常浏览。解决的办法就是通过修改注册表,删除这个口令。方法如下:
打开注册表编辑器,找到HKEY_LOCAL_MACHINE\Software\microsoft\windows\current version\policies\ratings。在这个子健下面存放的就是加密后的口令,将ratings子键删除,IE的口令就被解除了。
十三、3DMAX正常安装完成后不能启动
此类故障一般是由于用户的windows系统文件安装不全所造成,windows一般在正常安装情况下会少装如下几个文件:vdd.vxd、vcomm.vxd、vmouse.vxd、vflatd.vxd、vdmad.vxd、configmg.vxd、ntkern.vxd,我们只要将其添加进去即可,方法如下:点击开始--程序--附件--系统工具--系统信息,再点击“工具”--系统文件检查器,选取从安装软盘提取文件,在空白栏内输入以上提到的各个文件,提取完成后即可解决故障。
十四、计算机自动重新启动
此类故障表现在如下几个方面:在系统启动时或在应用程序运行了一段时间后出现此类故障。引发该故障的原因一般是由于内存条热稳定性不良或电源工作不稳定所造成,还有一种可能就是CPU温度太高引起。还有一种比较特殊的情况,有时由于驱动程序或某些软件有冲突,导致windows系统在引导时产生该故障。
原文转自:www.ltesting.net
篇4:用 gdb 调试 GCC 程序Windows系统
用gdb调试G CC 程序 unix 下有一个叫gdb的GNU调试程序.gdb是一个用来调试C和C++程序的强力调试器.它使你能在程序运行时观察程序的内部结构和内存的使用情况.以下是gdb所提供的一些功能: 它使你能监视你程序中变量的值. 它使你能设置断点以使程序在指定的代码
用 gdb 调试 GCC程序
unix下有一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++ 程序的强力调试器. 它使你能在程序运行时观察程序的内部结构和内存的使用情况. 以下是 gdb 所提供的一些功能:
它使你能监视你程序中变量的值.
它使你能设置断点以使程序在指定的代码行上停止执行.
它使你能一行行的执行你的代码.
在命令行上键入 gdb 并按回车键就可以运行 gdb 了, 如果一切正常的话, gdb 将被启动并且你将在屏幕上看到类似的内容:
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type “show copying” to see the conditions.
There is absolutely no warranty for GDB; type “show warranty” for details.
GDB 4.14 (i486-slakware-linux), Copyright 1995 Free Software Foundation, Inc.
(gdb)
当你启动 gdb 后, 你能在命令行上指定很多的选项. 你也可以以下面的方式来运行 gdb :
gdb
当你用这种方式运行 gdb , 你能直接指定想要调试的程序. 这将告诉gdb 装入名为 fname 的可执行文件. 你也可以用 gdb 去检查一个因程序异常终止而产生的 core 文件, 或者与一个正在运行的程序相连. 你可以参考 gdb 指南页或在命令行上键入 gdb -h 得到一个有关这些选项的说明的简单列表.
为调试编译代码(Compiling Code for Debugging)
为了使 gdb 正常工作, 你必须使你的程序在编译时包含调试信息. 调试信息包含你程序里的每个变量的类型和在可执行文件里的地址映射以及源代码的行号. gdb 利用这些信息使源代码和机器码相关联.
在编译时用 -g 选项打开调试选项.
gdb 基本命令
gdb 支持很多的命令使你能实现不同的功能. 这些命令从简单的文件装入到允许你检查所调用的堆栈内容的复杂命令, 表27.1列出了你在用 gdb 调试时会用到的一些命令. 想了解 gdb 的详细使用请参考 gdb 的指南页.
表 27.1. 基本 gdb 命令.
命 令 描 述
file 装入想要调试的可执行文件.
kill 终止正在调试的程序.
list 列出产生执行文件的源代码的一部分.
next 执行一行源代码但不进入函数内部.
step 执行一行源代码而且进入函数内部.
run 执行当前被调试的程序
quit 终止 gdb
watch 使你能监视一个变量的值而不管它何时被改变.
break 在代码里设置断点, 这将使程序执行到这里时被挂起.
make 使你能不退出 gdb 就可以重新产生可执行文件.
shell 使你能不离开 gdb 就执行UNIXshell 命令.
gdb 支持很多与 UNIX shell 程序一样的命令编辑特征. 你能象在 bash 或 tcsh里那样按 Tab 键让 gdb 帮你补齐一个唯一的命令, 如果不唯一的话 gdb 会列出所有匹配的命令. 你也能用光标键上下翻动历史命令.
gdb 应用举例
本节用一个实例教你一步步的用 gdb 调试程序. 被调试的程序相当的简单, 但它展示了 gdb 的典型应用.
下面列出了将被调试的程序. 这个程序被称为 greeting , 它显示一个简单的问候, 再用反序将它列出.
#include
main
{
char my_string[] = “hello there”;
my_print (my_string);
my_print2 (my_string);
}
void my_print (char *string)
{
printf (“The string is %s\n”, string);
}
void my_print2 (char *string)
{
char *string2;
int size, i;
size = strlen (string);
string2 = (char *) malloc (size + 1);
for (i = 0; i < size; i++)
string2[size - i] = string[i];
string2[size+1] = `\0';
printf (“The string printed backward is %s\n”, string2);
}
用下面的命令编译它:
gcc -o test test.c
这个程序执行时显示如下结果:
The string is hello there
The string printed backward is
输出的第一行是正确的, 但第二行打印出的东西并不是我们所期望的. 我们所设想的输出应该是:
The string printed backward is ereht olleh
由于某些原因, my_print2 函数没有正常工作. 让我们用 gdb 看看问题究竟出在哪儿, 先键入如下命令:
gdb greeting
--------------------------------------------------------------------------------
注意: 记得在编译 greeting 程序时把调试选项打开.
--------------------------------------------------------------------------------
如果你在输入命令时忘了把要调试的程序作为参数传给 gdb , 你可以在 gdb 提示符下用 file 命令来载入它:
(gdb) file greeting
这个命令将载入 greeting 可执行文件就象你在 gdb 命令行里装入它一样.
这时你能用 gdb 的 run 命令来运行 greeting 了. 当它在 gdb 里被运行后结果大约会象这样:
(gdb) run
Starting program: /root/greeting
The string is hello there
The string printed backward is
Program exited with code 041
这个输出和在 gdb 外面运行的结果一样. 问题是, 为什么反序打印没有工作? 为了找出症结所在, 我们可以在 my_print2 函数的 for 语句后设一个断点, 具体的做法是在 gdb 提示符下键入 list 命令三次, 列出源代码:
(gdb) list
(gdb) list
(gdb) list
--------------------------------------------------------------------------------
技巧: 在 gdb 提示符下按回车健将重复上一个命令.
--------------------------------------------------------------------------------
第一次键入 list 命令的输出如下:
1 #include
2
3 main ()
4 {
5 char my_string[] = “hello there”;
6
7 my_print (my_string);
8 my_print2 (my_string);
9 }
10
如果按下回车, gdb 将再执行一次 list 命令, 给出下列输出:
11 my_print (char *string)
12 {
13 printf (“The string is %s\n”, string);
14 }
15
16 my_print2 (char *string)
17 {
18 char *string2;
19 int size, i;
20
再按一次回车将列出 greeting 程序的剩余部分:
21 size = strlen (string);
22 string2 = (char *) malloc (size + 1);
23 for (i = 0; i < size; i++)
24 string2[size - i] = string[i];
25 string2[size+1] = `\0';
26 printf (“The string printed backward is %s\n”, string2);
27 }
根据列出的源程序, 你能看到要设断点的地方在第24行, 在 gdb 命令行提示符下键入如下命令设置断点:
(gdb) break 24
gdb 将作出如下的响应:
Breakpoint 1 at 0x139: file greeting.c, line 24
(gdb)
现在再键入 run 命令, 将产生如下的输出:
Starting program: /root/greeting
The string is hello there
Breakpoint 1, my_print2 (string = 0xbfffdc4 “hello there”) at greeting.c :24
24 string2[size-i]=string[i]
你能通过设置一个观察 string2[size - i] 变量的值的观察点来看出错误是怎样产生的, 做法是键入:
(gdb) watch string2[size - i]
gdb 将作出如下回应:
Watchpoint 2: string2[size - i]
现在可以用 next 命令来一步步的执行 for 循环了:
(gdb) next
经过第一次循环后, gdb 告诉我们 string2[size - i] 的值是 `h`. gdb 用如下的显示来告诉你这个信息:
Watchpoint 2, string2[size - i]
Old value = 0 `\000'
New value = 104 `h'
my_print2(string = 0xbfffdc4 “hello there”) at greeting.c:23
23 for (i=0; i
这个值正是期望的. 后来的数次循环的结果都是正确的. 当 i=10 时, 表达式 string2[size - i] 的值等于 `e`, size - i 的值等于 1, 最后一个字符已经拷到新串里了.
如果你再把循环执行下去, 你会看到已经没有值分配给 string2[0] 了, 而它是新串的第一个字符, 因为 malloc 函数在分配内存时把它们初始化为空(null)字符. 所以 string2 的第一个字符是空字符. 这解释了为什么在打印 string2 时没有任何输出了.
现在找出了问题出在哪里, 修正这个错误是很容易的. 你得把代码里写入 string2 的第一个字符的的偏移量改为 size - 1 而不是 size. 这是因为 string2 的大小为 12, 但起始偏移量是 0, 串内的字符从偏移量 0 到 偏移量 10, 偏移量 11 为空字符保留.
为了使代码正常工作有很多种修改办法. 一种是另设一个比串的实际大小小 1 的变量. 这是这种解决办法的代码:
#include
main ()
{
char my_string[] = “hello there”;
my_print (my_string);
my_print2 (my_string);
}
my_print (char *string)
{
printf (“The string is %s\n”, string);
}
my_print2 (char *string)
{
char *string2;
int size, size2, i;
size = strlen (string);
size2 = size -1;
string2 = (char *) malloc (size + 1);
for (i = 0; i < size; i++)
string2[size2 - i] = string[i];
string2[size] = `\0';
printf (“The string printed backward is %s\n”, string2);
}
njlwm 回复于:-07-06 17:11:01#gdb
gdb: not found
#
????????????????????
原文转自:www.ltesting.net
篇5:网络通信命令详解Windows系统
Linux BSD% Unix ab 功能说明:HTTP测绘 ytalk 功能说明:与其他用户交谈, 语 法:ytalk [-isxY][-h主机名称IP地址][用户名称...] 补充说明:通过ytalk指令,你可以和其他用户线上交谈,如果想和其他主机的用户交谈,在用户名称后加上其主机名称或IP地址即
Linux&BSD%Unix
ab
功能说明:HTTP测绘
ytalk
功能说明:与其他用户交谈。
语 法:ytalk [-isxY][-h<主机名称ip地址>][用户名称...]主机名称ip地址>
补充说明:通过ytalk指令,你可以和其他用户线上交谈,如果想和其他主机的用户交谈,在用户名称后加上其主机名称或IP地址即可。
参 数:
-h<主机名称ip地址>指定交谈对象所在的远端主机。主机名称ip地址>
-i 用提醒声响代替显示信息。
-s 在指令提示符号先开启ytalk交谈窗。
-x 关闭图形界面。
-Y 所有必须回应yes或no的问题,都必须用大写英文字母“Y”或“N”回答。
----------------------------------------------------
write
功能说明:传送信息。
语 法:write [用户名称][终端机编号]
补充说明:通过write指令可传递信息给另一位登入系统的用户,当输入完毕后,键入EOF表示信息结束,write指令就会将信息传给对方。如果接收信息的用户不只登入本地主机一次,你可以指定接收信息的终端机编号。
------------------------------------------------------------
wall(write all)
功能说明:传送信息。
语 法:wall [公告信息]
补充说明:通过wall指令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall指令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。
-------------------------------------------------------
uux
功能说明:在远端的UUCP主机上执行指令。
语 法:uux [-bcCIjlnrvz][-a<地址>][-g<等级>][-s<文件>][-x<层级>][--help][指令]层级>文件>等级>地址>
补充说明:uux可在远端的UUCP主机上执行指令或是执行本机上的指令,但在执行时会使用远端电脑的文件。
参 数:
-或-p或--stdin 直接从键盘读取要执行的指令。
-a<地址>或--requestor<地址>执行邮件地址,以便寄送状态信息。地址>地址>
-b或--erturn-stdin 在屏幕上显示状态信息。
-c或--nocopy 不用将文件复制到缓冲区。
-C或--copy 将文件复制到缓冲区。
-g<等级>或--grade<等级>指定文件传送作业的优先顺序。等级>等级>
-I或--config file 指定uux配置文件。
-j或--jobid 显示作业编号。
-l或--link 将本机上的文件连接到缓冲区。
-n或--notification=no 无论发生任何状态,都不寄邮件通知用户。
-r或--nouucico 不要立即启动uucico服务程序,仅将作业送到队列中,然后再执行。
-s<文件>或--status<文件>将完成状态保存为指定的文件。文件>文件>
-v或--version 显示版本信息。
-x<层级>或--debug<层级>指定排错层级。层级>层级>
-z或--notification=error 若发生错误,则以邮件来通知用户。
--help 显示帮助。
------------------------------------------------
uustat
功能说明:显示UUCP目前的状况。
语 法:uustat [-aeiKmMNpqQRv][-B<行数>][-c<指令>][-C<指令>][-I<配置文件>][-k<工作>][-o<小时>][-r<工作>][-s<主机>][-S<主机>][-u<用户>][-U<用户>][-W<附注>][-y<小时>][-x<层级>][--help]层级>小时>附注>用户>用户>主机>主机>工作>小时>工作>配置文件>指令>指令>行数>
补充说明:执行uucp与uux指令后,会先将工作送到队列,再由uucico来执行工作。uustat可显示,删除或启动队列中等待执行的工作。
参 数:
-a或-all 显示全部的UUCP工作。
-B<行数>或--mail-lines<行数>与-M或-N参数一并使用,用来指定邮件中要包含多少行的信息。行数>行数>
-c<指令>或--command<指令>显示与<指令>有关的工作。指令>指令>指令>
-C<指令>或--not-command<指令>显示与<指令>无关的工作。指令>指令>指令>
-e或--executions 仅显示待执行的工作。
-i或--prompt 针对队列中的每项工作,询问使用是否要删除工作。
-I<配置文件>或--config<配置文件>指定配置文件。配置文件>配置文件>
-k<工作>或--kill<工作>删除指定的工作。工作>工作>
-m或--status 删除全部的工作。
-M或-mail 将状态信息邮寄给UUCP管理员。
-N或--notify 将状态信息分别邮寄给提出该项工作的用户。
-o<小时>或--older-than<小时>显示超过指定时数的工作。小时>小时>
-p或--ps 显示负责UUCP锁定的程序。
-q或--list 显示每台远端主机上所要执行工作的状态。
-Q或--no-list 不显示工作。
-r<工作>或--rejuvenate<工作>重新启动指定的工作。工作>工作>
-R或--rejuvenate-all 重新启动全部的工作。
-s<主机>或--system<主机>显示与<主机>有关的工作。主机>主机>主机>
-S<主机>或--not-system<主机>显示与<主机>无关的工作。主机>主机>主机>
-v或--version 显示版本信息。
-u<用户>或--user<用户>显示与<用户>有关的工作。用户>用户>用户>
-U<用户>或--not-user<用户>显示与<用户>无关的工作。用户>用户>用户>
-W<附注>或--comment<附注>要放在邮件信息中的附注。附注>附注>
-y<小时>或--younger-than<小时>显示低于指定时数的工作。小时>小时>
-x<层级>或--debug<层级>指定排错层级。层级>层级>
--help 显示帮助。
----------------------------------------------------
uuname
功能说明:显示全部的UUCP远端主机。
语 法:uuname [-alv][-I<配置文件>][--help]配置文件>
补充说明:uuname可显示UUCP远端主机。
参 数:
-a或--aliases 显示别名。
-I<配置文件>或--config<配置文件>指定程序的配置文件。配置文件>配置文件>
-l或--local 显示本机名称。
-v或--version 显示版本信息。
--help 显示帮助。
-------------------------------------------------
uulog
功能说明:显示UUCP记录文件。
语 法:uulog [-DFISv][-<行数>][-f<主机>][-I<配置文件>][-n<行数>][-s<主机>][-u<用户>][-X<层级>][--help]层级>用户>主机>行数>配置文件>主机>行数>
补充说明:uulog可用来显示UUCP记录文件中记录。
参 数:
-D或--debuglog 显示排错记录。
-f<主机>或--follow<主机>与-F参数类似,但仅显示与指定主机相关的记录。主机>主机>
-I<配置文件>或--config<配置文件>指定程序的配置文件。配置文件>配置文件>
-<行数>,-n<行数>或--lines<行数>显示记录文件中,从最后算起指定行数的数值。行数>行数>行数>
-s<主机>仅显示记录文件中,与指定文件相关的记录。主机>
-S或--statslog 显示统计记录。
-u<用户>或--suer<用户>仅显示记录文件中,与指定用户相关的记录。用户>用户>
-v或--version 显示版本信息。
-X<层级>或--debug<层级>设定排错层级。层级>层级>
--help 显示帮助。
--------------------------------------------------
tty(teletypewriter)
功能说明:显示终端机连接标准输入设备的文件名称。
语 法:tty [-s][--help][--version]
补充说明:在Linux操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于/dev目录下。你可以执行tty指令查询目前使用的终端机的文件名称。
参 数:
-s或--silent或--quiet 不显示任何信息,只回传状态代码。
--help 在线帮助。
--version 显示版本信息。
------------------------------------------------------
traceroute
功能说明:显示数据包到主机间的路径。
语 法:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]超时秒数>服务类型>来源地址>通信端口>存活数值>网络界面>网关>存活数值>
补充说明:traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。
参 数:
-d 使用Socket层级的排错功能。
-f<存活数值>设置第一个检测数据包的存活数值TTL的大小。存活数值>
-F 设置勿离断位。
-g<网关>设置来源路由网关,最多可设置8个。网关>
-i<网络界面>使用指定的网络界面送出数据包。网络界面>
-I 使用ICMP回应取代UDP资料信息。
-m<存活数值>设置检测数据包的最大存活数值TTL的大小。存活数值>
-n 直接使用IP地址而非主机名称。
-p<通信端口>设置UDP传输协议的通信端口。通信端口>
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s<来源地址>设置本地主机送出数据包的IP地址。来源地址>
-t<服务类型>设置检测数据包的TOS数值。服务类型>
-v 详细显示指令的执行过程。
-w<超时秒数>设置等待远端主机回报的时间。超时秒数>
-x 开启或关闭数据包的正确性检验。
-------------------------------------------------------
testparm(test parameter)
功能说明:测试Samba的设置是否正确无误。
语 法:testparm [-s][配置文件][<主机名称>]主机名称>
补充说明:执行testparm指令可以简单测试Samba的配置文件,假如测试结果无误,Samba常驻服务就能正确载入该设置值,但并不保证其后的操作如预期般一切正常。
参 数:
-s 不显示提示符号等待用户按下Enter键,就直接列出Samba服务定义信息。
-------------------------------------------------
telnet
功能说明:远端登入。
语 法:telnet [-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名称>][-n<记录文件>][-S<服务类型>][-X<认证形态>][主机名称或IP地址<通信端口>]通信端口>认证形态>服务类型>记录文件>用户名称>域名>脱离字符>主机别名>
补充说明:执行telnet指令开启终端机阶段作业,并登入远端主机。
参 数:
-8 允许使用8位字符资料,包括输入与输出。
-a 尝试自动登入远端系统。
-b<主机别名>使用别名指定远端主机名称。主机别名>
-c 不读取用户专属目录里的.telnetrc文件。
-d 启动排错模式。
-e<脱离字符>设置脱离字符。脱离字符>
-E 滤除脱离字符。
-f 此参数的效果和指定“-F”参数相同。
-F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。
-k<域名>使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。域名>
-K 不自动登入远端主机。
-l<用户名称>指定要登入远端主机的用户名称。用户名称>
-L 允许输出8位字符资料。
-n<记录文件>指定文件记录相关信息。记录文件>
-r 使用类似rlogin指令的用户界面。
-S<服务类型>设置telnet连线所需的IP TOS信息。服务类型>
-x 假设主机有支持数据加密的功能,就使用它。
-X<认证形态>关闭指定的认证形态。认证形态>
-------------------------------------------------
tcpdump
功能说明:倾倒网络传输数据。
语 法:tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]数据包文件>数据包类型>数据包大小>数据包文件>网络界面>表达文件>数据包数目>
补充说明:执行tcpdump指令可列出经过指定网络界面的数据包文件头,在Linux操作系统中,你必须是系统管理员。
参 数:
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目>收到指定的数据包数目后,就停止进行倾倒操作。数据包数目>
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件>指定内含表达方式的文件。表达文件>
-i<网络界面>使用指定的网络截面送出数据包。网络界面>
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件>从指定的文件读取数据包数据。数据包文件>
-s<数据包大小>设置每个数据包的大小。数据包大小>
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型>强制将表达方式所指定的数据包转译成设置的数据包类型。数据包类型>
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件>把数据包数据写入指定的文件。数据包文件>
-------------------------------------------------------
talk
功能说明:与其他用户交谈。
语 法:talk [用户名称][终端机编号]
补充说明:通过talk指令,你可以和另一个用户线上交谈。
-----------------------------------------------------
statserial(status ofserial port)
功能说明:显示串口状态。
语 法:statserial [-dnx][串口设备名称]
补充说明:statserial可显示各个接脚的状态,常用来判断串口是否正常。
参 数:
-d 以10进制数字来表示串口的状态。
-n 仅显示一次串口的状态后即结束程序。
-x 与-n参数类似,但是以16进制来表示。
---------------------------------------------------------
smbd(samba daemon)
功能说明:Samba服务器程序。
语 法:smbd [-aDhoP][-d<排错层级>][-i<范围>][-l<记录文件>][-O<连接槽选项>][-p<连接端口编号>][-s<配置文件>]配置文件>连接端口编号>连接槽选项>记录文件>范围>排错层级>
补充说明:smbd为Samba服务器程序,可分享文件与打印机等网络资源供Windows相关的用户端程序存取。
参 数:
-a 所有的连线记录都会加到记录文件中。
-d<排错层级>指定记录文件所记载事件的详细程度。排错层级>
-D 使用此参数时,smbd会以服务程序的方式在后台执行。
-h 显示帮助。
-i<范围>指定NetBIOS名称的范围。范围>
-l<记录文件>指定记录文件的名称。记录文件>
-o 每次启动时,会覆盖原有的记录文件。
-O<连接槽选项>设置连接槽选项。连接槽选项>
-p<连接端口编号>设置连接端口编号。连接端口编号>
-P 仅用来测试smbd程序的正确性。
-s<配置文件>指定smbd的设置文件。配置文件>
------------------------------------------------------
smbclient(samba client)
功能说明:可存取SMB/CIFS服务器的用户端程序。
语 法:smbclient [网络资源][密码][-EhLN][-B ][-d<排错层级>][-i<范围>][-I ][-l<记录文件>][-M ][-n ][-O<连接槽选项>][-p ][-R<名称解析顺序>][-s<目录>][-t<服务器字码>][-T ][-U<用户名称>][-W<工作群组>]工作群组>用户名称>服务器字码>目录>名称解析顺序>连接槽选项>记录文件>范围>排错层级>
补充说明:SMB与CIFS为服务器通信协议,常用于Windows95/98/NT等系统。smbclient可让Linux系统存取Windows系统所分享的资源。
参 数:
[网络资源] [网络资源]的格式为//服务器名称/资源分享名称。
[密码] 输入存取网络资源所需的密码。
-B 传送广播数据包时所用的IP地址。
-d<排错层级>指定记录文件所记载事件的详细程度。排错层级>
-E 将信息送到标准错误输出设备。
-h 显示帮助。
-i<范围>设置NetBIOS名称范围。范围>
-I 指定服务器的IP地址。
-l<记录文件>指定记录文件的名称。记录文件>
-L 显示服务器端所分享出来的所有资源。
-M 可利用WinPopup协议,将信息送给选项中所指定的主机。
-n 指定用户端所要使用的NetBIOS名称。
-N 不用询问密码。
-O<连接槽选项>设置用户端TCP连接槽的选项。连接槽选项>
-p 指定服务器端TCP连接端口编号。
-R<名称解析顺序>设置NetBIOS名称解析的顺序。名称解析顺序>
-s<目录>指定smb.conf所在的目录。目录>
-t<服务器字码>设置用何种字符码来解析服务器端的文件名称。服务器字码>
-T 备份服务器端分享的全部文件,并打包成tar格式的文件。
-U<用户名称>指定用户名称。用户名称>
-W<工作群组>指定工作群组名称。工作群组>
-----------------------------------------------
shapecfg(shaper configuration)
功能说明:管制网络设备的流量。
语 法:shapecfg attach [流量管制器][网络设备] 或 shapecfg speed [流量管制器][带宽]
补充说明:自Linux-2.15开始,便支持流量管制的功能。
参 数:
attach 将流量管制器与实际的网络设备结合。
speed 设置流量管制器的对外传输带宽。
setserial
功能说明:设置或显示串口的相关信息。
语 法:setserial [-abgGqvVz][设备][串口参数]
补充说明:setserial可用来设置串口或显示目前的设置。
参 数:
-a 显示详细信息。
-b 显示摘要信息。
-g 显示串口的相关信息。
-G 以指令列表的格式来显示信息。
-q 执行时显示较少的信息。
-v 执行时显示较多的信息。
-V 显示版本信息。
-z 设置前,先将所有的标记归零。
----------------------------------------------------------
samba
功能说明:Samba服务器控制。
语 法:samba [start][stop][status][restart]
补充说明:samba为script文件,可启动,停止Samba服务器或回报目前的状态。
参 数:
start 启动Samba服务器的服务。
stop 停止Samba服务器的服务。
status 显示Samba服务器目前的状态。
restart 重新启动Samba服务器,
----------------------------------------------------
pppstats(point to point protocol status)
功能说明:显示PPP连线状态。
语 法:pppstats [-adrv][-c<执行次数>][-w<间隔秒数>][网络界面]间隔秒数>执行次数>
补充说明:利用pppstats指令可让你得知PPP连接网络的相关信息。
参 数:
-a 显示绝对统计值。
-c<执行次数>设置回报状况的次数。执行次数>
-d 显示相对统计值。
-r 显示数据包压缩比率的统计值。
-v 显示VJTCP文件头的压缩效率统计值。
-w<间隔秒数>设置显示统计信息的间隔时间。间隔秒数>
--------------------------------------------------------
pppsetup
功能说明:设置PPP连线。
语 法:pppsetup
补充说明:这是Slackware发行版内附程序,它具有互动式的问答界面,让用户轻易完成PPP的连线设置。
----------------------------------------------------
ppp-off
功能说明:关闭ppp连线。
语 法:ppp-of
补充说明:这是Slackware发行版内附的程序,让用户切断PPP的网络连线。
-------------------------------------------------- ping
功能说明:检测主机。
语 法:ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]存活数值>数据包大小>范本样式>前置载入>网络界面>间隔秒数>完成次数>
补充说明:执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
参 数:
-d 使用Socket的SO_DEBUG功能。
-c<完成次数>设置完成要求回应的次数。完成次数>
-f 极限检测。
-i<间隔秒数>指定收发信息的间隔时间。间隔秒数>
-I<网络界面>使用指定的网络界面送出数据包。网络界面>
-l<前置载入>设置在送出要求信息之前,先行发出的数据包。前置载入>
-n 只输出数值。
-p<范本样式>设置填满数据包的范本样式。范本样式>
-q 不显示指令执行过程,开头和结尾的相关信息除外。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-R 记录路由过程。
-s<数据包大小>设置数据包的大小。数据包大小>
-t<存活数值>设置存活数值TTL的大小。存活数值>
-v 详细显示指令的执行过程。
-----------------------------------------------------
netstat
功能说明:显示网络状态。
语 法:netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]网络类型>
补充说明:利用netstat指令可让你得知整个Linux系统的网络情况。
参 数:
-a或--all 显示所有连线中的Socket。
-A<网络类型>或--<网络类型>列出该网络类型连线中的相关地址。网络类型>网络类型>
-c或--continuous 持续列出网络状态。
-C或--cache 显示路由器配置的快取信息。
-e或--extend 显示网络其他相关信息。
-F或--fib 显示FIB。
-g或--groups 显示多重广播功能群组组员名单。
-h或--help 在线帮助。
-i或--interfaces 显示网络界面信息表单。
-l或--listening 显示监控中的服务器的Socket。
-M或--masquerade 显示伪装的网络连线。
-n或--numeric 直接使用IP地址,而不通过域名服务器。
-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
-o或--timers 显示计时器。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。
-r或--route 显示Routing Table。
-s或--statistice 显示网络工作信息统计表。
-t或--tcp 显示TCP传输协议的连线状况。
-u或--udp 显示UDP传输协议的连线状况。
-v或--verbose 显示指令执行过程。
-V或--version 显示版本信息。
-w或--raw 显示RAW传输协议的连线状况。
-x或--unix此参数的效果和指定“-A unix”参数相同。
--ip或--inet 此参数的效果和指定“-A inet”参数相同。
-----------------------------------------------------
mingetty
功能说明:精简版的getty。
语 法:mingetty [--long-hostname][--noclear][tty]
补充说明:mingetty适用于本机上的登入程序。
参 数:
--long-hostname 显示完整的主机名称。
--noclear 在询问登入的用户名称之前不要清楚屏幕画面。
-----------------------------------------------
mesg
功能说明:设置终端机的写入权限。
语 法:mesg [ny]
补充说明:将mesg设置y时,其他用户可利用write指令将信息直接显示在您的屏幕上。
参 数:
n 不允许气筒用户将信息直接显示在你的屏幕上。
y 允许气筒用户将信息直接显示在你的屏幕上。
-------------------------------------------------
ifconfig
功能说明:显示或设置网络设备。
语 法:ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<网络设备类型><硬件地址>][io_addr][irq ][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]地址>地址>地址>子网掩码>字节>数目>内存地址>网络媒介类型>硬件地址>网络设备类型>地址>地址>
补充说明:ifconfig可设置网络设备的状态,或是显示目前的设置。
参 数:
add<地址>设置网络设备IPv6的IP地址。地址>
del<地址>删除网络设备IPv6的IP地址。地址>
down 关闭指定的网络设备。
<网络设备类型><硬件地址>设置网络设备的类型与硬件地址。硬件地址>网络设备类型>
io_addr 设置网络设备的I/O地址。
irq 设置网络设备的IRQ。
media<网络媒介类型>设置网络设备的媒介类型。网络媒介类型>
mem_start<内存地址>设置网络设备在主内存所占用的起始地址。内存地址>
metric<数目>指定在计算数据包的转送次数时,所要加上的数目。数目>
mtu<字节>设置网络设备的MTU。字节>
netmask<子网掩码>设置网络设备的子网掩码。子网掩码>
tunnel<地址>建立IPv4与IPv6之间的隧道通信地址。地址>
up 启动指定的网络设备。
-broadcast<地址>将要送往指定地址的数据包当成广播数据包来处理。地址>
-pointopoint<地址>与指定地址的网络设备建立直接连线,此模式具有保密功能。地址>
-promisc 关闭或启动指定网络设备的promiscuous模式。
[IP地址] 指定网络设备的IP地址。
[网络设备] 指定网络设备的名称。
-------------------------------------------------------
httpd(http daemon)
功能说明:Apache HTTP服务器程序。
语 法:httpd [-hlLStvVX][-c ][-C ][-d<服务器根目录>][-D<设定文件参数>][-f<设定文件>]设定文件>设定文件参数>服务器根目录>
补充说明:httpd为Apache HTTP服务器程序。直接执行程序可启动服务器的服务。
参 数:
-c 在读取配置文件前,先执行选项中的指令。
-C 在读取配置文件后,再执行选项中的指令。
-d<服务器根目录>指定服务器的根目录。服务器根目录>
-D<设定文件参数>指定要传入配置文件的参数。设定文件参数>
-f<设定文件>指定配置文件。设定文件>
-h 显示帮助。
-l 显示服务器编译时所包含的模块。
-L 显示httpd指令的说明。
-S 显示配置文件中的设定。
-t 测试配置文件的语法是否正确。
-v 显示版本信息。
-V 显示版本信息以及建立环境。
-X 以单一程序的方式来启动服务器。
-------------------------------------------
getty(get teletypewriter)
功能说明:设置终端机模式,连线速率和管制线路。
语 法:getty [-h][-d<组态配置文件>][-r<延迟秒数>][-t<超时秒数>][-w<等待字符串>][终端机编号][连线速率<终端机类型><管制线路>] 或 getty [-c<定义配置文件>]定义配置文件>管制线路>终端机类型>等待字符串>超时秒数>延迟秒数>组态配置文件>
补充说明:getty指令是UNIX之类操作系统启动时所必须的3个步骤之一。
参 数:
-c<定义配置文件>指定定义配置文件,预设为/etc/gettydefs。定义配置文件>
-d<组态配置文件>指定组态配置文件,预设为/etc/conf.getty。组态配置文件>
-h 当传输速率为0时就强制断线。
-r<延迟秒数>设置延迟时间。延迟秒数>
-t<超时秒数>设置等待登入的时间。超时秒数>
-w<等待字符串>设置等待回应的字符串。等待字符串>
------------------------------------------------
efax
功能说明:收发传真。
语 法:efax [-sw][-a ][-c<调制解调器属性>][-d<驱动程序>][-f<字体文件>][-g<指令>][-h<传真标题字符串>][-i ][-j ][-k ][-l<识别码>][-o<选项>][-q<错误次数>][-r<文件名>][-v<信息类型>][-x ][-t<电话号码><传真文件>]传真文件>电话号码>信息类型>文件名>错误次数>选项>识别码>传真标题字符串>指令>字体文件>驱动程序>调制解调器属性>
补充说明:支持Class 1与Class 2的调制解调器来收发传真。
参 数:
-a 以指定的AT指令来接电话。
-c<调制解调器属性>设置本机调制解调器的属性。调制解调器属性>
-d<驱动程序>指定调制解调器驱动程序。驱动程序>
-f<字体文件>使用指定的字体文件来建立传真标题。字体文件>
-g<指令>若接到的电话为数据,则执行指定的指令。指令>
-h<传真标题字符串>指定字符串为每页最前端的标题。传真标题字符串>
-i 在调制解调器进入传真模式前,传送AT指令到调制解调器。
-j 在调制解调器进入传真模式后,传送AT指令到调制解调器。
-k 在调制解调器离开传真模式前,传送AT指令到调制解调器。
-l<识别码>设置本机调制解调器的识别码。识别码>
-o<选项>使用非标准调制解调器时设置相关选项。选项>
-q<错误次数>接收传真时,当每页发生错误次数超过指定的数目时,要求对方重发。错误次数>
-r<文件名>在接收传真时,将每页分别保存成文件。文件名>
-v<信息类型>选择要印出的信息类型。信息类型>
-w 不要接听电话,等待OK或CONNECT的信号。
-x 使用UUCP格式的锁定文件来锁定调制解调器。
-t<电话号码><传真文件>以<电话号码>中的号码来拨号,并将<传真文件>传真出去。传真文件>电话号码>传真文件>电话号码>
------------------------------------------------------
netconfig
功能说明:设置网络环境。
语 法:netconfig
补充说明:这是Slackware发行版内附程序,它具有互动式的问答界面,让用户轻易完成网络环境的设置。
--------------------------------------------
netconf
功能说明:设置各项网络功能。
语 法:netconf
补充说明:netconf是Red Hat Linux发行版专门用来调整Linux各项设置的程序。
----------------------------------------
nc
功能说明:设置路由器。
语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]超时秒数>来源位址>通信端口>输出文件>延迟秒数>指向器数目>网关...>
补充说明:执行本指令可设置路由器的相关参数。
参 数:
-g<网关>设置路由器跃程通信网关,最丢哦可设置8个。网关>
-G<指向器数目>设置来源路由指向器,其数值为4的倍数。指向器数目>
-h 在线帮助。
-i<延迟秒数>设置时间间隔,以便传送信息及扫描通信端口。延迟秒数>
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件>指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。输出文件>
-p<通信端口>设置本地主机使用的通信端口。通信端口>
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址>设置本地主机送出数据包的IP地址。来源位址>
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数>设置等待连线的时间。超时秒数>
-z 使用0输入/输出模式,只在扫描通信端口时使用。
-------------------------------------------------------
cu(call up)
功能说明:连接另一个系统主机。
语 法:cu [dehnotv][-a<通信端口>][-c<电话号码>][-E<脱离字符>][-I<设置文件>][-l<外围设备代号>][-s<连线速率>][-x<排错模式>][-z<系统主机>][--help][-nostop][--parity=none][<系统主机>/<电话号码>]电话号码>系统主机>系统主机>排错模式>连线速率>外围设备代号>设置文件>脱离字符>电话号码>通信端口>
补充说明:本指令可连接另一台主机,并采用类似拨号终端机的接口工作,也可执行简易的文件传输作业。
参 数:
-a<通信端口>或-p<通信端口>或--port<通信端口>使用指定的通信端口进行连线。通信端口>通信端口>通信端口>
-c<电话号码>或--phone<电话号码>拨打该电话号码。电话号码>电话号码>
-d 进入排错模式。
-e或--parity=even 使用双同位检查。
-E<脱离字符>或--escape<脱离字符>设置脱离字符。脱离字符>脱离字符>
-h或--halfduple 使用半双工模式。
-I<配置文件>或--config<配置文件>指定要使用的配置文件。配置文件>配置文件>
-l<外围设备代号>或--line<外围设备代号>指定某项外围设备,作为连接的设备。外围设备代号>外围设备代号>
-n或--prompt 拨号时等待用户输入电话号码。
-o或--parity=odd 使用单同位检查。
-s<连线速率>或--speed<连线速率>或--baud<连线速率>或-<连线速率>设置连线的速率,单位以鲍率计算。连线速率>连线速率>连线速率>连线速率>
-t或--maper 把CR字符置换成LF+CR字符。
-v或--version 显示版本信息。
-x<排错模式>或--debug<排错模式>使用排错模式。排错模式>排错模式>
-z<系统主机>或--system<系统主机>连接该系统主机。系统主机>系统主机>
--help 在线帮助。
--nostop 关闭Xon/Xoff软件流量控制。
--parity=none 不使用同位检查。
----------------------------------------------------
arpwatch(ARP watcher)
功能说明:监听网络上ARP的记录。
语 法:arpwatch [-d][-f<记录文件>][-i<接口>][-r<记录文件>]记录文件>接口>记录文件>
补充说明:ARP(Address Resolution Protocol)是用来解析IP与网络装置硬件地址的协议。arpwatch可监听区域网络中的ARP数据包并记录,同时将监听到的变化通过E-mail来报告。
参 数:
-d 启动排错模式。
-f<记录文件>设置存储ARP记录的文件,预设为/var/arpwatch/arp.dat。记录文件>
-i<接口>指定监听ARP的接口,预设的接口为eth0。接口>
-r<记录文件>从指定的文件中读取ARP记录,而不是从网络上监听。记录文件>
----------------------------------------------------
apachectl(Apache control interface)
功能说明:可用来控制Apache HTTP服务器的程序。
语 法:apachectl [configtest][fullstatus][graceful][help][restart][start][status][stop]
补充说明:apachectl是slackware内附Apache HTTP服务器的script文件,可供管理员控制服务器,但在其他Linux的Apache HTTP服务器不一定有这个文件。
参 数:
configtest 检查设置文件中的语法是否正确。
fullstatus 显示服务器完整的状态信息。
graceful 重新启动Apache服务器,但不会中断原有的连接。
help 显示帮助信息。
restart 重新启动Apache服务器。
start 启动Apache服务器。
status 显示服务器摘要的状态信息。
stop 停止Apache服务器。
---------------------------------------------------
minicom
功能说明:调制解调器通信程序。
语 法:minicom [-8lmMostz][-a ][-c ][-C<取文件>][-d<编号>][-p<模拟终端机>][-S ][配置文件]模拟终端机>编号>取文件>
补充说明:minicom是一个相当受欢迎的PPP拨号连线程序。
参 数:
-8 不要修改任何8位编码的字符。
-a 设置终端机属性。
-c 设置彩色模式。
-C<取文件>指定取文件,并在启动时开启取功能。取文件>
-d<编号>启动或直接拨号。编号>
-l 不会将所有的字符都转成ASCII码。
-m 以Alt或Meta键作为指令键。
-M 与-m参数类似。
-o 不要初始化调制解调器。
-p <模拟终端机>使用模拟终端机。模拟终端机>
-s 开启程序设置画面。
-S 在启动时,执行指定的script文件。
-t 设置终端机的类型。
-z 在终端机上显示状态列。
[配置文件] 指定minicom配置文件。
---------------------------------------------
dip
功能说明:IP拨号连接。
语 法:dip [-aikltv][-m ][-p<协议>][拨号script文件]协议>
补充说明:dip可控制调制解调器,以拨号IP的方式建立对外的双向连接。
参 数:
-a 询问用户名称与密码。
-i 启动拨号服务器功能。
-k 删除执行中的dip程序。
-l 指定要删除的连线,必须配合-k参数一起使用。
-m 设置最大传输单位,预设值为296。
-p<协议>设置通信协议。协议>
-t 进入dip的指令模式。
-v 执行时显示详细的信息。
----------------------------------------------------
dnsconf(dns configurator)
功能说明:设置DNS服务器组态。
语 法:dnsconf [--deldomain<域>][--delsecondary<域>][--newdomain<域>][--set<主机>][--setcname <主机>][--setmx<域><主机>][--setns<域><主机>][--unset<主机>]主机>主机>域>主机>域>主机>主机>域>域>域>
补充说明:dnsconf实际上为linuxconf的符号连接,提供图形截面的操作方式,供管理员管理DNS服务器。
参 数:
--deldomain<域>删除域。域>
--delsecondary<域>删除次级域。域>
--newdomain<域>新增域。域>
--set<主机>新增主机记录。主机>
--setcname <主机>设置 。主机>
--setmx<域><主机>指定域的邮件主机。主机>域>
--setns<域><主机>指定域的DNS服务器。主机>域>
--unset<主机>删除DNS中某台主机的记录。主机>
原文转自:www.ltesting.net
篇6:[]UNIX系统开发sdb调试技术Windows系统
我们说程序调试的主要目的是观察变量的变化情况,但如果程序就一直不停地运行直至它终止或出错时才停下来的话,将没有机会去观察任何变量。因此,如何有效地控制程序中各语句的执行,使之在适当的时候暂停下来,待调试人员在显示或设置了某些存储单元的值之
我们说程序调试的主要目的是观察变量的变化情况。但如果程序就一直不停地运行直至它终止或出错时才停下来的话,将没有机会去观察任何变量。因此,如何有效地控制程序中各语句的执行,使之在适当的时候暂停下来,待调试人员在显示或设置了某些存储单元的值之后再从停下的地方继续执行下去,是调试程序应具有的一项基本功能。在这一节中我们就来具体介绍如何控制程序的运行。
对程序执行控制的第一个问题是设置断点。一个断点实际上就是程序中某行语句。当程序执行到这条语句时控制会重复返回到sdb,由此提供给用户进行其他操作,如显示变量值的机会。
1.断点的设置和删除
在sdb中设置断点的方法比较多。但基本是b命令的变种。例如,我们可以使用如下语句在main()函数的第一个可执行(非变量定义这类语句)设置一个断点: * main:b
也可以直接用行号来设置断点。例如,在myprog.c中,第10行是main()函数中的第一个可执行语句,则使用如下命令也能达到同样的效果: * 10b
注意这是在myprog.c为当前文件的情况下进行的。 如果直接输入:* b 命令,则可将当前行设成是一个断点。但是若当前行不是一个可执行语句,那么sdb将把当前行之后的第一个可执行语句处设置一个断点。在设置完断点之后,为了解程序中设置有哪些断点,可以使用B命令: * B
0x80483f0 myprog.c:10 main+0x8
0x80483f7 myprog.c:11 main+0xf
0x8048407 myprog.c:12 main+0xlf
0x8048440 myprog.c:9 TestInput
0x8048447 myprog.c:10 TestInput+ 0x7
0x804482 myprog.c:13 TestInput+ 0x42
在设置完断点之后要将其删除,可以使用d命令。如:* main:d
sdb将把在main()函数中设置的第一个可执行行上的断点删除。如果直接使用d命令,sdb将逐个列出所有断点并询问用户是否删除之。回答y断点将被删除。使用D命令则可删除程序中设置的所有断点。
2.sdb中启动程序的运行
在设置好所需的断点之后我们就可以重新启动程序的运行了。这可以使用r命令。如:* r 111 2
BREAKPOINT process 554 function main() in myprog.c
10: for(i=1;i
*
sdb将在main()函数中设置第一个断点处停下来并显示该行的语句。r后面给出的是传给可执行程序myprog的两个参数。因此上述命令同在shell提示符下输入: $ myrprog 111 2 是相同的。不同的只是在sdb中程序的执行会在断点处停下来。
如果只输入 * r 命令,sdb使用最近一次执行调试程序时给它提供的参数来启动之。如果想不带任何参数来重新启动程序的运行,可使用 * R 命令。
3.控制程序的单步或者连续执行
在用r(R)命令启动程序的运行之后,sdb将在第一个断点处暂停程序的运行。此时断点行成为当前行,但并未被执行。此时我们可以在sdb的星号(*)提示符下输入前面已介绍过的或后面将要介绍的各种命令。当然最重要的是显示那些关键变量的值,以了解程序的运行情况。在这之后便可以继续程序的执行。继续执行有两种方式。一种是单步方式,即逐条语句执行。这可以使用S命令完成:
* s
STEPPED process 584 function main() in myprog.c
14: printf(“The %dth value '%s' \tis BAD!\n”,i,argv[i]);
*
sdb在执行完当前语句之后,将当前行后移一行并显示出其代码。对于用户自定义的函数调用,S命令并不将其当成是一条语句,此时它将指示sdb进入该函数(使之成为当前函数)。如我们可以接着上面输入下列命令:
* s
STEPPED process 584 function main() in myprog.c
11: if(TestInput(argv[i])== TESTOK)
* s
BREAKPOINT process 594 function main() in myprog.c
11: if(TestInput(argv[i])==TESTOK)
* s
BREAKPOINT process 584 function TestInput() in myfunc.c
9: {while (* ValueInput)}
* s
也能让sdb将用户自定义的函数调用,当成是一条普通语句而不进入此函数的定义。此时可以在那些包含有用户自定义函数调用的行,使用S命令以执行之。s 和S命令都可以接收一个指明待执行的语句数目的参数。例如:
* s 2
使sdb执行当前行及其下那行语句,然后当前行之下的第2行将成为新的当前行,
注意当使用s 或S时,如果sdb遇上一个未加-g选项编译的用户自定义函数,那么执行将继续直到一个带-g 选项编译的函数为止。 控制程序执行的第二种是使用c或C命令。一个最简单的c命令将使sdb从当前行把程序执行到下一个断点处。在c命令中还可以临时设置“断点”。例如:
* 8c
将使sdb在第8行上设置一个断点并使程序从当前行执行至该断点处后停下来,然后将此断点自动删除并等待用户输入其他命令。
在c命令中还可以指定在继续执行时后面第几个断点处停下来。例如: * c 2
将使sdb从当前行开始执行,直到当前行之后的第2个断点为止。一般的: * c
命令实际上相当于:* c 1
C命令的作用及用法同c基本上是相同的。只不过此时sdb将进程收到的终止信号传给该进程进行处理。这对于调试有软中断处理的进程是很有用的。但sdb并不是将进程所收到的所有信号都传送给进程进行处理。要传递的信号可在sdb的命令行中用-s选项指定。
我们可以用g命令来告诉sdb在给定的行开始继续程序的执行: * 6g
此命令使sdb在当前文件的第6行处恢复执行。而:* 6g2
使sdb在当前文件的第6行恢复执行并跳过两个断点。但在使用g命令时必须小心。如果此命令跳过了那些必须得初始化语句,或者进程的执行被恢复到某个并不终止进程的函数中,此时都将会是程序的执行出现人为的差错。一般而言,除非能够确信所跳过的代码段是不正确的代码,不要轻易使用g命令。
4 关联命令
我们可以告诉sdb在使用到某种情况下暂停下来,完成某些操作之后继续执行。例如: * 7b t; i/;c
将使得sdb在当前文件的第7行设置一个断点,然后每当遇到该断点时都显示函数调用栈(t)、变量i的值(i/),并继续程序的执行(c)。
上述命令的一种变化形式是a(Announce命令)。例如:
* FunctionName:a
将使得sdb在程序执行过程中每当函数FunctionName被调用时即显示其函数名和参数值。而命令:
* FunctionName:6a
将使得sdb在函数FunctionName中的第6行每次被执行时都将其显示出来。
5.函数调用
sdb能够调用程序中用户自定义的任何函数。这种功能对于下面两种情况可能比较有用:
在需要用各种不同的参数对函数进行测试。
用用户自己定义的一个函数来显示程序中的某些数据。
不论是何种情况,我们均可以用如下命令来进行函数调用:
* FunctionName(Arg1,Arg2,....) 或 * FunctionName(Arg1,Arg2,....)/m
在第一种用法下,sdb只是简单地执行指定的函数。在第二种用法下,sdb将在执行指定的函数之后显示返回值。此值一般将按十进制方式显示,除非指定了另外的显示格式。
提供给函数的参数可以是寄存器名、整数、浮点数、字符、字符串常量或是其他局部当前函数,或者是当前函数可以访问的变量。
6.变量的监视
sdb提供了一种被成为“观察点”(Watch)的机制。借此机制,我们可以监视变量值得变化或某些地址的内容的变化。例如:
* i $m
可用于设置对某个变量的观察点。此处变量i为被监视的变量。而用:
* 0x00400000:m
则可将地址0x00400000 处设置成观察点,而0x00400000将成为被监视的地址。
在设置了观察点之后,sdb会同处理S命令一样开始程序的单步执行,并在变量的值或指定地址单元的内容被改变时停止程序的执行。由于变量值的改变或地址内容的变化,或者其他什么原因而使程序的执行中止,包括因为遇到断点而使程序停止的情形,都将使得所设置的观察点被sdb自动删掉。被观察的变量必须是当前函数的局部变量或者是当前函数所能够访问的变量。
其他命令
除了上面介绍的五类主要命令之外,sdb还支持其他一些命令。使用这些命令,可以完成其他一些辅助性的工作。分别介绍如下。
. !Shell Command
此命令可以使sdb去执行指定的Shell Command。这里Shell Command是一个合法命令。例如可以输入:
* ! ls -l
sdb将执行指定的ls -l 命令,并将其输出显示出来。
使用:
* ! sh
能够生成一个新的Shell进程。在此新的Shell中可以完成某些工作,然后用exit命令返回到sdb中。
?
指示sdb从文件FileName中读取sdb调试命令,并且逐个执行之。
? "SomeString
指示sdb显示出某个字符串。常用此命令给出某些提示信息,
? k 此命令将使当前对程序的调试终止,之后仍可用r命令重新启动被调试的程序。如:
* k
1111:killed
*
这里1111是被调试进程的进程号。
* q
此命令将使sdb停止其自身的运行而返回至原Shell提示符下。在调试完程序之后一般都要使用此命令。
【发表回复】【查看CU论坛原帖】【添加到收藏夹】【关闭】
原文转自:www.ltesting.net
【UNIX系统开发gcc参数详解Windows系统】相关文章:






文档为doc格式