几类特殊的IP地址,全0,全1的组合使用情况

下面介绍的均是在没有进行子网划分的情况下:

1、网络号为全0:

1)如果主机号也为全0,那么此类ip地址可以当源端但不可以做目的端,此ip地址代表的是网络上的主机。

2)如果主机号不全为0,那么此类ip地址的使用和1)相同,只是它代表的是网络上特定的主机。


2、网络号为 127

在我们划分A类地址时有一个地址0111111.x.x.x 的地址,即网络号是127的地址我们并没有使用,是因为这里将127的网络号和任意的主机号组合当做

回环地址来使用。


3、主机号是全1的情况。

我们知道主机号全1 代表的是广播地址,需要注意广播地址是不可以做源端的,但是可以做目的端。针对不同的网络号情况,有如下几类广播:

1)如果主机号也是全1的话,表示的是受限的广播,广播的信号将永远不能被转发出去。

2) 如果网络是一个非全1,非全0的值netid,那么此广播以网络为目的向netid广播

3)如果在2)的情况下存在子网划分,那么以子网为目的向网络号.子网号传播。

如果子网是全1,那么就以子网为目的向netid广播。

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
非常的,绝对不会让你后悔。 目 录 译者序 前言 第一部分 shell 第1章 文件安与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 chmod命令的其他例子 6 1.4.5 可以选择使用符号模式或绝对模式 7 1.5 目录 7 1.6 suid/guid 7 1.6.1 为什么要使用suid/guid 8 1.6.2 设置suid/guid的例子 8 1.7 chown和chgrp 9 1.7.1 chown举例 9 1.7.2 chgrp举例 9 1.7.3 找出你所属于的用户组 9 1.7.4 找出其他用户所属于的组 10 1.8 umask 10 1.8.1 如何计算umask值 10 1.8.2 常用的umask值 11 1.9 符号链接 12 1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改时间查找文件 17 2.1.7 查找比某个文件新或旧的文件 17 2.1.8 使用type选项 17 2.1.9 使用size选项 18 2.1.10 使用depth选项 18 2.1.11 使用mount选项 18 2.1.12 使用cpio选项 18 2.1.13 使用exec或ok来执行shell命令 19 2.1.14 find命令的例子 20 2.2 xargs 20 2.3 小结 21 第3章 后台执行命令 22 3.1 cron和crontab 22 3.1.1 crontab的域 22 3.1.2 crontab条目举例 23 3.1.3 crontab命令选项 23 3.1.4 创建一个新的crontab文件 24 3.1.5 列出crontab文件 24 3.1.6 编辑crontab文件 24 3.1.7 删除crontab文件 25 3.1.8 恢复丢失的crontab文件 25 3.2 at命令 25 3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 tee 39 5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准输出 41 5.7.2 重定向标准输入 42 5.7.3 重定向标准错误 42 5.8 结合使用标准输出和标准错误 43 5.9 合并标准输出和标准错误 43 5.10 exec 44 5.11 使用文件描述符 44 5.12 小结 45 第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52 7.6 使用[]匹配一个范围或集合 52
Quartus使用入门及一些实验经验 Maxplus主要是教学使用,对于一般的教学需求,Maxplus软件可以很好的满足要求了, 但是为了以后学习的需要,还是得尝试学会使用更加专业的软件,比如Altera公司的Quartus 软件。 Quartus软件是Alter公司提供的FPGA/CPLD开发集成环境,Altera公司是世界上最大 的可编程逻辑器件供应商之一。Quartus是Maxplus的更新替换产品,其界面友好,使用方 便。在Quartus中可以完成设计输入,HDL综合,布线布局(适配),(前)仿真,下载等测 试。 Quartus软件主要有网页版订购版,都可以从Altera公司的网站上下载到。网络版相比 订购版只是少了一点小小支持,但是对我们的实验是没有任何影响的。本人使用的是Quartus 9.0订购版,大家可以在网络上查找下Quartus的crack来生成license,一般流行的都是俊龙 提供的。如果在网络上没有找到的话可以发我邮箱([email protected])索要。 关于Quartus软件的使用,及FPGA后续学习,个人推荐一本书《基于Alter FPGA/CPLD 的电子系统设计及工程实践》。湖大图书馆藏有这本书,是一本很好的入门书籍,图书馆藏 编号为:TP332.145。里面很详细介绍了Quartus的使用入门及一些简单的工程的建立流程, 等一些知识。 Quartus软件破解完成后,进入Quartus软件,界面如图1.(第一次登陆使用会让你选 择使用Quartus风格还是Maxplus界面风格) 图1 更具个人使用爱好,自己取舍界面需求,一般建议使用standard Quartus。在工具栏 工具栏 空白处右击,然后选择custom,然后显示如图2,选择标签toolbars,勾选standard Quartus, 确定。 图2 在custom里面有很多选项,如果都想了解,可以自己都去点选试试,那些英文都很直 观的告诉了用户对应的风格选项。 自己可以在工具栏直接右击后选择哪些显示,哪些不显示,当然那也可以通过菜单栏中 的view—>utility windows中选择。 利用快键按钮或者快捷键,可以节省自己很多操作,使自己的使用更加方便。 软件的用户界面都是很友好且相似的,Quartus的工具栏和菜单栏的使用和word是很相 像的,连新建,保存,另存为图标的样子都一样。 每一个设计项目都是以工程为单位的,里面可以包含设计图,波形图,管脚绑定,芯片 选择等信息。(就如同vc软件的工作空间这个概念) 点选工具栏中的new,新建一个工程。 接下来就是设置工程的一些基本信息。 输入完工程名字后,点选next。如果所在的文件夹下还有其他工程,Quartus会显示提 示信息,自己阅读后进行选择。 当然也可以直接点选finish,在后续的设计中,可以通过菜单栏中的Assignment进行修 改,如Device选项,修改使用的器件。 接下来是在工程中添加文件,比如自己曾经设计好的VHDL码,原理图等或者库之 类信息。如果不要添加任何文件,直接选择next。 接下来就是器件芯片的选择。 更具实验箱上的芯片进行选择。在Device family中选择Cyclone,在Available devices 中选择EP1C6Q240C6。 点选next,让自己选择第三方软件,如ModelSim,Synplify等,不做任何修改,直接 next,最后finish,整个工程配置完成。 当我们以后再建立工程的时候,由于我们下载使用的芯片都是一样的,工程的基本信息 都是一样的,我们可以使用先前的工程的settings。 在输入工程name的时候,点选use existing project settings,选择指定的工程settings或 者上一次的工程settings,然后直接点选finish,省去了每一次新建工程都需要选择器件。 图3 建立完工程后,假使我们使用原理图的设计方案,因此新建一个block diagram,如图 4. 图4 如果我们设计一个16位计数器,选用74163芯片来制作一个简单的16位计数器。 在bdf文件的空白处双击然后在name选项中直接输入芯片名称。 插入input,output 后,连接进行布线。光标移动到线的一段后就会自动变成十字形, 表示可以进行线输入,连接完线后,如图5. 图5 为了显示清晰,可以将一些功能相同的线或者输入输出合并,即利用总线。比如将输出 端QD,QC,QB,QA合并。先将输出端连出线,然后给各线命名。直接点选中线后从键盘输入 可以看到每条线都有了自己的name。 每条线有了name后可以方便很多,比如我们进行连线的时候,就可以不必每次将需要 相连的线连上,只需取上相同的名字,编译的时候编译器就知道这些线是相连的。因此如果 采用命名的方式连接,一定要注意线的命名,不要使得不相连的线命名相同,这样就会导致 错误,请注意Quartus的编译器是不区分英文大小写的。 如果是进行总分线连接,则一定要按照规定命名。在首先分线的名字一定要一样,然后 表示哪条分线的数字一定要用[ ]括起来,否则编译无法通过。该实验中命名为 Q[0],Q[1],Q[2],Q[3],因此总线应为Q[3..0]或者Q[0..3]。最后连接一个输出端,其中输出端命 名也要注意宽度,和总线宽度保持一致。并注意输入输出端的和总线的顺序,比[3..0],[0..3] 对应是不一样的,为了自己使用的方便,一定要养成自己的总线,输入输出命名方式风格, 个人建议部从高到低命名,并使得最低位为0,这样符合数字电路的习惯,如本例中8位 总线命名为Q[7..0],输出命名为Q[7..0]。 如果这只是自己设计的一个模块,自己可以试着将该文件编译一下。本例中memory是 顶层设计图,如果要单独编译该设计图,应点选project——set as top-level entity。如图8. 图8 点选编译的快件按键,鼠标移上去会显示:Start compilation。 对这一自己设计的芯片进行打包。点file——create——create symbol file for current file, 如图9. 图9 生成一个和设计图名字一样的bsf文件,即为打包的芯片。 在memory设计图中,双击空白处,输入cdu16(名称为刚才自行设计模块的文件名) 就可以调出自己打包的芯片,也可以双击后在project中点选,如图10. 图10 电路设计完成后,就是在此编译了,如果前面点选了别的文件为top-level entity不要忘 了设置下,把memory设为top-level entity。 在原理图的设计时,自己可以尝试用用工具栏中的各种辅助工具,比如注释工具,使得 自己的原理图更加直观易懂,如下图。 其中观察的zoom in,zoom out选项,单击是zoom in,按住shift后单击是zoom out, 当然直接右击就是zoom out,这和后面波形仿真中观察波形是一样的。 进行波形仿真,验证设计的正确性。新建一个vector waveform file,如图11. 图11 个人比较喜欢把设计图,波形图等界面单独显示,利用自己电脑windows7系统的预览 功能,切换起来十分方便,便于观察。点detach window,就可实现,如图12. 图12 然后在edit里面编辑end time和grid size。如图13. 图13 在左边name一栏双击,如下图。 点选node find。 第一次的时候有可能需要设置Filter中为Pin:all。 点选List,列出所有Pin。 选择Nodes Found中到Selected Nodes。(利用两者直接的四个按钮可以方便传送,删除) 完成后,如图14(此图我已经进行过波形仿真,顾不是原始的波形图) 图14 自己开始进行波形仿真。其中会发现总线上的信号D0,D1等信号左边符号显示的是io, (D0,D1本来的属性就是IO)这个问题后面再说。左边工具栏的功能,自己一个个点点试 试就知道什么功能了,很容易上手。第一次做波形仿真的时候有可能会遇到无法点选珊格, 需要自己小心意义,选满珊格,其实是没有勾选snap to grid。在工具栏倒数第二个键就是此 功能键,当然也可以在view里面选择,如图15. 图15 将一些类似的信号进行合并,一起选中后右击,点选group,进行合并或者拆分。在对 一些信号合并的时候,个人使用Quartus有个小瑕疵,不能命名为SW R1 R2 R3 BUS,这样 的信号名,有空格或者“【”等符号都会显示illegal node name。 对于那些名称很类似的信号合并,由于你需要重新排序,可以点工具栏最后那个按钮, 看英文你就知道选按照升序或者降序排列,默认的是升序,由于波形仿真需要一般都选 descenting。 点选波形仿真的快捷键。 波形仿真中有个需要注意的是,波形图的名称一定要与你所在的工程名相同。因为波形 仿真是和编译后的文件关联的。因此如果你在设计16位计数器的时候进行了波形仿真来测 试是否符合要求,如果想保留此波形图,请save as其他名称,因为后面进行memory的波 形仿真图的时候,会把原图覆盖。如果不取和工程名相同名称的波形图名称,将无法进行波 形仿真。 波形仿真完后,出来一个类似波形仿真对话框的界面,他的label 名称为:simulation如 图16. 图16 会发现该波形图比原波形图多出了8个信号,正好与原来波形图中的双向信号对应,只 是多了个后缀result。这正是你要总线输出信号。你可以试着去修改波形图(其实修改不了, 所以我一般随便双击一段波),会弹出对话框如图17. 图17 点选I want那个选项。然后出现一个对话框,点yes,发现自己创建的波形图变了。两 个英文对话框的意思就是我要重修原来的input file,你点了修改了,系统检测到你点波形图 已经改变了,因此询问你是否替换成修改后的波形图,点yes后就发现自己原来的波形图上 也多出了那几个信号。将这些信号排序组合,命名,如图18. 图18 你会发现波形仿真的结果原来的总线信号还是处于高阻态信号,后来出现的信号显示了 你预期的结果。这个时候注意,原来那些高阻态的信号不能删除,如果删除波形仿真会出错。 (不信可以自己试试,到底哪里会错误)为了避免影响自己观察,既然已经将他们打包了, 把他们放在波形仿真末尾,不碍着自己。 在设计的过程中,如果通过波形仿真发现问题错了,得修改电路图。如果没有改变顶层 的输入输出,如只改变了内部连线,则直接点波形仿真好了,不用再次重新建立波形仿真图。 同样,如果打包的芯片内部连线改变了,只用去修改下内部的连线就可以了,重新编译一下。 但是如果某个打包的芯片需要改变输入输出,那么只能将该芯片重新create symbol file for current file了,将原来的bsf文件覆盖了。不然编译的时候会显示被改变的输入或者输出端 与原来的不符合。在顶层芯片图中,也需要右击该芯片,然后选择update symbol or block。 如图19. 图19 三个选项自己英文都能够看懂,更新后引脚的位置有可能改变了,自己需要注意下,然 后重新连接正确。重新编译。 得到正确的波形图后,写实验报告的时候需要对波形图进行说明,此时点选A工具, 进行注释十分方便。 波形仿真正确后,需要进行下载电路的设计(有些图甚至不需要添加外围下载电路), 然后进行只需进行管脚绑定了。 点选Assignment->Pin Planner 只需在管教的location 选项直接输入管教的数字,就可以很简单的绑定了。 管教绑定后结果如图20. 图20 管脚绑定完再次编译,自己可以看到原来的设计图中的输入输出旁边都会显示已经绑定 好的管教,非常直观,便于自己观察。如图21. 图21 下载: 点选tools->Programmer 第一次有可能使用Hardware Setup。(本人使用的USB下载,写此文时未接上所以显示 No Hardware。实验室的下载线使用的都是并口下载线(有个学长做好了USB下载线,不知 道有没有广泛使用)。Mode选择JTAG,选中sof文件后就可以start了。) 关于下载的一些经验: 每个人都有自己的下载习惯,根据我们实验需要,我们可以养成自己的下载习惯。由于 下载需添加下载电路,万一我们要仿真原来的设计图就显得麻烦了,因此个人建议,在工程 所在的文件夹下再次新建一个工程,然后将原来的设计文件部add all进去。(在工程建立 的时候那个add file步骤,也可以点选Project->Add/Remove Files in Project进行操作)如图 22 图22 将原来的顶层图打包,作为下载的一个模块,然后添加下载电路。如下图所示: 由于我们下载经常要用到一些下载辅助模块,如扫描电路,消抖电路,7端译码器,可以专 门新建一个文件夹保存这些设计文件,然后在Project中add就可以。然后依次生成对应的 bsf文件(即打包,bsf 文件必须在工程所在的文件下),添加到下载电路中。 管脚绑定也可以利用tcl 命令来完成,我们做实验的时候要反复用到数码管的下载,数 码管的绑定每次都是一样的,而且我们都是用自己设计的扫描电路和7段译码器,因此我们 可以利用tcl命令来简化我们自己的绑定。一种比较省事的办法就是在第一次使用Pin Planner 后,点选file->export,导出文件类型选择tcl。 查看tcl 文件,我们可以看到里面的信息如下: # Copyright (C) 1991-2009 Altera Corporation # Your use of Altera Corporation's design tools, logic functions # and other software and tools, and its AMPP partner logic # functions, and any output files from any of the foregoing # (including device programming or simulation files), and any # associated documentation or information are expressly subject # to the terms and conditions of the Altera Program License # Subscription Agreement, Altera MegaCore Function License # Agreement, or other applicable license agreement, including, # without limitation, that your use is for the sole purpose of # programming logic devices manufactured by Altera and sold by # Altera or its authorized distributors. Please refer to the # applicable agreement for further details. # Quartus II Version 9.0 Build 132 02/25/2009 SJ Full Version # File: E:\code\computer system\cpu design\result\memory\mem_download.tcl # Generated on: Thu Dec 24 19:08:02 2009 package require ::quartus::project set_location_assignment PIN_184 -to q[2] set_location_assignment PIN_183 -to q[1] set_location_assignment PIN_182 -to q[0] set_location_assignment PIN_29 -to scan set_location_assignment PIN_186 -to y[6] set_location_assignment PIN_187 -to y[5] set_location_assignment PIN_188 -to y[4] set_location_assignment PIN_193 -to y[3] set_location_assignment PIN_194 -to y[2] set_location_assignment PIN_195 -to y[1] set_location_assignment PIN_196 -to y[0] set_location_assignment PIN_116 -to CLR_INDATA set_location_assignment PIN_115 -to EN_INDATA set_location_assignment PIN_152 -to CLK_COUNT set_location_assignment PIN_117 -to 161ar set_location_assignment PIN_105 -to 161pc set_location_assignment PIN_118 -to ldar set_location_assignment PIN_28 -to H set_location_assignment PIN_107 -to pcclrn set_location_assignment PIN_108 -to memenab set_location_assignment PIN_113 -to rd set_location_assignment PIN_114 -to we set_location_assignment PIN_106 -to pcload set_location_assignment PIN_123 -to pc_bus set_location_assignment PIN_124 -to sw_bus set_location_assignment PIN_122 -to reset set_location_assignment PIN_64 -to T3 保留我们所要的下载信息: package require ::quartus::project set_location_assignment PIN_184 -to q[2] set_location_assignment PIN_183 -to q[1] set_location_assignment PIN_182 -to q[0] set_location_assignment PIN_29 -to scan set_location_assignment PIN_186 -to y[6] set_location_assignment PIN_187 -to y[5] set_location_assignment PIN_188 -to y[4] set_location_assignment PIN_193 -to y[3] set_location_assignment PIN_194 -to y[2] set_location_assignment PIN_195 -to y[1] set_location_assignment PIN_196 -to y[0] 以后每次进行下载的时候,只需在Project中添加该tcl 文件,然后点选菜单栏tools->Tcl Scripts 然后选择Project中的那个tcl 文件,点选Run,即运行下这个tcl 命令。当我们去查看 原图的时候,会发现那几个数码管的下载管教已经成功绑定了。其余的利用Pin Planner可 以快速绑定。 p.s:一些补充的内容 1.关于Quartus使用 去图书馆借阅一本Quartus的书,很多书籍都有介绍如何入门使用,而且写的很详细。要学 会充分利用图书馆的书籍资。 Quartus的使用和其他软件一样,完是孰能生巧。比如放大缩小,自己可以使用鼠标的单 击,右击,其实还可以通过ctrl键和鼠标的滚轮结合使用。如果你不知道某项操作,一种方 法是在他人寻求帮助,找有经验的人,而Google恐怕是每个人最好的老师。还有一种办法 就是自己去尝试。毕竟很多软件做的都是很人性化的,作者设计的软件是很为用户考虑的, 而且通过那些选项的英文提示,我们就很容易完成我们所设想的事情。比如要用到建立mif 文件,你会发现无法填入16进制数,他会提示你请输入十进制的数,这个时候就知道他默 认的是10进制,因此你第一个想到的就是采用16进制,自己右击一下就会发现有地址和内 容的16进制选项了,我们要学会自己去尝试,一个软件很大,不可能部由别人来告诉自 己怎么使用,自己也会养成自己使用软件的习惯和窍门。 2.HDL语言 实验中的下载模块,我们尝试着使用VHDL或者Verilog来完成设计,你会发现很简单使用。 不管是使用原理图还是HDL语言,我们都可以在顶层框图导航,右击 locate in RTL viewer, 查看编译后的RTL图。为了进一步学习,应当熟练掌握HDL描述语言,在工业界以Verilog 占主导地位。查看RTL如下: 选择完后显示如下: RTL查看的好处有很多,很方便自己排错,如果你是图形输入,可以很轻松的检查线是否 存在连接错误。(光标移动到某根线就知道为什么了) 3.例化原件 本人做的时候也遇到过这种问题,自己在使用VHDL完成课程设计的时候,自己使用语言 写了一个存储器,结果编译的时候过了,但是综合的时候出错,显示逻辑单元不够,在后来 的学习当中,知道了这个是Quartus综合工具的问题,因为他不够智能。在我们每次编译完, 我们可以看到编译信息,使用了多少逻辑单元,使用了多少存储资。Quartus综合的时候 将我们的语言使用逻辑单元来实现,因此逻辑单元被部用光。解决的办法有两个:使用第 三方综合工具,例化原器件。 点选菜单栏的tools->MegaWizard Plug-in Manager,如下图: 会显示对话框如下: 点选next 在左边的方框中选择Memory Compiler->RAM:1-PORT,右半部分第一个是Cyclone芯片选 项,自己选不同的Device family可以看到左边有些资就不可以例化,因为每个芯片的ip core不一样造成的,比如我们的Cyclone芯片就有两个pll让我们调用,第二个选项选择例 化语言:VHDL,AHDL,Verilog HDL,然后选择例化后的文件名极其位置,点选next,进 行存储字的大小,线宽等选项。 可以如果还需要更加详细的参数设置,只需next下去,当然可以直接finish,利用默认的参 数。 我们可以看到可以有很多原件可以让我们调用,就如同图形输入的元器件库。 4.第三方软件 当我们熟练掌握了使用Quartus后,可以试着尝试使用第三方软件来完善我们的工程, 有些第三方软件确实比Quartus自带的工具强大,如用于仿真的Modelsim,用于综合的 Synplify,而且这些软件和Quartus软件都能很方便的配合使用。 新建工程的向导当中就有一步是选择第三方软件,我们起初选择的默认参数,即都没有 使用,当我们熟练使用后就可以试着通过调用第三方软件来实现。 ModelSim可以进行前仿真,也可以进行后仿真。(前仿真即功能仿真,不考虑延时等器 件性能,后仿真即模仿实际情况的仿真,Quartus也可以实现,在仿真的opinion选项里有勾 选是否考虑器件等因素),ModelSim的仿真功能还是很强大的。 Synplify软件是一款很流行的综合软件。就比如前面的存储器,如果自己用语言描述, Synplify的综合就知道调用存储单元来实现该功能,Synplify的好处有很多,对于逻辑资 的节省是其一大特色。Quartus的编译,综合 完成后会显示消耗的资,如果通过Synplify 综合,逻辑资有时候能节省很多。Synplify软件和Quartus软件能够很好的配合使用,可 以通过Synplify软件调用Quartus软件,也可以通过Quartus软件调用Synplify软件。
目 录 译者序 前言 第一部分 shell 第1章 文件安与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 chmod命令的其他例子 6 1.4.5 可以选择使用符号模式或绝对模式 7 1.5 目录 7 1.6 suid/guid 7 1.6.1 为什么要使用suid/guid 8 1.6.2 设置suid/guid的例子 8 1.7 chown和chgrp 9 1.7.1 chown举例 9 1.7.2 chgrp举例 9 1.7.3 找出你所属于的用户组 9 1.7.4 找出其他用户所属于的组 10 1.8 umask 10 1.8.1 如何计算umask值 10 1.8.2 常用的umask值 11 1.9 符号链接 12 1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改时间查找文件 17 2.1.7 查找比某个文件新或旧的文件 17 2.1.8 使用type选项 17 2.1.9 使用size选项 18 2.1.10 使用depth选项 18 2.1.11 使用mount选项 18 2.1.12 使用cpio选项 18 2.1.13 使用exec或ok来执行shell命令 19 2.1.14 find命令的例子 20 2.2 xargs 20 2.3 小结 21 第3章 后台执行命令 22 3.1 cron和crontab 22 3.1.1 crontab的域 22 3.1.2 crontab条目举例 23 3.1.3 crontab命令选项 23 3.1.4 创建一个新的crontab文件 24 3.1.5 列出crontab文件 24 3.1.6 编辑crontab文件 24 3.1.7 删除crontab文件 25 3.1.8 恢复丢失的crontab文件 25 3.2 at命令 25 3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 tee 39 5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准输出 41 5.7.2 重定向标准输入 42 5.7.3 重定向标准错误 42 5.8 结合使用标准输出和标准错误 43 5.9 合并标准输出和标准错误 43 5.10 exec 44 5.11 使用文件描述符 44 5.12 小结 45 第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52 7.6 使用[]匹配一个范围或集合 52 7.7 使用\{\}匹配模式结果出现的次数 53 7.8 小结 55 第8章 grep家族 56 8.1 grep 57 8.1.1 双引号引用 57 8.1.2 grep选项 57 8.1.3 查询多个文件 57 8.1.4 行匹配 57 8.1.5 行数 58 8.1.6 显示非匹配行 58 8.1.7 精确匹配 58 8.1.8 大小写敏感 58 8.2 grep和正则表达式 58 8.2.1 模式范围 59 8.2.2 不匹配行首 59 8.2.3 设置大小写 59 8.2.4 匹配任意字符 59 8.2.5 日期查询 598.2.6 范围组合 60 8.2.7 模式出现机率 60 8.2.8 使用grep匹配“与”或者“或”模式 61 8.2.9 空行 61 8.2.10 匹配特殊字符 61 8.2.11 查询格式化文件名 61 8.2.12 查询IP地址 61 8.3 类名 62 8.4 系统grep命令 62 8.4.1 目录 63 8.4.2 passwd文件 63 8.4.3 使用ps命令 63 8.4.4 对一个字符串使用grep 64 8.5 egrep 64 8.6 小结 65 第9章 AWK介绍 66 9.1 调用awk 66 9.2 awk脚本 67 9.2.1 模式和动作 67 9.2.2 域和记录 67 9.2.3 awk中正则表达式及其操作 70 9.2.4 元字符 70 9.2.5 条件操作符 70 9.2.6 awk内置变量 73 9.2.7 NF、NR和FILENAME 74 9.2.8 awk操作符 75 9.2.9 内置的字符串函数 78 9.2.10 字符串屏蔽序列 80 9.2.11 awk输出函数printf 81 9.2.12 printf修饰符 81 9.2.13 awk数组 86 9.3 小结 88 第10章 sed 用法介绍 89 10.1 sed怎样读取数据 89 10.2 调用sed 89 10.2.1 保存sed输出 90 10.2.2 使用sed在文件中查询文本的方式 90 10.2.3 基本sed编辑命令 90 10.3 sed和正则表达式 91 10.4 基本sed编程举例 91 10.4.1 使用p(rint)显示行 91 10.4.2 打印范围 91 10.4.3 打印模式 92 10.4.4 使用模式和行号进行查询 92 10.4.5 匹配元字符 92 10.4.6 显示整个文件 92 10.4.7 任意字符 92 10.4.8 首行 92 10.4.9 最后一行 93 10.4.10 打印行号 93 10.4.11 附加文本 93 10.4.12 创建sed脚本文件 94 10.4.13 插入文本 94 10.4.14 修改文本 95 10.4.15 删除文本 96 10.4.16 替换文本 96 10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 处理控制字符 99 10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 11.1.5 sort对域的参照方式 105 11.1.6 文件是否已分类 105 11.1.7 基本sort 106 11.1.8 sort分类求逆 106 11.1.9 按指定域分类 106 11.1.10 数值域分类 106 11.1.11 唯一性分类 107 11.1.12 使用k的其他sort方法 108 11.1.13 使用k做分类键排序 108 11.1.14 指定sort序列 108 11.1.15 pos用法 108 11.1.16 使用head和tail将输出分类 109 11.1.17 awk使用sort输出结果 109 11.1.18 将两个分类文件合并 110 11.2 系统sort 110 11.3 uniq用法 111 11.4 join用法 112 11.5 cut用法 114 11.5.1 使用域分隔符 115 11.5.2 剪切指定域 115 11.6 paste用法 116 11.6.1 指定列 116 11.6.2 使用不同的域分隔符 116 11.6.3 paste命令管道输入 117 11.7 split用法 117 11.8 小结 118 第12章 tr用法 119 12.1 关于tr 119 12.1.1 字符范围 119 12.1.2 保存输出 120 12.1.3 去除重复出现的字符 120 12.1.4 删除空行 120 12.1.5 大写到小写 121 12.1.6 小写到大写 121 12.1.7 删除指定字符 121 12.1.8 转换控制字符 122 12.1.9 快速转换 122 12.1.10 匹配多于一个字符 123 12.2 小结 123 第三部分 登录环境 第13章 登录环境 125 13.1 /etc/profile 125 13.2 用户的$HOME.profile 128 13.3 stty用法 129 13.4 创建.logout文件 131 13.5 小结 131 第14章 环境和shell变量 132 14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 14.2.6 使用变量来保存系统命令参数 135 14.2.7 设置只读变量 135 14.3 环境变量 136 14.3.1 设置环境变量 136 14.3.2 显示环境变量 136 14.3.3 清除环境变量 137 14.3.4 嵌入shell变量 137 14.3.5 其他环境变量 139 14.3.6 set命令 140 14.3.7 将变量导出到子进程 140 14.4 位置变量参数 141 14.4.1 在脚本中使用位置参数 142 14.4.2 向系统命令传递参数 142 14.4.3 特定变量参数 143 14.4.4 最后的退出状态 144 14.5 小结 145 第15章 引号 146 15.1 引用必要性 146 15.2 双引号 146 15.3 单引号 147 15.4 反引号 147 15.5 反斜线 148 15.6 小结 149 第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 expr用法 157 17.5.1 增量计数 158 17.5.2 数值测试 158 17.5.3 模式匹配 158 17.6 小结 159 第18章 控制流结构 160 18.1 退出状态 160 18.2 控制结构 160 18.2.1 流控制 161 18.2.2 循环 161 18.3 if then else语句 161 18.3.1 简单的if语句 162 18.3.2 变量值测试 162 18.3.3 grep输出检查 163 18.3.4 用变量测试grep输出 163 18.3.5 文件拷贝输出检查 164 18.3.6 当前目录测试 164 18.3.7 文件权限测试 165 18.3.8 测试传递到脚本中的参数 165 18.3.9 决定脚本是否为交互模式 165 18.3.10 简单的if else语句 166 18.3.11 变量设置测试 166 18.3.12 检测运行脚本的用户 166 18.3.13 将脚本参数传入系统命令 167 18.3.14 null:命令用法 167 18.3.15 测试目录创建结果 168 18.3.16 另一个拷贝实例 169 18.3.17 多个if语句 169 18.3.18 测试和设置环境变量 169 18.3.19 检测最后命令状态 170 18.3.20 增加和检测整数值 171 18.3.21 简单的安登录脚本 172 18.3.22 elif用法 173 18.3.23 使用elif进行多条件检测 173 18.3.24 多文件位置检测 174 18.4 case语句 175 18.4.1 简单的case语句 175 18.4.2 对匹配模式使用| 176 18.4.3 提示键入y或n 177 18.4.4 case与命令参数传递 177 18.4.5 捕获输入并执行空命令 178 18.4.6 缺省变量值 179 18.5 for循环 180 18.5.1 简单的for循环 181 18.5.2 打印字符串列表 181 18.5.3 对for循环使用ls命令 181 18.5.4 对for循环使用参数 182 18.5.5 使用for循环连接服务器 183 18.5.6 使用for循环备份文件 183 18.5.7 多文件转换 183 18.5.8 多sed删除操作 184 18.5.9 循环计数 184 18.5.10 for循环和本地文档 184 18.5.11 for循环嵌入 185 18.6 until循环 186 18.6.1 简单的until循环 186 18.6.2 监视文件 187 18.6.3 监视磁盘空间 187 18.7 while循环 188 18.7.1 简单的while循环 188 18.7.2 使用while循环读键盘输入 188 18.7.3 用while循环从文件中读取数据 189 18.7.4 使用IFS读文件 189 18.7.5 带有测试条件的文件处理 190 18.7.6 扫描文件行来进行数目统计 191 18.7.7 每次读一对记录 193 18.7.8 忽略#字符 193 18.7.9 处理格式化报表 194 18.7.10 while循环和文件描述符 196 18.8 使用break和continue控制循环 197 18.8.1 break 197 18.8.2 跳出case语句 197 18.8.3 continue 197 18.8.4 浏览文件行 198 18.9 菜单 199 18.10 小结 201 第19章 shell函数 202 19.1 在脚本中定义函数 203 19.2 在脚本中使用函数 203 19.3 向函数传递参数 203 19.4 从调用函数中返回 203 19.5 函数返回值测试 204 19.6 在shell中使用函数 204 19.7 创建函数文件 204 19.8 定位文件 205 19.9 检查载入函数 205 19.10 执行shell函数 205 19.10.1 删除shell函数 206 19.10.2 编辑shell函数 206 19.10.3 函数举例 207 19.10.4 将函数集中在一起 219 19.11 函数调用 219 19.11.1 在脚本中调用函数 219 19.11.2 从函数文件中调用函数 220 19.12 定位文件不只用于函数 222 19.13 小结 223 第20章 向脚本传递参数 224 20.1 shift命令 225 20.1.1 shift命令简单用法 225 20.1.2 命令行输入的最后一个参数 225 20.1.3 使用shift处理文件转换 226 20.2 getopts 229 20.2.1 getopts脚本实例 229 20.2.2 getopts使用方式 231 20.2.3 使用getopts指定变量取值 231 20.2.4 访问取值方式 232 20.2.5 使用getopts处理文件转换 233 20.3 小结 235 第21章 创建屏幕输出 236 21.1 tput用法 236 21.1.1 字符串输出 236 21.1.2 数字输出 237 21.1.3 布尔输出 237 21.2 tput用法 237 21.2.1 设置tput命令 237 21.2.2 使用布尔输出 237 21.2.3 在脚本中使用tput 237 21.2.4 产生转义序列 238 21.2.5 光标位置 239 21.2.6 在屏幕中心位置显示文本 240 21.2.7 查找终端属性 240 21.2.8 在脚本中使用功能键 241 21.2.9 使用颜色 242 21.2.10 产生颜色 243 21.2.11 创建精致菜单 246 21.3 小结 251 第22章 创建屏幕输入 252 22.1 增加记录 252 22.2 删除记录 262 22.3 修改记录 266 22.4 查看记录 270 22.5 小结 273 第23章 调试脚本 274 23.1 一般错误 274 23.1.1 循环错误 274 23.1.2 典型的漏写引号 274 23.1.3 测试错误 274 23.1.4 字符大小写 275 23.1.5 for循环 275 23.1.6 echo 275 23.2 set命令 275 23.3 小结 276 第24章 shell嵌入命令 277 24.1 shell嵌入命令完整列表 277 24.1.1 pwd 277 24.1.2 set 278 24.1.3 times 278 24.1.4 type 278 24.1.5 ulimit 279 24.1.6 wait 279 24.2 小结 279 第五部分 高级shell编程技巧 第25章 深入讨论<< 281 25.1 快速创建一个文件 281 25.2 快速创建打印文档 281 25.3 自动选择菜单 282 25.4 自动ftp传输 283 25.5 访问数据库 286 25.6 小结 288 第26章 shell 工具 289 26.1 创建保存信息的文件 289 26.1.1 使用date命令创建日志文件 289 26.1.2 创建唯一的临时文件 290 26.2 信号 291 26.2.1 杀死一个进程 292 26.2.2 检测信号 293 26.3 trap 294 26.3.1 捕获信号并采取相应的行动 294 26.3.2 捕获信号并采取行动的另 一个例子 295 26.3.3 锁住终端 297 26.3.4 忽略信号 298 26.4 eval 300 26.4.1 执行含有字符串的命令 300 26.4.2 给每个值一个变量名 301 26.5 logger命令 302 26.5.1 使用logger命令 303 26.5.2 在脚本中使用logger命令 303 26.6 小结 305 第27章 几个脚本例子 306 27.1 pingall 306 27.2 backup_gen 306 27.3 del.lines 312 27.4 access.deny 313 27.5 logroll 316 27.6 nfsdown 317 27.7 小结 317 第28章 运行级别脚本 318 28.1 怎么知道系统中是否含有运行级别目录 318 28.2 确定当前的运行级别 319 28.3 快速熟悉inittab 319 28.4 运行级别 320 28.4.1 各种运行级别 321 28.4.2 运行级别脚本的格式 321 28.4.3 安装运行级别脚本 322 28.5 使用inittab来启动应用程序 323 28.6 启动和停止服务的其他方法 324 28.7 小结 324 第29章 cgi脚本 325 29.1 什么是Web页面? 325 29.2 cgi 325 29.3 连接Web服务器 326 29.4 cgi和HTM脚本 326 29.4.1 基本cgi脚本 326 29.4.2 显示shell命令输出 328 29.4.3 使用SSI 330 29.4.4 访问计数器 330 29.4.5 使用一个链接来显示当前Web 环境变量 332 29.4.6 其他常用的环境变量 334 29.5 get和post方法简介 335 29.5.1 get方法 335 29.5.2 post方法 340 29.5.3 填充列表项 347 29.5.4 自动刷新页面 348 29.6 小结 349 附录 常用shell命令 350
新酷CMS网站管理系统是面向各类中大型站点建设和管理而设计研发的通用建站管理系统(又称新酷CMS建站系统),是目前国内用户数量最多、最受用户欢迎的建站系统。其强大的功能和简单易用的完善融合赢得了广大用户的一致认可。系统基于ASP语言ACCESS/SQL数据库开发,无论在稳定性、代码优化、运行效率、负载能力、安等级、功能可操控性和权限严密性等方面都居国内外同类产品领先地位。 新酷CMS产品特性: 良好的用户口碑 丰富的开经验 灵活的模块组合 让网站更丰富、方便网站扩展 简单易用的模板引擎 让界面想怎么换就怎么换 便捷自定义模型 自己扩展网站后续功能,省去诸多烦恼  高效的动态静态 页面部署,提高网站收录量 灵活的商业运营模式 完善的会员体系,完整的支付接口 流畅专业界面设计 良好的用户体验和网站亲和力 升级无忧指纹校验 让你及时和官方程序同步安无忧  选择新酷CMS的十大理由: 系统开 系统完方便您功能二次开发 良好口碑 十几万用户是客户对于我们的认可 服务至上 我们在为客户争取合理的利益 专业团队 多年的技术实践走在技术最前沿 领先模式 采用模板与后台相分离的技术 灵活运营 明确定位和目标实现盈利并壮大 功能强大 拥有十几个主系统可实现任何网站 操作简单 人性化的操作模式谁都可以做网站 标签自由 标签调用自己DIY实现个性化网站 持续更新 是ASPCMS中惟一有更新的产品 新酷內容管理系统具有强大的多级权限管理、针对不同信息的内容管理、面细致的统计分析管理、简单便捷的标签和模板管理、接口丰富的数据管理、可自由定制的流程管理等功能。易于部署、操作简便、可扩展性强,解决了海量信息资在整理、维护、分析、应用等方面的问题。系统在安性、稳定性、易用性方面具有较高的声誉,倍受广大站长推崇。 一、基本说明: 本程序适用于中小型ASP网站的快速建设; 结构:ASP ACESS FSO。 二、功能说明: 主要栏目设置: 新闻系统(二级分类) 公告系统 投票系统 图片系统(二级分类,组图功能) 文章系统(二级分类) 教程系统(第二文章系统,可关闭或设置整体查阅权限) 软件系统(二级分类) 留言系统 友情链接 交互式会员系统(VIP及贵宾会员可在前台提交信息,后台由管理员审核) 会员短信系统 频道系统(可生成ASP文件,实现见名知义) 广告系统(图片/SWF/JS/框架广告,后台可关闭) 作品展示系统 订单系统 影音系统(二级分类,可播放MP3、WMA、WMV、RM、FLV等) 混合型专题(内容聚合,将所有栏目中的相关内容放在一个页面中显示) 部分页面静态生成 主要功能与特色介绍 完兼容IE与Firefox 系统结构良好,搜索引擎收录快速 网站缓存功能 前台采用ASP与HTML代码分离的模板技术,采用风格模板来管理,使网站个性化更方便 自由设置的SQL防注功能 内容转向链接功能,方便引用外部内容 功能强大的参数过滤功能,确保程序安 导航菜单管理功能 交互式会员系统,VIP及贵宾会员可发布文章/教程/图片/软件/新闻/影音 混合型专题功能,可整合新闻/文章/教程/软件/图片/影音/频道/作品栏目,方便查看站相关内容 自由编辑、组合任一管理员、会员权限 后台管理员权限可细分至某个栏目的某个分类(如管理文章系统中的图形处理分类内容) 站最新信息RSS生成 频道功能,自由设定内容,页面结构自由设置 站点地图 首页头条新闻、首页自定义内容 网站音乐播放器 上传文件超强过滤,确保文件真实性 上传文件智能化分类管理 管理员公告板及会员公告板,类似便笺,便于站内适时交流 后台栏目同步发表功能 广告系统 订单系统 客户管理 后台网站日志,是站长专用的BLOG 后台管理日志,面记录管理员在后台的一切行动,以及VIP会员在前台的提交情况 方便快捷的后台栏目批处理功能 流量统计(可关闭) 后台分布式帮助系统,帮助管理员快速掌握系统的使用 数据库管理功能 灵活多变的风格,适合不同的工作环境及要求 灵活调用的模板标签,可在任何页面、任何位置进行任意调用 部分页面静态化,可批量生成默认页面,也可手工生成任何页面 后台部分栏目名称自定义 原创后台内容发布预置输入功能,减少一次性批量输入相关内容的重复输入或鼠标点击,给客户带来更好的人性化体验; 会员短信系统,轻松实现会员间、会员与管理员间的交流 后台登录允许IP地址列表功能 内容关键词链接到站内搜索功能 作品栏目增加二级分类 内容页广告位预置管理 留言系统进行更新,可实现悄悄话留言及悄悄话回复,留言者(会员)可查看自己的悄悄话及别人回复给自己的悄悄话; SEO优化 后台智能系统,实现定期自动操作,提高后台安性,实现简单站内资防盗链 无处不在的人性化设置,使管理者顺心,让浏览者舒心 三、特色: 1、上手容易: 解压后即可投入使用,基本设置可在后台搞定,同时也有超级管理员帮助系统,使您快速掌握本系统。 2、建站迅速: 本系统采用ASP FSO ACESS,建站成本低廉、快速,可以快速建立一个界面好、功能强、安性高的中小型WEB站点。 3、功能强大: 本系统定位于中小型ASP网站程序,前后台操作方便,功能强大。 4、个性设置: 本系统设置有许多贴心设计,助您轻松、愉悦掌握系统操作;站风格模板化,便于风格交流,满足个性要求。 5、改造容易: 本系统采用开放式设计,每个文件皆有相应说明,助你轻松改造。 四、使用: 数据库设置:前台数据库链接地址修改在Ft_conn.asp文件中,后台数据库链接地址修改在admin/Ft_conn_admin.asp文件中; 网站基本参数设置在Ft_config.asp文件中,在后台通过FSO功能进行实时修改,如果你的网站空间不支持FSO,可以手工编辑此文件,然后再重新上传,即可实现设置的更改; 首页文章/软件分类调用,请在后台分好类后,打开首页风格模板,填入想要在首页调用的大类ID值(cat_id),即可在首页实现分类调用; 当网站处于关闭状态时,为安起见,在提示页面中没有提供管理员登录链接,管理员可在IE地址栏直接输入admin/admin_login.asp,即可直接登录; 后台登录:admin/admin_login.asp,初始帐号/密码:admin/adminadmin。 更多使用说明详见后台在线帮助系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值