UpFront

作者:Various

UpFront

LJ 指数,2010年5月

1. 在 Google 上搜索“Google”的点击次数(百万):1,980

2. 在 Google 上搜索“Yahoo”的点击次数(百万):1,590

3. 在 Google 上搜索“Microsoft Bing”的点击次数(百万):22.1

4. 在 Yahoo 上搜索“Google”的点击次数(百万):5,790

5. 在 Yahoo 上搜索“Yahoo”的点击次数(百万):10,700

6. 在 Yahoo 上搜索“Microsoft Bing”的点击次数(百万):88.4

7. 在 Bing 上搜索“Google”的点击次数(百万):177

8. 在 Bing 上搜索“Yahoo”的点击次数(百万):270

9. 在 Bing 上搜索“Microsoft Bing”的点击次数(百万):3.9

10. 在 Google 上搜索“Linux”的点击次数(百万):294

11. 在 Yahoo 上搜索“Linux”的点击次数(百万):1,550

12. 在 Bing 上搜索“Linux”的点击次数(百万):253

13. 在 Google 上搜索“Windows”的点击次数(百万):831

14. 在 Yahoo 上搜索“Windows”的点击次数(百万):3,660

15. 在 Bing 上搜索“Windows”的点击次数(百万):384

16. 在 Google 上搜索“搜索引擎”的结果中 Google 的排名:5

17. 在 Yahoo 上搜索“搜索引擎”的结果中 Yahoo 的排名:1

18. 在 Bing 上搜索“搜索引擎”的结果中 Bing 的排名:100

19. 在 Google 上搜索“搜索引擎”的结果中 Dogpile 的排名:1

20. 在 Bing 上搜索“搜索引擎”的结果中 Dogpile 的排名:1

1–3、10、13、16、19:Google

4–6、11、14、17:Yahoo

7–9、12、15、18、20:Bing

在命令行上监听

Linux 有大量的音频播放程序,包括 Totem、Rhythmbox、MPlayer 和 VLC。这些示例都在 X11 环境中运行。如果您想在命令行上听音乐怎么办? 好,让我们来看一看。 不过,在我们开始之前,请注意本文假设您的机器上有一个正常工作的音频子系统。

大多数发行版现在都使用 PulseAudio 作为音频服务器,它为实际的音频硬件提供了一个标准的封装。 这样,软件只需要与 PulseAudio 服务器通信,而无需担心如何与市面上的每块声卡对话的繁琐细节。 PulseAudio 系统还包括您可以在命令行上使用的实用程序。 要简单地播放音频文件,请执行以下操作

paplay --volume=32768 example.mp3

这将以 50% 的音量播放音频文件 example.mp3(音量设置在 0 到 65536 之间,或者可以是静音或 100%)。 paplay 实用程序可以播放 libsndfile 库支持的任何音频格式,因此您应该能够播放您遇到的大多数音频文件。 如果您没有任何音频文件,请使用随附的 parec 实用程序。 此程序从您的声卡输入中获取原始音频数据并将其转储到标准输出; 您可以将其管道传输到文件以供以后保存。 要播放此原始数据,请使用随附的 pacat 实用程序。 它获取原始音频数据并将其转储到声卡的输出扬声器。

如果您想听取整个音频文件列表怎么办? 有几种选择可用于从命令行处理整个播放列表,例如 cplay 和 moc。 这两个程序都在启动时为您提供文件列表,从那里,您可以播放单个文件或构建播放列表。 这两个程序都使用快捷键来创建、编辑和以其他方式管理您的播放列表。

UpFront

cplay

UpFront

moc

您还可以让您的计算机从命令行与您对话。 几个实用程序可以让您的计算机发出声音,包括 Recite、Festival 和 eSpeak。 最简单的是 Recite。 它从标准输入获取文本并将音频输出到扬声器。 没有太多可用选项。 要让文本文件说话,请执行

recite <example.txt

您也可以简单地执行recite,然后开始输入。 请记住,Recite 在您按下 Ctrl-D 标记输入结束之前不会看到您输入的结尾。 然后,它会说出您刚刚输入的所有文本。

Festival 提供了更多选项。 要获得文本到音频的基本输出,请执行

festival --tts example.txt

您也可以使用其他语言。 默认语言是英语,但对于西班牙语、俄语或威尔士语,请使用命令行选项--language <string>。 Festival 还使用 Scheme 作为脚本语言,这使其可以进行大量修改。 花一些时间阅读 www.cstr.ac.uk/projects/festival/manual 上的手册以获取更多信息。

最后一个实用程序是 eSpeak,它还有其他几个可用的命令行选项。 您可以使用以下命令设置振幅-a <integer>(0–20;默认值为 10),使用以下命令设置音高-p <integer>(0–99;默认值为 50)和速度,使用-s <integer>(以每分钟字数为单位;默认值为 160)。 有几种声音可用; 使用以下选项找出您的系统上安装了哪些声音--voices。 选择一个后,使用选项-v <voicename>来使用它。 然后,使用-w <wave file name>选项将其转储到 .wav 文件。 完整的命令行如下所示

espeak -v en-scottish -w example.wav -f example.txt

您可以使用

paplay example.wav

现在您的计算机将以苏格兰口音说话,有点像。 语音合成仍然不完美。

现在您有了所有这些音频文件,您可能想要对它们进行一些处理,而 sox 是一个有用的工具,可以做到这一点。 包中包含的一个实用程序称为 soxi。 它为您提供有关音频文件的文件信息。 在其最基本的形式中,您可以使用 sox 通过简单地运行来更改音频文件的文件格式

sox example.wav example.au

sox 使用文件扩展名来确定您打算将文件 example.wav(wav 格式)转换为 example.au(Sun AU 格式)。 您还可以通过命令行选项对音频进行处理。 使用以下命令设置每个样本的位数-b <bits>。 使用以下命令设置通道数-c <channels>。 将其设置为单声道将是-c 1,而立体声将是-c 2。 您可以使用以下命令设置采样率(以赫兹为单位)-r <rate>。 此外,许多选项将过滤器应用于音频文件。 阅读手册页以获取有关 sox 的更多信息。 这是一个示例命令行

sox example.wav -b 8 -c 1 -r 8000 example.au

上面命令采用名为 example.wav 的输入文件,并将其转换为每个样本 8 位、单声道(或 1 个通道),采样率为 8,000Hz,并以 AU 格式写入文件。

sox 包还包含另外两个实用程序,play 和 rec,它们提供了另一种播放音频文件和将音频录制到文件的方法。 sox 还提供了处理和过滤的完整频谱。

我选择上面的示例是为了向您展示最后一个有趣的技巧。 在 Linux 系统上,您可以将此输出文件(使用此特定文件格式)直接 cat 到设备文件 /dev/audio。 这会将输出直接转储到声卡。 因此,如果您想偷偷摸摸,您可以使用上面的 sox 命令将一些文件转换为 AU 文件格式,将它们复制到您的目标机器,并在您想打扰别人时将它们 cat 到 /dev/audio。 现在您可以享受您的音乐并玩转音频文件,而无需 GUI 应用程序的开销。

diff -u:内核开发中的新内容

去年,我写了关于 Mathieu Desnoyers 重新许可一些 用户空间读取/复制/更新 (RCU) 代码从 GPLLGPL 的努力。 当时,Mathieu 正在经历从所有贡献者那里获得许可的繁琐过程,但 IBM 拥有代码中某些想法的专利,并且仅许可该专利用于 GPL 软件。 随后,Mathieu 写信给我,更新了情况。 显然,IBM 慷慨地将其专利许可范围扩大到包括 LGPL。 并且,关于其余内核贡献者,例如 Ingo Molnar,他们不想在 LGPL 下发布他们的代码,Mathieu 要么能够自己重做这些贡献的工作,要么成功地将这些位拼凑成一个单独的仅 GPL 文件,而大部分代码现在也可以作为 LGPL 发布,并且标头在 BSD 风格的许可下发布。

这是为数不多的相对大量的贡献者被寻找并被要求许可重新许可他们的代码的案例之一。 正如您所见,Mathieu 不得不在几个案例中求助于一些变通方法,例如自己重做贡献者的工作,他的经验可能为其他重新许可工作铺平道路。 我知道有几个人表示有兴趣在 开放软件许可 下重新许可整个 Linux 内核,并且 Linus Torvalds 说过,如果他有选择,他可能更喜欢该许可而不是 GPL v2。 但是,Linux 内核很可能太大了,永远无法获得足够贡献者的许可来重新许可。

顺便说一句,任何想更正或补充我每月在此处所说内容的人都欢迎通过 zacharyb@gmail.com 与我联系,就像 Mathieu 用他的更新所做的那样。

最近一项在所有内核编译中默认启用 devtmpfs 的努力遇到了一些反对。 Kay Sievers 指出,所有主要的发行版都将它包含在即将发布的版本中。 尽管这可能是真的,但 Alan Cox 指出,那些相同发行版的当前版本——也就是说,几乎每个人都在使用的版本——不包含它。 然而,至少看起来 devtmpfs 将不再被标记为“实验性”。 在这一点上,它是一项真正的功能,并且可能在不久的将来,当标准发行版真正附带它时,内核人员将按照 Kay 的建议默认启用它。

将继续支持的稳定树列表正在更新。 Greg Kroah-Hartman 宣布,2.6.27-stable tree 将由他积极维护到 2010 年年中左右。 到那时,预计 Willy Tarreau 将从他手中接管它,但在那段时间内,补丁将越来越少。 相反,Greg 说 2.6.32-stable tree 将是下一个长期稳定树,他预计会再维护两到三年。 保持此内核存活的主要原因之一是主要发行版使用了该版本,因此为发行版维护者提供干净的升级路径是有意义的。 但是,Greg 也明确表示,这必须是双向的——只要发行版维护者不断向他提供修复程序,他就会维护 2.6.32-stable 内核。 也不需要等到 2.6.27 结束。 正如 Willy 所说,每个人都应该随意开始发送 2.6.32 树的修复程序。

非 Linux FOSS

对于许多迷失在 Windows 世界中的 Linux 高级用户来说,最明显的遗漏是缺少 SSH 客户端。 当然,有 Cygwin 以及随之而来的所有好东西,除了 SSH 客户端(和服务器),但如果您正在寻找更轻量级的东西,或者如果您想要 GUI SSH 客户端,PuTTY 可能是您需要的工具。 除了 SSH,PuTTY 还支持 Telnet 和 Rlogin。

PuTTY 支持 Linux 用户习惯拥有的大多数功能:X11 转发(您需要单独的 X 服务器才能实现此目的)、端口转发、隧道等。 PuTTY 支持 SSH-1 和 SSH-2,并支持公钥身份验证。 PuTTY 附带 pscp 和 psftp 伴侣工具,用于命令行访问 SCP 和 SFTP。

由于它是 GUI 应用程序,PuTTY 的设置(包括不同主机的设置)通过 GUI 界面配置和存储。 只有当您实际连接到主机时,您才会与终端窗口交互。

PuTTY 是一个成熟的程序。 变更日志中列出的第一个版本 0.45 来自 1999 年。 最新版本是 0.60,于 2007 年发布。 PuTTY 可从 www.chiark.greenend.org.uk/~sgtatham/putty 获得。

UpFront

PuTTY 配置

供应商:让我们来做您的脏活!

不久前,所有值得一提的极客都在他们的客厅里连接电视的全功能计算机上运行 MythTV、GeeXBoX、XBMC 或类似软件。 尽管这些软件包仍然是消费媒体的好方法,但它们远非唯一的方法。 现在您可以购买现成的嵌入式媒体播放器。 Popcorn Hour、WDTV Live、Roku、ASUS O!Play 和数十种其他嵌入式设备(大多数(如果不是全部)运行 Linux)将插入电视并播放视频、音频、照片等。

唯一的问题是自定义。 尽管供应商在硬件方面肯定会胜出,但他们的软件通常有很多不足之处。 希望硬件制造商能够吸取他们在计算机世界中学到的东西,并过渡到机顶盒世界。 花时间在硬件上,让其他人来做软件! 想象一下,一个现成的设备,提供 HDMI、红外遥控器、板载闪存存储,以及足够的灵活性来安装您自己的前端。 现在,想象一下该设备的价格低于 100 美元。 考虑到 Roku SD 的价格低于 80 美元,这当然不是痴人说梦。

所以供应商们,你们在听吗? 我们只是想让您的生活更轻松! 您为我们提供出色的硬件,我们将为您提供出色的软件。 而且,它将是开源的——无需许可。

让我们像 1999 年那样狂欢!

研究表明,经常从工作中休息可以提高工作效率,营造更愉快的工作环境并减轻压力。 尽管可能有更健康的方式来度过您偶尔的工作休息时间,但游戏模拟器肯定提供了一种有趣的放松方式。 假设您有足够的技术知识来找到一份允许您使用 Linux 的工作,并且您足够 Geeky 以至于渴望一种玩旧 Nintendo 游戏的方式,我认为可以安全地假设您将能够为您合法拥有的那些游戏获得 ROM 映像——您知道,那些放在您父母地下室盒子里的游戏。

随着 ROCKnes、iNes、zsnes 及其同类模拟器的加入,您可以花 15 小时(呃,分钟)的休息时间玩 超级马里奥兄弟F-Zero塞尔达 等经典游戏。 如果您可以使用 USB 游戏控制器,它将使体验更加有趣。 让我们不要自欺欺人,虽然 魔兽世界 可能令人上瘾,但它无法与我们过去周末玩 勇者斗恶龙 30 小时而不是做作业的那些会话相提并论。 玩得开心,尽量不要被解雇!

使用 Telnet 发送电子邮件

可怜的 telnet 多年来一直名声不好,因为如果您使用它进行远程登录,您的密码会以明文形式显示。 但是,即使您应该使用 SSH 进行远程会话,您也不应该完全抛弃 telnet。 毕竟,telnet 只是连接到远程端口并向其发送文本命令的一种方式。 当您开始研究 HTTP 和 SMTP 等多种协议时,您会发现,如果您知道正确的命令,您可以 telnet 进入这些端口并充当更复杂的客户端。

我使用 telnet 的一种方式是测试邮件服务器是否工作。 当然,我可以使用电子邮件客户端,但那样我就必须重新配置它。 此外,使用 telnet 发送电子邮件是一个不错的 Geeky 派对技巧(好吧,也许是我参加的派对),特别是如果您伪造了您的 FROM 地址。

首先,使用 telnet 连接到您的邮件服务器上的端口 25

$ telnet mail.example.net 25
Trying 123.234.123.234...
Connected to mail.example.net.
Escape character is '^]'.
220 mail.example.net ESMTP Postfix

接下来,使用 HELO 命令告诉服务器您来自哪个域。 它将以其名称回复

HELO microsoft.com
250 mail.example.net

之后,使用MAIL FROM命令告诉服务器此电子邮件来自哪个电子邮件地址。 这里有趣的部分是您可以使 FROM 地址看起来来自任何人。 如果邮件服务器接受它,它将回复250 Ok:

MAIL FROM: bill.gates@microsoft.com
250 Ok

我们进去了! 好的,现在使用RCPT TO命令告诉服务器您要将电子邮件发送给谁

RCPT TO: lj@greenfly.net
250 Ok

最后,让我们输入电子邮件的正文。 输入DATA并按 Enter 键。 邮件服务器将回复指示,要求您以包含单个点的空行结束电子邮件正文。 在此之后,我输入了 Subject 标头和我电子邮件的其余部分,但您可以在此处添加任意数量的标头。 完成消息后,在单独一行中键入句点

DATA
354 End data with <CR><LF>.<CR><LF>
Subject: Linux is awesome
Hi,

It's Bill. I just wanted to let you know 
Linux is awesome.

Sincerely,
Bill Gates
.
250 Ok: queued as 12BDBE6FEE9

完成电子邮件会话后,键入quit退出

quit
221 Bye
Connection closed by foreign host.

他们说了

如果计算机变得过于强大,我们可以将它们组织成一个委员会。 这会让他们完蛋。

—布拉德利的溴化物

互联网是大企业的伟哥。

—杰克·韦尔奇,通用电气董事长兼首席执行官

在某些时候,我们必须相信最终用户的智慧。

—匿名

伯克利有两项主要产品:LSD 和 UNIX。 我们不认为这是一个巧合。

—杰里米·S·安德森

一台机器可以完成五十个普通人的工作。 没有机器可以完成一个非凡的人的工作。

—埃尔伯特·哈伯德

任何可以被计算机取代的老师都应该被取代。

—大卫·桑伯格

系统中可以用锤子敲击的部分称为硬件; 那些你只能诅咒的程序指令称为软件。

—匿名

参与 LinuxJournal.com

关于新 LinuxJournal.com 最好的事情之一是能够与 Linux Journal 工作人员和您的其他读者互动。 访问 www.linuxjournal.com/participate 搜索其他读者或查找 Linux Journal 编辑并建立联系。 您还会找到论坛、社区活动和我们的 IRC 频道。 有很多方法可以成为我们不断壮大的社区的一部分,所以去看看并立即加入。

当您访问作者的个人资料时,您会看到他们所有文章的列表以及他们在 LinuxJournal.com 上的最新动态。 您还会看到他们最喜欢的文章,如果您登录,您可以给他们留言。 我们希望您能建立一些联系,并将我们视为您的虚拟 LUG。 我期待与大家建立联系!

加载 Disqus 评论