2021年2月

Linspire 10 发布,自称“第一发行版”

Linspire 的前身是 20 多年前知名的 Lindows 发行版。去年底发布 Linspire 10 Beta 版时,声称 Linspire 是“新用户、中级用户和高级用户的第一发行版”。其正式版于近日发布,在发布公告中该团队骄傲地宣称该团队“努力开发出了市场上最好、最精心的设计和工程化的 FOSS 桌面”。该版本基于 Ubuntu 20.04 LTS,使用 Linux 5.8 内核、定制的 GNOME 3.38 桌面,Chrome 88,以及微软 PowerShell 7 和 DVD/蓝光解码能力。

但是,要注意的是,这是一款商业版的 Linux 发行版,其单个许可证的起价为 29.99 美元,而企业无限授权模式下,起价则高达 2500 美元。

敢于宣称自己是 No. 1,还这么贵,我觉得没点底气是不行的,或许该试试。

研究人员利用开源软件依赖攻击入侵 35 家科技公司

安全研究人员注意到 PayPal 使用的一个程序包含了非公开的私有 npm 包,他想知道如果他创建一个同名的公开的 npm 包,那么软件在构建时是优先使用私有的还是公开的版本?为了进行测试,他向流行的软件包库 npm、PyPI 和 RubyGems 上传了同名的冒牌项目,结果这些项目自动下传到了公司的内部应用程序中。作为道德黑客测试,他上传的冒牌项目明确地解释了软件包“不包含任何有用的代码,只是用于安全研究目的”。

该攻击利用了开源生态系统的一个独特设计缺陷,被称为“依赖性混淆”。他发现,公开的软件包会比私有的软件包优先度更高;某些情况下版本更高的软件包优先度更高,无论私有还是公开。利用这一方法,他成功地入侵了 35 家知名科技公司,包括微软、苹果、特斯拉、PayPal、Shopify、Netflix、Yelp、和 Uber 等,获得了超过 13 万美元的漏洞报告奖励。

这种攻击很可能会迅速针对使用开源软件构建内部软件的公司展开,而且,就目前而言,现有的开源软件依赖模式并没有直接的防范方法。如果你的公司也存在类似情况,请尽快采取缓解措施。

Gmail iOS 应用已有 2 个月未更新,开始弹安全警告

虽然谷歌已经承诺更新其应用程序套件的应用程序隐私标签,以遵守苹果在 12 月开始执行的 App Store 规则,但它的许多主要应用程序已经几个月没有更新。iOS 版 Gmail 自 12 月 1 日以来就没有更新过。当用户在其上登录一个新的账户时,它会给出了一个应该更新的警告,并建议你只有在“了解风险的情况下”才继续登录。

目前仍不清楚谷歌为什么要花这么长时间为其 iOS 应用添加应用隐私标签,Gmail 何时能获得更新也没有消息。但谷歌一直在定期更新其 Android 应用,Android Gmail 应用的最后一次更新是在 2 月 9 日发布的。

看来,谷歌对如何遵守苹果的隐私政策,心有疑虑啊;难道是谷歌的应用实在是要的隐私太多了,不好意思公开说明吗?

我们已经了解到如何通过 GNU Screen 进行多会话管理。今天,我们将要领略另一个著名的管理会话的命令行实用工具 Tmux。类似 GNU Screen,Tmux 是一个帮助我们在单一终端窗口中创建多个会话,同一时间内同时运行多个应用程序或进程的终端复用工具。Tmux 自由、开源并且跨平台,支持 Linux、OpenBSD、FreeBSD、NetBSD 以及 Mac OS X。本文将讨论 Tmux 在 Linux 系统下的高频用法。

Linux 下安装 tmux

Tmux 可以在绝大多数的 Linux 官方仓库下获取。

在 Arch Linux 或它的变种系统下,执行下列命令来安装:

$ sudo pacman -S tmux

Debian、Ubuntu 或 Linux Mint:

$ sudo apt-get install tmux

Fedora:

$ sudo dnf install tmux

RHEL 和 CentOS:

$ sudo yum install tmux

SUSE/openSUSE:

$ sudo zypper install tmux

以上,我们已经完成 Tmux 的安装。之后我们继续看看一些 Tmux 示例。

Tmux 命令示例: 多会话管理

Tmux 默认所有命令的前置命令都是 Ctrl+b,使用前牢记这个快捷键即可。

注意Screen 的前置命令都是 Ctrl+a.

创建 Tmux 会话

在终端中运行如下命令创建 Tmux 会话并附着进入:

tmux

抑或,

tmux new

一旦进入 Tmux 会话,你将看到一个 沉在底部的绿色的边栏,如下图所示。

创建 Tmux 会话

这个绿色的边栏能很容易提示你当前是否身处 Tmux 会话当中。

退出 Tmux 会话

退出当前 Tmux 会话仅需要使用 Ctrl+bd。无需同时触发这两个快捷键,依次按下 Ctrl+bd 即可。

退出当前会话后,你将能看到如下输出:

[detached (from session 0)]

创建有名会话

如果使用多个会话,你很可能会混淆运行在多个会话中的应用程序。这种情况下,我们需要会话并赋予名称。譬如需要 web 相关服务的会话,就创建一个名称为 “webserver”(或任意一个其他名称) 的 Tmux 会话。

tmux new -s webserver

这里是新的 Tmux 有名会话:

拥有自定义名称的 Tmux 会话

如你所见上述截图,这个 Tmux 会话的名称已经被标注为 “webserver”。如此,你可以在多个会话中,轻易的区分应用程序的所在。

退出会话,轻按 Ctrl+bd

查看 Tmux 会话清单

查看 Tmux 会话清单,执行:

tmux ls

示例输出:

列出 Tmux 会话

如你所见,我们开启了两个 Tmux 会话。

创建非附着会话

有时候,你可能想要简单创建会话,但是并不想自动切入该会话。

创建一个非附着会话,并赋予名称 “ostechnix”,运行:

tmux new -s ostechnix -d

上述命令将会创建一个名为 “ostechnix” 的会话,但是并不会附着进入。

你可以通过使用 tmux ls 命令验证:

创建非附着会话

附着进入 Tmux 会话

通过如下命令,你可以附着进入最后一个被创建的会话:

tmux attach

抑或,

tmux a

如果你想附着进入任意一个指定的有名会话,譬如 “ostechnix”,运行:

tmux attach -t ostechnix

或者,简写为:

tmux a -t ostechnix

关闭 Tmux 会话

当你完成或者不再需要 Tmux 会话,你可以通过如下命令关闭:

tmux kill-session -t ostechnix

当身处该会话时,使用 Ctrl+b 以及 x。点击 y 来关闭会话。

可以通过 tmux ls 命令验证。

关闭所有 Tmux 服务下的所有会话,运行:

tmux kill-server

谨慎!这将终止所有 Tmux 会话,并不会产生任何警告,即便会话存在运行中的任务。

如果不存在活跃的 Tmux 会话,将看到如下输出:

$ tmux ls
no server running on /tmp/tmux-1000/default

切割 Tmux 窗口

切割窗口成多个小窗口,在 Tmux 中,这个叫做 “Tmux 窗格”。每个窗格中可以同时运行不同的程序,并同时与所有的窗格进行交互。每个窗格可以在不影响其他窗格的前提下可以调整大小、移动位置和控制关闭。我们可以以水平、垂直或者二者混合的方式切割屏幕。

水平切割窗格

欲水平切割窗格,使用 Ctrl+b"(半个双引号)。

水平切割 Tmux 窗格

可以使用组合键进一步切割面板。

垂直切割窗格

垂直切割面板,使用 Ctrl+b%

垂直切割 Tmux 窗格

水平、垂直混合切割窗格

我们也可以同时采用水平和垂直的方案切割窗格。看看如下截图:

切割 Tmux 窗格

首先,我通过 Ctrl+b " 水平切割,之后通过 Ctrl+b % 垂直切割下方的窗格。

如你所见,每个窗格下我运行了不同的程序。

切换窗格

通过 Ctrl+b 和方向键(上下左右)切换窗格。

发送命令给所有窗格

之前的案例中,我们在每个窗格中运行了三个不同命令。其实,也可以发送相同的命令给所有窗格。

为此,使用 Ctrl+b 然后键入如下命令,之后按下回车:

:setw synchronize-panes

现在在任意窗格中键入任何命令。你将看到相同命令影响了所有窗格。

交换窗格

使用 Ctrl+bo 交换窗格。

展示窗格号

使用 Ctrl+bq 展示窗格号。

终止窗格

要关闭窗格,直接键入 exit 并且按下回车键。或者,按下 Ctrl+bx。你会看到确认信息。按下 y 关闭窗格。

关闭窗格

放大和缩小 Tmux 窗格

我们可以将 Tmux 窗格放大到当前终端窗口的全尺寸,以获得更好的文本可视性,并查看更多的内容。当你需要更多的空间或专注于某个特定的任务时,这很有用。在完成该任务后,你可以将 Tmux 窗格缩小(取消放大)到其正常位置。更多详情请看以下链接。

自动启动 Tmux 会话

当通过 SSH 与远程系统工作时,在 Tmux 会话中运行一个长期运行的进程总是一个好的做法。因为,它可以防止你在网络连接突然中断时失去对运行进程的控制。避免这个问题的一个方法是自动启动 Tmux 会话。更多详情,请参考以下链接。

总结

这个阶段下,你已经获得了基本的 Tmux 技能来进行多会话管理,更多细节,参阅 man 页面。

$ man tmux

GNU Screen 和 Tmux 工具都能透过 SSH 很好的管理远程服务器。学习 Screen 和 Tmux 命令,像个行家一样,彻底通过这些工具管理远程服务器。


via: https://www.ostechnix.com/tmux-command-examples-to-manage-multiple-terminal-sessions/

作者:sk 选题:lujun9972 译者:chensanle 校对:wxy

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

在 Linux 中有两种运行 shell 脚本的方法。你可以使用:

bash script.sh

或者,你可以像这样执行 shell 脚本:

./script.sh

这可能很简单,但没太多解释。不要担心,我将使用示例来进行必要的解释,以便你能理解为什么在运行一个 shell 脚本时要使用给定的特定语法格式。

我将使用这一行 shell 脚本来使需要解释的事情变地尽可能简单:

abhishek@itsfoss:~/Scripts$ cat hello.sh

echo "Hello World!"

方法 1:通过将文件作为参数传递给 shell 以运行 shell 脚本

第一种方法涉及将脚本文件的名称作为参数传递给 shell 。

考虑到 bash 是默认 shell,你可以像这样运行一个脚本:

bash hello.sh

你知道这种方法的优点吗?你的脚本不需要执行权限。对于简单的任务非常方便快速。

在 Linux 中运行一个 Shell 脚本

如果你还不熟悉,我建议你 阅读我的 Linux 文件权限详细指南

记住,将其作为参数传递的需要是一个 shell 脚本。一个 shell 脚本是由命令组成的。如果你使用一个普通的文本文件,它将会抱怨错误的命令。

运行一个文本文件为脚本

在这种方法中,你要明确地具体指定你想使用 bash 作为脚本的解释器

shell 只是一个程序,并且 bash 只是 Shell 的一种实现。还有其它的 shell 程序,像 ksh 、zsh 等等。如果你安装有其它的 shell ,你也可以使用它们来代替 bash 。

例如,我已安装了 zsh ,并使用它来运行相同的脚本:

使用 Zsh 来执行 Shell 脚本

方法 2:通过具体指定 shell 脚本的路径来执行脚本

另外一种运行一个 shell 脚本的方法是通过提供它的路径。但是要这样做之前,你的文件必须是可执行的。否则,当你尝试执行脚本时,你将会得到 “权限被拒绝” 的错误。

因此,你首先需要确保你的脚本有可执行权限。你可以 使用 chmod 命令 来给予你自己脚本的这种权限,像这样:

chmod u+x script.sh

使你的脚本是可执行之后,你只需输入文件的名称及其绝对路径或相对路径。大多数情况下,你都在同一个目录中,因此你可以像这样使用它:

./script.sh

如果你与你的脚本不在同一个目录中,你可以具体指定脚本的绝对路径或相对路径:

在其它的目录中运行 Shell 脚本

在脚本前的这个 ./ 是非常重要的(当你与脚本在同一个目录中)。

为什么当你在同一个目录下,却不能使用脚本名称?这是因为你的 Linux 系统会在 PATH 环境变量中指定的几个目录中查找可执行的文件来运行。

这里是我的系统的 PATH 环境变量的值:

abhishek@itsfoss:~$ echo $PATH
/home/abhishek/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

这意味着在下面目录中具有可执行权限的任意文件都可以在系统的任何位置运行:

  • /home/abhishek/.local/bin
  • /usr/local/sbin
  • /usr/local/bin
  • /usr/sbin
  • /usr/bin
  • /sbin
  • /bin
  • /usr/games
  • /usr/local/games
  • /snap/bin

Linux 命令(像 lscat 等)的二进制文件或可执行文件都位于这些目录中的其中一个。这就是为什么你可以在你系统的任何位置通过使用命令的名称来运作这些命令的原因。看看,ls 命令就是位于 /usr/bin 目录中。

当你使用脚本而不具体指定其绝对路径或相对路径时,系统将不能在 PATH 环境变量中找到提及的脚本。

为什么大多数 shell 脚本在其头部包含 #! /bin/bash ?

记得我提过 shell 只是一个程序,并且有 shell 程序的不同实现。

当你使用 #! /bin/bash 时,你是具体指定 bash 作为解释器来运行脚本。如果你不这样做,并且以 ./script.sh 的方式运行一个脚本,它通常会在你正在运行的 shell 中运行。

有问题吗?可能会有。看看,大多数的 shell 语法是大多数种类的 shell 中通用的,但是有一些语法可能会有所不同。

例如,在 bash 和 zsh 中数组的行为是不同的。在 zsh 中,数组索引是从 1 开始的,而不是从 0 开始。

Bash Vs Zsh

使用 #! /bin/bash 来标识该脚本是 bash 脚本,并且应该使用 bash 作为脚本的解释器来运行,而不受在系统上正在使用的 shell 的影响。如果你使用 zsh 的特殊语法,你可以通过在脚本的第一行添加 #! /bin/zsh 的方式来标识其是 zsh 脚本。

#!/bin/bash 之间的空格是没有影响的。你也可以使用 #!/bin/bash

它有帮助吗?

我希望这篇文章能够增加你的 Linux 知识。如果你还有问题或建议,请留下评论。

专家用户可能依然会挑出我遗漏的东西。但这种初级题材的问题是,要找到信息的平衡点,避免细节过多或过少,并不容易。

如果你对学习 bash 脚本感兴趣,在我们专注于系统管理的网站 Linux Handbook 上,我们有一个 完整的 Bash 初学者系列 。如果你想要,你也可以 购买带有附加练习的电子书 ,以支持 Linux Handbook。


via: https://itsfoss.com/run-shell-script-linux/

作者:Abhishek Prakash 选题:lujun9972 译者:robsean 校对:wxy

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

一朵在印度非常流行的花,占了维基共享资源五分之一的请求量

在维基共享资源上,有一朵花的图片每天的访问量高达 9000 万,而这些访问请求的 IP 地址来自印度各地,并且请求中没有引用来源和 UA 等浏览器信息。据调查,对这个图片的调用来自于一款印度的手机应用,它在印度封禁了来自中国的一些手机应用之后,从去年 7 月开始在印度变得非常火爆,以至于访问量多达千万计,连带着这朵花的访问量也一路攀升。维基百科已经联系了该应用厂商以解决问题,并临时禁止来自该应用的访问。

这是对公共资源的滥用,这是印度人在炫耀他们能访问维基百科么。

以太坊上的虚拟财产售价创 150 万美元价格记录

有人在区块链市场和游戏平台 Axie Infinity 上以 888.25 以太的价格购买了 9 个相邻的创世区块的虚拟数字地产,大约相当于 150 万美元。这笔交易标志着有史以来最大的非同质化通证(NFT)交易的诞生,超了之前的 80 万美元的“太阳城”的记录。购买者认为这是十分值得的,将其视作见证数字国家的崛起。

有人说今年是 DeFi 年,也有人说 NFT 之年,市场情绪在 BTC 暴涨和 DeFi 喷发的环境下,十分狂热,也许这是一个时代,也许是群体狂热。

一家名为“无支持 Linux 托管”的虚拟主机公司被黑客攻击后宣布关闭

这家名为“No Support Linux Hosting(无支持 Linux 托管)”的 Web 托管公司是一家成立了 11 年的公司,以不提供技术支持而降低托管费用。该公司称其在 2 月 8 日被入侵。黑客似乎已经入侵了该公司的整个运营系统,包括其官方网站、管理部分和客户数据库。该公司称无法继续运营,“所有客户应立即通过 cPanel 下载网站和数据库的备份。”目前尚不清楚黑客攻击的目的是为了破坏还是勒索。

这种主要面对有经验的客户的公司,似乎自己的技术经验也不够强啊,这次看来是被整个一锅端了。

在 Linux 社区中,Arch Linux 有一群狂热的追随者。这个轻量级的发行版以 DIY 的态度提供了最前沿的更新。

但是,Arch 的目标用户是那些更有经验的用户。因此,它通常被认为是那些技术不够(或耐心不够)的人所无法触及的。

事实上,只是最开始的步骤,安装 Arch Linux 就足以把很多人吓跑。与大多数其他发行版不同,Arch Linux 没有一个易于使用的图形安装程序。安装过程中涉及到的磁盘分区,连接到互联网,挂载驱动器和创建文件系统等只用命令行工具来操作。

对于那些不想经历复杂的安装和设置的人来说,有许多用户友好的基于 Arch 的发行版。

在本文中,我将向你展示一些 Arch 替代发行版。这些发行版附带了图形安装程序、图形包管理器和其他工具,比它们的命令行版本更容易使用。

更容易设置和使用的基于 Arch 的 Linux 发行版

请注意,这不是一个排名列表。这些数字只是为了计数的目的。排第二的发行版不应该被认为比排第七的发行版好。

1、Manjaro Linux

Manjaro 不需要任何介绍。它是几年来最流行的 Linux 发行版之一,它值得拥有。

Manjaro 提供了 Arch Linux 的所有优点,同时注重用户友好性和可访问性。Manjaro 既适合新手,也适合有经验的 Linux 用户。

对于新手,它提供了一个用户友好的安装程序,系统本身也设计成可以在你最喜爱的桌面环境 (DE)或窗口管理器中直接“开箱即用”。

对于更有经验的用户,Manjaro 还提供多种功能,以满足每个个人的口味和喜好。Manjaro Architect 提供了安装各种 Manjaro 风格的选项,并为那些想要完全自由地塑造系统的人提供了各种桌面环境、文件系统(最近推出的 ZFS) 和引导程序的选择。

Manjaro 也是一个滚动发布的前沿发行版。然而,与 Arch 不同的是,Manjaro 首先测试更新,然后将其提供给用户。稳定在这里也很重要。

2、ArcoLinux

ArcoLinux(以前称为 ArchMerge)是一个基于 Arch Linux 的发行版。开发团队提供了三种变体。ArcoLinux、ArcoLinuxD 和 ArcoLinuxB。

ArcoLinux 是一个功能齐全的发行版,附带有 Xfce 桌面Openboxi3 窗口管理器

ArcoLinuxD 是一个精简的发行版,它包含了一些脚本,可以让高级用户安装任何桌面和应用程序。

ArcoLinuxB 是一个让用户能够构建自定义发行版的项目,同时还开发了几个带有预配置桌面的社区版本,如 Awesome、bspwm、Budgie、Cinnamon、Deepin、GNOME、MATE 和 KDE Plasma。

ArcoLinux 还提供了各种视频教程,因为它非常注重学习和获取 Linux 技能。

3、Archlabs Linux

ArchLabs Linux 是一个轻量级的滚动版 Linux 发行版,基于最精简的 Arch Linux,带有 Openbox 窗口管理器。ArchLabs 在观感设计中受到 BunsenLabs 的影响和启发,主要考虑到中级到高级用户的需求。

4、Archman Linux

Archman 是一个独立的项目。Arch Linux 发行版对于没有多少 Linux 经验的用户来说通常不是理想的操作系统。要想在最小的挫折感下让事情变得更有意义,必须要有相当的背景知识。Archman Linux 的开发人员正试图改变这种评价。

Archman 的开发是基于对开发的理解,包括用户反馈和体验组件。根据团队过去的经验,将用户的反馈和要求融合在一起,确定路线图并完成构建工作。

5、EndeavourOS

当流行的基于 Arch 的发行版 Antergos 在 2019 结束 时,它留下了一个友好且非常有用的社区。Antergos 项目结束的原因是因为该系统对于开发人员来说太难维护了。

在宣布结束后的几天内,一些有经验的用户通过创建一个新的发行版来填补 Antergos 留下的空白,从而维护了以前的社区。这就是 EndeavourOS 的诞生。

EndeavourOS 是轻量级的,并且附带了最少数量的预装应用程序。一块近乎空白的画布,随时可以个性化。

6、RebornOS

RebornOS 开发人员的目标是将 Linux 的真正威力带给每个人,一个 ISO 提供了 15 个桌面环境可供选择,并提供无限的定制机会。

RebornOS 还声称支持 Anbox,它可以在桌面 Linux 上运行 Android 应用程序。它还提供了一个简单的内核管理器 GUI 工具。

再加上 PacmanAUR,以及定制版本的 Cnchi 图形安装程序,Arch Linux 终于可以让最没有经验的用户也能够使用了。

7、Chakra Linux

一个社区开发的 GNU/Linux 发行版,它的亮点在 KDE 和 Qt 技术。Chakra Linux 不在特定日期安排发布,而是使用“半滚动发布”系统。

这意味着 Chakra Linux 的核心包被冻结,只在修复安全问题时才会更新。这些软件包是在最新版本经过彻底测试后更新的,然后再转移到永久软件库(大约每六个月更新一次)。

除官方软件库外,用户还可以安装 Chakra 社区软件库 (CCR) 的软件包,该库为官方存储库中未包含的软件提供用户制作的 PKGINFOs 和 PKGBUILD 脚本,其灵感来自于 Arch 用户软件库(AUR)。

8、Artix Linux

Artix Mate Edition

Artix Linux 也是一个基于 Arch Linux 的滚动发行版,它使用 OpenRCrunits6) 作为初始化工具而不是 systemd

Artix Linux 有自己的软件库,但作为一个基于 pacman 的发行版,它可以使用 Arch Linux 软件库或任何其他衍生发行版的软件包,甚至可以使用明确依赖于 systemd 的软件包。也可以使用 Arch 用户软件库(AUR)。

9、BlackArch Linux

BlackArch 是一个基于 Arch Linux 的 渗透测试发行版,它提供了大量的网络安全工具。它是专门为渗透测试人员和安全研究人员创建的。该软件库包含 2400 多个黑客和渗透测试工具 ,可以单独安装,也可以分组安装。BlackArch Linux 兼容现有的 Arch Linux 包。

想要真正的原版 Arch Linux 吗?可以使用图形化 Arch 安装程序简化安装

如果你想使用原版的 Arch Linux,但又被它困难的安装所难倒。幸运的是,你可以下载一个带有图形安装程序的 Arch Linux ISO。

Arch 安装程序基本上是 Arch Linux ISO 的一个相对容易使用的基于文本的安装程序。它比裸奔的 Arch 安装容易得多。

Anarchy Installer

Anarchy installer 打算为新手和有经验的 Linux 用户提供一种简单而无痛苦的方式来安装 ArchLinux。在需要的时候安装,在需要的地方安装,并且以你想要的方式安装。这就是 Anarchy 的哲学。

启动安装程序后,将显示一个简单的 TUI 菜单,列出所有可用的安装程序选项。

Zen Installer

Zen Installer 为安装 Arch Linux 提供了一个完整的图形(点击式)环境。它支持安装多个桌面环境 、AUR 以及 Arch Linux 的所有功能和灵活性,并且易于图形化安装。

ISO 将引导一个临场环境,然后在你连接到互联网后下载最新稳定版本的安装程序。因此,你将始终获得最新的安装程序和更新的功能。

总结

对于许多用户来说,基于 Arch 的发行版会是一个很好的无忧选择,而像 Anarchy 这样的图形化安装程序至少离原版的 Arch Linux 更近了一步。

在我看来,Arch Linux 的真正魅力在于它的安装过程,对于 Linux 爱好者来说,这是一个学习的机会,而不是麻烦。Arch Linux 及其衍生产品有很多东西需要你去折腾,但是在折腾的过程中你就会进入到开源软件的世界,这里是神奇的新世界。下次再见!


via: https://itsfoss.com/arch-based-linux-distros/

作者:Dimitrios Savvopoulos 选题:lujun9972 译者:Chao-zhi 校对:wxy

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

这是 Python 之禅特别系列的一部分,重点是第十五和第十六条原则:现在与将来。

 title=

Python 一直在不断发展。Python 社区对特性请求的渴求是无止境的,对现状也总是不满意的。随着 Python 越来越流行,这门语言的变化会影响到更多的人。

确定什么时候该进行变化往往很难,但 Python 之禅 给你提供了指导。

现在有总比永远没有好 Now is better than never

总有一种诱惑,就是要等到事情完美才去做,虽然,它们永远没有完美的一天。当它们看起来已经“准备”得足够好了,那就大胆采取行动吧,去做出改变吧。无论如何,变化总是发生在某个现在:拖延的唯一作用就是把它移到未来的“现在”。

虽然将来总比现在好 Although never is often better than right now

然而,这并不意味着应该急于求成。从测试、文档、用户反馈等方面决定发布的标准。在变化就绪之前的“现在”,并不是一个好时机。

这不仅对 Python 这样的流行语言是个很好的经验,对你个人的小开源项目也是如此。


via: https://opensource.com/article/19/12/zen-python-timeliness

作者:Moshe Zadka 选题:lujun9972 译者:wxy 校对:wxy

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