组织你的 $HOME
弗朗索瓦,请把那些箱子搬到酒窖去。当你下去的时候,也把“唐”酒转动四分之一圈。哦,当你上来的时候,把 78 年的 拉塔希 也拿上来。在所有这些重新整理和归置之后,我想我需要放松一下。
我的天哪!我的朋友们,我没有意识到你们在这里。请原谅我和这个混乱的场面。由于这里一直在进行工作,我没有注意到已经到了营业时间。请坐下。我会叫弗朗索瓦从酒窖里拿些特别的东西上来。免费的!
弗朗索瓦!我们有客人。给我们的朋友们来一箱唐培里侬!
你们知道,我的朋友们,当我们用 Linux 做饭时,我们可能会有点得意忘形。在你的处理器厨房里进行了多次实验之后,你的 $HOME 可能会变得非常混乱,不是吗?我有一些文件甚至都不认识。然而,我又害怕删除它们。万一它们很重要怎么办?万一我需要它们呢?
一个解决方案是移动。使用 Linux 将用户移动到新目录是小菜一碟。例如,如果我有一个名为“natika”的用户,其主目录为 /home/natika,并且我感觉 Natika 在名为 /home/boullabaise 的新目录中会更好,我会发出这样的命令
# usermod -d /home/boullabaise -m natika
“-d” 指定新目录,而 “-m” 告诉 usermod 将 /home/natika 中的所有内容移动到用户 ID 为 “natika” 的 /home/boullabaise。如果该目录尚不存在,则会创建它。问题是所有内容都被移动了,并且你可能拥有的任何杂乱都会跟随你到新的 $HOME。
说到杂乱... 你是否曾经好奇过你散落在系统各处的 .jpg 文件的庞大阵列?为了更好地组织它们而找到它们可以使用 find 命令来完成。
# find / -name "*.jpg" -print
你想给那个命令计时吗,我的朋友们?根据你系统的性能,这可能需要一段时间,并且你可能会收到很多“权限被拒绝”消息(特别是当你遍历 /proc 时)或以非特权用户身份运行时。幸运的是,有一种更快的方法。在大多数 Linux 系统上,你有一个每天运行一次的进程。该进程构建一个系统上所有文件的数据库,以便快速轻松地搜索。该命令称为 locate 或 slocate。在你系统上运行的进程位于 /etc/cron.daily 中,名为 slocate.cron。如果你的系统没有 24 小时运行(它是一个 Linux 系统,不是吗?),你可以通过手动运行 cron 脚本或使用命令 updatedb 来构建 slocate 数据库。让我们再次尝试查找那些 .jpg 文件。
# slocate jpg太神奇了,不是吗?我应该告诉你,find 命令比 slocate 命令强大得多,但如果你需要快速找到一个文件,并且你不知道它去了哪里,请尝试 slocate。但是,如果你试图做的是查找旧文件或特别大的文件,那么你绝对应该使用 find 命令。这是一个例子,我在其中查找我在过去十二个月内没有修改(-mtime 参数)或访问(-atime 参数)的任何内容。
# find /data1/Marcel -size +1024 \ \( -mtime +365 -o -atime +365 \) -ls反斜杠是转义字符,用于确保我们的 shell 不会以我们不希望的方式解释它们,在本例中,是第二行上的左右括号。第一行的末尾也有一个反斜杠。这表示换行,因为整个命令无法整齐地放在此页的一行上。如果你完全按照显示的方式输入它,而没有任何反斜杠,它将无法工作;但是,第二行中的反斜杠是必不可少的。啊,但我还有一些事情没有告诉你。上面的命令还搜索大于 500KB 的文件。这就是 “-size +1024” 的意思,因为 “1024” 指的是 512 字节的块。命令末尾的 -ls 告诉系统对它找到的任何符合我的搜索条件的文件执行“长”列表。你可能希望将此输出管道传输到你的打印机,以便更好地检查结果。另一种选择是将它重定向到一个文件,你可以在以后仔细阅读并决定采取什么行动。
早些时候,我提到我害怕删除这些文件中的任何一个,因为我并不总是知道它们是什么。虽然你谦虚的厨师可能有点夸大其词,但我可以告诉你如何改进该搜索,以帮助你揭开这些文件背后的秘密。你的系统包含一个名为 file 的命令,它可以提供有关文件及其用途的有用信息。如果我通过添加 -exec 子句来修改 find 命令,我可以产生更多信息。
# find /data1/Marcel -size +1024 \ \( -mtime +365 -o -atime +365 \) -ls -exec file {} \;
跟随 -exec file 的左右大括号表示生成的文件列表应传递给 -exec 选项后面的任何命令。在这种情况下,需要反斜杠后跟分号。
find 在其他方面也是一个很棒的命令。例如,我可以使用它来查找 SUID 或 GUID 文件,这对于安全原因非常有用。检查你的系统中设置为以 root 身份执行的文件,并确定它们是否应该在那里,这绝对是一个好主意。我还使用 find 来查找核心文件和编辑器临时文件,那些文件名末尾带有波浪号 (~) 的奇怪小文件。而且,当然,在 Linux 厨房里工作这么多意味着我有数百个应用程序的源文件,我为你,我的朋友们,尝试和测试过。看看我编写的以下示例脚本,它将所有这些想法都考虑在内。
#!/bin/bash # # Locate files and report to me. # Marcel Gagné, 2000 # search_log=/tmp/foundfiles rm -f $search_log touch $search_log # echo "------------------------------- " >> $search_log echo "Looking for big old files . . . " >> $search_log echo "------------------------------- " >> $search_log # find /data1 -size +2048 \( -mtime +180 -o -atime +180 \) \ -ls -exec file {} \; >> $search_log # echo "------------------------------- " >> $search_log echo "Looking SUID / GUID files . . . " >> $search_log echo "------------------------------- " >> $search_log # find / -type f \( -perm -2000 -o -perm -4000 \) -ls >> $search_log # echo "------------------------------------------------ " >> $search_log echo "Looking for core files or old editor files . . . " >> $search_log echo "------------------------------------------------ " >> $search_log # find / \( -name core -o -name "*~" \) -print >> $search_log # echo "------------------------------- " >> $search_log echo "All done!" >> $search_log
当然,我的 $HOME(或者就此而言,我的整个系统)不是唯一需要组织的地方。现在有太多东西需要跟踪,以至于 Marcel 厨师需要额外的 Linux 风格的帮助。电子便签怎么样?你已经有 40 或 50 张覆盖了你的显示器、隔间墙或桌面(木制的,而不是显示器上的虚拟桌面)。为什么不将这个概念移植到你的 Linux 桌面呢?KDE 附带了一个名为 knotes 的小程序。你可以在“实用工具”菜单下找到它,或者只是从终端窗口键入 knotes。与传统的纸质便签不同,你还可以使用这些便签设置闹钟,而且它们不使用纸张。
黄色便签很好,坦率地说,我发现在许多场合它们非常有用。不幸的是,它们没有计划器或日历的灵活性。再次,使用你的 Linux 系统,你已经准备好并且能够更好地开始规划你的生活。如果你正在运行 GNOME,你可以使用程序 gnomecal 来保持井井有条。KDE 用户有 korganizer 来保持专注。我们非常关注 KDE 和 GNOME 用户,因为桌面应用程序往往在设计时就考虑了易用性。但是,GNOME 和 KDE 并不是唯一的选择,许多人使用更轻巧、更快速的桌面。(对于本文,我一直在使用 Window Maker 作为我的窗口管理器。)对于那些正在寻找不错的跨桌面替代方案的人,我推荐 ical,一个干净、简单的 X 窗口日历程序。
虽然不是最强大的日历软件,但 ical 与前面提到的 gnomecal 不相上下。这个小程序可能已经安装了,并且几乎肯定在你的 CD-ROM 发行版光盘上。通过键入 ical 启动该程序。初始屏幕是月视图日历、待办事项列表和单页日计划视图。你还可以通过单击“文件”和“包含日历”与办公室的其他成员共享日历。
不久前,你谦虚的厨师承认他需要的帮助甚至比单独的 ical(或电子黄色便签,就此而言)所能提供的还要多。他需要一些便携式的东西,一些能随时随地跟随他的东西。这种帮助以他的 Palm Pilot 的形式出现。虽然 3Com 的友好人士非常出色地创造了这个小奇迹,但他们没有为 Linux 提供用于备份和热同步的软件。幸运的是,才华横溢的 Linux 开发者社区已经挺身而出,帮助你谦虚的餐馆老板保持井井有条并进行备份。
从现在开始,我提到的每个工具都需要 pilot-link 实用程序套件。你不应该需要去寻找这个软件包,因为它可能已经安装在你的系统上。如果没有,请检查你的发行版 CD。一种确定的方法是尝试命令 read-ical。read-ical 是一个接口程序,它将读取你的 Palm Pilot 信息并将其加载到 ical 可以使用的日历文件中。以下是该命令的格式。
read-ical /dev/pilot calendar_filename
在我的系统的情况下,/dev/pilot 是 /dev/ttyS0 的符号链接。我使用以下命令创建了该链接
ln -s /dev/ttyS0 /dev/pilot发出 read-ical 命令后,你应该单击 Palm Pilot 底座上的“热同步”按钮。请注意,我的朋友们。这个过程不是真正的热同步。每次执行此命令时,你上面指定的日历文件名都会被覆盖。因此,你应该使用与你日常使用的日历文件(或你的公司范围内的文件)不同的文件。我使用了一个名为 pilotcal 的文件。为了与 ical 一起使用它,我只需单击“文件”,然后单击“包含日历”。我指定了名为 “pilotcal” 的文件,突然,我的所有约会和待办事项都可用了。
在继续介绍我认为是“超级便签”的内容之前,我应该提到 KDE Korganizer 程序也允许你与你的 Palm 同步,另一个很酷的 KDE 程序 Kpilot 也是如此。我已经使用 Kpilot 相当长一段时间了,但最近我发现了这个领域的另一个参与者,名为 J-Pilot。这个不会在你的 CD 上,所以你必须访问网站(参见资源)。J-Pilot 非常像它的灵感来源,为 那个其他操作系统 分发的 Palm 桌面软件,J-Pilot 模仿了 Palm Pilot 用户已经熟悉的界面。J-Pilot 由 Judd Montgomery 编写,可以作为源代码 tarball 或 RPM(Red Hat、Caldera、Slackware 7)提供。
但是,将久经考验的黄色便签与 Palm Pilot 的灵活性相结合怎么样?难道无处可求了吗?幸运的是,Michael J. Hammel(Graphics Muse 的名人,也是本杂志的常客)编写了 XNotesPlus。这是一个非常棒的小软件包,它将便签的功能扩展到 knotes 所提供的功能之外。
你可以从 Graphics Muse 网站获取源代码、GTK 版本或 Motif/LessTif 版本。我获取了 GTK 版本,在撰写本文时,它是 3.2.2 版本。XNotesPlus 的安装非常简单。在解压和解压缩发行版后,只需从发行版目录运行 install 脚本。步骤如下
tar -xzvf XNotesPlus-v3.2.2-Linux-gtk.tar.gz cd xnotes ./install
该脚本将与你确认你的 xnotes 数据库的位置,以及可执行文件的路径名。你还将获得将以下行添加到你的 .bash_profile 的说明,以便你可以与你的 Palm Pilot 同步。
export PILOTPORT=/dev/pilot export PILOTRATE=57600要使用 XNotesPlus,请发出命令 xnotes+。
是真的。该命令末尾有一个加号。该应用程序出现时带有一个漂亮的小型 Window Maker 风格图标,你可以右键单击它来执行各种操作(它有一个看起来有点像星系的漩涡)。在你将找到的功能中(除了用黄色覆盖你的虚拟桌面之外)还有一个 Palm Pilot 同步实用程序、从你的地址簿打印信封、设置带有小音乐提醒的闹钟、电子邮件便签,或者,如果你真的不想弄乱你的桌面,你甚至可以隐藏便签。
在离开 XNotesPlus 之前,我应该指出,虽然它是免费软件并提供了源代码,但它不是 GPL 许可的。请阅读随附的 “COPYING” 文件以了解许可详细信息。
好了,我的朋友们,又到了我们不得不分别的时候了。下次你来访时,我希望能够更有条理。虽然免费喝香槟对你来说是好事,但对我来说却不太好,不是吗?没关系;尽情享受吧。事实上,在我们关门之前,让弗朗索瓦为你倒上最后一杯。下次我们见面时,你在 Chez Marcel 的餐桌将已准备就绪。
祝你健康!祝你胃口好!

Marcel Gagné (mggagne@salmar.com) 居住在安大略省密西沙加市。在现实生活中,他是 Salmar Consulting Inc. 的总裁,这是一家系统集成和网络咨询公司。他也是一名飞行员,撰写科幻小说和奇幻小说,并编辑科幻、奇幻和恐怖杂志 TransVersions。他热爱 Linux 和所有 flavors of UNIX,甚至会在公共场合承认这一点。你可以从他的网站 http://www.salmar.com/ 发现更多。