Sumantro Mukherjee 发布的文章

这些文章的作者们揭示了使用这一流行的编程语言的新方法。

 title=

长期以来,Python 一直是最受欢迎的编程语言之一,但这并不意味着没有什么新东西可学。我们关于 Python 的阅读量最大的文章列表是一个很好的开始。

  • 机器学习的广泛采用已经到来,其应用仍在增长。看看使用 朴素贝叶斯 分类器并通过 Python 实现的机器学习如何解决现实生活中的问题。
  • 向 Python 3 的过渡已经完成,但增强功能不断涌现。Seth Kenlon 强调了 Python 3 中的五颗隐藏的宝石,它们在最近的改进中脱颖而出。
  • Openshot 多年来一直是 Linux 视频编辑的最佳选择之一。这篇受欢迎的文章将告诉你,你也可以用这个 Python 应用 在 Linux 上编辑视频
  • Python 最好的部分是一个程序员可以实现的无限可能。Cython 是一个编译器,不仅可以帮助加快代码执行速度,还可以让用户为 Python 编写 C 语言扩展。
  • Python 可以使 API 单元测试更简单。Miguel Brito 向你展示了 用 Python 测试 API 的三种方法
  • 随着计算能力的提高,越来越多的程序在并发运行。这可能会使调试、日志记录和剖析出错的地方成为挑战。VizTracer 正是为了解决这个问题而创建的。
  • 用户的个人项目,无论大小,都很好地提醒我们开源编码可以有无穷的乐趣。这里有一个鼓舞人心的项目:Darin London 如何使用 CircuitPython 监控他的温室
  • Linux 用户经常会遇到需要大量命令行参数的程序,这让人很不爽。这是一个 不错的配置解析技巧,可以让生活更轻松。

via: https://opensource.com/article/22/1/python-roundup

作者:Sumantro Mukherjee 选题:lujun9972 译者:geekpi 校对:wxy

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

Ansible 是一个开源的自动化工具,可以以多种方式使用。以下是几个去年最受欢迎的 Ansible 教程和故事。

 title=

自动化不断改善着 IT 团队中每个人的生活。Ansible 可以帮助任何使用 IT 自动化的人,不管是为了保持文件的有序性还是配置打印机,或者是为了任何其他可以想象和构建的东西。这些是 2021 年我们分享的一些最引人注目的使用案例和经验。

无论你是第一次听说 Ansible,还是一个经验丰富的用户,这些文章都会有你的收获。

  • Ansible 的创始人 Michael DeHaan 分享了他对自己如何被引向 IT 自动化的想法。这篇访谈对 Ansible 是如何诞生的 以及随着时间的推移而发展的信息和见解都非常好。
  • 当你作为一个系统管理员可以将许多日常任务自动化时,自动化可以节省一天的时间。了解如何使用 Ansible 为 五个日常的系统管理员任务 实现自动化流程。
  • 你的下载文件夹中充满了垃圾吗?介绍一个简单的方法,用一个简单的剧本来清理你系统上的文件。它很容易扩展,计划好后,就会按照你的要求频繁运行。了解更多关于 用 Ansible 删除文件
  • 如果你正在 写 Ansible 剧本,可以用四行代码改善它们。想想下一个用户,特别是当你在一个项目上合作的时候。一个小的努力可以防止大的问题。
  • Ansible 社区已经采取了措施,通过审查其代码库和更新语言,使该项目更具包容性。请看 Ansible 术语变化 的总结。
  • 从你的 Ansible 剧本中调用 API,就像一个专业人员一样!找出每个人都应该知道的关于 利用剧本中的 REST API
  • 有一些应该每天、每周或每月运行的计划任务?使用 Ansible 和 anacron 来设置任务,利用时间戳而不是计划时间,所以即使你的机器在计划时间关闭,它也会在重新开启时运行。
  • 如果你刚刚开始使用 Ansible,也许你需要一些方向来开始。这里有 每个人都可以使用 Ansible 的 10 种方法
  • 当社区一起工作时,奇迹就会发生。这不仅仅是代码:了解 Ansible 如何构建设计系统,创建可重用的品牌资产以供社区使用。如果你是设计师或社区经理,你会特别欣赏这个故事。

via: https://opensource.com/article/22/1/learn-ansible

作者:Sumantro Mukherjee 选题:lujun9972 译者:geekpi 校对:wxy

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

使用 Podman Machine 创建一个基本的 Fedora CoreOS 虚拟机来使用容器和容器化工作负载。

 title=

Fedora CoreOS 是一个自动更新、最小化的基于 rpm-ostree 的操作系统,用于安全地、大规模地运行容器化工作负载。

Podman “是一个用于管理容器和镜像、挂载到这些容器中的卷,以及由这些容器组组成的吊舱的工具。Podman 基于 libpod,它是一个容器生命周期管理库”。

当你使用 Podman Machine 时,神奇的事情发生了,它可以帮助你创建一个基本的 Fedora CoreOS 虚拟机(VM)来使用容器和容器化工作负载。

开始使用 Podman Machine

第一步是安装 Podman。如果你已经安装了最新版本的 Podman,你可以跳过这个步骤。在我的 Fedora 34 机器上,我用以下方式安装 Podman:

$ sudo dnf install podman

我使用的是 podman-3.2.2-1.fc34.x86\_64。

初始化 Fedora CoreOS

Podman 安装完成后,用以下方法初始化它:

❯ podman machine init vm2
Downloading VM image: fedora-coreos-34.20210626.1.0-qemu.x86_64.qcow2.xz: done 
Extracting compressed file

这个命令创建了 vm2,并下载了 .xz 格式的 Fedora CoreOS 的 qcow2 文件并将其解压。

列出你的虚拟机

了解你的虚拟机和它们的状态是很重要的,list 命令可以帮助你做到这一点。下面的例子显示了我所有的虚拟机的名称,它们被创建的日期,以及它们最后一次启动的时间:

❯ podman machine list 
NAME          VM TYPE     CREATED     LAST UP
podman-machine-default* qemu      6 days ago   Currently running
vm2           qemu      11 minutes ago 11 minutes ago

启动一个虚拟机

要启动一个虚拟机,请运行:

❯ podman machine start
Waiting for VM ...

SSH 到虚拟机

你可以使用 SSH 来访问你的虚拟机,并使用它来运行工作负载,而没有任何麻烦的设置:

❯ podman machine ssh  
Connecting to vm podman-machine-default. To close connection, use `~.` or `exit`
Fedora CoreOS 34.20210611.1.0
Tracker: https://github.com/coreos/fedora-coreos-tracker
Discuss: https://discussion.fedoraproject.org/c/server/coreos/
 
Last login: Wed Jun 23 13:23:36 2021 from 10.0.2.2
[core@localhost ~]$ uname -a
Linux localhost 5.12.9-300.fc34.x86_64 #1 SMP Thu Jun 3 13:51:40 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[core@localhost ~]$

目前,Podman 只支持一次运行一个虚拟机。

停止你的虚拟机

要停止运行中的虚拟机,请使用 stop 命令:

❯ podman machine stop

[core@localhost ~]$ Connection to localhost closed by remote host.
Connection to localhost closed.
Error: exit status 255

我希望这能帮助你开始使用 Podman Machine。请试一试,并在评论中告诉我们你的想法。


via: https://opensource.com/article/21/7/linux-podman

作者:Sumantro Mukherjee 选题:lujun9972 译者:geekpi 校对:wxy

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

通过使用 pipx 隔离运行 Python 应用来避免版本冲突并提高安全性。

 title=

如果你使用 Python,你可能会安装很多 Python 应用。有些是你只想尝试的工具。还有一些是你每天都在使用的久经考验的应用,所以你把它们安装在你使用的每一台计算机上。这两种情况下,在虚拟环境中运行你的 Python 应用是非常有用的,这可以使它们以及它们的依赖关系相互分离,以避免版本冲突,并使它们与你系统的其它部分隔离,以提高安全性。

这就是 pipx 出场的地方。

大多数 Python 应用可以使用 pip 进行安装,它只安装 Python 包。然而,pipx 为你的 Python 应用创建并管理一个虚拟环境,并帮助你运行它们。

安装 pipx

pipx 主要是一个 RPM 包,你可以在任何 Fedora、RHEL 或 CentOS 机器上安装它:

$ sudo dnf install pipx

使用 pipx

我将通过 Cowsay 以及 Concentration 工具演示如何使用 pipx

安装软件包

安装完 pipx 后,你可以用以下方法安装 Python 包:

$ pipx install <python_package>

要安装 Cowsay 包:

$ pipx install cowsay                         ✔ │ 20:13:41 
 installed package cowsay 4.0, Python 3.9.5
 These apps are now globally available
    - cowsay
done! ✨ ? ✨

现在你可以在系统的任何地方运行 Cowsay,通过终端与你对话!

$ cowsay "I <3 OSDC"                         
  _________
| I <3 OSDC |
  =========
        \
        \
                ^__^
                (oo)\_______
                (__)\           )\/\
                ||----w |
                ||      ||

 title=

以特殊权限进行安装

不是所有的应用都像 Cowsay 一样简单。例如,Concentration 会与你系统中的许多其他组件交互,所以它需要特殊的权限。用以下方式安装它:

$ pipx install concentration                                      ✔ │ 10s │ │ 20:26:12 
 installed package concentration 1.1.5, Python 3.9.5
 These apps are now globally available
    - concentration
done! ✨ ? ✨

Concentration 通过阻止 distractors 文件中列出的特定网站来帮助你集中注意力。要做到这点,它需要以 sudo 或 root 权限运行。你可以用 OpenDoas 来做到这点,这是 doas 命令的一个版本,可以用特定的用户权限运行任何命令。要使用 doassudo 权限来运行 Concentration:

$ doas concentration improve                                 ✔ │ │ 20:26:54 
doas (sumantrom) password: 
Concentration is now improved :D!

如你所见,这个独立的应用能够改变系统中的一些东西。

列出已安装的应用

pipx list 命令显示所有用 pipx 安装的应用和它们的可执行路径:

$ pipx list                                                                       
venvs are in /home/sumantrom/.local/pipx/venvs
apps are exposed on your $PATH at /home/sumantrom/.local/bin
 package concentration 1.1.5, Python 3.9.5
    - concentration
 package cowsay 4.0, Python 3.9.5
    - cowsay

卸载应用

当你使用完毕后,知道如何卸载它们是很重要的。pipx 有一个非常简单的卸载命令:

$ pipx uninstall <package name>

或者你可以删除每个软件包:

$ pipx uninstall-all

pipx uninstall-all                           2 ✘ │ 20:13:35 
uninstalled cowsay! ✨ ? ✨
uninstalled concentration! ✨ ? ✨

尝试 pipx

pipx 是一个流行的 Python 应用的包管理器。它可以访问 PyPi 上的所有东西,但它也可以从包含有效 Python 包的本地目录、Python wheel 或网络位置安装应用。

如果你安装了大量的 Python 应用,可以试试 pipx


via: https://opensource.com/article/21/7/python-pipx

作者:Sumantro Mukherjee 选题:lujun9972 译者:geekpi 校对:wxy

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

age 是一个简单的、易于使用的工具,允许你用一个密码来加密和解密文件。

 title=

文件的保护和敏感文档的安全加密是用户长期以来关心的问题。即使越来越多的数据被存放在网站和云服务上,并由具有越来越安全和高强度密码的用户账户来保护,但我们能够在自己的文件系统中存储敏感数据仍有很大的价值,特别是我们能够快速和容易地加密这些数据时。

age 能帮你这样做。它是一个小型且易于使用的工具,允许你用一个密码加密一个文件,并根据需要解密。

安装 age

age 可以从众多 Linux 软件库中 安装

在 Fedora 上安装它:

$ sudo dnf install age -y

在 macOS 上,使用 MacPortsHomebrew 来安装。在 Windows 上,使用 Chocolatey 来安装。

用 age 加密和解密文件

age 可以用公钥或用户自定义密码来加密和解密文件。

在 age 中使用公钥

首先,生成一个公钥并写入 key.txt 文件:

$ age-keygen -o key.txt
Public key: age16frc22wz6z206hslrjzuv2tnsuw32rk80pnrku07fh7hrmxhudawase896m9

使用公钥加密

要用你的公钥加密一个文件:

$ touch mypasswds.txt | age -r \
    ageage16frc22wz6z206hslrjzuv2tnsuw32rk80pnrku07fh7hrmxhudawase896m9 \
    > mypass.tar.gz.age

在这个例子中,我使用生成的公钥加密文件 mypasswds.txt,保存在名为 mypass.tar.gz.age 的加密文件中。

用公钥解密

如需解密加密文件,使用 age 命令和 --decrypt 选项:

$ age --decrypt -i key.txt -o mypass.tar.gz mypass.tar.gz.age

在这个例子中,age 使用存储在 key.text 中的密钥,并解密了我在上一步创建的加密文件。

使用密码加密

不使用公钥的情况下对文件进行加密被称为对称加密。它允许用户设置密码来加密和解密一个文件。要做到这一点:

$ age --passphrase --output mypasswd-encrypted.txt mypasswd.txt
Enter passphrase (leave empty to autogenerate a secure one): 
Confirm passphrase:

在这个例子中,age 提示你输入一个密码,它将通过这个密码对输入文件 mypasswd.txt 进行加密,并生成加密文件 mypasswd-encrypted.txt

使用密码解密

如需将用密码加密的文件解密,可以使用 age 命令和 --decrypt 选项:

$ age --decrypt --output passwd-decrypt.txt mypasswd-encrypted.txt

在这个例子中,age 提示你输入密码,只要你提供的密码与加密时设置的密码一致,age 随后将 mypasswd-encrypted.txt 加密文件的内容解密为 passwd-decrypt.txt

不要丢失你的密钥

无论你是使用密码加密还是公钥加密,你都\_不能\_丢失加密数据的凭证。根据设计,如果没有用于加密的密钥,通过 age 加密的文件是不能被解密的。所以,请备份你的公钥,并记住这些密码!

轻松实现加密

age 是一个真正强大的工具。我喜欢把我的敏感文件,特别是税务记录和其他档案数据,加密到 .tz 文件中,以便以后访问。age 是用户友好的,使其非常容易随时加密。


via: https://opensource.com/article/21/7/linux-age

作者:Sumantro Mukherjee 选题:lujun9972 译者:geekpi 校对:turbokernel

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

在命令行上创建符合特定规范的密码。

 title=

大多数网站或应用都要求用户创建带有安全密码的账户,以便他们能够迎合用户体验。虽然这有利于网站开发者,但肯定不会让用户的生活更轻松。

有时,创建密码的规则是如此严格,以至于难以生成一个强壮且合规的组合。如果有一个工具可以生成符合网站或应用程序要求的任何规则的安全密码,那就容易多了。

这就是 pwgen 的用武之地。根据它的 手册页:“pwgen 生成的密码是为了让人容易记住,同时又尽可能的安全。” 它返回符合你所提供的规则的多个密码选项,这样你就可以选择一个你喜欢的(而且可能更容易记住)。

安装 pwgen

在 Linux 上,你可以通过包管理器安装 pwgen。例如,在 Fedora 上:

$ sudo dnf install pwgen

在 macOS 上,可以使用 MacPortsHomebrew。在 Windows 上,可以使用 Chocolatey

使用 pwgen 生成密码

有几种方式可以通过向 pwgen 传递参数来生成密码,这取决于你所需的参数。这里有一些例子。更多的参数选项请查阅手册页。

如果你需要一个安全的、难以记忆的特定长度的密码,请运行 pwgen --secure(或简写 -s),后面跟上你所需的密码长度:

$ pwgen -s 25
pnFBg9jB8AlKL3feOuS2ZwMGb xlmDRoaLssduXTdGV6jkQhUGY O3IUB3CH7ry2kD4ZrSoODzWez
dENuvhkF3mmeb4FfXd4VPU2dE EMCi1sHFKHUVmbVajXWleFBzD 4UXJIu3JztVzYz6qJktBB3KCv
AF9WM7hmG89cpTlg8PksI7jsL LSSaT7DD4IT8DUgRAgY8Zt06m Nths10uT0bIMGsPuE0XEHDxsj
6YjLRbg3VnGnrzkoQCmrneLmm Tam1Mftac5RxrZPoXJtXx1Qdy BPqePJW4LdTtFnuZOepKEj0o0
Ss8veqqf95zusqYPsfE7mLb93 4KuZdReO5lhKff7Xv1en1Hefs is7hjLnDrVCUJ7Hh6zYUzfppn
UXOfENPRJYWiroIWEt5IgAwdJ t8i4hM4cDuL8pN1rpFKHnx7yw Wr7gyuyU2br7aCbiH5M5ogvc6
evk90lUmK2rOUWGgnqmznn0a9 Lflyc9svJfaBRRMin24j0P9ec hIzyJIwCpklDjgOb5PrMkyPCI
bhYcaV7GXfUiCMZ1kvMnlmKLx v4EJew54u6s4ZCirOTAWjfPQ2 IdemhbOHOm4Qo70WGibaNTOpO
j6XkmdB3LBfqZf5mbL3GndliG PpZbeXfWOFCpNARyXt1FWPAb8 OLQS2HFuqkiSg56sdxNsg5vaJ
1g666HxJPQ6l2L0RlaDEMoi50 1t6au7VuTN9HVPpiVmd1Gurli 46OAWypvwtZZUdBEfaHSunjpw
0LiRj9dbtMuI4cbDES8O4gYRq 2HPiaq5AANvVT32fWqNIruu3R 3lT5B107WoUbHsELkKUjnEEih
gLmYUTp0XZJWvIVbA5rFvBT54 LEm6QVeTMinc056DC9c4V55cV ipV45Ewj704365byKhY8zn766

运行 pwgen -symbols(或简写 -y),再加上所需的密码长度,生成包含特殊字符的密码:

$ pwgen -y 25
Osh0chahxe0won9aech4ese?v pemoh2ohm9aim;iu4Eiy"ah0y Taiqu;o2aeSh+o4aedoagait3
Vei;phoh5owai5jui+t|ei3ot teu!w7mahxoh0Po7ohph8Iez6 quie#phooCeu2lohm5shaPaer
eTh5AechaexieToh9ez5eeZ;e nuloh1ico0Nool:eG<aiv`ah, Heeghuo8ahzii1Iep~ie_ch7p
oe6Xee6uchei7Oroothail~iL ahjie!Chee.W4wah[wuu]phoo ees7ieb!i[ibahhei1xoz2Woh
Atei9ooLu7lo~sh>aig@ae9No OVahh2OhNgahtu8iethaR@i7o ouFai8ahP@eil4Ieh5le5ipu5
eeT4tahW0ieng9fe?i5auM3ie seet0ohc4aiJei]koiGha2zu% iuh@oh4eix0Vuphi?o,hei9me
loh0Aeph=eix(ohghe6chee3z ahgh2eifiew8dahG_aeph8woo oe!B4iasaeHo`ungie3taekoh
cei!c<ung&u,shee6eir7Eigo va6phou8ooYuoquohghi-n6Qu eeph4ni\chi2shohg3Die1hia
uCagha8Toos2bahLai7phuph` Zue2thieng9ohhoo~shoh6ese Aet7Lio1ailee^qu4hiech5ie
dee]kuwu9OhTh3shoi2eijoGe daethahH6ahV3eekoo9aep$an aehiiMaquieHee9moh`l_oh4l
aec#ii6Chophu3aigh*ai#le4 looleihoog:uo4Su"thiediec eeTh{o7Eechah7eeJ2uCeish!
oi3jaiphoof$aiy;ieriexeiP Thozool3aipi|cahfu0Ha~e1e az/u8iel2Jaeph2vooshai9Wi

运行 pwgen --capitalize(或缩写 -c),后面跟上密码长度,生成包含大写字母的密码:

$ pwgen -c 25
pheipichusheta6ieJ4xai4ai seiLeiciev7ijoy5Uez7Iepee Foobeisheec7ooGahbicholo6
shenahsheevigh3pha1Ie5aev taiTheitahne3oong4joegh9d ooshieV0ooGhaelabuyahsh7t
ieniech0Uajeh8nieYaak0foh dohm5Pee3jeeshahm1eipei0a aemoob8Lequeesho8ahreiwee
keineeCh5ieZejafitith6Osh Tahn3nohl6iewaimee6oofied Aed2Woh7nae5ohgh2toh1ieph
le4agheeb0bieth0Ui7ielais Iunoo4lev1aiG4NohfoTh3ro5 iLai7eiQuohXosh8ooyiev6wu
eezib2zoh2ohsh0cooSahluK6 baekiew8bo5oeMouthi7taCee iep6Puungae0uushogah4rohw
chohm5leogae2zeiph1OL0uK2 oosieCaishievahvig3Iaphai ii9AemieYeepe1ahciSei8ees
ie3aighaiy9TaX6bae8soKe6t sooDaivi4mia8Eireech8ope9 moi9uk3bauv0ahY4to0aedie7
que8seHu4shu7Veib6noe7dai shuyuj9aiphoip2Ier4oole1u Thoaziebah1Ieph2Veec0Ohm8
auqua4Kaitie9sei6quoh7chi jeewaituH3Ohsaisahp0viequ ueh1quaibidoh6Bae6ri0Mee2
lae3aiJaiNgoh7yieghozev7o Di2vohfahr7uo7ohSh0voh5sh Jeurahxiedeiyoom3aechaS7d
thung2pheiy2tooBeenuN8ia3 foh0oge1athei0oowieZen0ai iexei0io1vohsieThuCoy5ogi
tohHe3uu2eXieheeQuoh7eit8 aiMieCeizeivu1ooch8aih0sh Riojei2yoah0AiWeiRoMieQu0

让它变得简单

由于人脑更倾向于选择模式,所以强壮的随机密码难以生成。通过使用 pwgen,你可以轻松生成密码。借助于优秀的 开源密码管理器,你可以完全从易于使用但难以猜测的密码中获益。


via: https://opensource.com/article/21/7/generate-passwords-pwgen

作者:Sumantro Mukherjee 选题:lujun9972 译者:geekpi 校对:turbokernel

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