首页 issue44_zh-CN

issue44_zh-CN

举报
开通vip

issue44_zh-CN Full Circle中文杂志 第44期 1 目录 Full Circle 独立发行的Ubuntu社区杂志 第44期 — 2010年12月 Full Circle 杂志与Canonical有限公司没有任何附属或支持的关系。 《 《 雷 雷 神 神 之 之 锤 锤 在 在 线 线 版 版 》 》 : : 上 上 线 线 一 一 年 年 了 了 回 回 顾 顾 I I d d S S o o f f t t w ...

issue44_zh-CN
Full Circle中文杂志 第44期 1 目录 Full Circle 独立发行的Ubuntu社区杂志 第44期 — 2010年12月 Full Circle 杂志与Canonical有限公司没有任何附属或支持的关系。 《 《 雷 雷 神 神 之 之 锤 锤 在 在 线 线 版 版 》 》 : : 上 上 线 线 一 一 年 年 了 了 回 回 顾 顾 I I d d S S o o f f t t w w a a r r e e 的 的 B B r r o o w w s s e e r r F F P P S S Full Circle中文杂志 第44期 2 目录 短网址服务 p. 12 本杂志中包含的所有文字和图片按照Creative  Commons  Attribution  By-Share  Alike  3. 0  Unported(知识共享属性--相同方 式共享  3. 0  Unported) 许可 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 发布。 这意味着您可以采用、拷贝、分发和传播所有文章, 但是要在遵守以下条件的前提下分发 本作品 : 你必须以某种方式保留原作者署名(包含姓名、 E-mail或者网址) , 并保留本杂志名称(Full   Circle) 和网址www. fullc irclemagazine. org(但不得以任何方式暗示其为你或你使用该著作的方式背书) 。 如果你改变、 转换本作品或者以本作品为基础进行创作, 你只能采用 与本协议相同、 相近或者相容的许可协议发布基于本作品的演绎作品。 Full Circle杂志完全独立于Ubuntu项目的赞助商--Canonical公司 , 并且杂志中的观点和想法不应当被认作为获得了Canonical公司的认可。 Full Circle 独立发行的Ubuntu社区杂志 使用Wubi备份 p. 10 Python编程 —— 第18部分 p. 07 Ubuntu游戏 p. 21 决胜命令行 p. 05 Top 5 p. 27 Linux实验室 p. 13 Unetbootin评测 p. 17 Full   Circle中文杂志, 由Full   Circle中文翻译团队(Full   Circl e  Chinese  Translation  Team) 完成。 目前本团队的主要任务是翻译 英文原稿, 收录部分中文文章, 以及制作和发布Full   Circle杂志中文 译本。 项目负责: 杨佳 maxyang2008@gmail. com 英文翻译: Full Circle中文翻译团队成员 杂志排版: 吴俊楠 mygoobox@gmail. com 我们欢迎有能力的读者积极参 加Full   Circle中文杂志的翻译和 排版工作, 有一定的英文翻译或排 版能力 , 并有兴趣参与本杂志工作 的读者, 请与杨佳联系。 欢迎访 问我们的网站www. fcctt. org。 有您更精彩! 投稿须知 稿件的内容最好针对中文本地化方面展开。 我们欢迎您将您的观点 , 各种游戏、 软件、 硬件的评测, How-To文章, 或者潜在的问题和相关 建议投递给我们, 稿件发送地址: maxyang2008@gmail. com(杨佳) Full Circle中文杂志 第44期 3 目录 编者寄语 欢迎来到新一期的FC杂志。 这是2010年的最后一期了。 首先, 一个让大家意外的事情是, Lucas的“虚拟化” 系列的文章推迟 到下月才能与大家见面。 他一直忙于大学的工作, 反正, 他就是这么告诉我的。 为什么大学工作优先 呢, 我不知道。 这个月 , 我们又有了更多的优秀文章, Greg的“Python编程” 系列将会继续; 我们有一篇关于用 “wubi创建备份” 的文章, 和其他常用的方法有所不同 ; 另外Robin解释了“网址缩短” 以及你如何 把它应用到自己的站点。 如果你曾在桌面上见到过一些显示CPU、 内存或者网络状态的奇特的截屏图片, 想知道它是怎么做 出来的, 可以看看这个月的“决胜命令行” 。 Lucas将解释使用Conky来完成这些任务的一些基础知识 。 上个月的“Top  5” 引来了人们一大堆的邮件, 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示不敢苟同 , 他们大多数人好像喜欢SpiderOak , 这是我以前没有用过的东西, 但是我会从一个观察者的角度写一篇评论或者How-to, 讲讲如何使用 它, 除非某个SpiderOak用户想在我之前就写一篇。 如果这样, 他/她可以按照下面的地址给我一封邮 件。 还有, 不要忘记去播客看看。 在我写下这些文字的时候(12月中旬 ) , Robin已经快完成一集新播 客了 , 它的“副播客” 刚刚上传到网站上。 来看看这个链接http: //fullcirclemagazine. org上那些 不错的OGG/MP3播客吧。 记着, 如果你有一些提供给FCM的文章请发邮件到 : articles@fullcirclemagazine. org, 因为我们积 累的文章已经减少了。 2011最好的祝福, 保持联系! Ronnie ronnie@fullcirclemagazine. org 本杂志基于以下软件创建: Full Circle播客 每两周播出一期, 每期内 容涵盖Ubuntu新闻、 观点、 评 测、 采访和听众反馈等全部信 息。 最新开通了“副播客” , 这个额外(不定期) 的简短博 客将成为主播客的一个分支。 这里将会收录主播客中不会收 录的所有有关通用技术和非Ub untu的内容。 主持人: Robin Catl ing Ed Hewitt Dave Wilkins Full Circle中文杂志 第44期 4 目录 Humble独立游戏包第2季最 终业绩出炉 第二季的Humble独立游戏包的官 方发售已经结束了 , 从任何方面来看 , 这都完全可以称得上一次成功。 Humble独立游戏包2在过去的几天 里已经成为了头条新闻, 这里面有各 种不同原因。 它来自于Steam平台。 它超过了上一季游戏包的总销售量。 原本的游戏包也根据协议一并提供。 现在, 这次销售额的最终数字发布了 。 这次销售总额达到了180万美元。 游戏包销售了232849次, 平均价格为 7. 83美元, Linux用户每次购买支付 的金额最高, 最后的平均单价为13. 7 6美元。 Mac用户支付的平均单价为9. 26美元, 而Windows用户为6. 67美元 。 游戏包的主页也记录下了最大订单 和最高支付金额, 为6132. 96美元( 之前, notch——《Minecraft》 背后 的开发者——以2000美元的订单占据 了这个宝座) 。 目前还没有有关这些钱如何在相 关的各个小组之间分配的消息。 当问 到EFF收到了多少钱的时候, 开发《 复仇格斗兔》 的Jeff  Rosen称最终的 数字尚在计算中。 LINUX新闻 俄罗斯最新的五年 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 要 求向Linux转移 俄罗斯总理弗拉基米尔 ·普京已经 签署了一项行政命令, 要求俄罗斯政 府从2012年2Q(第二季度) 开始从类 似Windows这样的专有操作系统转移 到Linux上。 这次转移是直到2015年 完成向自由软件转移的五年计划的一 部分。 俄罗斯有许多使用Windows的用户 。 不说大部分吧, 至少有不少在俄罗 斯使用的Windows是盗版的。 不过根 据实际情况, 有理由认为这次行动依 然会成为微软的一次重大经济损失, 特别是在盗版的服务器版本减少的情 况下。 普京的行政命令……会对俄罗斯 所有由联邦预算支持的联邦机构和组 织造成影响。 而且, 这项行政命令要求在2012 年第二季度之前建立起一个Linux发 行版和其它自由操作系统的软件仓库 。 同时, 将会实行在政府和财政机构 中使用Linux和其他自由软件的试点 计划。 这一项目将会包括在2014年第 三季度中。 Full   Circle提醒器——Beta版发布! 我们的成员Robert  Clipsham(mrmonday) 已经发布了Full   Circle提 醒器的首个Beta版本, 这是一款驻留在系统托盘上的小型应用程序, 它不 仅会提示你新一期或新的播客的发布, 还能够设置为帮你自动下载! 有好 几个人在为FCN开发不同发 行版的安装包。 要了解更多 信息, 请查看FCN的谷歌论 坛: http: //goo. gl/4Ob4 Full Circle中文杂志 第44期 5 目录 最 近在Arch  Linux论坛上我 看到了大量令人感兴趣的 Conky设置的帖子, 于是 我就想到了分享一下我在 我的设置中所用到的一些窍门和技巧 。 本月我只能讲述某一个技巧, 但我 会给你们一些额外的东西去鼓捣一番 。 首先, 告诉还不知道Conky是什么 的人, 它是一个基于文本的系统监视 器, 它可以在你的桌面上显示、 通过 管道输送到Dzen(译注: 一种信息提 示工具)中(在一些平铺式窗口管理器 中很流行)或者让它作为独立的浮动 面板。 默认设置下, Conky有许多选项( 从显示时间和日期到内存或者硬盘使 用量) 。 但是, 它并没有提供显示你 的系统可用的更新数量的方式——鉴 于各种软件包和系统的格式如此繁多 , 这一点也是可以理解的。 因此这里 就要用到Conky的另一项特性了—— 可以执行自定义的脚本, 将其输出显 示到Conky本身。 这种命令有两类— —一种带有刷新间隔(我们将在更新 检查器中用到) , 还有一种是单次执 行(适用于脚本本身就会循环的情况) 。 所有这些设置都由你的主目录下的 . Conkyrc文件控制。 下面是我所使用 的基本. Conkyrc文件, 供你起步(我 已经去除了所有的自定义脚本——因 为我不准备把它们全部共享出来) : h ttp: //fullcirclemagazine. pastebi n. com/jMDg9kzG 正如你所看到的, 我充分利用了 给Conky选项添加注释的自由 , 你可 能也注意到了Updates:目前什么都不 会显示。 我将解释我要如何对这一脚 本进行配置, 并让你了解如何立刻让 其生效。 首先, 我想要提前说明 , 样 例命令并不是最精简的(你可以用sed 和一些正则表达式做到同样的事情) , 但这是我能想出来的可读性最强的 样例了。 如果你想要练习练习正则表 达式, 你可以用sed替换grep与cut。 脚本如下: # ! /bin/bash updateChecker=` apt-get -s upgrade| grep upgraded, | cut -- delimiter=" " -f1` echo " $updateChecker" 现在, 我的(updateChecker中的) 命令的原理已经一目了然了。 我先运 行“apt-get  -s  upgrade” , 观察输 出 , 然后找出有更新数量的那一行, 在这一行中找出一个特定的单词, 然 后在将其通过管道输入“| grep upgraded, ” 时再次运行这条命令。 当我确认它能输出正确的行后, 我只 要简单地取用这一行, 将其分割成多 个区域(划界, 意思是根据空格分隔 ) , 并将首个区域(“-f1” ) 显示 出来, 因为这就是我所需要的数字。 接着我再次运行整条命令, 确保它正 常返回了数字, 将其复制到bash脚本 中 , 然后写上一条echo命令行将其返 回。 如果你想要将它变成非Conky特 定的通用脚本, 你只要在echo行(在$ updateChecker之前)加上“Updates: ” (不带引号) , 然后删除. Conkyrc文 件中的“Updates: ” 即可。 要让它在 Conky中生效, 你所要做的只是将upd ate行作如下调整: ${font Dej aVuSans: bold: size=8}Update s: $font ${execi 300 /path/to/script} 当然, /path/to/script是你实际 的路径, 而该脚本的属性要设置为可 执行。 将脚本属性设置为可执行, 运 行: chmod +x /path/to/script 我往往会在终端中运行一遍脚本 做最后检查, 确保它正常运行, 但这 次你可以安全地跳过这一步(不论如 何, Conky都会让你知道它是否正常 工作的! ) 。 我希望这个样例能让一些新的用 户发现命令行并不总是丑陋的黑白文 字, 它也能给你的图形设置添加一些 东西。 如果你们中有人对移除额外内 核(保留2个最常用的)的Bash脚本感 兴趣, 可以阅读下面的“扩展脚本” 部分。 如果你觉得这很有用或者很有 意思, 我很乐意在接下来的几个月里 分享更多的脚本。 和往常一样, 如果 你有任何指正、 疑问或者建议, 你可 以给我发邮件, 地址是lswest34@gma il. com。 请记得在主题中写上“C&C ” 或者“FCM” , 以便我不会忽略这 封邮件。 扩展脚本: 如果有人想知道内核管理器是用 来做什么的话, 它是给Ubuntu/Windo ws双启动的电脑编写的, 且Windows 是默认的gurb选项, 也就是说只要内 核更新了就会影响默认设置。 这里我 不是来教新用户如何更新Grub2的, 我只是想在桌面上建立一个脚本的符 号链接, 每当启动列表变长了以后就 需要运行一次该脚本。 我的“内核管理器” ——给觉得 它有点意思的朋友们(也可以在Conky 中使用 , 以显示安装的内核数量) : h ttp: //fullcirclemagazine. pastebi n. com/0JzTHjJ1 本程序已经很好地作了注释, 但 我还是要说一下其中的要点: 决胜命令行 作者 Lucas Westermann Full Circle中文杂志 第44期 6 目录 1、 检查/usr/src下的目录, 计算有 多少个Linux内核目录。 2、 它接着将实际名称保存在另一个 变量中。 3、 如果其中有(或不到) 4个目录, 则显示“无需动手。 ” , 然后退出。 4、 否则($folders  >  4)显示有多少 需要删除的内核, 并显示正要删除的 是哪个(这是为了安全起见) 。 5、 在用户了解了情况以后, 询问是 否继续。 6、 如果输入了“y” 则删除内核, 然 后等待三秒确保完成所有输出。 7、 等待用户输入回车退出(否则任何 错误信息都会丢失) 。 8、 如果没有满足任何条件语句, 告 知用户出现了错误。 决胜命令行 Full Circle中文杂志 第44期 7 目录 HOW-TO 作者 Greg Walters Python编程——第18部分 在 上一期中 , 我们创建了一 个非常简单的C/S架构系 统。 这次, 我们将对它做 一些小小的扩展。 这次的 服务器是一个井字过三关的棋盘和检 查器。 而客户端则负责输入输出。 我们从上次的服务器代码开始, 逐步修改它。 如果你没有保存上次的 代码, 那么这次就请访问http: //ful lcirclemagazine. pastebin. com/Uhq uVK4N来获取。 第一个改变是在__ini t__例程中 , 我们用它来初始化两个 新的变量: self. player和self. game board。 gameboard是一个简单的储存 着列表的列表或一个基本数组。 我们 可以用以下的方法来访问它(比平铺 的列表更直观) 。 这个列表将保存我 们的数据。 每个单元格有三种可能的 状态。 “-” 代表这个格子是空的, “X” 代表它被玩家1所占据, “O” 代表它被玩家2所占据。 当我们把它 放在二维空间中 , 整个列表看上去像 是这样: [ 0] [ 0] | [ 0] [ 1] | [ 0] [ 2] [ 1] [ 0] | [ 1] [ 1] | [ 1] [ 2] [ 2] [ 0] | [ 2] [ 1] | [ 2] [ 2] 从上个月的服务器端代码开始, 在__init__例程中 , 添加以下几行: # The next three lines are new. . . self. player = 1 self. gameboard = [ [ ' -' , ' -' , ' - ' ] , [ ' -' , ' -' , ' -' ] , [ ' -' , ' -' , ' - ' ] ] self. run( ) run、 listen以及servCmd例程都 没有被修改, 所以我们接下来将要重 点关注对procCmd例程所做的改变。 在上一期的文章中 , 服务器等待 来自客户端的指令, 然后将其传递给 os. popen例程。 这次, 我们将会解析 传入的指令。 我们有三个需要监听的 指令, 它们是“Start” 、 “Move” 以及“GOODBYE” 。 当我们接收到“S tart” 指令的时候, 服务器应当将棋 盘上的所有格子初始化为“-” , 然 后把棋盘打印给客户端。 “Move” 指令是个复合指令, 它 包含了指令本身, 以及玩家想要移动 到的位置。 例如“Move  A3” 。 我们 将这个指令解析为三个部分, “move ” 指令自身, 行坐标以及列坐标。 最 后, “GOODBYE” 指令就是将棋盘重 置, 用来进行下一场比赛。 现在, 我们在procCmd例程中接收 到了来自客户端的指令。 然后, 我们 检查指令来确定我们接下来该做什么 。 在procCmd例程中 , 找到它下面的 第五行, 然后, 在“if  self. proces singloop: ” 这行后, 将在同一代码 块内的所有代码移除。 现在我们将要 设置我们的指令。 下面列出的是对应 于Start指令的代码: if self. processingloop: if cmd == ' Start' : self. InitGameBoard( ) self. PrintGameBoard(1) 接下来, 让我们着眼于例程中的M ove部分。 我们首先检查传入的指令 的前四个字符, 看它是否和“Move” 相匹配。 如果它们匹配的话, 我们就 将从位置5开始(由于是从0开始索引 的)将剩下的字符串提取出来, 并将 其赋值给一个名为position的变量。 然后检查它的第一个字符是否是‘ A ’ 、 ‘ B’ 或‘ C’ 中的某一个。 它们 代表了客户端发送的“行” 。 接下来 , 我们提取下一个字符所储存的整型 值, 它代表了我们的“列” 。 下一步, 我们对行值进行一个快 速检测以确保它在合法的位置。 if row < 0 or row > 2: self. cli. send( ' Invalid position' ) return 最后, 我们验证那个位置是否为 空(‘–’ ) , 并且, 如果当前玩家是 1号的话, 我们将一个“X” 放在上面 , 否则我们放置一个“O” 。 然后我 们以一个“O” 为参数来调用PrintGa meBoard例程: if self. gameboard[ row] [ col] == ' -' : if self. player == 1: self. gameboard[ row] [ col] = "X" else: self. gameboard[ row] [ col] = "O" self. PrintGameBoard(0) 对procCmd例程的修改就到此结束 了。 接下来让我们完成“初始化棋盘 ” 这个例程。 它所做的工作是对棋盘 上的每一个位置赋值为“-” , “- ” 这个值会被move逻辑用来检测一个 位置是否为空。 def InitGameBoard(self) : self. gameboard = [ [ ' - ' , ' -' , ' -' ] , [ ' -' , ' -' , ' -' ] , [ ' - ' , ' -' , ' -' ] ] if cmd[ : 4] == ' Move' : print "MOVE COMMAND" position = cmd[ 5: ] if position[ 0] == ' A' : row = 0 elif position[ 0] == ' B' : row = 1 elif position[ 0] == ' C' : row = 2 else: self. cli. send( ' Invalid position' ) return col = int(position[ 1] ) -1 Full Circle中文杂志 第44期 8 目录 Python编程 —— 第18部分 PrintGameBoard例程将棋盘漂亮地打 印出来、 调用checktwin例程, 并设置玩 家标号。 我们创建了一个大字符串并将 其发送给客户端, 所以每执行一次move , 它只需要进入listen例程一次。 当客 户端第一次连接或重置游戏的时候, 打 印例程中将包含一个firsttime参数。 ( 见图一) 接着, 我们检查firsttime参数被设 置为0还是1。 只有当它被设为0的时候, 我们才需要检测当前玩家是否胜利, 并 且如果是的话, 在输出字符串后添加上 文本: “Player   X  WINS! ” 。 如果当前 玩家还没有胜利, 我们就加上“Enter move. . . ” 。 最后, 我们将字符串通过cl i. send例程发送给客户端。 (见图二) 最后, 我们让服务器通过一个例 程来检查玩家是否胜利了。 我们已经 将玩家设为“X” 或“O” , 所以我们 开始一个简单的for循环。 如果我们 发现胜利的话, 我们就从这个例程中 返回True。 我们for循环中的变量c表 示列表中的每一行。 (以下接图三) 客户端我们再一次从上次那个简 单的例程开始。 从对conn. makeConne ction的调用开始, 我们就得做一系 列的修改。 我们发送一个Start指令 、 几个Move指令, 以及最后一个Good bye指令。 一定要记住, 在发送另一 个指令前, 你必须先获取服务器对上 一个指令的回复。 将它想像成一个友 好的对话: 陈述你的观点, 倾听对方 的回答, 然后再继续陈述, 倾听…… 在这个例子中 , 我们使用raw_input 来让你可以看清楚发生的事件。 if __name__ == ' __main__' : conn = CmdLine( ' localhost' ) conn. makeConnection( ) conn. sendCmd( ' Start' ) conn. getResults( ) conn. sendCmd( ' Move A3' ) conn. getResults( ) r = raw_input( "Press Enter" ) conn. sendCmd( ' Move B2' ) conn. getResults( ) r = raw_input( "Press Enter" ) 接着用以下的指令设置sendCmd、 getResults、 raw_input这一系列例 程(上面已写出了A3和B2的代码) : C1、 A1、 C3、 B3、 C2, 然后用GOODBY E指令结束。 深入探索这是你的作业: 从客户 端程序中移除硬编码的move指令, 并 用raw_input()来提示用户以“A3” 或“B2” 的形式来输入。 然后将“Mo ve” 指令加在前面, 再发送给服务器 。 下一期中 , 我们将要修改服务器 , 让其真正地与另一个玩家进行游戏 。 服务器及客户端的全部源代码可在ht tp: //fullcirclemagazine. pastebin . com/UhquVK4N或http: //thedesigna tedgeek. com获取。 def PrintGameBoard(self, firsttime) : #Print the header row outp = ( ' 1 2 3' ) + chr(13) + chr(10) outp += ( " A {0} | {1} | {2}" . format(self. gameboard[ 0] [ 0] , self. gameboard[ 0] [ 1] , self. gameboard[ 0] [ 2] ) ) + chr(13) +chr(10) outp += ( ' ------------' ) + chr(13) +chr(10) outp += ( " B {0} | {1} | {2}" . format(self. gameboard[ 1] [ 0] , self. gameboard[ 1] [ 1] , self. gameboard[ 1] [ 2] ) ) + chr(13) +chr(10) outp += ( ' ------------' ) + chr(13) +chr(10) outp += ( " C {0} | {1} | {2}" . format(self. gameboard[ 2] [ 0] , self. gameboard[ 2] [ 1] , self. gameboard[ 2] [ 2] ) ) + chr(13) +chr(10) outp += ( ' ------------' ) + chr(13) +chr(10) if firsttime == 0: if self. player == 1: ret = self. checkwin( "X" ) else: ret = self. checkwin( "O" ) if ret == True: if self. player == 1: outp += "Player 1 WINS! " else: outp += "Player 2 WINS! " else: if self. player == 1: self. player = 2 else: self. player = 1 outp += ( ' Enter move for player %s' % self. player) self. cli. send(outp) 1 2 Full Circle中文杂志 第44期 9 目录 Python编程 —— 第18部分 首先, 我们要检查每一行, 看是否有赢家: def checkwin(self, player) : #loop through rows and columns for c in range(0, 3) : #check for horizontal line if self. gameboard[ c] [ 0] == player and self. gameboard[ c] [ 1] == player and self. gameboard[ c] [ 2] == player: print " *********\n\n%s wins\n\n*********" % player playerwin = True return playerwin 接下来, 我们检查每一列, 看是否有赢家: #check for vertical line elif self. gameboard[ 0] [ c] == player and self. gameboard[ 1] [ c] == player and self. gameboard[ 2] [ c] == player: print " ** %s wins **" % player playerwin = True return playerwin 现在我们检查从左到右的对角线: #check for diagonal win (left to right) elif self. gameboard[ 0] [ 0] == player and self. gameboard[ 1] [ 1] == player and self. gameboard[ 2] [ 2] == player: print " ** %s wins **" % player playerwin = True return playerwin 然后从右到左: #check for diagonal win (right to left) elif self. gameboard[ 0] [ 2] == player and self. gameboard[ 1] [ 1] == player and self. gameboard[ 2] [ 0] == player: print " ** %s wins **" % player playerwin = True return playerwin 最后, 如果没有符合胜利条件, 我们返回False: else: playerwin = False return playerwin 3 Full Circle中文杂志 第44期 10 目录 HOW-TO 作者 Chris Binnie 使用Wubi备份 和 许多人一样, 我使用Ubu ntu工作已经许多年了。 我的职业的一部分正是 维护Ubuntu服务器。 为 了保证服务器的稳定工作, 我常在服 务器上部署应用程序或者应用新的配 置文件之前, 在桌面版本上先试用一 下, 我发现没有什么事情比这更容易 了。 除了上述工作因素外, 我还是一 个Compiz特效的爱好者, 偶尔会追求 达到显卡的承受极限, 看它能否处理 Gnome提供的最新特效。 因而在我看 来弄坏配置文件如同家常便饭。 上次 就是大胆地修改了Grub2的配置, 而 使系统无法正常引导。 尽管Apt软件包管理工具可以轻松 地卸载已经不再需要使用的现有程序 (apt-get  autoremove) , 但偶尔我会 故意地安装新的配置文件, 破坏当前 的设置, 可以说, 我一贯把我的桌上 电脑当成专门实验程序的服务器。 当然, 对于数据中心里的服务器 , 系统无法引导也是一个常见的大问 题, 但是它在我的桌面电脑上却不存 在, 这就得特别感谢一个优美的软件 : Wubi(http: //wubi-installer. org ) 。 就如在他们的站点上陈述的, “W ubi是受到官方支持的一个神奇的按 钮, 轻轻一点就能使Windows用户步 入Linux的奇幻世界。 ” 大多数喜欢技术的读者肯定都了 解过Wubi, 但我不相信大家都像我介 绍的这样利用过这款软件。 Wubi使用循环磁盘, 循环磁盘是 一个保存整个操作系统文件的虚拟磁 盘。 这种备份方式通常被应用于ISO 镜像, 并刻录在光盘或软盘中。 简单 地说, 在一台已安装有Windows操作 系统的计算机中 , Wubi仅仅在引导菜 单中新增一个配置, 并指向循环磁盘 , 并将其视为一个独立的驱动器使用 。 Wubi可以使Windows用户轻松地过 渡到Linux, 却不需要用户对计算机 进行更改。 这是该软件最大的特性, 一旦你不再需要Ubuntu操作系统时, Wubi可以立即恢复Windows的引导, 清空循环磁盘, 不需要格式化或重新 分区, 计算机与安装前几乎无异。 这 是一个何等巧妙的方法, 我深深地爱 上了它的轻便简单。 这就是Wubi最初吸引我的地方。 我想称赞Linux, 它为我们提供了如 此完美的Windows安装包。 并且, 由 于Windows用户的善变, 我并不想使 用双启动系统来满足所有人。 因为如 果他们改变主意的话我就有的忙了。 Wubi神奇地与相应版本的Ubuntu 没有任何区别——我一开始对这一点 抱有疑惑, 担心兼容性与性能上的差 异。 循环磁盘也有些小瑕疵, 但以我 的经验, 只要合理地备份, 那些问题 都是无伤大雅的。 首先, 如果断电了 或是别人没有警告地关了你的电脑, 循环磁盘的数据将很难恢复。 fsck程 序不是每次都能像硬盘安装那样返回 令人满意的结果, 但在专用的磁盘分 区里安装Wubi能够帮助断电恢复。 其 次, 无法休眠也许会稍稍激怒一些笔 记本用户。 再次, Wubi需要你整理一 下所在分区的碎片来让它运行地尽可 能的快。 如果你在个性化你的Wubi安 装上花了很多的时间, 那么现在你可 以解放了——我们用一些现成的小工 具来让它变成一个标准的物理硬盘安 装。 多亏了循环磁盘的可移植性, 我 能在90秒内将整个系统备份于一个独 立磁盘。 导致系统无法正常使用的原 因可能是由于硬件错误让我失去一整 个硬盘驱动器、 可能(意外地)忽略了 一个安全漏洞而没有给它打补丁并使 我的电脑被攻击者所掌控、 从让机器 失灵的软件Bug中恢复, 或者无意中 损坏了什么。 我确信你能想象出无数 种导致电脑崩溃的原因来。 本方法就 像你将你的Ubuntu安装进了一个虚拟 机中(硬盘镜像之类) 。 首先我承认我 的方法并不怎么优雅, 但是我认为把 事情简单化, 让我们能轻松从错误中 恢复而不用再去阅读冗长的文档是值 得的。 可移植的操作系统意味着我可 以把它备份在一个可移动驱动器上并 将它带往另一个电脑, 或者通过一个 不赖的网络来储存一个云副本。 除了 这个方法, 这里还有一些Wubi的非常 规的打包应用案例: http: //wiki. ub untu. com/WubiGuide。 在快速安装过 程中(Windows下) , 你能够选择循环 磁盘的大小。 有一个方便的单行命令 能调整你设置的安装大小, 安装并不 是完全的无损(建议使用前备份系统 ! ) 。 还有, 挂载循环磁盘来复制内 部文件是比较容易的, 并且可以直接 操作Windows的文件系统, 只需要使 用命令: mount  -o  loop  myloop. dis k  /mnt。 我一般将循环硬盘大小定为 6. 5GB来让备份镜像更快捷, 额外的 空间则是为了适应升级包以及一些版 本的更新(原始的安装包只占到一小 部分) 。 挂载循环磁盘外的独立磁盘 只需要简单地mount  /dev/sdX  /mnt , 这意味着你可以使用你所有的硬盘 空间来进行存储。 我的原始Wubi安装 包有15-20GB大小, 当然你可以让它 们小一点来方便存储于DVD或者USB记 忆棒里。 我不用为了让备份立即生效 而让系统关机, 这是一个重要的优点 。 由于来自一个服务器的后台 , 我常 常以单用户模式启动或者关闭交互启 动模式来使用如DD等工具进行复制, 但Wubi在复制循环硬盘时则完全不需 要任何的中断。 我最初的一些备份无 疑是粗鲁而迅速的, 还遇到过一点的 麻烦。 我单击Nautilus文件浏览器左 侧的‘文件系统’ , 接着单击主目录 Full Circle中文杂志 第44期 11 目录 使用Wubi备份 。 在那个目录里面, 你能看到一个包 含全部操作系统的Ubuntu目录, 其中 最大的文件就是root. disk文件, 也 就是循环硬盘。 你只要把这个文件夹 拖往任何一个有足够空间的外部位置 就能实现系统备份。 当然, 把备份文 件夹改名为类似Ubuntu  10. 09. 10来 与别的备份版本相区别。 我用一个简 单的脚本来测试这个过程需要多长时 间(大部分是我想知道我的桌面电脑 的硬件是否运行良好) , 在测试之前 挂载我的备份, 结束之后重命名备份 。 我所使用的脚本非常简单, 你也许 可以添加一些如过程指示器来适应你 更老或较慢的硬件, 或者想要看备份 的详细时间。 就如前面提到的那样, 我的快速桌面仅耗时90秒来完成这个 重要工作。 我每周备份一个云副本( 归功于我的网速, 它让我能够在一夜 上传6. 5GB的资料) , 我也一直将备份 复制到我桌面电脑上的另一个硬盘。 想要自动备份, 下面的脚本将会很好 用 : 1、 将文件名改为今天的日期与时间 : filename=" ` date +%d. %m. %y- %H. %M` " 2、 挂载目标硬盘驱动器, 已挂载时 不返回错误: sudo mount /dev/sdb2 /media/SECOND > /dev/null 2>&1 3、 将ubuntu文件夹复制到目的地址 : sudo cp -R /host/ubuntu /media/SECOND/Wubi/ubuntu_$fi lename 4、 确定本用户有权限操作这些文件 而不仅仅是root用户(chris是我的用 户名 ) : sudo chown -R chris: chris /media/SECOND/Wubi/ubuntu_$fi lename 你有至少三种快捷的方法来恢复 备份。 你应该先关闭一些像Ubuntu  L ive  CD的东西, 然后进入到你的文件 夹, 将失效的Ubuntu目录命名为ubun tu_broken。 接着将备份的目录, 如U buntu_10. 09. 10复制进那个目录并重 命名为ubuntu。 如果你不想这么做, 那么你可以去编辑你的启动加载器, 如Grub或LILO, 将它们指向备份的位 置。 我觉得从Windows下启动, 然后 再进行恢复备份操作是最方便的, 只 要五分钟就能拯救回我的Ubuntu操作 系统。 如果我由于某些原因使我的电 脑彻底地崩溃, 只要硬件没有什么深 层次的不同 , 我的Wubi在曾安装Wind ows的电脑上也是兼容的。 我所能想 到的警告可能就是在Wubi的初始化中 , 当它写入一些文件到Windows的系 统分区时, 做一个拷贝是绝不过时的 建议。 你也许希望把它们拷入每个Ub untu的备份目录, 我倾向于为每一个 安装Wubi的电脑保存一份。 这些文件 非常小, 一般名为wubildr. mbr与wub ildr。 而当 Wubi运行于一些古董级或 诡异的Windows版本、 在256MB的内存 和如智能手机般1GHz的CPU时, 因为 各种各样的原因 , 很难保证它能显得 那么有用。 Full Circle中文杂志 第44期 12 目录 HOW-TO 作者 Robin Catling 短网址服务 由 于当前版本的Wordpress 为Full   Circle播客生成 的网址比较奇怪而且有 点乱, 我不得不想办法 缩短网址以免Atom的地址显得太乱。 为什么要缩短网址? 短网址服务是网站中一个简单的 字符串生成器, 用来生成站内网址的 一个唯一字符串 , 网站后台有一个翻 译表, 可以把你从短的链接地址转到 实际的长链接地址。 你可能用到短网 址服务的原因有: *   让网址在短信或者即时聊天工具中 容易输入; *   使网址能出现在Twitter或者其它 社交平台的字数有限制情况下; *   防止传统的长链接地址弄乱你的内 容管理系统或者网页。 多谢我们的网站管理员Rob  K! 我 现在给大家介绍一种开源的网址缩短 脚本, 它是基于Phurl的。 Phurl是一个自由的、 聪明的并且 易用的PHP的短网址服务系统。 只需 要5分钟就可以让你的短网址服务运 行起来。 这个脚本还有大量的你在其 他脚本里根本就找不到的功能……这 个脚本是从2007年开始编写的, 之后 我们的开发人员进行了持续的修改和 改进, 并及时修正了各种bug。 你需要一个服务器来运行这个脚 本并存储用于网址翻译的表格。 Phurl特性 *   简单、 容易和整洁的接口 ; *   基本的管理界面来查看、 搜索和删 除短网址; *   有验证码来防止网络爬虫过度提交 ; *   可以由脚本生成或者自行定制短网 址; *   有书签小程序来支持点击生成短网 址。 还有其他的短网址服务程 序…… 在一些新闻站点, 你经常可以看 到在新闻的最下方有简洁的短网址, 通常是TinyURL. com、 bit. ly之类的 网站提供的。 问题在于, 对于那些追 求搜索引擎优化的覆盖率、 网页排名 、 利润等等的网站来说, 一个缩短并 唯一的网址实际上会带走一些关键字 搜索到的实际网址的流量, 不管是搜 索引擎还是人脑, 都是这样。 Full Circle中文杂志 第44期 13 目录 首 先, 我用Slitaz的Live  C D启动电脑, 然后进行标 准安装。 无线 我的USB无线网卡被识别为 : USB  Wireless  Adapter (TL-WN620G) 。 为了让它运行起来, 我从http: // ftp. nluug. nl/pub/os/Linux/distr/ slitaz/packages/cooking/下载了ta zndis软件。 tazndis软件是ndiswrap per的替代品, 而且有图形界面。 不 过目前它还没有完全实现ndiswrappe r的功能。 接下来, 我用Tazndis(它有一个 非常棒的帮助文档) 安装了. inf(Wi ndows的驱动) 文件。 提示: 需要额外说明的是, 因为 笔记本没有网卡, 所以我是用另外一 台电脑从Slitaz网站上一个一个的下 载依赖包, 然后用U盘来安装的。 结论 笔记本通过无线网络连接工作的 很好。 唯一的问题是浏览器。 我用Mi dori上网时, 打开大部分页面的速度 都很慢, 所以我不得不又订购了一条 128兆的内存。 我用Dillo上网时快了 很多 , 但是很多页面有兼容性问题。 我还试用了Lynx。 它倒是飞快, 只不 过不能显示图形。 下一步的目标 一个只有4兆内存的康柏Contura  Aero笔记本。 我打算试试Minix3、 mu Linux、 BasicLinux和其他基于软盘 的发行版。 事实上, 我可能需要另外 买16兆内存来装到这台机器上, 凑够 20兆内存。 这样我才能够继续我的实 验, 希望可行! Linux实验室 作者 Nikos Karagiannakis 笔记本: 康柏Armada  100S, 内 存64兆. (http: //goo. gl/gl3mU) 发行版: Slitaz 2. 0 http: //mirror. slitaz. org/iso /2. 0/flavors/ Slitaz的小内存版本叫做slitaz -loram. iso。 Full Circle中文杂志 第44期 14 目录 我的故事 作者 Praveen Kumar Singh 我 是一个大学生, 目前正 在攻读工学学士(B. E) 学位, 今年是最后一年 。 我使用Ubuntu已经超 过10个月了。 我的Ubuntu故事开始于 一次对话, 一次我好朋友, 同时也是 我的同班同学Gautam和我聊天。 他问 我: “你听说过Ubuntu吗? ” 。 我当 时第一反应是“Ubuntu是个啥玩意儿 啊? ” 。 他告诉我, Ubunut是他前一 天安装的一款Linux操作系统。 这是 一款自由的操作系统, 任何人都可以 下载。 那以后, 我终于知道了Linux 原来是操作系统。 有幸的是我居住在 hostel, 一个网络非常发达的地方。 轻轻松松的就把700MB大小的光盘镜 像下载下来了。 虽然我不知道那些安 装选项是什么意思, 但我还是在Wind ows下完成了安装。 当我重启我的笔 记本之后, 我完全被Ubuntu的外观所 震撼了。 简直太不可思议了 , 而且操 作起来也很简单。 显然, 我也没有什么师傅在跟前 。 虽然有Gautam, 但也只是成功的安 装了Ubuntu而已 , 他也没有任何使用 Ubuntu的经历。 不过我相信Google是 最好的老师。 为此我得先让我的Ubun tu联网 , 当然我开始也不知道怎么做 。 于是乎我切换到我的Windows, 然 后看一些网上的新手指南。 我常常在 YouTube中找到一些新手视频, 然后 在我的Ubuntu上一个个的实践。 每天 我都会打开我的Ubuntu, 并且尝试一 些新东西。 我设法从图书馆里借一些 书, 并且从这些书里(当然有时也Go ogle一下) 找到一些命令并尝试使用 它们。 由于我的课程里没有Linux或 者Unix, 所以我必须一方面完成我的 课程, 一方面自己找资料学习Ubuntu 。 不过, 每天都能完成一些新东西也 是很高兴的一件事儿。 有一天我突然 冒出一个念头“怎样在Linux中编写C 程序呢? ” 。 于是我又开始搜索, 然 后找到了《Full   Circle》 这份杂志 , 在其中的某一期中有这么一份入门 指南。 我读完了整本杂志, 发现了很 多新东西。 于是我下载阅读了每一期 的杂志, 从中获益甚多。 此后, 我和我的一些朋友们分享 了Ubuntu。 他们中的一些人同样也安 装了。 而且其中还不乏一些想Tarun 这样的Ubuntu铁杆粉丝。 现在我也有 了一些可以和我互相探讨和分享Ubun tu的朋友了。 我们创建了一个博客— —www. tricksfind. blogspot. com, 并且常常往上面写一些我们新学的技 巧。 我想这是一种分享和学习的好方 式。 再过几天, 我们学校将要举行一 个Linux研讨会, 通过这个机会, 我 们可以宣传我了解的Linux知识和体 会了。
本文档为【issue44_zh-CN】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_777549
暂无简介~
格式:pdf
大小:7MB
软件:PDF阅读器
页数:0
分类:互联网
上传时间:2012-01-01
浏览量:14