读者来信

作者:Staff

读者来信

做得好!

我最近才用上宽带互联网,所以还在探索其中最好的去处。偶然的机会今天带我来到贵网站,然后就一发不可收拾。迷上了。不仅内容有趣(即使常常只是一个指引),而且网站本身也很出色。干净,清晰易读,结构良好——恭喜。


Lewis Smith

我们很高兴有您!在我所在的密歇根州北部地区,还有很多人仍然使用拨号上网。一旦你有了宽带,就很难想象没有它的生活了!玩得开心。—Ed.

Slackware Linux?

我已经使用 Linux 多年了,最近才订阅了 Linux Journal——很棒的杂志!我最初使用 Ubuntu,但我的 Linux 技能已经提升,并且已经使用 Slackware 差不多一年多了!它绝对不适合胆小的人,但它是一个稳固的操作系统,非常符合 Linux 的精神。我想建议 LJ 可以为我们这些不太幸运的人,多包含一些关于这个针对 Guru 用户的操作系统的资讯!无论如何,继续保持良好的工作!


Michael Griffith

我们会看看能做些什么。Slackware 确实是一个很棒的发行版,但正如你所说,它不适合胆小的人。我不能保证我们会提供更多关于 Slackware 的内容,但我们会尽量在文章中考虑到 Slackware 用户。—Ed.

两个小小的更正

我只是想写信提出几个小小的更正,这些更正可能会让一些初学者感到困惑。

第一个是在 Kyle Rankin 在 2010 年 11 月刊中对 Chinavision Pico 投影仪的评测中。他提到设备的 Linux 操作系统中端口 21 是开放的,并想知道 telnet 是否真的被启用了。端口 21 实际上是用于 FTP 的;telnet 是端口 23。这可能是笔误或只是疏忽,但我希望澄清读者可能有的任何困惑。

在 Mick Bauer 在 2010 年 12 月刊中“使用 Linux 构建透明防火墙”系列文章的第四部分中,他提到 iptables 忽略 inter-VLAN 流量,并将其描述为同一 VLAN 内不同端口之间的流量。同一 VLAN 内的流量实际上是 intra-VLAN 而不是 inter-VLAN。这当然类似于内联网和互联网之间的区别。

再次说明,这些都是小问题,与 LJ 每月发布的 大量优质内容相比,简直微不足道。继续保持良好的工作。


Brandon McCombs

生成逐向驾驶方向

今天我有机会试用了 Dave Taylor 在 2010 年 12 月刊中的脚本。虽然我是 curl、sed 和 lynx 的新手,但文章中的驾驶方向应用程序为我提供了在使用 Bash shell 时学习的方向。

非常感谢这样一个巧妙的脚本。在按照 Dave 的建议自定义脚本后,我可以从我用于脚本的目录结构中访问它,因此它现在成为我列表的一个很好的补充。我对脚本的另一个小改动是将输出发送到我桌面上的 desktop.txt 文件,这样我就可以在离开家前往新客户地点之前将其打印出来。

文章中以以下代码开头的curl --silent,我在最后一部分的最后一个 \ 之后完成了以下更改

lynx -dump -stdin > $HOME/Desktop/directions.txt

然后我添加了一行代码,让我可以打印脚本发送的列表

gedit $HOME/Desktop/directions.txt



Dave Mawdsley

Dave Taylor 回复: 谢谢你的反馈,Dave。听到人们喜欢我的一些疯狂科学家的黑客行为总是很高兴。

回到学校学习 Linux

我一直想回到学校完成我的学位。由于我最近对 Linux 和开源产生了兴趣,并且我希望能够将我的教育与我对开源的热爱结合起来——或者至少是开放标准。

唯一的问题是,我越看,就越发现学位课程都以 .Net 和 Microsoft 操作系统为中心。有没有哪些学校提供以 UNIX 或(更好的是)Linux 为中心的课程?

由于我现在已经有了家庭、朋友和工作,如果我能够获得优质教育,并且可以灵活地远程学习,那就太棒了。现在有这样的东西存在吗?谢谢你的帮助!


M. Miller

我自己离开大学已经好几年了,但我的猜测是,专门针对 Linux 的学位课程非常罕见。我的建议是考虑编程、网络或 Web 开发。它们不是专门针对 Linux 的,但你可以在这些领域内进行专业化。—Ed.

Dave Taylor 做得很好!

LJ 一月刊中,有一封读者来信基本上抨击了 Dave Taylor。我只想说,我认为 Dave Taylor 做得很好。当涉及到计算机时,总是有不止一种方法来做某事。有“好方法”、“更好方法”和“错误方法”。

可能有比 Dave 在他的文章中展示的方法更有效的方法来做事,但这并不意味着它们是错误的。我认为读者指出更好的做事方法是可以的。但是,这封信给人的感觉只是刻薄。

作为自己也做过很多 Bash 教程的人,我知道你可能有 100 个人喜欢你的教程,但只需要一条刻薄的评论就会毁了你的一天。因此,为了抵消这封严厉的信可能给 Dave 带来的糟糕的一天,我想给 Dave 一些鼓励的话。

Dave,你做得很好。我期待着你每个月的文章。我感谢你所做的一切,我相信很多读者都会同意我的看法。


Kristofer Occhipinti

Netflix 流媒体

在 2010 年 12 月刊中,一位读者请求帮助在 Linux 上观看 Netflix 流媒体电影。我找到了一种方法。

问题是 Microsoft DRM,它很难绕过,但你可以代理它。通过代理,我的意思是你可以使用一台 Windows 中介计算机。通过一台运行 MediaMall 的 PlayOn 软件的 Windows PC,你可以使 Netflix 流媒体视频在 Linux 机器上可用。我在我的博客 (www.innate-ideas.net) 中描述了在 Linux 上使用 VLC 观看 Netflix 的这种设置,但这种方法也适用于在 Linux 下使用 XBMC 或其他支持 UPnP/DLNA 的软件观看。希望这有帮助。


Earl

谢谢。你是对的,PlayOn(虽然不是免费的)效果相当好,但不幸的是,它仍然需要 Windows 才能工作。诚然,如果你使用 PlayOn,你不需要坐在 Windows 计算机前,但它仍然在那里。Netflix 坚持使用 Microsoft 的 Silverlight DRM,这非常令人沮丧。谢谢你的推荐。对于那些不介意在某个地方的壁橱里隐藏一个 Windows 安装的人来说,这是一个在 Linux 上观看流媒体视频的好方法。—Ed.

更多计数文件的方法

在阅读了 2010 年 1 月 Linux Journal 中的“另一种计数文件的方法”这封信后,我发现 Michael Eager 的方法通过减少调用的外部程序的数量(减少到零)并且实际上还消除了一个错误(尽管引入了另一个错误)来改进 Dave Taylor 的方法。

Dave Taylor 的脚本不能正确处理目录,因为ls命令会给出匹配目录的内容而不是名称。但这很容易补救,通过使用ls -1d而不是ls -1.

但是,在纠正了这一点之后,Michael Eager 又引入了另一个问题。他的脚本无法处理名称中带有空格的文件和目录。我知道名称中的空格不被铁杆 Linux/*nix 用户所接受,但尽管我自己也是老手,但我经常使用它们。我发现 Linux/*nix 社区可能应该更加意识到这个问题,也许 Dave Taylor 可以将他的专栏之一的重点放在这个问题上。

一个不使用外部调用且没有 Michael Eager 的缺陷的解决方案(尽管我自己的解决方案需要 Bash)是

#! /bin/bash
...
Matches=0
for Match in $Pat*
do
 if [ "$Match" != "$Pat*" ]; then
   Matches=$[Matches + 1]
 fi
done

我知道如果有很多匹配的文件/目录,我的解决方案可能会相对昂贵。我想仍然不止一种方法可以解决问题。


Torben Rybner

2011 年 1 月刊

致 Shawn Powers:本月刊中你帮助我的事情。我现在正在听 Pithos——非常棒,谢谢!我已经使用 BackupPC 大约两年了——很高兴看到它被提及。

告诉 Mick Bauer,他的防火墙系列文章很棒。我考虑过 Linksys WRT54GL 路由器——可能会这样做。我刚刚停止使用 IPCop(我认为那是上个月的文章),现在我正在使用 SmoothWall 3.0(只是为了获得 2.6 内核)。

我已经使用 Clonezilla live CD 大约四年了 [参见 Jeramiah Bowling 在 2011 年 1 月刊中发表的文章“Clonezilla:构建、克隆、重复”]。它已经救了我无数次。这是一个出色的产品,并且发展良好。

大家继续保持出色的工作!哦,对了,让我们看看,这是第 201 期,所以让我们至少再看 201 期。这意味着,每年 13 期,那么 15 年后,我们将在读什么?Linux 操作系统统治世界,而一些新兴的操作系统试图将 Linux 拉下马! (也许是比尔的侄子,试图拯救 MS 剩下的东西。我们只能希望如此。)


Bob Wooden

我想保持我童年的幻想,并假设 15 年后我们都将生活在太空。 Linux Journal 将成为每个人获取时事和信息的地方,我们的飞行汽车都将运行嵌入式 Linux。哦,而且我的发际线将停止后退!

说真的,谢谢你的好评。我们热爱我们在这里所做的事情,很高兴看到其他人享受我们劳动的成果。—Shawn.

Linux 用于科学专栏

Joey Bernard 的新专栏“Linux 用于科学”是我继续订阅 Linux Journal 的原因之一。是的,我喜欢系统管理提示和行业新闻,但 Linux 如此精彩的原因是,我认为我自己或任何其他人,都可以在地下室科学实验中使用与研究实验室中使用的相同的工具。我热切期待 Bernard 先生未来的文章。


Kwan Lowe

Joey Bernard 回复: 非常感谢您的鼓励。我的日常工作是帮助大学研究人员进行计算科学,我总是对你能做的所有事情感到惊讶。如果您有任何希望看到涵盖的特定主题或程序,请告诉我。

威尔士语命令提示符 (PS1)

作为 Linux 和威尔士语的爱好者,我认为发布一个 Perl 脚本可能会有用,该脚本将提供基于威尔士语的提示符。将 .bashrc 编辑为以下内容

PS1='`/home/ed/cymraeg.pl`:`pwd`: '

cymraeg.pl:
#!/usr/bin/perl -w

%mis=(Jan=>"Ionawr",Feb=>"Chwefror",Mar=>"Mawrth",
↪Apr=>"Ebrill",May=>"Mai",Jun=>"Mehefin",
↪Jul=>"Gorffennaf",Aug=>"Awst",Sep=>"Medi",
↪Oct=>"Hydref",Nov=>"Tachwedd",Dec=>"Rhagfyr");
%dydd =
%(Mon=>"Llun",Tue=>"Mawrth",Wed=>"Mercher",Thu=>"Iau",
↪Fri=>"Gwener",Sat=>"Sadwrn",Sun=>"Sul");

chop ($mnth = `date +"%b"` , $day = `date +"%a"` ,
 ↪$rhyf = `date +"%d"`);
 foreach $mmonth(keys %mis) {if ($mmonth eq $mnth)
 ↪{ $fy_mis = $mis{$mmonth}; }}
   foreach $dday(keys %dydd) {if ($dday eq $day)
 ↪{ $fy_dydd = $dydd{$dday}; }}
print "Dydd_$fy_dydd-$rhyf-Mis_$fy_mis";

假设一切正常,您应该得到以下结果

Dydd_Mawrth-02-Mis_Tachwedd:/home/ed:

对于任何说威尔士语并在 *nix 提示符下花费大量时间的人来说,至少对我而言,这是一种宣泄的体验。


Ed Williams

当我们打印我不理解的东西时,我总是很担心。我内心那个在学校被欺负的小书呆子总是认为有人在嘲笑我。虽然我不认为你的命令提示符是在叫我四眼仔,但我会留给我们的威尔士语读者去弄清楚。—Ed.

对更正的更正

首先,我要感谢 Dave Taylor 和 Frederic Mora(参见 Dave Taylor 在 2010 年 10 月刊中发表的“函数返回值和日光计算”以及 Frederic Mora 在 2010 年 12 月刊中发表的信)。白天脚本成为了我编写的用于捕获我家太阳能电池板产生的电力的脚本的开始。在晚上记录任何东西都是愚蠢的,因此弄清楚太阳何时升起和落下使这项工作变得更容易。

但是,Frederic 写的更正虽然更容易阅读,但也是不正确的。清晨的小时数有一个前导 0(07、08、09 等等),因此 bash 将这些视为八进制数,并且从上午 8:00 开始失败,并出现以下错误

line 64: 08: value too great for base (error token is "08")

因此,您需要将数字声明为十进制。这使 08 成为十进制 8,而不是不可能的八进制 8

currenttime=$(( 10#$hour *60 + 10#$min))
sunrisetime=$(( 10#$srh *60 + 10#$srm ))
sunsettime=$(( 10#$ssh *60 + 10#$ssm))

另一种选择是去除任何前导 0。


Alan Anderson

命令行网络配置

很高兴看到一个用于网络配置的命令行工具(参见 Joey Bernard 在 2010 年 12 月刊中的 Upfront 文章)。请多做一些!我确实有一件事要补充。我目前正在运行 CentOS 5.4,Joey 在他的文章中提到的配置文件是不同的。下面是一个带有路径的示例。另外,请注意 auto 设置的差异。每个网络接口都有一个配置文件

[root@CentOs01:/etc/sysconfig/network-scripts#] cat ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
BROADCAST=172.16.175.255
HWADDR=00:0C:29:77:D0:7E
IPADDR=172.16.162.3
NETMASK=255.255.240.0
NETWORK=172.16.160.0
ONBOOT=yes

顺便说一句,我真的很喜欢第 200 期。


Mickey Craven

加载 Disqus 评论