1、第二章 构建Linux编程环境2.1 LINUX编程环境概述2.2 基本名词术语与硬件需求2.3 LINUX系统的多元化安装2.4 LINUX下软件的安装与卸载2.5 XSHELL的安装与使用2.6 代码阅读工具SOURCE INSIGHT2.7 实战技巧 VMWARE TOOLS的安装与文件夹共享11/10/202211/10/202212.1 Linux编程环境概述WindowsWindows可视化编程的典雅与可视化编程的典雅与UNIXUNIX的高深诡异造就了程序的高深诡异造就了程序员行列的形形色色与多姿多彩。员行列的形形色色与多姿多彩。LinuxLinux作为作为UNIXUNIX系列的精
2、锐部队,有后来者居上的风范,系列的精锐部队,有后来者居上的风范,在应用中以其精湛的身手独占了定制系统、服务器与在应用中以其精湛的身手独占了定制系统、服务器与嵌入式系统的诸多份额。嵌入式系统的诸多份额。LinuxLinux的编程环境在于的编程环境在于linuxlinux的存在模式,编程环境多元的存在模式,编程环境多元化构建的主要任务是化构建的主要任务是linuxlinux安装或存在形式的多元化。安装或存在形式的多元化。大类划分为三种,一是直接安装大类划分为三种,一是直接安装linuxlinux系统并选择需要系统并选择需要的编程工具,二是的编程工具,二是VMware+VMware+linuxlin
3、ux或其它虚拟机或其它虚拟机+linuxlinux并选合适的工具,三是安装模拟系统并选合适的工具,三是安装模拟系统cygwincygwin等。等。2.1.1 2.1.1 编程环境的风格编程环境的风格11/10/202211/10/20222 LinuxLinux程序设计有别于程序设计有别于windowswindows编程。首先,编程。首先,linuxlinux是多任是多任务系统,可同时创建多个进程或线程,同一个用户或不同务系统,可同时创建多个进程或线程,同一个用户或不同用户可以运行该程序的其他实例用户可以运行该程序的其他实例,必须小心对待同步问题。必须小心对待同步问题。其次,其次,linuxl
4、inux是真正的多用户系统,存在某种安全机制。是真正的多用户系统,存在某种安全机制。用户程序不能像在其他操作系统中那样,可以修改或移动用户程序不能像在其他操作系统中那样,可以修改或移动任何文件,除非其用户权限是任何文件,除非其用户权限是rootroot级别。第三,级别。第三,linuxlinux是是分时系统。用户可以用分时系统。用户可以用telnettelnet或或X X技术远程登录系统。技术远程登录系统。在在linuxlinux系统中,提供了非常实用的编程工具,包括:编系统中,提供了非常实用的编程工具,包括:编辑工具辑工具vivi,joejoe、emacsemacs、neditnedit、k
5、editkedit等,编译工具等,编译工具automakeautomake、gccgcc、perlperl、pythonpython等,调试工具等,调试工具gdbgdb等,等,X X软软件开发工具,内核开发工具,件开发工具,内核开发工具,GNOMEGNOME软件开发和图形化应软件开发和图形化应用程序,用程序,KDEKDE软件开发的软件开发的QTQT和和KDEKDE图形化应用程序等。图形化应用程序等。2.1.2 Linux下的编程环境与工具下的编程环境与工具11/10/202211/10/202231.Shell1.Shell编程。与编写编程。与编写.BAT.BAT文件类似。但功能更强大,效率更
6、高。文件类似。但功能更强大,效率更高。2.WEB2.WEB编程。编程。linuxlinux系统拥有最好最普及的系统拥有最好最普及的WEBWEB服务器服务器ApacheApache和优秀的和优秀的PHPPHP脚本语言,因而脚本语言,因而WEBWEB编程很有编程很有“钱途钱途”,包括,包括PHPPHP、JSPJSP、PerlPerl开发。开发。3.3.普通程序开发。在普通程序开发。在linuxlinux系统中,用系统中,用C/C+C/C+语言开发出高效的、高可语言开发出高效的、高可移植性的应用程序来。移植性的应用程序来。4.4.用户交互式程序开发。用户交互式程序开发。LinuxLinux系统中可用
7、系统中可用ncursorncursor库实现字符界面下库实现字符界面下的用户交互式程序。的用户交互式程序。5.X-Win5.X-Win编程。图形系统开发,编程。图形系统开发,MOTIFMOTIF、QTQT与与KDEKDE函数库可助一臂之力。函数库可助一臂之力。2.1.3 Linux下的编程分类下的编程分类11/10/202211/10/20224Linux系统提供简单快捷的帮助。有系统提供简单快捷的帮助。有-help、man和和info等。等。“-help”是一个工具选项,大部分是一个工具选项,大部分GNU工具都有这个选项,工具都有这个选项,用来显示少许工具的信息,在命令行中键入:用来显示少许
8、工具的信息,在命令行中键入:$fdisk-help则会显示如图则会显示如图2.1的帮助信息。的帮助信息。$man fdisk 2.1.4 Linux帮助应用指南帮助应用指南11/10/202211/10/20225Info工具是一个基于菜单的超文本系统,由工具是一个基于菜单的超文本系统,由GNU项目开发并项目开发并由由linux发布。发布。info工具包括少许关于工具包括少许关于linux shell、工具、工具、GNU项目开发程序地说明文档。在命令行中键入:项目开发程序地说明文档。在命令行中键入:$info fdisk 11/10/202211/10/20226手册页共分八个部分可以使用可以
9、使用man命令查找。第命令查找。第1部分是部分是Shell命命令和用户级程序;第令和用户级程序;第2部分是系统调用相部分是系统调用相关文档;第关文档;第3部分是部分是C和和C+库函数和宏调库函数和宏调用相关文档;第用相关文档;第4部分是在内核模块、部分是在内核模块、/dev目录、目录、/proc等目录中的特殊文件和设备的等目录中的特殊文件和设备的相关文档;第相关文档;第5部分是系统的不同文件格部分是系统的不同文件格式;第式;第6部分是游戏相关文档;第部分是游戏相关文档;第7部分是部分是有关语言或小语言的文档;第有关语言或小语言的文档;第8部分是守部分是守护程序或者其他系统管理员命令的相关文护程
10、序或者其他系统管理员命令的相关文档。档。11/10/202211/10/202272.2 基本名词术语与硬件需求2.2.1 系统操作术语系统操作术语1命令命令Command2图形化桌面图形化桌面 3图形化用户界面图形化用户界面GUI(Graphical User Interface)4图标图标Icon 5说明书页说明书页Man page和信息页和信息页Info page。6面板面板Panel是桌面工具栏。是桌面工具栏。7根根Root。8RPM是是Red Hat软件包管理器(软件包管理器(Red Hat Package manager)9Shell 提示(提示(Shell prompt)10su
11、命令用于切换用户到根账号或系统上其它账号的访问命令用于切换用户到根账号或系统上其它账号的访问权。权。11X或或X窗口系统(窗口系统(X Window System)11/10/202211/10/202282.2.2 系统特性术语1文件系统、分区和挂载文件系统、分区和挂载2主分区、扩展分区和逻辑分区主分区、扩展分区和逻辑分区3交换分区交换分区SWAP 4分区格式分区格式5GRUB和和LILO6root用户和普通用户用户和普通用户7磁盘分区磁盘分区8Linux中的文件类型与文件属性中的文件类型与文件属性11/10/202211/10/202292.2.3 系统硬件需求与安装准备根据软件发布站点或
12、有关站点的说明,了解根据软件发布站点或有关站点的说明,了解linux的相关版本的相关版本对硬件的最低需求。一般来说,也可以直接安装,有问题对硬件的最低需求。一般来说,也可以直接安装,有问题时再上网查询症结之所在。时再上网查询症结之所在。安装安装linux系统对硬件要求很低,准备工作很简单。一是设置系统对硬件要求很低,准备工作很简单。一是设置从光驱启动,二是若从光驱启动,二是若linux安装盘无法自启动还要制作启动安装盘无法自启动还要制作启动盘,若用户选择主盘,若用户选择主/从安装,还要从安装,还要Vmware等虚拟软件。三等虚拟软件。三是在网上看看是在网上看看linux安装文档,基本熟悉安装过
13、程;四是保安装文档,基本熟悉安装过程;四是保证证linux系统的硬盘安装空间,一般为系统的硬盘安装空间,一般为5-8G以上为宜。最以上为宜。最后就是遇到问题要心平气和,上网查看有关的教程就可以后就是遇到问题要心平气和,上网查看有关的教程就可以迎刃而解了。当然,实际的磁盘空间是多多益善,可以存迎刃而解了。当然,实际的磁盘空间是多多益善,可以存储大量的多媒体文件供学习、工作和娱乐之用。储大量的多媒体文件供学习、工作和娱乐之用。11/10/202211/10/2022102.3 Linux系统的多元化安装搭建搭建linux开发环境有开发环境有3种方法:一是在种方法:一是在linux服务器上进行,将编
14、译链接好的镜像文件服务器上进行,将编译链接好的镜像文件传回到本地。二是在本地机上安装传回到本地。二是在本地机上安装linux系系统或多系统。三是在统或多系统。三是在windows上安装虚拟机,上安装虚拟机,再在虚拟机上安装再在虚拟机上安装linux系统。这里仅介绍系统。这里仅介绍裸机上的裸机上的linux安装过程,其它产品安装请安装过程,其它产品安装请参考本书的参考本书的10.1节。节。11/10/202211/10/2022112.3.1 裸机上的安装与卸载过程不同不同linux发行版的安装方法有所不同,但一般都要谱写以下的六部曲发行版的安装方法有所不同,但一般都要谱写以下的六部曲:第一曲:
15、进行基本设置,如安装语言和键盘。第一曲:进行基本设置,如安装语言和键盘。第二曲:进行硬盘分区与格式化。根据图解提示就可以顺利完成。第二曲:进行硬盘分区与格式化。根据图解提示就可以顺利完成。第三曲:选择要安装的软件包。建议初级用户选择全部安装。第三曲:选择要安装的软件包。建议初级用户选择全部安装。第四曲:设备配置。如打印机、网卡、显卡等,可根据实际情况选择。第四曲:设备配置。如打印机、网卡、显卡等,可根据实际情况选择。第五曲:安装第五曲:安装LILO。建议装在主引导扇区,使用。建议装在主引导扇区,使用LILO完成多系统引导。完成多系统引导。第六曲:为第六曲:为linux的超级用户的超级用户roo
16、t设置密码。设置密码。11/10/202211/10/202212以Red Hat 9光盘启动为例说明安装过程图解1准备工作准备工作购买购买Redhat9安装盘或下载、拷贝镜像文件。安装盘或下载、拷贝镜像文件。在硬盘中至少预留在硬盘中至少预留2个分区给系统安装用,个分区给系统安装用,挂载点分区推荐挂载点分区推荐4G以上,文件系统格式不以上,文件系统格式不限,安装时可重新格式化。记录网络设置限,安装时可重新格式化。记录网络设置用用IP地址、子网掩码、默认网关和地址、子网掩码、默认网关和DNS服服务器地址等信息。务器地址等信息。11/10/202211/10/2022132过程解析与图示过程解析与
17、图示将光驱设为第一启动盘,放入第一张安装盘,将光驱设为第一启动盘,放入第一张安装盘,重启电脑,将会出现图重启电脑,将会出现图2.5界面。如果没有界面。如果没有这个界面,则修改这个界面,则修改CMOS设置,直到出现设置,直到出现这个界面才算成功。这个界面才算成功。11/10/202211/10/20221411/10/202211/10/20221511/10/202211/10/20221611/10/202211/10/20221711/10/202211/10/20221811/10/202211/10/20221911/10/202211/10/20222011/10/202211/10
18、/20222111/10/202211/10/20222211/10/202211/10/20222311/10/202211/10/2022242.3.2 多系统共享的安装过程1把硬盘分为五个主分区把硬盘分为五个主分区2先安装先安装win7到第一个到第一个30G的分区,再安装的分区,再安装XP到到D盘。盘。3进入进入XP把隐藏文件显示出来。把把隐藏文件显示出来。把C盘根目录下的单个文件复制到盘根目录下的单个文件复制到D盘。盘。4在光驱中放入在光驱中放入win7安装盘。安装盘。5接下来下载接下来下载ubuntu的的iso文件,刻成光盘,用光盘引导安装,用手动文件,刻成光盘,用光盘引导安装,用手
19、动分区,把分区,把ubuntu Linux安装在安装在10G的的ext3区。区。6引导装载程序配置,默认将系统引导信息写到硬盘主引导扇区,可通引导装载程序配置,默认将系统引导信息写到硬盘主引导扇区,可通过点击右上角的过点击右上角的“改变引导装载程序改变引导装载程序”按钮进行设置。按钮进行设置。7挂载点选根分区挂载点选根分区“/”即可,当前文件系统类型即可,当前文件系统类型vfat,linux并不能直并不能直接支持,因些选中接支持,因些选中“将分区格式化成将分区格式化成”并在框内选并在框内选“ext3”或或“ext2”,建议选,建议选“ext3”。11/10/202211/10/2022252.
20、3.3 在Windows下VMware中的Linux的安装过程11/10/202211/10/20222611/10/202211/10/2022272.3.4 用cygwin软件创建Linux仿真环境11/10/202211/10/202228安装过程如下第一步:下载文件,点安装文件(第一步:下载文件,点安装文件(setup.exe)进行安装。)进行安装。第二步:安装模式有第二步:安装模式有“Install from Internet、Download form Internet、Install from Local Directory”三种。选三种。选择择“Download form In
21、ternet”。第三步:选择安装目的路径和安装源文件所在的路径。第三步:选择安装目的路径和安装源文件所在的路径。建议在建议在All后面的后面的Default上点上点Install,全部安装,以免后患。,全部安装,以免后患。第四步:点下一步,安装成功并自动在用户桌面上建立一个第四步:点下一步,安装成功并自动在用户桌面上建立一个快捷方式。快捷方式。双击双击cygwin的快捷方式进入系统。的快捷方式进入系统。11/10/202211/10/2022292.3.5即时系统Ubuntu Linux和WinPEUbuntu 8.04 LTS桌面版桌面版CD是一张是一张LiveCD。LiveCD就是用户不必
22、安装可以直接运行光就是用户不必安装可以直接运行光盘中的系统,而且是图形界面的操作系统。盘中的系统,而且是图形界面的操作系统。现在的现在的windows组合安装盘里,通常也有一款组合安装盘里,通常也有一款WinPE即即Windows预安装环境预安装环境Windows Preinstallation Environment,这是基于保护这是基于保护模式下运行的模式下运行的Windows XP个人版内核,只个人版内核,只拥有较少但非常核心服务的拥有较少但非常核心服务的Win32子系统。子系统。11/10/202211/10/20223011/10/202211/10/2022312.4 Linux下
23、软件的安装与卸载Linux的软件安装和的软件安装和Windows不一样,很多初不一样,很多初学者都抱怨学者都抱怨linux下的软件安装和卸载比较下的软件安装和卸载比较困难,没有困难,没有Windows下的直观便捷。其实下的直观便捷。其实在在linux下安装和卸载软件也非常简单,同下安装和卸载软件也非常简单,同样也有安装向导或解压安装方式,不同的样也有安装向导或解压安装方式,不同的只是除了二进制形式的软件分发外,还有只是除了二进制形式的软件分发外,还有许多以源码形式分发的软件包,下面具体许多以源码形式分发的软件包,下面具体介绍这些软件的安装与卸载。介绍这些软件的安装与卸载。11/10/20221
24、1/10/2022322.4.1 二进制分发软件包的安装与卸载Linux软件的二进制分发是指事先已编译好二进制软件的二进制分发是指事先已编译好二进制形式的软件包的发布形式,其优点是安装使用容形式的软件包的发布形式,其优点是安装使用容易,缺点是缺乏灵活性。如果该软件包是为特定易,缺点是缺乏灵活性。如果该软件包是为特定硬件和操作系统平台编译的,那就不能在另外平硬件和操作系统平台编译的,那就不能在另外平台或环境下正确运行。台或环境下正确运行。1*.rpm形式的二进制软件包形式的二进制软件包 3提供安装程序的软件包提供安装程序的软件包 2*.tar.gz/*.tgz/*.bz2形式的二进制软件包形式的
25、二进制软件包 11/10/202211/10/2022332.4.2软件包的安装与卸载Linux软件的源代码分发是指提供了该软件所软件的源代码分发是指提供了该软件所有程序源码的发布形式,需要用户自己编有程序源码的发布形式,需要用户自己编译成可执行的二进制代码并进行安装,优译成可执行的二进制代码并进行安装,优点是配置灵活,可以随意去掉或保留某些点是配置灵活,可以随意去掉或保留某些功能模块,适应多种硬件功能模块,适应多种硬件/操作系统平台及操作系统平台及编译环境,缺点是难度大,不太适合初学编译环境,缺点是难度大,不太适合初学者使用。者使用。1*.src.rpm形式的源代码软件包形式的源代码软件包
26、2*.tar.gz/*.tgz、*.bz2形式的源代码软件包形式的源代码软件包 11/10/202211/10/2022342.5 Xshell的安装与使用在进行在进行linux编程时,通常需要安装编程时,通常需要安装linux系统。系统。为简便起见,可以通过为简便起见,可以通过Xshell在在windows中中登录正在运行的登录正在运行的linux系统。系统。Xshell是强大的是强大的安全终端模拟软件,支持安全终端模拟软件,支持SSH1,SSH2,以及以及Windows平台的平台的TELNET协议。协议。11/10/202211/10/2022352.6 代码阅读工具Source Insi
27、ghtSource Insight是面向项目开发的程序编辑器和代码是面向项目开发的程序编辑器和代码浏览器,拥有内置的对浏览器,拥有内置的对C/C+,C#和和Java等的分析等的分析功能。是强大的程序编辑器,显示功能。是强大的程序编辑器,显示reference trees,class inheritance diagrams和和call trees,提供最快,提供最快速的源码导航和任何程序编辑器的源信息。高明速的源码导航和任何程序编辑器的源信息。高明之处在于之处在于Source Insight能在读者编辑同时分析源能在读者编辑同时分析源代码,提供实用信息并即时在线分析。具体用法代码,提供实用信息
28、并即时在线分析。具体用法这里略为介绍,要想学以致用,请参考网上文档。这里略为介绍,要想学以致用,请参考网上文档。首先查找、下载和安装,然后再熟悉这款功能强首先查找、下载和安装,然后再熟悉这款功能强大的软件。大的软件。11/10/202211/10/20223611/10/202211/10/2022372.7 实战技巧 VMware tools的安装与多平台下的文件夹共享1.启动启动Rad Hat 9.0(图形界面方式登录图形界面方式登录),并以管理员的身份登录。,并以管理员的身份登录。2.在在VMware虚拟机的菜单中点击:虚拟机虚拟机的菜单中点击:虚拟机-安装安装VMware 工具工具-i
29、nstall。3.Red Hat 9.0自动挂载自动挂载VMware Tools的虚拟光驱的虚拟光驱,并显示在桌面上。并显示在桌面上。4.进入进入VMware Tools虚拟光驱,把虚拟光驱,把VMwareTools-6.0.0-45731.tar.gz复制复制到到/tmp。5.进入进入/tmp目录,在目录,在VMwareTools-6.0.0-45731.tar.gz文件上点右键,选文件上点右键,选择择“解压到这里解压到这里”,则在,则在/tmp下出现下出现vmware-tools-distrib文件夹。文件夹。6.打开打开linux的一个终端或按住的一个终端或按住Ctrl+Alt+F1,进
30、入字符界面,以,进入字符界面,以root身份身份登录。登录。7.进入进入vmware-tools-distrib目录。目录。8.输入输入#./vmware-install.pl(*执行执行vmware-install.pl文件)。文件)。9.然后一路然后一路“回车回车”,就,就OK了。了。10.输入输入reboot命令命令(重新启动重新启动),则这个工具,则这个工具tools就起作用了。就起作用了。11/10/202211/10/2022382.7.2 多平台下的文件夹共享共享文件夹的设置方法很多,这里介绍两个,共享文件夹的设置方法很多,这里介绍两个,一是通过一是通过linux中的中的Samb
31、a客户机的应用,客户机的应用,二是安装二是安装VMware Tools后通过简单设置来后通过简单设置来实现。实现。Linux主菜单的主菜单的“系统设置系统设置”里选里选“添加添加/删删除程序除程序”,在选项卡的,在选项卡的“管理工具管理工具”细节细节里,选如图里,选如图2.54所示的所示的samba-client Samba(SMB)客户程序。客户程序。11/10/202211/10/202239接下来,输入命令来共享接下来,输入命令来共享windowswindows文档里的共享文件夹。命文档里的共享文件夹。命令行为:令行为:#mount-t#mount-t smbfssmbfs-o user
32、name=user,-o username=user,password=password=mytest,ipmytest,ip=192.168.X.X/hostname/=192.168.X.X/hostname/mytestmytest /mnt/smb/mytestmnt/smb/mytest11/10/202211/10/202240root localhost root#cp VMwareTools-6.0.0-45731.tar.gz /homeroot localhost root#tar-zxvf VMwareTools-x.x.x-x.tar.gzroot localhost
33、root#cd vmware-tools-distribroot localhost root#./vmware-install.pl11/10/202211/10/202241安装了安装了VMware Tools就可以在虚拟机中设置多系统间的共就可以在虚拟机中设置多系统间的共享文件夹。过程是:在虚拟机享文件夹。过程是:在虚拟机VM主菜单里选主菜单里选VM的设置的设置或或settings。在。在VirtualMachineSettings对话框里选对话框里选Options,在其左边选择框里选,在其左边选择框里选SharedFolders即即“共享文共享文件夹件夹”。在其右边框下面点。在其右边框
34、下面点“Add”按钮,出现按钮,出现“Welcome to the Add Shared Folder Wizard”欢迎画面。欢迎画面。再点再点Next出现出现“Name the Shared Folder”对话框,在上对话框,在上面一栏里给共享文件夹命名,在下面的空行里选择面一栏里给共享文件夹命名,在下面的空行里选择windows里的文件夹,可以点右侧的里的文件夹,可以点右侧的Browse指定一个文件指定一个文件夹。再点夹。再点“下一步下一步”出现出现“Specify Shared Folder Attributes”即指定共享文件夹属性对话框,一般选第一即指定共享文件夹属性对话框,一般选第一项。点项。点“完成完成”后,就可以到后,就可以到/mnt/hgfs文件夹中找到共享文件夹中找到共享文件夹了。文件夹了。11/10/202211/10/20224243Thank you.See you next lesson.11/10/202211/10/202243