vi编辑器及GCC编译器的使用
vi(vim)编辑器以及使用gcc使用

export LD_LIBRARY_PATH=库的路径
export LD_LIBRARY_PATH=.
练习:在cal函数中添加除法功能,并封装成动态库,在main.c调用测试
-----------------------------
:set nu //显示行号
:set nonu //不显示行号
-------------------------------
gcc编译器
从.c原程序到最后的可执行的二进制文件
1链接
-E:只做预处理
gcc -E xx.c -o xx.i
-c:只编译不链接,生成.o目标文件
vi(vim)编辑器
vi helloworld.c
打开vi编辑器,默认进入命令模式
命令模式:按"i"切换到插入模式,按":"进入底行命令模式
dd:删除光标所在行
ndd:删除n行
u:恢复上一次操作
ctrl+r:撤销
yy:复制光标所在行
nyy:复制n行
unix/linux内存管理机制
unix/linux采用虚拟内存地址机制。每个进程先天都有4G虚拟内存地址,本质就是整数编号,与物理内存无关。
虚拟地址不可以直接存储数据,否则段错误。
虚拟内存地址必须映射到物理内存才可以存储数据。
程序员所接触的都是虚拟内存地址,虚拟内存地址分为用户地址空间和内核地址空间。用户空间0-3G,内核空间3-4G。
2 使用
2.1 写调用的测试程序main.c
Linux下的vi编辑器的简单使用操作方法

Linux下的vi编辑器的简单使⽤操作⽅法vi编辑器的使⽤:vi编辑器有三种基本⼯作模式,分别是命令⾏模式、⽂本输⼊模式、末⾏模式。
1.命令⾏模式该模式是进⼊vi编辑器后的默认模式,任何时候,不管⽤户处于何种模式,按下esc键即可进⼊命令⾏模式。
在命令⾏模式下,可以输⼊vi命令来管理⾃⼰的⽂档。
此时在键盘上输⼊任何字符都被当作编辑命令,⽽不是输⼊字符。
输⼊的字符并不会在屏幕上显⽰,若是合法的vi命令,则会完成相应的动作,否则会响铃报警。
2.⽂本输⼊模式命令⾏模式下输⼊以下⼏个命令则会进⼊⽂本输⼊模式。
i: 插⼊命令,会将⽂本插⼊到光标所在位置之前I: 插⼊命令,会将⽂本插⼊到光标所在⾏的⾏⾸a: 追加⽂本命令,会将⽂本追加到光标当前位置之后A: 追加⽂本命令,会将⽂本追加到光标所在⾏的末尾o: 空⾏插⼊命令,将在光标所在⾏的下⾯插⼊⼀个空⾏,并将光标置于该⾏的⾏⾸O: 空⾏插⼊命令,将在光标所在⾏的上⾯插⼊⼀个空⾏,并将光标置于该⾏的⾏⾸c: 修改命令r: 取代命令s: 替换命令在该模式下,⽤户输⼊的任何字符都被当做⽂件内容保存起来,并显⽰在屏幕上。
3.末⾏模式命令⾏模式下,⽤户按下:键即可进⼊末⾏模式,此时vi会在显⽰窗⼝的最后⼀⾏显⽰⼀个:作为末⾏模式的说明符,等待⽤户输⼊命令。
多数⽂件管理命令都是在此模式下执⾏的。
末⾏命令执⾏完后,vi会⾃动回到命令⾏模式4.vi⽂本的删除命令:vi编辑器可以在编辑模式和命令⾏模式下删除⽂本。
命令⾏模式下,vi常⽤删除命令x 删除光标处的字符。
若在x之前加上⼀个数字n,则删除从光标所在位置开始向右的n个字符。
X 删除光标前⾯的字符。
若在X之前加上⼀个数字n,则删除从光标前⾯那个字符开始向左的n个字符。
dd 删除光标所在的整⾏。
前⾯加上数字n,则删除当前⾏以及其后的n-1⾏。
D 或 d$ 删除从光标所在处开始到⾏尾的内容。
d( 删除到上⼀句开始的所有字符d) 删除到下⼀句开始的所有字符d{ 删除到上⼀段开始的所有字符d} 删除到下⼀段开始的所有字符d0 删除从光标前⼀个字符开始到⾏⾸的内容dw 删除⼀个单词。
gcc makefile文件的编写

常用的vim命令 命令 常用的
光标命令:(可视模式下) 光标命令:(可视模式下) :(可视模式下 k、j、h、l—上下左右光标移动命令。 上下左右光标移动命令。 、 、 、 上下左右光标移动命令 nG—调转命令,n为行数,该命令使光标立即跳到指定的行数。 调转命令, 为行数 该命令使光标立即跳到指定的行数。 为行数, 调转命令 Ctrl+G—光标所在位置的行数和列数。 光标所在位置的行数和列数。 光标所在位置的行数和列数 编辑命令: 可视模式下) 编辑命令: (可视模式下) i—从可视命令模式进入文本编辑模式。 从可视命令模式进入文本编辑模式。 从可视命令模式进入文本编辑模式 esc键—放回到可视命令模式。 放回到可视命令模式。 键 放回到可视命令模式 查找命令: 可视模式下) 查找命令: (可视模式下) /string 、? 、?String—从光标所在的行向前向后查找相应的字符 从光标所在的行向前向后查找相应的字符 串。 拷贝复制命令: 可视模式下) 拷贝复制命令: (可视模式下) yy—拷贝一行到剪切板 拷贝一行到剪切板 p—粘贴剪切板的内容 粘贴剪切板的内容 在冒号命令方式下: ,表示从当前光标处开始复制n行内容到 在冒号命令方式下:yn,表示从当前光标处开始复制 行内容到 剪切板。将光标移到相应的位置, 即可粘贴剪切板的内容。 剪切板。将光标移到相应的位置,按p即可粘贴剪切板的(可视模式下) 编辑命令(可视模式下)
dd—删除整行命令 删除整行命令 u—恢复前一次的删除动作 恢复前一次的删除动作
冒号命令方式命令 :q—退出命令 退出命令 :w—存档 存档 :wq—存档退出 存档退出 放弃任何改动, :q!--放弃任何改动,强行退出 ! 放弃任何改动
GUNMakeFile、Makefile和makefile 、 和
linux操作系统思政大纲

《Linux操作系统》思政实验大纲一、课程基本信息课程代码:XXXXXXXXXXXXX课程名称:操作系统英文名称:Operation System实验总学时:32 学时适用专业:计算机科学专业、软件工程等课程类别:学科基础课先修课程:高级程序设计语言、汇编语言、计算机组成原理、数据结构二、实验教学的总体目的和要求1、总体目标通过实验教学,使学生更好地理解操作系统的基本概念、基本原理和实现技术,再以理论指导实践进行深入开发和创新实践。
2、总体要求(1)对学生的要求①完成先修课程,尤其是C 语言;②实验课前预习,做好知识准备;③明确实验目的,完成实验内容;④分析实验结果,总结实验过程;⑤撰写实验报告,验证理论知识。
(2)对教师的要求①有一定编程能力,尤其是C 语言编程;②熟悉Linux 的常用命令和系统调用;③熟悉操作系统工作原理,能够解释实验结果。
(3)对实验条件的要求Ubuntu 虚拟机、Visual C++ 6.0或D ev C++三、实验教学内容课程配套六个验证型实验,帮助理解抽象的概念和原理。
实验一和实验二是文件与目录的常用命令以及文件和目录权限的设置与修改,通过实验帮助学时理解联机命令用户接口的使用以及文件系统的基本操作。
实验三是练习 Linux 编辑器Vi 和C 语言编译器Gcc 的使用,为后面的实验做准备。
实验四是父进程创建子进程形成进程家族树,通过实验分析各种可能的执行顺序,帮助理解并发执行的概念。
实验五是父进程创建子进程和线程,对比分析线程与子进程在资源共享、继承以及运行方面的异同。
实验六是进程的高级通信,通过管道通信体会进程高级通信的实现。
1. 安装虚拟机步骤(1) 需要的软件Daemon Tools Lite:镜像驱动程序VMWare Workation:虚拟机软件Ubuntu Kylin LTS 版:乌班图Linux(2) 安装步骤安装Daemon Tools Lite安装VMWare Workation安装Ubuntu2. Linux 命令的格式bash 命令的一般格式是:命令名 [选项] [参数1] [参数2] …示例:cp –f file1.c file2.c格式说明:(1) 命令名必须是小写的英文字母;(2) Linux 的文件名长度不超过256 个字符,且不能使用如下字符:! @ # $ ^ & * ( ) [ ] { } ‘“、 / ;< > 空格(3) Linux 文件名区分大小写;文件名中如有多个圆点,则最右边一个为分隔符,且多表示文件类型;(4) Linux 使用“/”为根目录、目录分隔符和目录与文件的分隔符;(5) 命令中通配符的使用* 代表任意个任意字符代表一个任意字符[ ] 只要文件名中[ ]位置处的字符在[ ]中指定的范围内,那么该文件名就与给定的模式相匹配。
简述vi的使用方法

简述vi的使用方法
vi是一个在Linux系统下的标准编辑器。
虽然命令繁多复杂,但熟练掌握后发现其功能和效率是其他图形界面编辑器无法比拟的。
以下是Vi的基本使用方法:
1.启动Vi:在终端输入命令vi,后面接着输入想要创建或编辑的文件名,即可进入Vi编辑器。
2.进入命令模式(command mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode 下,或者到 last line mode。
3.切换到插入模式(Insert mode):在命令模式下按一下字母“i”即可进入插入模式,这时就可以开始输入文字了。
4.保存文件:在命令模式下输入:wq即可!
此外,Vi的命令繁多,建议查阅相关书籍或咨询专业人士。
gcc 编译c程序

GCC(GNU Compiler Collection)是一种常用的C语言编译器,用于将C源代码转换为可执行文件。
使用GCC编译C程序需要经过以下步骤:
1.编写C源代码文件,使用文本编辑器(如vi、nano等)编写C代码,并将
其保存为以.c为扩展名的文件。
2.打开终端或命令提示符,进入保存C源代码文件的目录。
3.运行GCC编译器,使用以下命令编译C源代码文件:
其中,文件名.c是C源代码文件的名称,可执行文件名是生成的可执行文件的名称。
4. 等待编译完成。
如果编译过程中没有错误,GCC将生成一个可执行文件。
5. 运行可执行文件。
在终端或命令提示符中输入可执行文件的名称,按Enter键即可运行程序。
需要注意的是,GCC编译器的使用方法可能因操作系统和平台而有所不同。
此外,如果C程序中使用了第三方库,则需要确保这些库已经被正确安装,并在编译时链接到这些库。
实验3 使用gcc编译器

实验三使用gcc编译器一.实验目的1、巩固vi的使用。
2、练习用Linux下gcc编译器运行c或c++程序。
3、练习使用make工具和调试工具gdb。
4、练习编写简单的c或c++程序。
二.实验内容用vi建立C++/C程序后,学习使用gcc编译器编译执行(命令格式详见实验指导书P100),查看结果。
1. helloworld程序。
2. 判断一个年份是平年还是闰年。
3. 打印九九乘法表。
三.实验步骤1、登陆Linux系统,操作方法请参考实验二。
2、使用vi编写helloworld.cpp程序(安装了vim的同学,可以输入vimhelloworld.cpp),保存。
程序代码如下:using namespace std;#include<iostream>int main(){cout<<”hello,world!\n”;return 0;}或编写helloworld.c程序,代码如下:#include<stdio.h>int main(){printf(“hello,world!\n”);return 0;}然后,利用g++ helloworld.cpp或gcc helloworld.c指令编译执行。
(如果没有任何输出提示,恭喜你,编译执行成功。
否则,会提示出错信息,请检查语法并修改。
)最后,在命令行输入 ./a.out 查看结果。
3、make工具在应用程序的开发过程中,若每次修改源文件都需要重新输入编译命令,这种做法很烦琐而且开发效率不高。
为了能快速组织源文件进行编译,linux中提供了make工具。
Make的运行过程前,必须编写Makefile文件。
它描述了软件包中文件之间的关系,提供更新每个文件的命令。
Make实验上是根据Makefile 来进行编译的。
以helloworld.c为例,编写makefile文件:helloworld:helloworld.ogcc –o helloworld helloworld.o(开头使用Tab键空格) helloworld.o:helloworld.cgcc –o helloworld.o –c helloworld.cclean:rm –f *.o hello然后,重新编译helloworld.c,命令:gcc –g helloworld.c –o helloworld 第三步,输入命令:make4、调试工具---gdb运行gdb调试程序通常的命令格式为:gdb 程序的文件名例如: gdb helloworld启动gdb调试工具后,进入gdb的调试界面。
0627 UC gcc 命令 vi编辑器

0627 UC vi编辑器回顾:1,linux系统安装2,介绍linux系统3,vmtool实现Windows和linux的交换今天内容:1,创建共享文件夹2,常用命令使用3,vim编辑器4,gcc编译器5,程序可传参数6,环境变量7,动态库与静态库1,创建共享文件夹实现linux与Windows的文件传输2,常用命令使用[ root @localhost ~ ] #当前用户主机名当前工作路径命令行提示符1,命令+选项+参数(选项和参数可以调换位置)绝对路径:从根路径开始算起相对路径:从当前路径算起2,路径的切换命令cdcd 路径cd 返回用户家目录cd -返回上次工作路径3,pwd 显示当前路径4,查看目录lsLs 显示当前目录中可视的文件Ls -a 列出全部文件包括隐藏文件(以点开头)Ls -l 列出详细信息Ls +路径列出指定目录下的文件5,复制命令cpCp +源文件+目标文件(复制一个文件)Cp+源文件夹+目标文件夹(目标文件夹要存在)-r(复制目录)Cp+源文件夹/* 目标文件夹6,创建文件夹mkdirMkdir +文件夹名(带路径)Mkdir+路径+-p创建多级路径7,创建文件命令touchTouch+文件名创建Echo >文件名创建Vim 文件名创建文件,如果文件存在则打开Gedit 文件名8 删除命令rm 执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文件。
Rm +文件名Rm+文件名-f(取消提示)Rm+文件名/文件夹-rf(取消提示,强制删除)Rmdir 文件夹(只能删除空文件夹)9,剪切/重命名mvMv +源文件+目标文件10.查看文件内容catCat +文件名11,更改文件权限chmod- rw- r-- r-- 3 root root 255 2006-07-15 crontab文件类型权限(用户)用户组其他组文件类型:-:普通文件d: 目录文件l: 连接文件Chmod +权限+文件名Chmod a(all)+x 文件名u+xg+xo+x12,添加/删除用户useraddUseradd+用户名(会在home下面自动生成一个文件夹)Passwd 用户名(设置密码)Userdel 用户名(不会自动删除home对应的文件夹)rm /var/spool/mail/zhong -rf13,切换用户su14,查找文件命令findFind 路径-name “****”15,查找字符串grepGrep “***”文件名16,man+命令命令--help17,管道符和通配符管道符|(xargs)通配符*18,解压缩命令tarTar zcvf 压缩后文件名(tar.gz结尾)要压缩的文件Tar zxvf xxx .tar.gz 解压当前文件夹Tar zxvf xxx .tar.gz -C路径解压指定文件夹19,配置网络参数ifconfigIfconfig3,vim编辑器三种基本模式:命令模式,插入模式,底行模式命令模式:打开文件时进入的命令模式Yy:复制光标所在的那一行Nyy:复制光标之后的n行P:粘贴U:撤销上一次操作Dd:剪切光标所在的一行Ndd:剪切光标后的一行插入模式:编辑模式,从命令模式进入按下a或i底行模式:从命令模式下进入shift +:查找字符串:/字符串(底行或者命令行)字符串替换:%s/源字符串、目标字符串/g(底行)4,gcc编译器预处理:去掉注释,宏替换,加载头文件汇编:把c代码编译成汇编代码编译:把汇编代码编译成二进制文件链接:把用的库函数复制或者做标记生成可执行的二进制代码预处理:gcc -E xxx.c -o xxx.i汇编:gcc -S xxx.i -o xxx.s编译:gcc -c xxx.s -o xxx.o链接:gcc xxx.o -o xxx(可执行文件)只编译不链接:gcc -c xxx.c -o xxx.o一步到位:gcc xxx.c(默认生成a.out)gcc xxx.c -o xxx(生成可执行文件xxx)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三vi编辑器及GCC编译器的使用
【实验目的】
一、掌握文本编辑器vi的使用方法
二、了解GNU gcc编译器
三、掌握使用GCC编译C语言程序的方法
【实验内容】
一、vi的三种工作模式:
1、命令模式:执行相关文本编辑命令
2、输入模式:输入文本
3、末行模式:实现查找、替换、保存、多文件操作等等功能
二、进入vi,直接在Shell提示符下键入vi [文件名称],如果该文件在当前目录不存在,则vi创建之。
三、退出vi
1、在命令模式下输入“:wq”,保存文件并退出vi
2、若不需要保存文件,输入“:q”
3、若文件已修改,但不保存,输入“:q!”强制退出vi
4、其它一些不常用的方法在此省略。
四、命令模式下的常用编辑命令
1、启动vi后,进入的是vi的命令模式
2、按i键,进入输入模式,可以进行文本的编辑,在输入模式下,按esc 键,可切换回命令模式
i:光标位置不变,可在光标左侧插入正文
a:光标位置向后退一格,可在光标左侧插入正文
o:在光标所在行的下一行增添新行
O:在光标所在行的上一行增添新行
I:光标跳到当前行的开头
A:光标跳到当前行的末尾
3、光标的移动
k、j、h、l分别等同于上、下、左、右箭头键
Ctrl+b,向上翻一页
Ctrl+f,向下翻一页
nH,将光标移到屏幕的第n行
nL,将光标移到屏幕的倒数第n行
4、删除文本
nX,删除光标所指向的前n个字符
D,删除光标右侧的所有字符(包括光标所指向的字符)
db,删除光标左侧的全部字符
ndd,删除当前行和当前行以后的n行内容
5、粘贴和复制
p,将缓冲区的内容粘贴到当前字符的右侧
P,将缓冲区的内容粘贴到当前字符的左侧
yy,复制当前行到内存缓冲区
nyy,复制n行内容到内存缓冲区
6、搜索字符串
/str1,正向搜索字符串str1
n,继续搜索
?str2,反向搜索字符串str2
7、撤销和重复
u,撤销前一条命令的执行结果
.,重复最后一条命令
五、末行模式下的命令
:n,将光标移动到第n行
:nw file,将第n行写入file文件
:n,mw file,将第n行至第m行写入file文件
:w,将编辑的内容写入原始文件
:wq,将编辑的内容写入原始文件并退出编辑程序
:w file,将编辑的内容写入file文件,保持原有文件的内容不变
:f file,将当前文件重命名为file
:e file,编辑新文件file代替原有内容
:f,打印当前文件的状态,如文件的行数,光标所在的行号等
:!<命令>,执行相应shell命令
六、三种工作模式的切换
1、在Linux shell下,键入vi或vi <文件名>进入命令模式
2、在命令模式下,键入:进入末行模式
3、在命令模式下,键入文本编辑命令如i,a,o等进入文本输入模式
4、在文本输入模式下,按esc键进入命令模式
5、在末行模式下,按backspace键或del键进入命令模式
6、在末行模式下,键入q或wq,退出vi,饭后到Linux shell下
GCC编译器的使用
一、使用vi或其它文本编辑器,输入C语言程序,并保存为test.c
二、在Linux shell下,输入命令gcc –o test test.c
三、编译正确后,输入命令./test运行程序,观察程序运行结果
四、若编译错误,根据提示信息,进入程序查错,再回到第二步,直至程序
语法无误。
附:GCC使用方法和常用选项
使用GCC编译C程序生成可执行文件需要经历4个步骤:
1、预处理,这一步需要分析各种命令,如#define、#include、#ifdef
等。
Gcc调用cpp程序来进行预处理
2、编译,这一步将根据输入文件产生汇编语言,gcc调用ccl进行编
译工作
3、汇编,这一步中将汇编语言作为输入,产生具有.o扩展名的目标
文件,gcc调用as进行汇编工作
4、连接,这一步中各目标文件.o被放在可执行文件的适当位置上,
该程序引用的函数也放在可执行文件中,gcc调用ld来完成Gcc命令的基本用法为:gcc [option] [filename],命令行选项指定的操作将在命令行上每个给出的文件上执行。
例如:
Gcc –o prog main.c test1.c test2.c
其中,“-o prog”指定输出的可执行文件名为prog,如果没有指定-o参数,gcc将使用默认的可执行文件名a.out
Gcc的命令选项有许多项,但经常使用的几个选项是:
1、-c:只预处理,编译和汇编源程序,不进行连接
2、-o exefile,确定输出文件为exefile,如果没有该选项,默认输出
为可执行文件a.out
3、-Dmacro或-Dmacro=defn,其作用类似于源程序代码中的#define
4、-O,对程序编译进行优化,编译后可执行文件的长度和执行时间
缩短,但编译过程耗时变长,对主机性能要求较高。
5、-O2,比-O更好地优化
6、-g,告诉gcc产生能被GNU调试器使用的调试信息以便调试程序
7、-Idir,将dir目录加到搜寻头文件的目录列表中。
并优先于在gcc
中默认的搜寻目录
更多的选项说明请查阅gcc使用手册。
#include <stdio.h>
int main()
{
printf(“Hello,world!\n”);
}。