【Linux——可供学习的链接目的地】

Linux简介
Linux是一种自由和开放源代码的类UNIX操作系统。定义Linux的组件是Linux内核,该操作系统内核由林纳斯·托瓦兹在1991年10月5日首次发布。严格来讲,术语Linux只表示操作系统内核本身,但通常采用Linux内核来表达该意思,Linux则常用来指基于Linux内核的完整操作系统,包括GUI组件和许多其他实用工具。由于这些系统工具和库主要由GNU计划提供,自由软件基金会提议将该组合系统命名为GNU/Linux。Linux是一个领先的操作系统,可以运行在服务器和其他大型平台之上,如大型机和超级计算机。世界上500个最快的超级计算机90%以上运行Linux发行版或变种,最快的前10名超级计算机运行的都是Linux操作系统。 Linux也广泛应用在嵌入式设备上,如手机、平板电脑、路由器、电视和电子游戏机等。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上。
Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。
Linux以它的高效性和灵活性著称,Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。
发展简史
Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX操作系统、MINIX操作系统、GNU 计划、POSIX 标准和Internet网络。
1981 年IBM公司推出微型计算机IBM PC。
1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNU C编译器已经出现,GNU的操作系统核心HURD一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的GNU操作系统,但是GNU奠定了Linux用户基础和开发环境。当时的MINIX需要购买才能得到源代码,局限于校园用作教育使用,闭源专利注定Minix错失推广时机,以至于Minix长期处于测试而无人问津。
1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。刚开始,他的目的很简单,只是为了学习Intel386 体系结构保护模式运行方式下的编程技术。通过学习,他逐渐不能满足于minix系统的现有性能,并开始酝酿开发一个新的免费操作系统。林纳斯·托瓦兹几乎花了全部时间研究i386-minix系统(hackthe kernel),并且尝试着移植GNU的软件到该系统上(GCC、BASH、GDB等)。
1991 年4 月13 日在comp.os.minix 上发布说自己已经成功地将bash移植到了minix 上,而且已经爱不释手、不能离开这个shell 软件了。
1991年7月3日,第一个与Linux有关的消息是在comp.os.minix上发布的(当然此时还不存在Linux这个名称,当时林纳斯·托瓦兹的脑子里想的可能是FREAX,FREAX的英文含义是怪诞的、怪物、异想天开等)。其中透露了他正在进行Linux系统的开发,并且在Linux最初的时候已经想到要实现与POSIX兼容。
1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生(Freeminix-likekernel sources for 386-AT)。
1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码有大约有十万行,用户大约有10万左右。
1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。
1995年1月,Bob Young创办了RedHat(小红帽),以CNULinux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的Linux,即RedHat Linux,称为Linux"发行版",在市场上出售。这在经营模上是一种创举。
1996年6月,Linux 2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器。此时的Linux 已经进入了实用阶段,全球大约有350万人使用。
1998年2月,以Eric Raymond为首的一批年轻的"老牛羚骨干分子"终于认识到CNULinux体系的产业化道路的本质,并非是什么自由哲学,而是市场竞争的驱动,创办了"Open Source Intiative"(开放源代码促进会)"复兴"的大旗,在互联网世界里展开了一场历史性的Linux产业化运动。
2001年1月,Linux 2.4发布,它进一步地提升了SMP系统的扩展性,同时它也集成了很多用于支持 桌面系统的特性:USB,PC卡(PCMCIA)的支持,内置的即插即用,等等功能。
2003年12月,Linux 2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的变化。
2004年的第1月,SuSE嫁到了Novell,SCO继续顶着骂名四处强行"化缘 ",Asianux,MandrakeSoft也在五年中首次宣布季度赢利。3月SGI宣布成功实现了Linux操作系统支持256个Itanium 2处理器。

目录
目的 TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。传输中有三种模式:netascii,这是8位的ASCII码形式,另一种是octet,这是8位源数据类型;最后一种mail已经不再支持,它将返回的数据直接返回给用户而不是保存为文件。 概况 任何传输起自一个读取或写入文件的请求,这个请求也是连接请求。如果服务器批准此请求,则服务器打开连接,数据以定长512字节传输。每个数据包包括一块数据,服务器发出下一个数据包以前必须得到客户对上一个数据包的确认。如果一个数据包的大小小于512字节,则表示传输结束。如果数据包在传输过程中丢失,发出方会在超时后重新传输最后一个未被确认的数据包。通信的双方都是数据的发出者与接收者,一方传输数据接收应答,另一方发出应答接收数据。大部分的错误会导致连接中断,错误由一个错误的数据包引起。这个包不会被确认,也不会被重新发送,因此另一方无法接收到。如果错误包丢失,则使用超时机制。错误主要是由下面三种情况引起的:不能满足请求,收到的数据包内容错误,而这种错误不能由延时或重发解释,对需要资源的访问丢失(如硬盘满)。TFTP只在一种情况下不中断连接,这种情况是源端口不正确,在这种情况下,指示错误的包会被发送到源机。这个协议限制很多,这些都是为了实现起来比较方便而进行的。 特点 因为TFTP使用UDP,而UDP使用IP,IP可以还使用其它本地通信方法。因此一个TFTP包中会有以下几段:本地媒介头,IP头,数据报头,TFTP头,剩下的就是TFTP数据了。TFTP在IP头中不指定任何数据,但是它使用UDP中的源和目标端口以及包长度域。由TFTP使用的包标记(TID)在这里被用做端口,因此TID必须介于0到65,535之间。对它的初始化我们在后面讨论。TFTP头中包括两个字节的操作码,这个码指出了包的类型,下面我们看看大体上的TFTP包格式,相关的内容我们在后面的章节中进行讨论。 --------------------------------------------------- | Local Medium | Internet | Datagram | TFTP | --------------------------------------------------- 图3-1: 包头次序 初始连接 初始连接时候需要发出WRQ(请求写入远程系统)或RRQ(请求读取远程系统),收到一个确定应答,一个确定可以写出的包或应该读取的第一块数据。通常确认包包括要确认的包的包号,每个数据包都与一个块号相对应,块号从1开始而且是连续的。因此对于写入请求的确定是一个比较特殊的情况,因此它的包的包号是0。如果收到的包是一个错误的包,则这个请求被拒绝。创建连接时,通信双方随机选择一个TID,因为是随机选择的,因此两次选择同一个ID的可能性就很小了。每个包包括两个TID,发送者ID和接收者ID。这些ID用于在UDP通信时选择端口,请求主机选择ID的方法上面已经说过了,在第一次请求的时候它会将请求发到TID 69,也就是服务器的69端口上。应答时,服务器使用一个选择好的TID作为源TID,并用上一个包中的TID作为目的ID进行发送。这两个被选择的ID在随后的通信中会被一直使用。下例是一个写入的例子,其中WRQ,ACK和DATA代表写入请求,确认和数据。 相关应用 1.主机A向主机B发出WRQ,其中端口为69 2. B机向A机发出ACK,块号为0,包括B和A的TID 此时连接建立,第一个数据包以序列号1从主机开始发出。以后两台主机要保证以开始时确定的TID进行通信。如果源ID与原来确定的ID不一样,这个包会被认识为发送到了错误的地址而被抛弃。错误的包是被发送到正确端口的,但是包本身有错误。设想发送方发出一个请求,这个请求在网络的那个设备中被复制成两个包,接收方先后接收到两个包。接收方会认为为这是两个独立的请求,会返回两个应答。当这两个应答其中之一被接收到时,连接已经建立。第二个应答再到达时,这个包会被抛弃,而不会因为接收到第二个应答包而导致第一个建立的连接失败。 5. TFTP包 TFTP支持五种类型的包,我们在以上已经说明这五种类型的包: opcode operation 1.Read request (RRQ) 2.Write request (WRQ) 3.Data (DATA) 4.Acknowledgment (ACK) 5.Error (ERROR) 包头中包括了这个包所指定的操作码。 2.bytes string 1 byte string 1 byte | Opcode | Filename | 0 | Mode | 0 Figure 5-1: RRQ/WRQ包 RRQ和WRQ包(代码分别为1和2)的格式如上所示。文件名是NETASCII码字符,以0结束。而MODE域包括了字符串"netascii","octet"或"mail",名称不分大小写。接收到NETASCII格式数据的主机必须将数据转换为本地格式。OCTET模式用于传输文件,这种文件在源机上以8位格式存储。假设每个机器都存在一个8位的格式,这样的假设是最一般的。比如DEC-20,这是一种36位机,我们可以假设它是4个8位外加另外4位而构成。如果机器收到OCTET格式文件,返回时必须与原来文件完全一样。在使用MAIL模式时,用户可以在FILE处使用接收人地址,这个地址可以是用户名或用户名@主机的形式,如果是后一种形式,允许主机使用电子邮件传输此文件。如果使用MAIL类型,包必须以WRQ开始,否则它与NETASCII完全一样。我们的讨论建立在发送方和接收方都在相同模式的情况下,但是双方可以以不同的模式进行传输。例如一个机器可以是一台存储服务器,这样一台服务器需要将NETASCII格式转换为自己的格式。另外,我们可以设想DEC-20这种机器,它使用36位字长,用户这边可以使用特殊的机制一次读取36位,而服务器却可以仍然使用8位格式。在这两种情况下,我们看到了两台机器使用不同格式的情况。可以在两台主机间定义其它的传输方式,但是定义要小心,因为这种传输方式不为人知,而且也没有权威机构为其指定名称或定义它的模式。 2.bytes 2 bytes n byte | Opcode | Block # | Data | Figure 5-2: DATA包 数据在数据包中传输,其格式如上图所示。数据包的OP码为3,它还包括有一个数据块号和数据。数据块号域从1开始编码,每个数据块加1,这样接收方可以确定这个包是新数据还是已经接收过的数据。数据域从0字节到512字节。如果数据域是512字节则它不是最后一个包,如果小于512字节则表示这个包是最后一个包。除了ACK和用于中断的包外,其它的包均得到确认。发出新的数据包等于确认上次的包。WRQ和DATA包由ACK或ERROR数据包确认,而RRQ数据包由DATA或ERROR数据包确认。下图即是一个ACK包,操作码为4。其中的包号为要确认的数据包的包号。 2.bytes 2 bytes --------------------- | Opcode | Block # | --------------------- Figure 5-3: ACK包 WRQ数据包被ACK数据包确认,WRQ数据包的包号为0。 2.bytes 2 bytes string 1 byte | Opcode | ErrorCode | ErrMsg | 0 | Figure 5-4: ERROR包 一个ERROR包,它的操作码是5,它的格式如上所示。此包可以被其它任何类型的包确认。错误码指定错误的类型。错误的值和错误的意义在附录中。错误信息是供程序员使用的。 正常终止 传输的结束由DATA数据标记,其包括0-511个字符。这个包可以被其它数据包确认。接收方在发出对最后数据包的确认后可以断开连接,当然,适当的等待是比较好的,如果最后的确定包丢失可以再次传输。如果发出确认后仍然收到最后数据包,可以确定最后的确认丢失。发送最后一个DATA包的主机必须等待对此包的确认或超时。如果响应是ACK,传输完成。如果发送方超时并不准备重新发送并且接收方有问题或网络有问题时,发送也正常结束。当然实现时也可以是非正常结束,但无论如何连接都将被关闭。 早终结 如果请求不能被满足,或者在传输中发生错误,需要发送ERROR包。这仅是一种传输友好的方式,这种包不会被确认也不会被重新传输,因此这种包可能永远不会被接收到。因此需要用超时来侦测错误。 其它相关 I. 附录 包头的次序 2.bytes ---------------------------------------------------------- | Local Medium | Internet | Datagram | TFTP Opcode | ---------------------------------------------------------- TFTP格式 Type Op # 没有包头的格式 2.bytes string 1 byte string 1 byte ----------------------------------------------- RRQ/ | 01/02 | Filename | 0 | Mode | 0 | WRQ ----------------------------------------------- 2.bytes 2 bytes n bytes --------------------------------- DATA | 03 | Block # | Data | --------------------------------- 2.bytes 2 bytes ------------------- ACK | 04 | Block # | -------------------- 2.bytes 2 bytes string 1 byte ---------------------------------------- ERROR | 05 | ErrorCode | ErrMsg | 0 | ---------------------------------------- 读文件的初始连接 1.主机A发RRQ到A,包括源=A的ID和目的=69 2.主机B发送DATA,其中包号=1,这个包被传送到A,源=B的ID,目的=A的ID 错误码 Value Meaning 0 未定义,请参阅错误信息(如果提示这种信息的话) 1.文件未找到 2.访问非法 3.磁盘满或超过分配的配额 4.非法的TFTP操作 5.未知的传输ID 6.文件已经存在 7.没有类似的用户 Internet用户数据报头 (TFTP不一定非要在UDP上实现。) Format 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 域的值 Source Port 由传输发起方选择 Dest. Port 由目的地选择(如果是RRQ或WRQ,其值为69) Length 包括UDP包头的包长度 Checksum 校验码,如果是0,则未使用校验 注意:TFTP将传输标记TID传送给UDP作为源和目的端口 安全问题 因为TFTP没有安全控制机制,因此安全问题应该多加考虑。通常TFTP允许下载数据而不允许上传数据。 相关协议 TFTP协议的优势 尽管与FTP相比TFTP的功能要弱得多,但是TFTP具有两个优点: 1)TFTP能够用于那些有UDP而无TCP的环境; 2)TFTP代码所占的内在要比FTP小。 尽管这两个优点对于普通计算机来说并不重要,但是对于那些不具备磁盘来存储系统软件的自举硬件设备来说TFTP特别有用。 TFTP协议与FTP协议的相同点 TFTP协议的作用和我们经常使用的FTP大致相同,都是用于文件传输,可以实现网络中两台计算机之间的文件上传与下载。可以将TFTP协议看作是FTP协议的简化版本。 TFTP协议与FTP协议的不同点 1)TFTP协议不需要验证客户端的权限,FTP需要进行客户端验证; 2)TFTP协议一般多用于局域网以及远程UNIX计算机中,而常见的FTP协议则多用于互联网中; 3)FTP客户与服务器间的通信使用TCP,而TFTP客户与服务器间的通信使用的是UDP; 4)TFTP只支持文件传输。也就是说,TFTP不支持交互,而且没有一个庞大的命令集。最为重要的是,TFTP不允许用户列出目录内容或者与服务器协商来决定哪些是可得到的文件。 内部命令 FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。 FTP的命令行格式为:ftp-v-d-i-n-g[主机名],其中 -v显示远程服务器的所有响应信息; -n限制ftp的自动登录,即不使用; .netrc文件; -d使用调试方式; -g取消全局文件名。 ftp使用的内部命令如下(中括号表示可选项): 1.![cmd[args>:在本地机中执行交互shell,exit回到ftp环境,如:!ls* .zip. 2.$macro-ame[args]:执行宏定义macro-name. 3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。 4.appendlocal-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。 5.ascii:使用ascii类型传输方式。 6.bell:每个命令执行完毕后计算机响铃一次。 7.bin:使用二进制文件传输方式。 8.bye:退出ftp会话过程。 9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。 10.cdremote-dir:进入远程主机目录。 11.cdup:进入远程主机目录的父目录。 12.chmodmodefile-name:将远程主机文件file-name的存取方式设置为mo de,如:chmod777a.out。 13.close:中断与远程服务器的ftp会话(与open对应)。 14. cr:使用asscii方式传输文件时,将回车换行转换为回行。 15.deleteremote-file:删除远程主机文件。 16.debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:debup3,若设为0,表示取消debug。 17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件local-file。 18.disconnection:同close。 19.formformat:将文件传输方式设置为format,缺省为file方式。 20.getremote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file。 21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。 22.hash:每传输1024字节,显示一个hash符号(#)。 23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:helpget。 24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。 25.image:设置二进制传输方式(同binary)。 26.lcd[dir]:将本地工作目录切换至dir。 27. ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file。 28.macdefmacro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。 29.mdelete[remote-file]:删除远程主机文件。 30.mdirremote-fileslocal-file:与dir类似,但可指定多个远程文件,如:mdir*.o.*.zipoutfile。 31.mgetremote-files:传输多个远程文件。 32.mkdirdir-name:在远程主机中建一目录。 33.mlsremote-filelocal-file:同nlist,但可指定多个文件名。 34.mode[modename]:将文件传输方式设置为modename,缺省为stream方式。 35.modtimefile-name:显示远程主机文件的最后修改时间。 36.mputlocal-file:将多个文件传输至远程主机。 37.newerfile-name:如果远程机中file-name的修改时间比本地硬盘同名 文件的时间更近,则重传该文件。 38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。 39.nmap[inpatternoutpattern]:设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如:nmap$1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。 40.ntrans[inchars[outchars>:设置文件名字符的翻译机制,如ntrans 1R,则文件名LLL将变为RRR。 41.openhost[port]:建立指定ftp服务器连接,可指定连接端口。 42.passive:进入被动传输方式。 43.prompt:设置多个文件传输时的交互提示。 44.proxyftp-cmd:在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。 45.putlocal-file[remote-file]:将本地文件local-file传送至远程主机。 46.pwd:显示远程主机的当前工作目录。 47.quit:同bye,退出ftp会话。 48.quotearg1,arg2…:将参数逐字发至远程ftp服务器,如:quotesyst. 49.recvremote-file[local-file]:同get。 50.regetremote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传。 51.rhelp[cmd-name]:请求获得远程主机的帮助。 52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态。 53.rename[from][to]:更改远程主机文件名。 54.reset:清除回答队列。 55.restartmarker:从指定的标志marker处,重新开始get或put,如:restart130。 56.rmdirdir-name:删除远程主机目录。 57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀..1,.2等。 58.sendlocal-file[remote-file]:同put。 59.sendport:设置PORT命令的使用。 60.sitearg1,arg2…:将参数作为SITE命令逐字发送至远程ftp主机。 61.sizefile-name:显示远程主机文件大小,如:siteidle7200。 62.status:显示当前ftp状态。 63.struct[struct-name]:将文件传输结构设置为struct-name,缺省时使用stream结构。 64.sunique:将远程主机文件名存储设置为唯一(与runique对应)。 65.system:显示远程主机的操作系统类型。 66.tenex:将文件传输类型设置为TENEX机的所需的类型。 67.tick:设置传输时的字节计数器。 68.trace:设置包跟踪。 69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:typebinary,设置二进制传输方式。 70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask3。 71.useruser-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令。 72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on.

超文本标记语言
网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。 定义 超级文本标记语言(英文缩写:HTML)是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释

超文本标记语言
超级文本标记语言文档制作不是很复杂,但功能强大,支持不同数据格式的文件镶入,这也是万维网(WWW)盛行的原因之一,其主要特点如下: 1、 简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便。 2 、可扩展性:超级文本标记语言的广泛应用带来了加强功能,增加标识符等要求,超级文本标记语言采取子类元素的方式,为系统扩展带来保证。 3 、平台无关性:虽然个人计算机大行其道,但使用MAC等其他机器的大有人在,超级文本标记语言可以使用在广泛的平台上,这也是万维网(WWW)盛行的另一个原因。 编辑 它其实是文本,它需要浏览器的解释,它的编辑器大体可以分为三种,
Html编辑工具
1.基本文本、文档编辑软件,使用微软自带的记事本或写字板都可以编写,当然,如果你用WPS来编写,也可以。不过存盘时请使用.htm或.html作为扩展名,这样就方便浏览器认出直接解释执行了。 2.半所见即所得软件,如FCK-Editer,E-webediter等在线网页编辑器 3.所见即所得软件,使用最广泛的编辑器,完全可以一点不懂HTML的知识就可以做出网页,如FRONTPAGE(微软),Dreamweaver(Adobe)。与半所见即所得的软件相比,开发速度更快,效率更高,且直观的表现更强。任何地方进行修改只需要刷新即可显示。 发展历史 超文本标记语言 超文本标记语言(第一版)——在1993年6月作为互联网工程工作小组(IETF)工作草案发布(并非标准): HTML 2.0——1995年11月作为RFC 1866发布,在RFC 2854于2000年6月发布之后被宣布已经过时 HTML 3.2——1996年1月14日,W3C推荐标准
html 5
HTML 4.0——1997年12月18日,W3C推荐标准 HTML 4.01(微小改进)——1999年12月24日,W3C推荐标准 HTML 5 的第一份正式草案已于2008年1月22日公布,仍继续完善 ISO/IEC 15445:2000(“ISO HTML”)——2000年5月15日发布,基于严格的HTML 4.01语法,是国际标准化组织和国际电工委员会的标准。 Wijmo是基于HTML5、jQuery、CSS3和SVG的一个控件包,能够满足构建当今Web系统的需求。基于Wijmo,您的系统运行将更加快速和流畅,外观也会更加引人入胜。Wijmo中所有新的控件都是在符合最新的UI设计潮流的基础上,对新的以及改良后的主题进行封装。优美的、专业的控件外观会让您的应用程序引人注目。比如 ComponentOne Studio for ASP .NET Wijmo 控件包内置的6个主题,同时可以使用 jQuery UI项目提供的 30 多个主题,甚至可以使用 ThemeRoller 创建属于您自己的系统主题。 HTML没有1.0版本是因为当时有很多不同的版本。有些人认为蒂姆·伯纳斯-李的版本应该算初版,这个版本没有IMG元素。当时被称为HTML+的后续版的开发工作于1993年开始,最初是被设计成为“HTML的一个超集”。第一个正式规范为了和当时的各种HTML标准区分开来,使用了2.0作为其版本号。HTML+的发展继续下去,但是它从未成为标准。 HTML3.0规范是由当时刚成立的W3C于1995年3月提出,提供了很多新的特性,例如表格、文字绕排和复杂数学元素的显示。虽然它是被设计用来兼容2.0版本的,但是实现这个标准的工作在当时过于复杂,在草案于1995年9月过期时,标准开发也因为缺乏浏览器支持而中止了。3.1版从未被正式提出,而下一个被提出的版本是开发代号为Wilbur的HTML 3.2,去掉了大部分3.0中的新特性,但是加入了很多特定浏览器,例如Netscape和Mosaic的元素和属性。HTML对数学公式的支持最后成为另外一个标准MathML。 HTML 4.0同样也加入了很多特定浏览器的元素和属性,但是同时也开始“清理”这个标准,把一些元素和属性标记为过时,建议不再使用它们。HTML的未来和CSS结合会更好。 HTML 5草案的前身名为Web Applications 1.0。于2004年被WHATWG提出,于2007年被W3C接纳,并成立了新的HTML工作团队。在2008年1月22日,第一份正式草案发布。 标记语言 XHTML1.0——发布于2000年1月26日,是W3C推荐标准,后来经过修订于2002年8月1日重新发布。 XHTML 1.1,于2001年5月31日发布,W3C推荐标准。 XHTML 2.0,W3C工作草案。 XHTML 5,从XHTML 1.x的更新版,基于HTML 5草案。 XHTML 4.01 是常见的版本。 整体结构 一个网页对应一个HTML文件,超文本标记语言文件以.htm(磁盘操作系统DOS限制的英语缩写为扩展名)或.html(英语缩写为扩展名)。可以使用任何能够生成TXT类型源文件的文本编辑器来产生超文本标记语言文件,只用修改文件后缀即可。
超文本标记语言
标准的超文本标记语言文件都具有一个基本的整体结构,标记一般都是成对出现(部分标记除外例如:<br/>),即超文本标记语言文件的开头与结尾标志和超文本标记语言的头部与实体两大部分。有三个双标记符用于页面整体结构的确认。 标记符<HTML>;说明该文件是用超文本标记语言(本标签的中文全称)来描述的。它是文件的开头,而</HTML>;则表示该文件的结尾,它们是超文本标记语言文件的开始标记和结尾标记。
HTML代码
文件头部内容 <head></head>;这2个标记符分别表示 头 部信息的开始和结尾。头部中包含的标记是页面的标题、序言、说明等内容,它本身不作为内容来显示,但影响网页显示的效果。头部中最常用的标记符是标题标记符和meta标记符,其中标题标记符用于定义网页的标题,它的内容显示

超文本标记语言
正文标记符又称为实体标记。

字符集
HTML字符可以用一些代码来表示,代码可以有2种表示方式。即字符代码(命名实体)和数字代码(编号实体)。字符代码以&;符开始,以分号结束,其间是字符名;数字代码也以&;符开始,以分号结束,其间是#号加编号。 相关要求 在编辑超文本标记语言文件和使用有关标记符时有一些约定或默认的要求。
HTML
⑴ 文本标记语言源程序的文件扩展名默认使用htm(磁盘操作系统DOS限制的英语缩写为扩展名)或html(英语缩写为扩展名),以便于操作系统或程序辨认,除自定义的汉字扩展名。在使用文本编辑器时,注意修改扩展名。而常用的图像文件的扩展名为gif和jpg。 ⑵ 超文本标记语言源程序为文本文件,其列宽可不受限制,即多个标记可写成一行,甚至整个文件可写成一行;若写成多行,浏览器一般忽略文件中的回车符(标记指定除外);对文件中的空格通常也不按源程序中的效果显示。完整的空格可使用特殊符号(实体符)“ (注意此字母必须小写,方可空格)”表示非换行空格;表示文件路径时使用符号“/”分隔,文件名及路径描述可用双引号也可不用引号括起。
HTML
⑶ 标记符中的标记元素用尖括号括起来,带斜杠的元素表示该标记说明结束;大多数标记符必须成对使用,以表示作用的起始和结束;标记元素忽略大小写,即其作用相同,但完整的空格可使用特殊符号“ (注意此字母必须小写,方可空格)”;许多标记元素具有属性说明,可用参数对元素作进一步的限定,多个参数或属性项说明次序不限,其间用空格分隔即可;一个标记元素的内容可以写成多行。 ⑷ 标记符号,包括尖括号、标记元素、属性项等必须使用半角的西文字符,而不能使用全角字符。 ⑸HTML注释由惊叹号表示,注释内容由符号结束。注释内容可插入文本中任何位置。任何标记若在其最前插入惊叹号,即被标识为注释,不予显示。 常见实体
|
空格 | |   |
< | 小于号 | < | < |
> | 大于号 | > | > |
& | 和号 | & | & |
" | 引号 | " | " |
' | 撇号 | ' (IE不支持) | ' |
¢ | 分 | ¢ | ¢ |
£ | 镑 | £ | £ |
¥ | 日圆 | ¥ | ¥ |
? | 欧元 | € | € |
§ | 小节 | § | § |
© | 版权 | © | © |
® | 注册商标 | ® | ® |
|
商标 | ™ | ™ |
× | 乘号 | × | × |
÷ | 除号 | ÷ | ÷ |

html示例
文件类型描述 为了说明文档使用的超文本标记语言标准,所有超文本标记语言文档应该以“文件类型声明”(<!DOCTYPE>)开头,引用一个文件类型描述或者必要情况下自定义壹个文件类型描述。举例来说:-//W3C//DTD HTML 4.0//ZH |
|
超文本标记语言(版本:肆点零)、万维网联盟。 |
-//W3C//DTD HTML 4.01//ZH |
|
超文本标记语言(版本:肆点零壹)、万维网联盟。 |
表格的基本结构如下:
<Table>
<caption> </caption>
<tr>
<th></th)<th)</th>...
</tr>
<tr>
<td></td><td> </td>...
</tr>
<tr>
<td></td><td> </td>...
</tr>
<tr>
<td></td><td> </td>...
</tr>
...
</Table>
<Table>定义整个表格,即表格的内容要放在<Table>和</Tahle>标记中;在<Table>中的主要属性:border属性显示表格的边框,width, height属性定义表格的大小。<caption>标记符用来定义表格的标题。
表格的表示以行为单位,在行中包含列。其中:一个<tr>...</tr>标记表示一行;一个<td>...</td>标记表示一列;<th>... </th>定义表头,一般可以不用。 链接标志表格标志 <a href="壹个统壹资源定位器"> </a>:创建超文本链接。 <a name="书签貮"> </a>:创建位于文档内部的书签。 <a href="#书签貮"> </a>:创建指向位于文档内部书签的链接。 正文标记的使用 每种HTML标记符在使用中可带有不同的属性项,用于描述该标记符说明的内容显示不同的效果。正文标记符中提供以下属性来改变文本的颜色及页面背景。 BGCOLOR(英语全称:BackgroundColor)用于定义网页的背景色,BACKGROUND用于定义网页背景图案的图像文件 TEXT用于定义正文字符的颜色,默认为黑色 LINK用于定义网页中超级链接字符的颜色,默认为蓝色 VLINK(英语全称:VisitedLINK)用于定义网页中已被访问过的超接链接字符的颜色,默认为紫红色 ALINK(中文全称:活动链接)用于定义被鼠标选中,但未使用时超链字符的颜色,默认为红色 例如:标记将定义页面的背景色为黑色,正文字体显示为白色。 以上属性使用中,需要对颜色进行说明,在HTML中对颜色可使用3种方法说明颜色属性值,即直接颜色名称、16进制颜色代码、10进制RGB码。 直接颜色名称,可以在代码中直接写出颜色的英文名称。如<font color="red">我们</font>,在浏览器上显示时就为红色。 16进制颜色代码,语法格式: #RRGGBB 。16进制颜色代码之前必须有一个“#”号,这种颜色代码是由三部分组成的,其中前两位代表红色,中间两位代表绿色,后两位代表蓝色。不同的取值代表不同的颜色,他们的取值范围是00--FF。如<font color="#FF0000">我们</font>,在浏览器上显示同样为红色。 10进制RGB码,语法格式: RGB(RRR,GGG,BBB) 。在这种表示法中,后面三个参数分别是红色、绿色、蓝色,他们的取值范围是0--255。以上两种表达方式可以相互转换,标准是16进制与10进制的相互转换。如<font color="rgb(255,0,0)">我们</font>,在浏览器上显示字体为红色。 使用图案代替背景颜色,可以使页面更生动、美观。 如今用一张大图当做网页的背景已经成为一种流行趋势,高质量的精美照片和抽象的设计图片能够给网站的外观带去深刻的影响。 可将图像文件“图像.gif”所表示的一幅图像作为页面的背景,若图像幅面不够大,将会将图像重复平铺在窗口中。 注释 <!--这是壹条注释,且不会呈现在渲染器或者网络浏览器之上。--> 其他版本 和XHTML之间的差异: xmlns 属性在XHTML中是必需的,但在 HTML中不是。不过,即使XHTML文档中的 <html> 没有使用此属性,W3C 的验证器也不会报错。这是因为 "xmlns=百度" 是一个固定值,即使您没有包含它,此值也会被添加到 <html> 标签中。 关联项目 标准通用标记语言实体 AAP DTD 文档类型定义(DTD) !doctype(!文档类型) 标准通用标记语言 CSS+div Html5
回复
打赏帖 | |
---|---|
【Zephyr】使用Zephyr外设初始化过程解析被打赏30分 | |
【S32K146】S32DS watchdog 配置使用被打赏20分 | |
【Zephyr】使用 IAR 调试 Zephyr 镜像被打赏20分 | |
赚取电动螺丝刀+电源电路理论知识分享1被打赏5分 | |
我想要一部加热台+分享常见运算放大器电路的应用被打赏5分 | |
【Zephyr】MCXN947 Zephyr 开发入门适配shell被打赏20分 | |
我想要一部加热台+常见的MOS管驱动电路被打赏5分 | |
【我要开发板】6.联合MATLAB记录数据被打赏50分 | |
【换取手持数字示波器】MicrochipMPLABHarmony框架下串口调试printf输出记录被打赏29分 | |
【瑞萨RA2E1开发板】:使用ADC功能实现位移传感器采集方案被打赏20分 |