项目一Linux操作命令和文本编辑器VI.doc_第1页
项目一Linux操作命令和文本编辑器VI.doc_第2页
项目一Linux操作命令和文本编辑器VI.doc_第3页
项目一Linux操作命令和文本编辑器VI.doc_第4页
项目一Linux操作命令和文本编辑器VI.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

绪论Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。基本思想Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。5 完全免费Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。6 完全兼容POSIX1.0标准这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。6 多用户、多任务Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。6 良好的界面Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。6 支持多种平台Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。 在图形计算中,一个桌面环境(Desktop environment,有时称为桌面管理器)为计算机提供一个图形用户界面(GUI)。但严格来说窗口管理器和桌面环境是有区别的。桌面环境是最近发展起来的桌面图形环境,它的主要目标是为Linux/Unix操作系统提供一个更加完备 的界面以及大量各类整合工具和使用 程序,其基本 易用性吸引着大量的新用户。桌面环境名称来自桌面比拟,对应于早期的文字命令行界面(CLI)。一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性,赋予了它与众不同的外观和感觉。 种类现今主流的桌面环境有KDE,gnome,Xfce,LXDE等,除此之外还有Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE等。gnome:即GNU网络对象模型环境 (The GNU Network Object Model Environment),GNU计划的一部分,开放源码运动的一个重要组成部分。是一种让使用者容易操作和设定电脑环境的工具。目标是基于自由软件,为Unix或者类Unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,他是GNU计划的正式桌面。Xfce:(XForms Common Environment)创建于2007年7月,类似于商业图形环境CDE,是一个运行在各类Unix下的轻量级桌面环境。原作者Olivier Fourdan最先设计XFce是基于XForms三维图形库。Xfce设计目的是用来提高系统的效率,在节省系统资源的同时,能够快速加载和执行应用程序。Fluxbox:是一个基于GNU/Linux的轻量级图形操作界面,它虽然没有GNOME和KDE那样精致 ,但由于它的运行对系统资源和配置要求极低,所以它被安装到很多较旧的或是对性能要求较高的机器上,其菜单和有关 配置被保存于用户根目录下的.fluxbox目录里,这样使得它的配置极为便利。Enlightenment:是一个功能强大的窗口管理器,它的目标是运用 户轻而易举地配置所见即所得的桌面图形界面。现在Enlightenment的界面已经相当豪华,它拥有像AfterStep一样的可视化时钟以及其它浮华的界面效果,用户不仅可以任意选择边框和动感的声音效果,最有吸引力的是由于它开放的设计思想,每一个用户可以根据自己的爱好,任意地配置窗口的边框、菜单以及屏幕上其它各个部分,而不须要 接触源代码,也不须要 编译任何程序。14项目一 Linux操作命令和文本编辑器VI,编译器GCC的使用1、 实验目的 1、了解linux系统的操作命令及使用格式 2、熟悉Linux的常用文本编辑命令 3、熟悉Linux系统的GCC编译器的使用2、 实验内容 熟悉Linux的常用操作命令及文本编辑器命令。熟悉Linux系统的GCC编译器的使用。3、 实验指导及操作目录操作 1. cd命令(change directory) 功能:改变当前目录,使指定目录成为当前目录。命令所在路径:shell内置命令执行权限:所有用户语法:cd 目录路径名该命令有三种典型的使用方法:cd . /移到父目录cd /返回到本用户的主目录cd 目录路径名 /切换到指定目录 为了能够进入指定的目录,用户必须拥有对指定目录的执行和读权限。2. ls命令(list) 功能:列出指定目录下的文件清单命令所在路径:/bin/ls执行权限:所有用户语法:ls 选项 目录路径名若缺省目录名,则表示当前目录。常用的选项及其含义如下:-l:以长格式来显示文件的详细信息。这个选项最常用。-a:显示指定目录下的所有内容,包括隐藏文件。 -c:按文件的修改时间排序。 -d:查看目录属性。-R:递归式地显示指定目录下的内容。-i:在输出的第一列显示文件的i 节点号。-F:在每个文件或目录后面加上一个标记,用来表示文件或目录的类型。其中,标记/表示目录,*表示可执行文件,表示符号链接文件,|表示管道或FIFO,=表示socket文件,没有任何标记表示普通文件。 ls l 显示的长格式说明:d: 目录:普通文件l : 软链接文件P:管道文件b: 块设备文件,如磁盘c:字符设备文件,如打印机第1栏为文件的类型(1个符号)和用户的存取权限(9个符号),共10个符号。第2栏为该文件的硬链接个数第3栏为文件所有者的用户名第4栏为用户所在的用户组第5栏为文件的大小。对于设备文件,显示的是主、次设备号。第6栏为创建或最后修改的日期与时间第7栏为文件的名称。对于符号链接文件,显示的文件名后面有-和被链接的文件路径名。3、 pwd命令( print woking directory) 功能:显示当前(工作)目录的绝对路径命令所在路径:/bin/pwd执行权限:所有用户语法:pwd 4、mkdir命令(make directory)功能:建立新目录或目录结构命令所在路径:/bin/mkdir执行权限:所有用户语法:makdir 选项 新目录名1 新目录名2 常用的选项及其含义:-m:对新建目录设置存取权限-p:新目录名可以是一个路径名。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。 5、rmdir命令(remove directory) 功能:删除空目录命令所在路径:/bin/rmdir执行权限:所有用户语法:rmdir 选项目录名1 目录名2常用的选项及其含义:-p:递归删除目录,当子目录删除后其父目录为空时,也一并被删除。【说明】该命令不能删除当前目录。目录被删除前必须是空目录,很少使用。系统询问与权限1、 chmod命令change the permissions mode of a file功能:设置文件的访问权限命令所在路径:/bin/chmod执行权限:文件主、root用户用法chmod命令有两种用法:表达式设置法和数字设置法。(1)表达式设置法(相对权限设置)语法chmod 表达式 文件名其中的表达式由who、op和mode三部分组成: who可以是下述字母中的任一个或它们的组合:u:文件主g:同组用户o:其它用户a:所有用户,它是系统默认值 操作符op可以是:+:添加某个权限- :取消某个权限=:赋予给定权限,并取消其它的所有权限(若有的话)权限方式mode可以是下述字母的任意组合:r:可读w:可写x:可执行例如,g+w 表示给同组用户添加“写”权限o-x 表示取消其他用户的“执行”权限g=rx 表示对同组用户设置“读”和“执行”权限go=r 表示对同组用户和其他用户设置“只读”权限a-w 表示对所有用户取消“写”权限(2) 数字设置法(绝对权限设置)重点!语法:chmod mode 文件名其中,mode为权限的三位八进制数表示例如,754 表示 rwxr-wr-644 表示 rw-r-r-文件操作1、 cat命令(concatenate )这是一条具有多种功能的十分灵活的命令。命令所在路径:/bin/cat执行权限:所有用户功能1:显示一个或多个文本文件的内容。这是该命令的基本功能(但不能分页显示,当文件内容多于一页时,只能看到其末尾部分)。语法1:cat -n 文件1 文件2 使用选项-n将对文本中所有的输出行进行数字编号,这还可以使用nl命令来完成。甚至可以将cat写为tac命令进行文件内容的行倒序显示。 功能2:合并多个文本文件。语法2:cat 源文件1 源文件2 目标文件 功能3:建立或更新一个简短的文本文件,并读取从标准输入设备上输入的文件内容。语法3-1:cat文件名语法3-2:cat文件名若指定目录中没有所给定的文件时,系统将以该文件名为用户建立一个新文件;否则,下面输入的内容将覆盖或追加原来的内容。输入时当光标在行首时按Ctrl+D或Ctrl+Z键便结束输入。注意,该命令并不具有文本编辑功能。2、 rm命令(remove) 功能:删除文件语法:rm 选项 文件名命令所在路径:/bin/rm执行权限:所有用户常用的选项及其含义:-i:交互式删除,删除时给出提示要求确认。-f:非交互式删除,不给出提示而直接删除。-r:递归删除目录子树。使用“rm -r 目录名”删除目录时要小心,它会删除该目录及该目录下的一切内容。3、 cp命令 (copy) 功能:复制文件或目录命令所在路径:/bin/cp执行权限:所有用户语法:cp 选项 源目录或文件目的目录或文件常用的选项及其含义:-i:交互式复制,若目标文件已存在,则给出提示要求覆盖确认。-f:非交互式复制,若目标文件已存在,则直接覆盖目标文件而不作提示。-p:不仅复制源文件的内容,还复制其各种属性,如最后修改时间、存取权限、用户ID、组ID等。-r:递归复制目录子树,包括该目录自身。 4、 mv命令(move)功能:将目录或文件改名;将文件从一个目录中移到(剪切)另一个目录中,或将一个目录及其所有内容移到另一个目录下。命令所在路径:/bin/mv执行权限:所有用户形式1:mv 文件名1文件名2执行文件更名,文件名1改为文件名2。 形式2:mv 文件名目录名执行文件移动,将文件移到指定目录中。 形式3:mv 目录1目录2若目录2为新目录,执行目录更名;否则执行目录移动,将目录1及其所有内容移到目录2下。 常用的选项及其含义:-i:交互式操作,若目标文件名或目录名与现有的某个文件或目录同名,则给出提示要求确认。-f:非交互式操作,若目标文件名或目录名与现有的某个文件或目录同名,则直接覆盖现有的文件或目录。文件查询命令1、 whereis命令功能:显示命令文件的绝对路径及其帮助文档的路径。命令所在路径:/usr/bin/whereis执行权限:所有用户语法:whereis命令名例如,$whereis cat find/查找cat命令和find命令的绝对路径 $whereis -m man/只查找man命令的帮助文档的路径2、 which命令功能:显示命令文件的绝对路径及其别名 命令所在路径:/usr/bin/which执行权限:所有用户语法:which 命令名VI编辑vi可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制.只是一个文本编辑器,不能排版vi没有菜单,只有命令 vi有三种基本工作模式,分别是:命令模式(command mode)、插入模式(insert mode)和末行模式(last line mode)1. vi的启动输入vi命令后,便进入全屏幕编辑环境,此时的状态为命令模式。2. 退出vi(末行模式(last line mode))建议在退出vi前,先按ESC键,以确保当前vi的状态为命令方式,然后再键入“:”(冒号),输入下列命令,退出vi。(1) :w将编辑缓冲区的内容写入文件,则新的内容就替代了原始文件。这时并没有退出vi,必须进一步输入下述命令才能退出vi::w filename(存入指定文件):q(2) :wq即将上面的两步操作可以合成一步来完成,先执行w,后执行q。(3) :x和ZZ(注意: ZZ前面没有“:”)功能与(2)等价。(4) :q!(或:quit)强行退出vi,使被更新的内容不写回文件中。仅键入命令:q时,如vi发现文本内容已被更改,将提示用户使用“:quit”命令退出。3. 删除x: 删除当前光标所在后面一个字符。#x: 删除当前光标所在后面#个字符。例如,5x表示删除5个字符。4. 更改cw: 更改光标处的字到此单字的字尾处。5 取代r: 取代光标处的字符。R: 取代字符直到按ESC为止。6、 复制P: 把缓冲区的资料贴上来。yy: 拷贝光标所在之行至缓冲区。7. 复原u: 复原至上一操作。8. 列出行号:set nu (nu为行数)编译器GCC的使用 在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一 位Linux程序员面临的要问题都是如何灵活运用C编译器。目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection)它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C+和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、Pascal、Modula-3和Ada等。 开放、自由和灵活是Linux的魅力所在,而这一点在GCC上的体现就是程序员通过它能够更好地控制整个编译过程。在使用GCC编译程序时,编译过程可以被细分为四个阶段: 预处理(Pre-Processing) 编译(Compiling) 汇编(Assembling) 链接(Linking)项目二 GDB调试与使用一、实验目的掌握GDB调试工具的使用和常用的调试命令。二、实验内容利用Vi编辑器编写C语言程序,使用GCC编译,利用gdb调试器调试程序。3、 实验指导GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。4、动态的改变你程序的执行环境。从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细节上,你会发现GDB这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。基本操作 aliases:命令别名 breakpoints:断点定义; data:数据查看; files:指定并查看文件; internals:维护命令; running:程序执行; stack:调用栈查看; statu:状态查看; tracepoints:跟踪程序执行。run(简写r):执行程序(gdb)run app argv1 argv2 .set args:设定传递给程序的参数(gdb)set args argv1 argv2 .show args:查看其缺省参数的列表 (gdb)show args kill(简写k):异常终止在gdb 控制下运行的程序(gdb)killquit(简写q):退出gdb(gdb)quit4、 实验步骤使用Vi编辑器,将以下代码输入名为greet.c的文件中,使用gcc编译该程序并执行程序:#include int display1(char *string);int display2(char *string);int main()char string=abcd;display1(string);display2(string);int display1(char* string) printf(the orginal string is %sn,string);int display2(char * string1)char * string2;int size,i; size = strlen(string1); string2 =(char*)malloc(size+1); for(i=0;isize;i+) string2size-i=string1i; string2size+1=0; printf(the changed string is %sn,string2); (1) 创建名为greet.c的文件并将以上代码输入,保存文件并退出。(2) 使用“gcc -o greet greet.c -g”命令,将其编译为可执行文件greet。(3) 此代码的需求为将main函数中顶一顶字符串倒序输出,执行后,法相显示结果没有输出,使用gdb分析程序错误的原因,并修改程序,已达到呈现预先的目的。(4) 使用“./greet”命令运行可执行文件gree,发现倒转后的字符串没有输出成功。(5) 使用gdb greet命令将可执行文件载入gdb调试工具,用list(1)命令查看编号后的源代码。(6) 用break21(b 21)命令在第21行设置断点,并用S命令逐行运行。(7) 用watch i命令监视变量i,用pi命令产看i值,发现for循环中存在错误。(8) 修改后的结果。五、实验结果项目三Makefile编写1、 实验目的 1、了解Makefile的基本概念和基本结构 2、初步掌握编写简单Makefile的方法 3、了解递归Make的编译方法 4、初步掌握利用GnuMake编译应用程序的方法2、 实验内容 编写Hello.c文件,利用GnuMake自动编译应用程序。3、 实验指导Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是 Unix程序员。在 Linux(unix )环境下使用GNU 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为Makefile 文件的编写。所要完成的Makefile 文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile 的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个(通常对于一个工程来说会是多个)正确的 Makefile。编译整个工程你所要做的唯一的一件事就是在shell 提示符下输入make命令。整个工程完全自动编译,极大提高了效率。make是一个命令工具,它解释Makefile 中的指令(应该说是规则)。在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。Makefile 有自己的书写格式、关键字、函数。像C 语言有自己的格式、关键字和函数一样。而且在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。Makefile(在其它的系统上可能是另外的文件名)在绝大多数的IDE 开发环境中都在使用,已经成为一种工程的编译方法。2makefile的语法-常用变量 名称 说明 缺省CC C编译器 cc CFLAGS C参数 CXX C+编译器 g+ CXXFLAGSC+参数CPP C预处理,输出处理结果 $(CC) -E CPPFLAGS 预处理参数 AR ar ARFLAGSAR参数 LDFLAGS链接参数在Makefile 中,我们的依赖关系可能会需要包含一系列的头文件如果是一个比较大型的工程,你必需清楚哪些C 文件包含了哪些头文件,并且,你在加入或删除头文件时,也需要小心地修改Makefile,这是一个很没有维护性的工作; 大多数的C/C+编译器都支持一个“-M”的选项,即自动找寻源文件中包含的头文件,并生成一个依赖关系;如果你使用GNU 的C/C+编译器,你得用“-MM”参数,不然,“-M”参数会把一些标准库的头文件也包含进来。 四、实验步骤1、 使用命令行的方式手动编译程序方法 (1)利用文本编辑器创建hello.c文件#includeint main()printf(I am hellon);return 0;(2) 手动编译hello应用程序2、 利用Gnu make自动编译应用程序方法(1) 利用文本编辑器创建一个Makefile文件,并将其保存到与hello.c相同的目录下。(2) 先后执行如下命令查看并记录所生成的文件和运行的结果。(3) 执行make clean(4) 修改hello.c文件重复第2、3步操作,产看并记录所生成的文件和运行结果,并与手动编译进行比较,写出的你的结论。(5) 重新编辑Makefile文件(6) 重复2、3步操作,查看并记录所生成的文件和运行结果。$所有的依赖目标的集合。$表示规则中的目标文件集。五、实验结果项目四 Linux系统下文件编程文件创建1、 实验目的学会创建文件,并制定文件属性。2、 实验内容编写一个应用程序,并定制文件属性。3、 实验指导函数原型int creat(const char * pathname, mode_t mode) 相关函数read,write,fcntl,close,link,stat,umask,unlink,fopen 表头文件#include#include#include 参数说明 参数pathname指向欲建

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论