Merge remote-tracking branch 'LCTT/master'

This commit is contained in:
Xingyu Wang 2020-06-17 22:23:27 +08:00
commit fc0d006b21
3 changed files with 126 additions and 131 deletions

View File

@ -1,8 +1,8 @@
[#]: collector: (lujun9972) [#]: collector: (lujun9972)
[#]: translator: (wxy) [#]: translator: (wxy)
[#]: reviewer: ( ) [#]: reviewer: (wxy)
[#]: publisher: ( ) [#]: publisher: (wxy)
[#]: url: ( ) [#]: url: (https://linux.cn/article-12324-1.html)
[#]: subject: (Cockpit and the evolution of the Web User Interface) [#]: subject: (Cockpit and the evolution of the Web User Interface)
[#]: via: (https://fedoramagazine.org/cockpit-and-the-evolution-of-the-web-user-interface/) [#]: via: (https://fedoramagazine.org/cockpit-and-the-evolution-of-the-web-user-interface/)
[#]: author: (Shaun Assam https://fedoramagazine.org/author/sassam/) [#]: author: (Shaun Assam https://fedoramagazine.org/author/sassam/)
@ -14,13 +14,13 @@ Cockpit 及其网页用户界面的演变
3 年多以前Fedora 杂志发表了一篇题为《[Cockpit 概览][2]》的文章。从那时起Cockit 的界面有了一些引人注目的变化。今天的 Cockpit 更加简洁,更大的字体更好地利用了屏幕的空间。 3 年多以前Fedora 杂志发表了一篇题为《[Cockpit 概览][2]》的文章。从那时起Cockit 的界面有了一些引人注目的变化。今天的 Cockpit 更加简洁,更大的字体更好地利用了屏幕的空间。
本文将介绍用户界面的一些变化。还将探讨一些在网页界面中可用的通用工具,以简化那些单调的系统管理员任务。 本文将介绍它的用户界面的一些变化。还将探讨一些在网页界面中可用的通用工具,以简化那些单调的系统管理员任务。
### Cockpit 驾驶舱安装 ### Cockpit 驾驶舱安装
Cockpit 可以使用 `dnf install cockpit` 命令安装。这提供了一个最小的设置,提供了使用界面所需的基本工具。 Cockpit 可以使用 `dnf install cockpit` 命令安装。这提供了一个最小的设置,提供了使用界面所需的基本工具。
另一个选择是安装 “Headless Management” 组,这将安装用于扩展 Cockpit 可用性的附加包。它包括 NetworkManager、软件包、磁盘和 SELinux 管理的扩展。 另一个选择是安装 “Headless Management” 组,这将安装用于扩展 Cockpit 功能的附加包。它包括用于 NetworkManager、软件包、磁盘和 SELinux 管理的扩展。
运行以下命令,在启动时启用 Web 服务并打开防火墙端口: 运行以下命令,在启动时启用 Web 服务并打开防火墙端口:
@ -36,9 +36,9 @@ success
### 登录网页界面 ### 登录网页界面
要访问网页界面,打开你最喜欢的浏览器,在地址栏中输入服务器的域名或 IP然后输入服务端口9090。由于 Cockpit 使用 HTTPS安装过程中会创建一个自签证书来加密密码和其他敏感数据。你可以安全地接受这个证书或者向你的系统管理员或受信任的来源请求 CA 证书。 要访问网页界面,打开你最喜欢的浏览器,在地址栏中输入服务器的域名或 IP然后输入服务端口9090。由于 Cockpit 使用 HTTPS安装过程中会创建一个自签证书来加密密码和其他敏感数据。你可以安全地接受这个证书或者向你的系统管理员或受信任的来源请求 CA 证书。
一旦证书被接受,新改进的登录屏幕就会出现。长期使用的用户会注意到用户名和密码字段已被移到顶部。此外,凭证字段后面的白色背景会立即吸引用户的注意力。 一旦证书被接受,就会出现新改进的登录屏幕。长期使用的用户会注意到用户名和密码字段已被移到顶部。此外,凭证字段后面的白色背景会立即吸引用户的注意力。
![][3] ![][3]
@ -48,16 +48,15 @@ success
### 主屏幕视图 ### 主屏幕视图
一开始,我们就会得到常见系统信息的基本概述。这包括机器的品牌和型号、操作系统、系统是否是最新的,等等。 一开始,我们就会看到基本概述,带有常见的系统信息,这包括机器的品牌和型号、操作系统、系统是否是最新的,等等。
![][4] ![][4]
点击系统的品牌/型号会显示硬件信息,如 BIOS/固件。它还包括与 `lspci` 有关的组件详情。 点击系统的品牌/型号会显示硬件信息,如 BIOS/固件。它还包括与 `lspci` 中可以看到的组件的详情。
![][5] ![][5]
点击右边的任何一个选项都会显示该设备的详细信息。例如“CPU 核心百分比” 选项显示了用户和内核使用了多少 CPU 核心的详细信息。此外,“内存和交换” 图表显示了系统内存的使用量、缓存量和交换分区的活动量。“磁盘 I/O” 和 “网络流量” 图连到了 Cockpit 的 “存储和网络” 部分。这些主题将在接下来的一篇详细探讨系统工具的文章中重新探讨。 点击任何一个选项,右边都会显示该设备的详细信息。例如“CPU 核心百分比” 选项显示了用户和内核使用了多少 CPU 核心的详细信息。此外,“内存和交换” 图表显示了系统内存的使用量、缓存量和交换分区的活动量。“磁盘 I/O” 和 “网络流量” 图连到了 Cockpit 的 “存储和网络” 部分。这些内容将在接下来详细探讨系统工具的一篇文章中重新探讨。
#### SSH 密钥和认证 #### SSH 密钥和认证
@ -65,17 +64,17 @@ success
![][6] ![][6]
你也可以通过点击右上角的用户名,选择“验证”,添加自己的密钥。点击 “添加密钥”,可以在其他系统上验证机器。你也可以通过点击右侧的 “X” 按钮,撤销你在 Cockpit Web 服务中的权限。 你也可以通过点击右上角的用户名,选择“验证”,添加自己的密钥。点击 “添加密钥”,可以在其他系统上验证机器。你也可以通过点击右侧的 “X” 按钮,撤销你在 Cockpit Web 服务中的权限。
![][7] ![][7]
#### 更改主机名和加入域 #### 更改主机名和加入域
更改主机名称是在主页上一键解决的。单击当前显示的主机名称,并在“更改主机名称”框中输入新名称。最新的功能之一是提供一个 “别名” 的选项。 更改主机名可以在主页上一键解决。单击当前显示的主机名,并在“更改主机名”框中输入新名称。最新的功能之一是提供了一个 “简称” 的选项。
Cockpit 增加的另一个功能是可以连接到目录服务器。点击 “加入域”会出现一个弹窗要求提供域地址或名称、组织单位可选和域管理员的凭证。“Domain Membership” 组提供了加入 LDAP 服务器所需的所有包,包括 FreeIPA以及流行的 Active Directory。 Cockpit 增加的另一个功能是可以连接到目录服务器。点击 “加入域”会出现一个弹窗要求提供域地址或名称、组织单位可选和域管理员的凭证。“Domain Membership” 组提供了加入 LDAP 服务器所需的所有包,包括 FreeIPA以及流行的 Active Directory。
选择退出,请点击域名,然后点击 “离开域”。将会出现一个警告,解释一旦系统不再在域上将会发生的变化。要确认,点击红色的 “离开域” 按钮。 要退出,请点击域名,然后点击 “离开域”。将会出现一个警告,解释一旦系统不再在域上将会发生的变化。要确认,点击红色的 “离开域” 按钮。
![][8] ![][8]
@ -95,23 +94,23 @@ Cockpit 增加的另一个功能是可以连接到目录服务器。点击 “
#### 设置性能配置文件 #### 设置性能配置文件
如果安装了 `tuned``tuned-utils` 包,可以在主屏幕上更改性能配置文件。默认情况下,它被设置为推荐的配置文件。然而,如果服务器的用途需要更多的性能,我们可以从 Cockpit 更改配置文件以满足这些需求。 如果安装了 `tuned``tuned-utils` 包,可以在主屏幕上更改性能配置文件。默认情况下,它被设置为推荐的配置文件。然而,如果服务器的用途需要更多的性能,我们可以在 Cockpit 中更改配置文件以满足这些需求。
![][11] ![][11]
### 网页终端控制台 ### 网页终端控制台
一个 Linux 系统管理员的工具箱如果不能访问终端,将毫无用处。使得管理员可以对服务器进行微调,而不仅仅是 Cockpit 中的内容。随着主题的加入,管理员可以根据自己的喜好快速调整文字和背景颜色。 一个 Linux 系统管理员的工具箱如果不能访问终端,将毫无用处。终端使得管理员可以对服务器进行微调,而不仅仅是 Cockpit 中的内容。随着主题功能的加入,管理员可以根据自己的喜好快速调整文字和背景颜色。
另外,如果你错了 `exit`,点击右上角的 “重置” 按钮,会提供一个闪烁着光标的新屏幕。 另外,如果你错输入`exit` 命令,点击右上角的 “重置” 按钮,会提供一个闪烁着光标的新屏幕。
![][12] ![][12]
### 添加远程服务器和仪表板布局 ### 添加远程服务器和仪表板布局
“Headless Management” 组包括仪表盘模块(`cockpit-dashboard`)。它以实时图表的形式提供了 CPU、内存、网络和磁盘性能的概览。远程服务器也可以通过同一界面进行添加和管理。 “Headless Management” 组包括仪表盘模块(`cockpit-dashboard`)。它以实时图表的形式提供了 CPU、内存、网络和磁盘性能的概览。远程服务器也可以通过同一界面进行添加和管理。
例如,要在仪表盘中添加远程计算机,请单击 “+” 按钮。输入服务器的名称或 IP 地址,并选择你要的颜色。这有助于区分图中服务器的统计数据。要在服务器之间进行切换,请点击主机名称(如下面的屏幕动画所示)。要从列表中删除一个服务器,点击勾选标记图标,然后点击红色垃圾桶图标。下面的例子演示了 Cockpit 如何管理一台名为 `server02.local.lan` 的远程机器。 例如,要在仪表盘中添加远程计算机,请单击 “+” 按钮。输入服务器的名称或 IP 地址,并选择你要的颜色。这有助于你在图中区分服务器的统计数据。要在服务器之间进行切换,请点击主机名称(如下面的屏幕动画所示)。要从列表中删除一个服务器,点击勾选标记图标,然后点击红色垃圾桶图标。下面的例子演示了 Cockpit 如何管理一台名为 `server02.local.lan` 的远程机器。
![][13] ![][13]
@ -136,13 +135,12 @@ Fedora 仓库中也有一个名为 `cockpit-doc` 的软件包。这个软件包
### 结论 ### 结论
本文只涉及 Cockpit 中的一些主要功能。管理存储设备、网络、用户账户和软件控制将在下一篇文章中介绍。此外,可选的扩展,如 389 目录服务,以及用于处理 Fedora Silverblue 中的包的`cockpit-ostree` 模块。 本文只涉及 Cockpit 中的一些主要功能。管理存储设备、网络、用户账户和软件控制将在下一篇文章中介绍。此外,可选的扩展,如 389 目录服务,以及用于处理 Fedora Silverblue 中的软件包的`cockpit-ostree` 模块。
随着越来越多的用户采用 Cockpit选项会继续增加。这个界面对于想要一个轻量级界面来控制服务器的管理员来说是非常理想的。 随着越来越多的用户采用 Cockpit可选的功能会继续增加。这个界面对于想要一个轻量级界面来控制服务器的管理员来说是非常理想的。
你对 Cockpit 有什么看法?在下面的评论中分享你的经验和想法。 你对 Cockpit 有什么看法?在下面的评论中分享你的经验和想法。
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
via: https://fedoramagazine.org/cockpit-and-the-evolution-of-the-web-user-interface/ via: https://fedoramagazine.org/cockpit-and-the-evolution-of-the-web-user-interface/
@ -150,7 +148,7 @@ via: https://fedoramagazine.org/cockpit-and-the-evolution-of-the-web-user-interf
作者:[Shaun Assam][a] 作者:[Shaun Assam][a]
选题:[lujun9972][b] 选题:[lujun9972][b]
译者:[wxy](https://github.com/wxy) 译者:[wxy](https://github.com/wxy)
校对:[校对者ID](https://github.com/校对者ID) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,103 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-12323-1.html)
[#]: subject: (How to write functions in Bash)
[#]: via: (https://opensource.com/article/20/6/bash-functions)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
如何在 Bash 中编写函数
======
> 通过编写函数来减少代码的冗余和维护。
![](https://img.linux.net.cn/data/attachment/album/202006/17/125913hf1efce5c48cebrc.jpg)
在编程时,实际上是在定义要由计算机执行的<ruby>过程<rt>procedure</rt></ruby><ruby>例程<rt>routine</rt></ruby>。一个简单的类比是将计算机编程与烤面包进行比较:你一次列出了要组建工作环境的配料,然后列出了烤面包所必须采取的步骤。在编程和烘烤中,必须以不同的间隔重复执行某些步骤。例如,在烤面包中,这可能是酵母培养的过程:
```
STIR=100
SNOOZE=86400
function feed_culture {
  remove_from(pantry)
  add(flour, water)
  stir($STIR)
  sleep($SNOOZE)
}
```
然后,揉面和醒发面团:
```
KNEAD=600
SNOOZE=7200
function process_dough {
  remove_from(proofing_drawer)
  knead($KNEAD)
  return_to_drawer($SNOOZE)
}
```
在编程中,这些<ruby>子例程<rt>subroutines</rt></ruby>可以表示为<ruby>函数<rt>function</rt></ruby>。函数对程序员很重要,因为它们有助于减少代码中的冗余,从而减少了所需的维护量。例如,在以编程方式烤制面包的假想场景中,如果你需要更改面团醒发的用时,只要你之前使用函数,那么你只需更改一次用时,或使用变量(在示例代码中为 `SNOOZE`)或直接在处理面团的子程序中更改用时。这样可以节省你很多时间,因为你不必通过你的代码库遍历每个可能正在醒发的面团,更不用说担心错过一个。许多 bug 是由未更改的缺失的值或执行不正确的 `sed` 命令引起的,它们希望捕获所有可能而不必手动寻找。
在 [Bash][2] 中,无论是在编写的脚本或在独立的文件中,定义函数和使用它们一样简单。如果将函数保存到独立的文件中。那么可以将它 `source` 到脚本中,就像 `include` C 语言或 C++ 中的库或将模块 `import` 到 Python 中一样。要创建一个 Bash 函数,请使用关键字 `function`
```
function foo {
# code here
}
```
这是一个如何在函数中使用参数的例子(有些人为设计,因此可能会更简单):
```
#!/usr/bin/env bash
ARG=$1
function mimic {
  if [[ -z $ARG ]]; then
    ARG='world'
  fi
  echo "hello $ARG"
}
mimic $ARG
```
结果如下:
```
$ ./mimic
hello world
$ ./mimic everybody
hello everybody
```
请注意脚本的最后一行,它会执行该函数。对于编写脚本的新手来说,这是一个普遍的困惑点:函数不会自动执行。它们作为*潜在的*例程存在,直到被调用。
如果没有调用该函数,那么函数只是被定义,并且永远不会运行。
如果你刚接触 Bash请尝试在包含最后一行的情况下执行示例脚本一次然后在注释掉最后一行的情况下再次执行示例脚本。
### 使用函数
即使对于简单的脚本,函数也是很重要的编程概念。你越适应函数,在面对一个不仅需要声明性的命令行,还需要更多动态的复杂问题时,你就会越容易。将通用函数保存在单独的文件中还可以节省一些工作,因为它将帮助你建立常用的程序,以便你可以在项目间重用它们。看看你的脚本习惯,看是否适合使用函数。
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/6/bash-functions
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-window-focus.png?itok=g0xPm2kD (young woman working on a laptop)
[2]: https://opensource.com/resources/what-bash

View File

@ -1,106 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How to write functions in Bash)
[#]: via: (https://opensource.com/article/20/6/bash-functions)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
如何在 Bash 中编写函数
======
通过编写函数来减少代码的冗余和维护。
![woman on laptop sitting at the window][1]
在编程时实际上是在定义要由计算机执行的过程或_程序_。一个简单的类比是将计算机编程与烤面包进行比较你一次列出了要设置工作环境的配料然后列出了烤面包所必须采取的步骤。在编程和烘烤中必须以不同的间隔重复执行某些步骤。例如在烤面包中这可能是酵母培养的过程
```
STIR=100
SNOOZE=86400
function feed_culture {
  remove_from(pantry)
  add(flour, water)
  stir($STIR)
  sleep($SNOOZE)
}
```
然后,揉面和醒发面团:
```
KNEAD=600
SNOOZE=7200
function process_dough {
  remove_from(proofing_drawer)
  knead($KNEAD)
  return_to_drawer($SNOOZE)
}
```
在编程中这些子例程可以表示为_函数_。函数对程序员很重要因为它们有助于减少代码中的冗余从而减少了所需的维护量。例如在以编程方式烤制面包的假想场景中如果你需要更改面团醒发的时间只要你之前使用函数那么你只需更改一次时间或使用变量在示例代码中为 **SNOOZE**)或直接在处理面团的子程序中更改时间。这样可以节省你很多时间,因为你不必通过你的代码库遍历每个可能正在醒发的面团,更不用说担心错过一个。许多 bug 是由未更改的缺失值或执行不正确的 **`sed`** 命令引起的,它们希望捕获所有可能而不必手动寻找它们。
在 [Bash][2] 中,在编写的脚本或在独立的文件中定义函数都一样简单。如果将函数保存到独立的文件中。那么可以将它 `source` 到脚本中,就像 `include` C 语言或 C++ 中的库或将模块 `import` 到 Python 中一样。要创建一个 Bash 函数,请使用关键字 `function`
```
function foo {
# code here
}
```
这是一个如何在函数中使用参数的例子(有些人为设计,因此可能会更简单):
```
#!/usr/bin/env bash
ARG=$1
function mimic {
  if [[ -z $ARG ]]; then
    ARG='world'
  fi
  echo "hello $ARG"
}
mimic $ARG
```
结果如下:
```
$ ./mimic
hello world
$ ./mimic everybody
hello everybody
```
请注意脚本的最后一行它执行该函数。对于新手脚本编写人员和程序员来说这是一个普遍的困惑点函数不会自动执行。它们作为_潜在的_子程序存在直到被调用。
如果没有调用该函数,那么函数将仅被定义并且永远不会运行。
如果你刚接触 Bash请尝试在包含最后一行的情况下执行示例脚本一次然后在注释掉最后一行的情况下再次执行示例脚本。
### 使用函数
即使对于简单的脚本,函数也是很重要的编程概念。你越适应函数,在面对一个不仅需要声明性的命令行,还需要更多动态的复杂问题时,你就会越容易。将通用函数保存在单独的文件中还可以节省一些工作,因为它将帮助你建立常用的程序,以便你可以在项目间重用它们。看看你的脚本习惯,看是否有函数适合。
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/6/bash-functions
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-window-focus.png?itok=g0xPm2kD (young woman working on a laptop)
[2]: https://opensource.com/resources/what-bash