必备Linux命令和c基础

183 阅读4分钟

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  编译后的目标文件

  1. 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#等。

无论是高级程序设计语言还是专用程序设计语言,都不能被计算机系统直接识别,用这些语言所编写的程序代码称为源程序,源程序需要通过预先设计好的专用程序进行转换,转换为计算机系统可以识别的机器指令,然后才能交由计算机系统执行。

编辑是程序员通过编辑软件录入源代码的过程。

编译是文件录入后,使用编译程序对源文件进行编译,目标文件已经是二进制的机器代码了。

一方面有些程序使用频率高,一般程序员难以自行开发,因此编译系统通常将这些功能预先编译好,以程序库的形式提供给程序员使用。

另一方面,待开发的程序可能不只一个源文件组成,而是由多个源文件构成的,经过编译后,每个源文件生成一个不完整的目标文件,将这些目标文件拼在一起,才能构成整个目标文件。

链接过程就是对组成整个程序的各个目标文件,程序库进行封装,生成最终的目标程序的过程。