1、Linux全册精品完整课件全册精品完整课件 第一章第一章 Android简介与简介与Linux虚拟机虚拟机 本章目标 学习目标学习目标 一、手机操作系统以及Android起源和发 展 二、Linux虚拟机的安装与使用 一、手机操作系统概述 手机操作系统介绍手机操作系统介绍 手机操作系统 代表产品 Symbian 诺基亚 N97 诺基亚 5800XM Windows Mobile Windows Phone Acer M900 诺基亚lumia 1520 BlackBerry OS 黑莓Z10 IOS iphone 4 iphone 5s Android 三星 Note2 其他:Brew、Mee
2、Go、Firefox OS、阿里云OS、HP WebOS 开放手机联盟 开放手机联盟(OHA) Open Handset Alliance 联盟目标:降低开发推广成本,建立移动领域新 的合作环境,促进新设备开发,改善移动平台用 户体验 成员 举例:谷歌、中国移动、intel、Nvidia、高通、htc、 motolola、三星、LG等等。 Android大事记 2007年11月5日开放手机联盟成立 2007年11月12日谷歌发布Android SDK预览版 2008年8月28日谷歌开通Android Market 2008年9月23日发布SDK v1.0 2008年10月21日谷歌开放Andr
3、oid平台源代码 2008年10月22日第一款Android手机G1美国上市 2009年2月Android SDK v1.1发布 2009年2月17日G2发售 2009年4月15日SDK v1.5发布 2009年6月宏达电发布第三款Android手机HTC Hero Linux内核特性 Android为何选择Linux内核: 1、强大的内存管理和进程管理方案 2、基于权限的安全模式 3、支持共享库 4、经过认证的驱动模型 5、Linux本身就是开源项目 等等 Android特征 提供统一的硬件访问API,简化硬件访问过程 具有自己的运行时和虚拟机 提供丰富界面控件。加快用户界面开发速度,保证A
4、ndroid平台上程序 界面一致性 提供轻量级进程间通信机制,使跨进程组件通信和系统级广播成为可 能 提供Service作为无用户界面,长时间后台运行的组件 高效、快速的数据存储方式 联系联系 Android基于Linux内核 区别区别 1.它没有本地窗口系统它没有本地窗口系统 什么是本地窗口系统呢?本地窗口系统是指GNU/Linux上的X窗口系统,或者Mac OS的 Quartz等。不同的操作系统的窗口系统可能不一样,Android并没有使用(也不需要使用 )Linux的X窗口系统,这是Android有别于Linux的一个基本原因。 2.它没有它没有glibc支持支持 由于Android最初
5、用于一些便携的移动设备上,所以,可能出于效率等方面的考虑, Android并没有采用glibc作为C库,而是Google自己开发了一套Bionic Libc来代替glibc。 3.它并不包括一整套标准的它并不包括一整套标准的Linux使用程序使用程序 Android并没有完全照搬Liunx系统的内核,除了修正部分Liunx的Bug之外,还增加了不 少内容,比如:它基于ARM构架增加的Gold-Fish平台,以及yaffs2 FLASH文件系统等。 4.Android专有的驱动程序专有的驱动程序 除了上面这些不同点之外,Android还对Linux设备驱动进行了增强,主要有: Android B
6、inder、Android电源管理(PM)、低内存管理器(Low Memory Killer)、匿名共享 内存(Ashmem)、Android PMEM(Physical)、Android Logger、Yaffs2 文件系统等等。 Android和Linux 二、Linux简介: 1、Unix起源 1969年:Ken Thompson 在AT 绿:可执行文件; 红:压缩文件; 浅蓝:链接文件; 灰:其他文件; 红底白字:错误的链接文件 常用命令 Linux命令很多,参数繁多。 本章只介绍一些常用的操作 常用命令 常用命令: ls、cd、cp、mv、mkdir、rm groupadd、user
7、add、passwd、userdel pwd、uname、tar、mount、umount cd:改变当前工作路径(windows-cd) 指令格式: “”:表示跳到用户的home目录 “.”:表示当前所在目录 “.”:表示上一层目录 常用命令介绍 思考:当前目录在asd,怎么把当前目录 改到usr下的local? / /binbin/ /usrusr/ /homehome/ /mntmnt/ /etcetc/ /devdev / /asdasd/ /usrusr/ /locallocal/ /binbin / / 当前目录目标目录 相对路径和绝对路径 如果一个路径的第一个字符是 /,那么这个
8、 路径就是绝对路径绝对路径,否则,它就是相对路相对路 径径。 绝对路径绝对路径从 /(指代根)开始,然后循序到 你所需的目录;相对路径相对路径从你的当前目录 开始,你的当前目录可以是任何地方。下 图显示了 cd 的运行方式。 相对和绝对路径 举例:cd ././usr/local 1、./返回上一目录 2、然后,再向上移动到该目录的父目录中去(根目录或 / 目录); 3、再次,向下移动到 usr 目录中; 4、最后,移到 local 目录中; 如果用绝对路径,应该怎么做? cd /usr/local 常用命令介绍 / /directory1 /directory1/directory2 /di
9、rectory1/directory2/directory3 如果你当前是在 directory3 之下,你想转换到 directory1 /执行命令 cd directory1 当你还在 directory3 目录中,这个命令会给你一个错误 消息,向你说明该目录不存在。这是因为在 directory3 之下并没有 directory1 目录。 要向上移到 directory1 执行命令: cd /directory1 这是一个绝对路径的例子。它告诉 Linux 从目录树的顶端(/)开始向下一直转换 到 directory1 为止。 使用绝对路径会允许你转换到从 / 目录开始的目录中,它要求你
10、 知道完整的路径。使用相对路径允许你转换到相对于你目前所在 的目录的目录中。如果你要改换到你的当前目录下的子目录中, 使用相对路径就会很方便。 相对路径和绝对路径 常用指令 ls:列举指定目录下的子目录和文件(Windows-dir) 指令格式: ls -arltrx name -a:显示所有文件及目录 -r:逆序排列内容 -l:列举文件的权限、大小等详细资料(补充用户权限) -t:将文件按建立的时间逆序列出 -R:以递归的方式列举一个目录及其子目录中的所有文件(不 包括隐藏文件) 举例:ls lr /usr/local 常用命令介绍 cp:复制指定文件到另一文件或目录 指令格式: cp -a
11、brifLP source dest -a:尽可能的将文件的属性、权限的内容都照 原状复制 -b:如果目的文件存在,就创造一个备份 -r:若源中有子目录,则将子目录下的文件及 目录亦全部复制至目的地 常用命令介绍 -i:若目的地有重复的文件,询问是否覆盖 -f:若目的地有重复的文件,则覆盖原有文件 -L:复制符号链接,自动修改读好链接以保证 链接有效 -P:与-L类似,但不对符号链接做修改,可能 导会导致链接无效 举例: cp test.sxw /usr/ test1.sxw; cp ri /test /usr/test1 mv:移动指定文件或目录至另一文件或目录 命令格式: -b:如果目的文
12、件存在,就创造一个备份 -i:若目的地有重复文件,询问是否覆盖 -f:若目的地有重复的文件,则覆盖原有文件 举例:mv test.sxw test1.sxw mv i test1.sxw /usr mkdir:创建目录 命令格式: Mkdir: -p dirname -p:递归建立目录和子目录 举例:mkdir test /在当前路径下建立新目录 常用命令介绍 rm:删除文件和目录 指令格式: Rm -ifr name -r:删除目录及子目录 -i:删除前逐一询问确认 -f:不询问直接删除 举例:rm test 常用命令介绍 Gzip/gunzip:压缩和解压缩 命令格式: Gzip 19 t
13、rv file Gunzip file -1:表示压缩速度最快,压缩比最低。 -9:表示压缩速度最慢。压缩比最高 -t:表示校验压缩文件的完整性 -r:表示压缩时包含子目录中的内容 -v:表示压缩时显示正在压缩的文件名和压缩比等资料 举例:gzip -5v test.sxw gunzip test.sxw.gz 常用命令介绍 tar:备份文件和目录 命令格式: tar -Acdrtxfjzv -delete tarfile souce -A:表示将文件添加到现有的tar包里 -c:表示创建新的tar包 -d:比较tar包中的存档和当前文件的不同 -r:附加到tar包的末尾 -t:列出tar包的
14、内容 常用命令介绍 -x:从tar包展开文件,即解压 -f:指定tar文件的名称 -j:使用bzip2/bunzip2来压缩和解压tar包, 后缀为.tar.bz2 -z:使用gzip/gunzip来压缩和解压tar包,后 缀为.tar.gz -v:显示正在处理的文件名称 常用命令介绍 tar示例 tar -cvf text.tar text:创建一个备份档案 tar -tvf text.tar:查看一个备份档案内容列 表 tar -xvf text.tar:从备份档案中提取文件 tar -zcvf text.tar.gz text:备份档案并压缩 tar -zxvf text.tar.gz:
15、从压缩包中提取文件 VMware Tools 安装 图一 VMware Tools安装 图二 VMware Tools安装 图三 VMware Tools安装 图四 VMware Tools安装 图五 VMware Tools安装 U盘使用 Linux下U盘使用 1、执行fdisk l /检查磁盘分区 2、mkdir /mnt/usb /创建一个usb目录 3、mount /dev/sdb1 /mnt/usb /挂载U盘 4、umount /mnt/usb LINUX的目录结构 Linux文件类型(字符表示) -:普通文件 d:目录文件 l:链接文件 b:块设备文件 c:字符设备文件 p:管道
16、文件 Linux用户类别 root:这是系统特权用户类,他们都有访问 root登录帐号的权限 owner:这是实际拥有文件的用户。 group:这是共享文件的组访问权的用户类 的用户组名称 world:这是不属于上面3类的所有其他用户。 Linux文件权限位 文件权限位的表示:-rwxrwxrwx 第一位表示文件的类型,表示普通文件, d表示目录文件,l表示符号链接文件; 接下来三位表示owner用户的读,写,执行 权限 紧接着三位表示group用户的读,写,执行 权限 最后三位表示world用户的读,写,执行权 限 注意:这些权限只针对文件内容,而非文件本身属性 组的创建与用户的创建 创建组
17、 groupadd groupname 创建用户并设置默认组 useradd -G groupname username 向组添加删除用户 gpasswd -a username groupname gpasswd -d username groupname 给组设置密码 gpasswd groupname 设置用户密码 passwd username /etc/group文件 group文件格式: groupname:password:gid:user_list groupname:组名称 password:组密码 gid:组识别号 user_list:该组用户清单 /etc/passwd文
18、件格式 帐号名称:登陆的用户名 密码:MD5加密的密码 UID:用户ID号.0是管理员帐号,1499保留系统使 用.50065535给一般使用者 GID:用户所属组ID号 使用者信息说明栏 家目录:用户默认所在home目录 Shell名称 Linux文件权限位 文件权限位的表示:-rwxrwxrwx 第一位表示文件的类型,表示普通文件, d表示目录文件,l表示符号链接文件; 接下来三位表示owner用户的读,写,执行 权限 紧接着三位表示group用户的读,写,执行 权限 最后三位表示world用户的读,写,执行权 限 注意:这些权限只针对文件内容,而非文件本身属性 Linux文件权限管理 规
19、划用户以及用户所属的组 设置文件所属的用户以及所属的组(chown, chgrp) 给文件赋予相应的权限位(chmod) chmod chmod命令格式为: chmod option mode files. modemode表示格式:表示格式: 1 1、数字方式:、数字方式:nnn r=4 w=2 x=1nnn r=4 w=2 x=1 rwx:4+2+1; rrwx:4+2+1; r- -x:4+1; rwx:4+1; rw- -:4+2:4+2 2 2、文本方式:、文本方式:ugoaugoa+ - - =rwx=rwx u - 该档案的拥有者; g - 与该档案的拥有者属于同一个群体(gro
20、up)者; o - 其他以外的人;a-所有 + - 增加权限 - - 去掉权限 = - 设定权限 chmod例子() 给text文件赋予rwxr-xr-x权限: chmod 755 text 给text及其子目录底下所有文件赋予rwxr- xr-x权限: chmod -R 755 text chmod例子(2) 为文件abc的组拥有者增加rw权限 chmod g+rw abc 为abc文件的用户拥有者去除x权限 chmod u-x abc 指定文件abc的其他用户权限为rw- chmod o=rw- 为文件abc及其子目录底下的所有文件的全 体用户增加x权限 chmod -R a+x abc
21、chgrp chgrp用来更改文件的组拥有者,其一般格式 为: chgrp option group file 把文件abc的组拥有者改为study: chgrp study abc 把abc及其子目录下的所有文件的组拥有者 改为study: chgrp -R study abc chown chown用来更改文件所有者与组拥有者,其 一般格式为: chown option owner:group file 将abc及其子目录下的所有文件的所有者改 为jjl: chown jjl abc 将abc文件的所有者改为jjl,组拥有者改为 study: chown jjl:study abc 目录的
22、权限 目录的内容认为是文件,如果目录是没有w 权限,则不能该目录下进行增删文件操作 第三章第三章 Linux下网络配置和下网络配置和FTP 本章目标 本章目标 了解VMware三种网络模式含义及区别 掌握桥接模式下网络配置 网络连接类型 网络连接类型: 虚拟网卡 安装了VMware虚拟机后,会在网络连接对 话框中多出两个虚拟网卡 : 虚拟设备介绍 虚拟设备介绍: VMnet0:用于虚拟桥接网络下的虚拟交换机 VMnet1:用于虚拟Host-Only网络下的虚拟交换 机 VMnet8:用于虚拟NAT网络下的虚拟交换机 VMware Network Adepter VMnet1:Host用于 与H
23、ost-Only虚拟网络进行通信的虚拟网卡 VMware Network Adepter VMnet8:Host用于 与NAT虚拟网络进行通信的虚拟网卡 桥接模式 一、桥接模式 VMWare虚拟出来的操作系统就像是局域网中的 一台独立的主机,它可以访问网内任何一台机器。 在bridged模式下,你需要手工为虚拟系统配置IP 地址、子网掩码,而且还要和宿主机器处于同一 网段,这样虚拟系统才能和宿主机器进行通信。 同时,由于这个虚拟系统是局域网中的一个独立 的主机系统,那么就可以手工配置它的TCP/IP配 置信息,以实现通过局域网的网关或路由器访问 互联网。 桥接模式 桥接模式图示: NAT网络模
24、式 二、NAT网络模式 NAT模式,就是让虚拟系统借助NAT(网络地址转 换)功能,通过宿主机器所在的网络来访问公网也 就是说,使用NAT模式可以实现在虚拟系统里访 问互 联网。NAT模式下的虚拟系统的TCP/IP配置 信息是由VMnet8(NAT)虚拟网络的DHCP服务器 提供的.采用NAT模式最大的优势是虚拟系统接入 互联网非常简单,你不需要进行任何其他的配置, 只需要宿主机器能访问互联网即可。 如果你想利用VMware安装一个新的虚拟系统, 在虚拟系统中不用进行任何手工配置就能直接访 问互联网,建议你采用NAT模式。 NAT网络模式 NAT网络模式图示: Host-only模式 三、Ho
25、st-only模式: 在某些特殊的网络调试环境中,要求将真实环境 和虚拟环境隔离开,这时你就可采用Host-only模 式.在Host-only模式中,所有的虚拟系统是可以 相互通信的,但虚拟系统和真实的网络是被隔离 开的,可以利用Windows XP里面自带的Internet 连接共享(实际上是一个简单的路由NAT),来让 虚拟机 通过主机真实的网卡进行外网的访问。虚 拟系统的TCP/IP配置信息(如IP地址网关地址DNS 服务器等),都是由VMnet1(Host-only)虚拟 网络 的DHCP服务器来动态分配的 如果你想利用VMware创建一个与网内其他机器 相隔离的虚拟系统,进行某些特
26、殊的网络调试工 作,可以选择Host-only模式。 Host-only模式 Host-only模式图示: ifconfig命令 功能说明:功能说明: 用于查看和更改网络接口的地址和参数,包括IP地址、广播地址 、子网掩码,使用权限是超级用户。 格式:格式: Ifconfig interface options address 参数说明:参数说明: interface:指定网络接口名,如eth0和eth1 up:激活指定的网络接口卡 down:关闭指定的网络接口卡 broadcast address:设置接口的广播地址 address:设置指定接口设备的IP地址。 netmask addres
27、s:设置接口的子网掩码 注意:无需重新启动。 配置文件ifcfg-eth0 位于 /etc/sysconfig/network-scripts目录 Ubuntu位于/etc/network的interfaces文件 DEVICE=eth0 /名称名称 ONBOOT=yes /启动时是否激活网卡启动时是否激活网卡 BOOTPROTO=none /知名是否使用知名是否使用DHCP协议协议 IPADDR=192.168.1.121 /ip地址地址 NETMASK=255.255.255.0 /子网掩码子网掩码 GATEWAY=192.168.1.2 /默认网关默认网关 TYPE=Ethernet /
28、网络类型网络类型 USERCTL=no PEERDNS=no NETWORK=192.168.1.0 /网段网段 BROADCAST=192.168.1.255/广播地址广播地址 注意:注意:service network restart 以DHCP方式配置网卡 以以DHCP方式配置网卡方式配置网卡 1、编辑文件/etc/network/interfaces: sudo vi /etc/network/interfaces 2、并用下面的行来替换有关eth0的行: auto eth0 iface eth0 inet dhcp 3、用下面的命令使网络设置生效: sudo /etc/init.d/
29、networking restart 以静态方式配置网卡 1、编辑文件/etc/network/interfaces: sudo vi /etc/network/interfaces 2、举例:用下面的行来替换有关eth0的行: auto eth0 iface eth0 inet static address 192.168.3.90 gateway 192.168.3.1 netmask 255.255.255.0 #network 192.168.3.0 #broadcast 192.168.3.255 3、使网络修改设置生效: sudo /etc/init.d/networking re
30、start 修改DNS 修改DNS 位于 /etc/resolv.conf 例子: nameserver 192.168.3.2 注意:注意:service network restart ftp解释 什么是FTP: FTP 是File Transfer Protocol(文件传输协议) 的英文简称,而中文简称为“文传协议”。用于 Internet上的控制文件的双向传输。同时,它也是 一个应用程序(Application)。用户可以通过它 把自己的PC机与世界各地所有运行FTP协议的服 务器相连,访问服务器上的大量程序和信息。 FTP的主要作用,就是让用户连接上一个远程计 算机(这些计算机上运
31、行着FTP服务器程序)察 看远程计算机有哪些文件,然后把文件从远程计 算机上拷到本地计算机,或把本地计算机的文件 送到远程计算机去。 常用FTP软件 Windows下常用FTP软件: 客户端: FlashFXP、CuteFTP、CoreFTP、 LeapFtp 服务端:Serv-U Linux下常用FTP软件: 客户端:gftp、lftp、virgoftp 服务端: vsftpd、wu-ftpd vsftpd简介 vsftpd: 是目前Linux最好的FTP服务器工具之一, 全称是very secure ftp daemon 。可见它的 最大优点就是安全,除此之外,它还具有 体积小,可定制强,
32、效率高的优点。 vsftpd安装安装 vsftpd-.1.1.3-8.i386.rpm 选择“主菜单”-“系统设置”-“添加/删 除应用程序” 注意:安装vsftpd时需要系统拥有root权限。 vsftpd安装安装 出现如下图所示:勾选“FTP服务器”,点击 “更新”。 vsftpd安装安装 如下图,点击“继续” vsftpd安装安装 如下图,点击“确定” 安装安装rpm包包 执行:rpm q vsftpd 验证是否已经安装vsftpd服 务器。如果结果显示为“vsftpd-1.1.3-8”,则说明 系统已经安装vsftpd服务器. 卸载:rpm e vsftpd 执行:cd /mnt/cd
33、rom/RedHat/RPMS 进入 RPMS目录。 执行:rpm -ivh vsftpd-1.1.3-8.i386.rpm 安装 知识补充:知识补充: 安装:rpm ivh *.rpm 查询:rpm q vsftpd 卸载:rpm e vsftpd FTP客户端使用 打开FTP客户端工具flashfxp;如下图所示: FTP客户端使用 选择“站点”-“站点管理器”,如下图所 示: FTP客户端使用 选择“FlashFXP站点”, 点击右键选择“新建”-“站点”, 出现如下图所示: 输入站点名称,如LinuxFTP,点击确定 FTP客户端使用 出现如下图所示对话框: FTP客户端使用 填入参数
34、:填入参数: IP地址:虚拟机的IP地址 端口:默认(21),不用修改 用户名称:输入虚拟机下除root以外用户。 如“tom” 密码:对应用户的密码。 其它:采用默认设置 注:如果“匿名”勾选,用户名和密码可以不填, 此处我们不勾选 填完后如下图所示: FTP客户端使用 点击“应用”、连接 FTP客户端使用 界面右下角出现 “226 Directory send OK”,表示连接成功 此时,可以通过flashfxp的左右列表,移 动文件实现上传下载。 vsftp相关配置文件 /etc/vsftpd/vsftpd.conf /etc/vsftpd.ftpusers /etc/vsftpd.us
35、er_list 默认情况下root不允许登陆ftp。通过修改 vsftpd.ftpusers和vsftpd.user_list(删除root), 可以允许root用户登录, 修改后注意:service vsftpd restart vsftpd.conf参数 注意:service vsftpd restart vsftpd.conf设置 anonymous_enable=YES 允许匿名用户登录 anon_upload_enable=YES 且/var/ftp/pub可写, 允许匿名用户上传 修改后,注意:service vsftpd restart 常用FTP命令 客户端常用客户端常用FTP
36、命令:命令: open、close、bye/quit、ls/dir、help、 pwd、lcd、cd、 mkdir、rmdir、su、put、 get、mput、mget、delete 、mdelete、 rename、! 练习题 练习题:练习题: 以普通用户登录,打开和关闭对匿名用 户 目录上传、下载,创建目录等操作权限。 以匿名用户登录,打开和关闭对匿名用 户 目录上传、下载,创建目录等操作权限。 第六章第六章 SHELL功能及常用工具功能及常用工具 本章目标 熟悉使用shell的基本功能 通配符 管道 重定向 掌握正则表达式 Bash外壳程序基本功能 转义和通配符号解释 重定向 管道 后
37、台作业 历史表记录 命令行编辑 命令修正 别名 Shell编程及解释 通配符 通配符通配符 功能说明功能说明 示例示例 * 匹配匹配所有所有字符字符 ls *.o ? 匹配所有的匹配所有的单个单个字符字符 ls net? a-z 匹配属于匹配属于a到到z范围集合内的范围集合内的一个字一个字 符符 ls a-i* . 与方括号内的与方括号内的指定字符指定字符匹配匹配 ls abc*.c !.或或. 与不在括号内的某个字符匹配与不在括号内的某个字符匹配 ls a*.c c1,c2 同同c1或或c2集合匹配集合匹配 ls 0-9*,*acr ls *.o ls a-i* ls abc*.c 输入/输
38、出重定向 ls -l /usr/tmp file 覆盖 ls -l /usr/tmp file 追加 ls /usr/tmp 2err.file ls /usr/tmp output.file 2 -print搜索 当前目录下属于root组的所有文件并执行 echo命令,然后再用print表达式输出 第五章第五章 svn客户端使用客户端使用 本章目标 本章目标 产品质量问题 掌握SVN客户端使用 产品质量讨论 讨论 版本控制 版本控制系统用于保存编写开发应用程序时的文 档的各个修订版(revision)。 修订版:可以认为是某个文件在其生命周期内各 个保存的快照,每个快照和一个时间区间对应.
39、版本库(Repository):存放修订版的数据库 检入(Check in):本地副本提交到服务器的版本库 检出(Check out):从服务器的版本库中取出修订 版成为本地副本。 版本控制必要性 为团队提供了所有项目文档的回退按钮。 支持多个开发人员在可控的方式下位相同的代码 工作。 版本控制系统保存了文档在过去的各个改动,便 于查找是谁,在何时、因为什么修改了文档。 支持在文档的主线上同时有多个版本。 支持查询在某个时点上项目各个文档的状态,可 用于研究生产效率等,也可用于对以前的软件发 行版的再发行。 常见版本控制系统 VSS:Visual Source Save,微软公司的版 本控制器
40、软件, CVS:Concurrent Versions System,开源 免费 svn:SubverSion,开源免费 SVN简介 Subversion,简称SVN,是一个开放源代 码的版本控制系统,相对于的RCS、CVS ,采用了分支管理系统,它的设计目标就 是取代CVS。 SVN与CVS一样,是一个跨平台的软件, 支持大多数常见的操作系统。 svn功能 作为一个开源的版本控制统.Subversion 管 理着随时间改变的数据。 这些数据放置在 一个中央资料档案库 (repository) 中。 这个 档案库很像一个普通的文件服务器, 不过它 会记住每一次文件的变动。 这样你就可以 把档案
41、恢复到旧的版本, 或是浏览文件的变 动历史。Subversion 是一个通用的系统, 可 用来管理任何类型的文件, 其中包括了程序 源码。 svn操作流程操作流程 开发人员使用svn进行开发的一般流程是: checkout(检出)项目 更新文件或目录 update 修改文件或目录 commit(提交)变更 增加文件或目录 add(增加) 文件或 目录 commit(提交) 删除文件或目录 commit(提交)上一 级目录 注意:checkout只需进行一次,update、commit、add操作 根据需要会经常使用。 checkout(检出)操作 鼠标右键点击任意位置,在菜单中选择 ”SVN
42、Checkout”。出现如下图所示 checkout(检出)操作 在对话框”URL of repository:”中输入svn串, 格式是“协议协议:/ip:port/版本库版本库/项目项目/目录目录”。根 据实际情况输入,例如svn:/192.168.1.251。 在“checkout directory”中输入本地存放代码的目录( 系统会自动添加 )。svn会清空该目录下的一切文件。 在Revision中,选中HEAD revision,这样将会下载到 版本库的最新版本。如果想下载库中的旧版本文件, 可选中Revision,然后填入版本号即可。 如果不想下载整个版本库,而是只想下载自己负责
43、的 那部分模块,可以在URL后添加模块名,例如: svn:/192.168.1.251/nf1009 如果需要,会提示输入用户名和密码。 checkout有时候时间会很长。结束,点”ok”。 add(增加增加)操作操作 增加新文件或目录,要先用add,再commit 。 在资源管理器中,选择新增的目录或文件 ,鼠标右键菜单选择”Add”。 提示增加的文件。点“ok”继续。结束点 “ok”。 commit(提交提交)操作操作 把本地目录中变化了的文件或目录提交到版本库 中,用commit操作。增加新文件或目录,要先用 add,再commit。删除文件或目录,commit上一 级目录。 在资源管理
44、器中,选择本地目录或文件,鼠标右 键菜单选择”SVN Commit”。 显示分上下2个框的界面。在上框输入说明文字, 建议写版本号或变更原因,以便将来查找。下框 列出提交的内容。没有可提交的内容,下框中会 显示一段说明文字。点“ok”。 提交结束,显示结果。点“ok”。 update(更新更新)操作操作 在资源管理器中,选择本地目录或文件, 鼠标右键菜单选择”SVN Update”。会提 示有无文件需要更新,点”ok”完成 删除删除(delete)操作操作 删除文件或目录,commit上一级目录。 更新至特定版本 有时我们需要回溯至特定的日期或是版本 ,这时就可以利用SVN的Update to
45、 revision的功能。在想要更新的档案或目录 icon上面按下鼠标右键。并且选择 TortoiseSVN-Update to revision。 代码冲突代码冲突 如果commit时出现“You have to update your work copy first.”红色警告,说明版本库中的此文件已经被其他人修 改了。请先点“ok”按钮退出。执行update,然后再 commit。 如果修改与update得到的代码不冲突,则自动合并。如果 冲突(比如对同一行代码进行了修改),则出现”One or more files are in a conflicted state.“红色警告,并产生
46、几 个文件记录冲突。一般情况下,我们不要直接编辑冲突文 件。而按照以下操作手工解决冲突。 在资源管理器中,选择commit时冲突的那个文件,鼠标右 键菜单选择”Edit conficts”。 出现界面,分为”Theirs”、”Mine”和”Merged”3部 分,表示”别人修改的内容”、 ”我修改的内容”和” 合并后的结果”3部分。我们是要将”别人修改的内容” 和”我修改的内容”有取舍地合并起来,形成”合并后的 结果”。 代码冲突代码冲突 合并一般分为4种情况: 保留”我的修改”,舍弃”别人的修改”。鼠标右键点击 Mine框的相应行,点击”Use this text block”。 舍弃”我的
47、修改”,保留”别人的修改”。鼠标右键点击 Theirs框的相应行,点击”Use this text block”。 同时保留”我的修改”和”别人的修改”,并将”我的修 改” 放在前面。鼠标右键点击Mine框的相应行,点击 ”Use text block from mine before theirs”。 同时保留”我的修改”和”别人的修改”,并将”别人的 修改”放在前面。鼠标右键点击Mine框的相应行,点击 ”Use text block from theirs before mine”。 合并完成,Ctrl+S存盘,退出。 然后,在资源管理器中,选择冲突文件,鼠标右键菜单选 择”Resolved”,标记冲突已解决。系统会自动删除因冲 突而新建的文件。此时,就可以继续进行commit操作了。 第六章第六章 使用使用Visio绘制流程图绘制流程图 本章目标 本章目标 掌握利用Visio绘制程序流程图基本操作