IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 使用Vi编辑器编写Linux0.11程序并编译运行 -> 正文阅读

[开发工具]使用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

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-16 11:25:52  更:2022-05-16 11:26:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 6:22:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码