实验3  Vi编辑器的使用及C编程

一、实验要求

(1)掌握Vi的三种运行模式及切换方法;

(2)掌握使用Vi的各种操作命令进行文本文件的编辑;

(3)用Vi编写Linux下C程序,掌握gcc编译。

二、实验内容和实验步骤

1、vi编辑器的使用

【操作要求1】首先用合法用户名登陆系统,不保存直接退出。

【操作步骤】

(1)在系统提示符下,输入vi,按回车键,进入vi的界面。

(2)输入:q!不保存直接退出。

【操作要求2】新建文件f1并编辑一段文字进行保存。

【操作步骤】

(1)在系统提示符下输入vi f1,按回车键。

(2)看到vi的界面,输入i,左下角会出现“插入”。

(3)输入一段文字。

10 Basic Linux Networking and Monitoring Commands You Should Know

I have listed down 10 basic Linux networking and monitoring commands which each Linux user should know. These Linux basic networking and monitoring commands like hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool are used for viewing the IP address of the Linux server, managing Linux server network adapter configuration, making network connections among Linux servers over telnet and ethernet, Linux server information etc. Lets have a look on the following Linux networking and monitoring commands.

(4)按Esc键,进入命令模式。这时“插入”就不见了。

(5)输入:wq,按回车键,保存文件。

实验结果截图:

【操作要求3】对文件f1进行增、删、改操作。

【操作步骤】

(1)在系统提示符下输入vi f1,按回车键。看到vi的界面。输入i,进入插入模式。

输入增加的文字:“vi is very easy to user~!”。用方向键将光标移到图文字行的任意处。

实验结果截图:

(2)按Esc键,进入命令模式。

输入命令dd,删除光标所在一行(若连续输入d,d是将光标所在的行及以下所有行删除)。

实验结果截图:

(3)用方向键将光标移到very的v处,按Esc键,进入命令模式,输入命令2x,查看结果。

实验结果截图:

2

【操作要求4】接着上述步骤继续做,对文件f1进行复制、粘贴操作。

【操作步骤】

(1)输入命令2yy,进行复制。

(2)将光标移动到“vi is very easy to user~!”。

(3)按Esc键,进入命令模式。

(4)输入p,完成粘贴,查看结果。

实验结果截图:

【操作要求5】接着步骤继续,在f1文件中进行字符串搜索、替换操作。

【操作步骤】输入“:/is”,按回车键,查看结果。

实验结果截图:

2、用vi编辑器来编写一个简单的程序,用gcc编译。

【操作步骤】

(1)、输入vi,进入vi编辑器。

(2)、编写程序代码如下:

#include “stdio.h”

main( )

{int i,sum=0;

for(i=1,i<=10;i++)

sum+=i;

printf(“sum=%d\n”,sum);

}

实验情况截图:

(3)、按Esc键,进入命令模式。

(4)、输入“:w sum.c”。

(5)、按Esc键,进入命令模式,并输入“:q”,退出vi编辑器即可。

(6)、输入“gcc -o sum sum.c”,进行编译。

注:Linux下最常用的C语言编译器是gcc,gcc格式为:gcc [options] file –list

默认情况下,将可执行代码存储在文件a.out中。-o选项的作用是告知gcc将可执行代码存储在一个专门的文件中,而不是默认的a.out中。

用ls查看sum文件截图:

(7)、若成功则不会有任何信息,反之,系统会报错。若成功,则输入“./sum”,就可得到结果。

实验结果截图:

(8)、将10替换为每个同学的学号的最后三位数字,重新编译,查看结果。(注意,程序部分需要调试)。

实验结果截图:

3、将书上246页12.2.2实例程序转换为C程序,并进行编译。

实验程序截图:

实验结果截图:

三、实验心得

通过这次实验,我掌握Vi的三种运行模式及切换方法,还掌握使用Vi的各种操作命令进行文本文件的编辑,并且学会了用Vi编写Linux下C程序,掌握gcc编译。

linux进入vi编辑报错,Linux Vi编辑器的使用及C编程相关推荐

  1. linux安装多路径报错,Linux操作系统配置多路径通用教程(适用于(RHEL,CentOS,SuSE等)...

    Linux操作系统配置多路径通用教程(适用于(RHEL,CentOS,SuSE等) 猫先生 • 2019 年 06 月 01 日 一,安装软件 1,执行以下命令,检查当前系统中是否已经安装多路径工具: ...

  2. linux安装vnc服务报错,Linux安装vnc server

    操作系统: centos7.6 需求: 安装并配置vnc server 参考: https://blog.csdn.net/absenceoftrace/article/details/5188203 ...

  3. linux重启was控制台报错,Linux非WAS部署,启动报错Cannot run program \lsb_release\

    Linux非WAS部署,启动报错Cannot run program "lsb_release" 已确认 tools.jar 文件是当前 linux 中的 jdk 下的 jar 文 ...

  4. linux线程超过1024报错,Linux定位c++程序运行异常的经历《实操》

    对于c++程序来说,以segment fault为代表的程序异常行为千奇百怪,没有一套比较丰富的工具集去对付他们,在处理实际问题时就会显得捉襟见肘.本文列举几种程序异常的定位方法. 子线程创建不出来 ...

  5. linux 复制硬盘 启动报错,linux挂载硬盘报错(you must specify the filesystem type)

    今天自己的虚拟机磁盘用完成,于是想加一磁盘,当挂载时发现报错you must specify the filesystem type.(注:我的系统环境是lcentos6.3装在virtualbox的 ...

  6. linux u盘 启动报错,linux U盘启动系统的绘制

    brw-r----- 1 root disk 8, 32 10-16 15:50 /dev/sdc brw-r----- 1 root disk 8, 36 10-16 15:50 /dev/sdc4 ...

  7. linux中make命令报错,Linux命令make报错总结

    Linux环境报错原因.解决方法记录(逐步总结) 1:/bin/sh: lex: command not found make[1]: Leaving directory `/home/ksj/tes ...

  8. linux命令使用vim报错,LINUX中使用VIM替换报错:pattern not found

    在VIM中使用替换命令: :s/rac1/szserver_72/g 报错:pattern not found  ,但rac1实际是存在的 可以这样处理即可:(即将s改为%s,g改为ge) :%s/r ...

  9. linux离线安装g 报错,Linux离线安装mysql 5.6详细步骤

    tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz 8.将解压好的文件夹重命名为mysql mv mysql-5.6.40-linux-glibc ...

最新文章

  1. 在HYPER-V中利用差异磁盘和SYSPREP技术安装多个WINDOWS 2008
  2. java日期的运用(DateUtils工具类)
  3. 【网络流24题】No.7 试题库问题 (最大流,二分图多重匹配)
  4. python中select模块_基于python select.select模块通信的实例讲解 如何用python写个串口通信的程序...
  5. Python进阶:并发编程之Asyncio
  6. LBRY:美SEC对我们的指控将威胁到整个加密货币行业
  7. 为什么有些人退休后,一下子衰老了很多?
  8. python必背代码-Python高手必修课:如何让 Python 代码更易读,推荐收藏
  9. 如何在eclipse里使用git
  10. SAP 中 Webservice的发布和调用过程。
  11. Java学习笔记之设计模式(2)工厂模式
  12. 转~ubuntu的一些常用软件
  13. 分享超高清多机位现场直播间搭建方案
  14. sqlserver 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'test' 中的标识列插入显式值...
  15. SitePoint Podcast#77:纸还是蓝光?
  16. 2020秋季校园招聘深信服、噢易云、绿盟面筋
  17. 公司要求实时监控服务器,写个Web的监控系统
  18. mysql事务排队情况_MySQL事务问题
  19. fatal: 无法访问 ‘‘github.com/“:GnuTLS recv error (-110): The TLS connection was non-properly terminated.
  20. Windows驱动开发学习记录-驱动中快速重启关闭计算机之一

热门文章

  1. ubantu实现linux命令的实验_linux 基础知识
  2. 找出所有子集的异或总和再求和
  3. Eigen教程(11)之存储顺序
  4. android surface windows,Android易混概念辨析之Surface,Window,View,SurfaceView,Bitmap
  5. vue父组件变量传递子组件_Vue2.x中的父组件数据传递至子组件
  6. linux监测系统动态的进程状态命令,Linux命令:动态查看进程的变化(top)!
  7. Android进阶:框架打造之IOC框架
  8. 企业分布式微服务云SpringCloud SpringBoot mybatis (十二)断路器监控(Hystrix Dashboard)...
  9. Django开发密码管理表实例【附源码】
  10. Jupyter Notebook安装jupyter_contrib_nbextension扩展功能和安装后不显示Nbextensions标签的解决办法