1、Linux与C编程基础,电子科技大学计算机学院 张玉宏 主讲 ,Some proverbs to my students (1),竺可桢(1890-1974),我国近代气象事业和近代地理学的奠基人。 1936年出任浙江大学校长(至1949年4月)。中华人民共和国诞生后,任中国科学院副院长等职。,Ask yourself the same two questions,诸位在校,有两个问题来问自己: 第一,到大学来做什么?第二,将来毕业后做什么样的人?,Some proverbs to my students (2),Goals determine what you are going to be
2、. 目标决定你将成为什么样的 孔子教育学生:“取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣”。 孙子兵法云:“求其上,得其中;求其中,得其下,求其下,必败!”,Some proverbs to my students (3),大处着眼,小处着手百尺高台,起于垒土 中国谚语,Some proverbs to my students (4),NO PAINS NO GAINS (佛像的小故事),教材及参考书目,教材:Linux C编程实战 童永清编著 人民邮电出版社,Do you want to obtain a full mark(100)?,成绩评定: 作业,上机实习,末考试以
3、及课堂成绩 比例: 平时成绩及笔记 20% 上机试验 20% 期末考试 60% 奖:课堂讨论 (额外加分):A(3),B(2),C(1),D(0)人气 惩:课堂不到或不遵守课堂纪律者-A,-B,本课程的布局,本课程分4个部分介绍了如何使用C语言在Linux平台下进行软件开发。 第一篇Linux和C编程基础:主要介绍Linux的安装与使用,针对初学者和对C语言不熟悉的读者回顾了C语言的编程基础知识、开发技巧等,同时以知名公司在招聘时使用的笔试、面试题作为例题分析C语言的重点和难点。 在这部分里,还结合实例介绍了Linux的开发环境,如Vi和Emacs编辑器、gcc编译器、gdb调试器、make自
4、动编译工具等。,本课程的布局,第二篇Linux系统编程:主要介绍了Linux下的系统编程,包括文件和目录操作、进程和线程控制、信号的使用、进程间通信。 本部分以大量的程序实例来说明各个系统调用的使用方法。每章的最后部分都有一至两个具有一定规模的综合实例, 如实现自己的ls命令、实现自己的myshell等。,本课程的布局,第三篇Linux网络和图形界面编程:第1112章。主要介绍Linux下的网络编程和图形界面编程。由于Linux和TCP/IP协议的内在结合,使得在Linux下可以开发出功能十分强大的网络应用程序。同样,也可以开发出界面十分精美的图形界面程序。 本部分对Linux下网络编程和图形
5、界面编程作了详细地介绍,并通过实例展示它们的具体应用。,本课程的布局,第四篇Linux项目实践:通过开发一个BT下载软件来完整地介绍一个软件的开发过程。 详细分析和解释了BT协议,并在此基础上使用C语言在Linux环境下设计和实现了一个BT下载软件。,1.1 Linux操作系统介绍,Linux是一种可以自由传播和免费使用的类似于UNIX的操作系统。它可以在各种硬件平台上运行并且开放全部的源代码。 UNIX作为一种经典的操作系统,最初由贝尔实验室的Ken Thompson和Dennis Ritchie于1969年研发成功,主要用在大型机和小型计算机上。它价格昂贵,对一般用户而言,可望而不可及。,
6、1.1 Linux操作系统介绍,Linux最早是由芬兰赫尔辛基大学的一位叫Linus Torvalds的大学生设计的。当时他有一台Intel 386计算机,而他手上的Minix(由著名的操作系统方面的教授Andrew Tannebaum编写的一个用于教学目的的操作系统)却不能很好地在他的计算机上运行。 于是他开始修改Minix。经过几个月的努力,基本完成了目标。此时他发现,他几乎实现了一个新操作系统的原型。,1.1 Linux操作系统介绍,1991年10月,Linus把Linux(意为Linus的UNIX)放到FTP服务器上供其他人自由下载。Linus允许他人免费使用Linux的源代码,并鼓励
7、大家对其进行修改和完善。 Linus很快于当年11月发布了Linux的0.10版本,12月又发布了0.11版本。后来许多程序员参加了对Linux的完善和发展工作,在全世界成千上万程序员的共同努力下,Linux得到了长足的发展。现在Linux已经发展到2.6版,并且还在不断地改进和完善中。,1.1 Linux操作系统介绍,Linux具备UNIX的全部特性,如多任务、多用户、安全、稳定和高效。它可以在各种硬件平台上运行,拥有良好的界面,适合作为个人电脑的操作系统。 此外,Linux是免费软件,不需要支付费用就可以获得它及其源代码,并且可以根据自己的喜好和需要对它进行修改。用户通过互联网不仅可以获得
8、Linux操作系统,而且还可以免费下载许多Linux的应用软件,而不用担心版权问题。 Linux经过剪裁还可以作为嵌入式操作系统,现在基于Linux的嵌入式软件开发逐渐成为一个热点。正是由于这些原因,Linux受到广大计算机爱好者、软硬件公司,甚至一些国家政府的青睐。,1.1.2 Linux的特性,近几年来,Linux操作系统的用户不断增加,开发和应用也越来越广泛,这与Linux的良好特性是分不开的。Linux具有UNIX的全部功能和特点,同时对其进行了改进和扩展。Linux主要具有以下一些特性。 1多用户 Linux支持多个用户同时使用一台计算机,每个用户独立工作而不会相互干扰。用户之间可以
9、进行会话和通信。每个用户对系统资源(如文件)拥有不同的权限,这样可以防止一个用户恶意地访问和修改或者无意中破坏其他用户的资源。 2多任务 支持多任务是现代操作系统的主要特点之一。它使计算机可以同时运行多个程序,而程序之间不会相互干扰。,1.1.2 Linux的特性,3多平台 Linux可以运行在各种CPU上,包括Intel系列,AMD系列,SPARC,Alpha,Power PC以及一些嵌入式系统,如ARM。Linux不仅可以运行于个人电脑上,而且还可以运行在各种大型机、小型机上,它既可以运行在一个CPU上,也可以运行在多个CPU上。它在32位的CPU上运行良好,在64位的CPU上也表现优异。
10、 4良好的用户界面 Linux向用户提供了两种界面:字符界面和图形界面。在字符界面中,用户通过输入命令来使用计算机,可以编写功能强大的Shell脚本,Linux还为用户提供了优美的图形界面,通过使用鼠标操作窗口、菜单、滚动条等来方便地使用系统。,1.1.2 Linux的特性,5强大的网络功能 内置的网络功能是Linux的一大特色。这使得Linux在通信和网络方面的功能优于其他操作系统。 6安全、稳定和高效 Linux在开发过程中非常重视系统的安全性,采用了各种措施来保护系统的安全。由于Linux的稳定和高效,越来越多的服务器采用Linux作为其操作系统。Linux的稳定和高效是继承了UNIX的
11、结果。 7良好的可移植性 Linux可以方便地从一个硬件平台移植到另一个硬件平台上。它既可以运行在嵌入式设备、PC机上,也可以运行在小型机、大型机上。,1.1.2 Linux的特性,8开放和免费 这可能是Linux的最大特点。Linux是一种开放的、免费使用的操作系统,相比之下Windows是封闭的,有偿使用的系统。 Windows系列的操作系统是受版权保护的,其设计和开发都由微软公司一手控制,它的源代码不开放,因此我们很难得知其内部的实现。 Linux的源代码可以方便地从网络上下载,其安装盘中也有完整的Linux源代码。 这对于操作系统爱好者、应用软件开发者和许多软硬件厂商来说,是令人兴奋的
12、,他们可以研究Linux内核,并在其基础上开发自己的Linux系统或应用软件。,1.1.3 Linux的内核版本和发行版本,任何软件都有其版本,如目前Windows系列操作系统的主要版本有Windows2000、Windows XP、Windows 2003、Windows Vista,版本管理也是软件开发中的一个重要内容。 Linux当然也不例外,Linux的版本分为两类:内核版本和发行版本。 内核版本是指Linux的创始人Linus领导的开发小组所开发的操作系统内核的版本号,如2.4.20。 通常在内核版本号之后还会附加一个数字,如2.4.20-8,最后的数字用来表示该版本内核是第几次被修
13、订的。,1.1.3 Linux的内核版本和发行版本,Linux的内核版本号由3部分组成:主版本号,次版本号,次次版本号。如内核版本2.4.20,2是主版本号,4是次版本号,20是次次版本号。 当内核有重大改动时,主版本号会加1;当内核只是小改动,如加入一些新的特性,支持更多的硬件,次版本号会加1; 次次版本号的增加只表示内核有轻微的改动,对内核的影响很小。 次版本号为奇数表示该版本是测试版,可能不是很稳定,若为偶数则表示是个稳定版本,普通用户可以放心使用。如2.4、2.6是稳定版本,而2.5、2.7是开发中的测试版本。,1.1.3 Linux的内核版本和发行版本,内核只实现了操作系统最关键的部
14、分,只有在此基础上提供用户界面,增加一些应用软件,一般用户才能方便地使用它。一些公司或组织将Linux内核和常用的应用软件包装起来,并提供安装 界面和管理工具,这样就形成了Linux的发行版本。 对于Linux的初学者,发行版本的概念可能要重要一些。发行版本经过了严格的测试,而且还加入了一些常用的应用软件(如字处理软件、播放器)和开发工具(如gcc、gdb),这样初学者可以很快适应Linux环境并享受Linux带来的快乐。,1.1.3 Linux的内核版本和发行版本,Linux的主要发行版本有:Fedora Core、Red Hat Linux、Debian Linux、SuSe Linux和
15、Red Flag Linux。Red Hat Linux(即红帽Linux)是Red Hat软件公司发布的Linux版本,无论在国内还是在国外都有很高的使用率。 Red Hat Linux中使用较多的是Red Hat Linux 9和Red Hat Enterprise Linux 4,分别是个人版和企业版。前者基于2.4版的内核而后者基于2.6版的内核。 Fedora Core 从Red Hat Linux的个人版发展而来,其构成和使用方法与红帽Linux基本一致,增加了一部分新特性。 特别要说明的是Red Flag Linux(即红旗Linux)是国产的Linux,它是全中文化的Linux
16、发行版本。,1.1.3 Linux的内核版本和发行版本,本课程基于Red Hat Linux 9讲解Linux下的C编程,当然读者若安装其他版本的Linux也不会影响学习。 建议安装Red Hat Linux 9或Fedora Core 6。,1.2 C语言简介,C语言最早由贝尔实验室的Dennis Ritchie设计并实现。Dennis Ritchie也是UNIX操作系统的主要设计者之一。 C语言是目前国际上广泛使用并具有良好发展前途的计算机语言。它不仅可以用来编写应用软件,也可以用来开发系统软件,Linux、UNIX操作系统本身都是用C语言开发。 C语言也是Windows操作系统的主要开发
17、语言。,1.2 C语言简介,在C语言诞生之前,操作系统和其他软件主要是用汇编语言来开发的。由于汇编语言依赖于计算机硬件,且可读性、可移植性很差,开发效率也不高,而当时一般的高级语言很难对计算机硬件直接进行操作。 因此,人们需要一种既有汇编语言的特性又具有一般高级语言特点的计算机语言,C语言就在这种情况下诞生了。,1.2 C语言简介,后来在C语言的基础上,人们又开发出了C+语言、Java语言、C#语言。 它们都是在C语言的语法和基本结构上,通过加入新的元素和思想开发出来的。 目前C语言在系统软件(包括驱动程序),应用软件和嵌入式软件领域被广泛使用。,1.2.2 C语言的特点,1两重性 C语言既可
18、以像汇编语言一样对位、字节、地址以及硬件进行操作,又具有一般高级语言的基本结构和语句。 2结构化 结构化语言的一个显著特点是所开发的程序可以实现模块化。模块化是指程序的各个部分除了必要的信息交流外相对独立,因此各个部分可以单独开发和测试,提高开发效率,所开发的软件也易于维护。,1.2.2 C语言的特点,3与Linux紧密结合 Linux操作系统本身是由C语言开发的,在Linux上用C语言开发的程序运行效率很高,可以实现无缝结合。 相比之下,用Java语言编写的程序虽然可以在各种软硬件平台上运行,如基于Intel的Linux,基于AMD的Windows。 但Java程序的运行依赖于虚拟机,所以相
19、对来说运行效率不高。因此,在某些对性能要求很高的领域,C语言是首选。,1.2.2 C语言的特点,4可移植性好 用C语言编写的程序基本上不用作任何修改,就可以在不同的硬件平台和操作系统上运行。,1.3 Linux的安装、启动与关闭,示范在虚拟机中安装Red Hat Linux 9 安装Fedora Core 6的过程与此类似。,1.3.1 Linux的安装,安装Linux,在硬件上没有特别的要求,只要有64MB以上的内存,4GB以上的硬盘空间就可以安装。 如果要使用图形界面,最好具有128M以上的内存。,1.3.1 Linux的安装-虚拟机软件,在介绍Linux安装之前,先了解一下如何安装和使用
20、VMware虚拟机软件。 在Windows上安装了VMware之后,再在VMware虚拟机中安装Linux,这样就可以同时使用两种操作系统。 当然也可以不安装VMware而在一台已经安装了Windows操作系统的电脑上或在没有安装任何操作系统的电脑上直接安装Linux。,1.3.1 Linux的安装-虚拟机软件,若选择不安装VMware而直接安装Linux操作系统,则可以跳过以下安装VMware的内容。 此时安装Linux,只需把安装盘放入光驱,重新启动系统,(视具体系统而定,一般按“Delete”键或“F2”键电脑启动时会有相应的提示)进入BIOS,将 BIOS设置为光盘启动,再重新启动系统
21、即开始安装Linux。,1.3.1 Linux的安装-虚拟机软件,安装VMware,首先购买正版VMware软件(?)。 本书示例中安装的是VMware 5.0,其他版本的安装过程类似。 双击安装程序,进入初始安装界面,点击“Next”按钮,弹出许可证协议窗口,如下图所示。,VMware 5.0的安装,VMware 5.0的安装,VMware 5.0的安装,VMware 5.0的安装,运行VMware虚拟机软件,出现界面如下图所示,VMware 5.0的安装,单击“File”菜单项,选择“New”项,再单击“Virtual MachineCtrl+N”选项,新建一个虚拟机,用来安装Linux。
22、弹出如图1-10所示的向导界面。 单击“下一步(N)”,出现虚拟机配置界面,如图下所示。 选择默认配置“Typical”(典型)即可,直接单击“下一步(N)”,要求选择待安装的操作系统类型,VMware 5.0的安装,VMware 5.0的安装,如图1-12所示,选择“Linux”。若要在虚拟机中安装其他操作系统,可根据需要进行选择 只要内存和硬盘容量都足够大,可以创建多个虚拟机,安装多个操作系统。 多个操作系统还可以组建成网络。 完成选择后,再单击“下一步(N)”,打开如图1-13所示界面。,VMware 5.0的安装,VMware 5.0的安装,如图1-13所示,在“Virtual mac
23、hine name”下的编辑框中可以给虚拟机命名,这里默认设置为“Red Hat Linux”,“Location”下的编辑框用于设置Linux操作系统的安装目录,这里也使用默认设置 要注意,Linux安装目录所在的驱动器要有4GB以上的空闲空间,比如这里D盘的空闲容量须在4GB以上。 完成设置后,单击“下一步(N)”,打开图1-14所示窗口。,VMware 5.0的安装,VMware 5.0的安装,在打开的选择网络连接方式的窗口中,设置原来已安装的Windows操作系统和要安装的Linux操作系统之间的网络连接方式,默认即可 单击“下一步(N)”,弹出如图1-15所示窗口,要求设置Linux
24、能使用的最大容量。,VMware 5.0的安装,这里默认设置为4GB,若硬盘空闲空间较大,则可以设置更高的值,但一般不能低于4GB。 单击“完成”,完成虚拟机的创建,返回到VMware主界面,如图1-16所示。 此时可以在左侧看到刚刚创建的虚拟机“”。,VMware 5.0的安装,1.把Linux的安装盘放入光驱中,单击图1-16中的“ ”,开始安装Linux操作系统。 2.也可以从网络上下载Linux安装盘的镜像文件(以.ISO结尾的文件),Red Hat Linux 9安装盘共有3个镜像文件,总计1.8GB。 下载完成后,用Daemon Tools或其他虚拟光驱软件将镜像文件加载到虚拟光驱
25、里。再在VMware主界面单击“ ”,弹出如图1-17所示窗口。,VMware 5.0的安装,VMware 5.0的安装,如图1-17所示单击“ ”,再单击“Browse”,找到镜像文件所在的目录,选择第一个镜像文件,完成后点击“OK”。再单击图1-16所示的“ ”,即可开始安装。 开始安装Linux操作系统,如图1-18所示。,安装Linux操作系统,安装Linux操作系统,按“Enter”键继续 若要检查安装盘是否有问题,选择“OK”若要跳过检查则选择“Skip”。这里选择“Skip”跳过检查,并按“Enter”键继续,如图1-19所示。,安装Linux操作系统,如图1-20所示,单击“N
26、ext”继续,出现的界面要求选择安装使用的语言,安装Linux操作系统,选择第一条“Chinese(Simplified)(简体中文)”,单击“Next”继续。 之后的界面要求选择键盘类型,一般默认即可,单击“下一步”继续。 之后弹出要求选择鼠标类型的窗口,也默认选择,安装程序会自动检测键盘和鼠标类型 直接单击“下一步”继续,出现如图1-21所示的选择安装类型界面。,安装Linux操作系统,安装Linux操作系统,选择“个人桌面”,单击“下一步”,出现如图1-22所示的界面。,安装Linux操作系统,进行磁盘分区设置,对初学者来说一般选择“自动分区(A)” 在有了一定的Linux使用经验之后可
27、以尝试手工分区,单击“下一步(N)”继续,之后弹出如图1-23所示警告对话框:,安装Linux操作系统,选择“是”,出现如图1-24界面。,安装Linux操作系统,选择“保存所有分区,使用现有的空闲空间”,单击“下一步”。在随后出现的窗口中,选择默认设置,单击“下一步”。 然后要求进行网络配置,默认配置即可。若要进行配置,输入本机IP地址、子网掩码、网关IP和DNS的IP地址。再单击“下一步”,出现防火墙配置界面,默认即可,单击“下一步”继续。 之后出现的界面要求选择在Linux系统中支持的语言,选择“Chinese (R.P of China)”和“English (USA)”,单击“下一步
28、”继续。要求选择时区,默认即可,单击“下一步”继续。,安装Linux操作系统,要求设置根用户,即名为root的用户密码(root用户具有系统的最高权限),输入密码后单击“下一步”继续。 要求选择“定制要安装的软件包集合(C)”,出现如图1-25所示的界面。,安装Linux操作系统,选择“KDE桌面环境”、“开发工具”和“KDE软件开发”后,单击“下一步”,开始正式的安装。 安装过程中会提示更换光盘或加载第二个第三个镜像文件(通过镜像文件安装时)。 加载镜像文件时,依次选择“VM”、“Settings”、“CD-ROM (IDE 1:0)”、“Browse”,然后选择相应的镜像文件,安装界面如图
29、1-26所示。,安装Linux操作系统,安装Linux操作系统,之后安装程序询问是否创建引导盘,选择“否”,单击“下一步”继续,之后都选择默认设置直到安装完毕。 安装完毕后会自动重新启动,进入Linux系统。,1.3.2 Linux的启动与关闭,首次启动还需要进行一些设置,在此之后的启动就会变得非常简单,只要打开电源或启动虚拟机中的操作系统,经过一段时间就会进入登录界面。 本节介绍首次启动Linux时要进行的设置工作,以及关闭系统的方法。,1.3.2 Linux的启动与关闭,首次启动Red Hat Linux系统时,会看到如图1-27所示的欢迎界面,它会引导用户对系统进行一些配置。,Linux
30、的启动,单击“前进”按钮,出现如图1-28所示的要求创建一个普通用户帐号的界面。,Linux的启动,Linux系统中有两类帐号:超级用户(如名为root的用户),该类帐号的用户具有系统最高权限,相当于Windows中的Administrator管理员; 普通用户,这类帐号只能对系统进行有限的操作。,Linux的启动,在系统安装过程中已经创建root帐号,并且为该帐号设置了密码。 首次启动Linux要求建立一个普通用户的帐号。一般在使用Linux时,出于安全考虑,建议一般以普通用户进行操作,在某些需要超级用户权限时再切换到root用户下进行操作。 单击“前进”按钮,继续。,Linux的启动,之后
31、的界面分别要求设置日期和时间、声卡、网络和光盘,一般默认即可。 当然也可以根据需要进行相应的设置。 最后出现登录界面,输入root或刚才建立的普通帐号的用户名,输入相应的密码后进入系统,Linux操作系统的桌面如图1-29所示。,Linux的关闭系统,若要关闭系统,单击左下方的“红帽”图标,选择“注销”,再选择“关机”,然后单击“确定”按钮就可以关闭系统。,如何用基于VMware的Linux上网,为给基于VMware的Linux配置网络参数,VMware为Linux安装了一个虚拟的网卡。用户可以将该网卡设置四种不同的运行模式:,如何用基于VMware的Linux上网,为给基于VMware的Li
32、nux配置网络参数,VMware为Linux安装了一个虚拟的网卡。用户可以将该网卡设置四种不同的运行模式,其中有两种模式较为常用:Bridge模式与NAT模式 当设置为Bridge模式时,需要给Linux设置一个与母操作系统(如Windows XP)不同的且合法的IP地址(需要注意的是,必须与母操作系统的网络地址属于同一网络)。此时,两个操作系统之间从逻辑上完全独立。,如何用基于VMware的Linux上网,当设置为NAT模式时,需要给Linux设置一个内部的IP地址。此时Linux系统与母操作系统共用一个IP地址与外界通信,而且Linux系统与母操作系统组成一个内部网络,两个系统之间也可以完
33、成双向通信。 同时Linux也可以主动访问外部网络,但外部网络的设备不能直接访问Linux系统。下面我们将主要介绍如何在VMware中将Linux配置成NAT方式。,如何用基于VMware的Linux上网,1.如何获取内部网络地址 如图所示,安装VMware时,为保证基于VMware的操作系统能正常与外部网络设备通信,VMware在母操作系统中添加了两个虚拟的网络连接,分别是VMware NET1和VMware NET8。,如何查看VMware NET8的地址,查找网络连接VMware NET8的属性,获取其网络地址,可以用下面两种方法之一。 一种方法是直接在该网络连接上点击鼠标右键,选择“属
34、性”,在弹出的对话框中双击“Internet属性(TCP/IP)”。 如图所示,在弹出的对话框中可以看到该连接的IP地址和子网掩码。如192.168.141.1和255.255.255.0。,如何查看VMware NET8的地址,另外一种方法是在Windows操作系统命令行模式下运行IPconfig程序,可以看到本机所有的网络连接的IP配置,如图所示。,设置VMware的网卡工作模式,如图5所示,VMware为每一个子操作系统安装了一个虚拟的网卡(NIC)。,如何配置虚拟机网卡,双击右侧的NIC图标,弹出网卡设置对话框,如图6所示。在“Connect or the following netw
35、ork”选项中选择“NAT: Used to share the hosts IP addr”单选钮,然后单击“OK”按钮退出。,如何设置Linux的IP参数,上述工作完成,启动Linux系统,以根用户登录Linux系统。在命令行提示符下输入setup命令,如图所示。,如何设置Linux的IP参数,如图所示,在出现的Linux设置界面中,通过上下键选择“Network configuration”选项。,如何设置Linux的IP参数,敲击回车键后,在弹出的“是否设置网络参数”对话框中选择“yes”后,弹出“Configure TCP/IP”对话框中输入如图所示的地址信息(这些信息主要根据第1步
36、获取的虚拟网络连接地址而来)。,如何设置Linux的IP参数,其中IP地址的前三个字节必须与VMware NET8的IP地址完全一样:最后一个字节可以选择3254范围内的任意一个数字; 子网掩码必须为255.255.255.0; 网关地址前三个字节也必须与VMware NET8的网关地址一样,最后一个字节必须为2。 设置完成后,选择“OK”后返回,最后一个字节可以 选择3254范围 内的任意一个数字,最后一个字节 必须是2,测试一下结果,测试一下结果,总结,本文中涉及的IP地址均是某次机器启动的地址。由于每次母操作系统Windows重新启动时,均会给VMware的虚拟网络连接赋予不同的内部地址
37、,因此需要给VMware内部安装的Linux系统重新设置新的IP地址。 与此同时,本文仅介绍了在NAT方式静态配置Linux的地址方法,其他的方法(如利用DHCP自动给Linux配置地址)也可以解决本文提出的问题,愿有兴趣的同学自己去挖掘吧。,Linux的关闭系统,也可以通过控制台在字符模式下使用命令关闭系统。 打开控制台的方法是,单击左下方的“红帽”图标,选择“系统工具”,再单击“终端”选项,即打开如图1-30所示的字符模式控制台。在桌面上单击右键,选择“新建终端”选项也可以达到同样的目的。输入“halt”命令,即可关闭系统。,Linux的关闭系统,在桌面上单击右键,选择“新建终端”选项也可
38、以达到同样的目的。输入“halt”命令,即可关闭系统。,1.4.1 Linux终端,虚拟控制台使Linux成为一个真正的多用户多任务操作系统,Linux既可以在本地计算机上打开多个控制台,也可以在远程终端上打开多个控制台。每个控制台上可以同时运行多个任务(即运行多个程序)。 在终端上,通过输入Shell命令来控制和使用计算机。,1.4.2 Linux Shell,Shell是一个命令解释器,它通过接受用户输入的命令来启动、暂停、停止程序的运行或对计算机进行控制,如在图1-30所示的终端上输入halt命令就可以关闭计算机。,1.4.2 Linux Shell,Shell还允许用户编写由Shell
39、命令组成的功能强大的程序。 在Linux上任何通过图形方式实现的操作都可以由相应的命令来完成。 虽然Linux提供了比较完善的图形操作方式,但熟悉和掌握常用的Linux命令和Shell编程是非常有用的而且在某些情况下是必需的。,1.4.2 Linux Shell,Shell有两种提示符:#和$。 图1-30所示的终端提示符是#。以“#”为提示符表明该终端是由root用户打开的,root用户具有系统最高权限,因此可以输入任何可用的命令,1.4.2 Linux Shell,Shell有两种提示符:#和$。 一般用户打开的终端的提示符是“$” 比如halt命令只能由root使用,普通用户在“$”提示
40、符下输入halt命令,系统认为是一个无效命令。 提示符的其他部分分别表示登录用户名主机名当前目录。,1.4.2 Linux Shell,Shell命令的基本格式是: 命令名 选项 其中方括号中的选项对命令来说是可选的,一条命令可以有0个或多个参数。 选项是对命令的特别定义,也可以理解为选项告诉命令具体做什么。 选项通常以“-”开始,后接一个或多个字母,如ls-al,有的选项以“-”开头,后面一般跟着一个单词,比如-number。 很多“-”格式的选项可以用“-”加上第一个字母来替代,如-number可以用-n来替代。,1.4.2 Linux Shell,在Shell下输入相应的命令并按回车键,
41、Shell就执行命令。如果没有此命令,Shell会提示“command not found”,表明没有这个命令。 Shell命令是区分大小写的,一条命令只要有一个字母的大小写发生变化,系统就认为是一条不同的命令。 可以用分号“;”来连接多个命令,Shell会依次执行这些命令。,1.4.2 Linux Shell,输入命令、目录名或文件名的开头一个或几个字母后按下键,Shell会在相应目录里进行匹配,自动补齐命令、目录名或文件名。 在命令、目录名或文件名很长或难以记忆时,自动补齐功能会很有用。 还可以通过按或键来显示执行过的命令,这在重复执行某些命令时会给用户带来很大的便利。,Linux系统挂载
42、U盘和硬盘光驱的问题,Linux挂载U盘: 1、插入u盘到计算机,如果目前只插入了一个u盘而且你的硬盘不是scsi的硬盘接口的话,那它的硬件名称为:sda1。 2、在mnt目录下先建立一个usb的目录(如:rootlocalhost root# mkdir /mnt/usb),Linux系统挂载U盘,4、卸载U盘:umount /mnt/usb 5、删除usb目录:rm -rf /mnt/usb 在实际中操作中,直接加挂一个windows的分区,中文的文件名和目录名会出现乱码,为了避免这种情况可以指定字符集,命令如下: mount -t vfat /dev/sdb1 /mnt/usb -o c
43、odepage=936,iocharset=cp936 注意:cp936是指简体中文,cp950是指繁体中文。,Linux系统挂载U盘和硬盘光驱的问题,Linux系统挂载硬盘的问题,1.加挂FAT32文件系统 A.最简单的用法 mount /dev/hda6 /mnt/wine /dev/hda6是Windows的E盘,/mnt/wine是目录加挂点。Linux会识别到/dev/hda6分区的文件系统类型是什么,然后加挂的。 B.当然也可以指定分区的文件系统类型,命令如下: mount -t vfat /dev/hda6 /mnt/wine 卸载所挂的硬盘 umount /mnt/wine 删
44、除所挂的硬盘 rm -rf /mnt/wine,2.加挂NTFS文件系统,在目前多数的Linux版本上,需要重编译Linux核心才能,加挂NTFS分区(编译方法请参阅其它文章)。核心支持NTFS后,可以用以下命令加挂: mount -t ntfs /dev/hda2 /mnt/c,2.加挂NTFS文件系统,同样对于中文的文件名和目录名会出现乱码的问题可以指定字符集,不过和加挂vfat分区不同,实际中用以下命令是可行的: mount -t ntfs -o iocharset=cp936 /dev/hda2 /mnt/c -r mount -t ntfs -o iocharset=cp936,rw
45、 /dev/hda2 /mnt/c 注意:cp936是指简体中文,cp950是指繁体中文。 卸载删除同上!,三.Linux自动挂载硬盘,打开/etc找到里面的fstab文件进行编辑,如果你是以管理员身份登入的话,可以直接右键-打开方式-gedit,可以直接在后面追加行: /dev/hda6 /mnt/wine vfat codepage=936,iocharset=cp936,defaults,umask=000 /dev/hda5 /mnt/wind vfat codepage=936,iocharset=cp93600,四.Linux挂载光驱:,命令:mount -t iso9660 /d
46、ev/hdc /mnt/cdrom 卸载删除同上!,虚拟机下挂载U盘,1.需要让你的虚拟机Guest OS(Linux)能自动识别U盘。方法如下: 保持焦点在Linux上,插入U盘,这时宿主操作系统Windows会弹出“找到新设备的提示”,然后一步一步的点下一步,结束以后 就可以在linux使用fdisk -l /dev/sdb命令查看到/dev/sdb1。 sdb1为我们加载的U盘,虚拟机下挂载U盘,在虚拟机识别出USB之后,用 fdisk -l /dev/sdb 或 fdisk -l /dev/hdb 查看,会看到U盘被识别为sdb1,使用mount命令挂载即可,先在/mnt建一个新的文件
47、夹,例如usb 后面的方法和前面一样 mount -t vfat /dev/sdb1 /mnt/usb,1.4.3 Linux的常用命令,在介绍Linux常用命令前,先简单介绍一下Linux的文件和目录结构。 大多数的操作系统都有文件的概念,Linux也不例外,文件是一组被命名的存储在某种介质(如硬盘,光盘,U盘)上的信息的集合。 在Linux中,文件是一个非常重要的概念,除了硬盘上存储的文件外,Linux还把显示器、键盘、打印机等输入输出设备以及网络接口都当作文件来处理。,1.4.3 Linux的常用命令,文件名是文件的标识,它是一个可以包含字母、数字、下划线和句点的字符串。 Linux要求
48、文件名的长度一般不能超过255个字符。句点后面的部分被称为扩展名,扩展名可以用来对文件进行分类,如C语言的源程序通常以.c作为扩展名。,1.4.3 Linux的常用命令,通常系统中有大量的文件,Linux系统以目录的方式来组织和管理系统中所有的文件。 目录在Windows操作系统中被称为文件夹。 目录是一种特殊的文件,用来管理和组织系统内大量的文件。 目录文件中的内容是存储在该目录下的文件的一些信息,如文件名、文件大小等。,1.4.3 Linux的常用命令,Linux系统采用树型目录结构来组织和管理系统中所有的文件。 以根目录“/”为起点,根目录下有许多文件和子目录,子目录下又有许多文件和子子
49、目录,一个典型的Linux系统树型目录结构如图1-31所示。 根目录下有一系列的子目录,home目录下有3个子目录,tyq下有一个文件和一个目录。,Linux系统采用树型目录结构,Linux系统采用树型目录结构,在树型目录结构中,文件和目录都通过路径来表示。 路径有两种表示方法:一种是从根目录开始,称为绝对路径;一种是从当前目录开始,称为相对路径。 如为了标识test.c这个文件,可以用绝对路径/home/tyq/test.c来表示; 如果当前目录位于home下,则可以用tyq/test.c来标识。,Linux系统采用树型目录结构,当登录到Linux或打开一个终端时,会进入一个特殊的目录,称为主目录。 比如root用户登录到系统中时,系统默认进入/root目录,/root目录就是root用户的主目录。 主目录可以用“”来表示。,Linux系统采用树型目录结构,当前目录就是用户当前所处的目录,用户在操作时可以改变当前目录,初始情况下主目录就是当前目录。 当前目录可以用“”来表示 当前目录的父目录可以用“”来表示。 如当前目录处于home下,也可以用相对路径./tyq/test.c来表示test.c文件,这里“.”即表示“/home”。,