实验二熟悉Linux环境【实验目的】1、了解Linux系统基本操作方法,学会独立使用该系统。2、熟悉Linux下如何编辑、编译和运行一个C语言程序。【预习内容】1、预习Linux下各种应用程序的使用。2、预习常用的SHELL命令。3、预习Linux下C程序编辑、编译和运行过程。【实验内容】一、登陆Linux开机,选择进入登陆窗口,在登陆窗口下面有菜单栏,其中会话菜单项包含:最后用户上次登陆使用的窗口管理器安全模式显示没有桌面管理器的xterm窗口。在标准登陆不能正常工作情况下,以最小桌面登陆来处理登陆时所出现的问题默认RedHat的初始默认桌面管理器是GNOMEGNOME显示GNOME桌面管理器KDE显示KDE桌面环境用户可以任意选则一个界面,按“确定”按钮,就可登陆到不同的图形桌面环境。输入用户名:user,输入密码:111111,进入Linux图形桌面环境。二、熟悉Linux图形桌面环境图形用户界面通常包括4部分:覆盖了屏幕大部分的桌面、散布在屏幕上的各种图标、屏幕底部的任务栏或控制板,以及桌面菜单。以GNOME桌面管理器为例,左键单击面板上GNOME菜单按钮(红帽子图案或足形图标)即可弹出GNOME主菜单,因GNOME菜单可由用户定制修改,所以每个机子可能不同。⑴通过主菜单可访问应用程序。Games(游戏)显示许多可供娱乐的游戏。HomeFolder(主文件夹)打开一个显示用户主目录的Nautilus(文件管理器)窗口。LockScreen(锁定屏幕)运行屏幕保护程序。LogOut(注销)弹出一个对话框让用户选择是要注销、关机还是重启。Preferences(首选项)点选ControlCenter可以从首选项窗口中的所有条目中进行选择,或者在菜单中直接点选自己关心的条目。RunProgram(运行程序)弹出用来运行程序的Run对话框。用户可以输入带有选项/参数的命令行,可以选择在终端模拟器中运行程序。SystemSettings(系统设置)与StartHere:SystemSettings功能相同。LinuxSystemTools(系统工具)列出诸如CDWriter(CD刻录工具)、FloppyFormatter(软盘格式化工具)、HardwareBrowser(硬件浏览器)、RedHat网络接口、SystemMonitor(系统监视工具)、Terminal(终端)和TaskScheduler(任务调度器)等工具。⑵启动终端模拟器GNOME终端模拟器用一个窗口来模拟字符终端的行为。点击任务栏上TerminalEmulator按钮或者从主菜单选择:系统工具→终端,即可打开终端模拟器。三、练习常用的Shell命令。当用户登录到字符界面系统或使用终端模拟窗口时,就是在和称为shell的命令解释程序进行通信。当用户在键盘上输入一条命令时,shell程序将对命令进行解释并完成相应的动作。这种动作可能是执行用户的应用程序,或者是调用一个编辑器、GNU/Linux实用程序或其他标准程序,或者是一条错误信息,告诉用户输入了错误的命令。1.目录操作mkdirDir创建一个目录DircdDir将工作目录改变到Dircd改变当前目录到主目录ls列出当前目录的内容ls-l输出当前目录内容的长列表,每个目录或文件占一行pwd显示当前目录的全路径2.文件显示实用程序catfile1file2连接file1和file2headfilename显示文件filename的开始10行grepwordfilename在filename中搜索包含有特定单词word的行wcfilename统计文件filename中的行数、单词数和字符数catmx.c显示mx.c文件内容moremx.c分屏显示mx.c内容tailmx.c显示文件后几行od文件查看非文本文件3.文件管理实用程序cpfile1file2将文件1复制到文件2mvfile1file2将文件重命名为file2rmfilename删除文件filenamerm-ifilename请求用户确认删除4.数据操作实用程序tty显示当前终端的路径和文件名who显示当前登录用户的列表sortfilename显示文件filename中的行的排序结果spellfilename检查文件filename中的拼写错误5.其他实用程序date输出系统日期和时间cal显示本月的日历。cal2002显示2002年的日历clear清除终端屏幕history显示你以前执行过的命令的列表man显示实用程序的有用信息,并提供该实用程序的基本用法echo读取参数并把它写到输出四、熟悉gcc编译器GNU/Linux中通常使用的C编译器是GNUgcc。编译器把源程序编译生成目标代码的任务分为以下4步:a.预处理,把预处理命令扫描处理完毕;b.编译,把预处理后的结果编译成汇编或者目标模块;c.汇编,把编译出来的结果汇编成具体CPU上的目标代码模块;d.连接,把多个目标代码模块连接生成一个大的目标模块;1.使用语法:gcc[option|filename]...其中option为gcc使用时的选项,而filename为gcc要处理的文件。2.GCC选项GCC的选项有很多类,这类选项控制着GCC程序的运行,以达到特定的编译目的。⑴全局选项(OVERALLOPTIONS)全局开关用来控制在“GCC功能介绍”中的GCC的4个步骤的运行,在缺省的情况下,这4个步骤都是要执行的,但是当给定一些全局开关后,这些步骤就会在某一步停止执行,这产生中间结果,例如可能你只是需要中间生成的预处理的结果或者是汇编文件(比如你的目的是为了看某个CPU上的汇编语言怎么写)。①–xlanguage对于源文件是用什么语言编写的,可以通过文件名的后缀来标示,也可以用这开关。指定输入文件是什么语言编写的,language可以是如下的内容a.cb.objective-cc.c-headerd.c++e.cpp-outputf.assemblerg.assembler-with-cpp②–xnone把-x开关都给关掉了。③–c编译成把源文件目标代码,不做连接的动作。④–S把源文件编译成汇编代码,不做汇编和连接的动作。⑤–E只把源文件进行预处理之后的结果输出来。不做编译,汇编,连接的动作。⑥–ofile指明输出文件名是file。⑦–v把整个编译过程的输出信息都给打印出来。⑧–pipe由于gcc的工作分为好几步才完成,所以需要在过程中生成临时文件,使用-pipe就是用管道替换临时文件。⑵语言相关选项(LanguageOptions)用来处理和语言相关的选项。①–ansi这个开关让GCC编译器把所有的GNU的编译器特性都给关掉,让你的程序可以和ansi标准兼容。②–includefile在编译之前,把file包含进去,相当于在所有编译的源文件最前面加入了一个#includefile语句,③–C同-E参数配合使用。让预处理后的结果,把注释保留,让人能够比较好读它。⑶连接开关(LinkerOptions)用来控制连接过程的开关选项。①–llibrary连接库文件开关。例如-lugl,则是把程序同libugl.a文件进行连接。②–lobjc这个开关用在面向对象的C语言文件的库文件处理中。③–nostartfiles在连接的时候不把系统相关的启动代码连接进来。④–nostdlib在连接的时候不把系统相关的启动文件和系统相关的库连接进来。⑤–static在一些系统上支持动态连接,这个开关则不允许动态连接。⑥shared生成可共享的被其他程序连接的目标模块。⑷目录相关开关(DirectoryOptions)用于定义与目录操作相关的开关。–Ldir搜寻库文件(*.a)的路径。⑸调试开关(DebuggingOptions)–g把调试开关打开,让编译的目标文件有调试信息。–Vversion用来告诉编译器使用它的多少版本的功能,version参数用来表示版本。五、熟悉Linux下C程序编辑运行过程Linux下编写C程序要经过以下几个步骤:⑴启动常用的编辑器,键入C源程序代码。例如,点击“主菜单”\“附件”\“文本编辑器”,进入编辑环境,输入C源程序,保存并命名为hello.c#includestdio.hvoidmain(void){Printf(“helloworld!\n”);}⑵编译源程序点击“主菜单”\“系统工具”\“终端”,进入命令行。用gcc编译器对C源程序进行编译,以生成一个可执行文件。方法:gcc-ohello.outhello.c↙⑶运行可执行文件·/hello.out↙注:命令行中-o选项表示要求编译器输出可执行文件名为hello.out文件,hello.c是源程序文件。【实验报告】1、举例列出常用的shell命令使用方法。2、通过实例总结上机调试C语言程序的过程及此次上机的感想。