栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

使用Vi编辑器编写Linux0.11程序并编译运行

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Vi编辑器编写Linux0.11程序并编译运行

一.vi编辑器的使用

Linux自带的一个文本编辑器。

vi编辑器有3种操作模式:命令模式、插入模式和末行模式。

命令模式:当输入vi命令后,会首先进入命令模式,此时输入的任何字符都被视为命令。命令模式用于控制屏幕光标移动、文本字符/字/行删除、移动复制某区段,以及进入插入模式或进入末行模式。

插入模式:在命令模式输入相应的插入命令(例如i命令)进入该模式。只有在插入模式下,才可以进行文字数据输入及添加代码,按Esc键可回到命令模式。

末行模式:在命令模式下输入某些特殊字符,如“/”、“?”和“:”,才可进入末行模式。在该模式下可存储文件或退出编辑器,也可设置环境变量。

通常:

vi  文件名   //进入vi模式

 刚进入vi编辑器的界面,此时是命令模式

 点击a,i或Insert后,就可进入插入模式

下图是点击i键进入插入模式之后,输入的字符在光标之前

 当输入代码完毕后,要返回命令模式,点击Esc键,此时界面如下图:

光标跑到了字符下面

 再输入:,就会跑到下面

 再输入wq,点击回车,就会保存并退出

如下图便是返回到输入窗口了

 下次如需进入,再次用vi 文件名

文章末尾附有vi编辑器常用操作

二.makefile文件

Make工具可以用来管理一个项目中多个源代码文件的编译和链接过程,也可以用来管理多个模块间的依赖关系,甚至是软件的安装过程。

先介绍一个源代码文件的执行旅程:

(1)预处理阶段

预处理器根据以#开头的命令,读取头文件。

(2)编译阶段

将文本文件hello.i变成hello.s。(高级语言到汇编语言)

(3)汇编阶段

将文本文件hello.s翻译成机器语言指令,变成二进制文件hello.o。(汇编语言到机器语言)

(4)链接阶段

与某些库链接,得到可执行文件,hello.o变成了hello,可以放到内存中执行。

 我们可以利用makefile文件来实现文件的编译与链接过程,依然在vi编辑器里写。

链接:
hello:hello.o                  //依赖关系,把二进制文件hello.o跟一些库一起链接成可执行文件(例如 
                                       windows就是exe文件)
	
    gcc hello.o -o hello       //利用gcc编译器的可执行文件gcc把二进制文件hello.o链接成可执行文 
                                   件hello
编译:
hello.o:hello.c                 //把源代码文件hello.c编译成二进制文件hello.o(中间省略了i,s的过 
                                   程)
	gcc -c hello.c -o hello.o   //利用gcc编译器的可执行文件gcc把源代码文件hello.c编译成二进制 
                                   文件hello.o


也可以缩短为一步完成:
hello: hello.c
		gcc hello.c -o hello


//!!!注意!!!:空格处一定要用Tab键

 写完之后,保存并退出文件(同上方vi编辑器操作)

三.编写一个加法程序

利用C语言

思路:在主函数中调用自定义的加法函数(相当于一个库),所以我们要分别编译加法函数文件(add.c),主函数文件(main.c),并把两个文件链接成可执行文件,执行并输出结果

add.c文件:

 

 main.c文件

 makefile文件

 编译运行:

 vi编辑器常用命令:

命令类型

命令形式

说明

进入vi命令

vi 文件名

显示vi编辑窗口,载入指定的文件,并进入命令模式

退出vi命令(退出vi时,若在插入模式,先按Esc返回命令模式)

:q!

放弃编辑内容,退出vi

:wq 或 :zz

保存文件,退出vi

:w

保存文件,但不退出vi

:q

退出vi,若文件被修改过,要确认是否放弃修改的内容

进入末行模式(命令模式下,输入特殊字符进入末行模式)

:

进入末行命令模式

进入插入模式(命令模式下,执行下列命令均可进入插入模式)

i

插入命令

a

附加命令

o

打开命令

s

替换命令

c

修改命令

r

取代命令

命令模式常用命令

命令

说明

x

删除光标所在的字符

X

删除光标所在位置前面的一个字符

nx

删除从光标开始到光标后n-1个字符

dw

删除光标到下一个单词起始位置

ndw

删除光标起的n个字

dd

删除光标所在的行

ndd

删除包括光标所在行的n行

Y

复制当前行至编辑缓冲区

nY

复制当前行开始的n行至编辑缓冲区

p

将编辑缓冲区的内容粘贴到光标的后面

参考文献:

一个程序的执行过程_CUMT德一的博客-CSDN博客_软件执行过程

《Linux内核实验教程》4.3

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884516.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号