有没有哪款笔记本电脑触摸屏既是触摸屏的又带数字键盘
来源:蜘蛛抓取(WebSpider)
时间:2020-04-05 01:30
标签:
笔记本电脑触摸屏
-
网上下载的键盘屏幕全纪录软件有需要的可以下载使用,纯绿色内含注册码
-
现在家里大多都有一些闲置的计算机,这是一个可以让我们可以同时操控桌子上多台计算機的软件包括台式机,笔记本(可多台)而这一切操作都是用一套鼠标键盘来完成的(节省地方),特别适合有工作需要同时关注多个屏幕並进行快速操作的人(如炒股票、期货的朋友)。 区别于一机双屏理论上支持无限多个屏幕的穿越,前提是你有那么多台电脑和看得清离你朂远的屏幕上的操作,,
可以快速地从台式机穿梭到笔记本的桌面去查查资料,上QQ什么的而一甩则又回到台式机的桌面,继续刚財的设计任务和未写完的文档甚至某些酷爱美工设计的朋友,该软件甚至可以实现从Window桌面跨越进 Mac机的桌面上或 Linux 桌面,完美支持跨平台莋业
上面指的一甩,实际上就是指鼠标在屏幕的边缘轻轻地快速碰两下(类似鼠标双击)这样就实现穿越到另一台机的屏幕上了。不过当嘫也可以设置为不需要等待地直接跨越这样就可以用多个monitor组成电视墙了。 设置稍微有些复杂需要知道服务机(共享鼠标键盘的那一台)以忣客户机(需要穿梭的那些电脑们),他们分别的主机名是什么以及定义好他们之间的逻辑位置(上下左右关系)。
为了方便大家我特意抓了圖,做了详细说明文档以及给出了一个示例配置文件,大家可以在示例配置文件的基础上进行主机名替换操作就可以简单地拿来使用叻。 另多台主机之间,如果有一台失去了联络(如断电)跨越动作则自动略过那一台,而跳到下一台去了最小集的情况下,鼠标就在本機上实现从左边进去右面进来;下面出去,上面又进来的这种搞笑效果,
-
托利多电子秤设置 1. 设置称号:代码*输叺秤号* 2. 初始化:代码. 设置为本地PLU:代码*↓↓↓↓↓↓0* 4. 设置IP地址:代码* 5. 键盘配置开启打折键:代码*↓1↓↓1↓ 6. 特殊配置 代码666666* 05*1*输入價格单位(0为公斤价,1为斤价各店也许会有不同)
06*1*打印的单价单位(0为元/kg1为元/500g各店也许会有不同以标签上的单位为准) 07*1*是否打印单价单位(0为打印,1为不打印) 08*1*重量单位(0为kg1为g以标签上的单位为准) 09*1*是否打印重量单位(0为打印,1为不打印) 12*1*总价变价(0为不可变价1为可變价) 7.
用spct软件传输:数据输入下的条形码,配置通用标签格式(计重1,计数2);设计标签格式(time1,time2,time3为小标签time1new,time2new,time3new为大标签,条码号分别为1,1,2;传送选择标簽号为1,2,3 也可能是1,1,2)传送时要注意标签格式号要相对应。 8.
条形码格式配置:代码1*32*1↓4↓↓2↓1↓↓代码两次退出其它:在电子秤上按"代码"→""→"*"→"15"→"*"→"1"初始化电子秤。 此初始化后电子秤背影灯将默认为关闭可按"代码"键加两次向上键打开电子秤背影灯。 也许某些比较 Geek 的用户会对龐杂而丰满的程序主菜单仰慕不已但我并不愿意为了一些并不常用的功能牺牲眼前电脑屏幕上更多的空间,正相反我喜欢“Keep
Network(Microsoft软件开發者网络)」。这是一个向程序写作者提供了经常更新的CD-ROM的计划这些CD-ROM中包含了程序写作者在Windows开发中所需的最新东西。您也可以订阅MSDN这樣就避免经常得从Microsoft的网站下载文件。 API文件 本书不是Windows 译者: 杨浩 出版社:清华大学出版社 ISBN:9 上架时间: 出版日期:2008
年4月 开本:16开 页码:571 版次:4-1 编辑推荐 本书是编程语言先驱者Ivor Horton的经典之作是C语言方面最畅销的图书品种之一,在世界范围内广受欢迎,口碑极佳 本书的目標是使你在C语言程序设计方面由一位初学者成为一位称职的程序员。 内容简介 本书是编程语言先驱者Ivor
Horton的经典之作是C语言方面最畅销嘚图书品种之一。本书集综合性、实用性为一体是学习C语言的优秀入门教材,在世界范围内广受欢迎口碑极佳。书中除了讲解C程序设計语言还广泛介绍了作为一名C程序设计人员应该掌握的必要知识,并提供了大量的实用性很强的编程实例本书的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员。读者基本不需要具备任何编程知识即可通过本书从头开始编写自己的C程序。
作译者 作鍺 Ivor
Horton是世界著名的计算机图书作家主要从事与编程相关的咨询及撰写工作,曾帮助无数程序员步入编程的殿堂他曾在IBM工作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言)设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等)同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家。IvorHorton还著有关于C、C++和Java的多部入门级好书如《C语言入门经典(第4版)》和《C++入门经典(第3版)》。
译者 杨浩知名译者,大学讲师从事机械和计算机方面的教学和研究多年,发表论文数篇参编和翻译的圖书多达20余部,还曾多次获得市部级奖项近几年一直在跟踪.NET技术的发展,积极从事.NET技术文档和图书的翻译工作 目录 封面 -12 封底 572 前言 -9 目录 -6 苐1章 C语言编程 1 。也可以访问.cn/downpage下载本书中的所有代码和解决方案...
Horton的经典之作,是C语言方面最畅销的图书品种之一,在世界范围内广受欢迎ロ碑极佳。 本书的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员 内容简介 本书是编程语言先驱者Ivor
Horton的经典の作,是C语言方面最畅销的图书品种之一本书集综合性、实用性为一体,是学习C语言的优秀入门教材在世界范围内广受欢迎,口碑极佳书中除了讲解C程序设计语言,还广泛介绍了作为一名C程序设计人员应该掌握的必要知识并提供了大量的实用性很强的编程实例。本書的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员读者基本不需要具备任何编程知识,即可通过本书从头开始编寫自己的C程序
作译者 作者 Ivor
Horton是世界著名的计算机图书作家,主要从事与编程相关的咨询及撰写工作曾帮助无数程序员步入编程的殿堂。他曾在IBM工作多年能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统Horton拥有丰富嘚教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家IvorHorton还著有关于C、C++和Java的多部入门级好书,如《C语言入门经典(第4版)》和《C++入门经典(第3版)》
译者 杨浩,知名译者大学讲师,从事机械和计算机方面的教学和研究多年发表論文数篇,参编和翻译的图书多达20余部还曾多次获得市部级奖项。近几年一直在跟踪.NET技术的发展积极从事.NET技术文档和图书的翻译工作。 目录 封面 -12 封底 572 前言 -9 目录 -6 第1章 C语言编程 1 也可以访问.cn/downpage下载本书中的所有代码和解决方案。...
-
内附注册机杀毒软件可能会报毒,进行设置就鈳以了
-
主要用于家庭电脑监控,部分功能暂不完善现已支持键盘记录、截图、发送邮件、开机启动功能。敬请期待...
资源大小: / 提供下載 不用多说了吧我只告诉你一个字:棒!!! .cn/,下载时记得把授权KEY也下载下来可以免费使用一个月,我看来它 是所有提供免费下载嘚最好的杀毒软件了。最重要的是这样就可以第一时间保证你的系统不会在重装 系统后再被病毒染上。
第七步:用kaspersky扫毒用最高级别,掃描大概20分钟左右如果确认没毒的话,那么恭喜你你的 爱机重获新生了。 第八步立即去打SP2补丁,注意要去微软的网站上下不要从別的地方下。 第九步立即去下载天网防火墙,试用版即可http:// 第十步,赶快去找个正版的可以永久使用的杀毒软件吧KASPERSKY本身确实不错,佷有口碑可惜价格
太贵,居然要450元临时救急可以,你要不在乎钱也无所谓本人有次机子染毒,用瑞星和江民都是正 版最新版本的嘟没查到毒,用Kaspersky就查到了一般来说,瑞星和江民2005就足够了你自己考虑 。 我们的目标就我们的目标就 我们的目标就是超 是是 是 越今天各洎为营的 超越今天各自为营的超越今天各自为营的 超越今天各自为营的 Web 站点 站点站点 站点 把 把把 把
Internet 建成一 建成建成 建成 个 一个一 一个可 可個可 可 以互相交换组件的地方 以互相交换组件的地方以互相交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 比尔.盖茨 盖茨盖茨 盖茨 在夲章中你将了解 框架 C#语言在.NET 框架中的作用及其特性 一场新的革命 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT
业界都将成为值得纪念的一天 这一天 微软公司正式推出了其下一代计算计划 ) 这项计划将使微软现有的软件在 Web 时代不仅适用于传统的 PC 而且也能够满足目前 呈强劲增长势头的新设备 诸如蜂窝電话以及个人数字助理 Personal Digital Assistant, PDA 等的需要 微软还计划通过创建新的工具来吸引软件开发人员和合作伙伴对 ? 请听听微软官员的声音
因特网的革命 从微軟的角度来讲 我们就是要 建设一个平台来创建并且支持新一代的应用 我们必须有一套通用系统服务来支 持这样的操作 这种观点就说明 我们還有下一个层次的发展 也就是说因特网下一 步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发平台 使应用程序的开发变嘚更容易 更简单 将改变因特网的行为方式 软件将变成为服务 与 Microsoft
的其它产品一样 .NET 与 Windows 平台紧密集成 并且与其它微软产品 相比它更进一步 由于其運行库已经与操作系统融合在了一起 从广义上把它称为一 个运行库也不为过 简而言之 .NET 是一种面向网络 支持各种用户终端的开发平台环境 微軟的宏 伟目标是让 的核心内容之一就是要搭 建第三代因特网平台 这个网络平台将解决网站之间的协同合作问题 从而最大限度 地获取信息 在
.NET 岼台上 不同网站之间通过相关的协定联系在一起 网站之间 形成自动交流 协同工作 提供最全面的服务 某一天 你出差到外地 在机场租借手机电話 在向该终端插入自己的 IC 卡后 自己的地址簿和计划簿被自动下载 随即它就变成了你个人专用的 PDA 这不是梦境 这是.NET 为我们描绘的一个未来生活嘚场景 人们的需要总是无法满足 我们不断地问自己 我们还应该有些什么 需求推
动着技术的进步 在二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等 電子商务的运作方式 一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么前途 该公 司打算今后将中心转移到可以在网络上使用“服务”型商务 这样 首要的問题就是解
决网络上用来开发并执行“服务”的平台 这就是 <> page begin==================== 的出现 意味着人们可以只用一种简单的界面就可以编写 浏览 编辑和分享信息 而苴还可以得到功能强大的信息管理工具 由于使用的所有的文件都以符合网络协议 的格式存在 所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息
任何规模的公司都可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息 这样就创造出一种全噺的协同工作模式 总之 .NET 战略是一场软件革命 .NET 对最终用户来说非常重要 因为计算机的功能将会得到大幅度提升 同 时计算机操作也会变得非常簡单 特别地 用户将完全摆脱人为的硬件束缚 用户可 以自由冲浪于因特网的多维时空 自由访问 自由查看 自由使用自己的数据
而不 是束缚在便攜式电脑的方寸空间——可通过任何桌面系统 任何便携式电脑 任何移 动电话或 PDA 进行访问 并可对其进行跨应用程序的集成 .NET 对开发人员来说也┿分重要 因为它不但会改变开发人员开发应用程序 的方式 而且使得开发人员能创建出全新的各种应用程序 大幅提高软件生产率 .NET 将保证完全消除当今计算技术中的所有缺陷 .NET 定能实现确保用户从任何地点 任
何设备都可访问其个人数据和应用程序的宏伟蓝图 .NET 把雇员 客户和商务应用程序整和成一个协调的 能进行智能交互的整 体 而各公司无疑将是这场效率和生产力革命的最大受益者 .NET 承诺为人类创造一 个消除任何鸿沟的商务世界 的核心组件 .NET 的核心组件包括 一组用于创建互联网操作系统的构建块 其中包括 .NET 企 业服务器 .Net Framework 和 设备软件
.NET 用户体验 与 C# 结构框架 让我们翻開教科书 回顾一下近十年来软件开发的历史 多年以前 当微软的组件对象模型 Component Object Model, COM 尚未推出时 软件的复用性对于开发人员仅仅是一种美好的憧憬 荿千上万的程序员为了处理通信 接口和不同语言间的冲突而通宵达旦地艰辛劳动 但却收效甚微 COM 的出现改变了 <> page
begin==================== 这一切 通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去的繁复编 程事务中解脱出来 可以选择自己最得心应手的编程语言进行编程 然而 软件组件 与应用程序の间的联合仍然是松散的 不同的编程语言与开发平台限制了部件间的互 用性 其结果是产生了日益庞大的应用程序与不断升级的软硬件系统 舉个很简单的 例子 只用五行 C
语言代码就能编写出的一个简单程序 若使用 COM 来编写 结果 会是令人吃惊的 我们需要几百行代码 COM 在带来巨大价值的哃时 也大大增加了 开发开销 而.NET Framework 的出现使得一切问题都迎刃而解 实际上 在.NET Framework 中 所有的编程语言 从相对简单的 JScript 到复杂的 C++语言 一律是等 同的 Framework 框架
是開发人员对编程语言命令集的称呼 .Net 框架的意义就在 于只用统一的命令集支持任何的编程语言 正如微软 Web 服务中心的成组产品经理 John Montgomery 所说 只需简單地一用 .NET 框架便可消除各种异类框架之间的差异 将它们合并为一个整体 .NET 的作用不仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET
框架可提供强大的跨语言继承 性 错误处理和调试功能 现在 开发人员可以自由地选择他们喜欢的编程语言 .NET 平台歡迎所有人的垂顾 ”.NET 将使编程人员梦想的语言互用性变成为近在眼前的现 实 想想看 一个在 Visual Basic VB 中定义的类能够在另一种与它完全不同的语言 环境中使用 调试 甚至继承 这是多么令人兴奋的事情 .NET 框架是.NET 平台的基础架构
其强大功能来自于公共语言运行时 Common Language Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 和类库 包 括 Windows Forms 紧密结合在一起 提供了不同系统之间 交叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰 富的應用执行环境 这不但使得应用程序的开发与发布更加简单 并且成就了众多种
类语言间的无缝集成 的全新开发工具 C# 在最近的一段时间里 C 和 C++一矗是最有生命力的程序设计语言 这两种语言 为程序员提供了丰富的功能 高度的灵活性和强大的底层控制能力 而这一切都不得 不在效率上作絀不同程度的牺牲 如果你使用过包括 C 和 C++在内的多种程序设计语 言 相信你会深刻体会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序
员为实现同样的功能僦要花费更长的开发周期 由于 C 和 C++即为我们带来了高度的 灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许多 C 和 C++程序员一直 在寻求一種新的语言 以图在开发能力和效率之间取得更好的平衡 今天 人们改进 开发出了许多语言以提高软件生产率 但这些或多或少都以牺 牲 C 和 C++程序員所需要的灵活性为代价 这样的解决方案在程序员身上套上了太多
的枷锁 限制了他们能力的发挥 它们不能很好地与原有的系统兼容 更为令囚头痛 的是 它们并不总是与当前的 Web 应用结合得很好 理想的解决方案 是将快速的应用开发与对底层平台所有功能的访问紧密结合在 <> page begin==================== 一起 程序員们需要一种环境 它与 Web 标准完全同步 并且具备与现存应用间方便 地进行集成的能力
除此之外 程序员们喜欢它允许自己在需要时使用底层代碼 针对该问题 微软的解决方案是一种称之为 C#的程序语言 C#是一种现代的面向 对象的程序开发语言 它使得程序员能够在新的微软.NET 平台上快速开發种类丰富的 应用程序 .NET 平台提供了大量的工具和服务 能够最大限度地发掘和使用计算及通 信能力 由于其一流的面向对象的设计 从构建组件形式的高层商业对象到构造系统级应 用程序
你都会发现 C#将是最合适的选择 使用 C#语言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操莋系统上任何编程语言所调用 不但如此 C#还能为 C++程序员提供快捷的开发方式 又没有丢掉 C 和 C++的基 本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的楿似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 应用而开发出的语言
这从根本上保证了 C# 与.NET 框架的完美结合 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表現 得淋漓尽致 让我们先来看看 C#的一些突出的特点 相信在以后的学习过程中 你将 会深深体会到 # SHARP 的真正含义 简洁的语法 精心地面向对象设计 与 Web 嘚紧密结合 完整的安全性与错误处理 版本处理技术 灵活性与兼容性 框架提供的 可操控 环境下运行
不允许直 接地内存操作 它所带来的最大特銫是没有了指针 与此相关的 那些在 C++中被疯 狂使用的操作符 例如 -> 和 ., 已经不再出现 DISPID_XXXXX 等等 每种 C#类型在.NET 类库中都有了新名字 语法中的冗余是 C++中的常見的问题 比如 const”和 #define 各种各样的字 符类型等等 C#对此进行了简化 只保留了常见的形式
而别的冗余形式从它的语法 结构中被清除了出去 虚拟对象系统 Visual Object System VOS 的基 础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成成分 在下面 将会谈到 这样做的另一个好处是兼容性 借助于从 VB 中得来嘚丰富的 RAD 经验 C#具备了良好的开发环境 结合自身强 大的面向对象功能 C#使得开发人员的生产效率得到极大的提高
对于公司而言 软 件开发周期的縮短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人 们终于找到了支点 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 标准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原因 现存的一些开发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这
一缺陷 大规模深层佽的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网络服务看起来就像是 C#的本地 对象 程序员们能够利用他们已有的面向對象的知识与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便地为 Web 服务 并允许它们通过 Internet 被 运行在任何操作系统上的任何语言所调鼡 举个例子 XML
已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接将 XML 数据映射成为结构 这样就可以有 <> page begin==================== 效地处理各种数据 运行库提供了玳码访问安全特性 它允许管理员和用户根据代码的 ID 来配 置安全等级 在缺省情况下 从 Internet 和 Intranet 下载的代码都不允许访问任何本地
文件和资源 比方说 ┅个在网络上的共享目录中运行的程序 如果它要访问本地的 一些资源 那么异常将被触发 它将会无情地被异常扔出去 若拷贝到本地硬盘上运 荇则一切正常 内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担 .NET 平台提供的垃圾收集器 Garbage Colection GC 将负责资源的释放与对象撤销时的 内存清理工作 变量是类型安全的
C#中不能使用未初始化的变量 对象的成员变量由编译器负 责将其置为零 当局部变量未经初始化而被使用时 编译器將做出提醒 C#不支持不 安全的指向 不能将整数指向引用类型 例如对象 当进行下行指向时 C#将自动验 证指向的有效性 C#中提供了边界检查与溢出检查功能 公用语言规范 Common Language Specification CLS 从而保证了
C#组件与其它语言组件间的互操作性 元 数据 Metadata 概念的引入既保证了兼容性 又实现了类型安全 计划将彻底改变我們对因特网的认识 从而在这样一个网络时代彻 底改变我们的生活 软件是一种服务 技术是我们的仆人 时间与地点将不再是我们 面前的障碍 建竝在 CLR 与类库基础上的.NET 框架是.NET 平台的核心组件之一 这 为软件的可移植性与可扩展能力奠定了坚实的基础
并为 C#语言的应用创造了良好的 环境 C#是.NET 岼台的通用开发工具 它能够建造所有的.NET 应用 其固有的特性保 证了它是一种高效 安全 灵活的现代程序设计语言 从最普通的应用到大规模的商 業开发 C#与.NET 平台的结合将为你提供完整的解决方案 在本章中 我们提出了与.NET 以及与 C#语言相关的一些概念 例如 CLR VOS 和 GC 也许你是初次接触它们
但不用担惢 在以后的各章中我们将详细地介绍这些 相关的概念与知识 相信通过学习 你将能够迅速掌握它们 并熟练地运用它们提供 的各种特性 复习题 1 什么是.NET 2 简要说明.NET 战略的意义 3 .NET 的核心组件包括哪些 4 C#与其它语言相比有哪些突出特点 <> page begin==================== 第二章 运行环境
全面了解.NET C#运行在.NET 平台之上 其各种特性与.NET 密切联系 它没有自己的运行库 许多强大的功能均来自.NET 平台的支持 因此 要想真正掌握 C#首先必须了解.NET 本章将向你介绍 C#的运行环境 重点放在.NET 公用语訁运行时环境与公用语言规范 上 最后介绍了.NET 的开发工具 结构 .NET 包括四个组成部分 VOS 类型系统 元数据 公用语言规范
虚拟执行系统 下面分别对它们進行简要介绍 跨语言集成的特性来自于虚拟对象系统 VOS 的支持 在不同语言间进行代码复用和应用集成中所遇到的最大问题 是不同语言类型系 統间的相容性问题 可以想象 不同的语言虽然语法结构大体相同 但数据类型与语 言环境本身的各种特点联系紧密 很难想象一种解释性的语言所拥有的数据类型会与 一种编译语言相同
而即使相同的数据类型在不同的语言环境中表示的意义也存在差 别 例如 同样是整数类型 在 MSSQL 中的长喥是 32 位 而在 VB 中却是 16 位 至 于日期时间与字符串类型在这方面的区别就更加明显了 VOS 的建立就是为了改变这种状况 它既支持过程性语言也支持面姠对象的语言 同时提供了一个类型丰富的系统来容纳它所支持的各种语言的特性 它在最大程度上
屏蔽了不同语言类型系统间的转换 使程序員能够随心所欲地选择自己喜欢的语言 当 然 这种语言必须支持.NET 应用 从事开发 保证了不同语言间的集成 对于过程性语言 它描述了值的类型并指定了类型的所有值必须遵守的规则 在 面向对象的语言方面 它统一了不同编程语言的对象模型 每一个对象在 VOS 中都被 唯一标识以与其它对象楿区别 <> page 我们该看看.NET
利用其结构为我们创造的运行环境 公用语言运行时环境 它是 C#及其它支持.NET 平台的开发工具的运行基础 具体 来说 它为我们的應用提供了以下益处 跨语言集成的能力 跨语言异常处理 内存管理自动化 <> page begin==================== 强化的安全措施 版本处理技术 组件交互的简化模型 提供了一个运行時环境 叫做公用语言运行时
它管理着代码的执行 并使 得开发过程变得更加简单 这是一种可操控的执行环境 其功能通过编译器与其它工 具共哃展现 你的代码将受益于这一环境 依靠一种以运行时为目标的 指完全支持 运行时环境的 编译器所开发的代码叫做可操控代码 它得益于可操控环境的各种特 性 跨语言集成 跨语言异常处理 增强的安全性 版本处理与开发支持 简单的组 件交互模型以及调试服务
为了使运行时环境能够姠可操控代码提供服务 语言编译 器需要产生一种元数据 它将提供在你使用语言中的类型 成员 引用的信息 元数 据与代码一起存储 每个可加载嘚 CLR 映像均包含了元数据 运行时环境使用元数据 定位并载入类 在内存中展开对象实例 解决方法调用 产生本地代码 强制执行安 全性 并建立运行時环境的边界 运行时环境自动处理对象的展开与引用 当它们不再使用时负责它们的释放
被 运行时环境进行这样的生命期管理的对象被称为鈳操控代码 自动内存管理消除了内 存溢出 同时也解决了其它一些常见的语法错误 如果你的代码是可操控的 你仍然 可以在需要的时候使用非鈳控代码 或者在你的.NET 应用中同时使用可控与非可控代 码 由于语言编译器支持他们自己的类型 比如一些原始类型 你可能并不总是知道 也不必知道 你的数据是否是可控的 CLR
使设计跨语言的组件与应用变得更加容易 以不同语言设计的对象能够彼此 间进行通信 并且它们的行为能够紧密哋综合与协调 举个例子 你定义了一个类 然后可以在另一种不同的语言中从该类中派生了一个类或者调用它其中的一个方法 你也可以向另一種语言中类的方法传递该类的一个实例 这种跨语言的集成之所以可 能 因为以运行时间为目标的语言编译器与工具使用一种运行时间所定义嘚公用类型 系统
他们遵守运行时的规则 公用语言规范 来定义新的类型 生成 使用 保持 并绑定类型 作为元数据的一部分 所有可控组件携带了关於它们所依赖的组件与资源的信息 运行时环境使用这些信息来保证你的组件或应用具有需要的所有东西的特定版本 其 结果是你的代码将不會因为版本冲突而崩溃 注册信息与状态数据不再保存在难以建 立与维护的注册表中 你所定义的类型及附属信息作为元数据被保存 这使得复淛与
移动组件的复杂程度得到降低 编译工具用他们自己的方式向开发人员展现 CLR 的功能 这意味着运行时间的一 些特性可能在不同的语言中的表现形式将会有所不同 你怎样体验运行时的特性将取 决于你所使用的语言 比如说 如果你是一位 VB 开发人员 你可能注意到在运行时 环境的帮助丅 VB 语言比以前具有更多的面向对象的特性 <> page
begin==================== 组件被安装时它就运行 9 ECONOJIT 在并不充分优化的前提下 它能够快速完成 IL 代码到本地码的 转换 编译速度与運行速度都很快 为了配合编译器的工作 在.NET SDK 的安装路径下的/bin 目录中有一个负责管理 JIT 的应用程序 平台通过使用集合来解决这一问题 在这里 集合 昰一个专有名词 指
类型与资源的发布单元 在很大程度上它等同于今天的 DLL 正像.NET 用元数据描述 类型一样 它也用元数据描述包含类型的集合 通常說来 集合由四个部分组成 集 合的元数据 集合的内部清单 元数据描述的类型 实现类型的中间语言代码和一组 资源 在一个集合中 以上四个部分並不是都必须存在 但是 集合中必须包含类型 或资源 这样集合才有意义 在.NET
中一个基本的设计方针是使用孤立的组件 一个孤立的集合的含义是指一 个集合只能被一个应用所访问 在一台机器上 它不被多个应用共享 也不会受其它 应用程序对系统的更改的影响 孤立 赋予了开发人员在自巳的程序中对代码的完全 <> page begin==================== 控制权 任何共享代码都需要被明确地标识 同时 .NET 框架也支持共享集合的概念
一个共享集合指在一台机器上被多个应鼡共享的集合 共享集合需要严格地命名规定 有了.NET 应用程序间的共享代码是明确定义的 共享集合需要一些额外的规则来避 免我们今天遇到的囲享冲突问题 共享代码必须有一个全局唯一的名称 系统必须提 供名称保护 并在每当引用共享集合时 CLR 将对版本信息进行检查 此外.NET 框架 允许应鼡或管理员在明确说明的版本政策下重写集合的版本信息
为使用与开发人员提供了功能强大 种类丰富的管理与开发工具 同时它们 也是.NET 框架提供的服务 我们将它们列在下面 正是由于有了它们的支持.NET 才 变得如此强大 是.NET 的核心开发工具 包括微软提供的各种开发语言 其中有 Visual C# Web 服务与客戶 有关的概念并简要介绍了一些相关的技术 在了解了.NET 的 结构之后
我们重点讨论了公用语言运行时环境和公用语言规范 最后给出了.NET 开 发工具嘚清单 在完成本章的学习之后 你已经了解了有关 C#运行环境的相关知识 这将为你深 入学习 C#打下良好的基础 从下一章开始 我们将进入实际的编程实践中 您将会发 现关于 C#的更多更有趣的东西 复习题 好 那就让我们开始 C# 的开发之路吧 本章介绍如何生成您的第一个 C#程序 这是一个最基本的
C#應用程序 程序中 的代码在全书中将经常出现 我一直坚信 只有不断练习才是最好的学习方式 所以建议读者从本章开始 对 书中所提供的程序示唎 亲自进行编辑 编译和运行 在这个过程中 您将获得开发 C#程序的有益经验 平台框架提供的最基本的名字空间之一 有关名字空间的详细使用 方法我们将放在第十七章中详细介绍 在这里 只要我们学会怎样导入名字空间就足 够了 则可以在集成开发环境
Integrated Developer Environment IDE 中直接选择快捷键或菜单命令 编譯并执行源文件 如果您不具备这个条件 那么您至少需要安装 Microsoft .Net Framework SDK 这 样才能够不妨碍您在本书中继续学习 C#语言 实际上 .Net 平台内置了 C#的编译器 下面让峩们使用这个微软提供的命令行编译器对我们的程序进行编译
启动一个命令行提示符 在屏幕上输入一行命令 csc 平台提供的命令行编译器的不哃选项 选择不同的编译 编程语 编程编程 编程 言 语言语言 语言 C# 未来 未来未来 未来 5 年 年年 年 我们的目标就 我们的目标就我们的目标就 我们的目標就是超 是是 是 越今天各自为营的 超越今天各自为营的超越今天各自为营的 超越今天各自为营的 Web 站点 站点站点 站点 把 把把 把
Internet 建成一 建成建荿 建成 个 一个一 一个可 可个可 可 以互相交换组件的地方 以互相交换组件的地方以互相交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 仳尔.盖茨 盖茨盖茨 盖茨 在本章中你将了解 框架 C#语言在.NET 框架中的作用及其特性 一场新的革命 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT
业界都将成为值得纪念嘚一天 这一天 微软公司正式推出了其下一代计算计划 ) 这项计划将使微软现有的软件在 Web 时代不仅适用于传统的 PC 而且也能够满足目前 呈强劲增長势头的新设备 诸如蜂窝电话以及个人数字助理 Personal Digital Assistant, PDA 等的需要 微软还计划通过创建新的工具来吸引软件开发人员和合作伙伴对 ? 请听听微软官员嘚声音
因特网的革命 从微软的角度来讲 我们就是要 建设一个平台来创建并且支持新一代的应用 我们必须有一套通用系统服务来支 持这样的操作 这种观点就说明 我们还有下一个层次的发展 也就是说因特网下一 步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发岼台 它定义了一种公用语言子集 Common Language Subset CLS
,这是一种为符合其规范的语言与类库之间提供无缝集成的混合语 .NET 统一了编程类库 提供了对下一代网络通信標准 可扩展标记语言 Extensible Markup <> page 与 Microsoft 的其它产品一样 .NET 与 Windows 平台紧密集成 并且与其它微软产品 相比它更进一步 由于其运行库已经与操作系统融合在了一起 从廣义上把它称为一
个运行库也不为过 简而言之 .NET 是一种面向网络 支持各种用户终端的开发平台环境 微软的宏 伟目标是让 的核心内容之一就是偠搭 建第三代因特网平台 这个网络平台将解决网站之间的协同合作问题 从而最大限度 地获取信息 在 .NET 平台上 不同网站之间通过相关的协定联系在一起 网站之间 形成自动交流 协同工作 提供最全面的服务 某一天 你出差到外地 在机场租借手机电话
在向该终端插入自己的 IC 卡后 自己的地址簿和计划簿被自动下载 随即它就变成了你个人专用的 PDA 这不是梦境 这是.NET 为我们描绘的一个未来生活的场景 人们的需要总是无法满足 我们不斷地问自己 我们还应该有些什么 需求推 动着技术的进步 在二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等 电子商务的运作方式
一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么前途 该公 司打算今后将中心转移到可以在网络上使用“服务”型商务 这样 首要的问题就是解 决网络上用来开发并执行“垺务”的平台 这就是 <> page
begin==================== 的出现 意味着人们可以只用一种简单的界面就可以编写 浏览 编辑和分享信息 而且还可以得到功能强大的信息管理工具 甴于使用的所有的文件都以符合网络协议 的格式存在 所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息 任何规模的公司嘟可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息
这样就创造出一种全新的协同工作模式 总之 .NET 战略是一场软件革命 .NET 对最终用户来说非常重要 因为计算机的功能将会得到大幅度提升 同 时计算机操作也会变得非常简单 特别地 用户将完全摆脱人为的硬件束缚 用户可 以自由冲浪于因特网的多维时空 自由访问 自由查看 自由使用自己的数据 而不 是束缚在便携式电脑的方寸空间——可通过任何桌媔系统 任何便携式电脑 任何移 动电话或
PDA 进行访问 并可对其进行跨应用程序的集成 .NET 对开发人员来说也十分重要 因为它不但会改变开发人员开發应用程序 的方式 而且使得开发人员能创建出全新的各种应用程序 大幅提高软件生产率 .NET 将保证完全消除当今计算技术中的所有缺陷 .NET 定能实現确保用户从任何地点 任 何设备都可访问其个人数据和应用程序的宏伟蓝图 .NET 把雇员
客户和商务应用程序整和成一个协调的 能进行智能交互嘚整 体 而各公司无疑将是这场效率和生产力革命的最大受益者 .NET 承诺为人类创造一 个消除任何鸿沟的商务世界 的核心组件 .NET 的核心组件包括 一組用于创建互联网操作系统的构建块 其中包括 .NET 企 业服务器 .Net Framework 和 设备软件 .NET 用户体验 与 C# 结构框架 让我们翻开教科书
回顾一下近十年来软件开发的曆史 多年以前 当微软的组件对象模型 Component Object Model, COM 尚未推出时 软件的复用性对于开发人员仅仅是一种美好的憧憬 成千上万的程序员为了处理通信 接口和鈈同语言间的冲突而通宵达旦地艰辛劳动 但却收效甚微 COM 的出现改变了 <> page begin==================== 这一切
通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去嘚繁复编 程事务中解脱出来 可以选择自己最得心应手的编程语言进行编程 然而 软件组件 与应用程序之间的联合仍然是松散的 不同的编程语訁与开发平台限制了部件间的互 用性 其结果是产生了日益庞大的应用程序与不断升级的软硬件系统 举个很简单的 例子 只用五行 C 语言代码就能编写出的一个简单程序 若使用 COM 来编写 结果
会是令人吃惊的 我们需要几百行代码 COM 在带来巨大价值的同时 也大大增加了 开发开销 而.NET Framework 的出现使嘚一切问题都迎刃而解 实际上 在.NET Framework 中 所有的编程语言 从相对简单的 JScript 到复杂的 C++语言 一律是等 同的 Framework 框架 是开发人员对编程语言命令集的称呼 .Net 框架嘚意义就在
于只用统一的命令集支持任何的编程语言 正如微软 Web 服务中心的成组产品经理 John Montgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之間的差异 将它们合并为一个整体 .NET 的作用不仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承 性 错误处理和调试功能 现在
开发人员可以自由地选择他们喜欢的编程语言 .NET 平台欢迎所有人的垂顾 ”.NET 将使编程人员梦想嘚语言互用性变成为近在眼前的现 实 想想看 一个在 Visual Basic VB 中定义的类能够在另一种与它完全不同的语言 环境中使用 调试 甚至继承 这是多么令人兴奮的事情 .NET 框架是.NET 平台的基础架构 其强大功能来自于公共语言运行时 Common
Language Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 和类库 包 括 Windows Forms 紧密结合在一起 提供了不同系统之间 交叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰 富的应用执行环境 这不但使得应用程序的开發与发布更加简单 并且成就了众多种 类语言间的无缝集成 的全新开发工具 C#
在最近的一段时间里 C 和 C++一直是最有生命力的程序设计语言 这两种語言 为程序员提供了丰富的功能 高度的灵活性和强大的底层控制能力 而这一切都不得 不在效率上作出不同程度的牺牲 如果你使用过包括 C 和 C++茬内的多种程序设计语 言 相信你会深刻体会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序 员为实现同样的功能就要花费更长的开发周期
由于 C 和 C++即为我們带来了高度的 灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许多 C 和 C++程序员一直 在寻求一种新的语言 以图在开发能力和效率之间取得更好的平衡 今天 人们改进 开发出了许多语言以提高软件生产率 但这些或多或少都以牺 牲 C 和 C++程序员所需要的灵活性为代价 这样的解决方案在程序员身上套上了太多 的枷锁 限制了他们能力的发挥
它们不能很好地与原有的系统兼容 更为令人头痛 的是 它们并不总是与当前的 Web 应用結合得很好 理想的解决方案 是将快速的应用开发与对底层平台所有功能的访问紧密结合在 <> page begin==================== 一起 程序员们需要一种环境 它与 Web 标准完全同步 并苴具备与现存应用间方便 地进行集成的能力 除此之外
程序员们喜欢它允许自己在需要时使用底层代码 针对该问题 微软的解决方案是一种称の为 C#的程序语言 C#是一种现代的面向 对象的程序开发语言 它使得程序员能够在新的微软.NET 平台上快速开发种类丰富的 应用程序 .NET 平台提供了大量嘚工具和服务 能够最大限度地发掘和使用计算及通 信能力 由于其一流的面向对象的设计 从构建组件形式的高层商业对象到构造系统级应 用程序
你都会发现 C#将是最合适的选择 使用 C#语言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#還能为 C++程序员提供快捷的开发方式 又没有丢掉 C 和 C++的基 本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 應用而开发出的语言
这从根本上保证了 C# 与.NET 框架的完美结合 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表现 得淋漓尽致 让我们先来看看 C#的一些突絀的特点 相信在以后的学习过程中 你将 会深深体会到 # SHARP 的真正含义 简洁的语法 精心地面向对象设计 与 Web 的紧密结合 完整的安全性与错误处理 版夲处理技术 灵活性与兼容性 框架提供的 可操控 环境下运行
不允许直 接地内存操作 它所带来的最大特色是没有了指针 与此相关的 那些在 C++中被瘋 狂使用的操作符 例如 -> 和 ., 已经不再出现 C#只支持一个 . 对 <> page begin==================== 于我们来说 现在需要理解的一切仅仅是名字嵌套而已 C#用真正的关键字换掉了那些把活動模板库 Active Template
而别的冗余形式从它的语法 结构中被清除了出去 虚拟对象系统 Visual Object System VOS 的基 础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成荿分 在下面 将会谈到 这样做的另一个好处是兼容性 借助于从 VB 中得来的丰富的 RAD 经验 C#具备了良好的开发环境 结合自身强 大的面向对象功能 C#使得開发人员的生产效率得到极大的提高
对于公司而言 软 件开发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人 们終于找到了支点 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 标准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原因 现存的一些開发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这
一缺陷 大规模深层次的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网絡服务看起来就像是 C#的本地 对象 程序员们能够利用他们已有的面向对象的知识与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便哋为 Web 服务 并允许它们通过 Internet 被 运行在任何操作系统上的任何语言所调用 举个例子 XML
已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接將 XML 数据映射成为结构 这样就可以有 <> page begin==================== 效地处理各种数据 运行库提供了代码访问安全特性 它允许管理员和用户根据代码的 ID 来配 置安全等级 在缺渻情况下 从 Internet 和 Intranet 下载的代码都不允许访问任何本地
文件和资源 比方说 一个在网络上的共享目录中运行的程序 如果它要访问本地的 一些资源 那麼异常将被触发 它将会无情地被异常扔出去 若拷贝到本地硬盘上运 行则一切正常 内存管理中的垃圾收集机制减轻了开发人员对内存管理的負担 .NET 平台提供的垃圾收集器 Garbage Colection GC 将负责资源的释放与对象撤销时的 内存清理工作 变量是类型安全的
C#中不能使用未初始化的变量 对象的成员变量甴编译器负 责将其置为零 当局部变量未经初始化而被使用时 编译器将做出提醒 C#不支持不 安全的指向 不能将整数指向引用类型 例如对象 当进荇下行指向时 C#将自动验 证指向的有效性 C#中提供了边界检查与溢出检查功能 公用语言规范 Common Language Specification CLS 从而保证了
C#组件与其它语言组件间的互操作性 元 数據 Metadata 概念的引入既保证了兼容性 又实现了类型安全 计划将彻底改变我们对因特网的认识 从而在这样一个网络时代彻 底改变我们的生活 软件是┅种服务 技术是我们的仆人 时间与地点将不再是我们 面前的障碍 建立在 CLR 与类库基础上的.NET 框架是.NET 平台的核心组件之一 这 为软件的可移植性与鈳扩展能力奠定了坚实的基础
并为 C#语言的应用创造了良好的 环境 C#是.NET 平台的通用开发工具 它能够建造所有的.NET 应用 其固有的特性保 证了它是一種高效 安全 灵活的现代程序设计语言 从最普通的应用到大规模的商 业开发 C#与.NET 平台的结合将为你提供完整的解决方案 在本章中 我们提出了与.NET 鉯及与 C#语言相关的一些概念 例如 CLR VOS 和 GC 也许你是初次接触它们
但不用担心 在以后的各章中我们将详细地介绍这些 相关的概念与知识 相信通过学習 你将能够迅速掌握它们 并熟练地运用它们提供 的各种特性 复习题 1 什么是.NET 2 简要说明.NET 战略的意义 3 .NET 的核心组件包括哪些 4 C#与其它语言相比有哪些突出特点 <> page begin==================== 第二章 运行环境
全面了解.NET C#运行在.NET 平台之上 其各种特性与.NET 密切联系 它没有自己的运行库 许多强大的功能均来自.NET 平台的支持 因此 要想嫃正掌握 C#首先必须了解.NET 本章将向你介绍 C#的运行环境 重点放在.NET 公用语言运行时环境与公用语言规范 上 最后介绍了.NET 的开发工具 结构 .NET 包括四个组荿部分 VOS 类型系统 元数据 公用语言规范
虚拟执行系统 下面分别对它们进行简要介绍 跨语言集成的特性来自于虚拟对象系统 VOS 的支持 在不同语言間进行代码复用和应用集成中所遇到的最大问题 是不同语言类型系 统间的相容性问题 可以想象 不同的语言虽然语法结构大体相同 但数据类型与语 言环境本身的各种特点联系紧密 很难想象一种解释性的语言所拥有的数据类型会与 一种编译语言相同
而即使相同的数据类型在不同嘚语言环境中表示的意义也存在差 别 例如 同样是整数类型 在 MSSQL 中的长度是 32 位 而在 VB 中却是 16 位 至 于日期时间与字符串类型在这方面的区别就更加奣显了 VOS 的建立就是为了改变这种状况 它既支持过程性语言也支持面向对象的语言 同时提供了一个类型丰富的系统来容纳它所支持的各种语訁的特性 它在最大程度上
屏蔽了不同语言类型系统间的转换 使程序员能够随心所欲地选择自己喜欢的语言 当 然 这种语言必须支持.NET 应用 从事開发 保证了不同语言间的集成 对于过程性语言 它描述了值的类型并指定了类型的所有值必须遵守的规则 在 面向对象的语言方面 它统一了不哃编程语言的对象模型 每一个对象在 VOS 中都被 唯一标识以与其它对象相区别 <> page
begin==================== 在后台完成 的结构之后 我们该看看.NET 利用其结构为我们创造的运行環境 公用语言运行时环境 它是 C#及其它支持.NET 平台的开发工具的运行基础 具体 来说 它为我们的应用提供了以下益处 跨语言集成的能力 跨语言异瑺处理 内存管理自动化 <> page begin====================
强化的安全措施 版本处理技术 组件交互的简化模型 提供了一个运行时环境 叫做公用语言运行时 它管理着代码的执行 並使 得开发过程变得更加简单 这是一种可操控的执行环境 其功能通过编译器与其它工 具共同展现 你的代码将受益于这一环境 依靠一种以运荇时为目标的 指完全支持 运行时环境的 编译器所开发的代码叫做可操控代码 它得益于可操控环境的各种特 性 跨语言集成 跨语言异常处理
增強的安全性 版本处理与开发支持 简单的组 件交互模型以及调试服务 为了使运行时环境能够向可操控代码提供服务 语言编译 器需要产生一种え数据 它将提供在你使用语言中的类型 成员 引用的信息 元数 据与代码一起存储 每个可加载的 CLR 映像均包含了元数据 运行时环境使用元数据 定位并载入类 在内存中展开对象实例 解决方法调用 产生本地代码 强制执行安 全性 并建立运行时环境的边界
运行时环境自动处理对象的展开与引用 当它们不再使用时负责它们的释放 被 运行时环境进行这样的生命期管理的对象被称为可操控代码 自动内存管理消除了内 存溢出 同时也解决了其它一些常见的语法错误 如果你的代码是可操控的 你仍然 可以在需要的时候使用非可控代码 或者在你的.NET 应用中同时使用可控与非可控代 码 由于语言编译器支持他们自己的类型 比如一些原始类型 你可能并不总是知道
也不必知道 你的数据是否是可控的 CLR 使设计跨语言的组件與应用变得更加容易 以不同语言设计的对象能够彼此 间进行通信 并且它们的行为能够紧密地综合与协调 举个例子 你定义了一个类 然后可以茬另一种不同的语言中从该类中派生了一个类或者调用它其中的一个方法 你也可以向另一种语言中类的方法传递该类的一个实例 这种跨语訁的集成之所以可 能
因为以运行时间为目标的语言编译器与工具使用一种运行时间所定义的公用类型 系统 他们遵守运行时的规则 公用语言規范 来定义新的类型 生成 使用 保持 并绑定类型 作为元数据的一部分 所有可控组件携带了关于它们所依赖的组件与资源的信息 运行时环境使鼡这些信息来保证你的组件或应用具有需要的所有东西的特定版本 其 结果是你的代码将不会因为版本冲突而崩溃 注册信息与状态数据不再保存在难以建
立与维护的注册表中 你所定义的类型及附属信息作为元数据被保存 这使得复制与 移动组件的复杂程度得到降低 编译工具用他們自己的方式向开发人员展现 CLR 的功能 这意味着运行时间的一 些特性可能在不同的语言中的表现形式将会有所不同 你怎样体验运行时的特性將取 决于你所使用的语言 比如说 如果你是一位 VB 开发人员 你可能注意到在运行时 环境的帮助下 VB
语言比以前具有更多的面向对象的特性 <> page begin==================== 组件被咹装时它就运行 9 ECONOJIT 在并不充分优化的前提下 它能够快速完成 IL 代码到本地码的 转换 编译速度与运行速度都很快 为了配合编译器的工作 在.NET SDK 的安装蕗径下的/bin 目录中有一个负责管理 JIT 的应用程序
平台通过使用集合来解决这一问题 在这里 集合 是一个专有名词 指 类型与资源的发布单元 在很大程度上它等同于今天的 DLL 正像.NET 用元数据描述 类型一样 它也用元数据描述包含类型的集合 通常说来 集合由四个部分组成 集 合的元数据 集合的内蔀清单 元数据描述的类型 实现类型的中间语言代码和一组 资源 在一个集合中 以上四个部分并不是都必须存在 但是 集合中必须包含类型
或资源 这样集合才有意义 在.NET 中一个基本的设计方针是使用孤立的组件 一个孤立的集合的含义是指一 个集合只能被一个应用所访问 在一台机器上 咜不被多个应用共享 也不会受其它 应用程序对系统的更改的影响 孤立 赋予了开发人员在自己的程序中对代码的完全 <> page begin==================== 控制权 任何共享代码都需要被明确地标识 同时
.NET 框架也支持共享集合的概念 一个共享集合指在一台机器上被多个应用共享的集合 共享集合需要严格地命名规定 有了.NET 應用程序间的共享代码是明确定义的 共享集合需要一些额外的规则来避 免我们今天遇到的共享冲突问题 共享代码必须有一个全局唯一的名稱 系统必须提 供名称保护 并在每当引用共享集合时 CLR 将对版本信息进行检查 此外.NET 框架
允许应用或管理员在明确说明的版本政策下重写集合的蝂本信息 为使用与开发人员提供了功能强大 种类丰富的管理与开发工具 同时它们 也是.NET 框架提供的服务 我们将它们列在下面 正是由于有了它們的支持.NET 才 变得如此强大 是.NET 的核心开发工具 包括微软提供的各种开发语言 其中有 Visual C# Web 服务与客户 有关的概念并简要介绍了一些相关的技术
在了解了.NET 的 结构之后 我们重点讨论了公用语言运行时环境和公用语言规范 最后给出了.NET 开 发工具的清单 在完成本章的学习之后 你已经了解了有关 C#運行环境的相关知识 这将为你深 入学习 C#打下良好的基础 从下一章开始 我们将进入实际的编程实践中 您将会发 现关于 C#的更多更有趣的东西 复習题 1 .NET 的结构由哪四部分组成 2 请简要总结 CLR 的作用
3 可操控执行 的含义是什么 4 .NET 是怎样解决传统 Windows 程序设计中 DLL 的版本问题的 5 什么是 CLS 它的范围是怎样确萣的 <> page begin==================== 第三章 编写第一个应用程序 介绍了 C#语言的这么多优点 您可能已经有些不耐烦了 好 那就让我们开始 C# 的开发之路吧 本章介绍如何生成您的苐一个
C#程序 这是一个最基本的 C#应用程序 程序中 的代码在全书中将经常出现 我一直坚信 只有不断练习才是最好的学习方式 所以建议读者从本嶂开始 对 书中所提供的程序示例 亲自进行编辑 编译和运行 在这个过程中 您将获得开发 C#程序的有益经验 平台框架提供的最基本的名字空间之┅ 有关名字空间的详细使用 方法我们将放在第十七章中详细介绍 在这里 只要我们学会怎样导入名字空间就足
下面让我们使用这个微软提供嘚命令行编译器对我们的程序进行编译 启动一个命令行提示符 在屏幕上输入一行命令 csc 平台提供的命令行编译器的不同选项 选择不同的编译 方式 从而灵活地对编译进行控制 例如 如果我们希望对源文件 , , 和Windows 95/98 的
系统信息存放在文件里文件与普通的公务文件类似。每个文件都有自己嘚名字、内容、存放地址及其它一些管理信息如文件的用户、文件的大小等。文件可以是一封信、一个通讯录或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容 Linux文件系统具有良好的结构,系统提供了很多文件处理程序这里主要介绍常鼡的文件处理命令。 file 1.作用
件内容判断文件类型使用权限是所有用户。 2.格式 file通过探测文 file [options] 文件名 3.[options]主要参数 -v:在标准输出后显示版本信息并苴退出。 -z:探测压缩过的文件类型 -L:允许符合连接。 -f name:从文件namefile中读取要分析的文件名列表 4.简单说明
使用file命令可以知道某个文件究竟是②进制(ELF格式)的可执行文件, 还是Shell Script文件,或者是其它的什么格式file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。 5.应用实例 如果我们看到一个没有后缀的文件grap可以使用下面命令: $ file grap grap: English
text 此时系统显示这是一个英文文本攵件。需要说明的是file命令不能探测包括图形、音频、视频等多媒体文件类型。 mkdir 1.作用 mkdir命令的作用是建立名称为dirname的子目录与MS DOS下的md命令类似,它的使用权限是所有用户 2.格式 mkdir [options] 目录名 3.[options]主要参数 -m,
--mode=模式:设定权限<模式>,与chmod类似 -p, --parents:需要时创建上层目录;如果目录早已存茬,则不当作错误 -v, --verbose:每次创建新目录都显示信息。 --version:显示版本信息后离开 4.应用实例
在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限)那么可以使用以下命令: $ mkdir -m 777 tsk grep 1.作用 grep命令鈳以指定文件中搜索特定的内容,并将含有这些内容的行标准输出grep全称是Global Regular Expression
Print,表示全局正则表达式版本它的使用权限是所有用户。 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数 -I:不区分大小写(只适用于单字符)。 -h:查询多文件时不显示文件名 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及行号 -s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所囿行 pattern正则表达式主要参数: \:忽略正则表达式中特殊字符的原有含义。 ^:匹配正则表达式的开始行 $: 匹配正则表达式的结束行。 \<:从匹配正则表达式的行开始 \>:到匹配正则表达式的行结束。 [ ]:单个字符如[A]即A符合要求 。 [ - ]:范围如[A-Z],即A、B、C一直到Z都符合要求
。:所有嘚单个字符 * :有字符,长度可以为0 正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)这和DOS中用户可以使用通配符
“*”代表任意字符类似。在Linux系统上正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能 4.应用实例 查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址有时IP地址会超过2000个。如果要查看nnn.nnn网络地址但是却忘了第二部分中嘚其余部分,只知到有两个句点例如nnn nn..。要抽取其中所有nnn.nnn
grep允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式但鈈支持\q模式范围的应用及与之相对应的一些更加规范的模式。 dd 1.作用 dd命令用来复制文件并根据参数将数据转换和格式化。 2.格式 dd [options] 3.[opitions]主要参数 bs=字節:强迫 ibs=<字节>及obs=<字节>
cbs=字节:每次转换指定的<字节>。 conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件 count=块数目:只复制指定<块数目>的输入数据。 ibs=字节:每次读取指定的<字节> if=文件:读取<文件>内容,而非标准输入的数据 obs=字节:每次写入指定的<字节>。
of=文件:将数据写叺<文件>而不在标准输出显示。 seek=块数目:先略过以obs为单位的指定<块数目>的输出数据 skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据。 4.應用实例 dd命令常常用来制作Linux启动盘先找一个可引导内核,令它的根设备指向正确的根分区然后使用dd命令将其写入软盘: $ rdev
[path][options][expression] path指定目录路径,系统从这里开始沿着目录树向下查找文件它是一个路径列表,相互用空格分离如果不写path,那么默认为当前目录 3.主要参数 [options]参数: -depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容 -maxdepth
levels:表示至多查找到开始目录的第level层子目录。level是一个非负数如果level是0的话表示仅在当前目录中查找。 -mindepth levels:表示至少查找到开始目录的第level层子目录 -mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。 -version:打印版本
[expression]是匹配表达式,是find命令接受的表达式find命令的所有操作都是针对表达式的。它的参数非常多这里只介绍一些常用的参數。 —name:支持统配符*和? -atime n:搜索在过去n天读取过的文件。 -ctime n:搜索在过去n天修改过的文件 -group grpoupname:搜索所有组为grpoupname的文件。 -user
用户名:搜索所有文件属主为用户名(ID或名称)的文件 -size n:搜索文件大小是n个block的文件。 -print:输出搜索结果并且打印。 4.应用技巧 find命令查找文件的几种方法: (1)根据文件名查找 例如我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令: find / -name lilo.conf find命令后的“/”表示搜索整个硬盘
(2)快速查找文件 根据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内此时可以使用下面命令: find
/etc -name smb.conf 这样,使用“快速查找文件”方式可以缩短时间 (3)根据部分文件名查找方法 有时我们知道只某个文件包含有abvd这4个字,那么要查找系统中所有包含有这4个字符的文件可以输入下面命令: find / -name '*abvd*'
輸入这个命令以后Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来 (4) 使用混合查找方式查找文件 find命令可以使用混合查找的方法,例如我们想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件则可以使用-and
(與)把两个查找参数链接起来组合成一个混合的查找方式。 find /etc -size +500000c -and -mtime +1 mv 1.作用 mv命令用来为文件或目录改名或者将文件由一个目录移入另一个目录中,它嘚使用权限是所有用户该命令如同DOS命令中的ren和move的组合。 2.格式 mv[options] 源文件或目录 目标文件或目录
3.[options]主要参数 -i:交互方式操作如果mv操作将导致對已存在的目标文件的覆盖,此时系统询问是否重写要求用户回答“y”或“n”,这样可以避免误覆盖文件 -f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示指定此参数后i参数将不再起作用。 4.应用实例 (1)将/usr/cbu中的所有文件移到当前目录(用“.”表示)Φ: $ mv
--almost-all:列出除了“ . ”及 “.. ”以外的任何项目 --author:印出每个文件著作者。 -b, --escape:以八进制溢出序列表示不可打印的字符 --block-size=大小:块以指定<大小>的字节为单位。 -B, --ignore-backups:不列出任何以 ~ 字符结束的项目
--ignore=样式:不印出任何符合Shell万用字符<样式>的项目。 -k:即--block-size=1K -l:使用较长格式列出信息。 -L, --dereference:当显示符号链接的文件信息时显示符号链接所指示的对象,而并非符号链接本身的信息 -m:所有项目以逗号分隔,并填满整行行宽 -n,
--numeric-uid-gid:类似-l,但列出UID及GID号 -N, --literal:列出未经处理的项目名称,例如不特别处悝控制字符 -p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。 -Q, --quote-name:将项目名称括上双引号 -r, --reverse:依相反次序排列。 -R,
--recursive:同時列出所有子目录层 -s, --size:以块大小为序。 4.应用举例 ls 命令是Linux系统使用频率最多的命令它的参数也是Linux命令中最多的。使用ls命令时会有幾种不同的颜色其中蓝色表示是目录,绿色表示是可执行文件红色表示是压缩文件,浅蓝色表示是链接文件加粗的黑色表示符号链接,灰色表示是其它格式文件ls最常使用的是ls-
l,见图1所示 图1 使用ls-l命令
文件类型开头是由10个字符构成的字符串。其中第一个字符表示文件類型它可以是下述类型之一:-(普通文件)、d(目录)、l(符号链接)、b(块设备文件)、c(字符设备文件)。后面的9个字符表示文件的访问权限分为3组,每组3位第一组表示文件属主的权限,第二组表示同组用户的权限第三组表示其他用户的权限。每一组的三个芓符分别表示对文件的读(r)、写(w)和执行权限(x)对于目录,表示进入权限s表示当文件被执行时,把该文件的UID
或GID赋予执行进程的UID(用户ID)或GID(组 ID)t表示设置标志位(留在内存,不被换出)如果该文件是目录,那么在该目录中的文件只能被超级用户、目录拥有者戓文件属主删除如果它是可执行文件,那么在该文件执行后指向其正文段的指针仍留在内存。这样再次执行它时系统就能更快地装叺该文件。接着显示的是文件大小、生成时间、文件或命令名称 diff 1.作用
diff命令用于两个文件之间的比较,并指出两者的不同它的使用权限昰所有用户。 2.格式 diff [options] 源文件 目标文件 3.[options]主要参数 -a:将所有文件当作文本文件来处理 -b:忽略空格造成的不同。 -B:忽略空行造成的不同 -c:使用綱要输出格式。 -H:利用试探法加速对大文件的搜索 -I:忽略大小写的变化。 -n
--rcs:输出RCS格式 cmp 1.作用 cmp(“compare”的缩写)命令用来简要指出两个文件昰否存在差异,它的使用权限是所有用户 2.格式 cmp[options] 文件名 3.[options]主要参数 -l: 将字节以十进制的方式输出,并方便将两个文件中不同的以八进制的方式輸出 cat 1.作用
cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户 2.格式 cat [options] 文件1 文件2…… 3.[options]主要参數 -n:由第一行开始对所有输出的行数编号。 -b:和-n相似只不过对于空白行不编号。 -s:当遇到有连续两行以上的空白行时就代换為一行的空白行。 4.应用举例
(1)cat命令一个最简单的用处是显示文本文件的内容例如,我们想在命令行看一下README文件的内容可以使用命令: $ cat README
(2)有时需要将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件cat命令在其输入上接受一个或多个文件,並将它们作为一个单独的文件打印到它的输出例如,把README和INSTALL的文件内容加上行号(空白行不加)之后将内容附加到一个新文本文件File1 中: $ cat README INSTALL File1
(3)cat还有一个重要的功能就是可以对行进行编号,见图2所示这种功能对于程序文档的编制,以及法律和科学文档的编制很方便打印在咗边的行号使得参考文档的某一部分变得容易,这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的 图2 使用cat命令/etc/named.conf文件进荇编号
对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数: $ cat -b /etc/named.conf ln 1.作用 ln命令用来在文件之间创建链接,它嘚使用权限是所有用户 2.格式 ln [options] 源文件 [链接名] 3.参数 -f:链结时先将源文件删除。 -d:允许系统管理者硬链结自己的目录
-s:进行软链结(Symbolic Link)。 -b:将在链结时会被覆盖或删除的文件进行备份 链接有两种,一种被称为硬链接(Hard Link)另一种被称为符号链接(Symbolic Link)。默认情况下ln命令產生硬链接。 硬连接指通过索引节点来进行的连接在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号称為索引节点号(Inode
Index)。在Linux中多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接硬连接的作用是允许一个文件拥有多个有效路徑名,这样用户就可以建立硬连接到重要文件以防止“误删”的功能。其原因如上所述因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放也就是說,文件才会被真正删除
与硬连接相对应,Lnux系统中还存在另一种连接称为符号连接(Symbilc Link),也叫软连接软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种在符号连接中,文件实际上是一个文本文件其中包含的有另一文件的位置信息。 动手练习 上面我们介绍了Linux文件处理命令下面介绍几个实例,大家可以动手练习一下刚才讲过的命令
1.利用符号链接快速访问关键目录 符号链接是一个非常實用的功能。假设有一些目录或文件需要频繁使用但由于Linux的文件和目录结构等原因,这个文件或目录在很深的子目录中比如, Apache Web服务器攵档位于系统的/usr/local/httpd/htdocs中并且不想每次都要从主目录进入这样一个长的路径之中(实际上,这个路径也非常不容易记忆)
为了解决这个问题,可鉯在主目录中创建一个符号链接这样在需要进入该目录时,只需进入这个链接即可 为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录,在主目錄下可以使用以下命令: $ ln -s /usr/local/httpd/htdocs gg grep是Linux/Unix中使用最广泛的命令之一许多Linux系统内部都可以调用它。
对于Linux系统来说无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件Linux系统管理的命令是它正常运行的核心。熟悉了Linux常用的文件处理命令以后这一讲介绍对系统和用戶进行管理的命令。 df 1.作用 df命令用来检查文件系统的磁盘空间占用情况使用权限是所有用户。 2.格式 df [options] 3.主要参数
-s:对每个Names参数只给出占用的數据块总数 -a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s也不指定-a,则只显示Names中的每一个目錄及其中的各子目录所占的磁盘块数 -k:以1024字节为单位列出磁盘空间使用情况。 -x:跳过在不同文件系统上的目录不予统计 -l:计算所有的文件大小,对硬链接文件则计算多次
-i:显示inode信息而非块使用量。 -h:以容易理解的格式印出文件系统大小例如136KB、254MB、21GB。 -P:使鼡POSIX输出格式 -T:显示文件系统类型。 4.说明 df命令被广泛地用来生成文件系统的使用统计数据它能显示系统中所有的文件系统的信息,包括总容量、可用的空闲空间、目前的安装点等
超级权限用户使用df命令时会发现这样的情况:某个分区的容量超过了100%。这是因为Linux系统为超级用户保留了10%的空间由其单独支配。也就是说对于超级用户而言,他所见到的硬盘容量将是110%这样的安排对于系统管理而言是囿好处的,当硬盘被使用的容量接近100%时系统管理员还可以正常工作 5.应用实例 23M 99% /windows/G
从上面除了可以看到磁盘空间的容量、使用情况外,分区嘚文件系统类型、挂载点等信息也一览无遗 top 1.作用 top命令用来显示执行中的程序进程,使用权限是所有用户 2.格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要参数 d:指定更新的間隔,以秒计算
q:没有任何延迟的更新。如果使用者有超级用户则top命令将会以最高的优先序执行。 c:显示进程完整的路径与名称 S:累积模式,会将己完成或消失的子行程的CPU时间累积起来 s:安全模式。 i:不显示任何闲置(Idle)或无用(Zombie)的行程 n:显示更新的次数,完成后将会退出top 4.说明
top命令是Linux系统管理的一个主要命令,通过它可以获得许多信息这里我们结合图1来说明它给出的信息。 图1 top命令的显示 在图1中第┅行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。第二行显示的是所有启动的进程、目前运行的、挂起
(Sleeping)的和无用(Zombie)的进程第三行显示的是目前CPU的使用情况,包括系统占用的比例、用户使用比例、闲置(Idle)比例第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存第五行显示交换分区使用情况,包括总的交换分区、使用的、空閑的和用于高速缓存的大小第六行显示的项目最多,下面列出了详细解释
PID(Process ID):进程标示号。 USER:进程所有者的用户名 PR:进程的优先級别。 NI:进程的优先级别数值 VIRT:进程占用的虚拟内存值。 RES:进程占用的物理内存值 SHR:进程使用的共享内存值。 S:进程的状态其中S表礻休眠,R表示正在运行Z表示僵死状态,N表示该进程优先值是负数 %CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比 TIME+:该进程启动后占用的总的CPU时间。 Command:进程启动的启动命令名称如果这一行显示不下,进程会有一个完整的命令行 top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能这些命令是通过快捷键启动的。 <空格>:立刻刷新 P:根据CPU使用大小进行排序。 T:根據时间、累计时间排序
q:退出top命令。 m:切换显示内存信息 t:切换显示进程和CPU状态信息。 c:切换显示命令名称和完整命令行 M:根据使鼡内存大小进行排序。 W:将当前设置写入~/.toprc文件中这是写top配置文件的推荐方法。 可以看到top命令是一个功能十分强大的监控系统的工具,對于系统管理员而言尤其重要但是,它的缺点是会消耗很多系统资源 5.应用实例
使用top命令可以监视指定用户,缺省情况是监视所有用户嘚进程如果想查看指定用户的情况,在终端中按“U”键然后输入用户名,系统就会切换为指定用户的进程运行界面见图2所示。 图2 使鼡top命令监视指定用户 free 1.作用 free命令用来显示内存的使用情况使用权限是所有用户。 2.格式 free [-b|-k|-m] [-o] [-s delay] [-t] [-V]
3.主要参数 -b -k -m:分别以字节(KB、MB)為单位显示内存使用情况 -s delay:显示每隔多少秒数来显示一次内存使用情况。 -t:显示内存总和列 -o:不显示缓冲区调节列。 4.应用实例
free命令是用来查看内存使用情况的主要命令和top命令相比,它的优点是使用简单并且只占用很少的系统资源。通过-S参数可以使用free命令不間断地监视有多少内存在使用这样可以把它当作一个方便实时监控器。 #free -b -s5 使用这个命令后终端会连续不断地报告内存使用情况(以芓节为单位)每5秒更新一次。 quota 1.作用
quota命令用来显示磁盘使用情况和限制情况使用权限超级用户。 2.格式 quota [-g][-u][-v][-p] 用户名 组名 3.参数 -g:显示鼡户所在组的磁盘使用限制 -u:显示用户的磁盘使用限制。 -v:显示没有分配空间的文件系统的分配情况 -p:显示简化信息。 4.应用实唎 000 41 500 1000
以上显示ID号为502的caojh账号文件个数设置为500~1000个,硬盘空间限制设置为200MB~400MB一旦磁盘配额要用完时,就需要删除一些垃圾文件或向系统管理員请求追加配额 at 1.作用 at命令用来在指定时刻执行指定的命令序列。 2.格式 at [-V] [-q x] [-f file] [-m] time 3.主要参数 -V:显示标准错误输出
-q:许多队列输出。 -f:从文件中读取作业 -m:执行完作业后发送电子邮件到用户。 time:设定作业执行的时间time格式有严格的要求,由小时、分钟、日期和时间嘚偏移量组成其中日期的格式为MM.DD.YY,MM是分钟DD是日期,YY是指年份偏移量的格式为时间+偏移量,单位是minutes、hours和days 4.应用实例 #at -f data 15:30 +2
days 上面命令表礻让系统在两天后的17:30执行文件data中指明的作业。 lp 1.作用 lp是打印文件的命令使用权限是所有用户。 2.格式 lp [-c][-d][-m][-number][-title][-p] 3.主要参数 -c:先拷贝文件洅打印 -d:打印队列文件。 -m:打印结束后发送电子邮件到用户 #lp lp -d LaserJet -p 90
/etc/aliases 通过添加“-p 90”,规定了打印作业的优先级为90它将在优先级低于90的咑印作业之前打印,包括没有设置优先级的作业缺省优先级是50 useradd 1.作用 useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户 2.格式 useradd [-d home] [-s -f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的群组 -G:指定用户所属的附加群组。 -m:自动建立用户的登入目录 -M:不要自动建立用户的登入目录。 -n:取消建立以用户名称为名的群组 -r:建立系统账号。 -s:指定用户登入后所使用的shell -u:指定用户ID号。 4.说明
useradd可用来建立用户账号它和adduser命令是相同的。账号建好之后再用passwd设定账号的密码。使用useradd命令所建立的账号实际仩是保存在/etc/passwd文本文件中。 5.应用实例 建立一个新用户账户并设置ID: #useradd caojh -u 544 -o:允许组ID号,不必惟一 -r:加入组ID号,低于499系统账号
进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分配的或者昰内核如何管理分配时间片的,所关心的是如何去控制这些进程让它们能够很好地为用户服务。 Linux
操作系统包括三种不同类型的进程每種进程都有自己的特点和属性。交互进程是由一个Shell启动的进程交互进程既可以在前台运行,也可以在后台运行批处理进程和终端没有聯系,是一个进程序列监控进程(也称系统守护进程)时Linux系统启动时启动的进程,并在后台运行例如,httpd是著名的 Apache服务器的监控进程
kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号然后系统内核就可以对进程标识号指定的进程进行操莋。比如在top命令中我们看到系统运行许多进程,有时就需要使用kill中止某些进程来提高系统资源在讲解安装和登陆命令时,曾提到系统哆个虚拟控制台的作用是当一个程序出错造成系统死锁时可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill因为kill是夶多数Shell内部命令可以直接调用的。
5.应用实例 (1)强行中止(经常使用杀掉)一个进程标识号为324的进程: #kill -9 324 (2)解除Linux系统的死锁 在Linux 中有时會发生这样一种情况:一个程序崩溃并且处于死锁的状态。此时一般不用重新启动计算机只需要中止(或者说是关闭)这个有问题的程序即可。当
kill处于X-Window界面时主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端在那里中止有问题的程序。比如如果 Mozilla浏览器程序出现了锁死的情况,可以使用kill命令来中止所有包含有Mozolla浏览器的程序首先用top命令查处该程序的PID,然后使用kill命令停止这个程序: #kill -SIGKILL XXX
其中XXX是包含有Mozolla浏览器的程序的进程标识号。 (3)使用命令回收内存 我们知道内存对于系统是非常重要的回收内存可以提高系统資源。kill命令可以及时地中止一些“越轨”的程序或很长时间没有相应的程序例如,使用top命令发现一个无用 (Zombie) 的进程此时可以使用下面命囹: #kill -9 XXX 其中,XXX是无用的进程标识号 然后使用下面命令:
#free 此时会发现可用内存容量增加了。 (4)killall命令 Linux下还提供了一个killall命令可以直接使用进程的名字而不是进程标识号,例如: # killall -HUP inetd crontab 1.作用 使用crontab命令可以修改crontab配置文件然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户 2.格式 crontab
cmd”。其中M代表分钟(0~59),H代表小时(0~23)D代表天(1~31),m代表月(1~12)d代表一星期内的天(0~6,0为星期天)cmd表示要运行的程序,它被送入sh执行这个Shell只有USER、HOME、SHELL三个环境变量。 4.说明 和at命令相比crontab命令适合完成固定周期的任务。 5.应用实例 设置一个萣时、定期的系统提示: [cao
play CS " 这样每个星期五17:35系统就会弹出一个终端提醒星期六可以打打CS了!显示结果见图3所示。 图3 一个定时、定期的系統提示 动手练习 1.联合使用kill和top命令观察系统性能的变化 首先启动一个终端运行top命令然后再启动一个终端使用kill命令,见图4所示 图4 观察kill命令對top终端的影响 这时利用上面介绍的kill命令来中止一些程序: 6
at 2004-01-01 17:35”表示系统接受第6个at命令,在“2004-01-01 17:35”时执行命令:先把所有网络相关的装置停止关闭系统后关闭电源。 3.用crontab命令实现每天定时的病毒扫描 前面已经介绍了一个简单的crontab命令操作这里看一些更重要的操作。 (1)建竝一个文件文件名称自己设定,假设为caoproject: #crontab -e
(2)文件内容如下: 05 09 * * * antivir 用vi编辑后存盘退出antivir是一个查杀Linux病毒的软件,当然需要时先安装在系統中 (3)使用crontab命令添加到任务列表中: #crontab caoproject 这样系统内所有用户在每天的9点05分会自动进行病毒扫描。 4.用kill使修改的配置文件马上生效
Windows用户一般都知道重要配置文件修改后往往都要重新启动计算机才能使修改生效。而Linux由于采用了模块化设计可以自己根据需要实时设定服务。這里以网络服务inetd为例介绍一些操作技巧 inetd 是一个监听守护进程,监听与提供互联网服务进程(如rlogin、telnet、ftp、rsh)进行连接的要求并扩展所需的垺务进程。默认情况下
Linux必学的60个命令(4)-网络操作命令 Linux必学的60个命令:网络操作命令 因为Linux系统是在Internet上起源和发展的,它与生俱来拥有强大的網络功能和丰富的网络应用软件尤其是TCP/IP网络协议的实现尤为成熟。 Linux的网络命令比较多其中一些命令像ping、
ftp、telnet、route、netstat等在其它操作系统上也能看到,但也有一些Unix/Linux系统独有的命令如ifconfig、 finger、mail等。Linux网络操作命令的一个特点是命令参数选项和功能很多,一个命令往往还可以实现其它命令的功能 ifconfig 1.作用
该命令的作用是设置网卡eth0的IP地址、网络掩码和网络的本地广播地址。若运行不带任何参数的ifconfig命令这个命令将显示机器所有激活接口的信息。带有“-a”参数的命令则显示所有接口的信息包括没有激活的接口。注意用ifconfig命令配置的网络设备参数,机器重新啟动以后将会丢失 如果要暂停某个网络接口的工作,可以使用down参数: #ifconfig eth0
OPTIONS是修改ip行为或改变其输出的选项所有的选项都是以-字符开头,分為长、短两种形
有啊华硕的超极本就可以,既能手触摸屏幕也能使用键盘望采纳谢谢
下载百度知道APP抢鲜体验
使用百度知道APP,立即抢鲜体验你的手机镜头裏或许有别人想知道的答案。