1.vi有以下三种模式
命令行模式
用户在用vi编辑文件时,最初进入的为该模式。可以进行复制、粘贴等操作。
插入模式
进行文件编辑,按ESC键可以回到命令行模式。
底行模式
光标位于屏幕的底行。可以进行文件的保存、退出、查找、替换、列出行号等
2.vi模式切换命令 A a,I i,O o
:! Command 在vi中执行外部命令Command,按回车键可以返回vi继续工作
3.vi拷贝与粘贴命令
[N]x (Expurgate)删除从光标位置开始的连续N个字符(并复制到编辑缓冲区)
[N]dd [N]yy p u
4.vi保存和退出命令
q, q!, w, x,
w file 另存为File给出的文件名,不退出
r file (Read)读入File指定的文件内容插入到光标位置
5.vi光标命令
:N 移动光标到第N行(N待定)
1G 移动光标到文件的第1行
G 移动光标到文件的最后1行
:set number 设置显示行号
:set nonumber 取消显示行号
6.vi替换命令
利用:s 命令可以实现字符串的替换。
l:s/str1/str2/ 默认当前行替换
l:s/str1/str2/g :范围s/str1/str2/g
l:.,$ s/str1/str2/g g全部替换(默认换第1个)
l:1,$ s/str1/str2/g 第一行到最后一行替换
l:%s/str1/str2/g 全文
7.vi复制剪切命令
ly0-将光标至行首的字符拷入剪贴板
ly$-将光标至行尾的字符拷入剪贴板
ld0-将光标至行首的字符剪切入剪贴板
ld$-将光标至行尾的字符剪切入剪贴板
lrange y-块复制
lrange d-块剪切
8.vi的查找命令
/string 查找字符串
ln 继续查找
lN 反向继续查找
l支持正则表达式比如:/^the /end$
9.gcc编译器
gcc(GNU Compiler)是GNU推出的多平台编译器,可将C、C++源程序编译连接成可执行文件, 支持以下后缀:
.c c语言源代码
.h 程序所包含的头文件
.i 已经预处理过的C源代码文件
.s 汇编语言源代码文件
.o 编译后的目标文件
- gcc –o hello hello.c
-o 输出可执行文件
-c 只要求编译器输出目标代码(.o文件),而不必输出可执行文件
-g 用于调试
./hello 查看输出结果
11.利用__FILE__,LINE,__FUNCTION__实现代码跟踪调试
12.一个程序应当包含两部分内容:
对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构
对操作的描述。即操作步骤,也就是算法
13.程序就是系统可以识别的一组有序的指令。存储在磁盘上,被加载到内存中执行。
14.程序设计语言的发展
机器语言
直接使用机器指令(0,1序列)来设计程序,可以被计算机系统直接识别。和自然语言完全不同,难于记忆和理解,工作量大,效率低,无法移植。00011000
汇编语言
l把机器指令符号化,即通过一组简单的的符号来表示机器指令,更接近于自然语言,更容易理解和使用。 和机器语言一样,开发工作量大,无法移植。
MOV A, 1000
高级语言
– 和特定的计算机系统无关,更接近于人类自然语言。一条语句对应多条机器指令,工作量小,开发效率高。 BASIC , FORTRAN, PASCAL, C, C++ ,Java,C#等。
无论是高级程序设计语言还是专用程序设计语言,都不能被计算机系统直接识别,用这些语言所编写的程序代码称为源程序,源程序需要通过预先设计好的专用程序进行转换,转换为计算机系统可以识别的机器指令,然后才能交由计算机系统执行。
编辑是程序员通过编辑软件录入源代码的过程。
编译是文件录入后,使用编译程序对源文件进行编译,目标文件已经是二进制的机器代码了。
一方面有些程序使用频率高,一般程序员难以自行开发,因此编译系统通常将这些功能预先编译好,以程序库的形式提供给程序员使用。
另一方面,待开发的程序可能不只一个源文件组成,而是由多个源文件构成的,经过编译后,每个源文件生成一个不完整的目标文件,将这些目标文件拼在一起,才能构成整个目标文件。
链接过程就是对组成整个程序的各个目标文件,程序库进行封装,生成最终的目标程序的过程。