分类 技术 下的文章

在如今的 IT 领域,自动化一个是热门话题,每个组织都开始采用自动化工具,像 Puppet、Ansible、Chef、CFEngine、Foreman 和 Katello。在这些工具中,Ansible 是几乎所有 IT 组织中管理 UNIX 和 Linux 系统的首选。在本文中,我们将演示如何在 Debian 10 Sever 上安装和使用 Ansible。

我的实验室环境:

  • Debian 10 – Ansible 服务器/ 控制节点 – 192.168.1.14
  • CentOS 7 – Ansible 主机 (Web 服务器)– 192.168.1.15
  • CentOS 7 – Ansible 主机(DB 服务器)– 192.169.1.17

我们还将演示如何使用 Ansible 服务器管理 Linux 服务器

在 Debian 10 Server 上安装 Ansible

我假设你的 Debian 10 中有一个拥有 root 或 sudo 权限的用户。在我这里,我有一个名为 pkumar 的本地用户,它拥有 sudo 权限。

Ansible 2.7 包存在于 Debian 10 的默认仓库中,在命令行中运行以下命令安装 Ansible,

root@linuxtechi:~$ sudo apt update
root@linuxtechi:~$ sudo apt install ansible -y

运行以下命令验证 Ansible 版本,

root@linuxtechi:~$ sudo ansible --version

ansible-version

要安装最新版本的 Ansible 2.8,首先我们必须设置 Ansible 仓库。

一个接一个地执行以下命令,

root@linuxtechi:~$ echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" | sudo tee -a /etc/apt/sources.list
root@linuxtechi:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
root@linuxtechi:~$ sudo apt update
root@linuxtechi:~$ sudo apt install ansible -y
root@linuxtechi:~$ sudo ansible --version

latest-ansible-version

使用 Ansible 管理 Linux 服务器

请参考以下步骤,使用 Ansible 控制器节点管理 Linux 类的服务器,

步骤 1:在 Ansible 服务器及其主机之间交换 SSH 密钥

在 Ansible 服务器生成 ssh 密钥并在 Ansible 主机之间共享密钥。

root@linuxtechi:~$ sudo -i
root@linuxtechi:~# ssh-keygen
root@linuxtechi:~# ssh-copy-id root@linuxtechi
root@linuxtechi:~# ssh-copy-id root@linuxtechi

步骤 2:创建 Ansible 主机清单

安装 Ansible 后会自动创建 /etc/ansible/hosts,在此文件中我们可以编辑 Ansible 主机或其客户端。我们还可以在家目录中创建自己的 Ansible 主机清单,

运行以下命令在我们的家目录中创建 Ansible 主机清单。

root@linuxtechi:~$ vi $HOME/hosts
[Web]
192.168.1.15

[DB]
192.168.1.17

保存并退出文件。

注意:在上面的主机文件中,我们也可以使用主机名或 FQDN,但为此我们必须确保 Ansible 主机可以通过主机名或者 FQDN 访问。

步骤 3:测试和使用默认的 Ansible 模块

Ansible 附带了许多可在 ansible 命令中使用的默认模块,示例如下所示。

语法:

# ansible -i <host_file> -m <module> <host>

这里:

  • -i ~/hosts:包含 Ansible 主机列表
  • -m:在之后指定 Ansible 模块,如 ping 和 shell
  • <host>:我们要运行 Ansible 模块的 Ansible 主机

使用 Ansible ping 模块验证 ping 连接,

root@linuxtechi:~$ sudo ansible -i ~/hosts -m ping all
root@linuxtechi:~$ sudo ansible -i ~/hosts -m ping Web
root@linuxtechi:~$ sudo ansible -i ~/hosts -m ping DB

命令输出如下所示:

Ansible-ping-module-examples

使用 shell 模块在 Ansible 主机上运行 shell 命令

语法:

ansible -i <hosts_file> -m shell -a <shell_commands>  <host>

例子:

root@linuxtechi:~$ sudo ansible -i ~/hosts -m shell -a "uptime" all
192.168.1.17 | CHANGED | rc=0 >>
 01:48:34 up  1:07,  3 users,  load average: 0.00, 0.01, 0.05

192.168.1.15 | CHANGED | rc=0 >>
 01:48:39 up  1:07,  3 users,  load average: 0.00, 0.01, 0.04

root@linuxtechi:~$
root@linuxtechi:~$ sudo ansible -i ~/hosts -m shell -a "uptime ; df -Th / ; uname -r" Web
192.168.1.15 | CHANGED | rc=0 >>
 01:52:03 up  1:11,  3 users,  load average: 0.12, 0.07, 0.06
Filesystem              Type  Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs    13G 1017M   12G   8% /
3.10.0-327.el7.x86_64

root@linuxtechi:~$

上面的命令输出表明我们已成功设置 Ansible 控制器节点。

让我们创建一个安装 nginx 的示例剧本,下面的剧本将在所有服务器上安装 nginx,这些服务器是 Web 主机组的一部分,但在这里,我的主机组下只有一台 centos 7 机器。

root@linuxtechi:~$ vi nginx.yaml
---
- hosts: Web
  tasks:
    - name: Install latest version of nginx on CentOS 7 Server
      yum: name=nginx state=latest
    - name: start nginx
      service:
          name: nginx
          state: started

现在使用以下命令执行剧本。

root@linuxtechi:~$ sudo ansible-playbook -i ~/hosts  nginx.yaml

上面命令的输出类似下面这样,

nginx-installation-playbook-debian10

这表明 Ansible 剧本成功执行了。

本文就是这些了,请分享你的反馈和评论。


via: https://www.linuxtechi.com/install-ansible-automation-tool-debian10/

作者:Pradeep Kumar 选题:lujun9972 译者:geekpi 校对:wxy

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

我使用 Oracle VirtualBox 来测试各种 Linux 和 Unix 发行版。到目前为止,我已经在 VirtualBox 中测试了上百个虚拟机。今天,我在我的 Ubuntu 18.04 桌面上启动了 Ubuntu 18.04 服务器版虚拟机,我收到了以下错误。

Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall virtualbox-dkms package and load the kernel module by executing

'modprobe vboxdrv'

as root.

where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT.

Ubuntu 中的 “Kernel driver not installed (rc=-1908)” 错误

我点击了 OK 关闭消息框,然后在后台看到了另一条消息。

Failed to open a session for the virtual machine Ubuntu 18.04 LTS Server.

The virtual machine 'Ubuntu 18.04 LTS Server' has terminated unexpectedly during startup with exit code 1 (0x1).

Result Code:
NS_ERROR_FAILURE (0x80004005)
Component:
MachineWrap
Interface:
IMachine {85cd948e-a71f-4289-281e-0ca7ad48cd89}

启动期间虚拟机意外终止,退出代码为 1(0x1)

我不知道该先做什么。我运行以下命令来检查是否有用。

$ sudo modprobe vboxdrv

我收到了这个错误:

modprobe: FATAL: Module vboxdrv not found in directory /lib/modules/5.0.0-23-generic

仔细阅读这两个错误消息后,我意识到我应该更新 Virtualbox 程序。

如果你在 Ubuntu 及其衍生版(如 Linux Mint)中遇到此错误,你只需使用以下命令重新安装或更新 virtualbox-dkms 包:

$ sudo apt install virtualbox-dkms

或者,最好更新整个系统:

$ sudo apt upgrade

错误消失了,我可以正常在 VirtualBox 中启动虚拟机了。


via: https://www.ostechnix.com/how-to-fix-kernel-driver-not-installed-rc-1908-virtualbox-error-in-ubuntu/

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

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

本新手教程解释了在 Ubuntu 和其他基于 Debian 的 Linux 发行版上安装 VirtualBox 的各种方法。

Oracle 公司的自由开源产品 VirtualBox 是一款出色的虚拟化工具,专门用于桌面操作系统。与另一款虚拟化工具 Linux 上的 VMWare Workstation 相比起来,我更喜欢它。

你可以使用 VirtualBox 等虚拟化软件在虚拟机中安装和使用其他操作系统。

例如,你可以在 Windows 上的 VirtualBox 中安装 Linux。同样地,你也可以用 VirtualBox 在 Linux 中安装 Windows

你也可以用 VirtualBox 在你当前的 Linux 系统中安装别的 Linux 发行版。事实上,这就是我用它的原因。如果我听说了一个不错的 Linux 发行版,我会在虚拟机上测试它,而不是安装在真实的系统上。当你想要在安装之前尝试一下别的发行版时,用虚拟机会很方便。

Linux installed inside Linux using VirtualBox

安装在 Ubuntu 18.04 内的 Ubuntu 18.10

在本新手教程中,我将向你展示在 Ubuntu 和其他基于 Debian 的 Linux 发行版上安装 VirtualBox 的各种方法。

在 Ubuntu 和基于 Debian 的 Linux 发行版上安装 VirtualBox

这里提出的安装方法也适用于其他基于 Debian 和 Ubuntu 的 Linux 发行版,如 Linux Mint、elementar OS 等。

方法 1:从 Ubuntu 仓库安装 VirtualBox

优点:安装简便

缺点:较旧版本

在 Ubuntu 上下载 VirtualBox 最简单的方法可能是从软件中心查找并下载。

VirtualBox in Ubuntu Software Center

VirtualBox 在 Ubuntu 软件中心提供

你也可以使用这条命令从命令行安装:

sudo apt install virtualbox

然而,如果在安装前检查软件包版本,你会看到 Ubuntu 仓库提供的 VirtualBox 版本已经很老了。

举个例子,在写下本教程时 VirtualBox 的最新版本是 6.0,但是在软件中心提供的是 5.2。这意味着你无法获得最新版 VirtualBox 中引入的新功能。

方法 2:使用 Oracle 网站上的 Deb 文件安装 VirtualBox

优点:安装简便,最新版本

缺点:不能更新

如果你想要在 Ubuntu 上使用 VirtualBox 的最新版本,最简单的方法就是使用 Deb 文件

Oracle 为 VirtiualBox 版本提供了开箱即用的二进制文件。如果查看其下载页面,你将看到为 Ubuntu 和其他发行版下载 deb 安装程序的选项。

VirtualBox Linux Download

你只需要下载 deb 文件并双击它即可安装。就是这么简单。

然而,这种方法的问题在于你不能自动更新到最新的 VirtualBox 版本。唯一的办法是移除现有版本,下载最新版本并再次安装。不太方便,是吧?

方法 3:用 Oracle 的仓库安装 VirtualBox

优点:自动更新

缺点:安装略微复杂

现在介绍的是命令行安装方法,它看起来可能比较复杂,但与前两种方法相比,它更具有优势。你将获得 VirtualBox 的最新版本,并且未来它还将自动更新到更新的版本。我想那就是你想要的。

要通过命令行安装 VirtualBox,请在你的仓库列表中添加 Oracle VirtualBox 的仓库。添加 GPG 密钥以便你的系统信任此仓库。现在,当你安装 VirtualBox 时,它会从 Oracle 仓库而不是 Ubuntu 仓库安装。如果发布了新版本,本地 VirtualBox 将跟随一起更新。让我们看看怎么做到这一点:

首先,添加仓库的密钥。你可以通过这一条命令下载和添加密钥:

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -

Mint 用户请注意:

下一步只适用于 Ubuntu。如果你使用的是 Linux Mint 或其他基于 Ubuntu 的发行版,请将命令行中的 $(lsb_release -cs) 替换成你当前版本所基于的 Ubuntu 版本。例如,Linux Mint 19 系列用户应该使用 bionic,Mint 18 系列用户应该使用 xenial,像这样:

sudo add-apt-repository “deb [arch=amd64] <http://download.virtualbox.org/virtualbox/debian> **bionic** contrib“`

现在用以下命令来将 Oracle VirtualBox 仓库添加到仓库列表中:

sudo add-apt-repository "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib"

如果你有读过我的文章检查 Ubuntu 版本,你大概知道 lsb_release -cs 将打印你的 Ubuntu 系统的代号。

:如果你看到 “add-apt-repository command not found” 错误,你需要下载 software-properties-common 包。

现在你已经添加了正确的仓库,请通过此仓库刷新可用包列表并安装 VirtualBox:

sudo apt update && sudo apt install virtualbox-6.0

提示:一个好方法是输入 sudo apt install virtualbox- 并点击 tab 键以查看可用于安装的各种 VirtualBox 版本,然后通过补全命令来选择其中一个版本。

Install VirtualBox via terminal

如何从 Ubuntu 中删除 VirtualBox

现在你已经学会了如何安装 VirtualBox,我还想和你提一下删除它的步骤。

如果你是从软件中心安装的,那么删除它最简单的方法是从软件中心下手。你只需要在已安装的应用程序列表中找到它,然后单击“删除”按钮。

另一种方式是使用命令行:

sudo apt remove virtualbox virtualbox-*

请注意,这不会删除你用 VirtualBox 安装的操作系统关联的虚拟机和文件。这并不是一件坏事,因为你可能希望以后或在其他系统中使用它们是安全的。

最后…

我希望你能在以上方法中选择一种安装 VirtualBox。我还将在另一篇文章中写到如何有效地使用 VirtualBox。目前,如果你有点子、建议或任何问题,请随时在下面发表评论。


via: https://itsfoss.com/install-virtualbox-ubuntu

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

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

这些资源将帮助你入门并熟练掌握 Python。

Python 是世界上最受欢迎的编程语言之一,它受到了全世界各地的开发者和创客的欢迎。大多数 Linux 和 MacOS 计算机都预装了某个版本的 Python,现在甚至一些 Windows 计算机供应商也开始安装 Python 了。

也许你尚未学会它,想学习但又不知道在哪里入门。这里的 12 个资源将帮助你入门并熟练掌握 Python。

课程、书籍、文章和文档

1、Python 软件基金会提供了出色的信息和文档,可帮助你迈上编码之旅。请务必查看 Python 入门指南。它将帮助你得到最新版本的 Python,并提供有关编辑器和开发环境的有用提示。该组织还有可以来进一步指导你的优秀文档

2、我的 Python 旅程始于海龟模块。我首先在 Bryson Payne 的《教你的孩子编码》中找到了关于 Python 和海龟的内容。这本书是一个很好的资源,购买这本书可以让你看到几十个示例程序,这将激发你的编程好奇心。Payne 博士还在 Udemy 上以相同的名称开设了一门便宜的课程。

3、Payne 博士的书激起了我的好奇心,我渴望了解更多。这时我发现了 Al Sweigart 的《用 Python 自动化无聊的东西》。你可以购买这本书,也可以使用它的在线版本,它与印刷版完全相同且可根据知识共享许可免费获得和分享。Al 的这本书让我学习到了 Python 的基础知识、函数、列表、字典和如何操作字符串等等。这是一本很棒的书,我已经购买了许多本捐赠给了当地图书馆。Al 还提供 Udemy 课程;使用他的网站上的优惠券代码,只需 10 美元即可参加。

4、Eric Matthes 撰写了《Python 速成》,这是由 No Starch Press 出版的 Python 的逐步介绍(如同上面的两本书)。Matthes 还有一个很棒的伴侣网站,其中包括了如何在你的计算机上设置 Python 以及一个用以简化学习曲线的速查表

5、Python for Everybody 是另一个很棒的 Python 学习资源。该网站可以免费访问 Charles Severance 的 Coursera 和 edX 认证课程的资料。该网站分为入门、课程和素材等部分,其中 17 个课程按从安装到数据可视化的主题进行分类组织。Severance(@drchuck on Twitter),是密歇根大学信息学院的临床教授。

6、Seth Kenlon,我们 Opensource.com 的 Python 大师,撰写了大量关于 Python 的文章。Seth 有很多很棒的文章,包括“用 JSON 保存和加载 Python 数据”,“用 Python 学习面向对象编程”,“在 Python 游戏中用 Pygame 放置平台”,等等。

在设备上使用 Python

7、最近我对 Circuit Playground Express 非常感兴趣,这是一个运行 CircuitPython 的设备,CircuitPython 是为微控制器设计的 Python 编程语言的子集。我发现 Circuit Playground Express 和 CircuitPython 是向学生介绍 Python(以及一般编程)的好方法。它的制造商 Adafruit 有一个很好的系列教程,可以让你快速掌握 CircuitPython。

8、BBC:Microbit 是另一种入门 Python 的好方法。你可以学习如何使用 MicroPython 对其进行编程,这是另一种用于编程微控制器的 Python 实现。

9、学习 Python 的文章如果没有提到树莓派单板计算机那是不完整的。一旦你有了舒适而强大的树莓派,你就可以在 Opensource.com 上找到成吨的使用它的灵感,包括“7 个值得探索的树莓派项目”,“在树莓派上复活 Amiga”,和“如何使用树莓派作为 VPN 服务器”。

10、许多学校为学生提供了 iOS 设备以支持他们的教育。在尝试帮助这些学校的老师和学生学习用 Python 编写代码时,我发现了 Trinket.io。Trinket 允许你在浏览器中编写和执行 Python 3 代码。 Trinket 的 Python 入门教程将向你展示如何在 iOS 设备上使用 Python。

播客

11、我喜欢在开车的时候听播客,我在 Kelly Paredes 和 Sean Tibor 的 Teaching Python 播客上找到了大量的信息。他们的内容很适合教育领域。

12、如果你正在寻找一些更通用的东西,我推荐 Michael Kennedy 的 Talk Python to Me 播客。它提供了有关 Python 及相关技术的最佳信息。

你学习 Python 最喜欢的资源是什么?请在评论中分享。

计算机编程可能是一个有趣的爱好,正如我以前在 Apple II 计算机上编程时所学到的……


via: https://opensource.com/article/19/8/dozen-ways-learn-python

作者:Don Watkins 选题:lujun9972 译者:wxy 校对:wxy

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

Sed 代表 流编辑器 Stream Editor ,常用于 Linux 中基本的文本处理。sed 命令是 Linux 中的重要命令之一,在文件处理方面有着重要作用。可用于删除或移动与给定模式匹配的特定行。

它还可以删除文件中的特定行,它能够从文件中删除表达式,文件可以通过指定分隔符(例如逗号、制表符或空格)进行标识。

本文列出了 15 个使用范例,它们可以帮助你掌握 sed 命令。

如果你能理解并且记住这些命令,在你需要使用 sed 时,这些命令就能派上用场,帮你节约很多时间。

注意:为了方便演示,我在执行 sed 命令时,不使用 -i 选项(因为这个选项会直接修改文件内容),被移除了行的文件内容将打印到 Linux 终端。

但是,如果你想在实际环境中从源文件中删除行,请在 sed 命令中使用 -i 选项。

演示之前,我创建了 sed-demo.txt 文件,并添加了以下内容和相应行号以便更好地理解。

# cat sed-demo.txt

1 Linux Operating System
2 Unix Operating System
3 RHEL
4 Red Hat
5 Fedora
6 Arch Linux
7 CentOS
8 Debian
9 Ubuntu
10 openSUSE

1) 如何删除文件的第一行?

使用以下语法删除文件首行。

N 表示文件中的第 N 行,d 选项在 sed 命令中用于删除一行。

语法:

sed 'Nd' file

使用以下 sed 命令删除 sed-demo.txt 中的第一行。

# sed '1d' sed-demo.txt

2 Unix Operating System
3 RHEL
4 Red Hat
5 Fedora
6 Arch Linux
7 CentOS
8 Debian
9 Ubuntu
10 openSUSE

2) 如何删除文件的最后一行?

使用以下语法删除文件最后一行。

$ 符号表示文件的最后一行。

使用以下 sed 命令删除 sed-demo.txt 中的最后一行。

# sed '$d' sed-demo.txt

1 Linux Operating System
2 Unix Operating System
3 RHEL
4 Red Hat
5 Fedora
6 Arch Linux
7 CentOS
8 Debian
9 Ubuntu

3) 如何删除指定行?

使用以下 sed 命令删除 sed-demo.txt 中的第 3 行。

# sed '3d' sed-demo.txt

1 Linux Operating System
2 Unix Operating System
4 Red Hat
5 Fedora
6 Arch Linux
7 CentOS
8 Debian
9 Ubuntu
10 openSUSE

4) 如何删除指定范围内的行?

使用以下 sed 命令删除 sed-demo.txt 中的第 5 到 7 行。

# sed '5,7d' sed-demo.txt

1 Linux Operating System
2 Unix Operating System
3 RHEL
4 Red Hat
8 Debian
9 Ubuntu
10 openSUSE

5) 如何删除多行内容?

sed 命令能够删除给定行的集合。

本例中,下面的 sed 命令删除了第 1 行、第 5 行、第 9 行和最后一行。

# sed '1d;5d;9d;$d' sed-demo.txt

2 Unix Operating System
3 RHEL
4 Red Hat
6 Arch Linux
7 CentOS
8 Debian

5a) 如何删除指定范围以外的行?

使用以下 sed 命令删除 sed-demo.txt 中第 3 到 6 行范围以外的所有行。

# sed '3,6!d' sed-demo.txt

3 RHEL
4 Red Hat
5 Fedora
6 Arch Linux

6) 如何删除空行?

使用以下 sed 命令删除 sed-demo.txt 中的空行。

# sed '/^$/d' sed-demo.txt

1 Linux Operating System
2 Unix Operating System
3 RHEL
4 Red Hat
5 Fedora
6 Arch Linux
7 CentOS
8 Debian
9 Ubuntu
10 openSUSE

7) 如何删除包含某个模式的行?

使用以下 sed 命令删除 sed-demo.txt 中匹配到 System 模式的行。

# sed '/System/d' sed-demo.txt

3 RHEL
4 Red Hat
5 Fedora
6 Arch Linux
7 CentOS
8 Debian
9 Ubuntu
10 openSUSE

8) 如何删除包含字符串集合中某个字符串的行?

使用以下 sed 命令删除 sed-demo.txt 中匹配到 SystemLinux 表达式的行。

# sed '/System\|Linux/d' sed-demo.txt

3 RHEL
4 Red Hat
5 Fedora
7 CentOS
8 Debian
9 Ubuntu
10 openSUSE

9) 如何删除以指定字符开头的行?

为了测试,我创建了 sed-demo-1.txt 文件,并添加了以下内容。

# cat sed-demo-1.txt

Linux Operating System
Unix Operating System
RHEL
Red Hat
Fedora
debian
ubuntu
Arch Linux - 1
2 - Manjaro
3 4 5 6

使用以下 sed 命令删除以 R 字符开头的所有行。

# sed '/^R/d' sed-demo-1.txt

Linux Operating System
Unix Operating System
Fedora
debian
ubuntu
Arch Linux - 1
2 - Manjaro
3 4 5 6

使用以下 sed 命令删除 R 或者 F 字符开头的所有行。

# sed '/^[RF]/d' sed-demo-1.txt

Linux Operating System
Unix Operating System
debian
ubuntu
Arch Linux - 1
2 - Manjaro
3 4 5 6

10) 如何删除以指定字符结尾的行?

使用以下 sed 命令删除 m 字符结尾的所有行。

# sed '/m$/d' sed-demo.txt

3 RHEL
4 Red Hat
5 Fedora
6 Arch Linux
7 CentOS
8 Debian
9 Ubuntu
10 openSUSE

使用以下 sed 命令删除 x 或者 m 字符结尾的所有行。

# sed '/[xm]$/d' sed-demo.txt

3 RHEL
4 Red Hat
5 Fedora
7 CentOS
8 Debian
9 Ubuntu
10 openSUSE

11) 如何删除所有大写字母开头的行?

使用以下 sed 命令删除所有大写字母开头的行。

# sed '/^[A-Z]/d' sed-demo-1.txt

debian
ubuntu
2 - Manjaro
3 4 5 6

12) 如何删除指定范围内匹配模式的行?

使用以下 sed 命令删除第 1 到 6 行中包含 Linux 表达式的行。

# sed '1,6{/Linux/d;}' sed-demo.txt

2 Unix Operating System
3 RHEL
4 Red Hat
5 Fedora
7 CentOS
8 Debian
9 Ubuntu
10 openSUSE

13) 如何删除匹配模式的行及其下一行?

使用以下 sed 命令删除包含 System 表达式的行以及它的下一行。

# sed '/System/{N;d;}' sed-demo.txt

3 RHEL
4 Red Hat
5 Fedora
6 Arch Linux
7 CentOS
8 Debian
9 Ubuntu
10 openSUSE

14) 如何删除包含数字的行?

使用以下 sed 命令删除所有包含数字的行。

# sed '/[0-9]/d' sed-demo-1.txt

Linux Operating System
Unix Operating System
RHEL
Red Hat
Fedora
debian
ubuntu

使用以下 sed 命令删除所有以数字开头的行。

# sed '/^[0-9]/d' sed-demo-1.txt

Linux Operating System
Unix Operating System
RHEL
Red Hat
Fedora
debian
ubuntu
Arch Linux - 1

使用以下 sed 命令删除所有以数字结尾的行。

# sed '/[0-9]$/d' sed-demo-1.txt

Linux Operating System
Unix Operating System
RHEL
Red Hat
Fedora
debian
ubuntu
2 - Manjaro

15) 如何删除包含字母的行?

使用以下 sed 命令删除所有包含字母的行。

# sed '/[A-Za-z]/d' sed-demo-1.txt

3 4 5 6

via: https://www.2daygeek.com/linux-remove-delete-lines-in-file-sed-command/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:hello-wn 校对:wxy

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

一旦一个新技术平台在积极发展和商业利益方面达到了一定程度的受欢迎程度,全球的主要公司和小型的初创企业都急于抓住这块蛋糕。在当时 Linux 就是这样的一个平台。一旦实现了其应用程序的普及,个人、公司和机构就开始对其表现出兴趣,到 2000 年,Linux 基金会就成立了。

Linux 基金会旨在通过赞助他们的开发团队来将 Linux 作为一个平台来标准化和发展。Linux 基金会是一个由软件和 IT 巨头(如微软、甲骨文、三星、思科、 IBM 、英特尔等)支持的非营利组织。这不包括为改进该平台而提供服务的数百名个人开发者。多年来,Linux 基金会已经在旗下开展了许多项目。Hyperledger 项目是迄今为止发展最快的项目。

在将技术推进至可用且有用的方面上,这种联合主导的开发具有很多优势。为大型项目提供开发标准、库和所有后端协议既昂贵又耗费资源,而且不会从中产生丝毫收入。因此,对于公司来说,通过支持这些组织来汇集他们的资源来开发常见的那些 “烦人” 部分是有很意义的,以及随后完成这些标准部分的工作以简单地即插即用和定制他们的产品。除了这种模型的经济性之外,这种合作努力还产生了标准,使其容易使用和集成到优秀的产品和服务中。

上述联盟模式,在曾经或当下的创新包括 WiFi(Wi-Fi 联盟)、移动电话等标准。

Hyperledger 项目(HLP)简介

Hyperledger 项目(HLP)于 2015 年 12 月由 Linux 基金会启动,目前是其孵化的增长最快的项目之一。它是一个 伞式组织 umbrella organization ,用于合作开发和推进基于区块链的分布式账本技术 (DLT) 的工具和标准。支持该项目的主要行业参与者包括 IBM、英特尔 和 SAP Ariba 。HLP 旨在为个人和公司创建框架,以便根据需要创建共享和封闭的区块链,以满足他们自己的需求。其设计原则是开发一个专注于隐私和未来可审计性的全球可部署、可扩展、强大的区块链平台。 1 同样要注意的是大多数提出的区块链及其框架。

开发目标和构造:即插即用

虽然面向企业的平台有以太坊联盟之类的产品,但根据定义,HLP 是面向企业的,并得到行业巨头的支持,他们在 HLP 旗下的许多模块中做出贡献并进一步发展。HLP 还孵化开发的周边项目,并这些创意项目推向公众。HLP 的成员贡献了他们自己的力量,例如 IBM 为如何协作开发贡献了他们的 Fabric 平台。该代码库由 IBM 在其项目组内部研发,并开源出来供所有成员使用。

这些过程使得 HLP 中的模块具有高度灵活的插件框架,这将支持企业环境中的快速开发和部署。此外,默认情况下,其他对比的平台是开放的 免许可链 permission-less blockchain 或是 公有链 public blockchain ,甚至可以将它们应用到特定应用当中。HLP 模块本身支持该功能。

有关公有链和私有链的差异和用例更多地涵盖在这篇比较文章当中。

根据该项目执行董事 Brian Behlendorf 的说法,Hyperledger 项目的使命有四个。

分别是:

  1. 创建企业级 DLT 框架和标准,任何人都可以移植以满足其特定的行业或个人需求。
  2. 创建一个强大的开源社区来帮助生态系统发展。
  3. 促进所述的生态系统的行业成员(如成员公司)的参与。
  4. 为 HLP 社区提供中立且无偏见的基础设施,以收集和分享相关的更新和发展。

可以在这里访问原始文档

HLP 的架构

HLP 由 12 个项目组成,这些项目被归类为独立的模块,每个项目通常都是结构化的,可以独立开发其模块的。在孵化之前,首先对它们的能力和活力进行研究。该组织的任何成员都可以提出附加建议。在项目孵化后,就会进行积极开发,然后才会推出。这些模块之间的互操作性具有很高的优先级,因此这些组之间的定期通信由社区维护。目前,这些项目中有 4 个被归类为活跃项目。被标为活跃意味着它们已经准备好使用,但还没有准备好发布主要版本。这 4 个模块可以说是推动区块链革命的最重要或相当基本的模块。稍后,我们将详细介绍各个模块及其功能。然而,Hyperledger Fabric 平台的简要描述,可以说是其中最受欢迎的。

Hyperledger Fabric

Hyperledger Fabric 是一个完全开源的、基于区块链的许可 (非公开) DLT 平台,设计时考虑了企业的使用。该平台提供了适合企业环境的功能和结构。它是高度模块化的,允许开发人员在不同的共识协议、链上代码协议(智能合约)或身份管理系统等中进行选择。这是一个基于区块链的许可平台,它利用身份管理系统,这意味着参与者将知道彼此在企业环境中的身份。Fabric 允许以各种主流编程语言 (包括 Java、Javascript、Go 等) 开发智能合约(“ 链码 chaincode ”,是 Hyperledger 团队使用的术语)。这使得机构和企业可以利用他们在该领域的现有人才,而无需雇佣或重新培训开发人员来开发他们自己的智能合约。与标准订单验证系统相比,Fabric 还使用 执行顺序验证 execute-order-validate 系统来处理智能合约,以提供更好的可靠性,这些系统由提供智能合约功能的其他平台使用。与标准订单验证系统相比,Fabric还使用执行顺序验证系统来处理智能合约,以提供更好的可靠性,这些系统由提供智能合约功能的其他平台使用。Fabric 的其他功能还有可插拔性能、身份管理系统、数据库管理系统、共识平台等,这些功能使它在竞争中保持领先地位。

结论

诸如 Hyperledger Fabric 平台这样的项目能够在主流用例中更快地采用区块链技术。Hyperledger 社区结构本身支持开放治理原则,并且由于所有项目都是作为开源平台引导的,因此这提高了团队在履行承诺时表现出来的安全性和责任感。

由于此类项目的主要应用涉及与企业合作及进一步开发平台和标准,因此 Hyperledger 项目目前在其他类似项目前面处于有利地位。


  1. E. Androulaki et al., “Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains,” 2018.

via: https://www.ostechnix.com/blockchain-2-0-an-introduction-to-hyperledger-project-hlp/

作者:ostechnix 选题:lujun9972 译者:zionfuo 校对:wxy

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