Seth Kenlon 发布的文章

在不放弃你的 Plasma 桌面的情况下获得 GNOME 的感觉。

 title=

GNOME 有一种极简主义设计的倾向。它是一种美丽的桌面体验,并且是第一个在我使用 Linux 时引起别人赞叹的自由桌面。然后(请原谅我的形而上的哲学思考),没有复杂性就没有极简主义,而 KDE 以其极具定制性而闻名。我认为测试一下 KDE 的配置可能会很有趣,并尝试在 KDE Plasma 桌面上重新实现,至少在表面上实现 GNOME 的体验。

如果你尝试这个,请在一个临时用户帐户中进行。这些变化相对来说比较剧烈,撤销它以回到你的标准 KDE 布局可能是一个很大的工作。

Adwaita 主题

GNOME 的默认主题叫做 Adwaita,是为 GTK 设计的,这是 GNOME 用于窗口和部件的工具包。KDE 使用 Qt 工具包,但 Fedora-Qt 项目已经开发了一个模仿 Adwaita 的 Qt 主题。这是在 KDE 上模仿 GNOME 的第一步,也是最明显的一步。使用你的发行版的包管理器安装 Adwaita for Qt:

$ sudo dnf install adwaita-qt{,5}

在基于 Debian 的发行版上,请使用 apt 命令而不是 dnf

安装完毕后,进入“ 系统设置 System Settings ”,选择“ 应用风格 Application Style ”。选择你喜欢的 Adwaita 主题变体:有一个浅色主题和一个深色主题,以及两者之间的变化。点击“ 应用 Apply ”按钮来更新你的主题,但先不要关闭这个控制面板。

窗口装饰

在“ 应用风格 Application Style ”窗口的左侧面板中选择“ 窗口装饰 Window Decorations ”分类。如果有一个适合 Adwaita 的标题栏样式,通过选择它并点击“ 应用 Apply ”来激活它。如果没有安装额外的装饰,点击面板右下方的“ 获取新窗口装饰 Get new window decorations ”按钮,下载合适的东西。我使用了用户 x-varlesh-x 提供的 “Arc” 主题,但你可以四处看看,看看什么最适合你的其他主题。

GNOME 著名的是它的窗口标题栏上只有一个按钮,所以导航到“ 标题栏按钮 Titlebar Buttons ”标签,然后通过将“ 关闭 Close ”按钮从标题栏图像拖到处置区域来删除所有按钮。

 title=

取消选择“ 显示标题栏按钮提示 Show titlebar button tooltips ”,因为 GNOME 不倾向于在系统部件上做提示。

点击“ 应用 Apply ”来保存你的修改。

GTK 主题

在 KDE 上,使用 GTK 的应用通常会被重新主题化成与 KDE 的默认主题一致。现在你已经把你的主题从 KDE Breeze 改为 GNOME Adwaita,你必须告诉 GTK 使用 Adwaita 主题。

点击“ 应用风格 Application Style ”面板底部的“ 配置 GNOME/GTK 应用风格 Configure GNOME/GTK application style ”按钮,在下拉菜单中选择 “Adwaita”。

工作区行为

GNOME 在视觉上比 KDE 更安静,所以在“ 系统设置 System Settings ”中找到“ 工作区行为 Workspace behavior ”面板,停用“ 在鼠标悬停时显示信息提示 Display informational tooltips on mouse hover ”和“ 显示状态变化的视觉反馈 Display visual feedback for status changes ”。

你也可以把打开文件和文件夹改为需要双击而不是单击(在实际中,这对我来说太不方便了)。

图标和光标

你可以在“ 系统设置 System Settings ”中把光标改为 Adwaita 主题,然后选择一个图标主题。我喜欢 Breeze 的图标,但它们确实感觉像 KDE。GNOME 使用 Adwaita 图标集,但由于它们是为 GNOME 设计的,所以缺少一些重要的 KDE 组件的图标。你可以点击“ 图标 Icons ”控制面板中的“ 获取新图标 Get New Icons ”按钮来浏览很多图标集,最后我选择了用户 alvatip 提供的 “Nordzy”。不过,有很多不错的图标集可用,查看它们,看看你喜欢什么。我发现任何不属于 Breeze 的东西都会使 KDE 看起来与我习惯的东西有足够的不同。

系统面板

GNOME 的面板在屏幕的顶部,而 KDE 的面板默认在屏幕的底部。GNOME 的面板在默认情况下也是比较空的,所以我发现最简单的做法是先把当前的 KDE 面板完全删除。

右键点击并选择“ 编辑面板 Edit panel ”。进入编辑模式后,再次右键点击面板,选择“ 删除面板 Remove panel ”。当它消失了,右击桌面上的任何地方,选择“ 添加面板 Add panel ”并添加一个空面板。这样就在屏幕底部添加了一个面板,所以右击它,选择“ 编辑面板 Edit panel ”,然后点击并拖动“ 屏幕边缘 Screen Edge ”按钮到屏幕的顶部。

当仍处于编辑模式时,点击“ 添加部件 Add widgets ”按钮,将“ 应用仪表板 Application dashboard ”部件添加到面板的最左端。然后从“ 编辑面板 Edit panel ”视图中添加一个“ 间隔 Spacer ”块,然后是一个“ 时钟 Clock ”,然后是另一个“ 间隔 Spacer ”。你可以拖动这些小部件来排列它们,所以我发现最简单的做法是添加上应用仪表板和时钟,然后是两个间隔,再把它们排列起来。

 title=

你可以右键点击每个小组件来定制图标和布局。例如,我把日期从时钟上移走了,因为它在附加了日期后看起来很挤,尽管 GNOME 确实包含了日期。

通过进入“ 系统设置 System Settings ”,选择一个深色的 Plasma 主题,比如 “Breeze Dark”,将面板改为黑色。

GNOME Plasma 桌面

通过一些快速的调整,你的桌面现在在各个方面接近于 GNOME。布局是类似的。

 title=

应用仪表板提供了一个 GNOME 风格的应用启动器。

 title=

其他小的修改进一步有助于产生这种错觉。例如,我简化了 Dolphin 文件管理器,去掉了“ 位置 Places ”面板,也去掉了工具栏上的大部分按钮。

一个不同的视角

这不是一个精确的匹配,比我更具钻研精神的人可以做的更多,得到更接近正确的结果。然而,像这样有趣的变化证明了 KDE 是多么的灵活,拥有大量的选项意味着你可以缩减你的交互内容以适应你的偏好。一个类似 GNOME 的桌面可以给你一个新的视角来看待你与桌面的互动,即使你不会永远保持这种布局,它可以帮助你发现你可能没有想到要寻找的选项。


via: https://opensource.com/article/22/2/make-kde-look-like-gnome

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

KDE Plasma 桌面的目标是整合、一致和定制的完美结合。

 title=

开源引以为豪的事情之一是选择。你不必满足于你不喜欢的东西。你可以改变你的文件管理器、你的 文本编辑器,你甚至有超过 24 个桌面 可以选择。和许多 Linux 用户一样,我一开始经常切换自己使用的桌面。最初我不知道自己喜欢什么,因为我还没有尝试过所有可用的东西。在 2008 年 1 月的一个好日子,KDE 4.0 发布了,从我看到 Plasma 桌面的那一刻起,我就知道这是我一直在等待的 Linux 桌面(那时我成为 Linux 用户才一年,我想我没必要等太久)。尽管我的笔记本上有 GNOME,我的树莓派上有 Fluxbox,可能还有其他一些组合,但我认为自己是 Plasma 桌面的用户,也是 KDE 社区的一员。

我爱 KDE 的三个理由

爱上 KDE 的理由有很多,但这里有我的三个理由:

一致性

 title=

一致性是教给用户一个新工具的重要部分。最理想的情况是,一个人在一个应用程序中学习了一些东西,然后在不知不觉中把同样的知识转移到另一个应用程序中。KDE 项目的目标是在其所有的应用程序中实现一致性,这也是 KDE 框架存在的原因之一。越多 KDE 开发者使用框架,用户需要学习的东西就越少,因为使用过一个应用程序的用户已经熟悉了该框架所提供的关键组件。

大量的代码在应用程序之间被重复使用。Konsole 可以作为 Dolphin 和 Kate 的一个面板启动。工具栏配置选项在所有应用程序中基本相同。有一些重要的惯例,比如用单次点击来打开一个文件或文件夹,而不是双击(你会节省几个微秒,相信我),以及可靠的右键菜单选项。

KDE 的伟大之处在于,当你想做一件你以前从未做过的事情时,你通常可以猜到你应该如何实现它。你被 KDE 的内部一致性所训练,知道应该怎么做。这并不总是有效的,毕竟你可能找错了地方,或者你可能试图让两种技术一起工作,而这两种技术没有过互相影响,但一般来说,你知道在哪里寻找一个选项,或者你知道在哪里拖动一个文件,或者何时右击一个对象,或者长按一个按钮。你通过实践来学习 KDE,那是一种很好的感觉。

整合

 title=

KDE 项目被很多人称为桌面,但还有一群用户认为 KDE 更像是一套应用程序。他们都是正确的!

你可以运行 Plasma 桌面,也可以运行一个不同的桌面或窗口管理器,而只使用 KDE 应用程序。有很多东西可以选择,它们一起构成了一个完整的操作系统,影响了操作系统的风格倾向。当然,还有一些工作仍在进行中,但在我每天使用的应用程序中,有用于联系人、电子邮件和日历的 Kontact 套件,用于视频编辑的 Kdenlive,用于插图和摄影的 Krita,用于文件管理的 Dolphin,用于 RSS 订阅的 Akregator,用于存档的 Ark,用于终端的 Konsole,用于播放音乐的 Juk,用于从我的手机传输文件的 KDE Connect,这个名单还在继续增长。我并不是只安装 K 应用,因为在 KDE 开发之外也有很多伟大的应用程序,但是有这样一套完整的工具使用同一套框架和库是很好的。它提供了凝聚力,这使得整合成为可能。

定制

 title=

Plasma 桌面认识到,不同的用户对他们的工作空间有不同的要求和偏好。KDE 中几乎所有的东西都可以定制。你可以改变你的主题,你可以改变窗口装饰的布局,你可以改变打开一个文件所需的点击次数,什么是可点击的,什么是可拖动的,你可以在窗口内移动面板,然后当你不希望这些设置适用于某个应用程序时,你可以为它们设置特定的窗口覆盖项。

如果这听起来让人不知所措,也没错。但你不应该记住或甚至知道所有可能的定制。默认值是令人愉快的直观,而且大部分的行为是你期望的桌面行为。有一些小的 KDE 惯例你可能要习惯,但是当你发现你不喜欢的东西时,你知道因为它是 KDE,它可以被改变。你离开找到正确的旋钮或转盘来改变这个设置只距离一个参考文档。

让 Linux KDE 成为你自己的

我配置 Plasma 桌面的方式与我在会议和工作中看到的其他桌面不同,它是我在生活中尝试过的所有桌面中最喜欢的古怪东西的综合体。而这正是 KDE 的特别之处。它能适应我的每一个奇思妙想,甚至是非理性的奇思妙想。下次你必须在桌面之间做出选择时,看看 KDE 吧。如果你不喜欢你所看到的,给它点时间。你要么学会爱上它(单击操作就很好,我发誓),要么你最终会改变它。无论哪种方式,你都赢了。


via: https://opensource.com/article/22/2/why-i-love-linux-kde

作者:Seth Kenlon 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

两个 Linux KDE 文本编辑器。一个强大的 KTextEditor 库。

 title=

文本编辑器通常是一个很好的示例应用,可以展示一个编程框架能够产生什么。我自己在关于 wxPython、PyQtJava 的文章中至少写过三个文本编辑器的例子。它们被视为容易创建的应用的原因是,这些框架提供了许多最难编写的代码。我认为这也是大多数操作系统提供简单的桌面文本编辑器的原因。它们对用户有用,对开发者也很容易开发。

在 KDE Plasma 桌面上,有两个文本编辑器可供选择:简陋的 KWrite 和强大的 Kate。它们之间共享一个来自 KDE 框架的名为 KTextEditor 的库,它提供了强大的文本编辑选项,所以无论你选择哪一个,你都拥有比你可能习惯的、由桌面提供的“基本”文本编辑器更多的功能。在不同的文本编辑器中使用相同的组件,意味着一旦你习惯了 KDE 中的文本编辑界面,你基本上就能熟悉它们了,如 KWrite、Kate、KDevelop 等。

安装 KWrite 或 Kate

KWrite 和 Kate 在同一个 开发库 中维护。

然而,它们是作为独立的应用发布的,并且有不同的使用场景。

如果你安装了 KDE Plasma 桌面,你可能已经安装了 KWrite,但你可能需要单独安装 Kate。

$ sudo dnf install kwrite kate

KWrite 可以从 apps.kde.org/kwrite 获得,而 Kate 可以从 apps.kde.org/kate/ 获得。

两者都可以通过 KDE “ 发现 Discover ” 安装,KWrite 可以 作为 flatpak 安装

KWrite,不那么基本的编辑器

开始使用 KWrite 很容易。你从你的应用菜单中启动它,然后开始打字。如果你在最基本的文本编辑器之外没有别的需求,那么你可以把它当作一个简单的电子记事本。

 title=

所有通常的惯例都适用。在大文本区域输入文字,完成后点击保存按钮。

然而,KWrite 与标准的桌面编辑器不同的是,它使用 KTextEditor 库。

书签

当你在 KWrite 或 Kate 中工作时,你可以创建临时书签来帮助你找到文档中的重要位置。要创建一个书签,按 Ctrl+B。你可以通过在“ 书签 Bookmark ”菜单中选择它来移动到书签。

书签不是永久性的元数据,它们也不会作为文档的一部分被存储,但当你在工作中需要在各部分之间来回移动时,它们是有用的工具。在其他文本编辑器中,我可以只是输入一些随机的词,比如 “foobar”,然后对这个字符串进行“ 查找 Find ”,以返回到那个位置。书签是解决这个问题的一个更优雅的方案,而且它们不会有让你的文档充满占位符的风险,因为你可能忘记删除它们。

高亮显示

在 KWrite 和 Kate 中,你都可以激活语法高亮,这样你就可以深入了解你正在处理的文本。在其他文字处理程序中,你可能不会有意识地使用高亮显示,但如果你曾经使用过带有自动拼写和语法检查的编辑器,你就会看到一种高亮显示。在大多数现代文字处理程序中,拼写错误被标记的红色警告线就是一种语法高亮的形式。KWrite 和 Kate 可以同时通知你写作中的错误和成功。

要查看拼写错误,请进入“ 工具 Tools ”菜单,选择“ 拼写 Spelling ”。从子菜单中,激活“ 自动拼写检查 Automatic Spell Checking ”。

要获得你以特定格式写的东西的视觉反馈,例如 Markdown、HTML 或像 Python 这样的编程语言,去“ 工具 Tools ”菜单,选择“ 模式 Mode ”。有很多模式,分为几个类别。找到你要写的格式并选择它。文档模式加载在高亮模式中。你可以通过选择“ 高亮 Highlighting ”而不是“ 模式 Mode ”来覆盖一个模式的高亮方案。

 title=

我最喜欢的功能之一是窗口右侧的文档概览。它基本上是整个文档的一个非常细微的缩略图,所以你只需点击一下就可以滚动到特定区域。它可能看起来太小而无用,但它比人们想象的更容易确定一个章节的标题或文档中的一个近似区域,并通过点击就能接近它。

Kate 的与众不同之处

由于 KWrite 和 Kate 使用相同的底层组件,你可能想知道为什么你需要从 KWrite 升级到 Kate。如果你决定试用 Kate,你不会因为文本编辑而这样做。所有影响你如何输入和与你的文本互动的功能在这两个应用程序之间都是一样的。然而,Kate 为编码者增加了很多功能。

 title=

Kate 有一个侧边栏,你可以查看你的文件系统或项目目录。值得注意的是,Kate 有项目的概念,所以它可以将一个代码文件与同一目录下的头文件联系起来,比如说。它还有一个弹出式终端(只需按下 F4),并能将你的文档中的文本通过管道传送到终端会话中。

它还有一个会话管理器,这样你就可以为不同的活动配置一个独特的 Kate。

选择你的 Linux 文本编辑器

我们很容易忽视 KWrite 和 Kate。因为它们都是与桌面一起出现的,所以很容易把它们视作开发者强制包含的简单文本编辑器的例子。但这远远不准确。KWrite 和 Kate 是 KDE 系列应用中的典范。它们例证了 KDE 框架所提供的内容,并为期待强大、有意义和有用的 KDE 应用奠定了基础。

了解一下 KWrite 和 Kate,看看哪一个适合你。


via: https://opensource.com/article/22/2/edit-text-linux-kde

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

从我们的新电子书中获得关于在 Linux 上安装应用的所有不同方法的信息。

 title=

当你想在你的手机上尝试一个新的应用时,你打开应用商店并安装该应用。这很简单,很快速,很高效。在这种提供应用的模式中,手机供应商可以让你确切地知道到哪里去获得一个应用,而应用的开发者也知道将他们的应用放在哪里,以便人们能够找到它们。

在手机使用这种创新的软件分发模式之前,Linux 正以“软件仓库”的形式使用它。正如这个术语所暗示的,这些是在互联网上传应用的地方,这样 Linux 用户就可以从一个中心位置浏览和安装它们。这个术语被缩短为 “repo”(代表 “repository”,而不是 “reposession”),但无论你叫它“仓库”、“应用商店”、“软件中心”、“包管理器”,还是其他什么,它都是一个好系统,几十年来一直为 Linux 桌面用户服务。

最起码在 Linux 上安装应用很像在手机上安装应用。如果你能用一个安装,你也可以用另外一个安装。

软件中心

在 GNOME 桌面上,你在桌面上看到的软件仓库是一个应用,简单地说,叫 “ 软件 Software ”。你可以把这个应用看成是一个极其特殊的网页浏览器。它寻找可以从互联网上安装的软件,将所有可用的软件收集到分类中,并将其显示在你的桌面上。

 title=

在开始屏幕中,你有几个选项:

  • 搜索一个你已经熟悉的应用。要做到这一点,点击窗口左上角的放大镜图标。
  • 按类别浏览。这可以在窗口的底部找到。
  • 按最近时间和推荐浏览。这些都列在动画横幅和它下面的图标中。

当你点击一个你看起来感兴趣的应用时,会打开一个功能页面,这样你就可以看到截图并阅读软件的简短描述。

安装一个应用

当你找到了你想要安装的软件,点击应用功能页面顶部的“ 安装 Install ”按钮。

 title=

安装完毕后,“ 安装 Install ”按钮就会变成“ 启动 Launch ”按钮,所以你可以选择启动你刚刚安装的应用。

如果你现在不想启动该应用,你可以随时在你的“ 活动 Activities ”菜单中找到它,它与你电脑上已有的所有其他应用放在一起。

从更多的地方获得更多的应用

你的 Linux 桌面有专门为它打包的应用,但在今天的世界里,到处都有很多开源的东西。你可以通过将“第三方”仓库添加到你的桌面应用商店中来获得更多的应用。当然,这些术语并不完全正确:在一个无论如何都是由每个人创造软件的世界里,什么是“第三方”?当没有任何东西需要花钱时,什么是应用商店?撇开术语不谈,一个流行的第三方软件库是 Flathub.org

要在你的 Linux 桌面上增加另一个应用源,基本上是“安装”一个源到你的应用商店。对于 Flathub,下载 Flathub 仓库文件,然后用 GNOME 软件安装它,就像它是一个应用一样。它不是一个应用。它是一个应用 ,但过程是一样的。

了解更多

如果没有一堆其他方法来执行任何给定的任务,那就不是 Linux 了。灵活性是建立在 Linux 系统中的,所以虽然 GNOME “软件”提供了一种获取应用的简单方法,但还有很多其他方法,包括安装脚本、安装向导、AppImages,当然还有直接从源代码编译。你可以从我们的新电子书 在 Linux 上安装应用 中获得所有这些安装方法的信息。它是免费的,所以请阅读吧。


via: https://opensource.com/article/22/2/installing-applications-desktop-linux

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

下载这份编程速查表,开始学习 Perl 的力量。

 title=

Perl 发布于 1988 年初,是一种后现代的编程语言,它通常被认为是一种脚本语言,但它也能进行面向对象的编程。它是一种成熟的语言,拥有 数以万计的库、GUI 框架,它有一种叫做 Raku 的衍生语言(即 Perl 6),以及一个活跃而热情的社区。它的开发者以其灵活性为荣。根据它的创造者 Larry Wall 的说法,Perl 并不对它的用户强加任何特定的编程风格,而且有不止一种方法来完成大多数事情。

Perl 非常健壮,它曾经被广泛使用,这使它成为新的程序员可以尝试的伟大语言。

Perl 基础知识

在 Linux 和 macOS 上,你已经安装了 Perl。在 Windows 上,请从 Perl 网站 下载并安装它。

Perl 表达式

Perl 源代码的基本单位是 表达式,它是任何能返回一个 的东西。

例如,1 是一个表达式,它返回 1 的值。表达式 2 返回 2 的值,而 a 返回字母 a

表达式可以更复杂。表达式 $a + $b 包含变量(数据的占位符)和加号(+),它是一个数学运算符。

Perl 语句

Perl 语句是由表达式组成的。每个语句都以分号(;)结束。

比如说:

$c = $a + $b;

要尝试运行你自己的 Perl 语句,请打开终端并输入:

$ perl -e 'print ("Hello Perl\n");'

Perl 语句块

Perl 语句块可以用大括号({ })组合起来。块是一种有用的组织工具,但它们也为那些你可能只需要在程序的一小部分使用的数据提供了 范围。Python 用空白定义范围,LISP 用小括号,而 C 和 Java 用大括号。

变量

变量是数据的占位符。人类每天都在使用变量而没有意识到它。例如,“它”这个词可以指代任何名词,所以我们把它作为一个方便的占位符。“找到我的手机并把它拿给我”实际上是指“找到我的手机并把我的手机拿给我。”

对于计算机来说,变量不是一种便利,而是一种必需品。变量是计算机识别和跟踪数据的方式。

在 Perl 中,你通过声明一个变量名称和它的内容来创建变量。

在 Perl 中,变量名称前面总是有一个美元符号($)。

这些简单的语句创建了一个包含 "Hello""Perl" 字符串的变量 $var,然后将该变量的内容打印到终端:

$ perl -e '$var = "hello perl"; print ("$var\n");'

流程控制

大多数程序需要做出决定,这些选择由条件语句和循环来定义和控制。if 语句是最直观的一种。Perl 可以测试一个特定的条件,然后 Perl 根据这个条件决定程序如何进行。其语法类似于 C 或 Java:

my $var = 1;

if ($var == 1) {
  print("Hello Perl\n");
}
elsif ($var == 0){
  print("1 not found");
}
else {
  print("Good-bye");
}

Perl 也有一个简短的 if 语句的形式:

$var = 1;

print("Hello Perl\n") if ($var == 1);

函数和子程序

尽可能多地重复使用代码是一种有益的编程习惯。这种做法可以减少错误(或将错误合并到一个代码块中,因此你只需修复一次),使你的程序更容易维护,简化你的程序逻辑,并使其他开发者更容易理解它。

在 Perl 中,你可以创建一个 子程序,它接受输入(存储在一个特殊的数组变量 @_ 中)并可能返回一个输出。你可以使用关键字 sub 来创建一个子程序,后面跟一个你选择的子程序名称,然后是代码块:

#!/usr/bin/env perl

use strict;
use warnings;

sub sum {
  my $total = 0;

  for my $i(@_){
    $total += $i;
  }

  return($total);
}

print &sum(1,2), "\n";

当然,Perl 有许多子程序,你不必自己去创建。有些是内置于 Perl 中的,而社区库则提供了其他的。

用 Perl 编写脚本

Perl 可以被编译,也可以作为一种解释型的脚本语言使用。后者是刚入门时最简单的选择,特别是如果你已经熟悉了 Python 或 shell 脚本

这里有一个用 Perl 编写的简单的掷骰子脚本。把它读一遍,看看你是否能跟上它。

#!/usr/bin/env perl

use warnings;
use strict;
use utf8;
binmode STDOUT, ":encoding(UTF-8)";
binmode STDERR, ":encoding(UTF-8)";

my $sides = shift or
  die "\nYou must provide a number of sides for the dice.\n";

sub roller {
    my ($s) = @_;

    my $roll = int(rand($s));
    print $roll+1, "\n";
}

roller($sides);

第一行告诉你的 POSIX 终端要使用什么可执行文件来运行该脚本。

接下来的五行是模板式的包含内容和设置。use warnings 的设置告诉 Perl 检查错误,并在终端对它发现的问题发出警告。use strict 设置告诉 Perl 在发现错误时不要运行脚本。

这两个设置都可以帮助你在代码中的错误导致问题之前发现它们,所以通常最好在你的脚本中激活它们。

脚本的主要部分开始于对脚本从终端启动时提供给它的 参数 进行分析。在这种情况下,预期的参数是一个虚拟骰子的所需的面的数量。Perl 将其视为一个堆栈,并使用 shift 函数将其分配给变量 $sides。当没有提供参数时,die 函数会被触发。

sub 关键字创建的 roller 子程序(或函数),使用 Perl 的 rand 函数生成一个伪随机数,最大不超过参数的数字。这意味着在这个程序中,一个 6 面的骰子不可能掷出 6,但它可以掷出 0。这对计算机和程序员来说是没有问题的,但对大多数用户来说,这是令人困惑的,所以它可以被视为一个 bug。为了在这个 bug 成为问题之前解决它,下一行在随机数上加 1,并将结果作为掷骰子的结果打印出来。

当引用传递给子程序的参数时,你引用的是特殊变量 @_,它是一个数组,包含了函数调用时括号内的所有内容。然而,当从数组中提取一个值时,数据被转换成一个标量(例子中的 $s 变量)。

子程序在被调用之前不会运行,所以脚本的最后一行调用了自定义的 roller 函数,将命令的参数作为函数的参数。

将该文件保存为 dice.pl,并标记为可执行:

$ chmod +x dice.pl

最后,尝试运行它,为它提供一个最大的数字,从中选择其随机数:

$ ./dice.pl 20
1
$ ./dice.lisp 20
7
$ ./dice.lisp 20
20

没问题!

Perl 速查表

Perl 是一种有趣而强大的语言。尽管自从 Perl 成为默认的脚本语言后,Python、Ruby 和 Go 等新兴语言引起了许多人的注意,但 Perl 的功能并不弱。事实上,它比以往任何时候都要好,而且前途光明。

下次你想找一种更灵活的语言,并有简单的交付方式时,不妨试试 Perl,并下载这个速查表


via: https://opensource.com/article/22/2/perl-cheat-sheet

作者:Seth Kenlon 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

无论你是一个网络工程师还是一个好奇的爱好者,当你在市场上购买网络设备时,都你应该看看开源的 Turris Omnia 路由器。

在 21 世纪初,我对 OpenWrt 很着迷,只想在自己的路由器上运行它。不幸的是,我没有一个能够运行自定义固件的路由器,所以我花了很多周末去旧货地摊,希望能偶然发现一个 “Slug”(黑客们对 NSLU2 路由器的俚语),但这是徒劳的。最近,我买到了 Turris Omnia,除了有一个更酷的名字外,它是一个来自捷克的路由器,使用建立在 OpenWrt 之上的开源固件。它拥有你对运行开源硬件所期望的一切,而且还有很多东西,包括可安装的软件包,因此你可以准确地添加你的家庭或企业网络最需要的东西,而忽略你不会使用的部分。如果你认为路由器是简单的设备,没有定制的余地,甚至除了 DNS 和 DHCP 之外没有其他用途,那么你需要看看 Turris Omnia。它将改变你对路由器是什么的看法,路由器能为你的网络做什么,甚至是你与整个网络的互动方式。

 title=

开始使用 Turris Omnia

尽管 Turris Omnia 的功能很强大,但它给人的感觉却很熟悉。开始使用的步骤与任何其他路由器基本相同:

  1. 打开电源
  2. 加入它提供的网络
  3. 在网络浏览器中进入 192.168.1.1 进行配置

如果你过去买过路由器,你以前会执行过这些相同的步骤。如果你不熟悉这个过程,要知道它并不比任何其他路由器复杂,而且里面有足够的文档。

 title=

简单和高级配置

在初始设置之后,当你进入 Turris Omnia 路由器时,你可以选择简单配置环境或高级配置。你必须从简单配置开始。在 密码 Password 面板中,你可以为高级界面设置一个密码,这也可以让你对路由器进行 SSH 访问。

简单界面让你配置如何连接到广域网(WAN),并为你的局域网(LAN)设置参数。它还允许你设置一个个人 WiFi 接入点、一个访客网络,以及安装插件并与之互动。

它所声称的高级界面叫做 LuCI。它是为熟悉网络拓扑和设计的网络工程师设计的,它基本上是一个键值对的集合,你可以通过一个简单的网络界面进行编辑。如果你喜欢直接编辑数值,你可以用 SSH 进入路由器。

$ ssh [email protected]
[email protected]'s password:

BusyBox v1.28.4 () built-in shell (ash)

      ______                _         ____  _____
     /_  __/_  ____________(_)____   / __ \/ ___/
      / / / / / / ___/ ___/ / ___/  / / / /\__
     / / / /_/ / /  / /  / (__  )  / /_/ /___/ /
    /_/  \__,_/_/  /_/  /_/____/   \____//____/  
                                             
 -----------------------------------------------------
 TurrisOS 4.0.1, Turris Omnia
 -----------------------------------------------------
root@turris:~#

插件

除了界面的灵活性之外,Turris Omnia 还有一个包管理器。你可以安装插件,包括网络附加存储(NAS)配置、Nextcloud 服务器、SSH 蜜罐、速度测试、OpenVPN、打印服务器、Tor 节点、运行容器的 LXC 等等。

 title=

只需点击几下,你就可以安装自己的 Nextcloud 服务器,这样你就可以运行自己的云服务或 OpenVPN,这样你就可以在离家时安全地访问你的网络。

开源路由器

这个路由器最好的部分是它是开源的,并且通过开源提供支持。你可以从他们的 gitlab.nic.cz 下载 Turris 操作系统和许多相关的开源工具。你也不必满足于设备上的固件。有了 2GB 的内存和 miniPCIe 插槽,你可以在上面运行 Debian。甚至前面板上的 LED 灯也是可编程的。这是一个黑客的路由器,无论你是一个网络工程师还是一个好奇的业余爱好者,当你在市场上购买网络设备时,你都应该看一看它。

你可以从 turris.com 网站上获得 Turris Omnia 和其他几个型号的路由器,然后加入 forum.turris.cz 的社区。他们是一群友好的爱好者,热衷于分享知识、技巧和很酷的黑客技术,以促进你对开源路由器的使用。


via: https://opensource.com/article/22/1/turris-omnia-open-source-router

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出