实验一UNIX/LINUX使用环境及vi编辑器

[实验目的]

1、了解UNIX/LINUX的命令及使用格式。

2、复习C语言程序基本知识练习并掌握UNIX提供的vi编辑器来编译C程序

3、学会利用gcc、gdb编译、调试C程序

[实验学时]

2学时

[实验类型]

验证性

[实验内容]

1、通过WINDOWS系统中的远程登录程序telnet.exe登录UNIX/LINUX。

2、熟悉UNIX/LINUX的常用基本命令如ls、mkdir、cd、rm、cat、gcc、./等。

3、用vi编写一个简单的、显示"Hello,World!"的C程序,用gcc编译并观察编译后的结果。利用gdb调试该程序.运行生成的可执行文件。

[实验步骤]

一、UNIX的登录与退出

1、登录

在DOS环境下用MS提供的telnet程序(也可使用WINDOWS自带的telnet图形界面程序或多功能的S-Term终端程序),可使PC作为终端(terminal)登录(login)UNIX服务器(UNIX  Server)。

(1)执行格式:

telnet  hostname(主机名)

或telnet主机的IP地址

例:telnet  www.yahoo.com

telnet  140.122.77.120

(2)步骤

login: (输入username)

password:(输入密码)

2、退出

在UNIX系统提示符$下,输入logout、exit或shutdown。

例:$ logout

二、UNIX命令格式

命令[选项]   [处理对象]

例:ls  -la  mydir

注意:(1)命令一般是小写字串。注意大小写有别

(2)选项通常以减号(-)再加上一个或数个字符表示,用来选择一个命令的不同操作

(3)同一行可有数个命令,命令间应以分号隔开

(4)命令后加上&可使该命令后台(background)执行

三、UNIX常用命令

1、目录操作

和DOS相似,UNIX采用树型目录管理结构,由根目录(/)开始一层层将子目录建下去,各子目录以/隔开。用户login后,工作目录的位置称为home   directory,由系统管理员设定。'~’符号代表自己的home   directory,例如~/myfile是指自己home目录下myfile这个文件。

UNIX的通配符有三种:’*’和’?’用法与DOS相同, '-'代表区间内的任一字符,如test[0-5]即代表test0,test1,……,test5的集合。

(1)显示目录文件ls

执行格式:ls  [-atFlgR]

[name]       (name可为文件或目录名称)

例:ls显示出当前目录下的文件

ls  -a显示出包含隐藏文件的所有文件

ls  -t按照文件最后修改时间显示文件

ls  -F显示出当前目录下的文件及其类型

ls  -l显示目录下所有文件的许可权、拥有者、文件大小、修改时间及名称

ls  -lg同上

ls  -R显示出该目录及其子目录下的文件

注:ls与其它命令搭配使用可以生出很多技巧(最简单的如"ls -l | more"),更多用法请输入ls --help查看,其它命令的更多用法请输入命令名--help查看.

(2)建新目录mkdir

执行格式:mkdir   directory-name

例:mkdir

dir1(新建一名为dir1的目录)

(3)删除目录rmdir

执行格式:rmdir    directory-name或rm   directory-name

例:rmdir

dir1删除目录dir1,但它必须是空目录,否则无法删除

rm  -r  dir1删除目录dir1及其下所有文件及子目录

rm  -rf dir1不管是否空目录,统统删除,而且不给出提示,使用时要小心

(4)改变工作目录位置cd

执行格式:cd

[name]

例:cd改变目录位置至用户login时的working  directory

cd  dir1改变目录位置,至dir1目录

cd

~user改变目录位置,至用户的working directory

cd

..         改变目录位置,至当前目录的上层目录

cd

../user    改变目录位置,至上一级目录下的user目录

cd  /dir-name1/dir-name2       改变目录位置,至绝对路径(Full

path)

cd

-          回到进入当前目录前的上一个目录

(5)显示当前所在目录pwd

执行格式:pwd

(6)查看目录大小du

执行格式:du  [-s]  directory

例:du   dir1显示目录dir1及其子目录容量(以kb为单位)

du  -s

dir1显示目录dir1的总容量

2、文件操作

(1)查看文件(可以是二进制的)内容cat

执行格式:cat filename或more filename或cat filename|more

例:cat

file1以连续显示方式,查看文件file1的内容

more  file1

或cat

file1|more以分页方式查看文件的内容

(2)删除文件rm

执行格式:rm

filename

例:rm

file?

rm

f*

(3)复制文件cp

执行格式:cp

[-r]  source  destination

例:cp

file1  file2将file1复制成file2

cp

file1  dir1将file1复制到目录dir1

cp

/tmp/file1将file1复制到当前目录

cp  /tmp/file1  file2将file1复制到当前目录名为file2

cp  –r  dir1  dir2      (recursive

copy)复制整个目录。

四、文件编辑器vi

vi是在UNIX上被广泛使用的中英文编辑软件。vi是visual  editor的缩写,是UNIX提供给用户的一个窗口化编辑环境。

进入vi,直接执行vi编辑程序即可。

例:$vi  test.c

显示器出现vi的编辑窗口,同时vi会将文件复制一份至缓冲区(buffer)。vi先对缓冲区的文件进行编辑,保留在磁盘中的文件则不变。编辑完成后,使用者可决定是否要取代原来旧有的文件。

1、vi的工作模式

vi提供二种工作模式:输入模式(insert  mode)和命令模式(command  mode)。使用者进入vi后,即处在命令模式下,此刻键入的任何字符皆被视为命令,可进行删除、修改、存盘等操作。要输入信息,应转换到输入模式。

(1)命令模式

在输入模式下,按ESC可切换到命令模式。命令模式下,可选用下列指令离开vi:

:q!

离开vi,并放弃刚在缓冲区内编辑的内容

:wq

将缓冲区内的资料写入磁盘中,并离开vi

:ZZ

同wq

:x

同wq

:w

将缓冲区内的资料写入磁盘中,但并不离开vi

:q

离开vi,若文件被修改过,则要被要求确认是否放弃修改的内容,此指令可与:w配合使用

(2)命令模式下光标的移动

H

左移一个字符

J

下移一个字符

K

上移一个字符

L

右移一个字符

0

移至该行的首

$

移至该行的末

^

移至该行的第一个字符处

H

移至窗口的第一列

M

移至窗口中间那一列

L

移至窗口的最后一列

G

移至该文件的最后一列

W, W

下一个单词 (W 忽略标点)

B, B

上一个单词 (B 忽略标点)

+

移至下一列的第一个字符处

-

移至上一列的第一个字符处

(

移至该句首

)

移至该句末

{

移至该段首

}

移至该段末

NG

移至该文件的第n列

N+

移至光标所在位置之后第n列

n-

移至光标所在位置之前第n列

(3)输入模式

输入以下命令即可进入vi输入模式:

a(append)

在光标之后加入资料

A

在该行之末加入资料

i(insert)

在光标之前加入资料

I

在该行之首加入资料

o(open)

新增一行于该行之下,供输入资料用

O

新增一行于该行之上,供输入资料用

Dd

删除当前光标所在行

X

删除当前光标字符

X

删除当前光标之前字符

U

撤消

·

重做

F

查找

s

替换,例如:将文件中的所有"FOX"换成"duck",用":%s/FOX/duck/g"

ESC

离开输入模式

五、GCC编译器

LINUX上的GC

C编译器是一个全功能的ANCI

C兼容编译器,下面介绍一些GCC编译器最常用的选项。

1、使用GCC

通常后跟一些选项和文件名来使用GCC编译器。GCC命令的基本用法如下:

gcc [options] [filenames]

命令行选项指定的编译过程中的具体操作

2、GCC常用选项

GCC有超过100个的编译选项可用,这些选项中的许多可能永远都不会用到,但一些主要的选项将会频繁使用。很多的GCC选项包括一个以上的字符,因此必须为每个选项指定各自的连字符,并且就像大多数LINUX命令一样不能在一个单独的连字符后跟一组选项。例如,下面的命令是不同的:

gcc  -p-g  test.c

gcc  -pg  test.c

第一条命令告诉GCC编译test.c时为prof命令建立剖析(profile)信息并且把调试信息加入到可执行文件里。第二条命令告诉GCC只为gprof命令建立剖析信息。

当不用任何选项编译一个程序时,GCC将建立(假定编译成功)一个名为a.out的可执行文件。例如,

gcc  test.c

编译成功后,当前目录下就产生了一个a.out文件。

也可用-o选项来为即将产生的可执行文件指定一个文件名来代替a.out。例如:

gcc  –o  count  count.c

此时得到的可执行文件就不再是a.out,而是count。

GCC也可以指定编译器处理步骤多少。-c选项告诉GCC仅把源代码编译为目标代码而跳过汇编和连接步骤。这个选项使用得非常频繁因为它编译多个C程序时速度更快且更易于管理。默认时GCC建立的目标代码文件有一个.o的扩展名。

3、执行文件

格式:./可执行文件名

例:./a.out

./count

六、参考程序

main( )

{

printf("Hello,world!\n");

}

[实验报告要求]

1.调试说明。包括:调试情况,如上机时遇到问题及解决办法,观察到的现象及其分析,对程序设计技巧的总结及分析等;程序的输出结果及对结果的分析;实验的心得体会,以及调试日期等需要记录的信息。

rmf文件 linux,实验一 linux环境与vi编辑器相关推荐

  1. Linux(Ubuntu)操作系统,vi编辑器与gcc编译器的下载与使用(命令参数很详细)

    目录 一.什么是编辑器.编译器? 1.1.编辑器下载 1.2.编译器下载 二.常用的三种编辑器 2.1.vi编辑器 2.2.vi编辑器的三种工作模式 2.2.1.命令行模式 2.2.2.输入模式 2. ...

  2. 嵌入式Linux学习笔记(1-2)——vi编辑器

    vi编辑器是linux系统自带的文本编辑工具,它小巧玲珑,很多开发者对其爱不释手.不过由于大部分程序员已经习惯在windows上使用各种功能更强大的文本编辑器编写代码,转而使用vi编辑器写代码是一件特 ...

  3. linux写入系统状态到文件夹,实验二 Linux系统简单文件操作命令

    *实验二** Linux系统简单文件操作命令 项目内容 这个作业属于哪个课程 这个作业的要求在哪里 学号-姓名 17041518-孙小文 作业学习目标 学习在Linux系统终端下进行命令行操作 :掌握 ...

  4. 网上linux实验平台,Linux操作系统实验教程

    第一部分 Linux操作系统基本原理. 第1章 Linux操作系统简介 1.1 Linux的渊源和发展简史 1.2 Linux的基本特性 1.3 Linux内核的开发模式与内核版本号 1.4 Linu ...

  5. 课程linux实验报告,Linux操作系统课程实验报告.doc

    Linux操作系统课程实验报告.doc Linux操作系统课程实验报告班级姓名学号指导老师田丽华完成时间2014年7月目录一.实验目的1二.实验要求1三.实验内容1[第一题]1[第二题]2[第三题]4 ...

  6. linux实验下载,linux实验linux实验.doc

    linux实验linux实验 嵌入式操作系统 实 验 指 导 书 苗暹 黄连丽 目 录 实验一 Linux命令使用 实验二 vi编辑器的使用 实验三 shell编程实验(一) 实验四 shell编程实 ...

  7. 【Linux实验】LINUX基础命令综合操作

    实验目的: 巩固掌握LINUX下相关基础命令的操作. 实验内容: (1)用pwd命令查看当前所在目录 (2)使用ls命令以详细列表方式查看当前目录的信息 (3)使用man命令获取less命令的帮助信息 ...

  8. Linux学习:第四章-vi编辑器

    一vi编辑器简介 vim全屏幕纯文本编辑器 别名alias命令='命令别名' aliasvi='vim' alias ls='ls --color=tty'ls正常显示颜色 alias ls='ls ...

  9. 在linux系统中 通过使用shell,linux系统中的shell和vi编辑器应用详细介绍

    shell和vi编辑器 一.Shell 1.什么时shell Shell就是用户与操作系统内核之间的接口,起着协调用户和系统的一致性和用户在系统之间的交互作用.具体如下图: 2.shell的功能 Sh ...

最新文章

  1. jquery-ajax请求:超时设置,增加 loading 提升体验
  2. Spring Cloud Alibaba 负载均衡:Ribbon 如何保证微服务的高可用
  3. RunLoop 详解
  4. 协方差中的正相关与负相关 指的是线性代数中的线性相关
  5. 20个将 JavaScript 用到极致的网站
  6. SQL:find duplicate rows -- using group or having
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的物流仓库后台管理系统
  8. 一个vue项目同时兼容pc和移动端
  9. 什么叫断章取义,什么叫曲解
  10. Filebeat实现简单格式化数据dissect
  11. 纹理识别——GLCM空间灰度共生矩阵
  12. PHP的OpenSSL加密扩展学习(三):证书操作
  13. 树莓派4B的引脚控制简单demo
  14. 阿里云漏洞敏捷管理自动化报告
  15. 论文阅读笔记《Anomaly Detection in Nanofibrous Materials by CNN-Based Self-Similarity》
  16. 基于babylon.js的3D网页游戏从零教程
  17. java正则表达式练习
  18. 多模态 |COGMEN: COntextualized GNN based Multimodal Emotion recognitioN论文详解
  19. Emacs 从入门到精通
  20. AcWing 368. 银河(有向图的强连通分量)

热门文章

  1. C语言交通灯数码管,51单片机数码管交通灯程序
  2. FITC-PEG-SH,荧光素-聚乙二醇-巯基的用途:用于修饰氨基酸,蛋白质等
  3. 单片机作业1_为OLED制作汉字字库_第4部分
  4. 2012年考研计算机统考真题及答案解析
  5. 水果音乐软件学习笔记
  6. C# 泛型约束 new() 的底层细节和性能
  7. .net全套视频教程
  8. HackRequests+BeautifulSoup+re爬取网站网址
  9. 生成直链——百度网盘、微云
  10. 小目标检测的数据增强------Stitcher和Mosaic效果对比