什么是行为驱动的 Python?
使用 Python behave 框架的行为驱动开发模式可以帮助你的团队更好的协作和测试自动化。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/16/182736st3x3b2gt8ct23ry.jpeg">Media</a>您是否听说过<a href="https://automationpanda.com/bdd/">行为驱动开发</a>behavior-driven development(BDD),并好奇这是个什么东西?也许你发现了团队成员在谈论“嫩瓜”(LCTT 译注:“嫩瓜gherkin” 是一种简单的英语文本语言,工具 cucumber 通过解释它来执行测试脚本,见下文),而你却不知所云。或许你是一个 Python 人Pythonista,正在寻找更好的方法来测试你的代码。 无论在什么情况下,了解 BDD 都可以帮助您和您的团队实现更好的协作和测试自动化,而 Python 的 <a href="https://behave.readthedocs.io/en/latest/">behave</a> 框架是一个很好的起点。什么是 BDD?在软件中,<em>行为</em>是指在明确定义的输入、动作和结果场景中功能是如何运转的。 产品可以表现出无数的行为,例如:在网站上提交表单搜索想要的结果保存文档进行 REST API 调用运行命令行界面命令根据产品的行为定义产品的功能可以更容易地描述产品,并对其进行开发和测试。 BDD 的核心是:使行为成为软件开发的焦点。在开发早期使用示例语言的规范来定义行为。最常见的行为规范语言之一是 Gherkin,Cucumber项目中的Given-When-Then场景格式。 行为规范基本上是对行为如何工作的简单语言描述,具有一致性和焦点的一些正式结构。 通过将步骤文本“粘合”到代码实现,测试框架可以轻松地…
使用 Python behave 框架的行为驱动开发模式可以帮助你的团队更好的协作和测试自动化。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/16/182736st3x3b2gt8ct23ry.jpeg">Media</a>您是否听说过<a href="https://automationpanda.com/bdd/">行为驱动开发</a>behavior-driven development(BDD),并好奇这是个什么东西?也许你发现了团队成员在谈论“嫩瓜”(LCTT 译注:“嫩瓜gherkin” 是一种简单的英语文本语言,工具 cucumber 通过解释它来执行测试脚本,见下文),而你却不知所云。或许你是一个 Python 人Pythonista,正在寻找更好的方法来测试你的代码。 无论在什么情况下,了解 BDD 都可以帮助您和您的团队实现更好的协作和测试自动化,而 Python 的 <a href="https://behave.readthedocs.io/en/latest/">behave</a> 框架是一个很好的起点。什么是 BDD?在软件中,<em>行为</em>是指在明确定义的输入、动作和结果场景中功能是如何运转的。 产品可以表现出无数的行为,例如:在网站上提交表单搜索想要的结果保存文档进行 REST API 调用运行命令行界面命令根据产品的行为定义产品的功能可以更容易地描述产品,并对其进行开发和测试。 BDD 的核心是:使行为成为软件开发的焦点。在开发早期使用示例语言的规范来定义行为。最常见的行为规范语言之一是 Gherkin,Cucumber项目中的Given-When-Then场景格式。 行为规范基本上是对行为如何工作的简单语言描述,具有一致性和焦点的一些正式结构。 通过将步骤文本“粘合”到代码实现,测试框架可以轻松地…
Minikube 入门:笔记本上的 Kubernetes
运行 Minikube 的分步指南。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/17/214443rikxkirgmv4eti41.png">Media</a>在 <a href="https://kubernetes.io/docs/tutorials/hello-minikube">Hello Minikube</a> 教程页面上 Minikube 被宣传为基于 Docker 运行 Kubernetes 的一种简单方法。 虽然该文档非常有用,但它主要是为 MacOS 编写的。 你可以深入挖掘在 Windows 或某个 Linux 发行版上的使用说明,但它们不是很清楚。 许多文档都是针对 Debian / Ubuntu 用户的,比如<a href="https://github.com/kubernetes/minikube/blob/master/docs/drivers.md">安装 Minikube 的驱动程序</a>。这篇指南旨在使得在基于 RHEL/Fedora/CentOS 的操作系统上更容易安装 Minikube。先决条件你已经<a href="https://docs.docker.com/install">安装了 Docker</a>。你的计算机是一个基于 RHEL / CentOS / Fedora 的工作站。你已经<a href="https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm2-driver">安装了正常运行的 KVM2 虚拟机管理程序</a>。你有一个可以工作的 docker-machine-driver-kvm2。 以下命令将安装该驱动程序:<pre class="prettyprint linenums">curl -Lo docker-machine-driver-kvm2 https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 \chmod +x docker-machine-driver-kvm2 \&& sudo cp docker-machine-driver-kvm2 /usr/local/bin/ \&& rm docker-machine-driver-kvm2</pre>下载、安装和启动Minikube1、为你要即将下载的两个文件创建一个目录,两个文件分别是:<a href="https://github.com/kubernetes/minikube/releases">minikube</a> 和 <a href="https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-binary-using-curl">kubectl</a>。2、打开终端窗口并运行以下命令来安装 minikube。<pre class="prettyprint linenums">curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64</pre>请注意,minikube 版本(例如,minikube-linux-amd64)可能因计算机的规格而有所不同。3、chmod 加执行权限。<pre class="prettyprint linenums">chmod +x minikube</pre>4、将文件移动到 /usr/local/bin 路径下,以便你能将其作为命令运行。<pre class="prettyprint linenums">mv minikube /usr/local/bin</pre>5、使用以下命令安装 ku…
运行 Minikube 的分步指南。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/17/214443rikxkirgmv4eti41.png">Media</a>在 <a href="https://kubernetes.io/docs/tutorials/hello-minikube">Hello Minikube</a> 教程页面上 Minikube 被宣传为基于 Docker 运行 Kubernetes 的一种简单方法。 虽然该文档非常有用,但它主要是为 MacOS 编写的。 你可以深入挖掘在 Windows 或某个 Linux 发行版上的使用说明,但它们不是很清楚。 许多文档都是针对 Debian / Ubuntu 用户的,比如<a href="https://github.com/kubernetes/minikube/blob/master/docs/drivers.md">安装 Minikube 的驱动程序</a>。这篇指南旨在使得在基于 RHEL/Fedora/CentOS 的操作系统上更容易安装 Minikube。先决条件你已经<a href="https://docs.docker.com/install">安装了 Docker</a>。你的计算机是一个基于 RHEL / CentOS / Fedora 的工作站。你已经<a href="https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm2-driver">安装了正常运行的 KVM2 虚拟机管理程序</a>。你有一个可以工作的 docker-machine-driver-kvm2。 以下命令将安装该驱动程序:<pre class="prettyprint linenums">curl -Lo docker-machine-driver-kvm2 https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 \chmod +x docker-machine-driver-kvm2 \&& sudo cp docker-machine-driver-kvm2 /usr/local/bin/ \&& rm docker-machine-driver-kvm2</pre>下载、安装和启动Minikube1、为你要即将下载的两个文件创建一个目录,两个文件分别是:<a href="https://github.com/kubernetes/minikube/releases">minikube</a> 和 <a href="https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-binary-using-curl">kubectl</a>。2、打开终端窗口并运行以下命令来安装 minikube。<pre class="prettyprint linenums">curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64</pre>请注意,minikube 版本(例如,minikube-linux-amd64)可能因计算机的规格而有所不同。3、chmod 加执行权限。<pre class="prettyprint linenums">chmod +x minikube</pre>4、将文件移动到 /usr/local/bin 路径下,以便你能将其作为命令运行。<pre class="prettyprint linenums">mv minikube /usr/local/bin</pre>5、使用以下命令安装 ku…
树莓派自建 NAS 云盘之——云盘构建
用自行托管的树莓派 NAS 云盘来保护数据的安全!<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/17/231845lcxls9emctcc6mbz.jpg">Media</a>在前面两篇文章中,我们讨论了用树莓派搭建一个 NAS 云盘所需要的一些 <a href="https://linux.cn/article-10104-1.html?utm_source=index&utm_medium=more">软硬件环境及其操作步骤</a>。我们还制定了适当的 <a href="https://linux.cn/article-10112-1.html">备份策略</a> 来保护 NAS 上的数据。本文中,我们将介绍讨论利用 <a href="https://nextcloud.com/">Nestcloud</a> 来方便快捷的存储、获取以及分享你的数据。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/17/231935uowcp6sfh2jezhpz.png">Media</a>必要的准备工作想要方便的使用 Nextcloud,需要一些必要的准备工作。首先,你需要一个指向 Nextcloud 的域名。方便起见,本文将使用 <strong>nextcloud.pi-nas.com</strong> 。如果你是在家庭网络里运行,你需要为该域名配置 DNS 服务(动态域名解析服务)并在路由器中开启 80 端口和 443 端口转发功能(如果需要使用 https,则需要开启 443 端口转发,如果只用 http,80 端口足以)。你可以使用 <a href="https://sourceforge.net/p/ddclient/wiki/Home/">ddclient</a> 在树莓派中自动更新 DNS。安装 Nextcloud为了在树莓派(参考 <a href="https://linux.cn/article-10104-1.html?utm_source=index&utm_medium=more">第一篇</a> 中步骤设置)中运行 Nextcloud,首先用命令 apt 安装 以下的一些依赖软件包。<pre class="prettyprint linenums">sudo apt install unzip wget php apache2 mysql-server php-zip php-mysql php-dom php-mbstring php-gd php-curl</pre>其次,下载 Nextcloud。在树莓派中利用 wget 下载其 <a href="https://nextcloud.com/install/#instructions-server">最新的版本</a>。在 <a href="https://linux.cn/article-10104-1.html?utm_source=index&utm_medium=more">第一篇</a> 文章中,我们将两个磁盘驱动器连接到树莓派,一个用于存储当前ਤ…
用自行托管的树莓派 NAS 云盘来保护数据的安全!<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/17/231845lcxls9emctcc6mbz.jpg">Media</a>在前面两篇文章中,我们讨论了用树莓派搭建一个 NAS 云盘所需要的一些 <a href="https://linux.cn/article-10104-1.html?utm_source=index&utm_medium=more">软硬件环境及其操作步骤</a>。我们还制定了适当的 <a href="https://linux.cn/article-10112-1.html">备份策略</a> 来保护 NAS 上的数据。本文中,我们将介绍讨论利用 <a href="https://nextcloud.com/">Nestcloud</a> 来方便快捷的存储、获取以及分享你的数据。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/17/231935uowcp6sfh2jezhpz.png">Media</a>必要的准备工作想要方便的使用 Nextcloud,需要一些必要的准备工作。首先,你需要一个指向 Nextcloud 的域名。方便起见,本文将使用 <strong>nextcloud.pi-nas.com</strong> 。如果你是在家庭网络里运行,你需要为该域名配置 DNS 服务(动态域名解析服务)并在路由器中开启 80 端口和 443 端口转发功能(如果需要使用 https,则需要开启 443 端口转发,如果只用 http,80 端口足以)。你可以使用 <a href="https://sourceforge.net/p/ddclient/wiki/Home/">ddclient</a> 在树莓派中自动更新 DNS。安装 Nextcloud为了在树莓派(参考 <a href="https://linux.cn/article-10104-1.html?utm_source=index&utm_medium=more">第一篇</a> 中步骤设置)中运行 Nextcloud,首先用命令 apt 安装 以下的一些依赖软件包。<pre class="prettyprint linenums">sudo apt install unzip wget php apache2 mysql-server php-zip php-mysql php-dom php-mbstring php-gd php-curl</pre>其次,下载 Nextcloud。在树莓派中利用 wget 下载其 <a href="https://nextcloud.com/install/#instructions-server">最新的版本</a>。在 <a href="https://linux.cn/article-10104-1.html?utm_source=index&utm_medium=more">第一篇</a> 文章中,我们将两个磁盘驱动器连接到树莓派,一个用于存储当前ਤ…
三个开源的分布式追踪工具
这几个工具对复杂软件系统中的实时事件做了可视化,能帮助你快速发现性能问题。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/18/000511wi277hjm2vmo4oah.png">Media</a>分布式追踪系统能够从头到尾地追踪跨越了多个应用、服务、数据库以及像代理这样的中间件的分布式软件的请求。它能帮助你更深入地理解系统中到底发生了什么。追踪系统以图形化的方式,展示出每个已知步骤以及某个请求在每个步骤上的耗时。用户可以通过这些展示来判断系统的哪个环节有延迟或阻塞,当请求失败时,运维和开发人员可以看到准确的问题源头,而不需要去测试整个系统,比如用二叉查找树的方法去定位问题。在开发迭代的过程中,追踪系统还能够展示出可能引起性能变化的环节。通过异常行为的警告自动地感知到性能的退化,总是比客户告诉你要好。这种追踪是怎么工作的呢?给每个请求分配一个特殊 ID,这个 ID 通常会插入到请求头部中。它唯一标识了对应的事务。一般把事务叫做踪迹trace,“踪迹”是整个事务的抽象概念。每一个“踪迹”由单元span组成,“单元”代表着一次请求中真正执行的操作,比如一次服务调用,一次数据库请求等。每一个“单元”也有自己唯一的 ID。“单元”之下也可以创建子“单元”,子“单元”可以有多个父“单元”。当一次事务(或者说踪迹)运行过之后,就&#…
这几个工具对复杂软件系统中的实时事件做了可视化,能帮助你快速发现性能问题。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/18/000511wi277hjm2vmo4oah.png">Media</a>分布式追踪系统能够从头到尾地追踪跨越了多个应用、服务、数据库以及像代理这样的中间件的分布式软件的请求。它能帮助你更深入地理解系统中到底发生了什么。追踪系统以图形化的方式,展示出每个已知步骤以及某个请求在每个步骤上的耗时。用户可以通过这些展示来判断系统的哪个环节有延迟或阻塞,当请求失败时,运维和开发人员可以看到准确的问题源头,而不需要去测试整个系统,比如用二叉查找树的方法去定位问题。在开发迭代的过程中,追踪系统还能够展示出可能引起性能变化的环节。通过异常行为的警告自动地感知到性能的退化,总是比客户告诉你要好。这种追踪是怎么工作的呢?给每个请求分配一个特殊 ID,这个 ID 通常会插入到请求头部中。它唯一标识了对应的事务。一般把事务叫做踪迹trace,“踪迹”是整个事务的抽象概念。每一个“踪迹”由单元span组成,“单元”代表着一次请求中真正执行的操作,比如一次服务调用,一次数据库请求等。每一个“单元”也有自己唯一的 ID。“单元”之下也可以创建子“单元”,子“单元”可以有多个父“单元”。当一次事务(或者说踪迹)运行过之后,就&#…
使用 Python 为你的油箱加油
我来介绍一下我是如何使用 Python 来节省成本的。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/18/003647fykfkj2p2kc57ezx.jpg">Media</a>我最近在开一辆烧 93 号汽油的车子。根据汽车制造商的说法,它只需要加 91 号汽油就可以了。然而,在美国只能买到 87 号、89 号、93 号汽油。而我家附近的汽油的物价水平是每增加一号,每加仑就要多付 30 美分,因此如果加 93 号汽油,每加仑就要多花 60 美分。为什么不能节省一些钱呢?一开始很简单,只需要先加满 93 号汽油,然后在油量表显示油箱半满的时候,用 89 号汽油加满,就得到一整箱 91 号汽油了。但接下来就麻烦了,剩下半箱 91 号汽油加上半箱 93 号汽油,只会变成一箱 92 号汽油,再接下来呢?如果继续算下去,只会越来越混乱。这个时候 Python 就派上用场了。我的方案是,可以根据汽油的实时状态,不断向油箱中加入 93 号汽油或者 89 号汽油,而最终目标是使油箱内汽油的号数不低于 91。我需要做的是只是通过一些算法来判断新旧汽油混合之后的号数。使用多项式方程或许也可以解决这个问题,但如果使用 Python,好像只需要进行循环就可以了。<pre class="prettyprint linenums">#!/usr/bin/env python# octane.pyo = 93.0newgas = 93.0 # 这个变量记录上一次加入的汽油号数i = 1while i < 21: # 20 次迭代 (加油次数) if newgas == 89.0: # 如果上一次加的是 89 号汽油,改加 93 号汽油 newgas = 93.0 o = newgas/2 + o/2 # 当油箱半满的时候就加油 else: # 如果上一次加的是 93 号汽油,则&…
我来介绍一下我是如何使用 Python 来节省成本的。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/18/003647fykfkj2p2kc57ezx.jpg">Media</a>我最近在开一辆烧 93 号汽油的车子。根据汽车制造商的说法,它只需要加 91 号汽油就可以了。然而,在美国只能买到 87 号、89 号、93 号汽油。而我家附近的汽油的物价水平是每增加一号,每加仑就要多付 30 美分,因此如果加 93 号汽油,每加仑就要多花 60 美分。为什么不能节省一些钱呢?一开始很简单,只需要先加满 93 号汽油,然后在油量表显示油箱半满的时候,用 89 号汽油加满,就得到一整箱 91 号汽油了。但接下来就麻烦了,剩下半箱 91 号汽油加上半箱 93 号汽油,只会变成一箱 92 号汽油,再接下来呢?如果继续算下去,只会越来越混乱。这个时候 Python 就派上用场了。我的方案是,可以根据汽油的实时状态,不断向油箱中加入 93 号汽油或者 89 号汽油,而最终目标是使油箱内汽油的号数不低于 91。我需要做的是只是通过一些算法来判断新旧汽油混合之后的号数。使用多项式方程或许也可以解决这个问题,但如果使用 Python,好像只需要进行循环就可以了。<pre class="prettyprint linenums">#!/usr/bin/env python# octane.pyo = 93.0newgas = 93.0 # 这个变量记录上一次加入的汽油号数i = 1while i < 21: # 20 次迭代 (加油次数) if newgas == 89.0: # 如果上一次加的是 89 号汽油,改加 93 号汽油 newgas = 93.0 o = newgas/2 + o/2 # 当油箱半满的时候就加油 else: # 如果上一次加的是 93 号汽油,则&…
如何在家中使用 SSH 和 SFTP 协议
通过 SSH 和 SFTP 协议,我们能够访问其他设备,有效而且安全的传输文件等等。Media
via https://linux.cn/article-10129-1.html
通过 SSH 和 SFTP 协议,我们能够访问其他设备,有效而且安全的传输文件等等。Media
via https://linux.cn/article-10129-1.html
如何在家中使用 SSH 和 SFTP 协议
通过 SSH 和 SFTP 协议,我们能够访问其他设备,有效而且安全的传输文件等等。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/18/205017sh5ghl6w7eaihdd1.png">Media</a>几年前,我决定配置另外一台电脑,以便我能在工作时访问它来传输我所需要的文件。要做到这一点,最基本的一步是要求你的网络提供商(ISP)提供一个固定的地址。有一个不必要但很重要的步骤,就是保证你的这个可以访问的系统是安全的。在我的这种情况下,我计划只在工作场所访问它,所以我能够限定访问的 IP 地址。即使如此,你依然要尽多的采用安全措施。一旦你建立起来这个系统,全世界的人们马上就能尝试访问你的系统。这是非常令人惊奇及恐慌的。你能通过日志文件来发现这一点。我推测有探测机器人在尽其所能的搜索那些没有安全措施的系统。在我设置好系统不久后,我觉得这种访问没什么大用,为此,我将它关闭了以便不再为它操心。尽管如此,只要架设了它,在家庭网络中使用 SSH 和 SFTP 还是有点用的。当然,有一个必备条件,这个另外的电脑必须已经开机了,至于电脑是否登录与否无所谓的。你也需要知道其 IP 地址。有两个方法能够知道,一个是通过浏览器访问你的路由器,一般情况下你的地址格式类似于 192.168.1.254 这样。通过一些搜索,很容易找出当前是开机的并且接在 eth0 或者 wifi…
通过 SSH 和 SFTP 协议,我们能够访问其他设备,有效而且安全的传输文件等等。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/18/205017sh5ghl6w7eaihdd1.png">Media</a>几年前,我决定配置另外一台电脑,以便我能在工作时访问它来传输我所需要的文件。要做到这一点,最基本的一步是要求你的网络提供商(ISP)提供一个固定的地址。有一个不必要但很重要的步骤,就是保证你的这个可以访问的系统是安全的。在我的这种情况下,我计划只在工作场所访问它,所以我能够限定访问的 IP 地址。即使如此,你依然要尽多的采用安全措施。一旦你建立起来这个系统,全世界的人们马上就能尝试访问你的系统。这是非常令人惊奇及恐慌的。你能通过日志文件来发现这一点。我推测有探测机器人在尽其所能的搜索那些没有安全措施的系统。在我设置好系统不久后,我觉得这种访问没什么大用,为此,我将它关闭了以便不再为它操心。尽管如此,只要架设了它,在家庭网络中使用 SSH 和 SFTP 还是有点用的。当然,有一个必备条件,这个另外的电脑必须已经开机了,至于电脑是否登录与否无所谓的。你也需要知道其 IP 地址。有两个方法能够知道,一个是通过浏览器访问你的路由器,一般情况下你的地址格式类似于 192.168.1.254 这样。通过一些搜索,很容易找出当前是开机的并且接在 eth0 或者 wifi…
如何创建和维护你自己的 man 手册
Um 是一个命令行实用程序,可以用于轻松创建和维护包含你到目前为止所了解的所有命令的 man 页面。Media
via https://linux.cn/article-10130-1.html
Um 是一个命令行实用程序,可以用于轻松创建和维护包含你到目前为止所了解的所有命令的 man 页面。Media
via https://linux.cn/article-10130-1.html
如何创建和维护你自己的 man 手册
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/19/062636oamaqp01aun6vqov.png">Media</a>我们已经讨论了一些 <a href="https://www.ostechnix.com/3-good-alternatives-man-pages-every-linux-user-know/">man 手册的替代方案</a>。 这些替代方案主要用于学习简洁的 Linux 命令示例,而无需通过全面而过于详细的手册页。 如果你正在寻找一种快速而简单的方法来轻松快速地学习 Linux 命令,那么这些替代方案值得尝试。 现在,你可能正在考虑 —— 如何为 Linux 命令创建自己的 man 式的帮助页面? 这时 “Um” 就派上用场了。 Um 是一个命令行实用程序,可以用于轻松创建和维护包含你到目前为止所了解的所有命令的 man 页面。通过创建自己的手册页,你可以在手册页中避免大量不必要的细节,并且只包含你需要记住的内容。 如果你想创建自己的一套 man 式的页面,“Um” 也能为你提供帮助。 在这个简短的教程中,我们将学习如何安装 “Um” 命令以及如何创建自己的 man 手册页。安装 UmUm 适用于 Linux 和Mac OS。 目前,它只能在 Linux 系统中使用 Linuxbrew 软件包管理器来进行安装。 如果你尚未安装 Linuxbrew,请参考以下链接:<a href="https://www.ostechnix.com/linuxbrew-common-package-manager-linux-mac-os-x/">Linuxbrew:一个用于 Linux 和 MacOS 的通用包管理器</a>安装 Linuxbrew 后,运行以下命令安装 Um 实用程序。<pre class="prettyprint linenums">$ brew install sinclairtarget/wst/um</pre>如果你会看到类似下面的输出,恭喜你! Um 已经安装好并且可以使用了。<pre class="prettyprint linenums">[...]==> Installing sinclairtarget/wst/um==> Downloading https://github.com/sinclairtarget/um/archive/4.0.0.tar.gz==> Downloading from https://codeload.github.com/sinclairtarget/um/tar.gz/4.0.0-=#=# # #==> Downloading https://rubygems.org/gems/kramdown…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/19/062636oamaqp01aun6vqov.png">Media</a>我们已经讨论了一些 <a href="https://www.ostechnix.com/3-good-alternatives-man-pages-every-linux-user-know/">man 手册的替代方案</a>。 这些替代方案主要用于学习简洁的 Linux 命令示例,而无需通过全面而过于详细的手册页。 如果你正在寻找一种快速而简单的方法来轻松快速地学习 Linux 命令,那么这些替代方案值得尝试。 现在,你可能正在考虑 —— 如何为 Linux 命令创建自己的 man 式的帮助页面? 这时 “Um” 就派上用场了。 Um 是一个命令行实用程序,可以用于轻松创建和维护包含你到目前为止所了解的所有命令的 man 页面。通过创建自己的手册页,你可以在手册页中避免大量不必要的细节,并且只包含你需要记住的内容。 如果你想创建自己的一套 man 式的页面,“Um” 也能为你提供帮助。 在这个简短的教程中,我们将学习如何安装 “Um” 命令以及如何创建自己的 man 手册页。安装 UmUm 适用于 Linux 和Mac OS。 目前,它只能在 Linux 系统中使用 Linuxbrew 软件包管理器来进行安装。 如果你尚未安装 Linuxbrew,请参考以下链接:<a href="https://www.ostechnix.com/linuxbrew-common-package-manager-linux-mac-os-x/">Linuxbrew:一个用于 Linux 和 MacOS 的通用包管理器</a>安装 Linuxbrew 后,运行以下命令安装 Um 实用程序。<pre class="prettyprint linenums">$ brew install sinclairtarget/wst/um</pre>如果你会看到类似下面的输出,恭喜你! Um 已经安装好并且可以使用了。<pre class="prettyprint linenums">[...]==> Installing sinclairtarget/wst/um==> Downloading https://github.com/sinclairtarget/um/archive/4.0.0.tar.gz==> Downloading from https://codeload.github.com/sinclairtarget/um/tar.gz/4.0.0-=#=# # #==> Downloading https://rubygems.org/gems/kramdown…
Linux vs Mac:Linux 比 Mac 好的 7 个原因
如果你已经在用 Mac 或者打算买一台 Mac 电脑,我们建议你仔细考虑一下,看看是改为使用 Linux 还是继续使用 Mac。Media
via https://linux.cn/article-10131-1.html
如果你已经在用 Mac 或者打算买一台 Mac 电脑,我们建议你仔细考虑一下,看看是改为使用 Linux 还是继续使用 Mac。Media
via https://linux.cn/article-10131-1.html
Linux vs Mac:Linux 比 Mac 好的 7 个原因
最近我们谈论了一些<a href="https://itsfoss.com/linux-better-than-windows/">为什么 Linux 比 Windows 好</a>的原因。毫无疑问,Linux 是个非常优秀的平台。但是它和其它操作系统一样也会有缺点。对于某些专门的领域,像是游戏,Windows 当然更好。而对于视频编辑等任务,Mac 系统可能更为方便。这一切都取决于你的偏好,以及你想用你的系统做些什么。在这篇文章中,我们将会介绍一些 Linux 相对于 Mac 更好的一些地方。如果你已经在用 Mac 或者打算买一台 Mac 电脑,我们建议你仔细考虑一下,看看是改为使用 Linux 还是继续使用 Mac。Linux 比 Mac 好的 7 个原因<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/19/223947s1dfxs9ff603e3q3.png">Linux vs Mac:为什么 Linux 更好</a>Linux 和 macOS 都是类 Unix 操作系统,并且都支持 Unix 命令、bash 和其它 shell,相比于 Windows,它们所支持的应用和游戏比较少。但也就是这点比较相似。平面设计师和视频剪辑师更加倾向于使用 Mac 系统,而 Linux 更加适合做开发、系统管理、运维的工程师。那要不要使用 Linux 呢,为什么要选择 Linux 呢?下面是根据实际经验和理性分析给出的一些建议。1、价格<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/19/223947oqustt3npkepqfsf.jpg">Linux vs Mac:为什么 Linux 更好</a>假设你只是需要浏览文件、看电影、下载图片、写文档、制作报表或者做一些类似的工作,并且你想要一个更加安全的系统。那在这种情况下,你觉得花费几百美金买个系统完成这项工作,或者花费更多直接买个 MacBook 更…
最近我们谈论了一些<a href="https://itsfoss.com/linux-better-than-windows/">为什么 Linux 比 Windows 好</a>的原因。毫无疑问,Linux 是个非常优秀的平台。但是它和其它操作系统一样也会有缺点。对于某些专门的领域,像是游戏,Windows 当然更好。而对于视频编辑等任务,Mac 系统可能更为方便。这一切都取决于你的偏好,以及你想用你的系统做些什么。在这篇文章中,我们将会介绍一些 Linux 相对于 Mac 更好的一些地方。如果你已经在用 Mac 或者打算买一台 Mac 电脑,我们建议你仔细考虑一下,看看是改为使用 Linux 还是继续使用 Mac。Linux 比 Mac 好的 7 个原因<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/19/223947s1dfxs9ff603e3q3.png">Linux vs Mac:为什么 Linux 更好</a>Linux 和 macOS 都是类 Unix 操作系统,并且都支持 Unix 命令、bash 和其它 shell,相比于 Windows,它们所支持的应用和游戏比较少。但也就是这点比较相似。平面设计师和视频剪辑师更加倾向于使用 Mac 系统,而 Linux 更加适合做开发、系统管理、运维的工程师。那要不要使用 Linux 呢,为什么要选择 Linux 呢?下面是根据实际经验和理性分析给出的一些建议。1、价格<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/19/223947oqustt3npkepqfsf.jpg">Linux vs Mac:为什么 Linux 更好</a>假设你只是需要浏览文件、看电影、下载图片、写文档、制作报表或者做一些类似的工作,并且你想要一个更加安全的系统。那在这种情况下,你觉得花费几百美金买个系统完成这项工作,或者花费更多直接买个 MacBook 更…
在 Linux 手册页中查看整个 Arch Linux Wiki
就跟名字说的一样,它可以让你在命令行查看 Arch Wiki,但是无需联网。它可以以手册页的形式为你显示来自 Arch Wiki 的任何文章。Media
via https://linux.cn/article-10132-1.html
就跟名字说的一样,它可以让你在命令行查看 Arch Wiki,但是无需联网。它可以以手册页的形式为你显示来自 Arch Wiki 的任何文章。Media
via https://linux.cn/article-10132-1.html
在 Linux 手册页中查看整个 Arch Linux Wiki
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/19/232304eyx755vrg8x8zcsx.jpg">Media</a>不久之前,我写了篇关于一个名叫 <a href="https://www.ostechnix.com/search-arch-wiki-website-commandline/">arch-wiki-cli</a> 的命令行脚本的文章,使用它可以在终端命令行中查看 Arch Linux Wiki。使用这个脚本,你可以很轻松的用你喜欢的文本浏览器查看整个 Arch Wiki 网站。显然,使用这个脚本需要你有网络连接。我今天偶然发现了一个名为 Arch-wiki-man 的程序,与其有着相同的功能。就跟名字说的一样,它可以让你在命令行查看 Arch Wiki,但是无需联网。它可以以手册页的形式为你显示来自 Arch Wiki 的任何文章。它会下载整个 Arch Wiki 到本地,并每两天自动推送一次。因此,你的系统上总能有一份 Arch Wiki 最新的副本。安装 Arch-wiki-manArch-wiki-man 在 <a href="https://aur.archlinux.org/packages/arch-wiki-man/">AUR</a> 中可用,所以你可以通过类似<a href="https://www.ostechnix.com/yay-found-yet-another-reliable-aur-helper/">Yay</a> 的 AUR 帮助程序安装它。<pre class="prettyprint linenums">$ yay -S arch-wiki-man</pre>另外,它也可以使用 NPM 安装。首先确保你已经<a href="https://www.ostechnix.com/install-node-js-linux/">安装了 NoodJS</a>,然后使用以下命令安装它。<pre class="prettyprint linenums">$ npm install -g arch-wiki-man</pre>以手册页的形式查看整个 Arch WikiArch-wiki-man 的典型语法如下:<pre class="prettyprint linenums">$ awman <search-query></pre>下面看一些具体的例子:搜索一个或多个匹配项只需要下面的命令,就可以搜索 <a href="https://www.ostechnix.com/install-arch-linux-latest-version/">Arch Linux 安装指南</a>。<pre class="prettyprint linenums">$ awman Installation guide</pre>上面的命令将会从 Arch Wiki 中搜索所有包含 “Installation guide” 的条目。如果对于给出的搜索条目有很多的匹配项,将会展示为一个…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/19/232304eyx755vrg8x8zcsx.jpg">Media</a>不久之前,我写了篇关于一个名叫 <a href="https://www.ostechnix.com/search-arch-wiki-website-commandline/">arch-wiki-cli</a> 的命令行脚本的文章,使用它可以在终端命令行中查看 Arch Linux Wiki。使用这个脚本,你可以很轻松的用你喜欢的文本浏览器查看整个 Arch Wiki 网站。显然,使用这个脚本需要你有网络连接。我今天偶然发现了一个名为 Arch-wiki-man 的程序,与其有着相同的功能。就跟名字说的一样,它可以让你在命令行查看 Arch Wiki,但是无需联网。它可以以手册页的形式为你显示来自 Arch Wiki 的任何文章。它会下载整个 Arch Wiki 到本地,并每两天自动推送一次。因此,你的系统上总能有一份 Arch Wiki 最新的副本。安装 Arch-wiki-manArch-wiki-man 在 <a href="https://aur.archlinux.org/packages/arch-wiki-man/">AUR</a> 中可用,所以你可以通过类似<a href="https://www.ostechnix.com/yay-found-yet-another-reliable-aur-helper/">Yay</a> 的 AUR 帮助程序安装它。<pre class="prettyprint linenums">$ yay -S arch-wiki-man</pre>另外,它也可以使用 NPM 安装。首先确保你已经<a href="https://www.ostechnix.com/install-node-js-linux/">安装了 NoodJS</a>,然后使用以下命令安装它。<pre class="prettyprint linenums">$ npm install -g arch-wiki-man</pre>以手册页的形式查看整个 Arch WikiArch-wiki-man 的典型语法如下:<pre class="prettyprint linenums">$ awman <search-query></pre>下面看一些具体的例子:搜索一个或多个匹配项只需要下面的命令,就可以搜索 <a href="https://www.ostechnix.com/install-arch-linux-latest-version/">Arch Linux 安装指南</a>。<pre class="prettyprint linenums">$ awman Installation guide</pre>上面的命令将会从 Arch Wiki 中搜索所有包含 “Installation guide” 的条目。如果对于给出的搜索条目有很多的匹配项,将会展示为一个…
一个简单而美观的跨平台播客应用程序
Linux 桌面版上有很多播客播放器,但是如果你想要一些视觉上美观、有顺滑的动画并且可以在每个平台上运行的东西,那就并没有很多替代品可以替代 CPod 了。Media
via https://linux.cn/article-10133-1.html
Linux 桌面版上有很多播客播放器,但是如果你想要一些视觉上美观、有顺滑的动画并且可以在每个平台上运行的东西,那就并没有很多替代品可以替代 CPod 了。Media
via https://linux.cn/article-10133-1.html
一个简单而美观的跨平台播客应用程序
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/19/234010rpsfnsn7nmpos16r.png">Media</a>播客在过去几年中变得非常流行。 播客就是所谓的“信息娱乐 infotainment”,它们通常是轻松的,但也会为你提供有价值的信息。 播客在过去几年中已经非常火爆了,如果你喜欢某些东西,就很可能有个相关的播客。 Linux 桌面版上有很多播客播放器,但是如果你想要一些视觉上美观、有顺滑的动画并且可以在每个平台上运行的东西,那就并没有很多替代品可以替代 CPod 了。 CPod(以前称为 Cumulonimbus)是一个开源而成熟的播客应用程序,适用于 Linux、MacOS 和 Windows。CPod 运行在一个名为 Electron 的东西上 —— 这个工具允许开发人员构建跨平台(例如 Windows、MacOS 和 Linux)的桌面图形化应用程序。 在本简要指南中,我们将讨论如何在 Linux 中安装和使用 CPod 播客应用程序。安装 CPod转到 CPod 的<a href="https://github.com/z-------------/CPod/releases">发布页面</a>。 下载并安装所选平台的二进制文件。 如果你使用 Ubuntu / Debian,你只需从发布页面下载并安装 .deb 文件,如下所示。<pre class="prettyprint linenums">$ wget https://github.com/z-------------/CPod/releases/download/v1.25.7/CPod_1.25.7_amd64.deb$ sudo apt update$ sudo apt install gdebi$ sudo gdebi CPod_1.25.7_amd64.deb</pre>如果你使用其他发行版,你可能需要使用发布页面中的 AppImage。从发布页面下载 AppImage 文件。打开终端,然后转到存储 AppImage 文件的目录。 更改权限以允许执行:<pre class="prettyprint linenums">$ chmod +x CPod-1.25.7-x86_64.AppImage</pre>执行 AppImage 文件:<pre class="prettyprint linenums">$ ./CPod-1.25.7-x86_64.AppImage</pre>你将看到一个对话框询问是否将应用程序ߎ…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/19/234010rpsfnsn7nmpos16r.png">Media</a>播客在过去几年中变得非常流行。 播客就是所谓的“信息娱乐 infotainment”,它们通常是轻松的,但也会为你提供有价值的信息。 播客在过去几年中已经非常火爆了,如果你喜欢某些东西,就很可能有个相关的播客。 Linux 桌面版上有很多播客播放器,但是如果你想要一些视觉上美观、有顺滑的动画并且可以在每个平台上运行的东西,那就并没有很多替代品可以替代 CPod 了。 CPod(以前称为 Cumulonimbus)是一个开源而成熟的播客应用程序,适用于 Linux、MacOS 和 Windows。CPod 运行在一个名为 Electron 的东西上 —— 这个工具允许开发人员构建跨平台(例如 Windows、MacOS 和 Linux)的桌面图形化应用程序。 在本简要指南中,我们将讨论如何在 Linux 中安装和使用 CPod 播客应用程序。安装 CPod转到 CPod 的<a href="https://github.com/z-------------/CPod/releases">发布页面</a>。 下载并安装所选平台的二进制文件。 如果你使用 Ubuntu / Debian,你只需从发布页面下载并安装 .deb 文件,如下所示。<pre class="prettyprint linenums">$ wget https://github.com/z-------------/CPod/releases/download/v1.25.7/CPod_1.25.7_amd64.deb$ sudo apt update$ sudo apt install gdebi$ sudo gdebi CPod_1.25.7_amd64.deb</pre>如果你使用其他发行版,你可能需要使用发布页面中的 AppImage。从发布页面下载 AppImage 文件。打开终端,然后转到存储 AppImage 文件的目录。 更改权限以允许执行:<pre class="prettyprint linenums">$ chmod +x CPod-1.25.7-x86_64.AppImage</pre>执行 AppImage 文件:<pre class="prettyprint linenums">$ ./CPod-1.25.7-x86_64.AppImage</pre>你将看到一个对话框询问是否将应用程序ߎ…
介绍 Fedora 上的 Swift
Swift 是一种使用现代方法构建安全性、性能和软件设计模式的通用编程语言。它旨在成为各种编程项目的最佳语言,从系统编程到桌面应用程序,以及扩展到云服务。Media
via https://linux.cn/article-10134-1.html
Swift 是一种使用现代方法构建安全性、性能和软件设计模式的通用编程语言。它旨在成为各种编程项目的最佳语言,从系统编程到桌面应用程序,以及扩展到云服务。Media
via https://linux.cn/article-10134-1.html
介绍 Fedora 上的 Swift
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/20/093525ccnxl3l5zxqwwpsj.jpg">Media</a>Swift 是一种使用现代方法构建安全性、性能和软件设计模式的通用编程语言。它旨在成为各种编程项目的最佳语言,从系统编程到桌面应用程序,以及扩展到云服务。继续阅读了解它以及如何在 Fedora 中尝试它。安全、快速、富有表现力与许多现代编程语言一样,Swift 被设计为比基于 C 的语言更安全。例如,变量总是在使用之前初始化。检查数组和整数是否溢出。内存自动管理。Swift 将意图放在语法中。要声明变量,请使用 var 关键字。要声明常量,请使用 let。Swift 还保证对象永远不会是 nil。实际上,尝试使用已知为 nil 的对象将导致编译时错误。当使用 nil 值时,它支持一种称为 <strong>optional</strong> 的机制。optional 可能包含 nil,但使用 ? 运算符可以安全地解包。更多的功能包括:与函数指针统一的闭包元组和多个返回值泛型对范围或集合进行快速而简洁的迭代支持方法、扩展和协议的结构体函数式编程模式,例如 map 和 filter内置强大的错误处理拥有 do、guard、defer 和 repeat 关键字的高级控制流尝试 SwiftSwift 在 Fedora 28 中可用,包名为 <strong>swift-lang</strong>。安装完成后,运行 swift 并启动 REPL 控制台。<pre class="prettyprint linenums">$ swiftWelcome to Swift version 4.2 (swift-4.2-RELEASE). Type :help for assistance. 1> let greeting="Hello world!"greeting: String = "Hello world!" 2> print(greeting)Hello world! 3> greeting = "Hello universe!"error: repl.swift:3:10: error: cannot assign to value: 'greeting' is a 'let' constantgreeting = "Hello universe!"~~~~~~~~ ^ 3></pre>Swift 有一个不断发展的社区,特别的,有一个<a href="https://swift.org/server/">工作组</a>致力&#…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/20/093525ccnxl3l5zxqwwpsj.jpg">Media</a>Swift 是一种使用现代方法构建安全性、性能和软件设计模式的通用编程语言。它旨在成为各种编程项目的最佳语言,从系统编程到桌面应用程序,以及扩展到云服务。继续阅读了解它以及如何在 Fedora 中尝试它。安全、快速、富有表现力与许多现代编程语言一样,Swift 被设计为比基于 C 的语言更安全。例如,变量总是在使用之前初始化。检查数组和整数是否溢出。内存自动管理。Swift 将意图放在语法中。要声明变量,请使用 var 关键字。要声明常量,请使用 let。Swift 还保证对象永远不会是 nil。实际上,尝试使用已知为 nil 的对象将导致编译时错误。当使用 nil 值时,它支持一种称为 <strong>optional</strong> 的机制。optional 可能包含 nil,但使用 ? 运算符可以安全地解包。更多的功能包括:与函数指针统一的闭包元组和多个返回值泛型对范围或集合进行快速而简洁的迭代支持方法、扩展和协议的结构体函数式编程模式,例如 map 和 filter内置强大的错误处理拥有 do、guard、defer 和 repeat 关键字的高级控制流尝试 SwiftSwift 在 Fedora 28 中可用,包名为 <strong>swift-lang</strong>。安装完成后,运行 swift 并启动 REPL 控制台。<pre class="prettyprint linenums">$ swiftWelcome to Swift version 4.2 (swift-4.2-RELEASE). Type :help for assistance. 1> let greeting="Hello world!"greeting: String = "Hello world!" 2> print(greeting)Hello world! 3> greeting = "Hello universe!"error: repl.swift:3:10: error: cannot assign to value: 'greeting' is a 'let' constantgreeting = "Hello universe!"~~~~~~~~ ^ 3></pre>Swift 有一个不断发展的社区,特别的,有一个<a href="https://swift.org/server/">工作组</a>致力&#…