学习过程:
一门专业课程背后的三种知识:
Linux中命令格式为:
command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数
选项
是调整命令执行行为的开关,选项
不同决定了命令的显示结果不同。
参数
是指命令的作用对象。
如ls命令,ls
或ls .
显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的可以省略。我们可以用ls -a .
显示当前目录中的所有内容,包括隐藏文件和目录。其中“-a” 就是选项,改变了显示的内容
man
是manul的缩写
通过man man来查看man
的帮助
帮助文档包含:
1 Executable programs or shell commands(用户命令帮助)
2 System calls (系统调用帮助)
3 Library calls (库函数调用帮助)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd(配置文件帮助)
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
解释:
1是普通的Linux命令
2是系统调用,操作系统的提供的服务接口
3是库函数, C语言中的函数
5是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6是给游戏留的,由各个游戏自己定义
7是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8是系统管理用的命令,这些命令只能由root使用,如ifconfig
比如printf是C语言的库函数,也是一个Linux命令,大家尝试一下man printf
,man 1 printf
,man 3 printf
,体会一下区别。
知道printf 命令也好,printf函数也好,查找帮助文档都很容易。
man
-k
选项---学习命令,编程搜索引擎
可以通过“man -k sort”来搜索,因为是找C库函数,我们关注带3的,qsort好像是个好选项,如下图:
结合后面学习的grep 命令和管道,可以多关键字查找:
man -k key1 | grep key2 | grep key3 | ...
如下图,可以更好的找到qsort:
man 虽然很重要,但有些命令看了帮助还不会用,初学者需要例子,cheat就是这个身边的小抄。 cheat 命令不是Linux自带的
cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。
上面的命令包括man -k有一个共同特点就是基于“搜索”,
用 “man find”, “cheat find”
Ubuntu中:
VIM是一个非常好的文本编辑器,跟文本打交道
VIMTUTOR是个实践教程,通过实践30分钟让你对VIM编辑器入门,只要在命令行中输入vimtutor
:set nu 显示行号
:set ai 自动缩行
:set ts=4 设置一个 TAB 键等于几个空格
[[ 转到上一个位于第一列的"{"
]] 转到下一个位于第一列的"{"
{ 转到上一个空行
} 转到下一个空行
gd 转到当前光标所指的局部变量的定
GCC编译代码的过程如下:
把编译过程分成四步,以编译hello.c生成可执行文件hello为例,如下图:
前三步,GCC的参数连起来是“ESc”,相应输入的文件的后缀是“iso”,
4. gdb
建议使用CGDB,比GDB好用,熟悉VC的调试方式,可以使用DDD。 注意使用GCC编译时要加“-g”参数。 参考gdb参考卡GDB最基本的命令有:
问题:GDB的n(next)命令让GDB执行下一行,然后暂停。 s(step)命令的作用与此类似,只是在函数调用时step命令会进入函数,那么实际使用中应该优先选用哪个?为什么?
其他几个我认为应该掌握的调试命令有:
1.练习vimtutuor至少一遍;
2.使用vim 输入以下代码,联系使用“K”查找帮助文档:
3.练习gcc编译运行代码;
4.练习gdb调试代码;
5.把上述代码中除了main函数外的代码制作成一个静态库math.a和一个共享库math.so;
6.编写makefile,让代码编译,上述静态库和共享库的使用自动化。
遇到的问题及解决:
原文:http://www.cnblogs.com/zhengwei0712/p/4841824.html