mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-02-06 23:50:16 +08:00
commit
926033b756
255
published/20201118 Secure your containers with SELinux.md
Normal file
255
published/20201118 Secure your containers with SELinux.md
Normal file
@ -0,0 +1,255 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (wxy)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14319-1.html)
|
||||
[#]: subject: (Secure your containers with SELinux)
|
||||
[#]: via: (https://opensource.com/article/20/11/selinux-containers)
|
||||
[#]: author: (Mike Calizo https://opensource.com/users/mcalizo)
|
||||
|
||||
用 SELinux 保护你的容器
|
||||
======
|
||||
|
||||
> 黑掉你的系统,了解为什么配置 SELinux 作为你的第一道容器防线是很重要的。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202203/02/093614t53cfb857841qzzk.jpg)
|
||||
|
||||
当有些事情在你的 Linux 环境中不能正常工作时,最简单的方法就是禁用<ruby>安全增强型 Linux<rt>Security-Enhanced Linux</rt></ruby>([SELinux][2])。而当它突然可以工作了,你就会忘记了禁用这件事 —— 这是一个常见的陷阱,意味着你已经失去了一个非常强大的安全工具。
|
||||
|
||||
随着容器、微服务和分布式架构的兴起,威胁也在上升。这是由于一个老的、众所周知的问题:速度。容器的优势在于它们能让你快速行动,做更多的事情,并迅速改变。这意味着容器的采用已经飞速发展,但它所提供的速度也意味着你会遇到更多的问题和漏洞。当你越来越快地做更多的事情时,这自然会发生。
|
||||
|
||||
### 如何减轻威胁
|
||||
|
||||
正如孙子所说,“不战而屈人之兵”。当涉及到容器的基本防御时,这句话真的很有共鸣。为了避免问题(战斗),确保你的容器主机是安全的,你可以使用 SELinux 作为你的第一道防线。
|
||||
|
||||
SELinux 是一个开源项目,于 2000 年发布,2003 年集成到 Linux 内核中。根据 [红帽公司的解释][3],“SELinux 是 [Linux 系统][4] 的一个安全架构,允许管理员对谁可以访问系统有更多的控制。它最初是由美国国家安全局(NSA)开发的,是使用 Linux 安全模块(LSM)对 [Linux 内核][5] 的一系列补丁。”
|
||||
|
||||
### 开始吧
|
||||
|
||||
当你想到容器时,首先想到的可能是 [Docker][6]。Docker 在 2013 年出现后掀起了一场容器采用革命。它是容器爆炸性流行的主要原因之一,但如上所述,大量采用增加了用户对安全风险的脆弱性。
|
||||
|
||||
在你用 SELinux 保护你的 Docker 容器之前,你需要设置一些东西。
|
||||
|
||||
#### 前置条件
|
||||
|
||||
* 安装并配置了 CentOS 8/RHEL 8。
|
||||
* 安装并配置好 Docker CE
|
||||
* 创建两个账户:root 和 非 root 用户(下面的例子中是 `mcalizo`)。
|
||||
|
||||
如果你需要在你的 RHEL 8/CentOS 8 服务器上设置 Docker,你可以按照这些 [说明][7]。如果你运行的是 RHEL 8,你需要在开始之前删除预装的 Podman 和 runc 包。
|
||||
|
||||
首先,确保 SELinux 被启用:
|
||||
|
||||
```
|
||||
[mcalizo@Rhel82 ~]$ sestatus
|
||||
SELinux status: enabled
|
||||
SELinuxfs mount: /sys/fs/selinux
|
||||
SELinux root directory: /etc/selinux
|
||||
Loaded policy name: targeted
|
||||
Current mode: enforcing
|
||||
Mode from config file: enforcing
|
||||
Policy MLS status: enabled
|
||||
Policy deny_unknown status: allowed
|
||||
Memory protection checking: actual (secure)
|
||||
Max kernel policy version: 31
|
||||
[mcalizo@Rhel82 ~]$
|
||||
```
|
||||
|
||||
然后,验证你的操作系统版本和 Docker 正在运行。以 root 身份登录并运行:
|
||||
|
||||
```
|
||||
[root@rhel82 ~]# cat /etc/redhat-release
|
||||
Red Hat Enterprise Linux release 8.2 (Ootpa)
|
||||
[root@rhel82 ~]#
|
||||
|
||||
[root@rhel82 ~]# systemctl status docker
|
||||
● docker.service - Docker Application Container Engine
|
||||
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
|
||||
Active: active (running) since Wed 2020-10-28 19:10:14 EDT; 15s ago
|
||||
Docs: https://docs.docker.com
|
||||
Main PID: 30768 (dockerd)
|
||||
Tasks: 8
|
||||
Memory: 39.0M
|
||||
CGroup: /system.slice/docker.service
|
||||
└─30768 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
|
||||
|
||||
Oct 28 19:10:13 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:13.889602941-04:00" level=error msg=">
|
||||
Oct 28 19:10:13 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:13.903413613-04:00" level=warning msg>
|
||||
Oct 28 19:10:13 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:13.903427451-04:00" level=warning msg>
|
||||
Oct 28 19:10:13 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:13.903538271-04:00" level=info msg="L>
|
||||
Oct 28 19:10:14 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:14.132060506-04:00" level=info msg="D>
|
||||
Oct 28 19:10:14 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:14.308943088-04:00" level=info msg="L>
|
||||
Oct 28 19:10:14 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:14.319438549-04:00" level=info msg="D>
|
||||
Oct 28 19:10:14 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:14.319570298-04:00" level=info msg="D>
|
||||
Oct 28 19:10:14 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:14.333419209-04:00" level=info msg="A>
|
||||
Oct 28 19:10:14 rhel82.home.labs.com systemd[1]: Started Docker Application Container Engine
|
||||
```
|
||||
|
||||
检查你的 Docker 版本:
|
||||
|
||||
```
|
||||
[root@rhel82 ~]# docker --version
|
||||
Docker version 19.03.13, build 4484c46d9d
|
||||
```
|
||||
|
||||
### 黑掉主机
|
||||
|
||||
了解一个问题的最好方法之一就是去体验它。因此,我将告诉你,如果你的安全设置不当,向 Docker 主机注入恶意代码是多么容易。
|
||||
|
||||
为了能够在 Docker 主机上做坏事,“恶意”的非 root 用户(本教程中为 `mcalizo`)必须是可以实例化 Docker 容器的组的成员。
|
||||
|
||||
首先,确认 `mcalizo` 用户属于哪个组:
|
||||
|
||||
```
|
||||
[root@Rhel82 ~]# groups mcalizo
|
||||
mcalizo : mcalizo
|
||||
```
|
||||
|
||||
输出显示,`mcalizo` 只属于它自己的组。这意味着 `mcalizo` 不能实例化 Docker 容器,如果它试图这样做,将会得到这个错误:
|
||||
|
||||
```
|
||||
[mcalizo@Rhel82 ~]$ docker run -it --rm centos:latest /bin/sh
|
||||
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
|
||||
See 'docker run --help'.
|
||||
```
|
||||
|
||||
要允许 `mcalizo` 实例化容器,将用户加入 `docker` 组:
|
||||
|
||||
```
|
||||
[root@Rhel82 ~]# usermod -G docker -a mcalizo
|
||||
[root@Rhel82 ~]# groups mcalizo
|
||||
mcalizo : mcalizo docker
|
||||
```
|
||||
|
||||
接下来,部署一个 `fedora:latest` 的容器,并登录到实例化的容器中去探索它:
|
||||
|
||||
```
|
||||
[mcalizo@Rhel82 ~]$ docker run -it --rm fedora:latest /bin/sh
|
||||
Unable to find image 'fedora:latest' locally
|
||||
latest: Pulling from library/fedora
|
||||
ee7e89337106: Pull complete
|
||||
Digest: sha256:b9ec86d36fca7b1d3de39cd7c258e8d90c377d312c21a7748071ce49069b8db4
|
||||
Status: Downloaded newer image for fedora:latest
|
||||
sh-5.0# cat /etc/redhat-release
|
||||
Fedora release 33 (Thirty Three)
|
||||
```
|
||||
|
||||
当你登录到新创建的容器时,你可以看到你是以 root 身份自动登录的:
|
||||
|
||||
```
|
||||
sh-5.0# whoami
|
||||
root
|
||||
sh-5.0#
|
||||
```
|
||||
|
||||
作为 `root` 用户,你可以在这个容器中做任何事情,这意味着你可以利用容器主机,做很多破坏。因为你可以实例化一个容器,即使你不属于主机的 sudoers 账户,你也可以对主机做一些事情。
|
||||
|
||||
退出你刚刚创建的容器,并创建一个新的容器来演示这个漏洞:
|
||||
|
||||
```
|
||||
[mcalizo@Rhel82 ~]$ docker run -it --rm -v /:/exploit fedora:latest /bin/bash
|
||||
[root@131043f2e306 /]#
|
||||
```
|
||||
|
||||
[-v 选项][8] 将 Docker 主机的 `/` 目录挂载到 `/exploit` 目录下的容器:
|
||||
|
||||
```
|
||||
[root@131043f2e306 /]#ls exploit/
|
||||
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
|
||||
```
|
||||
|
||||
因为它已被挂载,你可以在 Docker 主机上做任何事情。例如,你可以删除文件、编辑特定的配置来破害系统,甚至安装木马程序或其他恶意软件来窃取重要信息。
|
||||
|
||||
### 为什么会发生这种情况?
|
||||
|
||||
你可能想知道,既然 SELinux 处于强制模式,为什么会出现这种情况?深入挖掘 SELinux,看看哪里出了问题。
|
||||
|
||||
验证 SELinux 是否有一个 [Docker 上下文][9]:
|
||||
|
||||
```
|
||||
[mcalizo@Rhel82 ~]$ ps -eZ | grep docker
|
||||
system_u:system_r:container_runtime_t:s0 30768 ? 00:00:04 dockerd
|
||||
[mcalizo@Rhel82 ~]$
|
||||
```
|
||||
|
||||
正如预期的那样,它确实有。这意味着 SELinux 管理着 Docker 守护进程。检查 Docker 守护进程,看看 SELinux 是否默认启用:
|
||||
|
||||
```
|
||||
[mcalizo@Rhel82 ~]$ docker info | grep Security -A3
|
||||
Security Options:
|
||||
seccomp
|
||||
Profile: default
|
||||
Kernel Version: 4.18.0-193.el8.x86_64
|
||||
```
|
||||
|
||||
Docker 守护进程中的 SELinux 在默认情况下是 **不启用** 的。 这就是问题所在!要解决这个问题,按 [文档][10] 说明,通过更新或创建文件 `/etc/docker/daemon.json` 来启用 SELinux 来控制和管理 Docker(你必须有 root 权限才能这样做):
|
||||
|
||||
```
|
||||
[root@Rhel82 ~]# cat /etc/docker/daemon.json
|
||||
{
|
||||
"selinux-enabled": true
|
||||
}
|
||||
[root@Rhel82 ~]#
|
||||
[root@Rhel82 ~]# systemctl restart docker
|
||||
```
|
||||
|
||||
在创建或更新该文件并重启 Docker 后,你应该看到 Docker 守护进程中启用了 SELinux 支持:
|
||||
|
||||
```
|
||||
[root@Rhel82 ~]# systemctl restart docker
|
||||
[mcalizo@Rhel82 root]$ docker info | grep Security -A3
|
||||
Security Options:
|
||||
seccomp
|
||||
Profile: default
|
||||
selinux
|
||||
[mcalizo@Rhel82 root]$
|
||||
```
|
||||
|
||||
虽然仍然可以在你的 Docker 容器上挂载 Docker 主机中的特定文件系统,但不再允许更新或访问该文件:
|
||||
|
||||
```
|
||||
[mcalizo@Rhel82 root]$ docker run -it --rm -v /:/exploit fedora:latest /bin/bash
|
||||
[root@ecb5836da1f6 /]# touch /exploit/etc/shadow.sh
|
||||
touch: cannot touch '/exploit/etc/shadow.sh': Permission denied
|
||||
[root@ecb5836da1f6 /]#
|
||||
```
|
||||
|
||||
### 了解更多
|
||||
|
||||
你在容器世界中的第一道防线取决于你对容器主机的操作系统的设置有多强。有许多方法可以实现 Linux 的安全性,包括市场上可供选择的方案,以增强你的安全态势。
|
||||
|
||||
SELinux 是一个额外的安全层,默认情况下内置于 [Linux 发行版][11] 中。为了借助它保护你的系统不被破坏,请确保 SELinux 保持开启状态。
|
||||
|
||||
如果你想了解更多,请参阅:
|
||||
|
||||
* [如何在 CentOS 8 / RH 上安装 Docker CE][7]
|
||||
* [Docker 安全速查表][12]
|
||||
* [dockerd 文档][10]
|
||||
* [卷的使用文档][8]
|
||||
* [什么是 SELinux?][3]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/11/selinux-containers
|
||||
|
||||
作者:[Mike Calizo][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/mcalizo
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/EDU_UnspokenBlockers_1110_A.png?itok=x8A9mqVA (Three closed doors)
|
||||
[2]: https://en.wikipedia.org/wiki/Security-Enhanced_Linux
|
||||
[3]: https://www.redhat.com/en/topics/linux/what-is-selinux
|
||||
[4]: https://www.redhat.com/en/topics/linux/what-is-linux
|
||||
[5]: https://www.redhat.com/en/topics/linux/what-is-the-linux-kernel
|
||||
[6]: https://opensource.com/resources/what-docker
|
||||
[7]: https://www.linuxtechi.com/install-docker-ce-centos-8-rhel-8/
|
||||
[8]: https://docs.docker.com/storage/volumes/
|
||||
[9]: https://docs.docker.com/engine/reference/commandline/context/
|
||||
[10]: https://docs.docker.com/engine/reference/commandline/dockerd/
|
||||
[11]: https://www.redhat.com/en/topics/linux/whats-the-best-linux-distro-for-you
|
||||
[12]: https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html
|
104
published/20210215 Why everyone should try using Linux.md
Normal file
104
published/20210215 Why everyone should try using Linux.md
Normal file
@ -0,0 +1,104 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (sthwhl)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14334-1.html)
|
||||
[#]: subject: (Why everyone should try using Linux)
|
||||
[#]: via: (https://opensource.com/article/21/2/try-linux)
|
||||
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
|
||||
|
||||
为什么每个人都可以试试 Linux
|
||||
======
|
||||
|
||||
> 如果你对 Linux 有着充满好奇,那开源社区可以让你轻松上手 Linux。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202203/07/091531g2rex2ne073xeler.jpg)
|
||||
|
||||
如今,人们有更多的理由喜欢 Linux。在这里,我会分享使用 Linux 的 21 个不同的理由。我们来讨论讨论,为什么每个人都可以尝试一下 Linux。
|
||||
|
||||
Linux 对外行人来说,好像是一个神秘的东西。每当人们说起 Linux,就觉得它是计算机管理员或者系统管理员使用的,但也在讨论在笔记本电脑和手机上使用 Linux。技术网站上列出了 [你需要知道][2] 的 [十大 Linux 命令][3],但也有很多人在讨论 [Linux 桌面(不止一个)是多么令人激动][4]。
|
||||
|
||||
那么, Linux 到底是干嘛的呢?
|
||||
|
||||
Linux 对可用性的支持是它众多重要特性之一。如果你对 Linux 有着充满好奇,那开源社区可以让你轻松上手 Linux。
|
||||
|
||||
### 先尝试 Linux 应用
|
||||
|
||||
无论是从 Windows 换到 Linux、还是在 Windows 和 Mac 之间横跳,亦或是从 Mac 换到 Linux,要想改变一个人的计算机操作系统的使用习惯是一件很难的事。虽然这件事很少会去讨论,不过现在的电脑是一个比较个性化的东西,每个人都习惯于自己电脑当前的使用习惯,他们往往不愿意去做太大的变化。对我来说,就算在工作电脑跟个人电脑中来回切换(两者都运行相同的操作系统),也需要我调整我的心理和肌肉习惯,仅仅是因为两个电脑针对不同的活动场景进行了优化。尽管我被附近的人称为“很了解计算机的家伙”(,我也这么认为)。但如果我不得不更换我常用的操作系统,我会觉得自己的生产力跟舒适感将在一两周内直线下降。不过这还是比较表层的,虽然我知道怎么用其他的操作系统,但是我需要时间去形成新的直觉跟习惯,需要记住在新系统中,一些不起眼的配置选项的位置,还得知道要怎么使用新的功能。
|
||||
|
||||
出于这个原因,我经常告诉那些对 Linux 感到新奇的人,学习 Linux 的第一步就是要去使用 Linux 的应用。实际上,Linux 上专用的应用程序不多,主要是因为 Linux 的大多数应用程序是开源的,因此热衷于在所有平台之间移植。在 Linux 上的很多应用程序,可以在你目前的非 Linux 的平台上去尝试。把替换你默认的应用程序作为一个目标,不管是出于习惯还是方便,都要用开源的等价物。
|
||||
|
||||
### 应用替换
|
||||
|
||||
这个练习的目的是通过你最终要运行的应用软件,来实现向 Linux 的软过渡。一旦你习惯了一套新的应用程序,那么在 Linux 系统上,除了系统设置和文件管理外,就没有其他什么要适应的了。
|
||||
|
||||
如果你还不确定哪个是自己常用的应用,只需看看你的最近使用的应用程序列表(如果你的系统上没有最近使用应用的列表,那还等啥,赶紧换成 Linux 系统吧)。一旦你确定了必须使用的应用程序,可以看看我们的 [应用替代方案][5] 页面,了解许多被视为与流行的专有应用程序等效的常用开源应用程序。
|
||||
|
||||
### 获取 Linux
|
||||
|
||||
不是所有的开源软件都能移植到其他平台,并从在 Linux 上运行而受益。如果你想最终切换到 Linux,那就得完成这个过渡。幸运的是,要安装 Linux 就像下载它一样简单,几乎就像是另一个开源程序一样。
|
||||
|
||||
通常,Linux 的安装镜像提供了实时模式跟安装模式两种模式,这意味着你可以从 Linux 介质启动,并且在实时模式下运行使用,而无需将系统安装到计算机。这是了解操作系统的好方法,但因为只是一种临时体验,所以启动后不会保留数据。但是,有些发行版,如 [Porteus Linux][6],是专门为在 USB 上运行而设计的,这样你的个人数据就能保存。我在钥匙串上挂了一个 Porteus 的 U 盘,所以我无论在哪里,我都有一个可以启动的Linux 系统。
|
||||
|
||||
![Porteus Live Linux 发行版本][7]
|
||||
|
||||
### “最好的” Linux
|
||||
|
||||
一旦你决定开始安装 Linux 系统,你会发现有很多 Linux 发行版都是免费的。如果你之前用的操作系统版本只有一两个选择(例如,家庭版或商业版),那么你会对 Linux 操作系统有这么多发行版感到困惑。不过,实际情况没这么复杂。Linux 就是 Linux,它的下载和安装的不同“流派”没有什么太大的不同。像 [Fedora][8]、 [Debian][9]、[Linux Mint][10] 和 [Elementary][11] 这些大牌的系统厂商都提供了同样的体验,只是在重点略有不同。
|
||||
|
||||
* Fedora 以软件更新迭代快而出名
|
||||
* Linux Mint 可以轻松安装缺失的驱动程序
|
||||
* Debian 因能提供长期的支持而受欢迎,因而更新是相对缓慢,但是可靠性很高
|
||||
* Elementary 提供了精美的桌面体验和几个定制的特殊应用程序
|
||||
|
||||
总而言之,所谓最好的“Linux 系统”,即是最适合你的 Linux 系统。而最适合你的 Linux,就是,在你尝试过后,发现你所有的计算机功能仍然能按预期工作的 Linux。
|
||||
|
||||
### 获取驱动程序
|
||||
|
||||
大多数的驱动程序已经被捆绑在 Linux 的内核中了(或者作为内核模块),特别是在使用一到两年前的计算机零件和外围设备时常常如此。对于已经上市一段时间的设备,Linux 程序员有机会去开发驱动程序或者将公司的驱动程序集成到系统里。我曾不止一次让人惊讶,只需将 Wacom 图形输入板、游戏控制器、打印机或扫描仪连接到我的 Linux 计算机中,不需要下载安装驱动程序,而且几乎不用配置,可以立即使用。
|
||||
|
||||
专有操作系统在处理设备驱动程序方面有两种策略。要么是限制用户在操作系统中使用的设备,要么是付费给公司,让他们编写驱动程序并与设备一起提供。第一种方法有种让人不适的限制性,但是大多数人(可悲的)习惯了某些设备只能在某些平台上运行的想法。而后一种方法,被认为是一种奢侈,但在实践中,这种方法太过于依赖程序员。旧货店有很多计算机外围设备,虽然它们设备状况良好,但却基本上报废了。因为设备制造商已经不再维护此设备在现代系统运行所需要的驱动程序了。
|
||||
|
||||
对于 Linux 来说,驱动程序要么由制造设备的厂商来开发,要么是由 Linux 的程序员来开发。这就可能会导致,某些驱动程序集成到操作系统的时间会被延迟(例如,新的设备可能要在发布后六个月才能在 Linux 系统上运行),但它有一个明显的优势,即长期支持。
|
||||
|
||||
如果你发现有一个驱动程序还没有进入发行版,那你可以等几个月再试一次,有可能是驱动程序已经集成到了系统的镜像里了,或者可以到不同的发行版中找找有没有你要的驱动程序。
|
||||
|
||||
### 为 Linux 付费
|
||||
|
||||
通过购买预装 Linux 的 PC 或者经过 Linux 认证的 PC,可以避免所有的选择和关于兼容性的担忧。一些供应商提供预装 Linux 的计算机,如所有的 [System76][12] 和部分 [Lenovo][13] 型号。此外,所有的 Lenovo 型号都有 [Linux 兼容性认证][14]。
|
||||
|
||||
这是迄今为止尝试使用 Linux 最简单的方法。
|
||||
|
||||
### 迈向 Linux
|
||||
|
||||
这是一个挑战,浏览自己电脑上安装的每个应用程序,并找到潜在的对应开源替代程序。选择一个你经常使用但不是每天都用的应用程序,在下次要用的时候换成开源的应用程序。花点时间学习新的应用程序,直到能够将它作为你的新的默认程序,或者直到你确定需要尝试一个新的选择。
|
||||
|
||||
随着你使用的开源产品越多,你就越准备好进入激动人心的 Linux 世界。最后,你会用上 Linux 桌面还有你最喜欢的开源应用程序。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/2/try-linux
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[sthwhl](https://github.com/sthwhl)
|
||||
校对:[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/OSDC_women_computing_3.png?itok=qw2A18BM (Woman sitting in front of her computer)
|
||||
[2]: https://opensource.com/article/19/12/linux-commands
|
||||
[3]: https://opensource.com/article/18/4/10-commands-new-linux-users
|
||||
[4]: https://opensource.com/article/20/5/linux-desktops
|
||||
[5]: https://opensource.com/alternatives
|
||||
[6]: http://porteus.org
|
||||
[7]: https://opensource.com/sites/default/files/porteus5.png
|
||||
[8]: http://getfedora.org
|
||||
[9]: http://debian.org
|
||||
[10]: http://linuxmint.com
|
||||
[11]: http://elementary.io
|
||||
[12]: http://system76.com
|
||||
[13]: http://lenovo.com
|
||||
[14]: https://forums.lenovo.com/t5/Linux-Operating-Systems/ct-p/lx_en
|
202
published/202112/20190604 Create a CentOS homelab in an hour.md
Normal file
202
published/202112/20190604 Create a CentOS homelab in an hour.md
Normal file
@ -0,0 +1,202 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (JaphiaChen)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14130-1.html)
|
||||
[#]: subject: (Create a CentOS homelab in an hour)
|
||||
[#]: via: (https://opensource.com/article/19/6/create-centos-homelab-hour)
|
||||
[#]: author: (Bob Murphy https://opensource.com/users/murph)
|
||||
|
||||
一个小时内创建一个 CentOS 家庭实验室
|
||||
======
|
||||
|
||||
> 用一个带有虚拟化软件的系统(CentOS ISO),花费一个小时左右来设置一套自给自足的基本 Linux 服务器。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/30/093738krqqc3c5mc35lu36.jpg)
|
||||
|
||||
当学习新的 Linux 技能时(或像我一样学习 Linux 认证),在笔记本电脑上有一些可用的虚拟机(VM)是很有帮助的,这样你就可以在上面学习。
|
||||
|
||||
但是,如果在没有良好互联网连接的地方,你却想在一个 Web 服务器上工作,该怎么办? 想要使用没有安装过的其他软件,该怎么办? 如果需要从发行版的存储库中下载它,那么你可能会碰壁。只要做一点准备,你就可以设置一个 [家庭实验室][2],你就在任何地方安装所需的任何东西,无论是否有网络连接。
|
||||
|
||||
要求如下:
|
||||
|
||||
* 一个你打算使用的已下载的 Linux 发行版(例如,CentOS、Red Hat 等)ISO 文件
|
||||
* 一台具有虚拟化功能的主机。这里使用带有 [KVM][4] 和 [virt-manager][5] 的 [Fedora][3],但其它 Linux 也可以类似工作。你甚至可以使用 Windows 或 Mac 进行虚拟化,但在实现方面存在一些差异
|
||||
* 大约一个小时
|
||||
|
||||
### 1、为存储主机创建一个虚拟机
|
||||
|
||||
使用 `virt-manager` 创建一个中等规格的虚拟机:1GB RAM、一个 CPU 和 16GB 磁盘空间就足够。
|
||||
|
||||
在虚拟机上安装 [CentOS 7][6]。
|
||||
|
||||
![Installing a CentOS homelab][7]
|
||||
|
||||
选择你的语言并继续。
|
||||
|
||||
单击 “<ruby>安装位置<rt>Installation Destination</rt></ruby>”,选择本地磁盘,勾选 “<ruby>自动配置分区<rt>Automatically Configure Partitioning</rt></ruby>” 复选框,然后单击左上角的 “<ruby>完成<rt>Done</rt></ruby>”。
|
||||
|
||||
在 “<ruby>软件选择<rt>Software Selection</rt></ruby>” 下,选中 “<ruby>基础设施服务器<rt>Infrastructure Server</rt></ruby>” ,选中 “<ruby>FTP 服务器<rt>FTP Server</rt></ruby>” 复选框,然后单击 “<ruby>完成<rt>Done</rt></ruby>”。
|
||||
|
||||
![Installing a CentOS homelab][8]
|
||||
|
||||
选择 “<ruby>网络和主机名<rt>Network and Host Name</rt></ruby>”,启用右上方的 “<ruby>以太网<rt>Ethernet</rt></ruby>” ,然后单击左上角的 “<ruby>完成<rt>Done</rt></ruby>”。
|
||||
|
||||
单击 “<ruby>开始安装<rt>Begin Installation</rt></ruby>” 开始安装操作系统。
|
||||
|
||||
在安装时务必设置一个 root 密码,就可以创建一个带有密码的用户。
|
||||
|
||||
### 2、启动 FTP 服务
|
||||
|
||||
下一步是启动并设置 FTP 服务以运行并允许它通过防火墙。
|
||||
|
||||
用 root 密码登录,然后启动 FTP 服务器:
|
||||
|
||||
```
|
||||
systemctl start vsftpd
|
||||
```
|
||||
|
||||
允许它在每次启动时都能工作:
|
||||
|
||||
```
|
||||
systemctl enable vsftpd
|
||||
```
|
||||
|
||||
设置防火墙允许通过的端口:
|
||||
|
||||
```
|
||||
firewall-cmd --add-service=ftp --perm
|
||||
```
|
||||
|
||||
立即启用此更改:
|
||||
|
||||
```
|
||||
firewall-cmd --reload
|
||||
```
|
||||
|
||||
获取你的 IP 地址:
|
||||
|
||||
```
|
||||
ip a
|
||||
```
|
||||
|
||||
(可能是 `eth0`),在之后会用到。
|
||||
|
||||
### 3、复制本地存储库中的文件
|
||||
|
||||
通过虚拟化软件将安装 CD 挂载到虚拟机。
|
||||
|
||||
创建待挂载光盘的临时目录:
|
||||
|
||||
```
|
||||
mkdir /root/temp
|
||||
```
|
||||
|
||||
挂载安装 CD:
|
||||
|
||||
```
|
||||
mount /dev/cdrom /root/temp
|
||||
```
|
||||
|
||||
将所有文件复制到 FTP 服务器目录下:
|
||||
|
||||
```
|
||||
rsync -avhP /root/temp/ /var/ftp/pub/
|
||||
```
|
||||
|
||||
### 4、将服务器指向本地存储库
|
||||
|
||||
基于 Red hat 的系统使用以 `repo` 结尾的文件来确定从哪里获得软件更新和新的软件。这些文件在以下路径
|
||||
|
||||
```
|
||||
cd /etc/yum.repos.d
|
||||
```
|
||||
|
||||
你需要摆脱那些使你的服务器在互联网上寻找 CentOS 存储库的存储库文件。可以把它们复制到根目录下保存起来:
|
||||
|
||||
```
|
||||
mv * ~
|
||||
```
|
||||
|
||||
然后创建一个新的存储库文件来指向你的服务器。使用常用的文本编辑器创建一个名为 `network.repo` 文件,输入以下内容(将 `<your IP>` 替换为在步骤 2 中获得的 IP 地址),然后保存:
|
||||
|
||||
```
|
||||
[network]
|
||||
name=network
|
||||
baseurl=ftp://192.168.122.<your ip>/pub
|
||||
gpgcheck=0
|
||||
```
|
||||
|
||||
完成后,可以用下面的命令来测试:
|
||||
|
||||
```
|
||||
yum clean all; yum install ftp
|
||||
```
|
||||
|
||||
如果 FTP 客户端按照预期从 “network” 存储库安装,那么本地仓库就已经设置好了!
|
||||
|
||||
![Installing a CentOS homelab][9]
|
||||
|
||||
### 5、使用你设置的存储库安装一个新的虚拟机
|
||||
|
||||
回到虚拟机管理器,并创建另一个虚拟机。但这一次,选择 “<ruby>网络安装<rt>Network Install</rt></ruby>”, URL 为:
|
||||
|
||||
```
|
||||
ftp://192.168.122.<your IP>/pub
|
||||
```
|
||||
|
||||
如果你使用的是不同的宿主机操作系统或虚拟管理器,像前面一样安装虚拟机,并进行下一步。
|
||||
|
||||
### 6、将新的虚拟机设置为使用现有的“network”存储库
|
||||
|
||||
你可以从现有服务器复制存储库文件到这里使用。
|
||||
|
||||
和第一个服务器示例一样,输入:
|
||||
|
||||
```
|
||||
cd /etc/yum.repos.d
|
||||
mv * ~
|
||||
```
|
||||
|
||||
然后:
|
||||
|
||||
```
|
||||
scp root@192.168.122.<your IP>:/etc/yum.repos.d/network.repo /etc/yum.repos.d
|
||||
```
|
||||
|
||||
现在可以使用新的虚拟机并从本地存储库获取所有软件了。
|
||||
|
||||
再测试一遍:
|
||||
|
||||
```
|
||||
yum clean all; yum install screen
|
||||
```
|
||||
|
||||
这将从本地存储服务器安装软件。
|
||||
|
||||
这种设置,让你能够脱离网络安装软件,创建一个更可靠的环境,扩展你的技能。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/19/6/create-centos-homelab-hour
|
||||
|
||||
作者:[Bob Murphy][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[JaphiaChen](https://github.com/JaphiaChen)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/murph
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/metrics_data_dashboard_system_computer_analytics.png?itok=oxAeIEI- (metrics and data shown on a computer screen)
|
||||
[2]: https://opensource.com/article/19/3/home-lab
|
||||
[3]: https://getfedora.org/
|
||||
[4]: https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine
|
||||
[5]: https://virt-manager.org/
|
||||
[6]: https://www.centos.org/download/
|
||||
[7]: https://opensource.com/sites/default/files/uploads/homelab-3b_0.png (Installing a CentOS homelab)
|
||||
[8]: https://opensource.com/sites/default/files/uploads/homelab-5b.png (Installing a CentOS homelab)
|
||||
[9]: https://opensource.com/sites/default/files/uploads/homelab-14b.png (Installing a CentOS homelab)
|
||||
[10]: https://opensource.com/article/17/3/introduction-gnu-screen
|
||||
[11]: https://southeastlinuxfest.org/
|
@ -1,8 +1,8 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (Starryi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14107-1.html)
|
||||
[#]: subject: (Getting started with shaders: signed distance functions!)
|
||||
[#]: via: (https://jvns.ca/blog/2020/03/15/writing-shaders-with-signed-distance-functions/)
|
||||
[#]: author: (Julia Evans https://jvns.ca/)
|
||||
@ -10,13 +10,15 @@
|
||||
着色器入门:符号距离函数!
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/22/162653fn58ajqa6d65e8f5.jpg)
|
||||
|
||||
大家好!不久前我学会了如何使用着色器制作有趣的闪亮旋转八面体:
|
||||
|
||||
![][1]
|
||||
|
||||
我的着色器能力仍然非常基础,但事实证明制作这个有趣的旋转八面体比我想象中要容易得多(从其他人那里复制了很多代码片段!)。
|
||||
|
||||
我在做这件事时, 从一个非常有趣的叫做[符号距离函数教程:盒子和气球][2]的教程中学到了“符号距离函数”的重要想法。
|
||||
我在做这件事时, 从一个非常有趣的叫做 [符号距离函数教程:盒子和气球][2] 的教程中学到了“符号距离函数”的重要思路。
|
||||
|
||||
在本文中,我将介绍我用来学习编写简单着色器的步骤,并努力让你们相信着色器并不难入门!
|
||||
|
||||
@ -29,13 +31,13 @@
|
||||
|
||||
### 步骤一:我的第一个着色器
|
||||
|
||||
我知道你可以在 shadertoy 上制作着色器,所以我去了<https://www.shadertoy.com/new>。它们提供了一个默认着色器,如下图所示:
|
||||
我知道你可以在 shadertoy 上制作着色器,所以我去了 <https://www.shadertoy.com/new>。它们提供了一个默认着色器,如下图所示:
|
||||
|
||||
![][3]
|
||||
|
||||
代码如下:
|
||||
|
||||
```cpp
|
||||
```
|
||||
void mainImage( out vec4 fragColor, in vec2 fragCoord )
|
||||
{
|
||||
// 规范像素坐标 (从 0 到 1)
|
||||
@ -51,11 +53,11 @@ void mainImage( out vec4 fragColor, in vec2 fragCoord )
|
||||
|
||||
虽然还没有做什么令人兴奋的事情,但它已经教会了我着色器程序的基本结构!
|
||||
|
||||
### 想法:将一对坐标(和时间)映射到一个颜色
|
||||
### 思路:将一对坐标(和时间)映射到一个颜色
|
||||
|
||||
这里的想法是获得一对坐标作为输入(`fragCoord`),你需要输出一个RGBA向量作为此坐标的颜色。该函数也可以使用当前时间(`iTime`),图像从而可以随时间变化。
|
||||
这里的思路是获得一对坐标作为输入(`fragCoord`),你需要输出一个 RGBA 向量作为此坐标的颜色。该函数也可以使用当前时间(`iTime`),图像从而可以随时间变化。
|
||||
|
||||
这种编程模型(将一对坐标和时间映射到其中)的巧妙之处在于,它非常容易并行化。我对GPU了解不多,但我的理解是,这种任务(一次执行10000个微不足道的可并行计算)正是GPU擅长的事情。
|
||||
这种编程模型(将一对坐标和时间映射到其中)的巧妙之处在于,它非常容易并行化。我对 GPU 了解不多,但我的理解是,这种任务(一次执行 10000 个微不足道的可并行计算)正是 GPU 擅长的事情。
|
||||
|
||||
### 步骤二:使用 `shadertoy-render` 加快开发迭代
|
||||
|
||||
@ -63,7 +65,7 @@ void mainImage( out vec4 fragColor, in vec2 fragCoord )
|
||||
|
||||
我找到了一个名为 [shadertoy-render][4] 命令行工具,它会在每次保存时实时查看文件并更新动画。现在我可以运行:
|
||||
|
||||
```bash
|
||||
```
|
||||
shadertoy-render.py circle.glsl
|
||||
```
|
||||
|
||||
@ -71,15 +73,15 @@ shadertoy-render.py circle.glsl
|
||||
|
||||
### 步骤三:画一个圆圈
|
||||
|
||||
接下来我想——我擅长数学!我可以用一些基本的三角学来画一个会弹跳的彩虹圈!
|
||||
接下来我想 —— 我擅长数学!我可以用一些基本的三角学来画一个会弹跳的彩虹圈!
|
||||
|
||||
我知道圆的方程为(`x^2 + y^2 = 任意正数`!),所以我写了一些代码来实现它:
|
||||
|
||||
![][5]
|
||||
|
||||
代码如下:(你也可以[在 shadertoy 上查看][6])
|
||||
代码如下:(你也可以 [在 shadertoy 上查看][6])
|
||||
|
||||
```cpp
|
||||
```
|
||||
void mainImage( out vec4 fragColor, in vec2 fragCoord )
|
||||
{
|
||||
// 规范像素坐标 (从 0 到 1)
|
||||
@ -103,17 +105,17 @@ void mainImage( out vec4 fragColor, in vec2 fragCoord )
|
||||
|
||||
我觉得有意思的(即使我们没有做任何超级高级的事情!)是这些着色器为我们提供了一种有趣的可视化方式学习数学 - 我用 `sin` 和 `cos` 来使某些东西沿着圆移动,如果你想更直观地了解三角函数的工作方式, 也许编写着色器会是一种有趣的方法!
|
||||
|
||||
我喜欢的是,可以获得有关数学代码的即时视觉反馈 - 如果你把一些东西乘以2,图像里的东西会变得更大!或更小!或更快!或更慢!或更红!
|
||||
我喜欢的是,可以获得有关数学代码的即时视觉反馈 - 如果你把一些东西乘以 2,图像里的东西会变得更大!或更小!或更快!或更慢!或更红!
|
||||
|
||||
### 但是我们如何做一些真正有趣的事情呢?
|
||||
|
||||
这个会弹跳的圆圈很好,但它与我见过的其他人使用着色器所做的非常奇特的事情相去甚远。那么下一步要做什么呢?
|
||||
|
||||
### 想法:不要使用 if 语句,而是使用符号距离函数!
|
||||
### 思路:不要使用 if 语句,而是使用符号距离函数!
|
||||
|
||||
在我上面的圆圈代码中,我基本上是这样写的:
|
||||
|
||||
```cpp
|
||||
```
|
||||
if (dot(uv, uv) < 0.03) {
|
||||
// 圆里的代码
|
||||
} else {
|
||||
@ -121,11 +123,11 @@ if (dot(uv, uv) < 0.03) {
|
||||
}
|
||||
```
|
||||
|
||||
但问题(也是我感到卡住的原因)是不清楚如何将它推广到更复杂的形状!编写大量的 if 语句似乎不太好用。那人们要如何渲染这些 3d 形状呢?
|
||||
但问题(也是我感到卡住的原因)是不清楚如何将它推广到更复杂的形状!编写大量的 `if` 语句似乎不太好用。那人们要如何渲染这些 3d 形状呢?
|
||||
|
||||
所以!**符号距离函数** 是定义形状的另一种方式。不是使用硬编码的 if 语句,而是定义一个 **函数**,该函数告诉你,对于世界上的任何一个点,该点与你的形状有多远。比如,下面是球体的符号距离函数。
|
||||
所以!<ruby>符号距离函数<rt>Signed distance function</rt></ruby> 是定义形状的另一种方式。不是使用硬编码的 `if` 语句,而是定义一个 **函数**,该函数告诉你,对于世界上的任何一个点,该点与你的形状有多远。比如,下面是球体的符号距离函数。
|
||||
|
||||
```cpp
|
||||
```
|
||||
float sdSphere( vec3 p, float center )
|
||||
{
|
||||
return length(p) - center;
|
||||
@ -143,13 +145,13 @@ float sdSphere( vec3 p, float center )
|
||||
当我开始时,我不明白需要编写什么代码来制作一个闪亮的旋转东西。结果表明如下是基本步骤:
|
||||
|
||||
1. 为想要的形状创建一个符号距离函数(在我的例子里是八面体)
|
||||
2. 光线追踪符号距离函数,以便可以在 2D 图片中显示它(或光线行进?我使用的教程称之为光线追踪,我还不明白光线追踪和光线行进之间的区别)
|
||||
2. 光线追踪符号距离函数,以便可以在 2D 图片中显示它(或沿光线行进?我使用的教程称之为光线追踪,我还不明白光线追踪和光线行进之间的区别)
|
||||
3. 编写代码处理形状的表面纹理并使其发光
|
||||
|
||||
我不打算在本文中详细解释符号距离函数或光线追踪,因为我发现这个[关于符号距离函数的惊人教程][2]非常友好,老实说,它比我做的更好,它解释了如何执行上述3个步骤,并且代码有大量的注释,非常棒。
|
||||
我不打算在本文中详细解释符号距离函数或光线追踪,因为我发现这个 [关于符号距离函数的神奇教程][2] 非常友好,老实说,它比我做的更好,它解释了如何执行上述 3 个步骤,并且代码有大量的注释,非常棒。
|
||||
|
||||
* 该教程名为“符号距离函数教程:盒子和气球”,它在这里:<https://www.shadertoy.com/view/Xl2XWt>
|
||||
* 这里有大量符号距离函数,你可以将其复制粘贴到代码中<http://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm>(以及组合它们以制作其他形状的方法)
|
||||
* 这里有大量符号距离函数,你可以将其复制粘贴到代码中(以及组合它们以制作其他形状的方法):<http://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm>
|
||||
|
||||
### 步骤四:复制教程代码并开始更改内容
|
||||
|
||||
@ -171,7 +173,7 @@ float sdSphere( vec3 p, float center )
|
||||
|
||||
下面是我用来使八面体旋转的代码!事实证明这真的很简单:首先从 [这个页面][8] 复制一个八面体符号距离函数,然后添加一个 `rotate` 使其根据时间旋转,然后它就可以旋转了!
|
||||
|
||||
```cpp
|
||||
```
|
||||
vec2 sdfOctahedron( vec3 currentRayPosition, vec3 offset ){
|
||||
vec3 p = rotate((currentRayPosition), offset.xy, iTime * 3.0) - offset;
|
||||
float s = 0.1; // s 是啥?
|
||||
@ -184,11 +186,11 @@ vec2 sdfOctahedron( vec3 currentRayPosition, vec3 offset ){
|
||||
|
||||
### 用一些噪音让它发光
|
||||
|
||||
我想做的另一件事是让我的形状看起来闪闪发光/有光泽。我使用了在[这个github gist][9]中找到的噪声函数使表面看起来有纹理。
|
||||
我想做的另一件事是让我的形状看起来闪闪发光/有光泽。我使用了在 [这个 GitHub gist][9] 中找到的噪声函数使表面看起来有纹理。
|
||||
|
||||
以下是我如何使用噪声函数的代码。基本上,我只是随机地将参数更改为噪声函数(乘以2?3?1800?随你!),直到得到喜欢的效果。
|
||||
以下是我如何使用噪声函数的代码。基本上,我只是随机地将参数更改为噪声函数(乘以 2?3?1800?随你!),直到得到喜欢的效果。
|
||||
|
||||
```cpp
|
||||
```
|
||||
float x = noise(rotate(positionOfHit, vec2(0, 0), iGlobalTime * 3.0).xy * 1800.0);
|
||||
float x2 = noise(lightDirection.xy * 400.0);
|
||||
float y = min(max(x, 0.0), 1.0);
|
||||
@ -205,7 +207,7 @@ vec3 balloonColor = vec3(y, y + y2, y + y2);
|
||||
再说一遍,如下是我用到的两个资源:
|
||||
|
||||
1. “符号距离函数教程:盒子和气球”:<https://www.shadertoy.com/view/Xl2XWt>(修改和玩起来真的很有趣)
|
||||
2. 可以将大量符号距离函数复制并粘贴到你的代码中<http://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm>
|
||||
2. 可以将大量符号距离函数复制并粘贴到你的代码中:<http://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm>
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
@ -215,7 +217,7 @@ via: https://jvns.ca/blog/2020/03/15/writing-shaders-with-signed-distance-functi
|
||||
作者:[Julia Evans][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[Starryi](https://github.com/Starryi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -3,31 +3,32 @@
|
||||
[#]: author: (Kevin O'Brien https://opensource.com/users/ahuka)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (robsean)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14111-1.html)
|
||||
|
||||
在 FreeDOS 中开始使用批处理文件
|
||||
在 FreeDOS 中使用批处理文件
|
||||
======
|
||||
编写你自己的简单程序来自动执行通常需要大量输入的任务的批处理文件,是一种极好的方法。
|
||||
![Computer screen with files or windows open][1]
|
||||
|
||||
在 Linux 上,创建 _shell 脚本_ 来自动执行重复的任务是很常见的。类似地,在 [FreeDOS][2] 上,旧式 DOS 操作系统的开放源文件的实现,你可以创建一个包含数个FreeDOS 命令的 _批处理文件_ 。接下来,你可以运行你的批处理文件来按顺序执行每个命令。
|
||||
> 编写你自己的简单程序来自动执行通常需要大量输入的任务的批处理文件,是一种极好的方法。
|
||||
|
||||
你可以使用一个 ASCII 文本编辑器来创建一个批处理文件,诸如 FeeDOS 的 Edit 应用程序。在你创建一个批处理文件后,你可以使用一个文件名称和扩展名 `.bat` 来保存它。文件名称应该是唯一的。如果你使用 FreeDOS 的一个命令的名称作为你自己的文件名称,那么可能将会执行 FreeDOS 的命令,而不会是你的批处理文件。
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/24/102751sldikuebf7z4u64l.jpg)
|
||||
|
||||
实际上,所有的内部的和外部的 FreeDOS 命令都可以在一个批处理文件中使用。在你创建一个批处理文件时,你基本上就是在编写一个程序。FreeDOS 批处理文件可能没有结构化编程语言的功能,但是对于耗时短暂却重复乏味的任务来说,它是非常方便的。
|
||||
在 Linux 上,创建 _shell 脚本_ 来自动执行重复的任务是很常见的。类似地,在开源版的旧式 DOS 操作系统 [FreeDOS][2] 上,你可以创建一个包含数个 FreeDOS 命令的 _批处理文件_ 。然后,你就可以运行你的批处理文件来按顺序执行每个命令。
|
||||
|
||||
你可以使用一个 ASCII 文本编辑器来创建批处理文件,诸如 FeeDOS 的 Edit 应用程序。在你创建一个批处理文件后,你可以使用一个文件名称加上扩展名 `.bat` 来保存它。文件名称应该是唯一的。如果你使用 FreeDOS 的一个命令的名称作为你自己的文件名称,那么可能将会执行 FreeDOS 的命令,而不会是你的批处理文件。
|
||||
|
||||
实际上,所有的内部的和外部的 FreeDOS 命令都可以在一个批处理文件中使用。在你创建一个批处理文件时,你其实就是在编写一个程序。FreeDOS 批处理文件可能没有结构化编程语言的功能,但是对于耗时短暂却重复乏味的任务来说,它是非常方便的。
|
||||
|
||||
### 注释你的代码
|
||||
|
||||
对于任何程序员来说,学习的第一个好习惯都应该是:在一个程序中放置注释来解释该代码正在做什么。这是一件非常好完成的事情,但是你需要仔细,不要傻傻地让操作系统来执行你的注释。避免出现这种情况的方法是在一个注释行的开头处放置 `REM` ( "remark" 的简写) 。
|
||||
对于任何程序员来说,学习的第一个好习惯都应该是:在一个程序中放置注释来解释该代码正在做什么。这是一件非常容易完成的事情,但是你需要仔细,不要傻傻地让操作系统来执行你的注释。避免出现这种情况的方法是在一个注释行的开头处放置 `REM`(“remark” 的缩写) 。
|
||||
|
||||
FreeDOS 忽略以 `REM` 开头的代码行。但是任何查看源文件代码 (你在你的批处理文件中所编写的文本) 的人都可以读取你的注释并理解它在做什么。这也是一种临时性禁用一个命令而不需要删除它的一种方法。只需要打开你的批处理文件来进行编辑,在你想要禁用行的开头处放置 `REM` ,并保存它。在你想要重新启用这个命令时,只需要打开文件来进行编辑和移除 `REM` 。这种技巧有时被称为 "注释掉" 一个命令。
|
||||
FreeDOS 忽略以 `REM` 开头的代码行。但是任何查看源文件代码(即你在你的批处理文件中所编写的文本)的人都可以读取你的注释并理解它在做什么。这也是一种临时性禁用一个命令而不需要删除它的一种方法。只需要打开你的批处理文件来进行编辑,在你想要禁用行的开头处放置 `REM` ,并保存它。在你想要重新启用这个命令时,只需要打开文件来进行编辑和移除 `REM` 。这种技巧有时被称为 “注释掉” 一个命令。
|
||||
|
||||
### 开始设置
|
||||
|
||||
在你开始编写你自己的批处理文件前,我建议在 FreeDOS 中创建一个临时目录. 这将会为你提供一个处理批处理文件的安全空间,不会意外地删除,移动,或重命名重要的系统文件或目录。在 FreeDOS 上,你可以使用 `MD` 命令来 [创建一个目录][3] :
|
||||
|
||||
在你开始编写你自己的批处理文件前,我建议在 FreeDOS 中创建一个临时目录。这将会为你提供一个处理批处理文件的安全空间,不会意外地删除、移动,或重命名重要的系统文件或目录。在 FreeDOS 上,你可以使用 `MD` 命令来 [创建一个目录][3] :
|
||||
|
||||
```
|
||||
C:\>MD TEMP
|
||||
@ -37,16 +38,14 @@ C:\TEMP>
|
||||
|
||||
FreeDOS 的 `ECHO` 命令会控制当你运行一个批处理文件时在屏幕上显示的东西。例如,这里是一个简单是单行批处理文件:
|
||||
|
||||
|
||||
```
|
||||
`ECHO Hello world`
|
||||
ECHO Hello world
|
||||
```
|
||||
|
||||
如果你创建这个文件并运行它,你将看到在屏幕上显示的句子。从命令行中完成这项操作的最快的方法是:使用 `COPY` 命令来从你的键盘中获取输入 (`CON`) ,并将其放置到文件 `TEST1.BAT` 之中。接下来,按下组合键 **Ctrl**+**Z** 来停止复制过程,按下你键盘上的 Return 或 Enter 按键来返回一个提示。
|
||||
如果你创建这个文件并运行它,你将看到在屏幕上显示的句子。从命令行中完成这项操作的最快的方法是:使用 `COPY` 命令来从你的键盘中(`CON`)获取输入,并将其放置到文件 `TEST1.BAT` 之中。接下来,按下组合键 `Ctrl+Z` 来停止复制过程,按下你键盘上的 `Return` 或 `Enter` 按键来返回一个提示。
|
||||
|
||||
在你的临时目录中尝试创建这个文件为 `TEST1.BAT` ,接下来运行它:
|
||||
|
||||
|
||||
```
|
||||
C:\TEMP>COPY CON TEST1.BAT
|
||||
CON => TEST1.BAT
|
||||
@ -57,11 +56,10 @@ C:\TEMP>TEST1
|
||||
Hello world
|
||||
```
|
||||
|
||||
当你想要显示一段文本使,这可能很有用。例如,在一个程序完成它的任务时,你可能会在你的屏幕上看到一条告诉你需要等待的消息,或者在一个网络环境中时,你可能会看到一条登录消息。
|
||||
当你想要显示一段文本时,这可能很有用。例如,在一个程序完成它的任务时,你可能会在你的屏幕上看到一条告诉你需要等待的消息,或者在一个网络环境中时,你可能会看到一条登录消息。
|
||||
|
||||
如果你想要显示一个空行怎么办?你可能会认为 `ECHO` 命令本身就可以达到目的,但是单独一个 `ECHO` 命令只会询问 FreeDOS 来响应 `ECHO` 是打开还是关闭:
|
||||
|
||||
|
||||
```
|
||||
C:\TEMP>ECHO
|
||||
ECHO is on
|
||||
@ -69,7 +67,6 @@ ECHO is on
|
||||
|
||||
获取一个空白行的方法是在 `ECHO`后紧接着使用一个 `+`符号:
|
||||
|
||||
|
||||
```
|
||||
C:\TEMP>ECHO+
|
||||
|
||||
@ -82,7 +79,6 @@ C:\TEMP>
|
||||
|
||||
创建 `TEST3.BAT` :
|
||||
|
||||
|
||||
```
|
||||
@MD BACKUPS
|
||||
COPY %1 BACKUPS\%1
|
||||
@ -90,24 +86,21 @@ COPY %1 BACKUPS\%1
|
||||
|
||||
变量是使用百分比符号和随后的数字表示的,因此,这个批处理文件将在你的当前目录中创建一个 `BACKUPS` 子目录,然后将复制变量 `%1` 到 `BACKUPS` 文件夹之中。这个变量是什么?当你运行批处理文件时,变量由你决定:
|
||||
|
||||
|
||||
```
|
||||
C:\TEMP>TEST3 TEMP1.BAT
|
||||
TEST1.BAT => BACKUPS\TEST1.BAT
|
||||
```
|
||||
|
||||
你的批处理文件已经复制 `TEST1.BAT` 到一个名称为into a subdirectory called `BACKUPS` 的子目录,因为在你运行批处理文件时,你标识这个文件为一个参数。你的批处理文件将把 `%1` 替换为 `TEST1.BAT` 。
|
||||
你的批处理文件已经复制 `TEST1.BAT` 到一个名称为 `BACKUPS` 的子目录,因为在你运行批处理文件时,你标识这个文件为一个参数。你的批处理文件将把 `%1` 替换为 `TEST1.BAT` 。
|
||||
|
||||
变量是按位置的。变量 `%1` 是你提供给命令的第一个参数,变量 `%2` 是第二个参数,以此类推。假设你创建一个批处理文件来列出一个目录的内容:
|
||||
|
||||
|
||||
```
|
||||
`DIR %1`
|
||||
DIR %1
|
||||
```
|
||||
|
||||
尝试运行它:
|
||||
|
||||
|
||||
```
|
||||
C:\TEMP>TEST4.BAT C:\HOME
|
||||
ARTICLES
|
||||
@ -119,7 +112,6 @@ DND
|
||||
|
||||
这像预期一样的工作。但是下面这个却失败了:
|
||||
|
||||
|
||||
```
|
||||
C:\TEMP>TEST4.BAT C:\HOME C:\DOCS
|
||||
ARTICLES
|
||||
@ -129,78 +121,70 @@ GAMES
|
||||
DND
|
||||
```
|
||||
|
||||
如果你尝试它,你将得到第一个参数 (`C:\HOME`) 的列表,而得不到第二个参数 (`C:\DOCS`) 的列表。这是因为你的批处理文件仅查找一个变量 (`%1`) ,此外,`DIR` 命令也仅能获取一个目录。
|
||||
如果你尝试它,你将得到第一个参数(`C:\HOME`)的列表,而得不到第二个参数(`C:\DOCS`)的列表。这是因为你的批处理文件仅查找一个变量(`%1`),此外,`DIR` 命令也仅能获取一个目录。
|
||||
|
||||
此外,当你运行一个批处理文件时,你也不需要为其具体指定扩展名—除非你运气相当不好地为批处理文件选取了一个与 FreeDOS 外部命令或类似命令相同的名称。当 FreeDOS 执行命令时,它按下面的顺序执行:
|
||||
此外,当你运行一个批处理文件时,你也不需要为其具体指定扩展名 —— 除非你运气相当不好地为批处理文件选取了一个与 FreeDOS 外部命令或类似命令相同的名称。当 FreeDOS 执行命令时,它按下面的顺序执行:
|
||||
|
||||
1. 内部命令
|
||||
2. 带有 *.COM 扩展名的外部命令
|
||||
3. 带有 *.EXE 扩展名的外部命令
|
||||
4. 批处理文件
|
||||
|
||||
|
||||
|
||||
### 多个参数
|
||||
|
||||
好的,选择重新编写 `TEST4.BAT` 文件来使一个命令可以获取两个参数,以便你可以看到这是如何工作的。首先,使用 `EDIT` 应用程序来创建一个简单的名称为 `FILE1.TXT` 的文本文件。在其中放置一段某种类型 (例如,"Hello world") 的语句,并在你的 `TEMP` 工作目录中保存文件。
|
||||
好的,选择重新编写 `TEST4.BAT` 文件来使一个命令可以获取两个参数,以便你可以看到这是如何工作的。首先,使用 `EDIT` 应用程序来创建一个简单的名称为 `FILE1.TXT` 的文本文件。在其中放置一段某种类型(例如,“Hello world”)的语句,并在你的 `TEMP` 工作目录中保存文件。
|
||||
|
||||
接下来,使用 `EDIT` 来更改你的 `TEST4.BAT` 文件:
|
||||
|
||||
|
||||
```
|
||||
COPY %1 %2
|
||||
COPY %1 %2
|
||||
DIR
|
||||
```
|
||||
|
||||
保存它,然后执行命令:
|
||||
|
||||
|
||||
```
|
||||
`C:\TEMP\>TEST4 FILE1.TXT FILE2.TXT`
|
||||
C:\TEMP\>TEST4 FILE1.TXT FILE2.TXT
|
||||
```
|
||||
|
||||
在运行你的批处理文件时,你会看一个你的 `TEMP` 目录的目录列表。在列出的文件之中,你有 `FILE1.TXT` 和 `FILE2.TXT` ,它们是由你的批处理文件所创建的。
|
||||
|
||||
### 嵌套批处理文件
|
||||
|
||||
批处理文件的另一个功能是能够 "嵌套" ,这意味着一个批处理文件可以在另外一个批处理文件中被调用和运行。为查看这是如何工作的,从一对简单的批处理文件开始:
|
||||
批处理文件的另一个功能是能够 “嵌套” ,这意味着一个批处理文件可以在另外一个批处理文件中被调用和运行。为查看这是如何工作的,从一对简单的批处理文件开始:
|
||||
|
||||
第一个文件被称为 `NBATCH1.BAT` :
|
||||
|
||||
|
||||
```
|
||||
@ECHO OFF
|
||||
ECHO Hello
|
||||
CALL NBATCH2.BAT
|
||||
CALL NBATCH2.BAT
|
||||
ECHO world
|
||||
```
|
||||
|
||||
第一行 (`@ECHO OFF`) 轻轻地告诉批处理文件在你运行它时仅显示命令 (而不是命令本身) 的输出。你可能会在前面的示例中注意到这里有很多关于批处理文件正在做什么的反馈;在这种情况下,你正在允许你的批处理文件仅显示结果。
|
||||
第一行 (`@ECHO OFF`) 轻轻地告诉批处理文件在你运行它时仅显示命令 (而不是命令本身) 的输出。你可能会在前面的示例中注意到这里有很多关于批处理文件正在做什么的反馈;在这种情况下,你正在允许你的批处理文件仅显示结果。
|
||||
|
||||
第二个批处理被称为 NBATCH2.BAT :
|
||||
|
||||
|
||||
```
|
||||
`echo from FreeDOS`
|
||||
echo from FreeDOS
|
||||
```
|
||||
|
||||
使用 `EDIT` 来创建这两个文件,并在你的 TEMP 子目录中保存它们。运行 `NBATCH1.BAT` 来查看会发生什么:
|
||||
|
||||
|
||||
```
|
||||
C:\TEMP\>NBATCH1.BAT
|
||||
C:\TEMP\>NBATCH1.BAT
|
||||
Hello
|
||||
from FreeDOS
|
||||
world
|
||||
```
|
||||
|
||||
你的第二个批处理文件将在第一个批处理文件之中通过 `CALL` 命令来执行,它将提供在你 "Hello world" 信息中间的字符串 "from FreeDOS" 。
|
||||
你的第二个批处理文件将在第一个批处理文件之中通过 `CALL` 命令来执行,它将提供在你 “Hello world” 信息中间的字符串 “from FreeDOS” 。
|
||||
|
||||
### FreeDOS 脚本
|
||||
|
||||
编写你自己的简单程序来自动执行通常需要大量输入的任务的批处理文件,是一种极好的方法。你使用的 FreeDOS 越多, 你将越熟悉它的命令,在你熟知命令后,在一个批处理文件中列出它们仅是一件使你的 FreeDOS 系统让你生活轻松的事情。尝试一下!
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/3/batch-files-freedos
|
||||
@ -208,7 +192,7 @@ via: https://opensource.com/article/21/3/batch-files-freedos
|
||||
作者:[Kevin O'Brien][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[robsean]](https://github.com/robsean)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -0,0 +1,101 @@
|
||||
[#]: subject: "5 reasons to switch to Firefox right now"
|
||||
[#]: via: "https://opensource.com/article/21/9/switch-to-firefox"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "leo314159"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14108-1.html"
|
||||
|
||||
马上改用 Firefox 的 5 个理由
|
||||
======
|
||||
|
||||
> 19 年前,Mozilla Firefox 发布了 0.1 版。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/23/163609yryosyby5s8o7uss.jpg)
|
||||
|
||||
Mozilla Firefox 是一个让我对开源大开眼界应用程序。这肯定不是转折点,而是几个开源应用程序逐渐吸引我注意力,这是累积效应的的一小部分。并且这最终导致我转向 Linux,并且从未回头。自从切换到 Firefox(这发生在我有意识地转向开源之前)以来,我一直是一个狂热的 Firefox 用户。我的手机一直是 Firefox OS 的手机,直到这个项目被放弃。不过,有趣的是,我并不特别地认为自己是 Firefox 的 _粉丝_ 。我从那时到现在一直在使用 Firefox,是因为从许多方面来说它都是最佳的浏览器。接下来是我认为应该马上 [改用 Firefox][2] 的五个原因。
|
||||
|
||||
### 1、Firefox 专注隐私
|
||||
|
||||
Firefox 的维护者是 [Mozilla 基金会][3],这是一个完全不以你的个人数据为动机的非营利组织。Mozilla 不关心你搜索的内容、访问的网站或你网站上使用的时间。这不是 Mozilla 的商业模式,但它显然是许多其他流行浏览器的商业模式。
|
||||
|
||||
即使你不反对浏览器以隐私为由跟踪你的活动,你可能也曾有过这样的经历:只是一次性购买过某件不寻常的礼物,就导致你访问的每个网站都试图向你出售该物品。互联网很大,所以有时根据用户的兴趣来重组它似乎是一个好主意。我承认,如果我所有的搜索都可以“开源”给它们,可能会提供更相关的结果。但话又说回来,我宁愿主动选择这种优化,而不是让它以及许多其他未知因素一起,在我的控制之外为我做出决定。
|
||||
|
||||
![Firefox 中的隐私 (Seth Kenlon, CC BY-SA 4.0) ][4]
|
||||
|
||||
Mozilla 的数据政策是这样的: [尽量少拿、保持安全、毫无隐藏。][5]
|
||||
|
||||
不止如此,Firefox 还提供了帐户 [监控][6],这是 Mozilla 的一项可选服务,如果你的任何在线帐户因大规模数据泄露而受到损害,它就会提醒你。另外,Mozilla 使用开源的 Wireguard 提供付费 VPN 服务,因此无论何时何地你都可以安全浏览。
|
||||
|
||||
### 2、Firefox 可以使用容器
|
||||
|
||||
很难相信的是,曾经有一段时间,当时领先的网页浏览器没有标签页功能。在上世纪 90 年代末和本世纪 00 年代初,当你想同时访问两个网页时,你必须打开两个单独的浏览器窗口。Firefox(以及之前的 Mozilla 浏览器)是标签页界面的早期使用者。
|
||||
|
||||
标签页是现在浏览器的标配,但是通过 Firefox 的扩展,标签页界面的功能有了有趣的新变化。由 Mozilla 自己开发的 [Firefox 多帐户容器插件][7] 可以将每个标签页变成浏览器中的一个隔离的“容器”。
|
||||
|
||||
![Firefox 中的容器化标签页 (Seth Kenlon, CC BY-SA 4.0)][8]
|
||||
|
||||
例如,假设你的雇主使用谷歌应用,但你信不过谷歌接触你的个人信息。你可以使用多账户容器插件来隔离你的工作活动,以便谷歌仅触及你的职业生活,而无法访问你日常生活的任何部分。
|
||||
|
||||
你甚至可以使用两个不同的帐户打开同一个网站,此外由于标签页是用颜色标识的,因此无论你是要隔离网站还是只是在浏览器中添加新的视觉提示,这都很有帮助。
|
||||
|
||||
### 3、Firefox 的用户界面设计
|
||||
|
||||
尽管我们人类可能对新事物更感兴趣,但在熟悉又可靠的东西中我们能找到更多的舒适感。多年以来,Firefox 不断更新其界面,并且拥有了相当多的创新,而这些创新现在已经成为非官方的行业标准。但就总体来说,它一直保持不变。Firefox 的用户界面保留了你认为理所当然的所有标准惯例。
|
||||
|
||||
当你下载文件时,系统会提示你选择让 Firefox 如何处理该文件。根据你的选择,你可以在适当的应用程序中打开文件或将其保存到硬盘驱动器。你可以选择让 Firefox 记住你的选择并作为你将来的选择,或者让它继续提示你。
|
||||
|
||||
![Firefox用户界面设计 (Seth Kenlon, CC BY-SA 4.0)][9]
|
||||
|
||||
当你需要应用程序菜单时,可以在现代的“汉堡包式”的菜单中找到它,或者你可以按 `Alt` 键在 Firefox 的窗口顶部显示传统菜单。
|
||||
|
||||
无论你是否是 Firefox 的长期用户,Firefox 中的一切都看起来很熟悉,因为它建立在多年的用户界面设计经验之上。在它可以创新的地方,它就会去创新,但是如果这些创新会违反直觉,它就会废弃这种创新。
|
||||
|
||||
### 4、Firefox 的开发者工具
|
||||
|
||||
回溯万维网的早期,你可以浏览到任何网站并查看其源代码。仅仅这样做几次就很有可能学习到 HTML 的知识。一切都是公开的、透明的、显而易见的,而且相对简单的。
|
||||
|
||||
互联网已经逐渐演变成为一个强大的 [基于云的超级计算机][10],现在从网站中提取有意义的上下文有时需要的不仅仅是其底层标记的文本转储。为了确保每个人都可以对网站的功能进行逆向工程(和正向工程),Firefox 在浏览器中集成了一套功能强大的开发工具。
|
||||
|
||||
![开发者工具 (Seth Kenlon, CC BY-SA 4.0) ][11]
|
||||
|
||||
虽然这最初是基于 Firefox 的创新(在 2006 年推出的 [Firebug][12]),但现在许多浏览器都有开发者工具功能。然而,并非所有的开发者工具都一样,正是 Firefox 的开发者面板使 Firefox 成为我进行网页设计和用户体验测试的首选浏览器。
|
||||
|
||||
### 5、Firefox 是开源的
|
||||
|
||||
最为重要的是,Firefox 是完全开源的。这是一个优秀的浏览器,并且对你毫无隐藏。除了保持互联网开放,教育人们了解互联网,并推广日常工作的开源解决方案之外,它没有别有用心的动机。
|
||||
|
||||
![Firefox 是开源的 (Seth Kenlon, CC BY-SA 4.0)][13]
|
||||
|
||||
你可以为 Firefox 做出贡献。你可以对你不喜欢的部分提交报告。你可以看到与互联网交互时运行的代码。几十年来,Firefox 一直在支持开放互联网。它忠于其自身的原则,并且可以说已经迫使几个竞争对手走向开源。如果 Firefox 没有抬高公众的期望,它们可能不会选择开源。
|
||||
|
||||
Firefox 是现代互联网上的具有影响力的力量,它是一款优秀的浏览器。Firefox 可以在你的桌面和移动设备上运行,因此想让自己轻松一点,[就安装个 Firefox 吧][14]。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/9/switch-to-firefox
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[leo314159](https://github.com/leo314159)
|
||||
校对:[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/redpanda_firefox_pet_animal.jpg?itok=aSpKsyna (red panda)
|
||||
[2]: http://getfirefox.org
|
||||
[3]: https://foundation.mozilla.org/en/
|
||||
[4]: https://opensource.com/sites/default/files/firefox-privacy.jpg
|
||||
[5]: https://blog.mozilla.org/en/products/firefox/firefox-data-privacy-promise/
|
||||
[6]: https://monitor.firefox.com
|
||||
[7]: https://github.com/mozilla/multi-account-containers#readme
|
||||
[8]: https://opensource.com/sites/default/files/firefox-container.jpg
|
||||
[9]: https://opensource.com/sites/default/files/screenshot_from_2021-09-16_12-13-14.png
|
||||
[10]: https://www.redhat.com/en/products/open-hybrid-cloud
|
||||
[11]: https://opensource.com/sites/default/files/firefox-dev.jpg
|
||||
[12]: https://getfirebug.com/
|
||||
[13]: https://opensource.com/sites/default/files/firefox-open.jpg
|
||||
[14]: http://getfirefox.com
|
@ -0,0 +1,216 @@
|
||||
[#]: subject: "Bash Shell Scripting for beginners (Part 1)"
|
||||
[#]: via: "https://fedoramagazine.org/bash-shell-scripting-for-beginners-part-1/"
|
||||
[#]: author: "zexcon https://fedoramagazine.org/author/zexcon/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "unigeorge"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14131-1.html"
|
||||
|
||||
Bash Shell 脚本新手指南(一)
|
||||
======
|
||||
|
||||
![][1]
|
||||
|
||||
如标题所示,本文将涵盖面向初学者的 Bash Shell 脚本知识。虽然本文没有回顾 Bash 的历史,但是有很多资源能够便于读者了解相关内容,读者也可以直接访问 <https://www.gnu.org/software/bash/> 上的 GNU 项目。我们会从了解一些非常基本的概念开始,然后再将相关知识综合起来。
|
||||
|
||||
### 创建脚本文件
|
||||
|
||||
首先来创建一个脚本文件。我们要确保当前目录为家目录。
|
||||
|
||||
```
|
||||
cd ~
|
||||
```
|
||||
|
||||
在主目录中创建示例文件。文件名可以是任意名称,本文使用 `learnToScript.sh` 作为文件名。
|
||||
|
||||
```
|
||||
touch learnToScript.sh
|
||||
```
|
||||
|
||||
此时家目录中就生成了一个名为 `learnToScript.sh` 的文件。输入以下命令以检验该文件是否存在,还可以注意到其权限是 `-rw-rw-r–`。
|
||||
|
||||
```
|
||||
[zexcon@trinity ~]$ ls -l
|
||||
total 7
|
||||
drwxr-xr-x. 1 zexcon zexcon 90 Aug 30 13:08 Desktop
|
||||
drwxr-xr-x. 1 zexcon zexcon 80 Sep 16 08:53 Documents
|
||||
drwxr-xr-x. 1 zexcon zexcon 1222 Sep 16 08:53 Downloads
|
||||
-rw-rw-r--. 1 zexcon zexcon 70 Sep 17 10:10 learnToScript.sh
|
||||
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Music
|
||||
drwxr-xr-x. 1 zexcon zexcon 318 Sep 15 13:53 Pictures
|
||||
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Public
|
||||
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Videos
|
||||
[zexcon@trinity ~]$
|
||||
```
|
||||
|
||||
正式开始之前还有一件事要做。可以试一下在没有写入任何内容的情况下执行脚本,命令行输入以下内容:
|
||||
|
||||
```
|
||||
./learnToScript.sh
|
||||
```
|
||||
|
||||
```
|
||||
[zexcon ~]$ ./learnToScript.sh
|
||||
bash: ./learnToScript.sh: Permission denied
|
||||
```
|
||||
|
||||
提示权限被拒绝,因为该文件没有执行权限。所以你需要更改文件的权限才能执行脚本。如果你不熟悉权限相关知识,建议阅读 [Paul W. Frields][4] 写的 Fedora 杂志文章。
|
||||
|
||||
- [命令行小知识:权限][5]
|
||||
- [命令行小知识:深入权限][6]
|
||||
|
||||
假定我们已经了解了权限相关知识,回到终端更改 `learnToScript.sh` 文件,增加执行权限。输入以下内容:
|
||||
|
||||
```
|
||||
chmod 755 learnToScript.sh
|
||||
```
|
||||
|
||||
```
|
||||
[zexcon@trinity ~]$ ls -l
|
||||
total 7
|
||||
drwxr-xr-x. 1 zexcon zexcon 90 Aug 30 13:08 Desktop
|
||||
drwxr-xr-x. 1 zexcon zexcon 80 Sep 16 08:53 Documents
|
||||
drwxr-xr-x. 1 zexcon zexcon 1222 Sep 16 08:53 Downloads
|
||||
-rwxr-xr-x. 1 zexcon zexcon 70 Sep 17 10:10 learnToScript.sh
|
||||
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Music
|
||||
drwxr-xr-x. 1 zexcon zexcon 318 Sep 15 13:53 Pictures
|
||||
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Public
|
||||
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Videos
|
||||
[zexcon@trinity ~]$
|
||||
```
|
||||
|
||||
好的,现在一切准备就绪,你已经获得了 `learnToScript.sh` 命令的读取、写入和执行权限 (`-rwxr-xr-x`)。
|
||||
|
||||
### 编辑脚本文件
|
||||
|
||||
下面的内容需要你熟悉 `vim` 或其他类似的文本编辑器,本文选用 `vim`。在命令提示符下输入以下内容:
|
||||
|
||||
```
|
||||
vim learnToScript.sh
|
||||
```
|
||||
|
||||
这会打开一个空的文本文件,里面有一堆波浪号。键盘输入 `i` 将进入插入模式。通过查看终端窗口的左下角,你可以确认它处于该模式。(友情推荐,[nano][7] 编辑器也很不错。)
|
||||
|
||||
接下来我们要确保文件被正确的解释器识别。因此,输入 `#!` 和 bash 的目录 `/bin/bash`:
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
```
|
||||
|
||||
本文教程步骤的最后一件事是保存文档。按 `Esc` 退出输入模式,然后按 `Shift+:`。在冒号处输入 `wq`,按下回车键,就会写入(`w`)文件并退出(`q`)`vim` 编辑器。
|
||||
|
||||
> 使用 `vim` 时要记住,要想写入文档,就需要输入 `i`,此时你会在底部看到 `–INSERT–`。要保存文档,就需要按 `Esc` 退出输入模式,然后按 `Shift+:`,输入 `w` 写入文件;或者按 `Esc`,然后 `Shift+:` 输入 `q`,实现退出而不保存;或者将 `wq` 连在一起,可以实现写入并关闭文件。`Esc` 本身就只是退出插入模式。你可以在其 [官方网站][8] 或 [教程网站][9] 上找到更多关于 `vim` 的信息。
|
||||
|
||||
### 开始正式写脚本
|
||||
|
||||
#### echo 命令
|
||||
|
||||
`echo` 命令用于向终端返回一些信息,可以使用单引号、双引号或不使用引号。那么让我们用一个传统的 Hello World 来试试它!
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
echo Hello World!
|
||||
echo 'Hello World!'
|
||||
echo "Hello World!"
|
||||
```
|
||||
|
||||
```
|
||||
[zexcon ~]$ ./learnToScript.sh
|
||||
Hello World!
|
||||
Hello World!
|
||||
Hello World!
|
||||
[zexcon ~]$
|
||||
```
|
||||
|
||||
注意,上述三行得到了相同的结果。使用单引号、双引号或不使用引号的结果不是一定相同的,但在这个基本脚本中确实得到了同样的结果。在某些情况下,引号的类型不同会导致结果差异。至此恭喜你编写了第一个 Bash 脚本。当你继续创建更多脚本并放飞你的想法时,可能会需要了解以下更多的知识。
|
||||
|
||||
#### 命令替换 $( ) 和 \` \`
|
||||
|
||||
命令替换可以实现以下效果:获取在命令行执行命令的结果,并将该结果写入变量。例如,如果在命令提示符下输入 `ls`,可以获得当前工作目录的列表。我们用这个命令来实践一下。命令替换选项有两个,请注意:第一个选项使用键盘左侧 `Tab` 键上方的反引号。它与波浪号 `~` 在一个键位上。第二个选项使用 shell 变量。
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
command1=`ls`
|
||||
echo $command1
|
||||
|
||||
command2=$(ls)
|
||||
echo $command2
|
||||
```
|
||||
|
||||
```
|
||||
[zexcon ~]$ ./learnToScript.sh
|
||||
Desktop Documents Downloads learnToScript.sh Music Pictures Public snap Videos
|
||||
Desktop Documents Downloads learnToScript.sh Music Pictures Public snap Videos
|
||||
[zexcon ~]$
|
||||
```
|
||||
|
||||
注意变量、等号和命令开头之间不要有空格。使用这两个选项得到的结果是完全相同的。请注意,变量需要以美元符号开头。如果你忘记了,并且回显了不带美元符号的命令变量,会只输出命令的名称,如下所示:
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
command1=`ls`
|
||||
echo command1
|
||||
|
||||
command2=$(ls)
|
||||
echo command2
|
||||
```
|
||||
|
||||
```
|
||||
[zexcon ~]$ ./learnToScript.sh
|
||||
command1
|
||||
command2
|
||||
[zexcon ~]$
|
||||
```
|
||||
|
||||
#### 双括号 (())
|
||||
|
||||
那么双括号有什么用呢? 很简单,双括号用于数学方程式。
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
echo $((5+3))
|
||||
echo $((5-3))
|
||||
echo $((5*3))
|
||||
echo $((5/3))
|
||||
```
|
||||
|
||||
```
|
||||
[zexcon ~]$ ./learnToScript.sh
|
||||
8
|
||||
2
|
||||
15
|
||||
1
|
||||
[zexcon ~]$
|
||||
```
|
||||
|
||||
### 结语
|
||||
|
||||
至此,我们已经创建了第一个脚本。我们知道了如何执行多个命令:将它们放在一个脚本中并运行,就可以获得结果。下一篇文章会继续讨论,了解输入和输出的重定向、管道命令、使用双括号或者添加注释等知识。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://fedoramagazine.org/bash-shell-scripting-for-beginners-part-1/
|
||||
|
||||
作者:[zexcon][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[unigeorge](https://github.com/unigeorge)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://fedoramagazine.org/author/zexcon/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://fedoramagazine.org/wp-content/uploads/2021/09/bash_shell_scripting_pt1-1536x650.jpg
|
||||
[2]: https://unsplash.com/@nbandana?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
|
||||
[3]: https://unsplash.com/s/photos/shell-scripting?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
|
||||
[4]: http://pfrields.id.fedoraproject.org/
|
||||
[5]: https://fedoramagazine.org/command-line-quick-tips-permissions/
|
||||
[6]: https://fedoramagazine.org/command-line-quick-tips-more-about-permissions/
|
||||
[7]: https://fedoramagazine.org/gnu-nano-minimalist-console-editor/
|
||||
[8]: https://www.vim.org/docs.php
|
||||
[9]: https://linuxhandbook.com/basic-vim-commands/
|
@ -0,0 +1,145 @@
|
||||
[#]: subject: "7 ways anyone can contribute to Open Practice Library"
|
||||
[#]: via: "https://opensource.com/article/21/10/open-practice-library"
|
||||
[#]: author: "Donna Benjamin https://opensource.com/users/kattekrab"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14117-1.html"
|
||||
|
||||
为开放实践图书馆做出贡献的 7 种方式
|
||||
======
|
||||
|
||||
> 向开放实践图书馆做出贡献是参与全球实践者社区的一种有趣方式,这些实践者都愿意分享他们的知识并改进他们自己的工作方式。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/26/094416hvtgijuavgzwvgge.jpg)
|
||||
|
||||
[开放实践图书馆][2] 是一个社区驱动的实践集合,以支持团队的协作。“实践” 是一种行为或一个 “技巧”,是团队用来改善他们实现目标的方式。有时这些目标是技术性的,如编程和 IT,但所有的团队都可以用来帮助定义他们的实践。无论你是教师、活动策划者、销售人员还是艺术家,这个过程都很重要。对于一个团队,站在同一起跑线上是至关重要的,而这正是开放实践图书馆可以帮助你做到的。
|
||||
|
||||
该图书馆借鉴了来自不同背景的从业者的经验。如果你是一个敏捷开发从业者或用户体验研究员,你可能会对该图书馆中的一些实践感到熟悉。作为一个系统管理员、网站可靠性工程师或软件开发人员,你也可能认出一些你自己的工具包中的实践。
|
||||
|
||||
为了支持跨职能的团队共同建立他们的协作技能,开放实践图书馆向所有人开放,让他们使用、学习、分享,甚至贡献,无论他们的角色或工作职能如何。许多人在使用这个图书馆的时候,惊讶地发现他们可以为其做出贡献!因此,下面我将介绍一下你可以为开放实践图书馆做出贡献的七种不同方式,然后探讨一下你可能为之贡献的三个原因。
|
||||
|
||||
### 1、添加评论
|
||||
|
||||
分享你使用该实践的经验。它对你有用吗?你会改变什么吗?对其他使用该实践的人有什么建议吗?请登录评论系统,与社区展开讨论。
|
||||
|
||||
**方法:** 在每个实践页面的底部都有一个评论区。
|
||||
|
||||
![添加评论 (Donna Benjamin, CC BY-SA 4.0)][3]
|
||||
|
||||
要加入评论对话,你必须在 [Hyvor Talk][5] 上注册一个账户。
|
||||
|
||||
### 2、传播消息
|
||||
|
||||
向其他人介绍开放实践图书馆并邀请他们也来贡献力量,以帮助开放实践图书馆社区的发展。可以在 [Twitter][6]、[Instagram][7] 上找到实践图书馆,并收听 [该播客][8]。
|
||||
|
||||
### 3、添加你最喜欢的实践
|
||||
|
||||
你是一个拥有久经考验的方法的实践者,而图书馆里还没有涉及这个方法吗?如果能与大家分享,那就太好了。请注意,这些内容是在创意共享许可下授权的,以确保其开放给所有人使用并与他人分享。请查看该图书馆的 [编辑风格指南][9],了解更多关于如何为其撰写一篇实践。
|
||||
|
||||
OK,准备好了吗?
|
||||
|
||||
从菜单中选择 <ruby>添加一个实践<rt>Add a Practice</rt></ruby>。
|
||||
|
||||
![添加一个实践 (Donna Benjamin, CC BY-SA 4.0)][10]
|
||||
|
||||
这将使你进入内容管理系统(CMS)的登录页面。该图书馆使用开源的 Netlify CMS 来管理投稿。
|
||||
|
||||
选择 <ruby>用 Netlify 身份登录<rt>Login with Netlify Identity</rt></ruby>。
|
||||
|
||||
![用 Netlify 身份登录 (Donna Benjamin, CC BY-SA 4.0)][11]
|
||||
|
||||
然后点击 <ruby>使用 GitHub 继续<rt>Continue with GitHub</rt></ruby>。
|
||||
|
||||
![使用 Github 继续 (Donna Benjamin, CC BY-SA 4.0)][12]
|
||||
|
||||
接下来,用你的 GitHub 信息登录,或者(免费)创建一个账户。
|
||||
|
||||
![用 Github 的信息登录 (Donna Benjamin, CC BY-SA 4.0)][13]
|
||||
|
||||
登录后,选择 <ruby>新的实践<rt>New Practice</rt></ruby>,这将使你进入一个表格,可以将实践添加到集合中。
|
||||
|
||||
![选择新的实践 (Donna Benjamin, CC BY-SA 4.0)][14]
|
||||
|
||||
一旦你起草了新的实践,你还需要把你的名字和 GitHub 用户名添加到 CMS 中,以便在 <ruby>实践<rt>Practice</rt></ruby> 页面上显示。从 <ruby>快速添加<rt>Quick add</rt></ruby> 菜单中选择 <ruby>作者<rt>Author</rt></ruby>,或者从 <ruby>集合<rt> Collections</rt></ruby> 菜单中选择 <ruby>作者<rt>Author</rt></ruby>,然后选择 <ruby>新作者<rt>New Author</rt></ruby>。
|
||||
|
||||
![选择新作者 (Donna Benjamin, CC BY-SA 4.0)][15]
|
||||
|
||||
### 4、添加一个有用的资源或链接
|
||||
|
||||
点击 <ruby>改进此实践<rt>Improve this Practice</rt></ruby> 按钮,找到 <ruby>我们喜欢的链接<rt>links we love</rt></ruby>部分。发布网址、添加描述、并选择类别(例如,视频、博客)。
|
||||
|
||||
![改进此实践的按钮 (Donna Benjamin, CC BY-SA 4.0)][16]
|
||||
|
||||
你可以搜索你想改进的实践,例如,“Affinity Mapping”。
|
||||
|
||||
![搜索实践 (Donna Benjamin, CC BY-SA 4.0)][17]
|
||||
|
||||
然后点击实践名称,打开编辑页面。
|
||||
|
||||
### 5、看到一个错别字?
|
||||
|
||||
点击 <ruby>改进此实践<rt>Improve this Practice</rt></ruby> 按钮,直接去修改它吧
|
||||
|
||||
### 6、在 GitHub 上添加一个议题
|
||||
|
||||
看到有什么不对的地方吗?对某个功能有建议?请让社区知道。
|
||||
|
||||
**如何做:** 到 [议题页面][18] 并登录 GitHub 来添加一个新议题。
|
||||
|
||||
### 7、帮助处理网站的代码
|
||||
|
||||
在 GitHub 上有一个累积的议题,列出了网站上需要帮助的地方。如果你想卷起袖子,[帮助修复错误][19] 或开发新功能 —— 你甚至还可以贡献代码。
|
||||
|
||||
### 总结
|
||||
|
||||
为什么要贡献?这里有三个原因供你考虑。
|
||||
|
||||
1. “寓学于教”是一句古老的罗马谚语。
|
||||
|
||||
通过写下来并与他人分享,你会加深自己对所使用的实践的理解。对该实践的来源背景做一些研究,帮助注明原始来源,并找到其使用的例子。
|
||||
|
||||
2. 提高你的写作技巧。
|
||||
|
||||
通过遵循编辑风格指南,你正在学习调整你的自然写作风格以适应特定的标准。这是一项有价值的基本沟通技巧,你可以在一系列的环境中应用。
|
||||
|
||||
3. 展示领导力。
|
||||
|
||||
通过与一个开放的全球社区分享你的知识和专长,你可以帮助他人成长并从你的深度经验中学习。
|
||||
|
||||
[向开放实践图书馆贡献][20] 是参与全球开放的实践者社区的一种有趣而简单的方式,这些实践者都愿意分享他们的知识,并试图改善他们自己的工作方式。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/10/open-practice-library
|
||||
|
||||
作者:[Donna Benjamin][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/kattekrab
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/books_read_list_stack_study.png?itok=GZxb9OAv (Stack of books for reading)
|
||||
[2]: https://openpracticelibrary.com/learn
|
||||
[3]: https://opensource.com/sites/default/files/uploads/1_add-comment.png (Add a comment)
|
||||
[4]: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
[5]: https://talk.hyvor.com
|
||||
[6]: https://twitter.com/practicelibrary
|
||||
[7]: https://www.instagram.com/openpracticelibrary
|
||||
[8]: https://podcasts.apple.com/us/podcast/open-practice-podcast/id1501715186
|
||||
[9]: https://openpracticelibrary.com/page/editorial/
|
||||
[10]: https://opensource.com/sites/default/files/uploads/2_add-practice.gif (Add a practice)
|
||||
[11]: https://opensource.com/sites/default/files/uploads/2_login-netlify.png (Login with Netlify Identity)
|
||||
[12]: https://opensource.com/sites/default/files/uploads/3_continue-github.png (Continue with Github)
|
||||
[13]: https://opensource.com/sites/default/files/uploads/4_github_details.png (Log in with Github details)
|
||||
[14]: https://opensource.com/sites/default/files/uploads/5_new-practice.gif (Select New Practice)
|
||||
[15]: https://opensource.com/sites/default/files/uploads/6_select-new-author.gif (select New Author)
|
||||
[16]: https://opensource.com/sites/default/files/styles/medium/public/uploads/7_improve-this-practice.png?itok=ypFLi0uu (Improve this Practice button)
|
||||
[17]: https://opensource.com/sites/default/files/styles/medium/public/uploads/8_search-for-practice.png?itok=f81s25N8 (Search for practice)
|
||||
[18]: https://github.com/openpracticelibrary/openpracticelibrary/issues/new
|
||||
[19]: https://github.com/openpracticelibrary/openpracticelibrary/issues?q=is%3Aissue+is%3Aopen+label%3ABug
|
||||
[20]: https://openpracticelibrary.com/page/contribution-guide
|
@ -3,20 +3,20 @@
|
||||
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14109-1.html"
|
||||
|
||||
Fly-Pie:一个为依赖鼠标的用户提供的有趣菜单启动器
|
||||
Fly-Pie:一个为鼠标操作为主的用户提供的有趣菜单启动器
|
||||
======
|
||||
|
||||
_**简介:** Fly-Pie 是一个针对 GNOME 的菜单启动器,它使以鼠标为中心的用户可以进行一些操作。_
|
||||
> Fly-Pie 是一个用于 GNOME 的独特的菜单启动器,以操作鼠标为主的用户可以用它进行一些操作。
|
||||
|
||||
应用启动器可以方便地快速进入一个活动窗口,启动一个新的应用,等等。
|
||||
应用启动器可以方便地快速切换到一个活动窗口,启动新的应用,等等。
|
||||
|
||||
[Ulauncher][1] 就是这样一个应用启动器,如果你的 Linux 发行版没有提供任何开箱即用的程序,那么你可以使用它。
|
||||
[Ulauncher][1] 就是这样一个应用启动器,如果你的 Linux 发行版没有提供一个开箱即用的,那么你可以使用它。
|
||||
|
||||
如果这已经激起了你的兴趣,你会发现 Fly-Pie 很有趣!一个为主要使用鼠标的用户量身定做的应用启动器,他们总是把一只手放在鼠标上而不是键盘上进行导航。
|
||||
如果这已经激起了你的兴趣,你会发现 Fly-Pie 更有趣!以操作鼠标为主的用户总是把一只手放在鼠标上而不是依赖键盘进行导航,Fly-Pie 就是为他们量身定做的应用启动器。
|
||||
|
||||
![][2]
|
||||
|
||||
@ -24,23 +24,23 @@ _**简介:** Fly-Pie 是一个针对 GNOME 的菜单启动器,它使以鼠
|
||||
|
||||
是的,不幸的是,Fly-Pie 只针对 GNOME 用户。我不确定是否有类似的东西适用于 KDE 或其他桌面环境。如果你知道的话,请在评论区提出你的建议。
|
||||
|
||||
Fly-Pie 专注于为快捷方式、应用、媒体控制、最大化/最小化窗口、工作区导航提供视觉上的互动图标,以及比传统应用启动器更多的选项。
|
||||
Fly-Pie 主要为快捷方式、应用、媒体控制、最大化/最小化窗口、工作区导航提供了视觉上的互动图标,并且,比传统应用启动器更多的选项。
|
||||
|
||||
![][3]
|
||||
|
||||
当你进一步展开时,它就会展出子菜单和下下级菜单。所以,你可以有很多的用例,它应该能用上鼠标或触摸板的强大导航功能。
|
||||
你可以进一步展开子菜单和下下级菜单。所以,你可以有很多的用例,它应该能发挥鼠标或触摸板的强大导航功能。
|
||||
|
||||
![][4]
|
||||
|
||||
最重要的是它是高度可定制的。你可以选择背景图片、颜色、自定义图标、分支菜单等。
|
||||
|
||||
让我在提到它的一些功能时强调它的一些能力。
|
||||
让我来重点介绍它的一些功能。
|
||||
|
||||
### Fly-Pie 的特点
|
||||
|
||||
![][5]
|
||||
|
||||
如果你是一个以鼠标为中心的用户或触摸板用户,Fly-Pie给 你提供了一个令人兴奋的导航能力。显而易见,如果你是一个有经验的键盘用户,这并不适合你(但你应该试一下!)。
|
||||
如果你是一个以鼠标或触摸板操作为主的用户,Fly-Pie 为你提供了令人兴奋的导航能力。显而易见,如果你是一个有经验的键盘用户,这并不适合你(但你应该试一下!)。
|
||||
|
||||
以下是你可以期待的 Fly-Pie 的一些主要功能:
|
||||
|
||||
@ -59,33 +59,31 @@ Fly-Pie 专注于为快捷方式、应用、媒体控制、最大化/最小化
|
||||
* 检查实时预览,以便在使用前轻松定制和测试菜单
|
||||
* 通过绘画手势选择项目
|
||||
|
||||
|
||||
|
||||
![][6]
|
||||
|
||||
除了这些功能外,它还增加了一个成就功能,以鼓励用户探索菜单工具的各种使用情况。
|
||||
|
||||
下面是开发者在YouTube上播放的一段官方视频,展示了它的操作:
|
||||
下面是开发者在 YouTube 上播放的一段官方视频,展示了它的操作:
|
||||
|
||||
![video](https://img.linux.net.cn/static/video/Fly-Pie%2010%20-%20A%20new%20Clipboard%20Menu%2C%20proper%20touch%20support%20%26%20much%20more%21-BGXtckqhEIk.mp4)
|
||||
|
||||
### 在 Linux 中安装 Fly-Pie
|
||||
|
||||
考虑到它是一个 GNOME 扩展,你将不得不首先[进行设置,以便能够在你的 Linux 发行版上使用 GNOME 扩展][7]。
|
||||
考虑到它是一个 GNOME 扩展,你必须得首先 [进行设置,以便能够在你的 Linux 发行版上使用 GNOME 扩展][7]。
|
||||
|
||||
设置完成后,你就可以前往 [Fly-Pie 的 GNOME 扩展页面][8]并轻松地安装该扩展。
|
||||
设置完成后,你就可以前往 [Fly-Pie 的 GNOME 扩展页面][8] 并轻松地安装该扩展。
|
||||
|
||||
你应该能够在那里卸载它并访问设置。如果你很好奇,你可以探索它的 [GitHub 页面][9],了解更多信息。
|
||||
你应该能够在该页面卸载它并访问设置。如果你感兴趣,可以探索它的 [GitHub 页面][9],了解更多信息。
|
||||
|
||||
GitHub页面还包括了帮助你探索其所有功能的文档。
|
||||
|
||||
[Fly-Pie GNOME Extension][8]
|
||||
它的 GitHub 页面还包括了帮助你探索其所有功能的文档。
|
||||
|
||||
### 关于使用 Fly-Pie 菜单启动器的想法
|
||||
|
||||
Fly-Pie 菜单并不完全是为了取代应用启动器。然而,根据你的使用情况,它可以作为一个基于覆盖层的菜单或一个以鼠标为中心的启动器来访问选项/应用,非常方便。
|
||||
Fly-Pie 菜单并不完全是为了取代应用启动器。然而,根据你的使用情况,它可以作为一个基于覆盖层的菜单或一个以鼠标操作为主的启动器来访问选项/应用,非常方便。
|
||||
|
||||
尽管它是可定制的,但原版看起来是最好的,可以很容易地与你在 Linux 桌面上的任何类型的主题融合在一起。
|
||||
|
||||
令人印象深刻的是,它可以找到细微的调整来定制图标、缩放、颜色、透明度等等。如果你愿意,你可以玩一玩。
|
||||
令人印象深刻的是,它可以找到细微的调整来定制图标、缩放、颜色、透明度等等。如果你愿意,你可以试试。
|
||||
|
||||
考虑到我不是一个使用键盘导航的人,Fly-Pie 看起来是一个有用的 GNOME 扩展,可以节省时间,并为桌面体验增加一个独特的点。
|
||||
|
@ -0,0 +1,182 @@
|
||||
[#]: subject: "4 ways you can edit a PDF with the pdftk-java command"
|
||||
[#]: via: "https://opensource.com/article/21/12/edit-pdf-linux-pdftk"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14121-1.html"
|
||||
|
||||
用 pdftk-java 命令编辑 PDF 的 4 种方法
|
||||
======
|
||||
|
||||
> 用这个方便的 Linux 命令合并 PDF、删除页面、分割 PDF 和填写表格。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/27/130643zzwbp4azsxahqzga.jpg)
|
||||
|
||||
技术白皮书、手稿和 RPG 手册,我每天都要处理大量的 PDF 文件。PDF 格式之所以受欢迎,是因为它包含经过处理的 PostScript 代码。PostScript 是现代打印机的原生语言,所以出版商经常将一本书的数字版本发布为 PDF,因为他们已经投入了时间和精力来制作印刷用的文件。但是,PDF 并不是一种可编辑的格式,虽然可以进行一些逆向处理,但它是数字数据发送到打印机之前的最后一站。即便如此,有时你还是需要对 PDF 进行调整,而我最喜欢的工具之一就是 [pdftk-java][2] 命令。
|
||||
|
||||
### 在 Linux 上安装 pdftk-java
|
||||
|
||||
顾名思义,`pdftk-java` 是用 Java 编写的,所以只要你安装了 Java,它就能在所有主流的操作系统上工作。
|
||||
|
||||
Linux 和 macOS 用户可以从 [AdoptOpenJDK.net][3] 安装 Java。Windows 用户可以安装 [Red Hat 的 OpenJDK 的 Windows版本][4]。
|
||||
|
||||
要安装 `pdftk-java`:
|
||||
|
||||
1、从 Gitlab 仓库下载 [pdftk-all.jar 程序][5],并将其保存到 `~/.local/bin/` 或[你 path 变量中的其他位置][6]。
|
||||
|
||||
2、在你喜欢的文本编辑器中打开 `~/.bashrc` 并添加这一行:
|
||||
|
||||
```
|
||||
alias pdftk='java -jar $HOME/.local/bin/pdftk-all.jar'
|
||||
```
|
||||
|
||||
3、加载你的新 Bash 设置:
|
||||
|
||||
```
|
||||
$ source ~/.bashrc
|
||||
```
|
||||
|
||||
### 命令语法
|
||||
|
||||
一个有效的 `pdftk-java` 命令的结构遵循一个模式,但在模式中的内容有很大的灵活性。语法有点不寻常,因为它没有使用传统风格的 [终端选项][7],但经过实践,它并不难记。
|
||||
|
||||
* `pdftk`:调用该命令的别名
|
||||
* 输入文件:你想修改的 PDF 文件
|
||||
* 动作:你想对输入文件做什么
|
||||
* 输出:你想在哪里保存你修改过的 PDF 文件
|
||||
|
||||
最复杂的是动作部分,所以我将从简单的任务开始。
|
||||
|
||||
### 将两个 PDF 文件合并成一个
|
||||
|
||||
一本书的封面通常在一个单独的应用中创建,如 Inkscape 或 GIMP,而书的其他部分通常在 Scribus 等排版程序或 LibreOffice 等办公套件中完成,这种情况并不罕见。你可以在你的排版应用中把这两者结合起来。像 Scribus 这样的出版软件可以很容易地引用一张图片,这样当封面改变时,它就会在版面中自动更新。然而,也可以用 `pdftk-java` 将封面预置到 PDF 中:
|
||||
|
||||
```
|
||||
$ pdftk cover.pdf body.pdf \
|
||||
cat \
|
||||
output book.pdf
|
||||
```
|
||||
|
||||
在这个例子中,动作是 `cat` 即 <ruby>连接<rt>concatenate</rt></ruby> 的缩写,和 Linux 的 [cat 命令][8] 一样,它将一个或多个 PDF 文件串联成一个数据流,数据流被引导到“<ruby>输出<rt>output</rt></ruby>”参数指定的任何文件中。
|
||||
|
||||
### 从一个 PDF 中删除页面
|
||||
|
||||
你不能确切地从一个 PDF 中删除一页,但你可以创建一个新的 PDF,只包含你想保留的页面。
|
||||
|
||||
```
|
||||
$ pdftk book.pdf \
|
||||
cat 1 3-end \
|
||||
output shorter-book.pdf
|
||||
```
|
||||
|
||||
在这个例子中,我的书的文件的第 1 页,以及从 3 到结尾的所有页面,都被保存到一个新文件中。因此,我删除的那一页是第 2 页。
|
||||
|
||||
### 将一个 PDF 分割成不同的文件
|
||||
|
||||
将一个 PDF 文件分割成许多不同的文件也使用 `cat` 动作,它的原理与删除页面相似。你可以通过将你想要的页面发送到一个新文件来分割一个 PDF:
|
||||
|
||||
```
|
||||
$ pdftk book.pdf \
|
||||
cat 1-15 \
|
||||
output part-1.pdf
|
||||
$ pdftk book.pdf \
|
||||
cat 16-42 \
|
||||
output part-2.pdf
|
||||
```
|
||||
|
||||
如果你需要将一个 PDF 分割成单页文件,有一个特殊的动作,叫做 `burst`:
|
||||
|
||||
```
|
||||
$ pdftk book.pdf burst
|
||||
$ ls
|
||||
book.pdf pg_0001.pdf pg_0002.pdf
|
||||
pg_0003.pdf pg_0004.pdf pg_0005.pdf
|
||||
[...]
|
||||
|
||||
```
|
||||
|
||||
### 填写表格
|
||||
|
||||
很少有人能否认多年来 PDF 格式变得越来越臃肿,而你有时在 PDF 文件中发现的一个功能是可填写的表格。你会在美国税务文件、RPG 角色表、线上学校作业本和其他旨在互动的 PDF 文件中看到这种情况。虽然大多数现代的 PDF 浏览器,比如 GNOME 的 Evince 和 KDE 的 Okular,都可以填写 PDF 表格,但你也可以在 `pdftk-java` 的帮助下填写 PDF 表格。
|
||||
|
||||
首先,你必须使用 `generate_fdf` 动作提取表单数据。这将提取表单元素的 ID,并将它们放入一个文本文件。
|
||||
|
||||
```
|
||||
$ pdftk character-sheet.pdf \
|
||||
generate_fdf \
|
||||
output chsheet-form.txt
|
||||
|
||||
```
|
||||
|
||||
你的目标文件(在这个例子中是 `chsheet-form.txt`)包含 PDF 中的表格数据,但只是文本部分。你可以在任何标准的文本编辑器中编辑它,如 [Atom][9] 或 [Gedit][10]。
|
||||
|
||||
在对生成 PDF 的组织的工作流程的有时令人钦佩和有时尴尬的一瞥中,你会发现一些表格有明确的标签,而其他表格有默认的名字,如 “Checkbox_001” 和 “Textfield-021”,所以你可能要把你的文本文件和你的 PDF 对照一下,但如果你要写一个脚本来自动填写表格,这可能是值得的。每个标签都被标记为 `/T` 项,在接下来的一行中,有空间(标记为 `/V`)提供给文本输入。下面是一个片段,它的标签有上下文,并填入了一些数据:
|
||||
|
||||
```
|
||||
/T (CharacterName 2)
|
||||
/V (Abaddon)
|
||||
>>
|
||||
<<
|
||||
/T (SlotsTotal 24)
|
||||
/V ()
|
||||
>>
|
||||
<<
|
||||
/T (Hair)
|
||||
/V (Brown)
|
||||
>>
|
||||
<<
|
||||
/T (AC)
|
||||
/V (15)
|
||||
>>
|
||||
<<
|
||||
/T (Background)
|
||||
/V ()
|
||||
>>
|
||||
<<
|
||||
/T (DEXmod )
|
||||
/V ()
|
||||
```
|
||||
|
||||
当你输入了表单数据,你就可以用 `fill_form` 动作将你的文本输入与 PDF 结构结合起来:
|
||||
|
||||
```
|
||||
$ pdftk character-sheet.pdf \
|
||||
fill_form chsheet-form.txt \
|
||||
output completed.pdf
|
||||
```
|
||||
|
||||
下面是一个结果示例。
|
||||
|
||||
![A form filled by pdftk-java][11]
|
||||
|
||||
### PDF 修改变得简单
|
||||
|
||||
当你处理大量的 PDF 文件或通过 shell 脚本处理 PDF 文件时,像 `pdftk-java` 这样的工具是非常有价值的,因为它使你不必手动做所有的事情。当我从 [Docbook][12] 的输出建立一个 PDF 时,它是一个 Makefile,调用 `pdftk-java` 完成任何数量的任务,所以我没有机会忘记某个步骤或打错命令,也没有必要把时间花在这上面。在你自己的工作流程中,还有很多其他的原因你可能会使用 `pdftk-java`,它还可以做很多其他的事情,包括 `shuffle`、`rotate`、`dump_data`、`update_info` 和 `attach_files` 等动作。如果你发现自己经常与 PDF 文件打交道,可以试试 `pdftk-java`。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/edit-pdf-linux-pdftk
|
||||
|
||||
作者:[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/checklist_hands_team_collaboration.png?itok=u82QepPk (a checklist for a team)
|
||||
[2]: https://gitlab.com/pdftk-java/pdftk
|
||||
[3]: https://adoptopenjdk.net/releases.html
|
||||
[4]: https://developers.redhat.com/products/openjdk/download
|
||||
[5]: https://gitlab.com/pdftk-java/pdftk/-/jobs/1527259628/artifacts/raw/build/libs/pdftk-all.jar
|
||||
[6]: https://opensource.com/article/17/6/set-path-linux
|
||||
[7]: https://opensource.com/article/21/8/linux-terminal
|
||||
[8]: https://opensource.com/article/19/2/getting-started-cat-command
|
||||
[9]: https://opensource.com/article/20/12/atom
|
||||
[10]: https://opensource.com/article/20/12/gedit
|
||||
[11]: https://opensource.com/sites/default/files/pdftk-form-fill.jpg (A form filled by pdftk-java)
|
||||
[12]: https://opensource.com/article/17/9/docbook
|
@ -0,0 +1,223 @@
|
||||
[#]: subject: "Deploy Mycroft AI voice assistant on Raspberry Pi using Ansible"
|
||||
[#]: via: "https://opensource.com/article/21/12/mycroft-raspberry-pi-ansible"
|
||||
[#]: author: "Gaëtan Trellu https://opensource.com/users/goldyfruit"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "jrglinux"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14102-1.html"
|
||||
|
||||
使用 Ansible 在树莓派上部署 Mycroft AI 语音助手
|
||||
======
|
||||
|
||||
> 使用本文中的这些 Ansible 剧本可以帮你获得更优的 Mycroft AI 体验。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/21/135748sdbpuhu6p3duus32.jpg)
|
||||
|
||||
Mycroft AI 是一款虚拟助手应用程序,可以响应语音请求并完成相应的任务,比如在互联网上搜索你需要的某些信息,或者下载你喜欢的博客等等。这是一款优秀的开源软件,不同于那些收集个人数据业务的公司的同款软件,Mycroft AI 注重于保护隐私以及提供平台灵活性。
|
||||
|
||||
Mycroft AI 使用 python 开发,可以安装于不同的硬件平台上。家喻户晓的树莓派便是一个非常热门的运行语音助手的硬件方案(不过不是唯一的方案)。方便的是,Mycroft 为树莓派提供了 [Picroft][2] 镜像,虽然目前 Picroft 还有一些限制,比如不支持 64 位系统,不过不能阻止它成为一种优秀的解决方案。
|
||||
|
||||
### 树莓派 4,我选择的目标平台
|
||||
|
||||
树莓派在 Mycroft 社区中非常受欢迎,因为其性价比高,在教育行业中有着巨大的优势,并且由于 Mycroft 提供的便捷功能以及树莓派本身易于访问的输入/输出(GPIO)引脚等,为树莓派提供了有趣的扩展可能(比如,提供 [唤醒词 LED GPIO][3] 能力)。
|
||||
|
||||
树莓派 4B 具有足够的 CPU 算力以及内存来平稳运行 Mycroft。我使用的是 8G 内存的树莓派4B,运行 Raspberry Pi OS Bullseye 64-bit 系统,你可以从 [RaspberryPi.org][4] 网站下载该系统镜像文件。
|
||||
|
||||
### 自动化这件事
|
||||
|
||||
构建你自己的 Mycroft AI 系统,必须要注意一些细节问题。根据我(一年以来)的初步经验,以下罗列了一些重要的技术细节点:
|
||||
|
||||
* 音频输出(扬声器配置)
|
||||
* 音频输入(麦克风配置)
|
||||
* 麦克风质量(以购买的实际硬件为准)
|
||||
* 唤醒词响应(比如打招呼 “嘿,Mycroft”)
|
||||
* 响应延迟(比如提问 “天气怎么样”)
|
||||
|
||||
这些并不是 Mycroft AI 的问题(LCTT 译注:难道软件平台就没有处理延时问题?),它们只能是你在选择硬件和配置操作时必须牢记关心的事情。树莓派本身能够运行 Mycroft AI,但有一些配置需要额外的注意下:
|
||||
|
||||
* CPU 调度器
|
||||
* SD 卡性能
|
||||
* PulseAudio 配置
|
||||
* 网络延迟
|
||||
|
||||
我做了大量的研究和实践来解决上面列出这些令人头疼的注意点,最终我实现了我的“终极”目标 —— 最流畅的体验!
|
||||
|
||||
### Ansible 雪中送炭
|
||||
|
||||
我已经摸索出了最流畅的体验配置,但是如何确保在任何树莓派 4 板子上都能不遗漏每一个设置细节,然后达到重新部署这种流畅性体验的目标呢?
|
||||
|
||||
[Ansible][5] 能帮助你实现。Ansible 在设计上是幂等设计,这意味着它仅在需要时响应更改的请求。如果一切配置正确,Ansible 不会改变任何事情。这便是幂等设计的优美之处。
|
||||
|
||||
为了达到这一目的,我使用了两种 Ansible 场景角色工具:
|
||||
|
||||
* 一个用于配置和调整树莓派
|
||||
* 一个用于安装和配置 Mycroft AI
|
||||
|
||||
### Ansible prepi 角色
|
||||
|
||||
[Ansible prepi role][6] 应用了一些配置,以便让树莓派 4B 发挥更佳的性能以及为安装 Mycroft 做前提准备。
|
||||
|
||||
* 更新 Raspberry Pi OS 至最新版本
|
||||
* 添加 Debian backports 仓库
|
||||
* 使用 next 分支更新固件,该分支支持 5.15 版本内核以及边缘固件
|
||||
* 使用测试版本更新 EEPROM,该版本支持边缘功能
|
||||
* 设置 `initial_turbo` 用来加速启动过程
|
||||
* 将树莓派超频至 2GHz
|
||||
* 在 RAMDisck 上挂载 `/tmp`
|
||||
* 优化 `/` 分区挂载选项,提升 SD 卡读/写性能
|
||||
* 管理 I2C、SPI、UART 接口
|
||||
* 设置 CPU 控制器至避免在空间内核函数之间发生上下文切换的模式,以便提升性能
|
||||
* 安装和配置 PulseAduio(非系统范围)
|
||||
* 新固件或者 EEPROM 安装后重启树莓派
|
||||
|
||||
### Ansible mycroft 角色
|
||||
|
||||
[Ansible mycroft role][7] 基于脚本 `dev_setup.sh` 从 Github 仓库获取并安装和配置 Mycroft AI,该脚本是 Mycroft 核心团队提供。
|
||||
|
||||
* 需要准备 Python3 环境
|
||||
* 系统集成环境
|
||||
* 额外的安装技能
|
||||
* 安装 Boto3、py_mplayer、pyopenssl 库
|
||||
* 支持 IPC 的 RAMDisck
|
||||
* 支持文件配置
|
||||
* PulseAudio 优化
|
||||
* 安全的 Mycroft 消息总线 websocket
|
||||
|
||||
我利用 [Ansible 剧本][8] 来协调上面两个角色的使用。
|
||||
|
||||
### 个人配置需求
|
||||
|
||||
下面列举了一些个人配置的需求:
|
||||
|
||||
* 能上网的树莓派 4B 板子(或者更新的板子)
|
||||
* [Raspberry Pi OS 64-bit][9]
|
||||
* Ansible 2.9(或者更新版本)
|
||||
* 可正常工作的 SSH
|
||||
|
||||
推荐使用 [Etcher][10] 来烧录 Raspberry Pi OS 镜像至 SD 卡,你也可以使用你选择的镜像烧录工具。
|
||||
|
||||
我将树莓派超频来提升性能,不过这可能对你的硬件是一种潜在危险。在使用我的 Ansible 剧本配置之前,请先仔细阅读。你需要为你的每个配置选择负责。你将决定使用哪个固件、哪个 EEPROM。超频的话需要记得提供相应的冷却系统。
|
||||
|
||||
### 执行 Ansible 剧本
|
||||
|
||||
第一步,使用命令从 Github 获取 Ansible 剧本:
|
||||
|
||||
```
|
||||
$ git clone https://github.com/smartgic/ansible-playbooks-mycroft.git
|
||||
```
|
||||
|
||||
源码中,`requirements.yml` 文件中提供了该剧本的依赖角色列表,必须从 Ansible Galaxy 中检索这些依赖。
|
||||
|
||||
```
|
||||
$ cd ansible-playbooks-mycroft
|
||||
$ ansible-galaxy install -r requirements.yml
|
||||
Starting galaxy role install process
|
||||
- downloading role 'mycroft', owned by smartgic
|
||||
- downloading role from https://github.com/smartgic/ansible-role-mycroft/archive/main.tar.gz
|
||||
- extracting smartgic.mycroft to /home/goldyfruit/.ansible/roles/smartgic.mycroft
|
||||
- smartgic.mycroft (main) was installed successfully
|
||||
- downloading role 'prepi', owned by smartgic
|
||||
- downloading role from https://github.com/smartgic/ansible-role-prepi/archive/main.tar.gz
|
||||
- extracting smartgic.prepi to /home/goldyfruit/.ansible/roles/smartgic.prepi
|
||||
- smartgic.prepi (main) was installed successfully
|
||||
```
|
||||
|
||||
第二步,编辑仓库中的 Ansible 清单,设置需要管理的主机。
|
||||
|
||||
```
|
||||
[rpi]
|
||||
rpi4b01 ansible_host=192.168.1.97 ansible_user=pi
|
||||
```
|
||||
|
||||
`[rpi]` 代表组,无需更改。该组有一个主机 `rpi4b01`,其 IP 地址为 `192.168.1.97`, 并创建 `pi` 作为 Linux(Raspberry Pi OS)上的默认用户。
|
||||
|
||||
现在比较棘手的部分到了:你希望每个选项怎么配置?这取决于你自己,下面是我的首选配置,供你参考:
|
||||
|
||||
```
|
||||
# file: install-custom.yml
|
||||
- hosts: rpi
|
||||
gather_facts: yes
|
||||
become: yes
|
||||
|
||||
pre_tasks:
|
||||
- name: Install Python 3.x Ansible requirement
|
||||
raw: apt-get install -y python3
|
||||
changed_when: no
|
||||
tags:
|
||||
- always
|
||||
|
||||
vars:
|
||||
# PREPI
|
||||
prepi_pi_user: pi
|
||||
prepi_hostname: mylovelypi
|
||||
prepi_firmware_update: yes
|
||||
prepi_overclock: yes
|
||||
prepi_force_turbo: yes
|
||||
prepi_cpu_freq: 2000
|
||||
prepi_pulseaudio_daemon: yes
|
||||
|
||||
# MYCROFT
|
||||
mycroft_branch: dev
|
||||
mycroft_user: "{{ prepi_pi_user }}"
|
||||
mycroft_skills_update_interval: 2.0
|
||||
mycroft_recording_timeout_with_silence: 3.0
|
||||
mycroft_enclosure_name: picroft
|
||||
mycroft_extra_skills:
|
||||
- https://github.com/smartgic/mycroft-finished-booting-skill.git
|
||||
|
||||
tasks:
|
||||
- import_role:
|
||||
name: smartgic.prepi
|
||||
|
||||
- import_role:
|
||||
name: smartgic.mycroft
|
||||
```
|
||||
|
||||
上面的配置内容需要保存在文件里(比如,`install-custom.yml`)。
|
||||
|
||||
现在关键步骤:运行你新创建的剧本。
|
||||
|
||||
```
|
||||
$ ansible-playbook -i inventory install-custom.yml -k
|
||||
```
|
||||
|
||||
`-k` 选项只有在不需要 SSH 密钥的时候才使用。在命令执行期间,树莓派可能会重启若干次。Ansible 剧本会自动处理这个问题,不必担心。
|
||||
|
||||
Ansible 配置完成后,你可以看到一条祝贺消息,提示你下一步需要做什么。
|
||||
|
||||
![Congratulations message (Gaëtan Trellu, CC BY-SA 4.0)][11]
|
||||
|
||||
### Ansible 让定制 Mycroft 变得更容易
|
||||
|
||||
这些 Ansible 剧本是我开始使用 Mycroft AI 后学到的经验教训。它们帮助我在任何一个地方都能构建、重构、定制、拷贝我的安装,并保持一致,这让我很省心!
|
||||
|
||||
读完此文,你有何意见、问题或疑虑?欢迎在 Twitter上 [@goldyfruit][13]上和我交流,或者访问 [Mycroft 频道][14] 搜寻答案。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/mycroft-raspberry-pi-ansible
|
||||
|
||||
作者:[Gaëtan Trellu][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[jrglinux](https://github.com/jrglinux)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/goldyfruit
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/tips_map_guide_ebook_help_troubleshooting_lightbulb_520.png?itok=L0BQHgjr "Looking at a map"
|
||||
[2]: https://mycroft-ai.gitbook.io/docs/using-mycroft-ai/get-mycroft/picroft
|
||||
[3]: https://github.com/smartgic/mycroft-wakeword-led-gpio-skill
|
||||
[4]: https://downloads.raspberrypi.org/raspios_lite_arm64/images/raspios_lite_arm64-2021-11-08/2021-10-30-raspios-bullseye-arm64-lite.zip
|
||||
[5]: https://github.com/ansible/ansible
|
||||
[6]: https://github.com/smartgic/ansible-role-prepi
|
||||
[7]: https://github.com/smartgic/ansible-role-mycroft
|
||||
[8]: https://github.com/smartgic/ansible-playbooks-mycroft
|
||||
[9]: https://downloads.raspberrypi.org/raspios_arm64/images
|
||||
[10]: https://opensource.com/article/18/7/getting-started-etcherio
|
||||
[11]: https://opensource.com/sites/default/files/uploads/congratulations-message.png "Congratulations message"
|
||||
[12]: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
[13]: https://twitter.com/goldyfruit
|
||||
[14]: https://chat.mycroft.ai/community/channels/general
|
@ -3,28 +3,28 @@
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14115-1.html"
|
||||
|
||||
在 Ubuntu 和其他 Linux 发行版的 GNOME 搜索结果中隐藏或添加特定文件夹
|
||||
GNOME 搜索功能的一些小技巧
|
||||
======
|
||||
|
||||
你可能已经注意到,当你在 GNOME 菜单/活动区搜索某样东西时,它也会显示名称与搜索词相匹配的文件,以及已安装的应用。
|
||||
|
||||
![Search in GNOME activities shows installed applications and matching files][1]
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/25/115842tf8jjgn4ttz7nf4m.jpg)
|
||||
|
||||
这是个很方便的功能。如果你记得文件名,甚至是它的一部分,你可以很容易地搜索到它,只需按下超级键(Windows 键)并输入文件名就可以打开它。
|
||||
这是个很方便的功能。如果你记得文件名,甚至是它的一部分,你可以很容易地搜索到它,只需按下 `Super` 键(`Windows` 键)并输入文件名就可以打开它。
|
||||
|
||||
但是,围绕这个搜索功能,有一些你可能不知道或从未关心过的小问题。
|
||||
|
||||
在这篇文章中,我将分享你如何控制GNOME搜索功能,从搜索选项中添加或隐藏文件夹,以及完全禁用它。
|
||||
在这篇文章中,我将分享你如何控制 GNOME 搜索功能,从搜索选项中添加或隐藏文件夹,以及完全禁用它。
|
||||
|
||||
_**注意:这是专门针对使用 GNOME 的发行版。请[确认你使用的是哪种桌面环境][2]并确保是 GNOME。**_
|
||||
注意:这专门针对使用 GNOME 的发行版。请 [确认你使用的是哪种桌面环境][2],确保是 GNOME。
|
||||
|
||||
### 文件搜索的默认位置
|
||||
|
||||
GNOME 的搜索功能使用了一个叫做 [Tracker Miner FS][3] 的工具。请不要被 _tracker_ 和 _miner_ 这样的术语吓到。它不是在监视你,也不是在你的系统上挖掘加密货币。它的基本功能是作为一个搜索引擎和数据库,为你提供即时搜索结果。
|
||||
GNOME 的搜索功能使用了一个叫做 [Tracker Miner FS][3] 的工具。请不要被 “tracker” 和 “miner” 这样的术语吓到。它不是在监视你,也不是在你的系统上挖掘加密货币。它的基本功能是作为一个搜索引擎和数据库,为你提供即时搜索结果。
|
||||
|
||||
默认情况下,文件索引发生在元文件夹,如文档、音乐、图片和视频目录及其子目录。主页和下载文件夹中的文件也会被索引,但不包括其子目录中的文件。
|
||||
|
||||
@ -32,7 +32,7 @@ GNOME 的搜索功能使用了一个叫做 [Tracker Miner FS][3] 的工具。请
|
||||
|
||||
如果你在你的主文件夹中创建了一些新的目录,这些文件将不会被索引。
|
||||
|
||||
然而,最近访问的文件也会被自动编入索引。如果你最近打开了一个文件,它将被添加到“最近的文件”中,并将出现在搜索结果中,而不管它在什么地方。
|
||||
然而,最近访问的文件也会被自动编入索引。如果你最近打开了一个文件,它将被添加到 “最近的文件” 中,并将出现在搜索结果中,而不管它在什么地方。
|
||||
|
||||
如果你还不知道的话,你可以在文件管理器中看到你最近访问的文件:
|
||||
|
||||
@ -44,11 +44,11 @@ GNOME 的搜索功能使用了一个叫做 [Tracker Miner FS][3] 的工具。请
|
||||
|
||||
要在搜索结果中添加自定义文件夹中的文件,你可以将该文件夹添加到搜索位置。
|
||||
|
||||
通过在菜单/活动区搜索打开“设置”应用。
|
||||
通过在菜单/活动区搜索打开 “设置” 应用。
|
||||
|
||||
![Search for settings application][6]
|
||||
|
||||
从左侧边栏进入**搜索**选项,点击顶部的**搜索位置**选项。在弹出的窗口中,进入**其他**标签,点击 **+** 符号。它将添加文件浏览器,你可以添加你想要的文件夹。
|
||||
从左侧边栏进入 “搜索” 选项,点击顶部的“搜索位置”选项。在弹出的窗口中,进入 “其他” 标签,点击 “+” 符号。它将打开文件浏览器,你可以添加你想要的文件夹。
|
||||
|
||||
![Adding a custom folder content to search][7]
|
||||
|
||||
@ -62,17 +62,17 @@ GNOME 的搜索功能使用了一个叫做 [Tracker Miner FS][3] 的工具。请
|
||||
|
||||
![Disable meta folders from the search][8]
|
||||
|
||||
如果你只想让文档下的某个文件夹的内容不出现在搜索结果中,你只需要在该文件夹中创建一个名为 **.nomedia** 的新文件。你也可以将该文件命名为 .git、.trackerignore 或 .hg。
|
||||
如果你只想让文档下的某个文件夹的内容不出现在搜索结果中,你只需要在该文件夹中创建一个名为 `.nomedia` 的新文件。你也可以将该文件命名为 `.git`、`.trackerignore` 或 `.hg`。
|
||||
|
||||
![Hide specific folder from search results by creating file named .nomedia or .hg or .git][9]
|
||||
|
||||
如果你在鼠标右键中没有看到创建新文件的选项,你必须做一些调整来增加[在右键上下文菜单中创建新文件选项][10]。还要注意的是,任何名称中以 . 开头的文件都会被隐藏起来,不能被正常查看。要[切换显示隐藏文件][11],按 Ctrl+H 键。
|
||||
如果你在鼠标右键中没有看到创建新文件的选项,你必须做一些调整来增加 [在右键上下文菜单中创建新文件选项][10]。还要注意的是,任何名称中以 `.` 开头的文件都会被隐藏起来,不能被正常查看。要 [切换显示隐藏文件][11],按 `Ctrl+H` 键。
|
||||
|
||||
这种隐藏可能不会立即生效,因为该文件可能已经被索引了。你可能必须注销或重启才能看到效果。
|
||||
|
||||
如果你手动访问一个文件,它将被添加到最近的文件中,并且会出现在搜索结果中,尽管文件夹中的文件被忽略了。
|
||||
|
||||
你可以从 **Settings-> Privacy-> File History & Trash** 删除最近的文件历史或完全禁用它(如果你想的话)。不过我认为没有必要,所以在这里你自己决定吧。
|
||||
你可以从 “设置 -> 隐私 -> 文件历史 & 垃圾箱” 删除最近的文件历史或完全禁用它(如果你想的话)。不过我认为没有必要,所以在这里你自己决定吧。
|
||||
|
||||
![Clear or disable file access history in GNOME][12]
|
||||
|
||||
@ -82,15 +82,15 @@ GNOME 的搜索功能使用了一个叫做 [Tracker Miner FS][3] 的工具。请
|
||||
|
||||
![Disable search results for all files][13]
|
||||
|
||||
你应该通过点击顶部的搜索切换按钮完全禁用搜索功能,因为它可能会干扰 GNOME 桌面环境的正常功能。
|
||||
你应该通过点击顶部的搜索切换按钮完全禁用搜索功能,它可能会干扰 GNOME 桌面环境的正常功能。
|
||||
|
||||
关于它的更多细节可以在[项目主页]中找到。
|
||||
关于它的更多细节可以在 [项目主页] 中找到。
|
||||
|
||||
### 总结
|
||||
|
||||
这里的**_讨论的是文件搜索_**。GNOME 桌面也在日历、字符映射和其他一些程序中进行搜索。你可以禁用或启用可用的搜索选项,但我们不要专注于此。
|
||||
这里的 _讨论的是文件搜索_。GNOME 桌面也可以在日历、字符映射和其他一些程序中进行搜索。你可以禁用或启用可用的搜索选项,但我们这篇不针对这些。
|
||||
|
||||
我希望你觉得这个快速提示对[定制你的 GNOME 体验][15]有帮助。如果你知道其他一些你想让别人知道的技巧,请在评论中与我们分享。
|
||||
我希望你觉得这个快速提示对 [定制你的 GNOME 体验][15] 有帮助。如果你知道其他一些你想让别人知道的技巧,请在评论中与我们分享。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -99,7 +99,7 @@ via: https://itsfoss.com/control-gnome-file-search/
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -0,0 +1,139 @@
|
||||
[#]: subject: "Write your screenplay on Linux in Fountain markdown"
|
||||
[#]: via: "https://opensource.com/article/21/12/linux-fountain"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14114-1.html"
|
||||
|
||||
在 Linux 上用 Markdown 编写你的电影剧本
|
||||
======
|
||||
|
||||
> Fountain markdown 技术只需要一个纯文本编辑器,如 Atom、Kate、Gedit 或类似的编辑器,它可以导出一个正确格式的 HTML 或 PDF 剧本。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/25/102630gl455tbmkq9lq5ty.jpg)
|
||||
|
||||
剧本是一部电影的蓝图,过去它是在打字机上撰写的。你买台打字机就可以写剧本,可以写好多好多剧本。而现在没人用打字机写剧本了,因为打字机不再流行。
|
||||
|
||||
不过,令人费解的是,随着写作技术变得 “越好”,写剧本就越难。在剧本领域有严格的格式化规则,以帮助电影拍摄中的助理导演(AD)估计每个场景需要拍摄多长时间。你可能认为电脑会比在打字机上的完全手工过程更容易做到。然而,流行的计算机却用昂贵的软件来限制作家,这些软件已经嵌入了好莱坞文化。如果你没有合适的软件,你就会被告知,你永远不可能成为一个正式的编剧。
|
||||
|
||||
不过,所有这些都随着开源软件的出现而改变,写剧本的最简单方法之一就是根本不使用特殊的软件。[Fountain][2] markdown 技术只需要一个纯文本编辑器,如 [Atom][3]、[Kate][4]、[Gedit][5],或类似的,它可以导出一个正确格式的 HTML 或 PDF 剧本。
|
||||
|
||||
### 安装 Fountain
|
||||
|
||||
Fountain 不需要安装,因为它不是软件;它是一套你在写作时使用的规则。你在写作时已经遵循了一些规则,比如你把句子的第一个字母大写,用句号来结束每句话,等等。当你用 Fountain 写作时,只需要添加一些专门针对剧本的新规则。
|
||||
|
||||
### 片段
|
||||
|
||||
在剧本中,每个场景都由一行大写字母划定,以 `INT.` 或 `EXT.` 开头,然后是一个地点、一个破折号,以及一天中的时间。这些说明被称为 “片段”。方便的是,这也是 Fountain 的规则,所以不用记住什么新的东西就可以创建一个片段。
|
||||
|
||||
```
|
||||
EXT. CASTLE COURTYARD - DAY
|
||||
```
|
||||
|
||||
### 动作
|
||||
|
||||
当演员被要求执行一个特定的动作时,剧本中就会包含动作文本。这是正常的普通文本,完全按照你在书中写的文字来写。所有正常的规则都适用,所以对动作文本不用特别记什么规则。
|
||||
|
||||
```
|
||||
A wizard wanders out of a great stone door. She approaches the center of the courtyard and pauses. Something's caught her eye.
|
||||
|
||||
It's a book. She leans down and picks it up.
|
||||
```
|
||||
|
||||
### 对话
|
||||
|
||||
剧本中的对话格式是从左右边距缩进的。对于普通观众来说,它可能看起来是居中的,但实际上它是左对齐的。采用这种格式是为了帮助演员定位他们的台词,并使得剧本给口语对话留出更多的空间,因为在电影中,口语对话往往占据了大部分的时间。
|
||||
|
||||
在 Fountain 中,对话的规则是用大写字母写出说话的角色的名字。然后在下一行,正常写出对话内容。
|
||||
|
||||
```
|
||||
WIZARD
|
||||
|
||||
I can sense your power. Grep? Sed? What strange terms!
|
||||
```
|
||||
|
||||
当你导出你的剧本时,对话会被调整为适当的格式。
|
||||
|
||||
### 转场
|
||||
|
||||
现在这种做法已经不流行了,但传统上,在剧本中会有一些特殊的转场迹象,因为在很久以前,一些转场是要花很多钱的。今天,你仍然可以在剧本中看到转场,但它往往更多的是作为一组场景(或者,经典的整个电影<ruby>淡出<rt>FADE OUT.</rt></ruby>)的一种标点符号,而不是对编辑的实际指示。
|
||||
|
||||
要在 Fountain 中创建一个过渡,在你的文本前加上大于号(`>`)。
|
||||
|
||||
```
|
||||
>ANGLE ON:
|
||||
|
||||
The book's title page. It reads "Introduction to Linux."
|
||||
|
||||
>FADE OUT.
|
||||
|
||||
```
|
||||
|
||||
### 更多的规则
|
||||
|
||||
你可以在你的剧本中使用许多其他的 Markdown 约定,比如用星号来斜体、加粗和给文字加下划线。在 Fountain 中还有更多的规则来处理边缘情况和风格上的例外,但这四条规则在大多数情况下是你所需要的。
|
||||
|
||||
不过,Fountain 的简单性表明,一百年前的剧本格式设计得多么好。它有一个标准的结构,使人的眼睛很容易解析,这种可预测性也能很好地转化为计算机的解析。
|
||||
|
||||
### 输出和渲染
|
||||
|
||||
一旦你写完了,你就可以使用渲染程序将你的剧本导出为适当的格式。有 [几个渲染器可用][6],但我最喜欢的是 Atom 编辑器。要配置 Atom 以适当的格式显示 Fountain 预览文件,并在完成后将其导出为 PDF,请进入“编辑” 菜单,选择 “偏好”,并点击左侧面板中的 “安装” 链接。在搜索栏中,输入 “fountain” 来安装由开发者 _superlou_ 发布的 Fountain 插件。
|
||||
|
||||
![为 Atom 安装一个 Fountain 插件 (Seth Kenlon, CC BY-SA 4.0)][7]
|
||||
|
||||
在安装时,你会被提示同意安装它的一些依赖项。一旦安装完毕,你可以进入 “软件包” 菜单,选择 “Fountain”,然后查看你的剧本预览或导出 PDF 版本。
|
||||
|
||||
Emacs 也有一个 Fountain 模式 ,它还可以在你输入时执行一些基本的格式化。
|
||||
|
||||
![Emacs 中的 Fountain 模式 (Seth Kenlon, CC BY-SA 4.0)][8]
|
||||
|
||||
无论你使用什么文本编辑器,你总是可以使用专门的应用程序来渲染你的剧本。有一个叫 `Screenplain` 的 Python 模块我觉得很好用。要安装它,请在终端键入以下内容:
|
||||
|
||||
```
|
||||
$ python3 -m pip install 'screenplain[PDF]' --user
|
||||
```
|
||||
|
||||
这样将一个剧本渲染成 PDF:
|
||||
|
||||
```
|
||||
$ screenplain --format pdf myscreenplay.fountain > script.pdf
|
||||
```
|
||||
|
||||
![渲染后的 Fountain 文件 (Seth Kenlon, CC BY-SA 4.0)][9]
|
||||
|
||||
### 开源的电影剧本
|
||||
|
||||
Fountain 是方便的。你可以撰写你的剧本,而不需要特别复杂的应用程序。
|
||||
|
||||
Fountain 是省钱的。你可以撰写你的剧本而不需要昂贵的软件。
|
||||
|
||||
Fountain 是灵活的。你可以在你用来写作的应用程序中进行创作。
|
||||
|
||||
Fountain 是适宜保存的。你不会因为一个应用程序过时了,或者没有商业支持了,或者因为你买不起而不能访问你的作品。
|
||||
|
||||
使用 Fountain 有很多很好的理由,但最重要的一点是它能帮助你专注于创作。如果你心中酝酿了一部电影,就用 Fountain 来写。这是通向可能是一个非常令人兴奋的旅程的第一步。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/linux-fountain
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[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/doc-dish-lead.png?itok=h3fCkVmU (Typewriter in the grass)
|
||||
[2]: http://fountain.io
|
||||
[3]: https://opensource.com/article/20/12/atom
|
||||
[4]: https://opensource.com/article/20/12/kate-text-editor
|
||||
[5]: https://opensource.com/article/20/12/gedit
|
||||
[6]: https://fountain.io/apps
|
||||
[7]: https://opensource.com/sites/default/files/fountain-atom.jpg (Install a Fountain plugin for Atom)
|
||||
[8]: https://opensource.com/sites/default/files/fountain-emacs_0.jpg (Fountain-mode in Emacs)
|
||||
[9]: https://opensource.com/sites/default/files/fountain-render.jpg (A rendered Fountain file)
|
@ -0,0 +1,73 @@
|
||||
[#]: subject: "How I play Tetris on the mainframe"
|
||||
[#]: via: "https://opensource.com/article/21/12/mainframe-tetris"
|
||||
[#]: author: "Elizabeth K. Joseph https://opensource.com/users/pleia2"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14127-1.html"
|
||||
|
||||
我在大型机上玩俄罗斯方块
|
||||
======
|
||||
|
||||
> 下面是我如何通过访问虚拟 Linux 服务器,在大型机上编译和玩我最喜欢的游戏。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/29/102337wl9sx335t3gxguc5.jpg)
|
||||
|
||||
可以 [在现代大型机上运行 Linux][2] 的能力为在该平台上做各种事情打开了大门。一个 Apache HTTP 服务器?很简单!一个数据库?你想用 SQL 还是 NoSQL?Kubernetes?当然没问题!正如我在 [大型机上的 Linux:过去和现在][3] 中总结的那样,今天所有最流行的服务器 Linux 发行版都有大型机的版本。
|
||||
|
||||
这对那些在大型机上运行关键任务基础设施的公司来说是个好消息,但如果你只是想玩玩大型机呢?我第一次在 IBM LinuxONE 上使用 bash shell 时,安装了 irssi 聊天客户端,向 IRC 上的所有朋友展示了 `/proc/cpuinfo` 的输出,以炫耀这是一个 s390x 架构的系统。
|
||||
|
||||
一开始,我对下一步该做什么感到茫然。然后我想,用这台巨大的计算机来玩游戏会很有趣。我首先想到的是 [NetHack][4],但事实证明,我可以用简单的 `apt install nethack-console` 来安装它。不,我应该编译一些东西才好玩!对于每一种计算机架构,你都需要为其编写的编译器和解释器。Linux 在大型机上已有 20 多年的历史,你通常期望的大多数编译器和解释器都已经被移植了。
|
||||
|
||||
在我的成长过程中,我最喜欢的游戏之一是俄罗斯方块,所以它是我进行实验的合理选择。我找到了一个用 C 语言编写的开源俄罗斯方块游戏,叫做 [vitetris][5],并试了试。这就像在任何其他 Linux 服务器上编译一个 C 语言程序一样。
|
||||
|
||||
首先,我需要安装一些依赖项。这台主机运行的是 Linux,所以我可以用我的包管理器来 [安装构建需求][6],然后我就顺利完成了。
|
||||
|
||||
接下来,就是获取代码和构建的问题了:
|
||||
|
||||
```
|
||||
curl -LO https://github.com/vicgeralds/vitetris/archive/v0.58.0.tar.gz
|
||||
tar xvf v0.58.0.tar.gz
|
||||
cd vitetris-0.58.0/
|
||||
./configure
|
||||
make
|
||||
```
|
||||
|
||||
不一会儿,我就开始玩我最喜欢的游戏了!
|
||||
|
||||
```
|
||||
./tetris
|
||||
```
|
||||
|
||||
![Screenshot of an open source Tetris game in progress, running on Linux][7]
|
||||
|
||||
正如我所说,这与在 Linux 服务器上构建其他 C 程序完全一样,但你是在大型机上做的。
|
||||
|
||||
不幸的是,我的车库里还没有一台大型机。相反,我是在马里斯特学院通过 [IBM LinuxONE 社区云][9] 计划托管的虚拟服务器上完成了这一切。它让你免费访问一个 s390x 架构的 Linux 服务器,你可以选择最流行的发行版。通过这个虚拟服务器,你可以在 120 天内进行实验。
|
||||
|
||||
如果你是一个开源项目的代表,正在考虑在 s390x 上为 Linux 构建你的应用,也有一个项目适合你。当我不玩俄罗斯方块的时候,我在 IBM 的实际工作就是与开源社区合作来做这件事。你可以请求一个永久的 Linux 虚拟服务器供你的社区用于开发,无论是进行手动测试以查看你的应用是否会构建,或正式将其添加到项目的持续集成系统中都行。我建议从社区云开始做一些实验,然后你可以填写 [这个表格][10] 来启动获得永久虚拟服务器的流程。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/mainframe-tetris
|
||||
|
||||
作者:[Elizabeth K. Joseph][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/pleia2
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/open_gaming_games_roundup_news.png?itok=KM0ViL0f (Gaming artifacts with joystick, GameBoy, paddle)
|
||||
[2]: https://opensource.com/article/19/9/linux-mainframes-part-1
|
||||
[3]: https://opensource.com/article/19/9/linux-mainframes-part-2
|
||||
[4]: https://www.nethack.org/
|
||||
[5]: http://victornils.net/tetris/
|
||||
[6]: https://opensource.com/article/21/11/compiling-code
|
||||
[7]: https://opensource.com/sites/default/files/uploads/tetris_osdotcom.png (Tetris)
|
||||
[8]: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
[9]: https://developer.ibm.com/gettingstarted/ibm-linuxone/
|
||||
[10]: https://www.ibm.com/community/z/open-source/virtual-machines-request/
|
@ -0,0 +1,193 @@
|
||||
[#]: subject: "12 Biggest Linux Stories of the Year 2021"
|
||||
[#]: via: "https://news.itsfoss.com/biggest-linux-stories-2021/"
|
||||
[#]: author: "Abhishek https://news.itsfoss.com/author/root/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14103-1.html"
|
||||
|
||||
2021 年的 12 件 Linux 大事
|
||||
======
|
||||
|
||||
> 现在,是时候回顾一下今年影响 Linux 和 Linux 用户的一些大事了。
|
||||
|
||||
![](https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/biggest-linux-stories-2021.png?w=1200&ssl=1)
|
||||
|
||||
2021 年即将结束。Linux 今年屡有大事,虽然并不全是好消息。
|
||||
|
||||
让我来分享一些来自 Linux 世界的大事,这些事件对普通的 Linux 用户,特别是桌面 Linux 用户有一定的影响。
|
||||
|
||||
### 1、RMS 重返自由软件基金会
|
||||
|
||||
<ruby>自由软件基金会<rt>Free Software Foundation</rt></ruby>(FSF)的创始主席 [Richard Stallman(RMS)在 2019 年因媒体的抨击而被迫辞职][1]。然而,这位标志性的嬉皮士技术人在今年 3 月份的 LibrePlanet 活动中出人意料地 [宣布复出][2]。
|
||||
|
||||
虽然自由软件运动是 Stallman 在 80 年代发起的,并创立了自由软件基金会(FSF),但这次他是以董事会成员之一的身份回归的,而不是以主席的身份。
|
||||
|
||||
这段插曲使开源世界再次分裂。许多组织和开发者反对他的回归。但与此同时,Stallman 也得到了 [来自非美国开发者的压倒性支持][3]。
|
||||
|
||||
尽管 [Stallman 已经道歉][4],但许多来自 GNOME 和<ruby>开源推进计划<rt>Open Source Initiative</rt></ruby>的人 [主张撤换整个 FSF 董事会][5]。
|
||||
|
||||
许多主要的赞助商因此断绝了与 FSF 的关系,但 FSF 在财政困难的情况下仍在坚持。2021 年即将结束,Stallman 仍然活跃在他 30 多年前创立的组织的董事会中。
|
||||
|
||||
### 2、Arch Linux 引入了一个安装程序
|
||||
|
||||
不过不是图形化的。
|
||||
|
||||
你可能已经知道,安装 Arch Linux 并不像安装 Ubuntu 或 Fedora 那样简单。没有图形化的安装程序。一切都必须通过命令行来完成,但即使是这样,你也必须参考一些文档。
|
||||
|
||||
Arch Linux 试图通过提供一个用来指导你的安装脚本来改善这种情况。
|
||||
|
||||
![][6]
|
||||
|
||||
当然,它不像图形化的安装那么舒服,但至少有指导的 Arch Linux 安装总比没有好。
|
||||
|
||||
这个 [archinstall 脚本可以在较新的 Arch Linux ISO 中找到][7],你可以在安装 Arch Linux 时在 TTY 中输入 `archinstall` 来使用它。
|
||||
|
||||
### 3、微软 Edge 浏览器登陆 Linux
|
||||
|
||||
![][8]
|
||||
|
||||
它已经测试一年多了,但在 2021 年我们终于看到了 [微软基于 Chromium 的 Linux 版 Edge 浏览器的最终稳定版][9]。
|
||||
|
||||
我知道一些 Linux 用户彻底反对接触任何微软的东西,这当然很好。它只是为 Linux 上长长的可用网页浏览器列表增加了一个选择。在 Windows 系统上使用 Edge 的人现在有能力在 Linux 上使用和同步他们的浏览器活动。
|
||||
|
||||
一些 [在 Linux 上安装了 Edge 浏览器][10] 的用户发现它出乎意料地好。就个人而言,比起其他浏览器,我还是更喜欢 Firefox,但如果 Edge 能把超高清或全高清的 Netflix 流媒体带到 Linux 上,它可能会成为我的辅助浏览器。
|
||||
|
||||
### 4、CentOS 替代品的崛起
|
||||
|
||||
红帽公司去年震惊了 Linux 世界,它决定 [干掉稳定的 CentOS,转而支持滚动发布的 CentOS Stream][11]。
|
||||
|
||||
这催生了 [几个 CentOS 替代发行版][12]。其中获得了最多人气和 CentOS 市场份额的两个发行版是 Rocky Linux 和 Alma Linux。
|
||||
|
||||
[Rocky Linux 是由 Gregory M. Kurtzer 创建的][13],他是 CentOS 的最初的创建者。
|
||||
|
||||
[Alma Linux][14] 是由 CloudLinux 创建的,它是一家提供了基于 CentOS 的服务器和内核补丁服务的企业。
|
||||
|
||||
这两个发行版已经占领了 CentOS 留下的市场。[红帽公司向小型企业免费提供 RHEL 许可证的计划][15] 并没有那么成功。
|
||||
|
||||
### 5、Steam Deck
|
||||
|
||||
Valve 发布了一款名为 Steam Deck 的掌上游戏设备。它产生了相当大的反响,预购即售罄。
|
||||
|
||||
它与 Linux 有什么关系?有两个:
|
||||
|
||||
首先,Steam Deck 运行在基于 Arch Linux 的定制 Steam OS 上。考虑到这些游戏将在基于 Linux 的操作系统上运行,这给桌面 Linux 上的游戏也带来了希望。
|
||||
|
||||
第二,Steam 声称所有的游戏(无论它们是否只在 Windows 上运行)都将可以在 Steam Deck 上运行。这个口号太大了,但是 [Steam 已经开始验证能在 Deck 上运行的游戏][16]。这可能意味着经过 Deck 验证的游戏在桌面 Linux 上应该也能正常运行。
|
||||
|
||||
![][17]
|
||||
|
||||
### 6、反作弊引擎正式支持 Linux
|
||||
|
||||
对 Linux 玩家来说这是又一个 2021 年的大新闻。[Epic Games 为其 Easy-Anti Cheat 服务增加了完整的 Linux 支持,以及官方 SteamPlay(或 Proton)和 Wine 兼容性][18]。
|
||||
|
||||
Easy-Anti-Cheat 是 Epic 提供的业界领先的反作弊服务,可以防止多人 PC 游戏中的黑客攻击和作弊。
|
||||
|
||||
这是一个重大举措,因为 Linux 游戏玩家经常被禁止参与许多流行的多人游戏,如《堡垒之夜》、《战地》。随着反作弊支持的加入,在 Linux 上玩主流多人游戏变得更加容易。
|
||||
|
||||
### 7、GNOME 40
|
||||
|
||||
![][19]
|
||||
|
||||
[GNOME 40 是一个激进的版本][20]。几乎和 GNOME 3 一样激进。
|
||||
|
||||
不,将版本号从 3.38 跳到 40 并不是关键因素。
|
||||
|
||||
GNOME 40 换成了三指轻扫的水平布局。这种水平方式使得第 40 版在用户界面和用户体验上与之前的版本有很大不同。
|
||||
|
||||
### 8、内核 5.15 中支持 NTFS
|
||||
|
||||
这可能看起来没什么,但 Linux 内核中对 NTFS 文件系统的适当驱动支持对许多人来说是件大事,特别是对于共享分区来说。
|
||||
|
||||
之前,NTFS 文件系统是在用户空间(FUSE)中借助 ntfs-3g 软件包使用的。这意味着数据的读取和写入速度很慢。
|
||||
|
||||
原生的驱动程序改善了 Linux 中 NTFS 文件系统的性能。
|
||||
|
||||
### 9、Linux 已经 30 岁了
|
||||
|
||||
![][21]
|
||||
|
||||
Linux 内核比许多 Linux 用户都要老。它诞生于 1991 年 9 月,当时芬兰计算机科学专业的学生 Linus Torvalds 宣布了这个 “爱好项目”,它本应不是 “大而专业” 的。
|
||||
|
||||
Torvalds 以 Linux 项目作为他的毕业论文取得了他的硕士学位。Torvalds 不可能知道他的 “爱好” 将成为今天 IT 世界的支柱和一个成功的开源项目的代表。
|
||||
|
||||
### 10、Linus Tech Tips 对 Linux 桌面的实验
|
||||
|
||||
这是另一位将 Linux 推上风口浪尖的 Linus。
|
||||
|
||||
Linus Sebastian 是顶级的技术 YouTuber 之一,他开始挑战日常使用 Linux 30 天的目标。
|
||||
|
||||
一个拥有数百万订阅者的流行 YouTuber 使用了 Linux。这是一个前所未有的机会,是桌面 Linux 被数百万 Windows 用户看到的一次大公关。
|
||||
|
||||
但是它出了问题。实际上,是可怕的错误。
|
||||
|
||||
Linus Sebastian 在 Linux 上遇到了困难。他遇到了各种困难,[最后在试图安装 Steam 的时候毁掉了他的 Pop!_OS 系统][22]。
|
||||
|
||||
![][23]
|
||||
|
||||
我不知道 Torvalds 是否看到了那些视频,这个与他同名的人在他的造物中苦苦挣扎。
|
||||
|
||||
### 11、苹果的 M1 Mac 上的 Linux
|
||||
|
||||
一个苹果让世界认识了重力(尽管它已经存在)。一个苹果让世界认识了 ARM 处理器(尽管它也已经存在)。
|
||||
|
||||
苹果公司基于 ARM 的 M1 系列因其性能提升而在用户中大受欢迎。有一个专门的项目 [Asahi][24] 正在努力使 Linux 可以在苹果 M1 设备上运行。
|
||||
|
||||
2021 年,Asahi Linux 取得了一些良好的进展。他们的工作也将使其他发行版受益。
|
||||
|
||||
![Arch Linux 与 KDE Plasma 在 M1 Pro MacBook 上运行][25]
|
||||
|
||||
### 12、Windows 11 发布
|
||||
|
||||
为什么 Windows 11 的发布与 Linux 有关呢?因为不是所有的现有系统都有资格运行 Windows 11。这意味着当 Windows 10 支持结束时,将有一大批设备运行一个过时的操作系统。他们中的一些人会转移到 Linux。
|
||||
|
||||
不要认为我过于乐观。当 Windows XP 支持结束时,我已经看到了这种流亡。一些 Linux Mint 和 Zorin OS 用户曾经是 Windows XP 的移民。
|
||||
|
||||
![][26]
|
||||
|
||||
### 让我们希望 2022 年对我们所有人都好一些
|
||||
|
||||
2020 年开始的 COVID-19 流行病在今年继续困扰着世界。看看 Omicron 变种的传播情况,2022 年的情况看起来也不太乐观。
|
||||
|
||||
但是,让我们不要太悲观,庆祝新的一年,希望明年对桌面 Linux 用户和其他所有人会更好。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/biggest-linux-stories-2021/
|
||||
|
||||
作者:[Abhishek][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/root/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/richard-stallman-controversy/
|
||||
[2]: https://news.itsfoss.com/richard-stallman-is-back-at-fsf/
|
||||
[3]: https://news.itsfoss.com/stallman-supporters-not-giving-up/
|
||||
[4]: https://news.itsfoss.com/stallman-apologizes/
|
||||
[5]: https://news.itsfoss.com/stallman-return-revolt/
|
||||
[6]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/arch-install-tool.png?w=800&ssl=1
|
||||
[7]: https://news.itsfoss.com/arch-linux-easy-install/
|
||||
[8]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/10/microsoft-edge-beta-linux-ft.png?w=1200&ssl=1
|
||||
[9]: https://news.itsfoss.com/microsoft-edge-stable-release/
|
||||
[10]: https://itsfoss.com/microsoft-edge-linux/
|
||||
[11]: https://itsfoss.com/centos-stream-fiasco/
|
||||
[12]: https://itsfoss.com/rhel-based-server-distributions/
|
||||
[13]: https://news.itsfoss.com/rocky-linux-announcement/
|
||||
[14]: https://almalinux.org/
|
||||
[15]: https://news.itsfoss.com/rhel-no-cost-option/
|
||||
[16]: https://news.itsfoss.com/steamdeck-verified/
|
||||
[17]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/10/steam-deck-verified.png?w=1337&ssl=1
|
||||
[18]: https://news.itsfoss.com/easy-anti-cheat-linux/
|
||||
[19]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/gnome-40-activity-overview.png?w=940&ssl=1
|
||||
[20]: https://news.itsfoss.com/gnome-40-release/
|
||||
[21]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/tuxturns30.jpg?resize=1568%2C823&ssl=1
|
||||
[22]: https://news.itsfoss.com/more-linux-distros-become-linus-proof/
|
||||
[23]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/linus-sebastian-nukes-pop-os-while-installing-steam-os.webp?w=1232&ssl=1
|
||||
[24]: https://asahilinux.org/
|
||||
[25]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/kde-plasma-apple-m1.jpeg?resize=1568%2C1176&ssl=1
|
||||
[26]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-meme-squid-game.jpg?w=1080&ssl=1
|
@ -0,0 +1,110 @@
|
||||
[#]: subject: "AppImage Pool is an App Store to Help You Find & Manage AppImages"
|
||||
[#]: via: "https://itsfoss.com/appimagepool/"
|
||||
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14124-1.html"
|
||||
|
||||
AppImage Pool:一个帮助你寻找和管理 AppImage 的应用商店
|
||||
======
|
||||
|
||||
> 这是一个管理和寻找 AppImage 应用的有趣的 GUI 前端。让我们来了解一下它!
|
||||
|
||||
我们有很多关于 [AppImage 的历史和制作它][1] 的信息。如果你是 Linux 的新手,你也应该看看我们的 [AppImage 使用指南][2]。
|
||||
|
||||
AppImage 使应用可以很容易地在不同的发行版上运行,而不需要安装依赖关系或任何东西。
|
||||
|
||||
然而,与 [Flatpak][3] 的 Flathub 不同,你可能找不到一个浏览 AppImage 应用的门户。
|
||||
|
||||
[Nitrux OS][4] 中的 NX 软件中心做了类似的工作,但它不能轻易安装在其他发行版上。因此,AppImage Pool 作为 AppImage 应用的应用商店上场了,你可以安装在任何 Linux 发行版上。
|
||||
|
||||
### AppImage Pool:一个管理和寻找 AppImage 应用的 GUI 前端
|
||||
|
||||
![][5]
|
||||
|
||||
AppImage Pool 是一个使用 Flutter 构建的 GUI 前端,它从 [AppImageHub][6] 获取应用数据,并让你快速搜索、下载和管理 AppImage 应用。
|
||||
|
||||
它并不托管任何 AppImage 文件,但它可以让你从项目的 GitHub 页面下载可用的 AppImage 文件。
|
||||
|
||||
当你试图下载一个 AppImage 文件时,它会从应用的 GitHub 发布页列出所有下载方式。
|
||||
|
||||
我不确定它是否仅限于来自 GitHub 的项目,但你可以在 [AppImageHub 门户][6] 中找到各种不同方式。
|
||||
|
||||
### AppImage Pool 的特点
|
||||
|
||||
![][7]
|
||||
|
||||
AppImage 是一个简单直白的应用商店,可以让你搜索、下载和管理 AppImage 文件。
|
||||
|
||||
其中一些功能包括:
|
||||
|
||||
* 能够下载特定版本的 AppImage 文件
|
||||
* 按类别过滤应用
|
||||
* 下载进度图标
|
||||
* 管理所有已安装的 AppImages
|
||||
* 查看下载历史
|
||||
|
||||
考虑到该应用是使用 Flutter 构建的,它给人带来了快捷的用户体验。
|
||||
|
||||
如果你是一个开发者,这鼓励了你使用它制作一个应用的话,你也可以 [在 Linux 中安装 Flutter][8]。
|
||||
|
||||
![][9]
|
||||
|
||||
### 在 Linux 中安装 AppImage Pool
|
||||
|
||||
由于明显的原因,开发者提供了一个可供下载的 AppImage 文件。
|
||||
|
||||
你也可以选择从 [Flathub][11] 中 [安装它的 Flatpak 包][10]。如果你想测试它即将发布的任何版本,也有一个每夜构建的 AppImage 版本。
|
||||
|
||||
在其 [GitHub 页面][12] 上可以了解关于它的更多信息。
|
||||
|
||||
- [AppImage Pool 下载][13]
|
||||
|
||||
### 使用 AppImage Pool 的感受
|
||||
|
||||
![][14]
|
||||
|
||||
该应用可以如预期的工作。然而,我注意到,列出的一些应用没有下载链接或任何相关信息。
|
||||
|
||||
毕竟,这些数据是来自于 AppImageHub 的。
|
||||
|
||||
另外,你可能会觉得奇怪,有些应用只列出了预发布的 AppImage 文件,比如 Blender。
|
||||
|
||||
![][15]
|
||||
|
||||
虽然这也是可以选择项目发布分支的一个优势,但我认为我不会下载预发布包。
|
||||
|
||||
总的来说,找到一个能让人轻松下载和管理 AppImages 的东西是件好事。
|
||||
|
||||
我建议你试一试,并在下面的评论区告诉我你的想法。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/appimagepool/
|
||||
|
||||
作者:[Ankush Das][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://itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/appimage-interview/
|
||||
[2]: https://itsfoss.com/use-appimage-linux/
|
||||
[3]: https://itsfoss.com/what-is-flatpak/
|
||||
[4]: https://nxos.org
|
||||
[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/appimagepool.png?resize=800%2C450&ssl=1
|
||||
[6]: https://www.appimagehub.com
|
||||
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/appimagepool-gimp.png?resize=800%2C571&ssl=1
|
||||
[8]: https://itsfoss.com/install-flutter-linux/
|
||||
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/appimagepool-categories.png?resize=800%2C575&ssl=1
|
||||
[10]: https://itsfoss.com/flatpak-guide/
|
||||
[11]: https://flathub.org/apps/details/io.github.prateekmedia.appimagepool
|
||||
[12]: https://github.com/prateekmedia/appimagepool
|
||||
[13]: https://github.com/prateekmedia/appimagepool/releases
|
||||
[14]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/appimagepool-main.png?resize=800%2C543&ssl=1
|
||||
[15]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/appimagepool-blender.png?resize=800%2C440&ssl=1
|
@ -0,0 +1,80 @@
|
||||
[#]: subject: "Great News! 80% of Steam’s Top 100 Games Now Run on Linux"
|
||||
[#]: via: "https://news.itsfoss.com/linux-game-rise-prtondb-dec-21/"
|
||||
[#]: author: "Abhishek https://news.itsfoss.com/author/root/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14105-1.html"
|
||||
|
||||
好消息!80% 的 Steam 前 100 名游戏可以在 Linux 上运行了
|
||||
======
|
||||
|
||||
> 多亏了 Proton 和 Steam Play,可以在 Linux 上更好地玩游戏了。
|
||||
|
||||
![](https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/rise-of-linux-games.png?w=1200&ssl=1)
|
||||
|
||||
自从 [Steam 宣布 Proton 计划][1] 以来,我有一种感觉,Linux 上的游戏将迎来好时光。我很高兴我没有看错。
|
||||
|
||||
根据 [ProtonDB 网站][2],在 Steam 上排名前 100 的游戏中,80% 都得到了黄金或更好的评价。这实际上意味着,这些游戏在 Linux 桌面上会运行得很好。
|
||||
|
||||
![ProtonDB 在 2021 年 12 月对 Steam 游戏的评级][3]
|
||||
|
||||
如果你对各种评级感到困惑,下面是它的含义:
|
||||
|
||||
* 原生:游戏可以在 Linux 上原生运行
|
||||
* 白金:开箱就能完美运行
|
||||
* 黄金:调整后可完美运行
|
||||
* 白银:运行时有小问题,但一般来说是可玩的
|
||||
* 青铜:可以运行,但经常崩溃或有问题,不能舒适地玩
|
||||
* 残缺:要么无法启动,要么根本无法玩
|
||||
|
||||
简单来说,如果一个纯 Windows 的游戏至少达到黄金级评分,你应该能够通过 Steam Play 在 Linux 上玩这个游戏。
|
||||
|
||||
如果你看一下统计数字,在 Steam 上排名前 1000 的游戏中,有超过 750 个现在可以在 Linux 上玩。然而,在写这篇文章的时候,Steam 前 10 名游戏中只有 4 个在 Linux 上运行良好。
|
||||
|
||||
![ProtonDB 对前 10 名 Steam 游戏的评分][4]
|
||||
|
||||
### ProtonDB 评级的可靠性如何?
|
||||
|
||||
请注意,这些评级不是来自 Steam 本身。这些评级是基于游戏玩家在 Linux 上用 Proton 测试游戏时的报告。它提供了游戏表现的综合分数。
|
||||
|
||||
你可能想知道这些非官方的评级是否可靠?好吧,可能有很多因素,比如你的系统的 CPU、图形驱动等等。但是 ProtonDB 的评分可以帮助你确定你是否可以通过 Steam 在 Linux 上 [尝试一个纯 Windows 的游戏][5]。
|
||||
|
||||
### 到底什么是 Steam Play 和 Proton?
|
||||
|
||||
如果你是新手,让我快速回顾一下,以帮助你更好地理解本文。
|
||||
|
||||
Steam 是一个可以让你安装和启动游戏的平台和客户端。它可以在 Windows、Linux 和 macOS 上运行。而游戏也会正确地标记为它们所能使用的平台。
|
||||
|
||||
几年前,Steam 推出了一个新的开源工具,名为 Proton 。它底层使用了 WINE 和许多其他工具,以改善 Linux 上纯 Windows 游戏的兼容性。
|
||||
|
||||
这项功能在 Steam 平台上提供在 Steam Play 测试版中,你必须从设置中明确启用它。
|
||||
|
||||
自此之后,志愿者和 Linux 游戏社区一起创建了一个可以在 Linux 上玩的游戏数据库。它最终演变成一个基于玩家反馈的评级系统。
|
||||
|
||||
Steam 也有自己的 [手持设备 Steam Deck 的评级系统][6]。
|
||||
|
||||
就个人而言,我更喜欢在 PS4 上玩有完整故事情节的单人游戏(因为我至今没有 PS5)。但我正在考虑搭建一个小型的游戏设备,使用 Steam 在 Linux 上玩游戏,特别是在过去几年里,Linux 游戏有了很大的改进。
|
||||
|
||||
你如何看待 Steam 和 Linux 游戏的发展?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/linux-game-rise-prtondb-dec-21/
|
||||
|
||||
作者:[Abhishek][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/root/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/steam-play-proton/
|
||||
[2]: https://www.protondb.com/
|
||||
[3]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/steam-protondb-linux-game-status-dec-2021.jpg?resize=1568%2C555&ssl=1
|
||||
[4]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/rating-for-top-10-steam-games-on-linux-dec-2021.jpg?w=1311&ssl=1
|
||||
[5]: https://itsfoss.com/steam-play/
|
||||
[6]: https://news.itsfoss.com/steamdeck-verified/
|
@ -0,0 +1,85 @@
|
||||
[#]: subject: "5 open source security resources from 2021"
|
||||
[#]: via: "https://opensource.com/article/21/12/open-source-security"
|
||||
[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14134-1.html"
|
||||
|
||||
2021 总结:5 个开源安全资源
|
||||
======
|
||||
|
||||
> 你现在需要读的 2021 安全总结文章。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/31/112208zcc0ccatn8mkvddk.jpg)
|
||||
|
||||
2021 年我们最常见的讨论之一是你自己数据的安全和隐私。显然,你的数据是你的,密码是安全的关键。今年的安全类的作者们提供了有用的知识和开源工具来保持你的数据和硬件安全。
|
||||
|
||||
以下是我对今年安全之旅选出的前五篇文章。
|
||||
|
||||
### 《6 个开源工具和初学者保护 Linux 服务器的技巧》
|
||||
|
||||
[Sahana Sreeram][3] 提供了从更新到恶意软件扫描的 [六个基本的服务器安全小知识][2]。这篇文章为你在家里或工作中的 Linux 服务器提供了一个起点。要特别注意密码强度部分和为你的服务器创建降低风险的密码策略要求的工具,因为这是你所使用的任何操作系统上最关键的做法。这篇文章是一篇实用指南,指导你在 Linux 服务器的日常工作中进行安全工作。正如 Sahana 所指出的,安全领域无疑正在扩大,这篇文章给了每个人着手预防的机会。
|
||||
|
||||
### 《用开源软件保护你的文件的 5 种方法》
|
||||
|
||||
接下来的 [这篇文章][4] 对于像我这样写了大量的文档(从文章到个人研究笔记都有)的人来说是非常有用的。作者 [Ksenia Fedoruk][5] 首先列出了保存文档的开源云存储服务。接下来,她介绍了加密的重要性以及在我们的文档中使用加密的方法。她还清楚地介绍了文件的数字签名和水印以及使用哪些开源工具。最后,文章涵盖了对我们制作和使用的文档进行密码保护的情况。结尾处的提醒遵循了今年安全领域的一个共同主题:你的数据是你的。
|
||||
|
||||
### 《4 个清除你的数据的 Linux 工具》
|
||||
|
||||
在 [这篇文章][6] 中,[Don Watkins][7] 涵盖了硬件的用途和维护。它以一系列擦除硬盘的工具作为引子,这样你的数据就不能被下一个使用设备的人拿走。在几个小的演练中,Don 涵盖了使用 GNU shred、ShredOS、`dd` 命令,以及最后的 `nvme-cli`。每一个都可以从你的硬件中删除所有的数据,并对你正在使用的、不再需要的硬盘进行删除。Don 的结论提供了一个温和的提醒:如果你要卖掉你的硬件,这并不意味着下一个人应该拥有你的数据。你的数据是你的。
|
||||
|
||||
### 《在 Linux 命令行上生成密码》
|
||||
|
||||
正如我在本期中早先时候指出的那样,密码对于今年的安全总结至关重要。在 [这篇文章][8] 中,我们的作者 [Sumantro Mukherjee][9] 首先介绍了许多网站在涉及到密码时可以有(也应该有)一个严格的规定。这篇文章循序渐进地介绍了如何使用 `pwgen`,首先是安装它,然后是生成密码。这是一个有用的工具,Sumantro 详细介绍了如何使用一些标志来生成符合任何网站或应用的要求和策略的密码。在这篇读物的最后,最后的总结包含了链接到一个方便的开源密码管理器列表,这个列表是我们的另一位作者 [Jason Baker][10] 在今年早些时候写的。这是一个重要的读物,可以让你为你在网站上的日常使用制定更好的密码,以防止黑客攻击或丢失你的账户中的数据。
|
||||
|
||||
### 《用这个开源软件加密你的文件》
|
||||
|
||||
今年的安全总结的最后,是一篇关于加密和加密文件的 [文章][11]。[Seth Kenlon][12] 介绍了一个名为 VeraCrypt 的开源跨平台加密工具。Seth 的演练深入解释了如何安装和使用 VeraCrypt,并展示了这个很酷的软件的易用性。但在此之前,他还简要介绍了 VeraCrypt 的前身 TrueCrypt 的历史,以及 VeraCrypt 是如何向后兼容以前用 TrueCrypt 的加密卷的。通过这个易于使用的开源加密软件,Seth 已经证明,你可以在本地拥有你的数据,并以你想要的方式进行加密。
|
||||
|
||||
### 荣誉提名
|
||||
|
||||
虽然这五篇是我今年的最爱,但这里还有两篇同样值得一读的提名文章。
|
||||
|
||||
* [Seth Kenlon][12] 的《[了解开源安全的 Linus 法则][13]》。
|
||||
* [Mike Calizo][14] 的《[如何成功执行 DevSecOps][15]》。
|
||||
|
||||
每篇文章都对安全策略和采用情况进行了结构化解读。
|
||||
|
||||
### 关于安全的总结
|
||||
|
||||
我强烈建议在今年阅读这些文章和 [其他几篇][16]。这些将使你为 2022 年安全世界的发展做好准备。你可以成为新一年的安全冠军。
|
||||
|
||||
你有一些想要推荐的工具吗?请留下评论或 [提出你的文章构思][17]。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/open-source-security
|
||||
|
||||
作者:[Jessica Cherry][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/cherrybomb
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rh_003601_05_mech_osyearbook2016_security_cc.png?itok=3V07Lpko (A secure lock.)
|
||||
[2]: https://opensource.com/article/21/4/securing-linux-servers
|
||||
[3]: https://opensource.com/users/sahanasreeram01gmailcom
|
||||
[4]: https://opensource.com/article/21/4/secure-documents-open-source
|
||||
[5]: https://opensource.com/users/ksenia-fedoruk
|
||||
[6]: https://opensource.com/article/21/10/linux-tools-erase-data
|
||||
[7]: https://opensource.com/users/don-watkins
|
||||
[8]: https://opensource.com/article/21/7/generate-passwords-pwgen
|
||||
[9]: https://opensource.com/users/sumantro
|
||||
[10]: https://opensource.com/users/jason-baker
|
||||
[11]: https://opensource.com/article/21/4/open-source-encryption
|
||||
[12]: https://opensource.com/users/seth
|
||||
[13]: http://opensource.com/article/21/2/open-source-security
|
||||
[14]: https://opensource.com/users/mcalizo
|
||||
[15]: http://opensource.com/article/21/2/devsecops
|
||||
[16]: https://opensource.com/tags/security
|
||||
[17]: https://opensource.com/how-submit-article
|
@ -0,0 +1,151 @@
|
||||
[#]: subject: "7 Best Rolling Release Linux Distributions for People Who Want the Latest and Greatest of Kernel and Software"
|
||||
[#]: via: "https://itsfoss.com/best-rolling-release-distros/"
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14112-1.html"
|
||||
|
||||
7 个最好的 Linux 滚动发行版
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/24/121027sioukeih5bmp5c5l.jpg)
|
||||
|
||||
林林总总的 Linux 发行版可以根据它们的特点、功能、预期用户群等分为不同的类别。在这篇文章中,我将列出一些最好的滚动发布的 Linux 发行版。
|
||||
|
||||
你知道什么是 [滚动发布的发行版][1] 吗?这些发行版不会等待 6 个月或更长时间才发布一个新的版本,提供给你更新的 Linux 内核、桌面环境和其他主要软件组件。它们会在这些组件发布后很快就进行更新。你不必将你的发行版从一个主要版本升级到下一个版本,因为你的发行版会定期得到升级。
|
||||
|
||||
现在你已经知道了,让我们来看看一些最好的滚动发布的 Linux 发行版。
|
||||
|
||||
### 你可以在桌面上使用的最佳滚动发行版
|
||||
|
||||
是的,这个列表主要是针对桌面用户。这里列出的一些发行版可能有服务器版本,但这不是这里的重点。
|
||||
|
||||
请注意,这并不是一个排名表。
|
||||
|
||||
#### 1、openSUSE Tumbleweed
|
||||
|
||||
![OpenSUSE Tumbleweed][2]
|
||||
|
||||
老派的 openSUSE 多年来一直按部就班地顺着版本号发布他们的系统。但在几年前,他们决定改变他们的产品,创建了 [openSUSE Leap 和 Tumbleweed][3]。
|
||||
|
||||
openSUSE Leap 采用的是版本式发布,每隔几年就会有一个新的版本,而 Tumbleweed 则是滚动式发布,新的软件在发布后不久就会出现在这个系统中。
|
||||
|
||||
[openSUSE Tumbleweed][4] 对于那些想留在红帽 RPM 阵营的人来说是一个很好的选择。openSUSE 有多样化的生态系统,它有一个巨大的软件库,Zypper 和 YaST 为你的软件包管理提供了很多选择。
|
||||
|
||||
#### 2、Arch Linux
|
||||
|
||||
![Arch Linux][5]
|
||||
|
||||
毋庸置疑,[Arch Linux][6] 是最流行的滚动发布版本。它几乎就是滚动发布的同义词。
|
||||
|
||||
[Arch Linux][7] 在 Linux 用户中具有崇高地位的原因有很多。我认为这更多是与 [安装 Arch Linux][8] 后的成就感有关,因为即使是安装程序,它都很别人不一样。
|
||||
|
||||
Arch 在其软件库中正式提供了一大批软件。而 [AUR 则通过社区的努力,几乎使所有其他的 Linux 软件都可以使用][9]。
|
||||
|
||||
如果你对 Linux 有一定的经验,想挑战自己的水平,这是一个不错的选择。
|
||||
|
||||
#### 3、Manjaro Linux
|
||||
|
||||
![Manjaro Linux][10]
|
||||
|
||||
[Manjaro][11] 基本上是免除了所有麻烦的 Arch Linux。
|
||||
|
||||
它是基于 Arch Linux 的,所以它具有 Arch Linux 的大部分优点。你可以得到 Pacman 和 AUR 的滚动发布模式。同时,Manjaro 有图形化的安装程序、基于 GUI 的软件包管理器和其他图形化工具来改善你的桌面体验。
|
||||
|
||||
Manjaro 更容易安装,也更容易使用。对于那些想舒适地呆在 Arch 领域的人来说是个不错的选择。
|
||||
|
||||
注意: 还有 [许多其他基于 Arch Linux 的优秀发行版][12],但我无法将其列入此列表中。如果你愿意,你可以试试 Garuda Linux、[EndeavourOS][13] 和其他许多基于 Arch 的发行版。
|
||||
|
||||
#### 4、Solus Linux
|
||||
|
||||
![Solus Linux][14]
|
||||
|
||||
和 Manjaro 一样,[Solus][15] 也是一个 “谨慎” 的滚动发行版。与 Manjaro 不同的是,它不是基于 Arch 的。它是从头开始创建的,使用的是 [eopkg 软件包管理器][16]。Solus 因创造了现代而直观的 Budgie 桌面环境备受赞誉。
|
||||
|
||||
像其他滚动发布的发行版一样,一旦你安装了 Solus,你就不需要升级到下一个版本的发行版(也可以像 ISO 刷新一样进行全新安装,带有更新的软件包)。
|
||||
|
||||
万一有欠缺的软件包也可以用 Snap 应用程序来补足。
|
||||
|
||||
如果你想要一些不同的东西,但又不至于复杂到让你感到不舒服,那么 Solus 是一个不错的选择。
|
||||
|
||||
#### 5、Debian Testing
|
||||
|
||||
![Debian][17]
|
||||
|
||||
你没有想到吧?Debian 以其对稳定性的关注而闻名,以至于其稳定的有时就像是陈旧,因为它提供的软件版本已经相当老旧。
|
||||
|
||||
但那是针对稳定分支的。Debian 有几个分支,其中一个叫做 Testing 分支。
|
||||
|
||||
看起来 Testing 是某种测试版、不稳定的版本,但这并不完全正确。[Debian Testing][18] 其实是下一个 Debian 稳定版本。实际的开发分支是 Debian Unstable(即 Sid)。Debian Testing 介于不稳定版和稳定版分支之间,它会在稳定版之前添加新的功能。
|
||||
|
||||
有些人在配置 Debian 时,在源列表中加入 `testing`。这使得他们的 Debian 系统永远停留在测试阶段。这是一种滚动发布的模式,Debian 用户可以不必离开舒适的 APT 和 deb 软件包管理系统。
|
||||
|
||||
#### 6、Void Linux
|
||||
|
||||
![Void Linux][19]
|
||||
|
||||
这是一个不寻常的、不太出名的发行版。[Void][20] 也是从头开始创建的,也就是说,它不是基于 Arch、Red Hat 或 Debian。
|
||||
|
||||
它是滚动发布的,但不像 Arch 那样激进。它优先考虑的是稳定性。这意味着当新的版本发布时,你不需要升级版本,但你也不会在最新的桌面环境版本一发布就得到它。
|
||||
|
||||
与其他发行版不同的另一点是,它使用 [runit][21] 作为初始化系统。
|
||||
|
||||
总的来说,如果你是一个有经验的 Linux 用户,Void 是一个不错的选择。
|
||||
|
||||
#### 7、Gentoo Linux
|
||||
|
||||
![Gentoo Linux][22]
|
||||
|
||||
另一个是你的同行们警告过的 [专家级 Linux 发行版][23] 之一。
|
||||
|
||||
[Gentoo][24] 不是每个人都能享用的茶或咖啡(无论你喜欢哪一种)。从安装到配置再到软件包管理都需要一定的专业知识和时间。
|
||||
|
||||
但是它有一个小众的专家用户群,他们会在编译一切需要的组件时废寝忘食。
|
||||
|
||||
如果你觉得其他发行版都不够有挑战性,Gentoo 可能是你的选择。
|
||||
|
||||
### 你对滚动发布的发行版有什么建议?
|
||||
|
||||
正如我之前提到的,我在这里特意将其他基于 Arch 的发行版排除在外,否则列表中就只有 Arch 的衍生产品了。
|
||||
|
||||
但你可以自由地投出你的推荐,即使它是基于 Arch 的。评论区都是你的。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/best-rolling-release-distros/
|
||||
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/abhishek/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/rolling-release/
|
||||
[2]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/opensuse-tumbleweed.png?resize=800%2C350&ssl=1
|
||||
[3]: https://itsfoss.com/opensuse-leap-vs-tumbleweed/
|
||||
[4]: https://get.opensuse.org/tumbleweed/
|
||||
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/arch-linux.png?resize=800%2C350&ssl=1
|
||||
[6]: https://archlinux.org/
|
||||
[7]: https://itsfoss.com/why-arch-linux/
|
||||
[8]: https://itsfoss.com/install-arch-linux/
|
||||
[9]: https://itsfoss.com/aur-arch-linux/
|
||||
[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/manjaro-linux.png?resize=800%2C350&ssl=1
|
||||
[11]: https://manjaro.org/
|
||||
[12]: https://itsfoss.com/arch-based-linux-distros/
|
||||
[13]: https://endeavouros.com/
|
||||
[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/solus-linux.png?resize=800%2C350&ssl=1
|
||||
[15]: https://getsol.us/home/
|
||||
[16]: https://itsfoss.com/eopkg-commands/
|
||||
[17]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/debian-testing.png?resize=800%2C350&ssl=1
|
||||
[18]: https://wiki.debian.org/DebianTesting
|
||||
[19]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/07/void-linux.png?resize=800%2C350&ssl=1
|
||||
[20]: https://voidlinux.org/
|
||||
[21]: http://smarden.org/runit/
|
||||
[22]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/07/gentoo-linux.png?resize=800%2C350&ssl=1
|
||||
[23]: https://itsfoss.com/advanced-linux-distros/
|
||||
[24]: https://www.gentoo.org/
|
@ -0,0 +1,118 @@
|
||||
[#]: subject: "5 Things elementary OS 6 Should Improve for a Better Linux Desktop Experience"
|
||||
[#]: via: "https://news.itsfoss.com/elementary-os-6-things-to-improve/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14120-1.html"
|
||||
|
||||
elementary OS 6 应该改进体验的 5 个地方
|
||||
======
|
||||
|
||||
> elementary OS 是一个漂亮的 Linux 发行版,但它适合所有人吗?它们是否有可以做得更好的地方?下面是我的想法。
|
||||
|
||||
![](https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/elementary-os-opinion.png?w=1200&ssl=1)
|
||||
|
||||
[elementary OS 的 6.1 是最新的版本][1],它做了许多基本的改进,带来了一些新功能。
|
||||
|
||||
当然,为你的系统选择的 Linux 发行版在很多方面都是不同的。然而,我认为在 elementary OS 中,有一些事情可以做得更好。
|
||||
|
||||
在这里,我列出了 elementary OS 中可以做的一些改进。
|
||||
|
||||
不过,这仅代表我个人观点,请诸位轻喷。
|
||||
|
||||
### elementary OS 中可以改进的东西
|
||||
|
||||
如果你想看的话,我也打算指出其他发行版的我不喜欢东西(从这篇开始)。
|
||||
|
||||
发行版通常仅展示其好的一面,除非有人指出一个发行版中潜在的细微差别,否则你无法真正确定这个发行版是否适合你。
|
||||
|
||||
#### 1、没有内置的 Debian 软件包安装程序
|
||||
|
||||
![][2]
|
||||
|
||||
它是一个基于 Ubuntu 的发行版,但下载一个 deb 文件后才发现无法安装,还得让你寻找解决方案。
|
||||
|
||||
这当然是有原因的,因为 elementary OS 在 [elementary OS 6 发布][3] 时切换到了只使用 Flatpak 的模式,即使是对于第一方的应用程序也是如此。
|
||||
|
||||
然而,新用户很可能不知道像 Eddy 这样的解决方案,它是一个 Debian 软件包安装程序,可以在 AppCenter 中找到。
|
||||
|
||||
当你尝试安装 deb 包时,指向该工具的通知/提示应该说明清楚。或者,预下安装 Eddy 应该会让事情变得更方便。
|
||||
|
||||
#### 2、Flathub 支持开箱即用
|
||||
|
||||
![][4]
|
||||
|
||||
Flatpak 优先的方法使安装软件更加安全和方便。然而,你不能通过 Flathub 安装 Flatpak 应用程序,除非你(使用终端)手动添加了第三方 Flatpak 仓库。
|
||||
|
||||
即使 AppCenter 提供了 Flatpak 应用程序,但它可能不足以满足所有用户的需要。相比之下,Flathub 提供了大量的 Flatpak 应用程序。
|
||||
|
||||
虽然提供第一方的体验,并且让用户能够在需要时启用第三方(Flathub)是件好事,但是否可以做些什么来轻松启用 Flathub 的支持,而无需去终端?(忽略 flatpak 的参考文件)
|
||||
|
||||
![][5]
|
||||
|
||||
好吧,我认为用一个快速切换开关来启用/禁用开箱即用的 Flathub 支持可以使事情变得更好。
|
||||
|
||||
或者,像你在上面的截图中注意到的那样,在建议启用 Flathub 的同时提到该命令。
|
||||
|
||||
#### 3、最小化按钮
|
||||
|
||||
![][6]
|
||||
|
||||
考虑到 elementary OS 没有像 Pop!_OS 那样的自动平铺窗口功能,许多应用程序上缺少最小化按钮可能会让人觉得令人不适。
|
||||
|
||||
是的,你可以利用键盘上的快捷键 `Super+H` 来隐藏/最小化窗口。然而,对于以鼠标操作为主的用户来说,没有最小化按钮的感觉并不舒服。
|
||||
|
||||
#### 4、没有系统托盘支持
|
||||
|
||||
![][7]
|
||||
|
||||
根据他们的设计选择,elementary OS 团队认为最好不要有系统托盘的支持(或者是我从 Reddit 的一些帖子中了解到的情况)。
|
||||
|
||||
不幸的是,系统托盘的图标对于快速访问和关注某事物的状态非常有用。
|
||||
|
||||
例如,我可以从应用指示器图标中快速访问 Flameshot 截图工具,在使用 Insync 等工具时检查同步状态,当 Slack 中有我的信息时也会得到通知。
|
||||
|
||||
而如果没有系统托盘图标的整合支持,我就不能做这些事情,这是一个缺陷。
|
||||
|
||||
#### 5、一个单独的 NVIDIA ISO
|
||||
|
||||
![][8]
|
||||
|
||||
单独的 NVIDIA ISO(或 Nvidia 显卡安装模式)比通过软件中心安装专有的 Nvidia 驱动程序要方便得多。
|
||||
|
||||
当然,我在使用 AppCenter 安装 Nvidia 驱动时没有任何问题。但是,有了单独的 ISO,你就省去了安装后的额外步骤。
|
||||
|
||||
### 总结
|
||||
|
||||
每个操作系统都有缺陷,Linux 发行版也不例外。
|
||||
|
||||
有时这些细微的差别是根据其目标用户设计出来的。你可能喜欢也可能不喜欢一个发行版所做的一切,这就是为什么要知道它们能否做得更好(或是否适合你)。
|
||||
|
||||
elementary OS 无疑是 [最漂亮的 Linux 发行版之一][9]。但是,它适合你吗?
|
||||
|
||||
好吧,如果我提到的一些观点是你不在意的,那它对你来说应该是很好的体验。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/elementary-os-6-things-to-improve/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://news.itsfoss.com/elementary-os-6-1-release/
|
||||
[2]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/Screenshot-from-2021-12-17-12.16.32.png?w=941&ssl=1
|
||||
[3]: https://news.itsfoss.com/elementary-os-6-release/
|
||||
[4]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/Screenshot-from-2021-12-17-12.16.01.png?w=942&ssl=1
|
||||
[5]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/elementary-flathub-add.png?w=964&ssl=1
|
||||
[6]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/minimize-button-elementary-os.png?w=1015&ssl=1
|
||||
[7]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/elementary-os-system-tray.png?w=392&ssl=1
|
||||
[8]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/elementary-os-nvidia-driver.png?w=944&ssl=1
|
||||
[9]: https://itsfoss.com/beautiful-linux-distributions/
|
@ -0,0 +1,165 @@
|
||||
[#]: subject: "7 Reasons Why I Use Pop!_OS Linux Distro as My Daily Driver"
|
||||
[#]: via: "https://itsfoss.com/why-use-pop-os/"
|
||||
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14118-1.html"
|
||||
|
||||
我把 Pop!_OS Linux 作为主要系统的 7 个原因
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202112/26/115716cr4hqyp8qjrxyqp9.jpg)
|
||||
|
||||
Pop!_OS 是向 Linux 初学者和游戏玩家的热门推荐。但是,Pop!_OS 从其他基于 Ubuntu 的发行版中脱颖而出的原因有哪些?为什么你应该考虑把它作为你电脑日常使用的系统?
|
||||
|
||||
三年前,我从 Ubuntu 转到了 [Pop!_OS][1],从那时起它就成了我的日常系统。
|
||||
|
||||
让我为你指出选择它作为你的日常操作系统的好处。
|
||||
|
||||
### 选择 Pop!_OS 而不是其他 Linux 发行版的原因
|
||||
|
||||
请注意,这里列出的一些原因可能是主观的,完全取决于你想要什么,以及你期望的桌面体验。
|
||||
|
||||
考虑到这一点,让我强调一下为什么我选择 [Pop!_OS][2] 作为我的主要操作系统,而不是其他 Linux 发行版。
|
||||
|
||||
#### 1、单独的 NVIDIA/AMD ISO
|
||||
|
||||
![][3]
|
||||
|
||||
如果你有一个装有 Nvidia GPU 的机器,使用 [Nouveau][4](Nvidia 显卡的开源驱动程序)来使其工作是不可行的。
|
||||
|
||||
好吧,你的显示器可以工作,但你不能发挥你的显卡的优势。
|
||||
|
||||
例如,你会在几乎所有需要利用 GPU 的任务中遇到卡顿和性能问题。
|
||||
|
||||
因此,专有的 Nvidia 驱动程序是解决这些问题的唯一解决方案。
|
||||
|
||||
而且,为了让添加专有驱动程序能够开箱即用,发行版需要将其包含在 ISO 中,或者提供一个单独的 ISO,其中包含 Nvidia 最新可用的专有驱动程序。
|
||||
|
||||
虽然你肯定可以手动安装专有驱动程序,但这并不是完美的体验。
|
||||
|
||||
顺便说一句,对于大多数流行的 Linux 发行版,这个过程应该与 [在 Linux Mint 中安装 Nvidia 驱动程序][5] 类似。
|
||||
|
||||
![驱动管理器 | Linux Mint (Cinnamon)][6]
|
||||
|
||||
请注意,有时你需要排除故障或重新安装正确的(或较早的驱动版本)才能正确使用 Nvidia 显卡。
|
||||
|
||||
但是,如果你有单独的 ISO 来支持 Nvidia 的系统或 Nvidia 图形安装模式(如 Zorin OS),那就可以消除手动安装 Nvidia 驱动程序的麻烦。
|
||||
|
||||
这不仅仅是为了方便使用,而是 Pop!_OS 通过提供帮助性的 Nvidia ISO 做到了开箱即用。
|
||||
|
||||
当我试图手动安装专有驱动程序时,我曾在 Linux Mint、Ubuntu 和其他一些发行版上遇到过问题。因此,Pop!_OS 对于我带有 Nvidia 显卡的系统来说,设置起来非常容易。
|
||||
|
||||
#### 2、自动平铺管理器
|
||||
|
||||
![][7]
|
||||
|
||||
如果没有平铺管理器,你需要不断地拖放(和移动)你的活动窗口来组织它们以便快速访问。
|
||||
|
||||
因此,一个窗口平铺管理器可以方便地自动组织你启动的应用程序的活动窗口。
|
||||
|
||||
当然,使用平铺管理器的体验会因你的屏幕尺寸而不同,但即使你有一个尺寸不大的 27 英寸显示屏,它也应该会有明显的体验改善。
|
||||
|
||||
我自己一直在使用它,即使没有大显示器(或双显示器设置)。
|
||||
|
||||
我从来没有在笔记本电脑上使用过它,但整天工作时,拥有一个自动窗口平铺管理器(你可以启用/禁用)听起来是一个有用的功能。
|
||||
|
||||
它有助于提高你的多任务处理能力,而不一定要移动到不同的工作空间。
|
||||
|
||||
#### 3、使用的便利性
|
||||
|
||||
为什么你认为 Ubuntu 是 [最好的 Linux 发行版][8] 之一?
|
||||
|
||||
多年来,它一直设法提供易于使用的现代桌面体验。
|
||||
|
||||
令人印象深刻的是,System76 已经设法将 Pop!_OS 的用户体验在 Ubuntu 的基础上提升了一个档次。
|
||||
|
||||
因此,Pop!_OS 不仅仅是另一个 Ubuntu 发行版,它的应用启动器、应用库、坞站、工作区定制以及其他各种优化都带来了独特的桌面体验。
|
||||
|
||||
对于我的使用情况而言,它感觉比 Ubuntu 更好。别忘了,它还包括一些工具,比如 [Popsicle][9],这些工具在以后的工作中会很方便。
|
||||
|
||||
#### 4、较新的 Linux 内核
|
||||
|
||||
![Pop!_OS 21.10 具有 Linux 内核 5.15.8][10]
|
||||
|
||||
Ubuntu 可能不具有最新和最棒的 Linux 内核,特别是它的 LTS 版本时。
|
||||
|
||||
然而,Pop!_OS 尽力提供最新的 Linux 内核版本,即使是在 LTS 版本中。例如,Ubuntu 20.04.3 LTS 包含了 Linux 内核 5.11,但 Pop!_OS 20.04 LTS 具有 Linux 内核 5.13。
|
||||
|
||||
对于大多数用户来说,这可能不是什么大问题,但是 Pop!_OS 比其他大多数 Linux 发行版更快地推送了更新的 Linux 内核。
|
||||
|
||||
如果你想让你的最新和最棒的硬件与 Linux 发行版很好地配合工作,Pop!_OS 是一个绝妙的选择。
|
||||
|
||||
#### 5、应用程序启动器
|
||||
|
||||
![][11]
|
||||
|
||||
应用程序启动器在快速启动应用程序或在活动窗口之间进行导航时非常方便。
|
||||
|
||||
使用快捷方式(也可能是链接到它的宏,就像我使用的那样)调用启动器的能力,使它成为启动应用程序和在它们之间进行导航的最快捷的方式之一。
|
||||
|
||||
当然,你可以安装像 [Ulauncher][12] 这样的工具来实现同样的目的。不过,它是预先配置、开箱即用的,不需要任何故障排除,这很方便。
|
||||
|
||||
#### 6、快速升级过程
|
||||
|
||||
尽管升级 Linux 发行版通常是无忧无虑的,但 Pop!_OS 在每次更新时都尽力完善和改进这个过程。
|
||||
|
||||
例如,在 Pop!_OS 21.10 中,他们引入了一些改进措施,以防止升级过程中的冲突,并使其成为一个顺畅的过程。
|
||||
|
||||
事实上,我从 Pop!_OS 21.04 升级到 21.10 只需点击几下,没有遇到任何问题。
|
||||
|
||||
#### 7、努力改善现代桌面体验
|
||||
|
||||
Pop!_OS 可能不是一个 [轻量级 Linux 发行版][13],但它专注于为现代桌面用户提供一流的体验。
|
||||
|
||||
虽然有很多适合老式电脑的 Linux 发行版,但以新一代硬件为目标同样重要。
|
||||
|
||||
System76 也在他们的最新笔记本硬件配置上测试过该发行版,Pop!_OS 在这方面表现得非常好。
|
||||
|
||||
此外,Pop!_OS 还提供了开箱即用的调整功能,使用户在操作系统方面的体验变得简单。虽然 Linux 就是不断调整和控制你的系统,但 Pop!_OS 似乎成功地使它成为一个主流选择和一个可行的 Ubuntu 替代品,这可能对一些人来说更好。
|
||||
|
||||
#### 补充:软件包更新
|
||||
|
||||
System76 最近在 [Pop!_OS 21.10 版本][14] 中从 Launchpad 转向了自己的软件库。
|
||||
|
||||
这应该能让他们更快地推送更新,并控制软件包以确保用户的最佳体验。
|
||||
|
||||
这也应该使 Pop!_Shop 更加有用。因此,这是又一个在我的机器上继续使用 Pop!_OS 的理由。
|
||||
|
||||
### 总结
|
||||
|
||||
Pop!_OS 在很多地方做的很好。
|
||||
|
||||
如果你对选择一个易于使用、与最新硬件兼容、适合各种使用情况的 Linux 发行版感到困惑,我会推荐 Pop!_OS。
|
||||
|
||||
上述原因是我坚持使用它的原因,即使在我曾经尝试切换到 Zorin OS 和 Linux Mint 几个月。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/why-use-pop-os/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/pop-os-vs-ubuntu/
|
||||
[2]: https://pop.system76.com/
|
||||
[3]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/pop-os-downloads-iso.png?ssl=1
|
||||
[4]: https://nouveau.freedesktop.org
|
||||
[5]: https://itsfoss.com/nvidia-linux-mint/
|
||||
[6]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-mint-driver-manager.jpg?ssl=1
|
||||
[7]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/pop-os-window-tiling.png?ssl=1
|
||||
[8]: https://itsfoss.com/best-linux-distributions/
|
||||
[9]: https://github.com/pop-os/popsicle
|
||||
[10]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/pop-os-21-10-linux-kernel.png?ssl=1
|
||||
[11]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/pop-os-application-launcher.png?ssl=1
|
||||
[12]: https://itsfoss.com/ulauncher/
|
||||
[13]: https://itsfoss.com/lightweight-linux-beginners/
|
||||
[14]: https://news.itsfoss.com/pop-os-21-10/
|
@ -0,0 +1,206 @@
|
||||
[#]: subject: "How to Install and Use Latte Dock on Ubuntu and Other Linux Distributions"
|
||||
[#]: via: "https://itsfoss.com/install-use-latte-dock-ubuntu/"
|
||||
[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14340-1.html"
|
||||
|
||||
如何安装和使用 Latte Dock
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202203/09/091040v3n0vlxvt9a0zokx.jpg)
|
||||
|
||||
你知道什么是“<ruby>停靠区<rt>Dock</rt></ruby>” 吧,它通常是你的应用程序“停靠”的底栏,以便快速访问。
|
||||
|
||||
![][1]
|
||||
|
||||
许多发行版和桌面环境都提供了某种停靠实现。如果你的发行版没有“<ruby>停靠区<rt>Dock</rt></ruby>”,或者你想尝试一些新的停靠应用,Latte Dock 是一个不错的选择。它类似于 macOS 上的停靠区,每次你用鼠标悬停在任何停靠对象上时,都会有一个的抛物线动画。
|
||||
|
||||
在本教程中,我将告诉你如何在 Ubuntu 上安装 Latte Dock。我还会展示一些关于使用和定制 Latte Dock 的事情。
|
||||
|
||||
### 在 Ubuntu 上安装 Latte Dock
|
||||
|
||||
[Latte Dock][2] 是一个流行的应用程序,可以从大多数 Linux 发行版的官方软件库中获得。也就是说你可以使用你的发行版的软件中心或软件包管理器来安装 Latte dock。
|
||||
|
||||
![Latte 可以从软件中心获得][3]
|
||||
|
||||
在 Ubuntu 和其他基于 Ubuntu 的发行版,如 elementary OS、Linux Mint、Pop!_OS、Zorin OS 上,使用 `apt` 命令:
|
||||
|
||||
```
|
||||
sudo apt install latte-dock
|
||||
```
|
||||
|
||||
这就行了!现在你已经在 Ubuntu 上安装了 Latte Dock。
|
||||
|
||||
#### 停用 Ubuntu 自带的停靠区(针对 Ubuntu 用户)
|
||||
|
||||
在你启动你闪亮的新停靠区之前,我建议你禁用 Ubuntu 默认提供的停靠区。这里有一个 [关于如何禁用 Ubuntu 的停靠区的指南][4]。
|
||||
|
||||
要禁用停靠区,请在你的终端输入以下内容:
|
||||
|
||||
```
|
||||
gnome-extensions disable ubuntu-dock@ubuntu.com
|
||||
```
|
||||
|
||||
如果你最终改变了主意,你可以用以下命令再次启用 Ubuntu 停靠区:
|
||||
|
||||
```
|
||||
gnome-extensions enable ubuntu-dock@ubuntu.com
|
||||
```
|
||||
|
||||
> 注意:
|
||||
>
|
||||
> 这不能禁用 Pop!_OS 20.04 LTS 上的默认停靠区(尽管它在桌面上默认是隐藏的;只在活动概览中可见)。在使用 COSMIC 桌面环境/扩展的 Pop!_OS 上,你可以通过“<ruby>设置<rt>Settings</rt></ruby>”应用中的“<ruby>桌面<rt>Desktop</rt></tuby> -> <ruby>停靠区<rt>Dock</rt></ruby>”来禁用或启用停靠区。
|
||||
|
||||
### 开始使用 Latte Dock
|
||||
|
||||
我在教程中使用的是 Pop!_OS,但这些步骤适用于任何 Linux 发行版。
|
||||
|
||||
一旦安装完毕,你会在你的应用程序抽屉里发现一个 Latte Dock 的启动器图标。你可以在这里访问它,或者按 `Super` 键(通常是 `Windows` 键;如果你有 Mac 键盘,则按 `Command` 键)键 + `A`。
|
||||
|
||||
从这里打开 Latte Dock:
|
||||
|
||||
![应用抽屉里高亮显示的 Latte dock][5]
|
||||
|
||||
酷!现在你的桌面上已经打开了 Latte Dock。
|
||||
|
||||
![桌面上的 Latte Dock 屏幕截图][6]
|
||||
|
||||
#### 启用 Latte Dock 的自动启动功能
|
||||
|
||||
随着 Latte Dock 的打开,以及 Ubuntu 自带停靠区的禁用,如果你现在重启,那么下次你的电脑开机时就不会有任何停靠区了。
|
||||
|
||||
让我们现在就来解决这个问题。
|
||||
|
||||
在停靠区上点击右键。点击“<ruby>布局<rt>Layouts</rt></ruby>”子菜单下的“<ruby>配置<rt>Configure</rt></ruby>”选项。
|
||||
|
||||
![通过进入“布局” -> “配置” 启动设置面板窗口][7]
|
||||
|
||||
现在,在“<ruby>偏好<rt>Preferences</rt></ruby>”选项卡下,确保“<ruby>在启动时启用自动启动<rt>Enable autostart during startup</rt></ruby>”复选框被选中。
|
||||
|
||||
![启用启动时自动启动复选框][8]
|
||||
|
||||
### 定制你的停靠区
|
||||
|
||||
如果你安装了任何 KDE 的产品,定制应该是永无止境的。如果 Latte Dock 不允许定制,那就奇怪了。幸运的是,情况并非如此。
|
||||
|
||||
你可以做各种各样的事情来定制 Latte Dock。增加它的大小,使它更透明或半透明,为它设计主题等等。
|
||||
|
||||
#### 将应用程序固定在停靠区上
|
||||
|
||||
要把你的应用程序固定在 Latte Dock 上,打开该应用程序,右键点击在你停靠区中的应用程序图标。现在点击“<ruby>固定启动器<rt></rt>Pin Launcher</ruby>”。完成了!你的应用程序现在已经被固定到了停靠区上。
|
||||
|
||||
![右击正在运行的应用程序并选择钉住启动器选项][9]
|
||||
|
||||
你可以通过点击和拖动移动它到左边或右边来改变它在停靠区中的位置。
|
||||
|
||||
#### 搜索和安装 Latte Dock 主题
|
||||
|
||||
通过右击停靠区打开 Latte Dock 的“<ruby>设置<rt>Settings</rt></ruby>”窗口,点击“<ruby>布局<rt>Layout</rt></ruby>”子菜单下的“<ruby>配置<rt>Configure</rt></ruby>”选项。
|
||||
|
||||
你可能已经安装了一些主题(呃...布局)。从已安装的选项列表中选择它,然后点击右侧的切换按钮。
|
||||
|
||||
![改变 Latte Dock 的主题][10]
|
||||
|
||||
你也可以通过点击“<ruby>下载<rt>Download</rt></ruby>”按钮来下载更多的主题。它应该向你显示一个可用的主题列表,以供安装。
|
||||
|
||||
![Latte Dock 插件安装窗口][11]
|
||||
|
||||
#### 改变停靠区的外观和行为
|
||||
|
||||
正如我前面提到的,在 KDE 产品中有大量的定制选项。
|
||||
|
||||
让我们来试试。
|
||||
|
||||
右键点击停靠区,点击 “<ruby>停靠区设置<rt>Dock Settings</rt></ruby>”。
|
||||
|
||||
![通过右键点击停靠区进入 Latte Dock 设置][12]
|
||||
|
||||
在这里,你会得到各种类型的可以切换的选项。想把停靠区移到显示器的左侧吗?你可以通过“<ruby>位置<rt> Location</rt></ruby>”子菜单下提供的选项来实现。
|
||||
|
||||
![Dock 设置和定制窗口][13]
|
||||
|
||||
如果你觉得可用的选项有任何限制,请拨动右上角的“<ruby>高级<rt>Advanced</rt></ruby>”开关。
|
||||
|
||||
![现在可以看到带有高级选项的停靠区设置和定制窗口][14]
|
||||
|
||||
现在看起来真是太棒了!
|
||||
|
||||
试着切换每个可用的开关。你可以延迟隐藏停靠区。你可以把它放在显示器的一个边缘,把它放在该边缘的中心、左边或右边。你可以做到这一切。
|
||||
|
||||
想修饰启动、悬停等效果?在“<ruby>效果<rt>Effects</rt></ruby>”选项卡下有更多的调整选项等待着你。
|
||||
|
||||
### 从你的系统中删除 Latte Dock
|
||||
|
||||
你安装了 Latte Dock,并对其进行了定制,但觉得它不是你想要的东西。而你现在正在寻找删除 Latte Dock 的方法。很好,我帮你。
|
||||
|
||||
你可以使用 `apt` 软件包管理器删除 Latte Dock。用下面的命令来做:
|
||||
|
||||
```
|
||||
sudo apt autoremove --purge latte-dock
|
||||
```
|
||||
|
||||
![][15]
|
||||
|
||||
`--purge` 标志将删除 Latte Dock 在系统目录中的任何配置文件,除了 `~/.config`。
|
||||
|
||||
#### 仅供高级用户使用:删除用户特定的遗留文件
|
||||
|
||||
这不是强制性的,但如果你想删除通常放在 `$HOME/.config`(即 `~/.config`)目录中的用户配置文件。[使用 find 命令][16] 来定位 Latte Dock 的配置文件:
|
||||
|
||||
```
|
||||
find ~/.config -iname "latte*"
|
||||
```
|
||||
|
||||
![][17]
|
||||
|
||||
你可以安全地从你的 `~/.config` 目录中删除这些目录和配置文件。
|
||||
|
||||
#### 对于 Ubuntu 用户:重新启用 Ubuntu 停靠区
|
||||
|
||||
不要忘了启用 Ubuntu 的停靠区。如果你不记得了,再次启用停靠区的命令在下面:
|
||||
|
||||
```
|
||||
gnome-extensions enable ubuntu-dock@ubuntu.com
|
||||
```
|
||||
|
||||
### 总结
|
||||
|
||||
Latte Dock 是一个来自 KDE 社区的令人惊艳的停靠区 ( ͡° ͜ʖ ͡°)
|
||||
|
||||
它提供了大量的主题(布局)、外观和自定义选项,以及一些漂亮的效果。如果你正在考虑定制你的桌面外观和感觉,它肯定是你应该寻找的东西。
|
||||
|
||||
如果你最终喜欢上了 Latte Dock 并开始每天使用它,请在评论中告诉我。如果你不喜欢 Latte Dock,也请发表评论让我知道原因。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/install-use-latte-dock-ubuntu/
|
||||
|
||||
作者:[Pratham Patel][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/pratham/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/latte-dock.webp?resize=800%2C167&ssl=1
|
||||
[2]: https://invent.kde.org/plasma/latte-dock
|
||||
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/latte-ubuntu-software-center.png?resize=800%2C384&ssl=1
|
||||
[4]: https://itsfoss.com/disable-ubuntu-dock/
|
||||
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/02_latte_in_drawer.webp?resize=800%2C450&ssl=1
|
||||
[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/03_latte_dock_launched.webp?resize=800%2C450&ssl=1
|
||||
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/configure-latte-dock.png?resize=800%2C392&ssl=1
|
||||
[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/enable_autostart_latte_dock.webp?resize=800%2C433&ssl=1
|
||||
[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/pin-app-latte-dock.webp?resize=800%2C334&ssl=1
|
||||
[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/change-themes-latte-dock.webp?resize=800%2C393&ssl=1
|
||||
[11]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/11/08_download_layouts.webp?resize=800%2C450&ssl=1
|
||||
[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/latte_dock_settings.webp?resize=799%2C246&ssl=1
|
||||
[13]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/11_customization_options.webp?resize=800%2C450&ssl=1
|
||||
[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/12_customization_options_advanced.webp?resize=800%2C450&ssl=1
|
||||
[15]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/11/15_apt_get_remove.webp?resize=800%2C450&ssl=1
|
||||
[16]: https://linuxhandbook.com/find-command-examples/
|
||||
[17]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/11/13_find_configs.webp?resize=800%2C450&ssl=1
|
351
published/20211208 Vanilla Vim is fun.md
Normal file
351
published/20211208 Vanilla Vim is fun.md
Normal file
@ -0,0 +1,351 @@
|
||||
[#]: subject: "Vanilla Vim is fun"
|
||||
[#]: via: "https://opensource.com/article/21/12/vanilla-vim-config"
|
||||
[#]: author: "Lukáš Zapletal https://opensource.com/users/lzap"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14326-1.html"
|
||||
|
||||
简简单单的 Vim 就很好
|
||||
======
|
||||
|
||||
> 这就是我如何从 35 个 Vim 插件降到只有 6 个的原因。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202203/04/161603q6mmr6q7kkkd2yky.jpg)
|
||||
|
||||
当你用 `—clean` 选项启动 Vim 时,它以 “素” 模式展示 Vim。没有插件、没有配置,一切回到了最初。多年来,我收集了一堆配置语句,其中一些可以追溯到 MS-DOS 或 Windows 3.1 时期。我是这样打算的:从头开始,只用 Fedora 35 中可用的插件,找到一个好的配置起点。我可以在一周的编码生活中生存下来吗?我会找到答案的!
|
||||
|
||||
规则是这样的:尽可能少的配置语句,并且只使用 Fedora 35+ 中的插件。顺便说一下,如果你不是 Fedora 用户,也请继续阅读。你可以随时从你的操作系统软件包管理器手动安装或者使用 Vim 插件管理器安装这些插件。
|
||||
|
||||
在我开始之前,有一个大问题需要解决:用 Vim 还是 Neovim(Vim 的一个复刻)。好吧,这由你决定。这篇文章中的所有内容应该对两者都适用。然而,我只用 Vim 测试过。当你登录到一个只有 `vi` 可用的服务器时,所有的这些技能都会派上用场。它可以是一个旧的 UNIX 系统、一个安装了最少的软件以提高安全性的 Linux 服务器、一个容器中的交互式 shell,或者一个空间宝贵的嵌入式系统。
|
||||
|
||||
闲话少说,下面是我提炼出来的使用 Vim 进行编码的绝对最低限度的东西:
|
||||
|
||||
```
|
||||
# dnf install --allowerasing vim-default-editor \
|
||||
vim-enhanced \
|
||||
vim-ctrlp \
|
||||
vim-airline \
|
||||
vim-trailing-whitespace \
|
||||
vim-fugitive \
|
||||
vim-ale \
|
||||
ctags
|
||||
```
|
||||
|
||||
不要担心 `—allowerasing` 选项。在确认之前,只需查看一下安装的东西。这个选项的作用是告诉软件包管理器把现有的 `nano-default-editor` 包替换为 `vim-default-editor`。这是一个小软件包,它在 shell 配置文件中将 `EDITOR` 环境变量设置为 `vim`,如果你想默认使用 Vim(例如,与 `git` 一起使用),这是必须的。这是专门针对 Fedora 的。你不需要在其他发行版或操作系统上这样做,只要确保你的 `EDITOR` shell 变量被正确设置就行。
|
||||
|
||||
### 概览
|
||||
|
||||
简单介绍一下我认为好的、干净的插件集:
|
||||
|
||||
* **CtrlP**:尽可能小的模糊查找插件(纯 vimscript)
|
||||
* **Fugitive**:一个 git 的必备工具
|
||||
* **Trailing-whitespace**:显示并修复(删除)尾部的空格
|
||||
* **Airline**:一个改进的状态行(纯 vimscript)
|
||||
* **Ale**:在你打字时高亮显示错别字或语法错误
|
||||
* **Ctags**:不是 Vim 插件,但却是一个非常需要的工具
|
||||
|
||||
还有其他的模糊查找插件,如 command-t 或我最喜欢的 `fzf.vim`(非常快)。问题是,`fzf.vim` 不在 Fedora 中,而我想要尽可能少的配置。CtrlP 就可以了,而且配置它更容易,因为它不需要什么依赖。
|
||||
|
||||
如果让我选择一个绝对最小的配置,那就是:
|
||||
|
||||
```
|
||||
# cat ~/.vimrc
|
||||
let mapleader=","
|
||||
let maplocalleader="_"
|
||||
filetype plugin indent on
|
||||
let g:ctrlp_map = '<leader><leader>'
|
||||
let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
|
||||
set exrc
|
||||
set secure
|
||||
```
|
||||
|
||||
但这可能太极端了,所以这里是一个稍大的配置,下面是我的详细解释:
|
||||
|
||||
```
|
||||
" vim: nowrap sw=2 sts=2 ts=2 et:
|
||||
|
||||
" leaders
|
||||
let mapleader=","
|
||||
let maplocalleader="_"
|
||||
|
||||
" filetype and intent
|
||||
filetype plugin indent on
|
||||
|
||||
" incompatible plugins
|
||||
if has('syntax') && has('eval')
|
||||
packadd! matchit
|
||||
end
|
||||
|
||||
" be SSD friendly (can be dangerous!)
|
||||
"set directory=/tmp
|
||||
|
||||
" move backups away from projects
|
||||
set backupdir=~/.vimbackup
|
||||
|
||||
" fuzzy searching
|
||||
let g:ctrlp_map = '<leader><leader>'
|
||||
let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
|
||||
nnoremap <leader>b :CtrlPBuffer<cr>
|
||||
nnoremap <leader>t :CtrlPTag<cr>
|
||||
nnoremap <leader>f :CtrlPBufTag<cr>
|
||||
nnoremap <leader>q :CtrlPQuickfix<cr>
|
||||
nnoremap <leader>m :CtrlPMRU<cr>
|
||||
|
||||
" buffers and quickfix
|
||||
function! ToggleQuickFix()
|
||||
if empty(filter(getwininfo(), 'v:val.quickfix'))
|
||||
copen
|
||||
else
|
||||
cclose
|
||||
endif
|
||||
endfunction
|
||||
nnoremap <leader>w :call ToggleQuickFix()<cr>
|
||||
nnoremap <leader>d :bd<cr>
|
||||
|
||||
" searching ang grepping
|
||||
nnoremap <leader>g :copen<cr>:Ggrep!<SPACE>
|
||||
nnoremap K :Ggrep "\b<C-R><C-W>\b"<cr>:cw<cr>
|
||||
nnoremap <leader>s :set hlsearch! hlsearch?<cr>
|
||||
|
||||
" ctags generation
|
||||
nnoremap <leader>c :!ctags -R .<cr><cr>
|
||||
|
||||
" per-project configs
|
||||
set exrc
|
||||
set secure
|
||||
```
|
||||
|
||||
### 使用逗号作为引导键
|
||||
|
||||
我喜欢把我的 `引导键` 映射成逗号 `,`,而不是默认的反斜杠 `\`。当你的手处于书写位置时,它是 Vim 中最接近的自由键。另外,这个键在大多数键盘布局中都是一样的,而 `\` 在每个型号或布局都不一样。我很少使用 `本地引导键`,但下划线 `_` 看起来很合适。
|
||||
|
||||
延伸阅读:
|
||||
|
||||
* 参见 [Vim 参考手册][2] 中的 `:help map-which-keys`。
|
||||
* 参见 [Vim Tips Wiki][3] 中的 Vim 中未使用的键。
|
||||
|
||||
### 文件类型和关闭语法高亮
|
||||
|
||||
接下来是非常重要的 `filetype` 命令。看,Vim 自带“内置电池”,8.2 版本包含 644 种语言的语法高亮,251 个文件类型定义(`ftplugins`),以及 138 种语言的缩进规则。然而,缩进在默认情况下是不启用的,也许是为了给所有人提供一个一致的编辑体验。我喜欢启用它。
|
||||
|
||||
一个简单的技巧:如果你正在编辑一个非常大的文件,并且 Vim 感觉很慢,你可能想禁用语法高亮来加快速度。只要输入 `:syn off` 命令即可。
|
||||
|
||||
延伸阅读:
|
||||
|
||||
* 参见 [Vim 参考手册][4] 中的 `:help filetype`。
|
||||
* 参见 [Vim 参考手册][5] 中的 `:help syntax`。
|
||||
* 参见 [Vim 参考手册][6] 中的 `:help indent`。
|
||||
|
||||
### Matchit 插件
|
||||
|
||||
Vim 甚至额外带有使得一些功能不兼容的插件,其中一个相当有用。它就是 `matchit` 插件,它使按下 `%` 键可以在某些语言中查找匹配的括号。通常情况下,你可以找到一个块的开始或结束(开始和结束括号)或 HTML 匹配标签及类似的。
|
||||
|
||||
延伸阅读:
|
||||
|
||||
* 参见 [Vim 参考手册][7] 中的 `:help matchit`。
|
||||
|
||||
### 交换文件
|
||||
|
||||
我想从我的旧配置中保留的许多设置之一是使用 `/tmp` 进行交换,并在我的家目录的一个单独目录中创建备份,你需要用 `mkdir ~/.vimbackup` 来创建这个目录。重要的是要明白,当你开始编辑时,Vim 会创建一个名为 “交换文件” 的副本,所有未保存的工作都会保存在这个文件中。所以即使停电了,你的交换文件也包含了大部分未保存的工作。我更喜欢使用 `tmpfs`,因为我所有的笔记本电脑和服务器都有 UPS 保护,而且我经常保存。另外,大多数情况下,你会使用到交换文件是当你的 SSH 连接丢失而不是由于停电时。对于大文件来说,交换文件可能相当大,我很珍视我的固态硬盘,所以我决定这样做。如果你不确定,可以删除这句话,使用 `/var/tmp`,这样更安全。
|
||||
|
||||
延伸阅读;
|
||||
|
||||
* 参见 [Vim 参考手册][8] 中的 `:help swap-file`。
|
||||
|
||||
### 模糊寻找插件
|
||||
|
||||
现在,模糊查找是一个我不能没有的插件。在服务器上当你每天需要打开 20 个文件时,使用 `:Ex` 或 `:e` 或 `:tabe` 等命令打开文件是没问题的。而当编码时,我通常需要打开数百个文件。正如我所说,CtrlP 很好地完成了这项工作。它很小,没有依赖性,纯 Vim。它用 `Ctrl + P` 组合键打开,这对我来说有点奇怪。我知道一些著名的编辑器(我记得是 VSCode)使用这个组合键。问题是,这已经是很重要的 Vim 绑定键,我不想覆盖它。所以对我来说,赢家是 `引导键 + 引导键`(逗号按两次)。
|
||||
|
||||
`ctrlp_user_command` 只是改变了 CtrlP 获取文件列表的方式。它不使用内置的递归文件列表(glob),而是使用 `git ls-files`,这通常更好,因为它忽略了 `.gitignore` 中的东西,所以像 `node_modules` 或其他可能拖慢列表的不相关目录不会受到影响。
|
||||
|
||||
使用 `引导键` + `B`/`T`/`F`/`Q`/`M` 来打开缓冲区、标签、当前文件的标签、快速修复缓冲区和最近使用的文件的列表,非常有用。具体来说,一旦你用 `ctags` 生成了标签列表,这基本上就是数百种编程语言的“去……定义处”,而且不需要插件!这都是 Vim 内置的。现在澄清一下,当我说输入 `引导键 + B` 时,是指按下逗号,然后按 `B` 键,而不是像用 `Control` 或 `Shift` 那样一起按。
|
||||
|
||||
延伸阅读:
|
||||
|
||||
* 参见 [Vim 参考手册][9] 中的 `:help Explore`。
|
||||
* 参见 [ctrlp.vim GitHub][10]。
|
||||
|
||||
### 缓冲区管理
|
||||
|
||||
虽然现在 Vim 支持标签,但缓冲区管理是掌握 Vim 的一个重要技能。我通常会有很多缓冲区,我需要经常做 `:bdelete`。那么,`引导键 + D` 似乎是一个不错的选择,可以更快地完成这个任务。我也喜欢关闭 Quickfix 窗口,所以也有 `引导键 + W` 的组合键,我在浏览搜索结果时经常使用这个功能。
|
||||
|
||||
延伸阅读:
|
||||
|
||||
* 参见 [Vim 参考手册][11] 中的 `:help buffer-hidden`。
|
||||
|
||||
### Ggrep 和 fugitive 插件
|
||||
|
||||
说到搜索,它和打开文件一样重要。我希望能够对代码库进行检索。为此,有一个来自 fugitive 插件的很棒的 `:Ggrep` 命令,它使用 `git grep`,忽略了垃圾文件,只搜索 Git 中的内容。由于 `Shift + K` 是 Vim 中的一个自由键,它非常适用于自动检索光标位置的词语。最后,能够使用 `引导键 + G` 输入任意的搜索模式也很好。注意,这将打开一个叫做 Quickfix 的窗口,你可以在这里浏览结果、查看下一个/上一个/最后一个/第一个出现的地方,等等。这个窗口也用于编译器或其他工具的输出,所以要熟悉它。如果你对此感到陌生,我建议进一步阅读文档。
|
||||
|
||||
延伸阅读:
|
||||
|
||||
* 参见 [Vim 参考手册][12] 中的 `:help quickfix`。
|
||||
* 参见 [vim-fugitive GitHub][13]。
|
||||
|
||||
### 用 fugitive 进行搜索、检索
|
||||
|
||||
顺便说一下,用 `/` 键搜索是智能和大小写敏感的,这意味着如果所有的搜索字符都是小写的,Vim 的搜索会忽略大小写。默认情况下,它会高亮显示结果,我觉得我已经敲了无数次的 `:noh`(来关闭高亮显示)。这就是为什么我有 `引导键 + S` 来切换高亮显示。我建议以后也多读读手册中关于搜索的内容。
|
||||
|
||||
接下来是搜索、检索。fugitive 插件已经为你提供了。使用命令 `:Ggrep pattern` 来进行 `git grep`,结果会进入 Quickfix 窗口。然后简单地使用快速修复命令(`:cn`、`:cp` 等等)浏览结果,或者简单地使用 `:CtrlPQuickfix`(`引导键 + Q`)来直观地滚动它们。CtrlP 的快速修复整合的酷炫之处是,你可以通过输入以匹配文件名或内容来进一步在搜索结果中搜索。
|
||||
|
||||
延伸阅读:
|
||||
|
||||
* 参见 [Vim 参考手册][14] 中的 `:help grep`。
|
||||
* 参见 [Vim 参考手册][15] 中的 `:help noh`。
|
||||
* 参见 [vim-fugitive GitHub][13] 。
|
||||
|
||||
### Ctags
|
||||
|
||||
`引导键 + C` 可以生成一个 ctags 文件,以便更好地导航,这在处理一个新的代码库或做一个有很多跳转的较长的编码任务时很有用。ctags 支持数百种语言,而 Vim 可以利用所有这些知识来导航。后面会有更多关于如何配置它的内容。注意我已经讨论过 `引导键 + T` 来打开所有标签的模糊搜索,记得吗?这两个是非常相同的。
|
||||
|
||||
延伸阅读:
|
||||
|
||||
* 参见 [Vim 参考手册][16] 中的 `:help ctags`。
|
||||
* 参见 [Universal Ctags 网站][17]。
|
||||
|
||||
### 按键映射
|
||||
|
||||
能够通过在项目目录下创建一个 `.vimrc` 文件来覆盖该项目中的任何设置是一个好主意。只要把它放在(全局的) `.gitignore` 中,以确保你不需要在每个项目中编辑成千上万的 `.gitignore` 文件。这样的一个项目的 `.vimrc` 可以是这样的(对于使用 GNU Makefile 的 C/C++ 项目):
|
||||
|
||||
```
|
||||
" coding style
|
||||
set tabstop=4
|
||||
set softtabstop=4
|
||||
set shiftwidth=4
|
||||
set noexpandtab
|
||||
" include and autocomplete path
|
||||
let &path.="/usr/local/include"
|
||||
" function keys to build and run the project
|
||||
nnoremap <F9> :wall!<cr>:make!<cr><cr>
|
||||
nnoremap <F10> :!LD_LIBRARY_PATH=/usr/local/lib ./project<cr><cr>
|
||||
```
|
||||
|
||||
正如你所看到的,我通常将 `F2` 到 `F10` 等键映射到编译、运行、测试和类似的操作。用 `F9` 来调用 `make`,听起来不错。还记得 MS-DOS 上的蓝色 Borland IDE 吗?
|
||||
|
||||
如前所述,在全局范围内忽略 `.vimrc` 和(由 `ctags` 生成的)`tags` 是个好主意,所以不需要每次都更新 `.gitignore`:
|
||||
|
||||
```
|
||||
# git config --global core.excludesfile ~/.gitignore
|
||||
# cat ~/.gitignore
|
||||
/.vimrc
|
||||
/tags
|
||||
/TAGS
|
||||
```
|
||||
|
||||
在我的个人配置中还有几条只与那些非美国键盘布局的人有关(我用捷克语)。我需要用“死键”来输入许多字符(LCTT 译注:“死键”是一种通过将变音符号与后面的字母结合起来打出重音字符的方法。这种方法在历史上被用于机械打字机),这根本不可能,我宁愿输入命令而不是按那些难以按下的组合键。这里有一个解决问题的办法:
|
||||
|
||||
```
|
||||
" CTRL-] is hard on my keyboard layout
|
||||
map <C-K> <C-]>
|
||||
" CTRL-^ is hard on my keyboard layout
|
||||
nnoremap <F1> :b#<cr>
|
||||
nnoremap <F2> :bp<cr>
|
||||
nnoremap <F3> :bn<cr>
|
||||
" I hate entering Ex mode by accident
|
||||
map Q <Nop>
|
||||
```
|
||||
|
||||
延伸阅读:
|
||||
|
||||
* 参见 [Vim 参考手册][18] 中的 `:help map`。
|
||||
|
||||
功能键在 Vim 中都是自由的,除了 `F1`,它被绑定在帮助上。我不需要帮助,并不是说我已经会对 Vim 了如指掌,并不是。但如果需要的话,我可以简单地输入 `:help`。而 `F1` 是一个关键的键,离 `Esc` 键如此之近。我喜欢将它用于缓冲区交换(`:b#`),将 `F2`/`F3` 用作下一个/上一个。你越是与缓冲区打交道,你就越需要这个。如果你没有使用过 `Ctrl + ^`,我建议你要习惯于它。哦,你有没有丑陋地输入 `:visual` 进入过 Ex 模式?许多初学者都不知道如何从该模式下退出 Vim。对我来说,这就是打扰,因为我很少使用它。
|
||||
|
||||
现在,熟悉 `ctags` 是成功使用 Vim 的一个关键因素。这个工具支持数百种语言,它不小心就为你不想创建标签的文件创建它,因此我建议忽略典型的垃圾目录:
|
||||
|
||||
```
|
||||
# cat ~/.ctags.d/local.ctags
|
||||
--recurse=yes
|
||||
--exclude=.git
|
||||
--exclude=build/
|
||||
--exclude=.svn
|
||||
--exclude=vendor/*
|
||||
--exclude=node_modules/*
|
||||
--exclude=public/webpack/*
|
||||
--exclude=db/*
|
||||
--exclude=log/*
|
||||
--exclude=test/*
|
||||
--exclude=tests/*
|
||||
--exclude=\*.min.\*
|
||||
--exclude=\*.swp
|
||||
--exclude=\*.bak
|
||||
--exclude=\*.pyc
|
||||
--exclude=\*.class
|
||||
--exclude=\*.cache
|
||||
```
|
||||
|
||||
### Airline 插件
|
||||
|
||||
我一定不能忘记 Vim 的 Airline 插件。在 Fedora 的两个插件中,这个插件很轻量级,不需要外部依赖,而且可以开箱即用我所有的字体。你可以定制它,而且还有主题之类的东西。我只是碰巧喜欢它的默认设置。
|
||||
|
||||
我必须提到,有两个主要的 Ctags 项目:Exuberant Ctags 和 Universal Ctags。后者是一个更现代的复刻。如果你的发行版有,就用它。如果你在 Fedora 35+ 上,你应该知道你现在用的是 Universal Ctags。
|
||||
|
||||
### 总结
|
||||
|
||||
作为总结,我的建议是这样的。尽量保持你的 Vim 配置流畅和干净。这将在未来得到回报。在我转换到新配置之后,我不得不重新学习“写入并退出”的命令,因为我总是不小心把它打成 `:Wq`,而我在旧的配置里有一个“小技巧”,让它实际上按我的意思工作。好吧,这个可能真的很有用,并能入选,我希望你能明白我的意思:
|
||||
|
||||
```
|
||||
:command Wq wq
|
||||
:command WQ wq
|
||||
```
|
||||
|
||||
最后的一个快速技巧是:你可能需要经常改变你的默认 Vim 配置,来找到我在这里向你介绍的和你自己口味之间的舒适区。使用下面的别名,这样你就不需要一直搜索历史。相信我,当一个 Vim 用户在命令历史里搜索 “vim” 时,找不到什么是相关的内容:
|
||||
|
||||
```
|
||||
alias vim-vimrc='vim ~/.vimrc'
|
||||
```
|
||||
|
||||
就是这些了。也许这可以帮助你在没有大量插件的情况下在 Vim 的丰富世界遨游。“简简单单” 的 Vim 也很不错!
|
||||
|
||||
要尝试你刚刚读到的内容,请安装软件包并检出这些配置:
|
||||
|
||||
```
|
||||
test -f ~/.vimrc && mv ~/.vimrc ~/.vimrc.backup
|
||||
curl -s https://raw.githubusercontent.com/lzap/vim-lzap/master/.vimrc -o ~/.vimrc
|
||||
mkdir ~/.vimbackup
|
||||
```
|
||||
|
||||
特别感谢 Marc Deop 和 [Melanie Corr][19] 对本文的审阅。
|
||||
|
||||
### 更新
|
||||
|
||||
我已经在这种配置下生存下来了!我唯一的纠结是 CtrlP 插件的结果顺序不同。文件的模糊算法与 `fzf.vim` 插件不同,所以我以前用各种搜索词能找到的文件现在找不到了。我最后安装了 Fedora 的 fzf 包以获得更相关的文件搜索,它附带了一个 vim 函数 `FZF`,可以绑定到引导键组合上。请看我的 [GitHub 仓库][20] 中更新后的配置文件。一路走来,我学到了很多东西。有一些键的绑定我已经忘记了,这要感谢许多插件。
|
||||
|
||||
这篇文章最初发表在 [作者的网站][21] 上,经许可后重新发表。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/vanilla-vim-config
|
||||
|
||||
作者:[Lukáš Zapletal][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/lzap
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/coffee_tea_laptop_computer_work_desk.png?itok=D5yMx_Dr (Person drinking a hot drink at the computer)
|
||||
[2]: https://vimhelp.org/map.txt.html#map-which-keys
|
||||
[3]: https://vim.fandom.com/wiki/Unused_keys
|
||||
[4]: https://vimhelp.org/filetype.txt.html
|
||||
[5]: https://vimhelp.org/syntax.txt.html
|
||||
[6]: https://vimhelp.org/indent.txt.html
|
||||
[7]: https://vimhelp.org/usr_05.txt.html#matchit-install
|
||||
[8]: https://vimhelp.org/recover.txt.html#swap-file
|
||||
[9]: https://vimhelp.org/pi_netrw.txt.html#netrw-explore
|
||||
[10]: https://github.com/kien/ctrlp.vim
|
||||
[11]: https://vimhelp.org/windows.txt.html#buffer-hidden
|
||||
[12]: https://vimhelp.org/quickfix.txt.html
|
||||
[13]: https://github.com/tpope/vim-fugitive
|
||||
[14]: https://vimhelp.org/quickfix.txt.html#grep
|
||||
[15]: https://vimhelp.org/pattern.txt.html#noh
|
||||
[16]: https://vimhelp.org/tagsrch.txt.html
|
||||
[17]: https://ctags.io
|
||||
[18]: https://vimhelp.org/map.txt.html
|
||||
[19]: https://opensource.com/users/melanie-corr
|
||||
[20]: https://github.com/lzap
|
||||
[21]: https://lukas.zapletalovi.com/2021/11/a-sane-vim-configuration-for-fedora.html
|
@ -0,0 +1,297 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (Starryi)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14159-1.html)
|
||||
[#]: subject: (Create your own video streaming server with Linux)
|
||||
[#]: via: (https://opensource.com/article/19/1/basic-live-video-streaming-server)
|
||||
[#]: author: (Aaron J.Prisk https://opensource.com/users/ricepriskytreat)
|
||||
|
||||
使用 OBS 搭建视频流媒体服务器
|
||||
======
|
||||
|
||||
> 在 Linux 或 BSD 操作系统上设置基本的实时流媒体服务器。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/08/102934r2qpr1rlkpjb1pwb.jpg)
|
||||
|
||||
实时视频流越来越流行。亚马逊的 Twitch 和谷歌的 YouTube 等平台拥有数百万用户,这些用户消磨了无数小时的来观看直播和录制视频。这些视频服务通常可以免费使用,但需要你拥有一个帐户,并且一般会将你的视频内容隐藏在广告中。有些人不希望他们的视频提供给大众观看,或者想更多地控制自己的视频内容。幸运的是,借助强大的开源软件,任何人都可以设置直播服务器。
|
||||
|
||||
### 入门
|
||||
|
||||
在本教程中,我将说明如何使用 Linux 或 BSD 操作系统设置基本的实时流媒体服务器。
|
||||
|
||||
搭建实时流媒体服务器不可避免地提到系统需求问题。这些需求多种多样,因为实时流媒体涉及许多因素,例如:
|
||||
|
||||
* **流媒体质量:** 你想以高清流媒体播放还是标清视频就可以满足你的需求?
|
||||
* **收视率:** 你的视频预计有多少观众?
|
||||
* **存储:** 你是否打算保留已保存的视频流副本?
|
||||
* **访问:** 你的视频流是私有的还是向全世界开放的?
|
||||
|
||||
在硬件要求方面没有固定规则,因此我建议你进行测试,以便找到最适合你需求的配置。本项目中,我将服务器安装在配有 4GB 内存、20GB 硬盘空间和单个 Intel i7 处理器内核的虚拟机上。
|
||||
|
||||
本项目使用<ruby>实时消息传递协议<rt>Real-Time Messaging Protocol</rt></ruby>(RTMP)来处理音频和视频流。当然还有其他协议可用,但我选择 RTMP 是因为它具有广泛的支持。鉴于像 WebRTC 这样的开放标准变得更加兼容,我比较推荐这条路线。
|
||||
|
||||
同样重要的是,要明白“实时”并不总是意味着即时。视频流必须经过编码、传输、缓冲和显示,这通常会增大延迟。延迟可以被缩短或延长,具体取决于你创建的流类型及其属性。
|
||||
|
||||
### 设置 Linux 服务器
|
||||
|
||||
你可以使用许多不同的 Linux 发行版,但我更喜欢 Ubuntu,因此我下载了 [Ubuntu 服务器版][1] 作为我的操作系统。如果你希望你的服务器具有图形用户界面(GUI),请随意使用 [Ubuntu 桌面版][2] 或其多种风味版本之一。然后,我在我的计算机或虚拟机上启动了 Ubuntu 安装程序,并选择了最适合我的环境的设置。以下是我采取的步骤。
|
||||
|
||||
注意:因为这是一个服务器,你可能需要设置静态网络。
|
||||
|
||||
![](https://opensource.com/sites/default/files/uploads/stream-server_profilesetup.png)
|
||||
|
||||
安装程序完成并重新启动系统后,你会看到一个可爱的新 Ubuntu 系统。 与任何新安装的操作系统一样,安装任何可用的更新:
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
```
|
||||
|
||||
这个流媒体服务器将使用非常强大通用的 Nginx 网络服务器,所以你需要安装它:
|
||||
|
||||
```
|
||||
sudo apt install nginx
|
||||
```
|
||||
|
||||
然后你需要获取 RTMP 模块,以便 Nginx 可以处理你的媒体流:
|
||||
|
||||
```
|
||||
sudo add-apt-repository universe
|
||||
sudo apt install libnginx-mod-rtmp
|
||||
```
|
||||
|
||||
修改你的网页服务器配置,使其能够接受和传送你的媒体流。
|
||||
|
||||
```
|
||||
sudo nano /etc/nginx/nginx.conf
|
||||
```
|
||||
|
||||
滚动到配置文件的底部并添加以下代码:
|
||||
|
||||
```
|
||||
rtmp {
|
||||
server {
|
||||
listen 1935;
|
||||
chunk_size 4096;
|
||||
|
||||
application live {
|
||||
live on;
|
||||
record off;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
![](https://opensource.com/sites/default/files/uploads/stream-server_config.png)
|
||||
|
||||
保存配置。我是使用 [Nano][3] 来编辑配置文件的异端。在 Nano 中,你可以通过快捷键 `Ctrl+X`、`Y` 并按下回车来保存你的配置。
|
||||
|
||||
这么一个非常小的配置就可以创建一个可工作的流服务器。稍后你将添加更多内容到此配置中,但这是一个很好的起点。
|
||||
|
||||
在开始第一个流之前,你需要使用新配置重新启动 Nginx:
|
||||
|
||||
```
|
||||
sudo systemctl restart nginx
|
||||
```
|
||||
|
||||
### 设置 BSD 服务器
|
||||
|
||||
如果是“小恶魔”(LCTT 译者注:FreeBSD 的标志是一个拿着叉子的红色小恶魔)的信徒,那么建立并运行一个流媒体服务器也非常容易。
|
||||
|
||||
前往 [FreeBSD][4] 网站并下载最新版本。在你的计算机或虚拟机上启动 FreeBSD 安装程序,然后执行初始步骤并选择最适合你环境的设置。由于这是一个服务器,你可能需要设置静态网络。
|
||||
|
||||
在安装程序完成并重新启动系统后,你应该就拥有了一个闪亮的新 FreeBSD 系统。像任何其他新安装的系统一样,你可能希望更新所有内容(从这一步开始,请确保你以 root 身份登录):
|
||||
|
||||
```
|
||||
pkg update
|
||||
pkg upgrade
|
||||
```
|
||||
|
||||
安装 [Nano][3] 来编辑配置文件:
|
||||
|
||||
```
|
||||
pkg install nano
|
||||
```
|
||||
|
||||
这个流媒体服务器将使用非常强大通用的 Nginx 网络服务器。 你可以使用 FreeBSD 所拥有的优秀 ports 系统来构建 Nginx。
|
||||
|
||||
首先,更新你的 ports 树:
|
||||
|
||||
```
|
||||
portsnap fetch
|
||||
portsnap extract
|
||||
```
|
||||
|
||||
进入 Nginx ports 目录:
|
||||
|
||||
```
|
||||
cd /usr/ports/www/nginx
|
||||
```
|
||||
|
||||
运行如下命令开始构建 Nginx:
|
||||
|
||||
```
|
||||
make install
|
||||
```
|
||||
|
||||
你将看到一个屏幕,询问你的 Nginx 构建中要包含哪些模块。对于这个项目,你需要添加 RTMP 模块。向下滚动直到选中 RTMP 模块,并按下空格键。然后按回车键继续剩下的构建和安装。
|
||||
|
||||
Nginx 安装完成后,就该为它配置流式传输了。
|
||||
|
||||
首先,在 `/etc/rc.conf` 中添加一个条目以确保 Nginx 服务器在系统启动时启动:
|
||||
|
||||
```
|
||||
nano /etc/rc.conf
|
||||
```
|
||||
|
||||
将此文本添加到文件中:
|
||||
|
||||
```
|
||||
nginx_enable="YES"
|
||||
```
|
||||
|
||||
![](https://opensource.com/sites/default/files/uploads/stream-server_streamingconfig.png)
|
||||
|
||||
接下来,创建一个网站根目录,Nginx 将从中提供其内容。我自己的目录叫 `stream`:
|
||||
|
||||
```
|
||||
cd /usr/local/www/
|
||||
mkdir stream
|
||||
chmod -R 755 stream/
|
||||
```
|
||||
|
||||
现在你已经创建了你的流目录,通过编辑配置文件来配置 Nginx:
|
||||
|
||||
```
|
||||
nano /usr/local/etc/nginx/nginx.conf
|
||||
```
|
||||
|
||||
在文件顶部加载你的流媒体模块:
|
||||
|
||||
```
|
||||
load_module /usr/local/libexec/nginx/ngx_stream_module.so;
|
||||
load_module /usr/local/libexec/nginx/ngx_rtmp_module.so;
|
||||
```
|
||||
|
||||
![](https://opensource.com/sites/default/files/uploads/stream-server_modules.png)
|
||||
|
||||
在 `Server` 部分下,更改 `root` 位置以匹配你之前创建的目录位置:
|
||||
|
||||
```nginx
|
||||
Location / {
|
||||
root /usr/local/www/stream
|
||||
}
|
||||
```
|
||||
|
||||
![](https://opensource.com/sites/default/files/uploads/stream-server_webroot.png)
|
||||
|
||||
最后,添加你的 RTMP 设置,以便 Nginx 知道如何处理你的媒体流:
|
||||
|
||||
```
|
||||
rtmp {
|
||||
server {
|
||||
listen 1935;
|
||||
chunk_size 4096;
|
||||
|
||||
application live {
|
||||
live on;
|
||||
record off;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
保存配置。在 Nano 中,你可以通过快捷键 `Ctrl+X`、`Y`,然后按回车键来执行此操作。
|
||||
|
||||
如你所见,这么一个非常小的配置将创建一个工作的流服务器。稍后,你将添加更多内容到此配置中,但这将为你提供一个很好的起点。
|
||||
|
||||
但是,在开始第一个流之前,你需要使用新配置重新启动 Nginx:
|
||||
|
||||
```
|
||||
service nginx restart
|
||||
```
|
||||
|
||||
### 设置你的流媒体软件
|
||||
|
||||
#### 使用 OBS 进行广播
|
||||
|
||||
现在你的服务器已准备好接受你的视频流,是时候设置你的流媒体软件了。本教程使用功能强大的开源的 Open Broadcast Studio(OBS)。
|
||||
|
||||
前往 [OBS 网站][5],找到适用于你的操作系统的版本并安装它。OBS 启动后,你应该会看到一个首次运行向导,该向导将帮助你使用最适合你的硬件的设置来配置 OBS。
|
||||
|
||||
![](https://opensource.com/sites/default/files/uploads/stream-server_autoconfig.png)
|
||||
|
||||
OBS 没有捕获任何内容,因为你没有为其提供源。在本教程中,你只需为流捕获桌面。单击“<ruby>来源<rt>Source</rt></ruby>”下的 “+” 按钮,选择“<ruby>显示捕获<rt>Screen Capture</rt></ruby>”,然后选择要捕获的桌面。
|
||||
|
||||
单击“<ruby>确定<rt>OK</rt></ruby>”,你应该会看到 OBS 镜像了你的桌面。
|
||||
|
||||
现在可以将你新配置的视频流发送到你的服务器了。在 OBS 中,单击“<ruby>文件 > 设置<rt>File > Settings</rt></ruby>”。 单击“<ruby>流<rt>Stream</rt></ruby>”部分,并将“<ruby>串流类型<rt>Stream Type</rt></ruby>” 设置为“<ruby>自定义流媒体服务器<rt>Custom Streaming Server</rt></ruby>”。
|
||||
|
||||
在 URL 框中,输入前缀 `rtmp://` 后跟流媒体服务器的 IP 地址,后跟 `/live`。例如,`rtmp://IP-ADDRESS/live`。
|
||||
|
||||
接下来,你可能需要输入“<ruby>串流密钥<rt>Stream key</rt></ruby>”,这是观看你的流所需的特殊标识符。 在“<ruby>串流密钥<rt>Stream key</rt></ruby>”框中输入你想要(并且可以记住)的任何关键词。
|
||||
|
||||
![](https://opensource.com/sites/default/files/uploads/stream-server_streamkey.png)
|
||||
|
||||
单击“<ruby>应用<rt>Apply</rt></ruby>”,然后单击“<ruby>确定<rt>OK</rt></ruby>”。
|
||||
|
||||
现在 OBS 已配置为将你的流发送到你的服务器,你可以开始你的第一个视频流。 单击“<ruby>开始推流<rt>Start Streaming</rt></ruby>”。
|
||||
|
||||
如果一切正常,你应该会看到按钮更改为“<ruby>停止推流<rt>Stop Streaming</rt></ruby>”,并且在 OBS 的底部将出现一些带宽指标。
|
||||
|
||||
![](https://opensource.com/sites/default/files/uploads/stream-server_metrics.png)
|
||||
|
||||
如果你收到错误消息,请仔细检查 OBS 中的流设置是否有拼写错误。如果一切看起来都不错,则可能是另一个问题阻止了它的工作。
|
||||
|
||||
### 观看你的视频流
|
||||
|
||||
如果没有人观看,就说明直播视频不是很好,所以请成为你的第一个观众!
|
||||
|
||||
有许多支持 RTMP 的开源媒体播放器,但最著名的可能是 [VLC 媒体播放器][6]。
|
||||
|
||||
安装并启动 VLC 后,通过单击“<ruby>媒体 > 打开网络串流<rt>Media > Open Network Stream</rt></ruby>” 打开你的流。输入你的流的路径,添加你在 OBS 中设置的串流密钥,然后单击“<ruby>播放<rt>Play</rt></ruby>”。 例如,`rtmp://IP-ADDRESS/live/SECRET-KEY`。
|
||||
|
||||
你现在应该可以看到自己的实时视频流了!
|
||||
|
||||
![](https://opensource.com/sites/default/files/uploads/stream-server_livevideo.png)
|
||||
|
||||
### 接下来要做什么?
|
||||
|
||||
本项目是一个非常简单的设置,可以让你开始工作。 以下是你可能想要使用的另外两个功能。
|
||||
|
||||
* **限制访问:** 你可能想要做的下一件事情是限制对你服务器的访问,因为默认设置允许任何人与服务器之间进行流传输。有多种设置方法,例如操作系统防火墙、[.htaccess 文件][7],甚至使用 [STMP 模块中的内置访问控制][8]。
|
||||
* **录制流:** 这个简单的 Nginx 配置只会流传输而不会保存你的视频,但这很容易修改。在 Nginx 配置文件中的 RTMP 部分下,设置录制选项和要保存视频的位置。确保你设置的路径存在并且 Nginx 能够写入它。
|
||||
|
||||
```
|
||||
application live {
|
||||
live on;
|
||||
record all;
|
||||
record_path /var/www/html/recordings;
|
||||
record_unique on;
|
||||
}
|
||||
```
|
||||
|
||||
实时流媒体的世界在不断发展,如果你对更高级的用途感兴趣,可以在互联网上找到许多其他很棒的资源。祝你好运,直播快乐!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/19/1/basic-live-video-streaming-server
|
||||
|
||||
作者:[Aaron J.Prisk][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[Starryi](https://github.com/Starryi)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/ricepriskytreat
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.ubuntu.com/download/server
|
||||
[2]: https://www.ubuntu.com/download/desktop
|
||||
[3]: https://www.nano-editor.org/
|
||||
[4]: https://www.freebsd.org/
|
||||
[5]: https://obsproject.com/
|
||||
[6]: https://www.videolan.org/vlc/index.html
|
||||
[7]: https://httpd.apache.org/docs/current/howto/htaccess.html
|
||||
[8]: https://github.com/arut/nginx-rtmp-module/wiki/Directives#access
|
@ -0,0 +1,51 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (CN-QUAN)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14162-1.html)
|
||||
[#]: subject: (IoT offers a way to track COVID-19 via connected thermometers)
|
||||
[#]: via: (https://www.networkworld.com/article/3539058/iot-offers-a-way-to-track-covid-19-via-connected-thermometers.html)
|
||||
[#]: author: (Jon Gold https://www.networkworld.com/author/Jon-Gold/)
|
||||
|
||||
物联网提供了一种通过联网温度计跟踪 COVID-19 的方法
|
||||
======
|
||||
|
||||
> COVID-19 大流行使一家联网温度计制造商 Kinsa 成为全国知名企业,因为它提供了一个可能了解疾病传播的窗口。
|
||||
|
||||
![][1]
|
||||
|
||||
一家名为 Kinsa 的公司正在利用 [物联网][2] 技术来创建一个连接温度计的网络,收集大量的匿名健康数据,这些数据可以为了解当前和未来的流行病提供帮助。
|
||||
|
||||
该公司创始人兼首席执行官 Inder Singh 表示,能够近乎实时地跟踪美国各地的发烧水平,对于广大公众以及医疗保健部门和政府的决策者来说,都可能是一条至关重要的信息。
|
||||
|
||||
该系统的联网技术相对简单 —— 温度计通过蓝牙连接到用户手机上的一个应用程序,该应用程序通过互联网将匿名数据报告给 Kinsa 的云。Singh 强调说,该公司只整理到县一级的数据,并声称通过 Kinsa 的数据识别个人几乎是不可能的。
|
||||
|
||||
“我们不提供个人身份信息,我们不提供识别数据,”他说。“这款应用程序只会引导你找到你需要的护理和服务。”
|
||||
|
||||
有了体温读数和一些关于体温测量者的基本人口统计信息以及他们的其他症状,这款应用程序可以提供基本的指导,比如是否需要去看医生,以及用户所在的区域是否出现了异常的发烧程度。
|
||||
|
||||
然而,真正的价值在于 Kinsa 在其 [美国健康天气地图][1] 上分析和细分的聚合数据,这些数据是从该公司生态系统中的 100 多万个温度计收集而来的。根据 Singh 的说法,这个想法是为了给公众提供一种方式,让他们对自己的健康做出更明智的决定。
|
||||
|
||||
“这是一个参与性很强的活动,”他说。“每个人都能得到数据,每个人都能做出反应。”
|
||||
|
||||
Kinsa 仍然直接向消费者销售温度计,但该公司正计划与地方政府、卫生部门甚至学区进行更密切的合作——辛格说,Kinsa 已经与美国两个州(他拒绝透露其名称)以及包括佛罗里达州的圣奥古斯丁在内的多个市政府合作。
|
||||
|
||||
他说:“我们的希望是,我们能够找出如何建立一个可扩展的模型 —— 我们永远不会只靠卖 20 美元的温度计就可以在全球范围内扩展。”。我们的目标是使该产品能够广泛应用,从而成为医疗保健部门有意义的早期预警系统。
|
||||
|
||||
------
|
||||
via: https://www.networkworld.com/article/3539058/iot-offers-a-way-to-track-covid-19-via-connected-thermometers.html
|
||||
|
||||
作者:[Jon Gold][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[CN-QUAN](https://github.com/CN-QUAN)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Jon-Gold/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://images.idgesg.net/images/article/2020/04/kinsa_influenza_map_2020-04-21_by_kinsa_leaflet_openstreetmap_carto_2400x1600-100839260-large.jpg?auto=webp&quality=85,70
|
||||
[2]: https://www.networkworld.com/article/3207535/what-is-iot-the-internet-of-things-explained.html
|
||||
[3]: https://www.networkworld.com/newsletters/signup.html
|
||||
[4]: https://www.facebook.com/NetworkWorld/
|
||||
[5]: https://www.linkedin.com/company/network-world
|
@ -0,0 +1,64 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (CN-QUAN)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14171-1.html)
|
||||
[#]: subject: (NIST aims to make frequency sharing more efficient for wireless networks)
|
||||
[#]: via: (https://www.networkworld.com/article/3561618/nist-aims-to-make-frequency-sharing-more-efficient-for-wireless-networks.html)
|
||||
[#]: author: (Patrick Nelson https://www.networkworld.com/author/Patrick-Nelson/)
|
||||
|
||||
NIST 的目标是使无线网络的频率共享更加有效
|
||||
======
|
||||
|
||||
> 机器学习方案将帮助不同的无线电协议,如 Wi-Fi 和 LTE,在同一的无线频谱中更有效地协同工作。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/12/130824n8rkw1iwiveadcgr.jpg)
|
||||
|
||||
美国国家标准与技术研究所([NIST][1])开发的机器学习方案有可能显著改善 [5G][2] 和其他无线网络选择和共享通信频率的方式。研究人员声称,与试错法相比,NIST 的方案可以使共享通信频率的过程的效率提高多达 5000 倍。
|
||||
|
||||
NIST 系统的理念是,无线电设备可以从经验中学习其网络环境,而不是像现在这样,简单地根据试错法选择频率信道。
|
||||
|
||||
NIST 在 [其网站上的一篇文章][3] 中说,在特定的环境条件下,“该算法可以学习哪个信道提供最好的结果”。
|
||||
|
||||
该团队说:“该方案可以被编程到现实世界中许多 [不同] 类型网络的发射机软件中。”
|
||||
|
||||
从本质上讲,这个计算机模拟的算法是一个映射环境射频条件的先前经验的公式。例如,这些条件可以包括在一个信道(一组相邻的频率)内运行的发射机的数量。
|
||||
|
||||
文章说:“……如果发射机选择了一个未被占用的信道,那么成功传输的概率就会上升,从而导致更高的数据速率。”同样地,当发射机选择一个没有太多干扰的信道时,信号会更强,你也会得到更好的数据速率。发射机会记住哪个信道提供了最佳结果,并学会在下次需要清晰信号时学会选择那个位置。
|
||||
|
||||
这与今天的工作方式不同。也就是说,无线电只是试图找到一个开放频率,然后与类似协议的无线电进行通信。在复杂的情况下,使用诸如 Wi-Fi、跳频和 [波束成形][4] 等技术来优化信道。
|
||||
|
||||
研究人员解释说,NIST 的机器学习技术的亮点在于共享频谱,比如通过授权频谱辅助接入(LAA)共享 Wi-Fi。LAA 是非授权频谱中的 LTE 频谱,称为 LTE-U,频率为 5GHz。在相同频率下的 Wi-Fi 与 LAA 的组合中,协议是不同的:无线电之间不能相互通信以协调工作,而且频带越繁忙就可能出现混乱 —— 传输会遇到其他传输。但是,如果所有的无线电接收机都能更好地选择它们的占位,通过学习哪些有效,哪些无效,那么这将会更好。
|
||||
|
||||
NIST 工程师 Jason Coder 在文章中说:“这可能会使非授权频段的通信更加高效。”
|
||||
|
||||
事实上,NIST 声称,它“可以帮助 5G 和其他无线网络选择和共享通信频率,其效率大约是试错法的 5000 倍。”
|
||||
|
||||
这里的关键词是“共享”,因为为了在有限的频谱内增加通信,必须进行更多的共享 —— 物联网或媒体流等用户都在争夺同样的隐喻资产。随着物联网和数字技术的不断发展,非授权和授权频段的结合,就像 LAA 中的情况一样,可能会变得更加普遍。(非授权的频段是指那些没有分配给特定用户的频段,比如移动网络运营商;授权频段是在拍卖中中标并分配的。)
|
||||
|
||||
在 NIST 场景中,相互竞争的发射机“各自学习在不相互通信的情况下最大化网络数据速率”。因此,多种协议和数据类型,如视频或传感器数据,或 Wi-Fi 和移动网络,可以相互协作。
|
||||
|
||||
NIST 的方案大大简化了为发射机分配最佳信道的过程,根据这篇文章研究发现,穷尽努力 [使用试错法] 来确定最佳解决方案需要大约 45600 次试验,而这个方案只需要尝试 10 个渠道就可以选择类似的解决方案,仅仅付出 0.02% 的努力。”
|
||||
|
||||
NIST 的研究人员在 IEEE 第 91 届车辆技术会议上展示了他们的研究成果。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3561618/nist-aims-to-make-frequency-sharing-more-efficient-for-wireless-networks.html
|
||||
|
||||
作者:[Patrick Nelson][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[CN-QUAN](https://github.com/CN-QUAN)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Patrick-Nelson/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.nist.gov/
|
||||
[2]: https://www.networkworld.com/article/3330603/5g-versus-4g-how-speed-latency-and-application-support-differ.html
|
||||
[3]: https://www.nist.gov/news-events/news/2020/05/nist-formula-may-help-5g-wireless-networks-efficiently-share-communications
|
||||
[4]: https://www.networkworld.com/article/3445039/beamforming-explained-how-it-makes-wireless-communication-faster.html
|
||||
[5]: https://events.vtsociety.org/vtc2020-spring/conference-sessions/program/
|
||||
[6]: https://www.facebook.com/NetworkWorld/
|
||||
[7]: https://www.linkedin.com/company/network-world
|
@ -0,0 +1,74 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (wxy)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14180-1.html)
|
||||
[#]: subject: (A brief history of the Content Management System)
|
||||
[#]: via: (https://opensource.com/article/20/7/history-content-management-system)
|
||||
[#]: author: (Pierre Burgy https://opensource.com/users/pierreburgy)
|
||||
|
||||
内容管理系统(CMS)简史
|
||||
======
|
||||
|
||||
> 从静态页面到 JAM 栈,CMS 的历史就是开源和 Web 变迁的核心。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/15/000116nzhufdu7h9w8wewj.jpg)
|
||||
|
||||
<ruby>内容管理系统<rt>Content Management System</rt></ruby>(CMS)是一个多产的软件类别,其涵盖了所有创建和修改数字内容的应用程序。因此,CMS 的历史可以追溯到由 [蒂姆-伯纳斯-李][2] 在 1990 年建立的历史上的第一个网站也就不足为奇了,该网站是以基于互联网的超文本系统 HTML 为模型,只包含了文本和链接。
|
||||
|
||||
![CMS 市场演变时间表][3]
|
||||
|
||||
万维网(WWW)的雏形是静态网站,无需后端数据库即可提供内容。它们消耗的计算资源很少,所以加载速度很快 —— 因为没有数据库查询、没有模板渲染、也没有客户端-服务器请求的处理。鉴于那时很少有人经常“上网冲浪”,特别是与今天相比,Web 流量也很少。
|
||||
|
||||
当然,促进了这种互操作性都是开源软件。事实上,开源在 CMS 的演变中一直扮演着重要的角色。
|
||||
|
||||
### CMS 的崛起
|
||||
|
||||
快进到九十年代中期,随着万维网的普及和网站对频繁更新的需求的增加 —— 这与它最初托管手册式的静态内容有所不同。这导致了大量的 CMS 产品的出现,如 FileNet、Vignette 的StoryBuilder、Documentum 和其他许多产品。这些都是专有的闭源产品,这在那个时期并不罕见。
|
||||
|
||||
然而,在 21 世纪初,开源的 CMS 替代品出现了,这包括 WordPress、Drupal 和 Joomla。WordPress 包含一个可扩展的插件架构,并提供了可用于建立网站的模板,而不要求用户具备 HTML 和 CSS 知识。WordPress CMS 软件安装在 Web 服务器上,通常与 MySQL 或 MariaDB 数据库(当然,两者都是开源的)配合。CMS 是开源的这一事实在一定程度上加速了向 WordPress 的重大转变。
|
||||
|
||||
即使在今天,仍有大约三分之一的网站是使用这些第一代内容管理系统建立的。这些传统的 CMS 是单体系统,包括后端用户界面、插件、前端模板、层叠样式表(CSS)、Web 服务器和数据库。每当用户请求一个网站页面时,服务器首先查询数据库,然后将结果与来自页面标记和插件的数据结合起来,在浏览器中生成一个 HTML 文档。
|
||||
|
||||
### 趋向于 LAMP 栈
|
||||
|
||||
开源 CMS 的出现与建立在 LAMP(Linux、Apache、MySQL 和 PHP/Perl/Python)栈上的基础设施是一致的。这种新的结构代表了单体 Web 开发的开始,它使动态网站的创建能够使用数据库查询,为不同的终端用户提供独特的内容。在这一点上,以前放在服务器上的静态网站模式真正开始消失。(静态网站模式是指由文本和链接组成的单个文件,如 HTML、CSS、JavaScript 等,以同样的方式传递给所有的终端用户。)
|
||||
|
||||
### 移动 Web 改变了一切
|
||||
|
||||
随着我们逐渐步入 2000 年代的第一个十年,早期的移动设备如 Palm 和黑莓提供了对 Web 内容的访问,然后在 2010 年左右推出的智能手机和平板电脑让越来越多的用户可以通过移动设备访问 Web 。2016 年,天平倾斜,全球 [来自移动设备和平板电脑的 Web 访问量超过了台式机][4]。
|
||||
|
||||
单体的 CMS 并不适合为这些不同类型的访问设备提供内容,这就需要不同版本的网站 —— 通常是针对移动用户的精简版网站。新的可以访问 WEB 的设备类型的出现,如智能手表、游戏机和语音助手(如 Alexa)[5],只是加剧了这个问题,对全渠道内容交付的需求变得很明显。
|
||||
|
||||
### 无头 CMS 和 JAM 栈的出现
|
||||
|
||||
无头 CMS 将后端(用来存储所有内容、数据库和文件)与前端解耦。通常,无头 CMS 使用 API,这样就可以访问数据库(SQL 和 NoSQL)和文件的内容,以便在网站、智能手机、甚至物联网(IoT)设备上显示。此外,无头 CMS 与前端框架无关,使其与各种静态网站生成器和前端框架(如 Gatsby.js、Next.js、Nuxt.js、Angular、React 和 Vue.js)兼容,这使开发人员可以自由选择他们喜欢的工具。
|
||||
|
||||
无头 CMS 特别适用于 JAM(Javascript、API 和 Markup)栈的 Web 开发架构,该架构正在成为一种流行的解决方案,因为它能提供更好的 Web 性能和 SEO 排名,以及强大的安全措施。JAM 栈不依赖于 Web 服务器,当有请求时可以立即提供静态文件。不需要查询数据库,因为文件已经被编译并提供给浏览器。
|
||||
|
||||
向无头 CMS 的转变是由新一轮的参与者推动的,他们有的采用 SaaS 方式,如 Contentful,有的采用自托管的开源替代品,如 [Strapi][6]。无头 CMS 也在颠覆电子商务行业,新的软件编辑器,如 Commerce Layer 和 [Saleor][7](也是开源的)提供了解决方案,以真正的全渠道方式管理多个 SKU、价格和库存数据。
|
||||
|
||||
### 总结
|
||||
|
||||
在 CMS 的整个演变过程中,由互联网上的信息消费方式驱动,开源软件也沿着同样的趋势发展,新技术不断出现以解决出现的需求。事实上,在内容管理系统、万维网和开源之间似乎存在着一种相互依赖的关系。管理越来越多的内容的需求不会很快消失。我们完全有理由期待在未来更广泛地采用开源软件。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/7/history-content-management-system
|
||||
|
||||
作者:[Pierre Burgy][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/pierreburgy
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/browser_blue_text_editor_web.png?itok=lcf-m6N7 (Text editor on a browser, in blue)
|
||||
[2]: https://www.w3.org/People/Berners-Lee/#:~:text=A%20graduate%20of%20Oxford%20University,refined%20as%20Web%20technology%20spread.
|
||||
[3]: https://opensource.com/sites/default/files/uploads/timeline.market.png (timeline of CMS market evolution)
|
||||
[4]: https://techcrunch.com/2016/11/01/mobile-internet-use-passes-desktop-for-the-first-time-study-finds/
|
||||
[5]: https://opensource.com/article/20/6/open-source-voice-assistant
|
||||
[6]: https://strapi.io/
|
||||
[7]: https://saleor.io/
|
@ -0,0 +1,79 @@
|
||||
[#]: via: (https://theartofmachinery.com/2021/07/04/pricing_as_contractor_101.html)
|
||||
[#]: author: (Simon Arneaud https://theartofmachinery.com)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (CN-QUAN)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14196-1.html)
|
||||
|
||||
将自己作为承包商而定价的基础原则
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/20/095355ib1k816i22fieoeh.jpg)
|
||||
|
||||
我职业生涯的大部分时间都是自由职业者。有时候,我也会和一些想要辞掉全职工作去做一些承包或服务业务的人聊天。到目前为止,我们新手最常犯的错误就是为自己定价。
|
||||
|
||||
以 [这篇有用的博客文章为例,它分析了美国雇员与自由职业者的收入间的对比][1]。据估计,在美国,作为一名自由职业者,你需要获得 14 万美元的收入,才能获得相当于 10 万美元的雇员薪酬。我记得当我第一次创业时,我发现这样的计算非常有用。而,有些人看到结果会想:“哎呀,如果我是自由职业者,我得赚 1.4 倍的钱。我真的能做到吗?”
|
||||
|
||||
不,不,不,这种想法是落后的。
|
||||
|
||||
### 如何给自己定价
|
||||
|
||||
让我们举个例子。假设你是一名全职软件工程师,年收入 10 万美元,你正考虑转成承保。
|
||||
|
||||
当你是自由职业者时候,你必须像做企业一样思考,因为这就是你的谋生方式。所以,你必须把所有的成本加起来,并计算出如何收回这些成本。电子表格的口碑很差(有一些很好的理由),但它们实际上非常有用,尤其是对这些东西(以及作为企业主要进行的许多其他计算)。
|
||||
|
||||
第一个要加入统计的成本是那 10 万美元。如果这听起来很奇怪,那就是所谓的“机会成本”。你本可以继续工作以赚到 10 万美元;而没有赚到这 10 万美元,实际上是在规划业务时的一种成本。把这一费用和其他你实际使用的任何其它就业福利一起记下来。如果你的雇主提供工作日午餐,那就加上一年中每个工作日午餐的费用。如果你的雇主为员工提供健身软件的折扣,但你却没有使用该软件,那么不要将该福利作为机会成本。
|
||||
|
||||
其他费用取决于你在做什么和你住在哪里。员工医疗保险在澳大利亚不像在美国那么重要。另一方面,强制性养老金支付(类似于美国的 401(K) 计划)是一个大问题。我有自己的公司,我的主要非工资成本是保险、会计/档案、法律(合同审查等)、债务催收和各种在线服务成本。如果你在计算一些耐用的东西(比如一张桌子),把成本除以你预计使用该东西的年数。
|
||||
|
||||
总之,到目前为止,这基本上就是 Caleb 的博客文章中的内容,所以为了简单起见,我将假设同样的 10 万美元的名义工资和 14 万美元的等效业务成本。(当然,一切都要根据自己的情况进行调整。)现在你需要想办法收回这笔成本。澳大利亚一年大约有 255 个工作日,所以如果你能把它们全部外包出去,你每天要收取 550 美元(外加销售税)。在现实中,你不可能为一整年的工作计费。我采取了一种风险更高的方法,在我目前从事自营职业的过去 6 年里,我的平均回报率约为 60%-70%。[埃森哲的年度财务报告][2] 说他们的承包商的“利用率”大约为 90%,我想这意味着他们付费了 90% 的总工作日的费用。让我们假设你的工作适度,75% 的工作日都有付账。这意味着你可以在 255 天的 75%(即 191 天) 里收回了 14 万美元的成本,每天开出 730 美元的账单(加上销售税)。
|
||||
|
||||
### 误区
|
||||
|
||||
刚接触合同的人通常会对这样的数字做出反应,并会想,“见鬼?!这么高啊!”。这只是一个计算示例,但服务价格通常相当于你天真猜测的全职雇员工资的两倍或两倍以上。然而,这日薪是通过一个简单的计算得出的,那就是你需要收取多少钱才能获得相当于 10 万美元的工资。这是一回事。不这样想才是关键的错误。
|
||||
|
||||
新的承包商往往还不敢确定,他们要求那么多,听起来是不是很贪婪?如果你的客户有考虑采购你,他们也在做大致相同的计算。“我可以付给 Gentle Blog Reader 每天 730 美元,只要我愿意,我也可以花大约 14 万美元雇佣一个我甚至不是每天都真正需要的全职雇员。”从雇主的角度来看,10 万美元的薪水实际上也不是 10 万美元。把价格建立在名义基本工资的基础上是没有意义的。即使你是在销售 B2C 产品,你的潜在竞争对手也不会降价,至少不会持续降价。
|
||||
|
||||
### 为什么这很重要
|
||||
|
||||
这个具体的例子是针对承包的,但这是商业经济学的一条基本规则:除非你正在尝试一些风险极高的高收入行为(我们知道 [Pets.com][3] 的结果),否则你需要计算出你的成本,并设定足够高的价格来弥补这些成本。
|
||||
|
||||
一些人仍然对他们需要设定的价格感到不安,他们认为降低价格是合理的。也许他们会这样想:“我是个很好的人,如果我每天只收 400 美元,我的客户会更高兴。”问题是你得不到同样的客户。那些愿意为雇员支付 10 万美元年薪的客户,不会为承包商支付 400 美元一天来做同样的工作。相反,在实践中,你可能会得到一些好客户,他们只是没有每天 730 美元的预算,但同时你也会得到一大堆非常糟糕的客户。想想看。如果一个陌生人以 50 美元的价格卖给你一枚看起来很精美的钻戒,你会付钱吗?还是宁愿以正常价格买另一枚戒指?
|
||||
|
||||
我要强调的是,我只是从 Caleb 的博客文章中提取了数据,而且一切都是相对的。用你自己的数字代替吧。在世界上大多数地区,每天 400 美元可能是一个令人难以置信的价格。然而,如果你是硅谷的一名高级金融科技开发人员,每天收费 400 美元只会让你成为吸引糟糕客户的磁铁。大多数优秀的人都会知道有些事情不对劲,他们会被吓跑。
|
||||
|
||||
我说的糟糕客户是什么意思?浏览一下 [“来自地狱的客户”博客][4] 吧。它包括很多基本的烦恼,比如客户永远不会得到满足,或者提出无理要求,或者浪费你的时间,一直到彻头彻尾的辱骂,或者让你按规格工作,然后辩称自己不应该付钱,因为“我不想要”。有些客户根本就不付钱。
|
||||
|
||||
如果你不够重视你自己的产品,也不要因为你的客户不够重视你的产品而感到震惊。
|
||||
|
||||
不过,情况会变得更糟。好客户倾向于与其他好客户合作。如果你总是按时做到,你会和那些浪费你时间的人一起工作吗?如果你尊重他人,你会和那些不讲道理、辱骂他人的人一起工作吗?一般来说,你的好客户会把你介绍给其他好客户。糟糕的客户则恰恰相反,如果他们甚至会感激地把你推荐给任何人的话。因此,如果你的价格合适,你的生意会随着你的声誉而增长。如果你收费过低,你会发现自己陷入了一个恶性循环,你不仅会赔钱,而且会发现越来越难获得适当的报酬。
|
||||
|
||||
这些都只是平均水平,如果你幸运的话,低收费也能吸引到好客户,如果你不幸的话,价格合理也仍然会得到坏客户。然而,如果你的收入已经很低了,那么每一个坏客户都会对你造成伤害。希望超越平均水平不是一个好计划。
|
||||
|
||||
### “但没人付那么多钱!”
|
||||
|
||||
假设你是一名经验丰富的全职工程师,你决定尝试独立工作。你可能会发现,你的计算比率似乎比你在自由职业网站上看到的要高。这是因为在自由职业网站上建立声誉很难。自由职业者网站对于那些主要想要低价的临时买家来说是最有用的。
|
||||
|
||||
我想,很多聪明的工程师都认为,职业社交是很难的,而且需要非常外向的性格,所以他们不得不依靠自由职业网站来工作。坏消息是,你需要建立良好的声誉才能拿到高薪。好消息是,只要他们拥有所需的技能,大多数人都可以做到。社交并不是去参加所谓的“社交活动”(实际上,这些活动对社交来说都很糟糕)。建立关系网的技巧可以写一篇全新的博客文章,但关键是在他们的日常生活中找到好客户,并做一些让他们不断回头的事情,甚至可能让你找到其他好客户。
|
||||
|
||||
在任何情况下,不要让自由职业网站或其他任何东西把你的价格定在你可以从全职工资中拿到的等价物以下。事实上,[你甚至可能比你现在的工资还高][5],这就是为什么这是 “定价基础原则”。收费过低会扼杀你的自主创业生涯。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://theartofmachinery.com/2021/07/04/pricing_as_contractor_101.html
|
||||
|
||||
作者:[Simon Arneaud][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[CN-QUAN](https://github.com/CN-QUAN)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://theartofmachinery.com
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://calebporzio.com/making-100k-as-an-employee-versus-being-self-employed
|
||||
[2]: https://www.accenture.com/au-en/about/company/annual-report
|
||||
[3]: https://en.wikipedia.org/wiki/Pets.com
|
||||
[4]: https://clientsfromhell.net/
|
||||
[5]: https://theartofmachinery.com/2018/10/07/payrise_by_switching_jobs.html
|
@ -0,0 +1,177 @@
|
||||
[#]: subject: (Linux for Education: Best Distributions for Kids, Teachers & Schools)
|
||||
[#]: via: (https://itsfoss.com/educational-linux-distros/)
|
||||
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (wxy)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-14174-1.html)
|
||||
|
||||
给儿童、教师和学校的最佳 Linux 发行版
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/13/082306ndfbc4wzblpjdncz.jpg)
|
||||
|
||||
孩子们可以使用 Linux 发行版吗?它又是否适合学校使用呢?
|
||||
|
||||
嗯,这取决于你有什么选择,以及你想选择的是什么。不管你是想给孩子还是学校老师用,都有不少选择。
|
||||
|
||||
因此,为了给你一个良好的开端,我们策划了一个为教育量身定做的 [最佳 Linux 发行版][1] 列表。
|
||||
|
||||
### 最适合儿童的 Linux 发行版
|
||||
|
||||
对于一个孩子来说,发行版必须提供一个用户友好的用户界面,而不是高级功能。
|
||||
|
||||
你可能会说,任何主流的、[像 Ubuntu][2]、Mint 或 Zorin 这样适合初学者的发行版都可以做到这一点。没错,但是如果一个发行版带有了 [基本工具][3] 并易于使用,孩子们会很快学会使用它并喜欢上它。
|
||||
|
||||
#### 1、Endless OS
|
||||
|
||||
![][4]
|
||||
|
||||
[Endless OS][5] 是一个流行的选择,是为教育量身定做的 Linux 发行版。
|
||||
|
||||
它以 Debian 为基础,使用 GNOME 桌面环境。尽管它限制了一年内在超过 500 台电脑上使用其操作系统,但它是免费下载的。
|
||||
|
||||
它的用户界面很容易使用,看起来很有吸引力,适合安装在现代电脑上。你可以得到各种预装的应用程序。因此,这对没有互联网接入的电脑来说是很方便的。
|
||||
|
||||
#### 2、Ubermix
|
||||
|
||||
![][6]
|
||||
|
||||
[Ubermix][8] 是一个基于 Ubuntu 的 Linux 发行版,旨在通过调整用户界面,摆脱不必要的应用程序,以及增加用于教育的必要工具/应用程序来降低复杂性。
|
||||
|
||||
它还提供了一种方法,在出现问题的情况下可以轻松地从系统问题中恢复。在内容过滤和 [屏幕时间控制][7] 方面有一个可选的家长控制功能,这确实很有用。
|
||||
|
||||
Ubermix 得到了积极的维护,并在其官方网站上提供了大量关于安装和故障排除的说明。
|
||||
|
||||
#### 3、Kano OS(用于树莓派)
|
||||
|
||||
![][9]
|
||||
|
||||
[Kano OS][16] 是为 6 至 14 岁的儿童教育而量身定做的计算套件。它就像高级版的树莓派,为年轻人提供了大量的 DIY 和编码活动。
|
||||
|
||||
Kano OS 也有基于 Debian 的 [用于树莓派的操作系统][14]。你不需要为此而购买 Kano 套件。你可以在你的树莓派上使用它。
|
||||
|
||||
它的目的是在与他们的计算机套件结合时,提供它所策划的教育的好处。从编码应用程序到游戏,应该有适合每个人的东西。
|
||||
|
||||
你还会发现有用的家长控制设置,可以为你的孩子限制/调整体验。如果需要更多的帮助,[官方帮助资源][15] 也会派上用场。
|
||||
|
||||
#### 4、AcademiX GNU/Linux
|
||||
|
||||
![][17]
|
||||
|
||||
[AcademiX][18] 是另一个基于 Debian 的发行版,主要用于学习。
|
||||
|
||||
不仅仅是初级教育,该操作系统中包含的程序对大学生也应该是有用的。它还包括虚拟互动实验室和虚拟显微镜。
|
||||
|
||||
**虽然它通过预装的实用程序使学习变得简单,但教师也可以用它来创建内容和发布。**
|
||||
|
||||
因此,它可以成为很多潜在的学习者和学校教师的一个全能选择。
|
||||
|
||||
#### 5、Sugar(使任何发行版都对儿童友好)
|
||||
|
||||
![][19]
|
||||
|
||||
[Sugar][21] 不是一个成熟的操作系统,而是一个学习平台(环境),它可以安装在任何 Linux 发行版之上,为学习而设置。
|
||||
|
||||
不仅仅是帮助你的孩子用一个易于使用的界面学习,它还有有助于协作、分享和学习而预装的软件工具。
|
||||
|
||||
它也可用于树莓派。而且提供了 [Flatpak 包][20],可以让你在任何 Linux 发行版中轻松安装它的一些学习活动。
|
||||
|
||||
#### 6、Li-f-e
|
||||
|
||||
Linux for education([Li-f-e][22])最初是 OpenSUSE 的一个项目,这是它的一个延续。
|
||||
|
||||
尽管它现在没有 OpenSUSE 的支持(我找不到任何参考资料),但它对孩子和学校来说可能是一个有用的选择。
|
||||
|
||||
这款软件基于 Ubuntu MATE,按照一些教科书的说法,它提供了几个内置的应用程序。它并没有提供什么特别的东西,而更像是 Ubuntu 教育版,在写这篇文章的时候,它正在积极维护。
|
||||
|
||||
### 最适合学校的 Linux 发行版
|
||||
|
||||
到目前为止,我提到的那些都是为孩子们的教育和学习而定制的。但教育有两个部分:学生和教师。
|
||||
|
||||
这就是为什么这个列表分为两部分。这第二部分列出了一些可能适合学校管理者、管理层和教师的选项。
|
||||
|
||||
当然,如果你想利用一个稳定可靠的 Linux 桌面操作系统来管理你的学校(或)内容创作,你总是可以使用 Linux Mint、elementary OS 或 Ubuntu。然而,有一些选项是为这种目的而定制的。
|
||||
|
||||
#### 1、Debian Edu/Skolelinux
|
||||
|
||||
![][23]
|
||||
|
||||
[Skolelinux][24] 是一个基于 Debian 的发行版,包含了一些适合学校师生使用的应用程序和网页服务。
|
||||
|
||||
它也被称为 Debian Edu。你可以通过下载所需的 ISO 或基本系统来选择离线安装,其余的可以在线安装。
|
||||
|
||||
尽管孩子们在安装后就可以使用它,但它需要一些学习过程来进行配置和维护。因此,这更倾向于学校管理人员或教师,而不是孩子。
|
||||
|
||||
#### 2、Linux Schools(Karoshi 服务器)
|
||||
|
||||
一个具有 Ubuntu LTS 优点的 Linux 发行版,为学校服务器而建。如果你想建立一个服务器并监视/控制一个连接的服务器网络,[Linux Schools][25](或 Karoshi 服务器)是一个很好的选择。
|
||||
|
||||
它可以让你使用网页界面管理一个服务器网络。你不需要 Linux 系统管理的深入知识来利用它。
|
||||
|
||||
#### 3、Escuelas Linux
|
||||
|
||||
![][26]
|
||||
|
||||
[Escuelas Linux][29] 是基于 Bodhi Linux 的。它内置了几个适合教育环境的应用程序。
|
||||
|
||||
它有自定义的工具,可以在几秒钟内将发行版重设为安装后的状态。也有恢复用户身份的选项。除此之外,它还带有在网络中分发教育材料、屏幕广播、镜像、远程命令执行、信息发送、屏幕锁定和对学生的计算机进行静音的应用程序。
|
||||
|
||||
考虑到它基于 Bodhi Linux,而 Bodhi Linux 是 [最好的轻量级 Linux 发行版][28] 之一,这对旧系统来说是个不错的选择。
|
||||
|
||||
如果你需要 NetBeans、Git、Android Studio 等高级工具,你还可以得到一个额外的开发者包,这是可选安装的。
|
||||
|
||||
除了这些选择之外,还有 [EduBOSS][30],这是 BOSS Linux 的教育版,是为印度学校量身定做的。
|
||||
|
||||
### 总结
|
||||
|
||||
虽然有一百多个 Linux 发行版,但只有少数几个是专门为教育而设计的。
|
||||
|
||||
对于学生、教师和学校管理来说,有一些可行的选择是件好事。
|
||||
|
||||
毕竟,Linux 可以到处使用,任何人都可以使用。我说的对吗?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/educational-linux-distros/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/best-linux-distributions/
|
||||
[2]: https://itsfoss.com/best-linux-beginners/
|
||||
[3]: https://itsfoss.com/essential-linux-applications/
|
||||
[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/07/endless-os-distrowatch.png?resize=800%2C500&ssl=1
|
||||
[5]: https://endlessos.com/home/
|
||||
[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/07/ubermix-4-official.png?resize=800%2C452&ssl=1
|
||||
[7]: https://itsfoss.com/activitywatch/
|
||||
[8]: https://ubermix.org/download.html
|
||||
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/07/kano-os.png?resize=800%2C570&ssl=1
|
||||
[10]: https://i1.wp.com/m.media-amazon.com/images/I/41-VaIktpgL._SL160_.jpg?ssl=1
|
||||
[11]: https://www.amazon.com/dp/B073VTCS66?tag=chmod7mediate-20&linkCode=ogi&th=1&psc=1 (Kano Computer Kit – A Computer Anyone Can Make)
|
||||
[12]: https://www.amazon.com/gp/prime/?tag=chmod7mediate-20 (Amazon Prime)
|
||||
[13]: https://www.amazon.com/dp/B073VTCS66?tag=chmod7mediate-20&linkCode=ogi&th=1&psc=1 (Buy on Amazon)
|
||||
[14]: https://itsfoss.com/raspberry-pi-os/
|
||||
[15]: https://help.kano.me/hc/en-us/sections/360001083699-Kano-OS
|
||||
[16]: https://kano.me/row/downloadable
|
||||
[17]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/07/academix-edu.png?resize=800%2C450&ssl=1
|
||||
[18]: https://academixproject.com/en/home/
|
||||
[19]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/07/sugarlabs.jpg?resize=992%2C744&ssl=1
|
||||
[20]: https://itsfoss.com/what-is-flatpak/
|
||||
[21]: https://www.sugarlabs.org
|
||||
[22]: https://sourceforge.net/projects/cyberorg-home/files/Li-f-e/
|
||||
[23]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/07/skolelinux.png?resize=800%2C450&ssl=1
|
||||
[24]: http://www.skolelinux.org
|
||||
[25]: https://www.linuxschools.com/forum/index-main.php
|
||||
[26]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/07/escuelas-linux.jpg?resize=800%2C450&ssl=1
|
||||
[27]: https://itsfoss.com/escuelas-linux/
|
||||
[28]: https://itsfoss.com/lightweight-linux-beginners/
|
||||
[29]: https://escuelaslinux.sourceforge.io/english/index.html
|
||||
[30]: https://bosslinux.in/eduboss
|
@ -0,0 +1,133 @@
|
||||
[#]: subject: "Ubuntu Server vs Desktop: What’s the Difference?"
|
||||
[#]: via: "https://itsfoss.com/ubuntu-server-vs-desktop/"
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14146-1.html"
|
||||
|
||||
Ubuntu 服务器版与桌面版有什么区别?
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/04/122152zdqkkqqqw6cgcdcq.jpg)
|
||||
|
||||
当你点击 [Ubuntu 网站][1] 上的下载按钮时,它会给你几个选项。其中两个分别是 Ubuntu 桌面版和 Ubuntu 服务器版。
|
||||
|
||||
这可能会让新用户感到困惑。为什么会有两个(实际上是四个)?应该下载哪一个?Ubuntu 桌面版还是服务器版?它们是一样的吗?有什么区别?
|
||||
|
||||
![Ubuntu 网站给了你多种选择][2]
|
||||
|
||||
我将解释 Ubuntu 的桌面版和服务器版的区别。我还会解释你应该使用哪个变体。
|
||||
|
||||
### Ubuntu 桌面版与 Ubuntu 服务器版
|
||||
|
||||
![Ubuntu 桌面版和服务器版][3]
|
||||
|
||||
要了解 Ubuntu 桌面版和服务器版的区别,你应该了解桌面操作系统和服务器操作系统的区别。
|
||||
|
||||
#### 桌面操作系统
|
||||
|
||||
<ruby>桌面电脑<rt>Desktop</rt></ruby>是指个人电脑(PC)。桌面电脑操作系统带有一个图形用户界面,以便用户可以使用鼠标和键盘操作。桌面电脑的主要目的是给你一个系统,可以用来浏览网页、编辑文档、查看/编辑图片和视频、编码和游戏。基本上,就是为个人、终端用户或家庭成员提供了一个通用的计算机。
|
||||
|
||||
我在这里使用桌面电脑这个术语,但这并不意味着它不能用于笔记本电脑。桌面电脑是个人电脑的通用术语。
|
||||
|
||||
#### 服务器操作系统
|
||||
|
||||
另一方面,服务器操作系统是专门为托管网站、应用程序、媒体服务器、数据库等网络服务而打造的。
|
||||
|
||||
通常情况下,服务器操作系统不带有图形界面。如果是基于 Linux 的操作系统,你就得通过终端的命令来使用该系统。
|
||||
|
||||
这里的好处是,服务器操作系统不需要(浪费)大量的内存和计算能力,因为它们不使用 [图形化桌面环境][4]。除此以外,服务器操作系统的软件包配置也不同。
|
||||
|
||||
现在你对服务器和桌面的区别有了一些了解,让我们看看 Ubuntu 服务器版和桌面版的区别。
|
||||
|
||||
#### 用户界面
|
||||
|
||||
Ubuntu 服务器版和桌面版之间最明显的区别是用户界面。
|
||||
|
||||
Ubuntu 桌面版的特点是采用 GNOME 桌面环境的图形化用户界面。这使得它在鼠标点击的帮助下更容易使用。
|
||||
|
||||
![图为 Ubuntu GNOME 版的用户界面][5]
|
||||
|
||||
Ubuntu 服务器版采用<ruby>无头方式<rt>headless</rt></ruby>运行。你只有在登录后才会看到一个终端界面。你经常会从其他电脑上通过 SSH 来远程管理它。
|
||||
|
||||
![通过 SSH 连接到远程 Ubuntu 服务器][6]
|
||||
|
||||
#### 安装
|
||||
|
||||
[由于有了图形化的安装程序,将 Ubuntu 作为桌面电脑是很容易的][7]。你可以创建一个<ruby>临场 USB<rt>Live USB</rt></ruby>,无需安装即可体验桌面版。如果你喜欢,你可以按照屏幕上的指示在几分钟内安装它。
|
||||
|
||||
![通过图形化安装程序安装 Ubuntu 桌面版][8]
|
||||
|
||||
将 Ubuntu 作为服务器安装并不像桌面版那样简单。你只能使用终端界面。如果你不熟悉这个流程,即使是最简单的任务,如连接到 Wi-Fi,也可能是一个困难的任务。
|
||||
|
||||
![Ubuntu 服务器版的安装][9]
|
||||
|
||||
#### 应用程序
|
||||
|
||||
在 Ubuntu 桌面版中,默认的应用程序集主要针对普通计算机用户。因此,你会发现网页浏览器、办公套件、媒体播放器、游戏等。
|
||||
|
||||
![Ubuntu 中的应用程序][10]
|
||||
|
||||
Ubuntu 服务器版的应用程序更多的是为运行网络服务而定制的。而这还不是全部。有些应用程序的配置也是不同的。以 SSH 为例。Ubuntu 服务器预设了 SSH,这样你就可以轻松地从远程系统连接到它。而在 Ubuntu 桌面版上,你必须明确启用 SSH 才行。
|
||||
|
||||
#### 硬件要求
|
||||
|
||||
由于桌面版具有图形用户界面,你需要至少 4GB 的内存来运行 Ubuntu 桌面版。磁盘空间至少要有 20GB。
|
||||
|
||||
这就是 Ubuntu 服务器的有趣之处。它没有图形化的界面。命令行界面不会消耗大量的系统资源。因此,你可以在 512MB 和 5GB 磁盘空间的机器上轻松运行 Ubuntu 服务器。(LCTT 译注:当然,对于服务器环境来说,内存和磁盘空间是多多益善。)
|
||||
|
||||
服务器上的内存和磁盘空间受制于你所运行的网络服务。如果一个网络应用需要至少 2GB 的内存,你就应该有这么多的内存。但在最简单的情况下,即使是 512MB 或 1GB 的内存也可以工作。
|
||||
|
||||
#### 用途
|
||||
|
||||
这是 Ubuntu 桌面版和服务器版之间的主要区别。问问自己,你想把 Ubuntu 用于什么目的?
|
||||
|
||||
如果是专门用于部署网络服务,那就选择 Ubuntu 服务器。请记住,你需要有基本的 Linux 命令行知识来使用终端。
|
||||
|
||||
如果你想把 Ubuntu 作为像 Windows 一样的普通电脑使用,那就选择 Ubuntu 桌面版。如果你想用它来学习 Linux 命令,或用于学习的 Docker 或者甚至是简单的(但是本地的)LAMP 服务器环境,请继续使用 Ubuntu 桌面。
|
||||
|
||||
对于服务器来说,Ubuntu 服务器版要比 Ubuntu 桌面版好。对于常规的计算机使用,Ubuntu 桌面版是更好的选择。
|
||||
|
||||
#### 你应该在服务器上使用 Ubuntu 桌面版还是在服务器上安装图形界面?
|
||||
|
||||
是这样的,Ubuntu 桌面版和服务器版都是 Linux,你可以用 Ubuntu 桌面版作为服务器来托管网页服务。这没问题。
|
||||
|
||||
同样地,[你可以在 Ubuntu 服务器上安装图形界面][11],并以图形方式使用它。这也是可行的。
|
||||
|
||||
![Ubuntu 服务器上的 GUI 登录][12]
|
||||
|
||||
但仅仅因为它可行,并不意味着你应该这么做。它违背了为服务器和桌面电脑创建不同版本的全部目的。
|
||||
|
||||
你必须付出额外的努力来将服务器版转换为桌面版,反之亦然。为什么要承受这种痛苦呢?
|
||||
|
||||
如果你使用 Ubuntu 的目的很明确,那就下载并安装合适的 Ubuntu 版本。
|
||||
|
||||
我希望这能使围绕 Ubuntu 桌面版和服务器版的选择现在更清楚一些。如果你有问题或建议,请利用评论区。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/ubuntu-server-vs-desktop/
|
||||
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/abhishek/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://ubuntu.com/
|
||||
[2]: https://itsfoss.com/wp-content/uploads/2021/08/ubuntu-server-desktop-download-800x338.webp
|
||||
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/ubuntu-desktop-server.png?resize=800%2C450&ssl=1
|
||||
[4]: https://itsfoss.com/what-is-desktop-environment/
|
||||
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/05/installing-gui-ubuntu-server-gnome-desktop.png?resize=792%2C597&ssl=1
|
||||
[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/system-restart-required.png?resize=800%2C469&ssl=1
|
||||
[7]: https://itsfoss.com/install-ubuntu/
|
||||
[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/02/installing-ubuntu.png?resize=800%2C549&ssl=1
|
||||
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/ubuntu-server-installation.png?resize=800%2C600&ssl=1
|
||||
[10]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/09/gnome-app-arranger.jpg?resize=799%2C450&ssl=1
|
||||
[11]: https://itsfoss.com/install-gui-ubuntu-server/
|
||||
[12]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/05/installing-gui-ubuntu-server-gnome-desktop-greet.png?resize=798%2C600&ssl=1
|
@ -0,0 +1,132 @@
|
||||
[#]: subject: "Revolt: An Open-Source Alternative to Discord"
|
||||
[#]: via: "https://itsfoss.com/revolt/"
|
||||
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14221-1.html"
|
||||
|
||||
Revolt:Discord 的开源替代品
|
||||
======
|
||||
|
||||
> Revolt 是一个有前途的自由和开源的 Discord 替代品。在这里,让我们看一下它所提供的东西以及它的初步印象。
|
||||
|
||||
Discord 是一个功能丰富的协作平台,主要为游戏玩家量身定做。尽管你可以在 Linux 上毫无问题地使用 Discord,但它仍然是一个专有解决方案。
|
||||
|
||||
你可以选择使用 [Element][1] 作为一个开源的解决方案协作平台,但它不是一个替代品。
|
||||
|
||||
但是,Revolt 是一个令人印象深刻的 Discord 替代品,它是开源的。
|
||||
|
||||
> 注意:
|
||||
>
|
||||
> Revolt 正处于公开测试阶段,不提供任何移动应用。它可能缺乏一些你在 Discord 上找到的基本功能。
|
||||
|
||||
我会重点说一下 Revolt 的功能,以及它是否可以成为 Linux 上 Discord 的替代品。
|
||||
|
||||
### 一个你可以自行托管的开源 Discord 替代品
|
||||
|
||||
![][2]
|
||||
|
||||
Revolt 不仅仅是一个简单的开源替代品,而且你还可以自我托管。
|
||||
|
||||
它确实缺少 Discord 提供的各种功能,但你可以获得许多基本功能,可以先体验一下。
|
||||
|
||||
即使缺乏一些功能,但它也是一个功能丰富的开源客户端。让我们来看看现有的功能。
|
||||
|
||||
### Revolt 的功能
|
||||
|
||||
![][3]
|
||||
|
||||
它看起来和感觉已经很像 Discord,这是一些关键的亮点:
|
||||
|
||||
* 能够创建你自己的服务器
|
||||
* 创建文字频道和语音频道
|
||||
* 在服务器中分配用户角色
|
||||
* 调整主题(深色/浅色)
|
||||
* 改变强调色
|
||||
* 从可用选项中管理字体和表情包
|
||||
* 支持自定义 CSS
|
||||
* 能够添加机器人
|
||||
* 易于管理文本/语音频道的权限
|
||||
* 向其他用户发送朋友请求
|
||||
* 保存的笔记
|
||||
* 能够控制通知
|
||||
* 支持硬件加速
|
||||
* 专门的桌面设置
|
||||
* 使用 Docker 进行自我托管
|
||||
* 用户状态和自定义状态支持
|
||||
|
||||
因此,作为处于公开测试阶段的东西,它听起来对初学者来说非常好。你已经拥有了大部分的核心功能,但你可能想等着看它成为一个成熟的 Discord 替代品。
|
||||
|
||||
### 使用 Revolt 的初步印象
|
||||
|
||||
![][4]
|
||||
|
||||
如果你使用过 Discord,用户体验会感觉很熟悉。这是一件好事。
|
||||
|
||||
对于这篇快速亮点介绍,我没有比较 Discord 和 Revolt 的资源使用情况,因为它仍然处于测试阶段,不是同等级的比较。
|
||||
|
||||
然而,在我简短的测试中,它感觉很快速,除了第一次加载一个文本频道时。在发表这篇文章时,它没有双因素认证(2FA)功能,但应该会在他们的第一个里程碑(第一版)版本中添加。
|
||||
|
||||
![][5]
|
||||
|
||||
一些功能如用户状态、权限管理和外观调整看起来很有用。但是,当涉及到语音频道时,它和 Discord 的工作方式不一样,至少现在是这样。
|
||||
|
||||
我不知道他们是否打算用同样的方式,但 Discord 的语音频道功能是直观的、快速的,而且有更好的控制。
|
||||
|
||||
不要忘了,Discord 还提供 “Discord Stage”,这是一个类似 Clubhouse 的音频聊天室功能。
|
||||
|
||||
其他一些我找不到的功能包括:
|
||||
|
||||
* 对信息作出反应的能力
|
||||
* 抑制噪音的功能
|
||||
* 改变服务器
|
||||
* 服务器日志
|
||||
* 各种有用的机器人
|
||||
|
||||
当然,要赶上 Discord 提供的功能还需要大量的时间,但至少我们现在有一个开源的 Discord 解决方案。
|
||||
|
||||
你可以了解他们的 [项目路线图/发布跟踪器][6],看看你可以在其最终/未来的版本中期待什么。
|
||||
|
||||
### 在 Linux 中安装 Revolt
|
||||
|
||||
Revolt 可用于 Linux 和 Windows。你可以选择在你的网络浏览器上使用它,而不需要一个单独的应用。
|
||||
|
||||
但是,如果你需要在你的桌面上使用它,他们提供了一个 AppImage 文件和一个 deb 包,你可以从它的 [GitHub 发布页][7] 下载。
|
||||
|
||||
如果你是 Linux 的新手,可以参考我们关于 [使用 AppImage 文件][8] 和 [安装 deb 包][9] 的资源来开始学习。
|
||||
|
||||
如果你想用你的错误报告和建议来帮助他们改进,请随时前往 [反馈页面][10]。此外,你还可以浏览他们的 [GitHub 页面][11] 以了解更多信息。
|
||||
|
||||
- [Revolt][12]
|
||||
|
||||
你觉得 Revolt 怎么样?你认为它有可能成为 Linux 上 Discord 的一个很好的开源替代品吗?
|
||||
|
||||
请在下面的评论中告诉我你的想法!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/revolt/
|
||||
|
||||
作者:[Ankush Das][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://itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/element/
|
||||
[2]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/revolt-screenshot.png?resize=800%2C506&ssl=1
|
||||
[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/revolt-desktop-settings.png?resize=800%2C501&ssl=1
|
||||
[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/revolt-screenshot1.png?resize=800%2C509&ssl=1
|
||||
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/09/revolt-appearance-setting.png?resize=800%2C524&ssl=1
|
||||
[6]: https://github.com/orgs/revoltchat/projects/2
|
||||
[7]: https://github.com/revoltchat/desktop/releases/tag/v1.0.2
|
||||
[8]: https://itsfoss.com/use-appimage-linux/
|
||||
[9]: https://itsfoss.com/install-deb-files-ubuntu/
|
||||
[10]: https://app.revolt.chat/settings/feedback
|
||||
[11]: https://github.com/revoltchat
|
||||
[12]: https://revolt.chat
|
425
published/202201/20210916 Crunch numbers in Python with NumPy.md
Normal file
425
published/202201/20210916 Crunch numbers in Python with NumPy.md
Normal file
@ -0,0 +1,425 @@
|
||||
[#]: subject: "Crunch numbers in Python with NumPy"
|
||||
[#]: via: "https://opensource.com/article/21/9/python-numpy"
|
||||
[#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14160-1.html"
|
||||
|
||||
用 NumPy 在 Python 中处理数字
|
||||
======
|
||||
|
||||
> 这篇文章讨论了安装 NumPy,然后创建、读取和排序 NumPy 数组。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/08/174635srrhdhh8wq9fdkrh.jpg)
|
||||
|
||||
NumPy(即 **Num**erical **Py**thon)是一个库,它使得在 Python 中对线性数列和矩阵进行统计和集合操作变得容易。[我在 Python 数据类型的笔记中介绍过][2],它比 Python 的列表快几个数量级。NumPy 在数据分析和科学计算中使用得相当频繁。
|
||||
|
||||
我将介绍安装 NumPy,然后创建、读取和排序 NumPy 数组。NumPy 数组也被称为 ndarray,即 N 维数组的缩写。
|
||||
|
||||
### 安装 NumPy
|
||||
|
||||
使用 `pip` 安装 NumPy 包非常简单,可以像安装其他软件包一样进行安装:
|
||||
|
||||
```
|
||||
pip install numpy
|
||||
```
|
||||
|
||||
安装了 NumPy 包后,只需将其导入你的 Python 文件中:
|
||||
|
||||
```
|
||||
import numpy as np
|
||||
```
|
||||
|
||||
将 `numpy` 以 `np` 之名导入是一个标准的惯例,但你可以不使用 `np`,而是使用你想要的任何其他别名。
|
||||
|
||||
### 为什么使用 NumPy? 因为它比 Python 列表要快好几个数量级
|
||||
|
||||
当涉及到处理大量的数值时,NumPy 比普通的 Python 列表快几个数量级。为了看看它到底有多快,我首先测量在普通 Python 列表上进行 `min()` 和 `max()` 操作的时间。
|
||||
|
||||
我将首先创建一个具有 999,999,999 项的 Python 列表:
|
||||
|
||||
```
|
||||
>>> my_list = range(1, 1000000000)
|
||||
>>> len(my_list)
|
||||
999999999
|
||||
```
|
||||
|
||||
现在我将测量在这个列表中找到最小值的时间:
|
||||
|
||||
```
|
||||
>>> start = time.time()
|
||||
>>> min(my_list)
|
||||
1
|
||||
>>> print('Time elapsed in milliseconds: ' + str((time.time() - start) * 1000))
|
||||
Time elapsed in milliseconds: 27007.00879096985
|
||||
```
|
||||
|
||||
这花了大约 27,007 毫秒,也就是大约 **27 秒**。这是个很长的时间。现在我试着找出寻找最大值的时间:
|
||||
|
||||
```
|
||||
>>> start = time.time()
|
||||
>>> max(my_list)
|
||||
999999999
|
||||
>>> print('Time elapsed in milliseconds: ' + str((time.time() - start) * 1000))
|
||||
Time elapsed in milliseconds: 28111.071348190308
|
||||
```
|
||||
|
||||
这花了大约 28,111 毫秒,也就是大约 **28 秒**。
|
||||
|
||||
现在我试试用 NumPy 找到最小值和最大值的时间:
|
||||
|
||||
```
|
||||
>>> my_list = np.arange(1, 1000000000)
|
||||
>>> len(my_list)
|
||||
999999999
|
||||
>>> start = time.time()
|
||||
>>> my_list.min()
|
||||
1
|
||||
>>> print('Time elapsed in milliseconds: ' + str((time.time() - start) * 1000))
|
||||
Time elapsed in milliseconds: 1151.1778831481934
|
||||
>>>
|
||||
>>> start = time.time()
|
||||
>>> my_list.max()
|
||||
999999999
|
||||
>>> print('Time elapsed in milliseconds: ' + str((time.time() - start) * 1000))
|
||||
Time elapsed in milliseconds: 1114.8970127105713
|
||||
```
|
||||
|
||||
找到最小值花了大约 1151 毫秒,找到最大值 1114 毫秒。这大约是 **1 秒**。
|
||||
|
||||
正如你所看到的,使用 NumPy 可以将寻找一个大约有 10 亿个值的列表的最小值和最大值的时间 **从大约 28 秒减少到 1 秒**。这就是 NumPy 的强大之处。
|
||||
|
||||
### 使用 Python 列表创建 ndarray
|
||||
|
||||
有几种方法可以在 NumPy 中创建 ndarray。
|
||||
|
||||
你可以通过使用元素列表来创建一个 ndarray:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.array([1, 2, 3, 4, 5])
|
||||
>>> print(my_ndarray)
|
||||
[1 2 3 4 5]
|
||||
```
|
||||
|
||||
有了上面的 ndarray 定义,我将检查几件事。首先,上面定义的变量的类型是 `numpy.ndarray`。这是所有 NumPy ndarray 的类型:
|
||||
|
||||
```
|
||||
>>> type(my_ndarray)
|
||||
<class 'numpy.ndarray'>
|
||||
```
|
||||
|
||||
这里要注意的另一件事是 “<ruby>形状<rt>shape</rt></ruby>”。ndarray 的形状是 ndarray 的每个维度的长度。你可以看到,`my_ndarray` 的形状是 `(5,)`。这意味着 `my_ndarray` 包含一个有 5 个元素的维度(轴)。
|
||||
|
||||
```
|
||||
>>> np.shape(my_ndarray)
|
||||
(5,)
|
||||
```
|
||||
|
||||
数组中的维数被称为它的 “<ruby>秩<rt>rank</rt></ruby>”。所以上面的 ndarray 的秩是 1。
|
||||
|
||||
我将定义另一个 ndarray `my_ndarray2` 作为一个多维 ndarray。那么它的形状会是什么呢?请看下面:
|
||||
|
||||
```
|
||||
>>> my_ndarray2 = np.array([(1, 2, 3), (4, 5, 6)])
|
||||
>>> np.shape(my_ndarray2)
|
||||
(2, 3)
|
||||
```
|
||||
|
||||
这是一个秩为 2 的 ndarray。另一个要检查的属性是 `dtype`,也就是数据类型。检查我们的 ndarray 的 `dtype` 可以得到以下结果:
|
||||
|
||||
```
|
||||
>>> my_ndarray.dtype
|
||||
dtype('int64')
|
||||
```
|
||||
|
||||
`int64` 意味着我们的 ndarray 是由 64 位整数组成的。NumPy 不能创建混合类型的 ndarray,必须只包含一种类型的元素。如果你定义了一个包含混合元素类型的 ndarray,NumPy 会自动将所有的元素类型转换为可以包含所有元素的最高元素类型。
|
||||
|
||||
例如,创建一个 `int` 和 `float` 的混合序列将创建一个 `float64` 的 ndarray:
|
||||
|
||||
```
|
||||
>>> my_ndarray2 = np.array([1, 2.0, 3])
|
||||
>>> print(my_ndarray2)
|
||||
[1. 2. 3.]
|
||||
>>> my_ndarray2.dtype
|
||||
dtype('float64')
|
||||
```
|
||||
|
||||
另外,将其中一个元素设置为 `string` 将创建 `dtype` 等于 `<U21` 的字符串 ndarray,意味着我们的 ndarray 包含 unicode 字符串:
|
||||
|
||||
```
|
||||
>>> my_ndarray2 = np.array([1, '2', 3])
|
||||
>>> print(my_ndarray2)
|
||||
['1' '2' '3']
|
||||
>>> my_ndarray2.dtype
|
||||
dtype('<U21')
|
||||
```
|
||||
|
||||
`size` 属性将显示我们的 ndarray 中存在的元素总数:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.array([1, 2, 3, 4, 5])
|
||||
>>> my_ndarray.size
|
||||
5
|
||||
```
|
||||
|
||||
### 使用 NumPy 方法创建 ndarray
|
||||
|
||||
如果你不想直接使用列表来创建 ndarray,还有几种可以用来创建它的 NumPy 方法。
|
||||
|
||||
你可以使用 `np.zeros()` 来创建一个填满 0 的 ndarray。它需要一个“形状”作为参数,这是一个包含行数和列数的列表。它还可以接受一个可选的 `dtype` 参数,这是 ndarray 的数据类型:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.zeros([2,3], dtype=int)
|
||||
>>> print(my_ndarray)
|
||||
[[0 0 0]
|
||||
[0 0 0]]
|
||||
```
|
||||
|
||||
你可以使用 `np. ones()` 来创建一个填满 `1` 的 ndarray:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.ones([2,3], dtype=int)
|
||||
>>> print(my_ndarray)
|
||||
[[1 1 1]
|
||||
[1 1 1]]
|
||||
```
|
||||
|
||||
你可以使用 `np.full()` 来给 ndarray 填充一个特定的值:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.full([2,3], 10, dtype=int)
|
||||
>>> print(my_ndarray)
|
||||
[[10 10 10]
|
||||
[10 10 10]]
|
||||
```
|
||||
|
||||
你可以使用 `np.eye()` 来创建一个单位矩阵 / ndarray,这是一个沿主对角线都是 `1` 的正方形矩阵。正方形矩阵是一个行数和列数相同的矩阵:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.eye(3, dtype=int)
|
||||
>>> print(my_ndarray)
|
||||
[[1 0 0]
|
||||
[0 1 0]
|
||||
[0 0 1]]
|
||||
```
|
||||
|
||||
你可以使用 `np.diag()` 来创建一个沿对角线有指定数值的矩阵,而在矩阵的其他部分为 `0`:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.diag([10, 20, 30, 40, 50])
|
||||
>>> print(my_ndarray)
|
||||
[[10 0 0 0 0]
|
||||
[ 0 20 0 0 0]
|
||||
[ 0 0 30 0 0]
|
||||
[ 0 0 0 40 0]
|
||||
[ 0 0 0 0 50]]
|
||||
```
|
||||
|
||||
你可以使用 `np.range()` 来创建一个具有特定数值范围的 ndarray。它是通过指定一个整数的开始和结束(不包括)范围以及一个步长来创建的:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.arange(1, 20, 3)
|
||||
>>> print(my_ndarray)
|
||||
[ 1 4 7 10 13 16 19]
|
||||
```
|
||||
|
||||
### 读取 ndarray
|
||||
|
||||
ndarray 的值可以使用索引、分片或布尔索引来读取。
|
||||
|
||||
#### 使用索引读取 ndarray 的值
|
||||
|
||||
在索引中,你可以使用 ndarray 的元素的整数索引来读取数值,就像你读取 Python 列表一样。就像 Python 列表一样,索引从 `0` 开始。
|
||||
|
||||
例如,在定义如下的 ndarray 中:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.arange(1, 20, 3)
|
||||
```
|
||||
|
||||
第四个值将是 `my_ndarray[3]`,即 `10`。最后一个值是 `my_ndarray[-1]`,即 `19`:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.arange(1, 20, 3)
|
||||
>>> print(my_ndarray[0])
|
||||
1
|
||||
>>> print(my_ndarray[3])
|
||||
10
|
||||
>>> print(my_ndarray[-1])
|
||||
19
|
||||
>>> print(my_ndarray[5])
|
||||
16
|
||||
>>> print(my_ndarray[6])
|
||||
19
|
||||
```
|
||||
|
||||
#### 使用分片读取 ndarray
|
||||
|
||||
你也可以使用分片来读取 ndarray 的块。分片的工作方式是用冒号(`:`)操作符指定一个开始索引和一个结束索引。然后,Python 将获取该开始和结束索引之间的 ndarray 片断:
|
||||
|
||||
```
|
||||
>>> print(my_ndarray[:])
|
||||
[ 1 4 7 10 13 16 19]
|
||||
>>> print(my_ndarray[2:4])
|
||||
[ 7 10]
|
||||
>>> print(my_ndarray[5:6])
|
||||
[16]
|
||||
>>> print(my_ndarray[6:7])
|
||||
[19]
|
||||
>>> print(my_ndarray[:-1])
|
||||
[ 1 4 7 10 13 16]
|
||||
>>> print(my_ndarray[-1:])
|
||||
[19]
|
||||
```
|
||||
|
||||
分片创建了一个 ndarray 的引用(或视图)。这意味着,修改分片中的值也会改变原始 ndarray 的值。
|
||||
|
||||
比如说:
|
||||
|
||||
```
|
||||
>>> my_ndarray[-1:] = 100
|
||||
>>> print(my_ndarray)
|
||||
[ 1 4 7 10 13 16 100]
|
||||
```
|
||||
|
||||
对于秩超过 1 的 ndarray 的分片,可以使用 `[行开始索引:行结束索引, 列开始索引:列结束索引]` 语法:
|
||||
|
||||
```
|
||||
>>> my_ndarray2 = np.array([(1, 2, 3), (4, 5, 6)])
|
||||
>>> print(my_ndarray2)
|
||||
[[1 2 3]
|
||||
[4 5 6]]
|
||||
>>> print(my_ndarray2[0:2,1:3])
|
||||
[[2 3]
|
||||
[5 6]]
|
||||
```
|
||||
|
||||
#### 使用布尔索引读取 ndarray 的方法
|
||||
|
||||
读取 ndarray 的另一种方法是使用布尔索引。在这种方法中,你在方括号内指定一个过滤条件,然后返回符合该条件的 ndarray 的一个部分。
|
||||
|
||||
例如,为了获得一个 ndarray 中所有大于 5 的值,你可以指定布尔索引操作 `my_ndarray[my_ndarray > 5]`。这个操作将返回一个包含所有大于 5 的值的 ndarray:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
|
||||
>>> my_ndarray2 = my_ndarray[my_ndarray > 5]
|
||||
>>> print(my_ndarray2)
|
||||
[ 6 7 8 9 10]
|
||||
```
|
||||
|
||||
例如,为了获得一个 ndarray 中的所有偶数值,你可以使用如下的布尔索引操作:
|
||||
|
||||
```
|
||||
>>> my_ndarray2 = my_ndarray[my_ndarray % 2 == 0]
|
||||
>>> print(my_ndarray2)
|
||||
[ 2 4 6 8 10]
|
||||
```
|
||||
|
||||
而要得到所有的奇数值,你可以用这个方法:
|
||||
|
||||
```
|
||||
>>> my_ndarray2 = my_ndarray[my_ndarray % 2 == 1]
|
||||
>>> print(my_ndarray2)
|
||||
[1 3 5 7 9]
|
||||
```
|
||||
|
||||
### ndarray 的矢量和标量算术
|
||||
|
||||
NumPy 的 ndarray 允许进行矢量和标量算术操作。在矢量算术中,在两个 ndarray 之间进行一个元素的算术操作。在标量算术中,算术运算是在一个 ndarray 和一个常数标量值之间进行的。
|
||||
|
||||
如下的两个 ndarray:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.array([1, 2, 3, 4, 5])
|
||||
>>> my_ndarray2 = np.array([6, 7, 8, 9, 10])
|
||||
```
|
||||
|
||||
如果你将上述两个 ndarray 相加,就会产生一个两个 ndarray 的元素相加的新的 ndarray。例如,产生的 ndarray 的第一个元素将是原始 ndarray 的第一个元素相加的结果,以此类推:
|
||||
|
||||
```
|
||||
>>> print(my_ndarray2 + my_ndarray)
|
||||
[ 7 9 11 13 15]
|
||||
```
|
||||
|
||||
这里,`7` 是 `1` 和 `6` 的和,这是我相加的 ndarray 中的前两个元素。同样,`15` 是 `5` 和`10` 之和,是最后一个元素。
|
||||
|
||||
请看以下算术运算:
|
||||
|
||||
```
|
||||
>>> print(my_ndarray2 - my_ndarray)
|
||||
[5 5 5 5 5]
|
||||
>>>
|
||||
>>> print(my_ndarray2 * my_ndarray)
|
||||
[ 6 14 24 36 50]
|
||||
>>>
|
||||
>>> print(my_ndarray2 / my_ndarray)
|
||||
[6. 3.5 2.66666667 2.25 2. ]
|
||||
```
|
||||
|
||||
在 ndarray 中加一个标量值也有类似的效果,标量值被添加到 ndarray 的所有元素中。这被称为“<ruby>广播<rt>broadcasting</rt></ruby>”:
|
||||
|
||||
```
|
||||
>>> print(my_ndarray + 10)
|
||||
[11 12 13 14 15]
|
||||
>>>
|
||||
>>> print(my_ndarray - 10)
|
||||
[-9 -8 -7 -6 -5]
|
||||
>>>
|
||||
>>> print(my_ndarray * 10)
|
||||
[10 20 30 40 50]
|
||||
>>>
|
||||
>>> print(my_ndarray / 10)
|
||||
[0.1 0.2 0.3 0.4 0.5]
|
||||
```
|
||||
|
||||
### ndarray 的排序
|
||||
|
||||
有两种方法可以对 ndarray 进行原地或非原地排序。原地排序会对原始 ndarray 进行排序和修改,而非原地排序会返回排序后的 ndarray,但不会修改原始 ndarray。我将尝试这两个例子:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.array([3, 1, 2, 5, 4])
|
||||
>>> my_ndarray.sort()
|
||||
>>> print(my_ndarray)
|
||||
[1 2 3 4 5]
|
||||
```
|
||||
|
||||
正如你所看到的,`sort()` 方法对 ndarray 进行原地排序,并修改了原数组。
|
||||
|
||||
还有一个方法叫 `np.sort()`,它对数组进行非原地排序:
|
||||
|
||||
```
|
||||
>>> my_ndarray = np.array([3, 1, 2, 5, 4])
|
||||
>>> print(np.sort(my_ndarray))
|
||||
[1 2 3 4 5]
|
||||
>>> print(my_ndarray)
|
||||
[3 1 2 5 4]
|
||||
```
|
||||
|
||||
正如你所看到的,`np.sort()` 方法返回一个已排序的 ndarray,但没有修改它。
|
||||
|
||||
### 总结
|
||||
|
||||
我已经介绍了很多关于 NumPy 和 ndarray 的内容。我谈到了创建 ndarray,读取它们的不同方法,基本的向量和标量算术,以及排序。NumPy 还有很多东西可以探索,包括像 `union()` 和 `intersection()`这样的集合操作,像 `min()` 和 `max()` 这样的统计操作,等等。
|
||||
|
||||
我希望我上面演示的例子是有用的。祝你在探索 NumPy 时愉快。
|
||||
|
||||
本文最初发表于 [作者的个人博客][3],经授权后改编。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/9/python-numpy
|
||||
|
||||
作者:[Ayush Sharma][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/ayushsharma
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/math_money_financial_calculator_colors.jpg?itok=_yEVTST1 (old school calculator)
|
||||
[2]: https://notes.ayushsharma.in/2018/09/data-types-in-python
|
||||
[3]: https://notes.ayushsharma.in/2018/10/working-with-numpy-in-python
|
@ -0,0 +1,245 @@
|
||||
[#]: subject: "Bash Shell Scripting for beginners (Part 2)"
|
||||
[#]: via: "https://fedoramagazine.org/bash-shell-scripting-for-beginners-part-2/"
|
||||
[#]: author: "Matthew Darnell https://fedoramagazine.org/author/zexcon/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "unigeorge"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14198-1.html"
|
||||
|
||||
Bash Shell 脚本新手指南(二)
|
||||
======
|
||||
|
||||
![][1]
|
||||
|
||||
欢迎来到面向初学者的 Bash Shell 脚本知识第二部分。本篇将就 Bash 脚本一些更独特的方面进行深入探讨。我们会用到一些 [上篇][5] 中已经熟悉的命令(如果遇到新命令,会给出讲解),进而涵盖一些标准输出、标准输入、标准错误、“管道”和数据重定向的相关知识。
|
||||
|
||||
### 使用 # 添加注释
|
||||
|
||||
随着脚本变得愈加复杂和实用,我们需要添加注释,以便记住程序在做什么。如果与其他人分享你的脚本,注释也将帮助他们理解思考过程,以及更好理解你的脚本实现的功能。想一想上篇文章中的数学方程,我们在新版脚本中添加了一些注释。注意,在 `learnToScript.sh` 文件(如下所示)中,注释是前面带有 `#` 号的行。当脚本运行时,这些注释行并不会出现。
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
#Let's pick up from our last article. We
|
||||
#learned how to use mathematical equations
|
||||
#in bash scripting.
|
||||
|
||||
echo $((5+3))
|
||||
echo $((5-3))
|
||||
echo $((5*3))
|
||||
echo $((5/3))
|
||||
```
|
||||
|
||||
```
|
||||
[zexcon ~]$ ./learnToScript.sh
|
||||
8
|
||||
2
|
||||
15
|
||||
1
|
||||
```
|
||||
|
||||
### 管道符 |
|
||||
|
||||
我们将使用另一个名为 `grep` 的工具来介绍管道运算符。
|
||||
|
||||
> `grep` 可以在输入文件中搜索可以匹配指定模式的行。默认情况下,`grep` 会输出相应的匹配行。
|
||||
>
|
||||
> <https://www.gnu.org/software/grep/>
|
||||
|
||||
Paul W. Frields 在 《Fedora 杂志》上的文章很好地介绍了关于 _grep_ 的知识。
|
||||
|
||||
> [命令行快速小技巧:使用 grep 进行搜索][4]
|
||||
|
||||
管道键在键盘上位于回车键上方,可以在英文状态下按 `Shift + \` 输入。
|
||||
|
||||
现在你已经略微熟悉了 `grep`,接下来看一个使用管道命令的示例。在命令行输入 `ls -l | grep learn`。
|
||||
|
||||
```
|
||||
[zexcon ~]$ ls -l | grep learn
|
||||
-rwxrw-rw-. 1 zexcon zexcon 70 Sep 17 10:10 learnToScript.sh
|
||||
```
|
||||
|
||||
通常 `ls -l` 命令会在屏幕上显示文件列表。这里 `ls -l` 命令的完整结果通过管道传送到搜索字符串 `learn` 的 `grep` 命令中。你可以将管道命令想象成一个过滤器。先运行一个命令(本例中为 `ls -l`,结果会给出目录中的文件),这些结果通过管道命令给到 `grep`,后者会在其中搜索 `learn`,并且只显示符合条件的目标行。
|
||||
|
||||
下面再看一个例子以巩固相关知识。`less` 命令可以让用户查看超出一个屏幕尺寸的命令结果。以下是命令手册页中关于 `less` 的简要说明。
|
||||
|
||||
> `less` 是一个类似于 `more` 的程序,但它允许在文件中向后或向前进行翻页移动。此外,`less` 不必在开始之前读取整个输入文件,因此对于大型输入文件而言,它比 `vi` 等文本编辑器启动更快。该命令较少使用 termcap(或某些系统上的 terminfo),因此可以在各种终端上运行。甚至还在一定程度上支持用于硬拷贝终端的端口。(在硬拷贝终端上,显示在屏幕顶部的行会以插入符号为前缀。)
|
||||
>
|
||||
> Fedora 34 手册页
|
||||
|
||||
下面让我们看看管道命令和 `less` 命令结合使用会是什么样子。
|
||||
|
||||
```
|
||||
[zexcon ~]$ ls -l /etc | less
|
||||
```
|
||||
|
||||
```
|
||||
total 1504
|
||||
drwxr-xr-x. 1 root root 126 Jul 7 17:46 abrt
|
||||
-rw-r--r--. 1 root root 18 Jul 7 16:04 adjtime
|
||||
-rw-r--r--. 1 root root 1529 Jun 23 2020 aliases
|
||||
drwxr-xr-x. 1 root root 70 Jul 7 17:47 alsa
|
||||
drwxr-xr-x. 1 root root 14 Apr 23 05:58 cron.d
|
||||
drwxr-xr-x. 1 root root 0 Jan 25 2021 cron.daily
|
||||
:
|
||||
:
|
||||
```
|
||||
|
||||
为便于阅读,此处对结果进行了修剪。用户可以使用键盘上的箭头键向上或向下滚动,进而控制显示。如果使用命令行,结果超出屏幕的话,用户可能会看不到结果的开头行。要退出 `less` 屏幕,只需点击 `q` 键。
|
||||
|
||||
### 标准输出(stdout)重定向 >、>>、1>、1>>
|
||||
|
||||
`>` 或 `>>` 符号之前的命令输出结果,会被写入到紧跟的文件名对应的文件中。`>` 和 `1>` 具有相同的效果,因为 `1` 就代表着标准输出。如果不显式指定 `1`,则默认为标准输出。`>>` 和 `1>>` 将数据附加到文件的末尾。使用 `>` 或 `>>` 时,如果文件不存在,则会创建对应文件。
|
||||
|
||||
例如,如果你想查看 `ping` 命令的输出,以查看它是否丢弃了数据包。与其关注控制台,不如将输出结果重定向到文件中,这样你就可以稍后再回来查看数据包是否被丢弃。下面是使用 `>` 的重定向测试。
|
||||
|
||||
```
|
||||
[zexcon ~]$ ls -l ~ > learnToScriptOutput
|
||||
```
|
||||
|
||||
该命令会获取本应输出到终端的结果(`~` 代表家目录),并将其重定向到 `learnToScriptOutput` 文件。注意,我们并未手动创建 `learnToScriptOutput`,系统会自动创建该文件。
|
||||
|
||||
```
|
||||
total 128
|
||||
drwxr-xr-x. 1 zexcon zexcon 268 Oct 1 16:02 Desktop
|
||||
drwxr-xr-x. 1 zexcon zexcon 80 Sep 16 08:53 Documents
|
||||
drwxr-xr-x. 1 zexcon zexcon 0 Oct 1 15:59 Downloads
|
||||
-rw-rw-r--. 1 zexcon zexcon 685 Oct 4 16:00 learnToScriptAllOutput
|
||||
-rw-rw-r--. 1 zexcon zexcon 23 Oct 4 12:42 learnToScriptInput
|
||||
-rw-rw-r--. 1 zexcon zexcon 0 Oct 4 16:42 learnToScriptOutput
|
||||
-rw-rw-r--. 1 zexcon zexcon 52 Oct 4 16:07 learnToScriptOutputError
|
||||
-rwxrw-rw-. 1 zexcon zexcon 477 Oct 4 15:01 learnToScript.sh
|
||||
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Videos
|
||||
```
|
||||
|
||||
### 标准错误(stderr)重定向 `2>`、`2>>`
|
||||
|
||||
`>` 或 `>>` 符号之前命令的错误信息输出,会被写入到紧跟的文件名对应的文件中。`2>` 和 `2>>` 具有相同的效果,但 `2>>` 是将数据追加到文件末尾。你可能会想,这有什么用?不妨假象一下用户只想捕获错误信息的场景,然后你就会意识到 `2>` 或 `2>>` 的作用。数字 `2` 表示本应输出到终端的标准错误信息输出。现在我们试着追踪一个不存在的文件,以试试这个知识点。
|
||||
|
||||
```
|
||||
[zexcon ~]$ ls -l /etc/invalidTest 2> learnToScriptOutputError
|
||||
```
|
||||
|
||||
这会生成错误信息,并将错误信息重定向输入到 `learnToScriptOutputError` 文件中。
|
||||
|
||||
```
|
||||
ls: cannot access '/etc/invalidTest': No such file or directory
|
||||
```
|
||||
|
||||
### 所有输出重定向 &>、&>>、|&
|
||||
|
||||
如果你不想将标准输出(`stdout`)和标准错误信息(`stderr`)写入不同的文件,那么在 Bash 5 中,你可以使用 `&>` 将标准输出和标准错误重定向到同一个文件,或者使用 `&>>` 追加到文件末尾。
|
||||
|
||||
```
|
||||
[zexcon ~]$ ls -l ~ &>> learnToScriptAllOutput
|
||||
[zexcon ~]$ ls -l /etc/invalidTest &>> learnToScriptAllOutput
|
||||
```
|
||||
|
||||
运行这些命令后,两者的输出都会进入同一个文件中,而不会区分是错误信息还是标准输出。
|
||||
|
||||
```
|
||||
total 128
|
||||
drwxr-xr-x. 1 zexcon zexcon 268 Oct 1 16:02 Desktop
|
||||
drwxr-xr-x. 1 zexcon zexcon 80 Sep 16 08:53 Documents
|
||||
drwxr-xr-x. 1 zexcon zexcon 0 Oct 1 15:59 Downloads
|
||||
-rw-rw-r--. 1 zexcon zexcon 685 Oct 4 16:00 learnToScriptAllOutput
|
||||
-rw-rw-r--. 1 zexcon zexcon 23 Oct 4 12:42 learnToScriptInput
|
||||
-rw-rw-r--. 1 zexcon zexcon 0 Oct 4 16:42 learnToScriptOutput
|
||||
-rw-rw-r--. 1 zexcon zexcon 52 Oct 4 16:07 learnToScriptOutputError
|
||||
-rwxrw-rw-. 1 zexcon zexcon 477 Oct 4 15:01 learnToScript.sh
|
||||
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Videos
|
||||
ls: cannot access '/etc/invalidTest': No such file or directory
|
||||
```
|
||||
|
||||
如果你直接使用命令行操作,并希望将所有结果通过管道传输到另一个命令,可以选择使用 `|&` 实现。
|
||||
|
||||
```
|
||||
[zexcon ~]$ ls -l |& grep learn
|
||||
-rw-rw-r--. 1 zexcon zexcon 1197 Oct 18 09:46 learnToScriptAllOutput
|
||||
-rw-rw-r--. 1 zexcon zexcon 343 Oct 14 10:47 learnToScriptError
|
||||
-rw-rw-r--. 1 zexcon zexcon 0 Oct 14 11:11 learnToScriptOut
|
||||
-rw-rw-r--. 1 zexcon zexcon 348 Oct 14 10:27 learnToScriptOutError
|
||||
-rwxr-x---. 1 zexcon zexcon 328 Oct 18 09:46 learnToScript.sh
|
||||
[zexcon ~]$
|
||||
```
|
||||
|
||||
### 标准输入(stdin)
|
||||
|
||||
在本篇和上篇文章中,我们已经多次使用过标准输入(stdin),因为在每次使用键盘输入时,我们都在使用标准输入。为了区别通常意义上的“键盘即标准输入”,这次我们尝试在脚本中使用 `read` 命令。下面的脚本中就使用了 `read` 命令,字面上就像“读取标准输入”。
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
#Here we are asking a question to prompt the user for standard input. i.e.keyboard
|
||||
echo 'Please enter your name.'
|
||||
|
||||
#Here we are reading the standard input and assigning it to the variable name with the read command.
|
||||
read name
|
||||
|
||||
#We are now going back to standard output, by using echo and printing your name to the command line.
|
||||
echo "With standard input you have told me your name is: $name"
|
||||
```
|
||||
|
||||
这个示例通过标准输出给出提示,提醒用户输入信息,然后从标准输入(键盘)获取信息,使用 `read` 将其存储在 `name` 变量中,并通过标准输出显示出 `name` 中的值。
|
||||
|
||||
```
|
||||
[zexcon@fedora ~]$ ./learnToScript.sh
|
||||
Please enter your name.
|
||||
zexcon
|
||||
With standard input you have told me your name is: zexcon
|
||||
[zexcon@fedora ~]$
|
||||
```
|
||||
|
||||
### 在脚本中使用
|
||||
|
||||
现在我们把学到的东西放入脚本中,学习一下如何实际应用。下面是增加了几行后的新版本 `learnToScript.sh` 文件。它用追加的方式将标准输出、标准错误信息,以及两者混合后的信息,分别写入到三个不同文件。它将标准输出写入 `learnToScriptStandardOutput`,标准错误信息写入 `learnToScriptStandardError`,二者共同都写入 `learnToScriptAllOutput` 文件。
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
#As we know this article is about scripting. So let's
|
||||
#use what we learned in a script.
|
||||
|
||||
#Let's get some information from the user and add it to our scripts with stanard input and read
|
||||
|
||||
echo "What is your name? "
|
||||
read name
|
||||
|
||||
|
||||
#Here standard output directed to append a file to learnToScirptStandardOutput
|
||||
echo "$name, this will take standard output with append >> and redirect to learnToScriptStandardOutput." 1>> learnToScriptStandardOutput
|
||||
|
||||
|
||||
#Here we are taking the standard error and appending it to learnToScriptStandardError but to see this we need to #create an error.
|
||||
eco "Standard error with append >> redirect to learnToScriptStandardError." 2>> learnToScriptStandardError
|
||||
|
||||
#Here we are going to create an error and a standard output and see they go to the same place.
|
||||
echo "Standard output with append >> redirect to learnToScriptAllOutput." &>> learnToScriptAllOutput
|
||||
eco "Standard error with append >> redirect to learnToScriptAllOutput." &>> learnToScriptAllOutput
|
||||
```
|
||||
|
||||
脚本在同一目录中创建了三个文件。命令 `echo` 故意输入错误(LCTT 译注:缺少了字母 h)以产生错误信息。如果查看三个文件,你会在 `learnToScriptStandardOutput` 中看到一条信息,在 `learnToScriptStandardError` 中看到一条信息,在 `learnToScriptAllOutput` 中看到两条信息。另外,该脚本还会再次提示输入的 `name` 值,再将其写入 `learnToScriptStandardOutput` 中。
|
||||
|
||||
### 结语
|
||||
|
||||
至此你应该能够明确,可以在命令行中执行的操作,都可以在脚本中执行。在编写可能供他人使用的脚本时,文档非常重要。如果继续深入研究脚本,标准输出会显得更有意义,因为你将会控制它们的生成。在脚本中,你可以与命令行中操作时应用相同的内容。下一篇文章我们会讨论函数、循环,以及在此基础上进一步构建的结构。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://fedoramagazine.org/bash-shell-scripting-for-beginners-part-2/
|
||||
|
||||
作者:[Matthew Darnell][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[unigeorge](https://github.com/unigeorge)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://fedoramagazine.org/author/zexcon/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://fedoramagazine.org/wp-content/uploads/2021/10/bash_shell_scripting_pt2-816x345.jpg
|
||||
[2]: https://unsplash.com/@nbandana?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
|
||||
[3]: https://unsplash.com/s/photos/shell-scripting?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
|
||||
[4]: https://fedoramagazine.org/command-line-quick-tips-searching-with-grep/
|
||||
[5]: https://linux.cn/article-14131-1.html
|
@ -0,0 +1,337 @@
|
||||
[#]: subject: "What you need to know about cluster logging in Kubernetes"
|
||||
[#]: via: "https://opensource.com/article/21/11/cluster-logging-kubernetes"
|
||||
[#]: author: "Mike Calizo https://opensource.com/users/mcalizo"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "perfiffer"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14139-1.html"
|
||||
|
||||
Kubernetes 集群日志基础
|
||||
======
|
||||
|
||||
> 探索 Kubernetes 中不同容器日志记录模式的工作原理。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/02/105801igujabattghwzkjw.jpg)
|
||||
|
||||
服务器和应用程序日志记录是开发人员、运维人员和安全团队了解应用程序在其生产环境中运行状态的重要工具。
|
||||
|
||||
日志记录使运维人员能够确定应用程序和所需组件是否运行平稳,并检测是否发生了异常情况,以便他们能够对这种情况做出反应。
|
||||
|
||||
对于开发人员,日志记录提供了在开发期间和之后对代码进行故障排除的可见性。在生产环境中,开发人员通常依赖于没有调试工具的日志记录工具。在加上系统的日志记录,开发人员可以与运维人员携手合作,有效地解决问题。
|
||||
|
||||
日志记录工具最重要的受益者是安全团队,尤其是在云原生的环境中。能够从应用程序和系统日志中收集信息使得安全团队能够分析来自身份验证、应用程序访问恶意软件活动的数据,并在需要时进行响应。
|
||||
|
||||
Kubernetes 是领先的容器平台,越来越多的应用程序通过 Kubernetes 部署到生产环境。我相信了解 Kubernetes 的日志架构是一项非常重要的工作,每个开发、运维和安全团队都需要认真对待。
|
||||
|
||||
在本文中,我将讨论 Kubernetes 中不同容器日志记录模式的工作原理。
|
||||
|
||||
### 系统日志记录和应用日志记录
|
||||
|
||||
在深入研究 Kubernetes 日志记录架构之前,我想探索不同的日志记录方法以及这两种功能如何成为 Kubernetes 日志记录的关键特性。
|
||||
|
||||
有两种类型的系统组件:在容器中运行的组件和不在容器中运行的组件。例如:
|
||||
|
||||
* Kubernetes 调度者和 `kube-proxy` 运行在容器中。
|
||||
* `kubelet` 和容器运行时不在容器中运行。
|
||||
|
||||
与容器日志类似,系统容器日志存储在 `/var/log` 目录中,你应该定期轮换它们。
|
||||
|
||||
在这里,我研究的是容器日志记录。首先,我看一下集群级别的日志记录以及为什么它对集群运维人员很重要。集群日志提供有关集群如何执行的信息。诸如为什么 <ruby>吊舱<rt>Pod</rt></ruby> 被下线或节点死亡之类的信息。集群日志记录还可以捕获诸如集群和应用程序访问以及应用程序如何利用计算资源等信息。总体而言,集群日志记录工具为集群运维人员提供操作集群和安全有用的信息。
|
||||
|
||||
捕获容器日志的另一种方法是通过应用程序的本机日志记录工具。现代应用程序设计很可能具有日志记录机制,可帮助开发人员通过标准输出 (`stdout`) 和错误流 (`stderr`) 解决应用程序性能问题。
|
||||
|
||||
为了拥有有效的日志记录工具,Kubernetes 实现需要应用程序和系统日志记录组件。
|
||||
|
||||
### Kubernetes 容器日志的 3 种类型
|
||||
|
||||
如今,在大多数的 Kubernetes 实现中,你可以看到三种主要的集群级日志记录方法。
|
||||
|
||||
1. 节点级日志代理
|
||||
2. 用于日志记录的<ruby>挎斗<rt>Sidecar</rt></rt></ruby>容器应用程序
|
||||
3. 将应用程序日志直接暴露给日志后端
|
||||
|
||||
#### 节点级日志代理
|
||||
|
||||
我想考虑节点级日志代理。你通常使用 DaemonSet 作为部署策略来实现这些,以便在所有 Kubernetes 节点中部署一个吊舱(充当日志代理)。然后,该日志代理被配置为从所有 Kubernetes 节点读取日志。你通常将代理配置为读取节点 `/var/logs` 目录捕获 `stdout`/`stderr` 流并将其发送到日志记录后端存储。
|
||||
|
||||
下图显示了在所有节点中作为代理运行的节点级日志记录。
|
||||
|
||||
![Node-level logging agent][2]
|
||||
|
||||
以使用 `fluentd` 方法为例设置节点级日志记录,你需要执行以下操作:
|
||||
|
||||
1、首先,你需要创建一个名为 fluentdd 的服务账户。Fluentd 吊舱使用此服务账户来访问 Kubernetes API,你需要在日志命名空间中使用标签 `app: fluentd` 创建它们:
|
||||
|
||||
```
|
||||
#fluentd-SA.yaml
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: fluentd
|
||||
namespace: logging
|
||||
labels:
|
||||
app: fluentd
|
||||
```
|
||||
|
||||
你可以在此 [仓库][4] 中查看完整示例。
|
||||
|
||||
2、接着,你需要创建一个名称为 `fluentd-configmap` 的 ConfigMap。这为 `fluentd daemonset` 提供了一个配置文件,其中包含所有必需的属性。
|
||||
|
||||
```
|
||||
#fluentd-daemonset.yaml
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: fluentd
|
||||
namespace: logging
|
||||
labels:
|
||||
app: fluentd
|
||||
kubernetes.io/cluster-service: "true"
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: fluentd
|
||||
kubernetes.io/cluster-service: "true"
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: fluentd
|
||||
kubernetes.io/cluster-service: "true"
|
||||
spec:
|
||||
serviceAccount: fluentd
|
||||
containers:
|
||||
- name: fluentd
|
||||
image: fluent/fluentd-kubernetes-daemonset:v1.7.3-debian-elasticsearch7-1.0
|
||||
env:
|
||||
- name: FLUENT_ELASTICSEARCH_HOST
|
||||
value: "elasticsearch.logging.svc.cluster.local"
|
||||
- name: FLUENT_ELASTICSEARCH_PORT
|
||||
value: "9200"
|
||||
- name: FLUENT_ELASTICSEARCH_SCHEME
|
||||
value: "http"
|
||||
- name: FLUENT_ELASTICSEARCH_USER
|
||||
value: "elastic"
|
||||
- name: FLUENT_ELASTICSEARCH_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: efk-pw-elastic
|
||||
key: password
|
||||
- name: FLUENT_ELASTICSEARCH_SED_DISABLE
|
||||
value: "true"
|
||||
resources:
|
||||
limits:
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 200Mi
|
||||
volumeMounts:
|
||||
- name: varlog
|
||||
mountPath: /var/log
|
||||
- name: varlibdockercontainers
|
||||
mountPath: /var/lib/docker/containers
|
||||
readOnly: true
|
||||
- name: fluentconfig
|
||||
mountPath: /fluentd/etc/fluent.conf
|
||||
subPath: fluent.conf
|
||||
terminationGracePeriodSeconds: 30
|
||||
volumes:
|
||||
- name: varlog
|
||||
hostPath:
|
||||
path: /var/log
|
||||
- name: varlibdockercontainers
|
||||
hostPath:
|
||||
path: /var/lib/docker/containers
|
||||
- name: fluentconfig
|
||||
configMap:
|
||||
name: fluentdconf
|
||||
```
|
||||
|
||||
你可以在此 [仓库][4] 中查看完整示例。
|
||||
|
||||
现在,我们来看看如何将 `fluentd daemonset` 部署为日志代理的代码。
|
||||
|
||||
```
|
||||
#fluentd-daemonset.yaml
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: fluentd
|
||||
namespace: logging
|
||||
labels:
|
||||
app: fluentd
|
||||
kubernetes.io/cluster-service: "true"
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: fluentd
|
||||
kubernetes.io/cluster-service: "true"
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: fluentd
|
||||
kubernetes.io/cluster-service: "true"
|
||||
spec:
|
||||
serviceAccount: fluentd
|
||||
containers:
|
||||
- name: fluentd
|
||||
image: fluent/fluentd-kubernetes-daemonset:v1.7.3-debian-elasticsearch7-1.0
|
||||
env:
|
||||
- name: FLUENT_ELASTICSEARCH_HOST
|
||||
value: "elasticsearch.logging.svc.cluster.local"
|
||||
- name: FLUENT_ELASTICSEARCH_PORT
|
||||
value: "9200"
|
||||
- name: FLUENT_ELASTICSEARCH_SCHEME
|
||||
value: "http"
|
||||
- name: FLUENT_ELASTICSEARCH_USER
|
||||
value: "elastic"
|
||||
- name: FLUENT_ELASTICSEARCH_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: efk-pw-elastic
|
||||
key: password
|
||||
- name: FLUENT_ELASTICSEARCH_SED_DISABLE
|
||||
value: "true"
|
||||
resources:
|
||||
limits:
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 200Mi
|
||||
volumeMounts:
|
||||
- name: varlog
|
||||
mountPath: /var/log
|
||||
- name: varlibdockercontainers
|
||||
mountPath: /var/lib/docker/containers
|
||||
readOnly: true
|
||||
- name: fluentconfig
|
||||
mountPath: /fluentd/etc/fluent.conf
|
||||
subPath: fluent.conf
|
||||
terminationGracePeriodSeconds: 30
|
||||
volumes:
|
||||
- name: varlog
|
||||
hostPath:
|
||||
path: /var/log
|
||||
- name: varlibdockercontainers
|
||||
hostPath:
|
||||
path: /var/lib/docker/containers
|
||||
- name: fluentconfig
|
||||
configMap:
|
||||
name: fluentdconf
|
||||
```
|
||||
|
||||
将这些放在一起执行:
|
||||
|
||||
```
|
||||
kubectl apply -f fluentd-SA.yaml \
|
||||
-f fluentd-configmap.yaml \
|
||||
-f fluentd-daemonset.yaml
|
||||
```
|
||||
|
||||
#### 用于日志记录的挎斗容器应用程序
|
||||
|
||||
另一种方法是使用带有日志代理的专用挎斗容器。容器最常见的实现是使用 [Fluentd][5] 作为日志收集器。在企业部署中(你无需担心一点计算资源开销),使用 `fluentd`(或[类似][6])实现的挎斗容器提供了集群级日志记录的灵活性。这是因为你可以根据需要捕获的日志类型、频率和其它可能的调整来调整和配置收集器代理。
|
||||
|
||||
下图展示了作为日志代理的挎斗容器。
|
||||
|
||||
![Sidecar container as logging agent][7]
|
||||
|
||||
例如,一个吊舱运行单个容器,容器使用两种不同的格式写入两个不同的日志文件。吊舱的配置文件如下:
|
||||
|
||||
```
|
||||
#log-sidecar.yaml
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: counter
|
||||
spec:
|
||||
containers:
|
||||
- name: count
|
||||
image: busybox
|
||||
args:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- >
|
||||
i=0;
|
||||
while true;
|
||||
do
|
||||
echo "$i: $(date)" >> /var/log/1.log;
|
||||
echo "$(date) INFO $i" >> /var/log/2.log;
|
||||
i=$((i+1));
|
||||
sleep 1;
|
||||
done
|
||||
volumeMounts:
|
||||
- name: varlog
|
||||
mountPath: /var/log
|
||||
- name: count-log
|
||||
image: busybox
|
||||
args: [/bin/sh, -c, 'tail -n+1 -f /var/log/1.log']
|
||||
volumeMounts:
|
||||
- name: varlog
|
||||
mountPath: /var/log
|
||||
volumes:
|
||||
- name: varlog
|
||||
emptyDir: {}
|
||||
```
|
||||
|
||||
把它们放在一起,你可以运行这个吊舱:
|
||||
|
||||
```
|
||||
$ kubectl apply -f log-sidecar.yaml
|
||||
```
|
||||
|
||||
要验证挎斗容器是否用作日志代理,你可以执行以下操作:
|
||||
|
||||
```
|
||||
$ kubectl logs counter count-log
|
||||
```
|
||||
|
||||
预期的输出如下所示:
|
||||
|
||||
```
|
||||
$ kubectl logs counter count-log-1
|
||||
|
||||
Thu 04 Nov 2021 09:23:21 NZDT
|
||||
Thu 04 Nov 2021 09:23:22 NZDT
|
||||
Thu 04 Nov 2021 09:23:23 NZDT
|
||||
Thu 04 Nov 2021 09:23:24 NZDT
|
||||
```
|
||||
|
||||
#### 将应用程序日志直接暴露给日志后端
|
||||
|
||||
第三种方法(在我看来)是 Kubernetes 容器和应用程序日志最灵活的日志记录解决方案,是将日志直接推送到日志记录后端解决方案。尽管此模式不依赖于原生 Kubernetes 功能,但它提供了大多数企业需要的灵活性,例如:
|
||||
|
||||
1. 扩展对网络协议和输出格式的更广泛支持。
|
||||
2. 提供负载均衡能力并提高性能。
|
||||
3. 可配置为通过上游聚合接受复杂的日志记录要求。
|
||||
|
||||
因为这第三种方法通过直接从每个应用程序推送日志来依赖非 Kubernetes 功能,所以它超出了 Kubernetes 的范围。
|
||||
|
||||
### 结论
|
||||
|
||||
Kubernetes 日志记录工具是企业部署 Kubernetes 集群的一个非常重要的组件。我讨论了三种可能的可用模式。你需要找到适合你需求的模式。
|
||||
|
||||
如上所述,使用 `daemonset` 的节点级日志记录是最容易使用的部署模式,但它也有一些限制,可能不适合你的组织的需要。另一方面,挎斗 模式提供了灵活性和自定义,允许你自定义要捕获的日志类型,但是会提高计算机的资源开销。最后,将应用程序日志直接暴露给后端日志工具是另一种允许进一步定制的诱人方法。
|
||||
|
||||
选择在你,你只需要找到适合你组织要求的方法。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/11/cluster-logging-kubernetes
|
||||
|
||||
作者:[Mike Calizo][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[perfiffer](https://github.com/perfiffer)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/mcalizo
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/kubernetes.png?itok=PqDGb6W7 (Wheel of a ship)
|
||||
[2]: https://opensource.com/sites/default/files/uploads/node-level-logging-agent.png (Node-level logging agent)
|
||||
[3]: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
[4]: https://github.com/mikecali/kubernetes-logging-example-article
|
||||
[5]: https://www.fluentd.org/
|
||||
[6]: https://www.g2.com/products/fluentd/competitors/alternatives
|
||||
[7]: https://opensource.com/sites/default/files/uploads/sidecar-container-as-logging-agent.png (Sidecar container as logging agent)
|
@ -0,0 +1,73 @@
|
||||
[#]: subject: "Why now is a great time to consider a career in open source hardware"
|
||||
[#]: via: "https://opensource.com/article/21/11/open-source-hardware-careers"
|
||||
[#]: author: "Joshua Pearce https://opensource.com/users/jmpearce"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "zengyi1001"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14206-1.html"
|
||||
|
||||
现在是考虑从事开源硬件职业的好时机
|
||||
======
|
||||
|
||||
> 开源硬件现在是一个独立领域,并且正在快速的成长中。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/23/102054w2jnwennn8rwh27w.jpg)
|
||||
|
||||
在软件行业中,各种类型的程序员写代码的职业已经变得很普遍,这些代码通过开源许可证发布到公共场所。业界的猎头们通常要求查看这些代码来审查未来员工候选人。那些将自己职业生涯专注在开源项目开发的人得到了回报。从 payscale.com 网站得知,Linux 系统管理员的收入比 Windows 管理员要高,这表明从事开源软件领域可以获得更高的报酬和更稳定的工作机会。分享你的工作会让你感觉良好(这甚至可能是一种因果报应),你知道自己正在为整个世界创造价值。历史上,这样的机会可从来没有为我们这些从事于开源硬件领域的人存在过。
|
||||
|
||||
二十多年前,几乎没有人知道开源硬件是什么,更别说围绕它规划自己的职业生涯了。举例而言,在 2000 年全世界发表了超过 200 万篇学术论文,却只有 7 篇文章提到过“开源硬件”。在我第一次写《[开源实验室][2]》 的时候,我收集了每一个案例(其实也就几十个),并且可以轻松的跟上和阅读每一篇发布的关于开源硬件的文章,还把它们发布到维基上。我很高兴的报告大家,这种情况现在已经实际上不可能了。今年已经有超过 1500 篇文章在讨论“开源硬件”,而且我相信年底的时候还会有更多的文章发表出来。开源硬件现在已经是一个独立的领域,有一些专门报导它的杂志(比如说 《[HardwareX][3]》 和 《[Journal of Open Hardware][4]》)。在更多的领域中,数十种传统杂志现在也会定期报道最新的开源硬件的发展。
|
||||
|
||||
![Smart open source 3-D printing][5]
|
||||
|
||||
*开发智能开源硬件 3-D 打印 (Joshua Pearce, [GNU-FDL][6])*
|
||||
|
||||
即使是在十年前,从职业生涯的角度看,强调开源硬件开发在某种程度上也是一种冒险。我记得在我上一份工作的简历中,我淡化了和它相关的内容,更多的强调了我的传统工作。工业界和学术界的管理人员难以明白如果这些设计被送出去并在其他地方生产制造,你又怎样获得收益。这一切都在改变。和自由与开源的软件一样,开源硬件开发更快,而且我敢说,会优于专有开发模式。
|
||||
|
||||
![Open source recycle bot][7]
|
||||
|
||||
*(Joshua Pearce, [GNU-FDL][6])*
|
||||
|
||||
每种企业都有大量成功的 [开放硬件商业模式][8]。随着数字制造的兴起(主要是由于开源开发),开源软件和开源硬件之间的界限变得模糊。像 [FreeCAD][9] 这样的开源软件可以制作开源设计,然后在内置 CAM 中使用,在开源激光切割机、CNC 铣床或 3D 打印机上进行制造。[OpenSCAD][10] 是一个基于开源脚本的 CAD 包,尤其是它确实模糊了软件和硬件之间的界限,以至于代码和物理设计成为同义词。我们中的许多人开始公开谈论开源硬件。我把它作为我研究项目的核心主旨,首先让我自己的设备开源,然后为其他人开发开源硬件。我并不孤单。作为一个社区,我们已经获得了足够的临界质量,于 2012 年成立了 [开源硬件协会][11](OSHWA)。如今,差不多十年后,开源硬件的职业前景完全不同:已经有了数百个开源硬件硬件公司,互联网上涌现出数百万(数百万!)个开源设计,学术文献中对开源硬件的兴趣也呈指数级增长。
|
||||
|
||||
![Open source production for solar photovoltaics][12]
|
||||
|
||||
*为太阳能光伏开发开源产品。(Joshua Pearce, [GNU-FDL][6])*
|
||||
|
||||
甚至有些工作的目标就是促进更快过渡到无处不在的开源硬件。例如,<ruby>生产互联网<rt>Internet of Production</rt></ruby>(IoP)联盟在开发<ruby>开放数据标准<rt>Open Data Standards</rt></ruby>和发展这些标准的用户社区方面,现在已经为运营和通信官、数据标准社区支持经理和 DevOps 工程师提供了 [职位][13]。由于 **我在开源硬件上方面的工作**,我刚被聘为 [加拿大西部大学][14](世界排名前 1% 的大学)的终身讲席教授。该职位是与加拿大排名第一的商学院 [毅伟商学院][15] 交叉任职的。我的工作是帮助大学快速发展,抓住开源技术发展机会。说到做到,我现在正 [招聘][16] 硕士和博士水平的毕业生,包含全额奖学金和生活津贴。这些 [免费适用的可持续性技术(FAST)实验室][17] 的研究生工程职位专门用于开发开源硬件,用于太阳能光伏系统、分布式回收和紧急食品生产等一系列应用。这种工作得到了那些想要最大化 [他们的研究投资回报][18] 的资助者的更多的资助。整个国家都在朝着这个方向前进。最近的一个好例子是法国,它刚刚发布了 [第二个开放科学计划][19]。我注意到 [GrantForward][20] 上列出的,用于美国开源资金的“开源”关键字资助的数量显着增加。许多基金会已经清晰明了地收到了开源备忘录 —— 因此开源研发的机会越来越多。
|
||||
|
||||
因此,如果你还没开始的话,也许是时候考虑将开源作为一种职业,即使你是一名喜欢开发硬件的工程师。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/11/open-source-hardware-careers
|
||||
|
||||
作者:[Joshua Pearce][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[zengyi1001](https://github.com/zengyi1001)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/jmpearce
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/open-source-hardware.png?itok=vS4MBRSh (shaking hands open source hardware)
|
||||
[2]: https://www.appropedia.org/Open-source_Lab
|
||||
[3]: https://www.hardware-x.com/
|
||||
[4]: https://openhardware.metajnl.com/
|
||||
[5]: https://img.linux.net.cn/data/attachment/album/202201/23/102227iur7uut1dyyhyb2r.jpg (Smart open source 3-D printing)
|
||||
[6]: https://www.gnu.org/licenses/fdl-1.3.en.html
|
||||
[7]: https://img.linux.net.cn/data/attachment/album/202201/23/102236djy2djyy101b8g1x.jpg (Open source recycle bot)
|
||||
[8]: https://doi.org/10.5334/joh.4
|
||||
[9]: https://www.freecadweb.org/
|
||||
[10]: https://openscad.org/
|
||||
[11]: https://www.oshwa.org/
|
||||
[12]: https://img.linux.net.cn/data/attachment/album/202201/23/102243x383b7bh3884bdb8.jpg (Open source production for solar photovoltaics)
|
||||
[13]: https://www.internetofproduction.org/hiring
|
||||
[14]: https://www.uwo.ca/
|
||||
[15]: https://www.ivey.uwo.ca/
|
||||
[16]: https://www.appropedia.org/FAST_application_process
|
||||
[17]: https://www.appropedia.org/Category:FAST
|
||||
[18]: https://www.academia.edu/13799962/Return_on_Investment_for_Open_Source_Hardware_Development
|
||||
[19]: https://www.ouvrirlascience.fr/wp-content/uploads/2021/10/Second_French_Plan-for-Open-Science_web.pdf
|
||||
[20]: https://www.grantforward.com/index
|
@ -0,0 +1,172 @@
|
||||
[#]: subject: "10 holiday gift ideas for open source enthusiasts"
|
||||
[#]: via: "https://opensource.com/article/21/11/open-source-holiday-gifts"
|
||||
[#]: author: "Joshua Allen Holm https://opensource.com/users/holmja"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14227-1.html"
|
||||
|
||||
给开源爱好者的 10 个节日礼物创意
|
||||
======
|
||||
|
||||
> 从 DIY 项目到电脑再到书籍,这份清单提供了培养创造力、学习和探索的礼物创意。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/30/133910x5rav7vduwrvpudr.jpg)
|
||||
|
||||
你是否正在为你的节日购物清单上的人寻找很酷的礼物,或者为你自己的愿望清单寻找建议?如果是这样,请考虑以下十条建议。这些礼物建议中的每一个都以某种方式与开源精神相联系。从 DIY 项目到电脑再到书籍,这份清单提供了培养创造力、学习和探索的礼物建议。
|
||||
|
||||
### System76 电脑
|
||||
|
||||
![System76 Thelio][2]
|
||||
|
||||
你身边的某人需要一个新的台式机、笔记本电脑或服务器吗?[System76][4] 应该是你首先应该寻找的地方之一。想找一些轻巧的移动设备吗?轻巧的 14 英寸 [Lemur Pro][5] 笔记本电脑是一个很好的选择。需要一个有大量处理能力、内存和存储空间的台式机?各种 [Thelio][3] 台式机中就有一款是你要找的。还有很多介于两者之间的其他选择。他们的电脑配备了 Ubuntu 或 Pop!_OS,这是该公司自己的基于 Ubuntu 的 Linux 发行版,并有终身支持。System76 也支持 [维修权法案][6]。虽然不是唯一一家销售安装 Linux 系统的电脑的厂商,但他们肯定是最受欢迎的厂商之一。
|
||||
|
||||
- **价格不一**
|
||||
|
||||
### 树莓派 400 个人电脑套件
|
||||
|
||||
![Raspberry Pi 400 Kit][7]
|
||||
|
||||
树莓派几乎不需要介绍。自从 2012 年第一款树莓派风靡全球以来,树莓派一直是最受欢迎的单板计算机之一,可用于教育、业余爱好者和手工爱好者们。[树莓派 400 个人电脑套件][8] 延续了这一趋势。除了一个显示器之外,这个套件包含了人们开始使用所需的一切。花 100.00 美元,你就可以得到树莓派 400(树莓派 4 系列的一个变种,内置于一个键盘外壳中)、一只鼠标、电源、micro HDMI 转 HDMI 电缆、一张预装树莓派操作系统的 SD 卡,以及一本《树莓派初学者指南》。虽然树莓派 400 不是世界上最强大的计算机,但对于你的礼物清单上的孩子来说,树莓派 400 完全可以作为一个得当的入门计算机。
|
||||
|
||||
- **价格:100.00 美元**
|
||||
|
||||
### 树莓派 Build HAT
|
||||
|
||||
![Raspberry Pi Build HAT][9]
|
||||
|
||||
树莓派的诸多优势之一是它能够通过各种附加板进行扩展。最近推出的一款附加板 —— [树莓派 Build HAT][10],可以用树莓派来控制多达四个乐高技术电机或 [乐高教育 SPIKE][11] 产品系列的传感器。Build HAT 适用于任何带有 40 针 GPIO 接头的树莓派。你可以使用专门开发的 Python 库对项目进行编码。Build HAT 可以使用外部 8V 直流电源(如 [官方 Built HAT 电源][12])或 7.5V 电池组为自身、树莓派板以及乐高电机和传感器供电。
|
||||
|
||||
- **价格:25.00 美元(加上一个项目所需的零件和配件的费用)**
|
||||
|
||||
### CrowPi2
|
||||
|
||||
![CrowPi][13]
|
||||
|
||||
[CrowPi2][14] 是一个 STEM 学习项目集合,放在一个由树莓派驱动的笔记本电脑式的机箱里。CrowPi2 套件有三种尺寸:基本型、高级型和豪华型。基本型套件包括一些附件,但不包括树莓派。高级套装配备了一个拥有 4GB 内存的树莓派 4B,并有比基本套装更多的配件选择。豪华套装配备了最多的配件和一个拥有 8GB 内存的树莓派 4B。所有三个套件都有太空灰或银色可供选择。一个可选的移动电源可以在不插入电源插座时为 CrowPi2 提供电源。如果你想了解更多关于 CrowPi2 的信息,你可以阅读 Seth Kenlon 的 [对 CrowPi2 的点评][15]。
|
||||
|
||||
- **基本套件:339.99 美元**
|
||||
- **高级套件:469.99 美元**
|
||||
- **豪华套装:529.99 美元**
|
||||
- **可选的移动电源:19.00 美元**
|
||||
|
||||
### Keebio Quefrency 键盘
|
||||
|
||||
推荐人:John Hall
|
||||
|
||||
![Keebio Quefrency键盘][16]
|
||||
|
||||
[Keebio Quefrency 键盘][17] 对于任何想组装自己的键盘的人来说,都是一个很好的节日礼物!它是一款 65% 键盘,这可能是大多数人愿意去做的最小的键盘,因为它有 Home、PgUp、PgDn 和方向键。它是一个分体式的人体工程学键盘,但如果你难以适应分体式的键盘,你可以将两半重新组合起来。最重要的是,最新版本的 Quefrency 有热插拔插座,所以你可以在不需要焊接任何东西的情况下组装它。
|
||||
|
||||
下面是一个廉价的 Quefrency 键盘组件:
|
||||
|
||||
* [Quefrency rev4 PCBs][18] 带有热插拔插座,加上 FR4 板(左边没有宏,右边有 65%)
|
||||
* 80 + 28 美元
|
||||
* [2u 稳定器(5 个)][19]
|
||||
* 10 美元
|
||||
* [按键开关(70 个)][20]
|
||||
* 16 美元
|
||||
* [键帽][21]
|
||||
* 45 美元
|
||||
* [2.25u G20 左空格键][22] 和 [2.75u G20 右空格键][23]
|
||||
* 8 + 8 美元
|
||||
* [USB C 到 USB C 键盘连接器][24]
|
||||
* 4 美元
|
||||
* **共计 199 美元**(不包括运费)
|
||||
|
||||
正如零件清单中指出的,Keebio Quefrency rev4 需要五个稳定器:
|
||||
|
||||
1. 左 Shift 键
|
||||
2. 左空格键
|
||||
3. 右空格键
|
||||
4. 回车键
|
||||
5. 退格键
|
||||
|
||||
Keebio Quefrency rev4 目标是构建 65% 键盘,它有一个缩短的右 Shift 键,不需要稳定器。许多键帽套装,甚至是相对便宜的套装,如 Artifact Bloom 和 Glorious GPBT,包括一个缩短的右 Shift 键,适合大多数像这样的键盘。难的是找到匹配的分体式空格键键帽。但你可以从 Pimp My Keyboard 等地方买到空格键的键帽,效果很好。不幸的是,几乎不可能从不同的制造商那里得到匹配的颜色。即使你选择白色键帽和白色空格键,其中一个也可能比另一个更灰。为什么不接受这种差异呢?试着将白色和灰色的键帽与红色或蓝色的空格键配对一下。
|
||||
|
||||
### Petoi Nybble 开源机器猫
|
||||
|
||||
![Petoi Nybble][25]
|
||||
|
||||
[Petoi Nybble 开源机器猫][26] 是一个用于建造机器宠物猫的套件。该套件包含了建造该项目所需的一切,但不包括电池。Nybble 需要两块 14500 锂离子可充电 3.7V 电池,可提供约 45 分钟的游戏时间。一旦组装完成,可以使用 Arduino IDE、Python API 或 Android/iOS 应用程序对该猫进行编程/控制。查看 [Nybble 用户手册][27] 了解更多细节。
|
||||
|
||||
- **价格:249.00 美元**
|
||||
|
||||
### 《苍穹浩瀚》小说系列
|
||||
|
||||
![《苍穹浩瀚》合集][28]
|
||||
|
||||
James S.A. Corey 的《<ruby>[苍穹浩瀚][29]<rt>Expanse</rt></ruby>》系列的最后一部小说正好在假日送礼季节推出。定于 11 月 30 日发行的《<ruby>[利维坦瀑布][30]<rt>Leviathan Falls</rt></ruby>》将结束这个史诗般的九部科幻小说系列的主要叙事,探索人类在太空的未来。按顺序,该系列的九本书是《<ruby>利维坦觉醒<rt>Leviathan Wakes</rt></ruby>》、《<ruby>卡利班之战<rt>Caliban's War</rt></ruby>》、《<ruby>阿巴顿之门<rt>Abaddon's Gate</rt></ruby>》、《<ruby>西波拉燃烧<rt>Cibola Burn</rt></ruby>》、《<ruby>复仇游戏<rt>Nemesis Games</rt></ruby>》、《<ruby>巴比伦的灰烬<rt>Babylon's Ashes</rt></ruby>》、《<ruby>波斯波利斯的崛起<rt>Persepolis Rising</rt></ruby>》、《<ruby>提亚马特之怒<rt>Tiamat's Wrath</rt></ruby>》和《<ruby>利维坦瀑布<rt>Leviathan Falls</rt></ruby>》。明年还将出版一本短篇小说和长篇小说集。这些故事和长篇小说中的大部分已经有了电子书格式,但这是第一次的印刷合集。给你身边的科幻小说读者购买该系列的第一本书,让他们开始阅读,或者给他们购买整个系列。
|
||||
|
||||
- **第一至第六本:17.99 美元(平装本)**
|
||||
- **第七本和第八本:18.99 美元(平装本)**
|
||||
- **第九本:30.00 美元(精装本)**
|
||||
|
||||
### 书籍
|
||||
|
||||
如果你正在寻找书籍推荐,而《苍穹浩瀚》的推荐并不符合你的需求,可以考虑 [这份 2021 年夏季阅读清单][31] 中的书籍。这份清单包含八本适合各种阅读口味的书籍推荐。从《<ruby>贝奥武夫<rt>Beowulf</rt></ruby>》的现代翻译到关于技术的非小说类书籍,那里应该有适合你生活中的读者的东西。如果 2021 年夏季阅读清单中没有你要找的东西,这篇文章还包含了以前所有夏季阅读清单的链接,其中提供了十多份建议清单。
|
||||
|
||||
- **价格不一**
|
||||
|
||||
### 贴纸
|
||||
|
||||
![终极贴纸包][32]
|
||||
|
||||
大流行期间的虚拟会议的一个缺点是,你无法带走从各个供应商摊位上收集的贴纸。对于那些喜欢用贴纸装饰笔记本电脑的人来说,这可能意味着他们最新的笔记本电脑目前还没有通常的装饰品。如果这听起来像你生活中的某个人,考虑给他们买一个来自 Sticker Mule 的 [Unixstickers 包][33]。该包有三种不同的尺寸:专业版,包含十张贴纸;精英版,包含专业版中的所有贴纸,再加十张贴纸;终极版,包含精英版中的所有内容,再加十张贴纸。这些贴纸涵盖了许多开源项目,使这些捆绑包成为参观供应商展位和亲临会议的贴纸交换台的下一个最佳选择。
|
||||
|
||||
- **专业包:1.00 美元**
|
||||
- **精英包:19.00 美元**
|
||||
- **终极包:24.00 美元**
|
||||
|
||||
### 向开源组织慈善捐赠
|
||||
|
||||
如果你购物清单上的人已经拥有了一切(或者不想要任何有形的礼物),可以考虑以他们的名义向开源项目进行慈善捐赠。这个 [开源组织][34] 列表中有很多组织供你选择。你、以其名义捐款的人和收到你捐款的组织都会很高兴,你的礼物有助于使开源变得更好。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/11/open-source-holiday-gifts
|
||||
|
||||
作者:[Joshua Allen Holm][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/holmja
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/OSDC_gift_giveaway_box_520x292.png?itok=w1YQhNH1 (Gift box opens with colors coming out)
|
||||
[2]: https://opensource.com/sites/default/files/styles/medium/public/uploads/system76_thelio.png?itok=E6HBZoMA (System76 Thelio)
|
||||
[3]: https://system76.com/desktops/
|
||||
[4]: https://system76.com
|
||||
[5]: https://system76.com/laptops/lemur
|
||||
[6]: https://blog.system76.com/post/646726872371200000/carl-testimony-hb21-1199mp3
|
||||
[7]: https://opensource.com/sites/default/files/styles/medium/public/uploads/raspberry_pi_400_kit.jpg?itok=AnVA_OP9 (Raspberry Pi 400 Kit)
|
||||
[8]: https://www.raspberrypi.com/products/raspberry-pi-400/
|
||||
[9]: https://opensource.com/sites/default/files/styles/medium/public/uploads/raspberry_pi_build_hat.png?itok=8YVyNM-c (Raspberry Pi Build HAT)
|
||||
[10]: https://www.raspberrypi.com/products/build-hat/
|
||||
[11]: https://education.lego.com/
|
||||
[12]: https://www.raspberrypi.com/products/build-hat-power-supply/
|
||||
[13]: https://opensource.com/sites/default/files/styles/medium/public/uploads/crowpi2.png?itok=hJDaPaaz (CrowPi)
|
||||
[14]: https://www.crowpi.cc/
|
||||
[15]: https://opensource.com/article/21/9/raspberry-pi-crowpi2
|
||||
[16]: https://opensource.com/sites/default/files/styles/medium/public/uploads/keebio_quefrency_keyboard_pcb.png?itok=M0JVlcRK (Keebio Quefrency Keyboard)
|
||||
[17]: https://keeb.io/collections/quefrency-split-staggered-65-keyboard
|
||||
[18]: https://keeb.io/collections/quefrency-split-staggered-65-keyboard/products/quefrency-rev-4-65-split-staggered-keyboard
|
||||
[19]: https://keeb.io/collections/diy-parts/products/cherry-mx-stabilizer?variant=43449871046
|
||||
[20]: https://divinikey.com/collections/linear-switches/products/gateron-milky-yellow-linear-switches?variant=32193385201729
|
||||
[21]: https://drop.com/buy/artifact-bloom-series-keycap-set-vintage
|
||||
[22]: https://pimpmykeyboard.com/g20-2-25-space-pack-of-4/
|
||||
[23]: https://pimpmykeyboard.com/g20-2-75-space-pack-of-4/
|
||||
[24]: https://keeb.io/products/usb-c-to-usb-c-cable?variant=32313985728606
|
||||
[25]: https://opensource.com/sites/default/files/styles/medium/public/uploads/petoi_nybble_open_source_robotic_cat.png?itok=zhvvBReE (Petoi Nybble)
|
||||
[26]: https://www.petoi.com/pages/petoi-nybble-overview
|
||||
[27]: https://nybble.petoi.com/
|
||||
[28]: https://opensource.com/sites/default/files/styles/medium/public/uploads/the_expanse_books.jpg?itok=FkuizWic (The Expanse books)
|
||||
[29]: https://www.jamessacorey.com/writing-type/books/
|
||||
[30]: https://www.jamessacorey.com/books/leviathan-falls/
|
||||
[31]: https://opensource.com/article/21/6/2021-opensourcecom-summer-reading-list
|
||||
[32]: https://opensource.com/sites/default/files/uploads/ultimate_sticker_pack.png (Ultimate sticker pack)
|
||||
[33]: https://www.stickermule.com/unixstickers
|
||||
[34]: https://opensource.com/resources/organizations
|
138
published/202201/20211201 Edit audio on Linux with Audacity.md
Normal file
138
published/202201/20211201 Edit audio on Linux with Audacity.md
Normal file
@ -0,0 +1,138 @@
|
||||
[#]: subject: "Edit audio on Linux with Audacity"
|
||||
[#]: via: "https://opensource.com/article/21/12/audacity-linux-creative-app"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14163-1.html"
|
||||
|
||||
在 Linux 上用 Audacity 编辑音频
|
||||
======
|
||||
|
||||
> Audacity 是开源软件世界中的一个经典的强大工具,可以用于录音、编辑等对声音进行操作。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/09/130245b7jozrrrc7gorgae.jpg)
|
||||
|
||||
Audacity 声音编辑器是填补了一个似乎没有人意识到的空白的开源应用程序。它最初是在卡内基梅隆大学开发的,当时很多人还认为电脑只是用来办公和学习的,要进行严肃的多媒体工作需要特殊的 DSP 外围设备。Audacity 认识到,普通计算机用户偶尔也需要编辑音频。在此后的 20 年里,Audacity 团队一直为录音和清理声音打造这个开源的应用程序。
|
||||
|
||||
我经常使用 Audacity,作为一个受过培训的编辑,我已经习惯了在我的应用程序中使用重要的、通常是单键的键盘快捷键。通过围绕单个字母建立快捷键,你可以一只手放在鼠标上,一只手放在键盘上,所以选择一个工具或一个重要功能和点击鼠标之间的延迟仅仅是几毫秒而已。在本文中,我将专门给出我在 Audacity 中使用的键盘快捷方式,如果你想优化自己的设置可以参考。
|
||||
|
||||
### 在 Linux 上安装 Audacity
|
||||
|
||||
在大多数 Linux 发行版上,Audacity 都可以从你的软件包管理器中获得。在 Fedora、Mageia 和类似的发行版上:
|
||||
|
||||
```
|
||||
$ sudo dnf install audacity
|
||||
```
|
||||
|
||||
在 Elementary、Mint 和其他基于 Debian 的发行版上:
|
||||
|
||||
```
|
||||
$ sudo apt install audacity
|
||||
```
|
||||
|
||||
然而,我是以 [Flatpak][2] 方式来使用 Audacity 的。
|
||||
|
||||
在 Windows 或 macOS 上,可以从 [Audacity 网站][3] 下载一个 Audacity 安装程序。
|
||||
|
||||
它最近有一个叫做 [Tenacity][4] 的复刻版本,是另外的开发者团队准备延续 Audacity 的传统而开发的。在写这篇文章的时候,两者基本上是相同的应用程序,所以这篇文章同样适用于两者。以后是否在功能上有分歧,还有待观察。
|
||||
|
||||
安装后,从你的应用程序或活动菜单中启动该应用程序。
|
||||
|
||||
### 在 Audacity 中设置输入
|
||||
|
||||
首先,你必须设置你的音频 *输入*,以便 Audacity 接收你使用的麦克风或音频接口的信号。你选择什么输入取决于你的设置和你拥有的音频外围设备。USB 麦克风通常被标为 <ruby>麦克风<rt> Microphone</rt></ruby>,但带有 1/8" 输入插孔的麦克风可能被标为 <ruby>线路输入<rt>Line in</rt></ruby>。你可以选择不同输入:
|
||||
|
||||
#### Pulse Audio 音频服务器
|
||||
|
||||
Linux 使用<ruby>高级 Linux 声音架构<rt>Advanced Linux Sound Architecture</rt></ruby>(ALSA)作为其声音的后端,而 macOS 和 Windows 则使用自己的封闭框架。在 Linux 上,你可以将 Pulse Audio 音频服务器设置为你的输入源,将 Audacity 导向 _一个_ 虚拟接口(Pulse),因此你可以从系统设置中选择声音输入。这是我的首选方法,因为它将所有控制集中在一个方便的控制面板上。在一个应用程序中选择一个麦克风,却发现麦克风在其他地方被静音的日子已经一去不复返了。
|
||||
|
||||
![声音输入][5]
|
||||
|
||||
#### 设备访问
|
||||
|
||||
如果你的发行版或操作系统没有使用 Pulse Audio 音频服务器,或者由于某种原因你喜欢直接访问声音设备,你可以从下拉菜单中选择一个设备。这需要了解你的系统是如何列出声音设备的,这有时候并不很好找。台式机可能有几个输入源,有些在机箱的后面,有些在前面的面板上。笔记本电脑通常输入方式较少,但你可能在网络摄像头附近有一个麦克风,如果你使用的是外部麦克风,可能还有一个。
|
||||
|
||||
### 用 Audacity 录制音频
|
||||
|
||||
选中你的输入后,按“<ruby>录音<rt>Record</rt></ruby>”按钮(有红点的按钮)。
|
||||
|
||||
![录制音频][7]
|
||||
|
||||
如果你是对着麦克风录音,你所要做的就是开始说话。如果你从,比如说,[黑胶唱片机][8] 录制输入,那么你必须启动它。不管是什么,只要 Audacity 处于录音模式,任何发送到你选择的输入的信号都会被写入 Audacity 并在你的屏幕上呈现为波形。
|
||||
|
||||
**我的快捷方式:** 我使用 `R` 键来开始录音。默认情况下,按下空格键停止录音(也可以回放录音)。
|
||||
|
||||
### 编辑音频
|
||||
|
||||
录音很少完全按计划进行。也许你过早地开始录音,不得不忍受几秒钟的黑胶静音(它就像静音,但更嘈杂),或者你发现你的语气停顿都是 “呃”、“嗯”或其他声调,或者你一开始就录制错误了。Audacity 首先是一个波形编辑器,这意味着你可以在最终的录音中剪掉你不想要的声音,就像你在文字处理器中输入的文字一样容易编辑。
|
||||
|
||||
### 编辑过零点的声音
|
||||
|
||||
Audacity 的主要编辑工具是“<ruby>选择工具<rt>Selection Tool</rt></ruby>”。它是你在文字处理程序中看到的熟悉的“工字形”光标,它的功能在这里也是一样。你可以点击并拖动这个光标,穿过声音的一个区域,然后你可以复制、粘贴、剪切、删除或直接播放这个区域。
|
||||
|
||||
**我的快捷键:** 我用 `I` 键来激活“<ruby>选择工具<rt>Selection Tool</rt></ruby>”,因为光标看起来像字母 “I”。
|
||||
|
||||
在文字处理器中,你可以非常清楚地看到每个字母的结尾和开头。你不可能不小心选择和删除一个字母的一半。然而,在现代应用程序中,声音的 “分辨率”(称为 _采样率_)非常好,所以人眼很难在音频波中找到一个清晰的断点。Audacity 可以调整你的选择,使你选择的区域落在所谓的 <ruby>[过零点][9]<rt>zero crossing</rt></ruby>,这可以避免在你做切割的地方出现微妙但明显的突兀现象。
|
||||
|
||||
![过零点][10]
|
||||
|
||||
在你做出选择后,进入“<ruby>选择<rt> Select</rt></ruby>”菜单,选择 “<ruby>在过零点<rt>At Zero Crossings</rt></ruby>”。
|
||||
|
||||
**我的快捷键:** 我使用 `Z` 键来调整选区到过零点,使用 `X` 键来删除一个区域(它使我不必将手一直移到 `Del` 或 `Backspace` )。
|
||||
|
||||
### 腾出空间
|
||||
|
||||
编辑的好处是,你的最终产品不一定要与你录制的内容一致。我曾经录制过一些讲座,甚至录制过一些读物的剧本,但最终因为某种原因而偏离了方向,或者遗漏了一部分重要的信息,后来在发布前又重新编排或添加了全新的音频。
|
||||
|
||||
移动所选的音频与删除类似,但不是删除音频,而是复制和粘贴所选内容,就像你在文字处理器中做的那样 —— 使用标准的键盘快捷键复制或剪切,重新定位你的光标,然后粘贴。不过,为插入的内容腾出空间,需要在音频时间线上留出空位,这样你就可以录制额外的音频来填补你所创造的空白。为此,你可以使用“<ruby>选择工具<rt>Selection Tool</rt></ruby>”和“<ruby>时间偏移工具<rt>Time Shift Tool</rt></ruby>”。
|
||||
|
||||
要在音频中创建一个空隙,将你的“<ruby>选择工具<rt>Selection Tool</rt></ruby>”的光标放在你想添加空隙的地方。导航到“<ruby>编辑<rt>Edit</rt></ruby>”菜单,选择“<ruby>剪辑边界<rt>Clip Boundaries</rt></ruby>”子菜单,然后选择“<ruby>分割<rt>Split</rt></ruby>”。这将在你的选择点上分割你的音频。
|
||||
|
||||
激活顶部工具栏中的“<ruby>时间偏移工具<rt>Time Shift Tool</rt></ruby>”(图标是两个连接的箭头,分别指向左边和右边),点击并拖动分割后的音频的右半部分,创建一个间隙。
|
||||
|
||||
![空隙][11]
|
||||
|
||||
**我的快捷方式:** 我用 `K` 来分割,用 `T` 来激活“<ruby>时间偏移工具<rt>Time Shift Tool</rt></ruby>”。
|
||||
|
||||
### 导出音频
|
||||
|
||||
当你对你的音频感到满意时,你可以导出它,这样你就可以与他人分享。Audacity 可以选择它能够导出的格式,并且它能够将其输出到像 [ffmpeg][12] 这样的工具,以获得比你可能永远需要的更多格式。
|
||||
|
||||
我更喜欢用 FLAC 格式输出音频,这种音频格式有点像 WAV,只是它是无损压缩的。它只占用一小部分空间,而没有任何质量上的损失。要尝试它,去“<ruby>文件<rt>File</rt></ruby>”菜单,选择“<ruby>导出<rt>Export</rt></ruby>”子菜单,然后选择“<ruby>导出音频<rt>Export Audio</rt></ruby>”。有了 FLAC 文件作为你的 [黄金镜像][13],你可以用 SoundConverter 把你的文件转换成任何数量的传输目标的最佳格式 —— 用于浏览器的 Ogg Vorbis 或 Opus 或 Webm,用于苹果设备的 M4A 文件,也许还有用于传统系统的 MP3。
|
||||
|
||||
如果你只是想从 Audacity 快速简单地导出,简单的选择是 Ogg Vorbis。这是一种开源的文件格式,可以在大多数网页浏览器(Firefox、Chromium、Chrome、Android 和 Edge)和 [如 VLC、mpv 等媒体播放器][14] 播放。
|
||||
|
||||
### 探索 Audacity
|
||||
|
||||
Audacity 是开源软件世界中的一个经典动力工具。基本的录音和编辑仅仅是个开始。你可以添加效果、[过滤掉(一些)噪音][15]、调整速度、改变音高等等。无论你是在学校录制讲座、混合鼓循环、为视频游戏拼接声音,还是只是在探索音频世界,都可以去启动 Audacity,发挥创意!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/audacity-linux-creative-app
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[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/colorful_sound_wave.png?itok=jlUJG0bM (Colorful sound wave graph)
|
||||
[2]: https://opensource.com/article/21/11/how-install-flatpak-linux
|
||||
[3]: https://www.audacityteam.org/
|
||||
[4]: https://github.com/tenacityteam/tenacity
|
||||
[5]: https://opensource.com/sites/default/files/uploads/gnome-sound-setting.png (Sound input)
|
||||
[6]: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
[7]: https://opensource.com/sites/default/files/uploads/audacity-input.png (Recording audio)
|
||||
[8]: https://opensource.com/article/18/1/audacity-digitize-records
|
||||
[9]: https://en.wikipedia.org/wiki/Zero_crossing
|
||||
[10]: https://opensource.com/sites/default/files/uploads/audacity-zero-crossing.jpg (Zero crossing)
|
||||
[11]: https://opensource.com/sites/default/files/uploads/audacity-split.jpg (Spacer)
|
||||
[12]: https://opensource.com/article/21/11/linux-line-commands-reclaim-space-converting-files#audio
|
||||
[13]: https://opensource.com/article/19/7/what-golden-image
|
||||
[14]: https://opensource.com/article/21/2/linux-media-players
|
||||
[15]: https://opensource.com/life/14/10/how-clean-digital-recordings-using-audacity
|
@ -0,0 +1,73 @@
|
||||
[#]: subject: "What Desktop Linux Needs to Succeed in the Mainstream"
|
||||
[#]: via: "https://news.itsfoss.com/what-desktop-linux-needs-to-succeed-in-the-mainstream/"
|
||||
[#]: author: "Community https://news.itsfoss.com/author/team/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14189-1.html"
|
||||
|
||||
桌面 Linux 需要什么才能在主流中获得成功?
|
||||
======
|
||||
|
||||
> 这是 Linux 走向大众最重要的一件事。
|
||||
|
||||
![](https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/penguin-laptop.png?w=1200&ssl=1)
|
||||
|
||||
你可能看过 [最近 Linus Tech Tips 关于切换到 Linux 的视频][1],以及 [他对 KDE 软件的一些抱怨的那个视频][2]。对于那些关注此事的人,我想让你们知道,我们(KDE)正在努力修复 Linus 提出的问题,你们可以在 [这里][3] 跟踪我们的进展。值得庆幸的是,大部分的问题都相当小,应该很容易解决。
|
||||
|
||||
关于桌面 Linux 需要什么才能成为主流的问题。[Sway][4] 开发者 [Drew DeVault 针对该视频发表了一篇文章][5],而这篇博文是我的版本。Drew 强调了可访问性,我也同意,但结论略有不同。
|
||||
|
||||
### 桌面 Linux 需要预装在零售硬件上才能在主流市场取得成功
|
||||
|
||||
就是这样。
|
||||
|
||||
请允许我解释一下。
|
||||
|
||||
人们经常被功能和可用性所困扰,这些都很重要,但它们只是达到目的的手段,本身并不是目的。如果人们根本不能得到它,质量就毫无意义。而如果没有可访问的发行版,人们就无法得到它。高质量的 Linux 发行版还不够;它们需要被预装在你可以在主流零售店买到的硬件产品上。“主流人群”会购买他们可以触摸和拿起的产品;如果在主流商店找不到它,它就不存在。
|
||||
|
||||
想一想,**为什么普通人都使用 Windows 或 macOS**?因为他们购买的实体电脑包含了它。iOS 或 Android 呢?它被默认装在了他们的实体智能手机上。对于“主流人群”来说,不存在用一个新的操作系统替换设备的操作系统的想法。只有 [“三点”用户][6] 才会这么做,而他们只占市场的 5% 左右。如果获得你的操作系统的唯一途径是自己安装,那么你就没有机会在主流市场取得成功。
|
||||
|
||||
![](https://pointieststick.files.wordpress.com/2021/11/computers-skill.jpg?w=1085)
|
||||
|
||||
至于功能,人们通常只使用可用功能的很小的一部分。在可用性方面,大多数用户是 [记住他们的软件如何使用而不是理解它][7] —— 如果你真的需要,你可以记住任何东西。一个更好的用户界面会有所帮助,但是对于那些记忆这些的人来说并不是必需的,而它主要有利于那些能够识别模式,并欣赏逻辑、一致性和良好设计的高级用户(市场上 30% 的“二点及以上”人群)。因此,这些东西本身就不够好。
|
||||
|
||||
但这并不意味着我们应该忘记功能和可用性!一点也不。但是如果我们的目标是“走向主流”,我们就必须了解真正的受众:**是硬件供应商,而不是终端用户**。我们的目标是让软件产品有足够的吸引力,以便在供应商选购时被他们选中,因为它基本上就是这样做的。像苹果这样为知名产品定制自上而下的硬件和软件的公司很少。大多数公司都建立在第三方软件之上,这些软件需要他们内部软件团队进行最少的整合和定制工作。如果你的软件不能胜任,他们会转向下一个选择。因此,当一些硬件供应商有需求时,你的软件最好已经准备好了!
|
||||
|
||||
而硬件供应商需要什么?
|
||||
|
||||
* **灵活性**。你的软件必须容易适应他们的任何类型的设备,而不需要大量的定制工程,他们将在产品的生命周期中负责支持。
|
||||
* **能使他们的设备看起来不错的功能**。对其物理硬件特性的支持、良好的性能、令人愉快的用户界面……人们购买它的理由基本上是这些。
|
||||
* **稳定性**。不能崩溃并将用户抛弃在命令行终端提示符下。必须可以实际工作。不能让人感觉像一个业余的科学展览会项目。
|
||||
* **可用性要足够好,以减少支持成本**。当出现问题时,“主流人群”会联系他们的硬件供应商。可用性需要足够好,以便尽可能少地发生这种情况。
|
||||
|
||||
它不需要完美。它只需要做这些事情。这就是 Windows 在 90 年代征服了个人电脑市场的方式,尽管它很糟糕!而我们的东西要好得多!
|
||||
|
||||
我看到有证据表明 KDE 已经是这样了。Pine 在 [PinePhone][8] 和 [PineBook Pro][9] 上分别为 Manjaro 提供了 Plasma 的移动版和桌面版。Valve 也为 [Steam Deck][10] 选择了 Plasma 的桌面版,在他们的新版 SteamOS 中取代了 GNOME。我认为 KDE 软件定位良好,并且一直在变得更好。因此,让我们继续加倍努力提供硬件供应商销售其出色产品所需的东西。
|
||||
|
||||
原文由 KDE 开发者 Nate Graham 发表在他的 [博客 PointiestStick][11] 中。 本文经许可后转载。所表达的观点代表作者自己,可能不能反映我们的观点。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/what-desktop-linux-needs-to-succeed-in-the-mainstream/
|
||||
|
||||
作者:[Nate Graham][11]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/team/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://linux.cn/article-14053-1.html
|
||||
[2]: https://www.youtube.com/watch?v=TtsglXhbxno&list=PL8mG-RkN2uTyhe6fxWpnsHv53Y1I-K3yu&index=3
|
||||
[3]: https://invent.kde.org/teams/usability/issue-board/-/boards/7723
|
||||
[4]: https://swaywm.org/
|
||||
[5]: https://drewdevault.com/2021/12/05/What-desktop-Linux-needs.html
|
||||
[6]: https://pointieststick.com/2021/11/29/who-is-the-target-user
|
||||
[7]: https://pointieststick.com/2021/11/30/more-about-those-zero-dot-users/
|
||||
[8]: https://www.pine64.org/pinephone/
|
||||
[9]: https://www.pine64.org/pinebook-pro/
|
||||
[10]: https://www.steamdeck.com/
|
||||
[11]: https://pointieststick.com/2021/12/09/what-desktop-linux-needs-to-succeed-in-the-mainstream/
|
@ -0,0 +1,140 @@
|
||||
[#]: subject: "Open source file sharing with this Linux tool"
|
||||
[#]: via: "https://opensource.com/article/21/12/file-sharing-linux-samba"
|
||||
[#]: author: "Don Watkins https://opensource.com/users/don-watkins"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14145-1.html"
|
||||
|
||||
用 Samba 跨平台共享文件
|
||||
======
|
||||
|
||||
> Samba 是一种灵活的文件共享工具,它将你可能在组织中运行的所有不同平台结合在一起。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/04/092708dsjqu1fbfjjhee1j.jpg)
|
||||
|
||||
在我接触 Linux 的早期,我是纽约州一个小型学前教育学区的技术总监。我们的技术预算总是捉襟见肘。我们是一个 Windows 2000 活动目录域,但我们的中央服务器磁盘空间有限,而且没有教师的主目录。此外,我们经历过十几次员工电脑硬盘故障。
|
||||
|
||||
我正在寻找一种方法,以最小的成本保存员工的工作。这时我发现了 Samba。在那之前,我一直将 Linux 用于内容过滤,不知道我们的 Windows 工作站可以连接到服务器并保存文件备份。
|
||||
|
||||
[Samba 项目][2] 自 1992 年以来一直存在。当我开始试验这个项目的时候,这个项目已经有 10 年历史了,我对如何配置它一无所知。我买了一本书并阅读了如何实现它,然后我从我们的电脑柜中取出一台旧电脑,购买了一个 300G 的希捷 IDE 驱动器,安装了 Linux,并配置了 Samba。我使用了一个简单的配置,并且它成功了。在向我们的一个 IT 助理展示后,我们部署了这个解决方案。硬盘故障的问题继续存在,但我们的员工不再需要担心失去他们所有的辛苦工作。
|
||||
|
||||
Samba 采用 [GPL][3] 许可证,并在大多数 Linux 发行版上广泛使用。Samba 有很好的 [文档][4],Fedora 用户可以查阅这份在 [Fedora 上配置 Samba][5] 的文档。
|
||||
|
||||
### 在 Linux 上安装 Samba
|
||||
|
||||
你可以使用你的发行版的包管理器来安装 Samba。
|
||||
|
||||
在 Fedora、CentOS、RHEL、Mageia 和类似的系统上:
|
||||
|
||||
```
|
||||
$ sudo dnf install samba
|
||||
```
|
||||
|
||||
在 Debian, Linux Mint 和类似系统上:
|
||||
|
||||
```
|
||||
$ sudo apt install samba
|
||||
```
|
||||
|
||||
### 用 Samba 创建一个共享文件夹
|
||||
|
||||
创建一个简单的共享文件夹只需要五个步骤。
|
||||
|
||||
1、在你的 Linux 服务器上创建一个你希望用户能够保存共享文件的目录。这个目录可以是服务器上的任何地方:在 `/home` 或 `/opt` 或任何最适合你的地方。我使用我的主目录,我把共享目录称为 `sambashare`。
|
||||
|
||||
```
|
||||
$ mkdir /home/don/sambashare
|
||||
```
|
||||
|
||||
在 Fedora 和其他运行 SELinux 的发行版上,你必须对这个共享目录给予安全许可:
|
||||
|
||||
```
|
||||
$ sudo semanage fcontext --add --type "samba_share_t" ~/sambashare
|
||||
$ sudo restorecon -R ~/sambashare
|
||||
```
|
||||
|
||||
2、用 Nano 或你选择的文本编辑器编辑 Samba 配置文件。
|
||||
|
||||
```
|
||||
$ sudo nano /etc/samba/smb.conf
|
||||
```
|
||||
|
||||
在 `smb.conf` 文件的底部添加以下内容,用你自己的共享目录的位置替换我例子中的 `/home/don/sambashare` 路径:
|
||||
|
||||
```
|
||||
[sambashare]
|
||||
comment = Samba on Linux
|
||||
path = /home/don/sambashare
|
||||
read only = no
|
||||
browsable = yes
|
||||
```
|
||||
|
||||
如果你使用 Nano,按 `Ctrl-O`,然后按**回车**来保存,按 `Ctrl-X` 退出。
|
||||
|
||||
3、启动或重启 Samba 服务,这取决于你的发行版。
|
||||
|
||||
在 Fedora 和类似的系统中,没有明确的许可,服务是不会启动的,所以现在就可以启动 Samba,并在启动时启动:
|
||||
|
||||
```
|
||||
$ sudo systemctl enable –now smb.conf
|
||||
```
|
||||
|
||||
在 Debian 和类似系统中,Samba 默认在安装后启动,所以你必须现在就重启它:
|
||||
|
||||
```
|
||||
$ sudo service smbd restart
|
||||
```
|
||||
|
||||
4、更新你的防火墙规则,允许访问你的 Samba 共享。该如何做取决于你的系统使用什么防火墙。
|
||||
|
||||
如果你正在运行 firewalld:
|
||||
|
||||
```
|
||||
$ sudo firewall-cmd --permanent --add-service=samba
|
||||
$ sudo firewall-cmd --reload
|
||||
```
|
||||
|
||||
如果你正在运行 UFW:
|
||||
|
||||
```
|
||||
$ sudo ufw allow samba
|
||||
```
|
||||
|
||||
5、现在你需要设置一个密码来访问你的 Samba 共享。这个用户名(在我的例子中是 don)必须属于你系统中的一个账户。
|
||||
|
||||
```
|
||||
$ sudo smbpasswd -a don
|
||||
```
|
||||
|
||||
我在每个 Samba 共享中都放置了一个简单的 `README` 文件,这样用户就会明白这个目录位于服务器上,他们必须在 VPN 上才能从家里访问它等等。
|
||||
|
||||
### 从 Windows 和 Mac 访问 Samba
|
||||
|
||||
在 Windows 电脑上,打开文件管理器(Windows Explorer),访问路径 `ip-address-of-the-Linux-computer/sambashare`。系统会提示你输入 Samba 共享密码,然后 `sambashare` 目录中的文件会出现在你的文件管理器窗口中,就像它们存在于你的桌面上一样。你可以开始在网络上的这个新共享目录中存储你的文件。
|
||||
|
||||
在 macOS 电脑上,进入 Finder 菜单,选择 Go。在出现的对话框中,输入 `smb://ip-address/sambashare`,并按照提示输入 Samba 密码。
|
||||
|
||||
### Samba 意味着共享
|
||||
|
||||
Samba 使共享文件变得容易。你可以在 Samba 中使用许多其他方案来创建共享位置,包括用户组的公共文件夹,只接受传入文件的收件箱,以及其他你可能需要的东西。它是开源的、灵活的,而且它把你可能在你的办公室里运行的所有不同的平台联合起来。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/file-sharing-linux-samba
|
||||
|
||||
作者:[Don Watkins][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/don-watkins
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/files_documents_paper_folder.png?itok=eIJWac15 (Files in a folder)
|
||||
[2]: https://www.samba.org/
|
||||
[3]: https://www.samba.org/samba/docs/GPL.html
|
||||
[4]: https://www.samba.org/samba/docs/
|
||||
[5]: https://docs.fedoraproject.org/en-US/quick-docs/samba/
|
@ -0,0 +1,85 @@
|
||||
[#]: subject: "10 reasons to love Linux in 2021"
|
||||
[#]: via: "https://opensource.com/article/21/12/reasons-love-linux"
|
||||
[#]: author: "Joshua Allen Holm https://opensource.com/users/holmja"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14207-1.html"
|
||||
|
||||
2021 总结:Linux 方面的 10 篇好文章
|
||||
======
|
||||
|
||||
> 以下是 10 篇最受欢迎的 Linux 文章。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/23/171708xzs53zvp9occmgcy.jpg)
|
||||
|
||||
2021 年,我们发表了远超 [150 篇的 Linux 方面的文章][2]。从桌面 Linux 用户小工具的文章到将 Linux 作为服务器操作系统的教程,以及介乎于两者之间的各种场景,这些文章已经涵盖了 Linux 生态系统的许多方面。所有这些文章都值得你花时间去阅读,但你可以从今年发表的这十篇好文章开始阅读。
|
||||
|
||||
### 3 个开源工具,使 Linux 成为理想的工作站
|
||||
|
||||
在这篇文章中,Seth Kenlon 介绍了 LibreOffice、AbiWord、Gnumeric 和 Pandoc,涵盖了 [使 Linux 成为理想工作站的工具][3]。他解释了在使用 Linux 作为桌面操作系统时,这些应用程序如何使你的工作效率提高。文章探讨了一些高级功能,如 LibreOffice 的无头模式,并提供了如何充分利用每个应用程序的小技巧。
|
||||
|
||||
### 为什么我在 Linux 上使用 exa 而不是 ls
|
||||
|
||||
`ls` 命令是 Linux 中最常用的终端命令之一,但你知道它有一个现代的替代品,提供了许多有益的改进吗?Sudeshna Sur 的 [文章][4] 介绍了 `exa` 命令以及它相比 `ls` 的优势,讨论了 `exa` 如何跟踪添加到 Git 仓库的新文件、显示目录和文件树等等。
|
||||
|
||||
### 我喜欢在 Linux 上编码的 5 个原因
|
||||
|
||||
像许多人一样,Seth Kenlon 喜欢在 Linux 上编码。在这篇文章中,他分享了这样做的 [五个原因][5]。他喜欢在 Linux 上编码,因为它建立在逻辑的基础上,可以让你欣赏代码之间的关联,提供了源代码,并提供直接访问外设和抽象层的能力,使编写代码更容易。
|
||||
|
||||
### 在 Linux 上使用可启动的 USB 驱动器来拯救 Windows 用户
|
||||
|
||||
即使你喜欢 Linux,但有时你可能需要修复一台 Windows 电脑或为某人安装 Windows。在 Linux 上从 Windows ISO 创建一个可启动的 U 盘,并不像为 Linux 发行版制作一个可启动的 U 盘那样简单明了。在这个教程中,Don Watkins 演示了 [如何使用 WoeUSB][6],这个工具可以为用户处理这个过程中所有棘手的部分。
|
||||
|
||||
### 4 个用于运行 Linux 服务器的开源工具
|
||||
|
||||
当使用 Linux 作为服务器操作系统时,Seth Kenlon 推荐了这 [四个开源工具][7]: Samba、Snapdrop、VLC 和 PulseAudio。正如 Seth 在他的文章中所指出的,这四个工具使得用 Linux 进行文件共享和流媒体变得很容易。
|
||||
|
||||
### 3 个你需要尝试的 Linux 终端
|
||||
|
||||
Linux 有许多不同的终端模拟器。Seth Kenlon 的这篇文章推荐了 [3 个 Linux 终端][8],值得一试:Xfce 终端、rxvt-unicode 和 Konsole。他提供了每一个的简要概述,并指出了每个终端模拟器的优势。
|
||||
|
||||
### 在你的 Linux 家庭实验室中运行 Kubernetes 的另外 5 个理由
|
||||
|
||||
在 Seth Kenlon 2020 年的文章《[在树莓派家庭实验室上运行 Kubernetes 的五个理由][9]》的续篇中,他给出了 [在 Linux 家庭实验室中运行 Kubernetes 的另外五个理由][10]:Kubernetes 建立在Linux 的基础上,它很灵活,学习它可以为你提供个人发展,它使容器变得有意义,而且它有利于云原生开发。他还提供了一个额外的理由:因为它很有趣。
|
||||
|
||||
### 6 个开源工具和技巧,为初学者保障 Linux 服务器的安全
|
||||
|
||||
Sahana Sreeram 提供了 [保证 Linux 服务器安全的六个优秀技巧][11]。这个教程着眼于更新软件、启用防火墙、加强密码保护、禁用非必要的服务、检查监听端口,以及扫描恶意软件。Sahana 提供的技巧可以帮助 Linux 初学者学习保持 Linux 服务器安全的基本知识。
|
||||
|
||||
### Linux 如何使一所学校为大流行病做好准备
|
||||
|
||||
Don Watkins 采访了威斯康星州莫诺纳市 [圣心玛利亚学校][12] 的教师 Robert Maynord,介绍了该校 [将他们的电脑换成 Linux][13] 的情况。Maynord 分享了关于他是如何对 Linux 感兴趣的轶事,他为把学校的计算机换成 Linux 所采取的第一个步骤,Linux 如何使学校受益等等。Don 在这次采访中提出了许多很好的问题,Maynord 为有意采用 Linux 的学校提供了许多有用的信息。
|
||||
|
||||
### 在 Linux 上运行你喜欢的 Windows 应用程序
|
||||
|
||||
有时,在切换到 Linux 之后,你仍然需要那个只在 Windows 下运行的特定应用程序,或者真的想玩那个只能在 Windows 下运行的游戏。在这篇文章中,Seth Kenlon 提供了一个关于如何 [在 Linux 上运行你喜欢的 Windows 应用程序][14] 的教程。做到这一点的工具是 WINE。Seth 解释了什么是 WINE,它是如何工作的,以及如何在你的 Linux 计算机上安装它,以便你可以运行你最喜欢的 Windows 应用程序。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/reasons-love-linux
|
||||
|
||||
作者:[Joshua Allen Holm][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/holmja
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/car-penguin-drive-linux-yellow.png?itok=twWGlYAc (Penguin driving a car with a yellow background)
|
||||
[2]: https://opensource.com/tags/linux
|
||||
[3]: https://linux.cn/article-13133-1.html
|
||||
[4]: https://linux.cn/article-13972-1.html
|
||||
[5]: https://opensource.com/article/21/2/linux-programming
|
||||
[6]: https://linux.cn/article-13143-1.html
|
||||
[7]: https://linux.cn/article-13192-1.html
|
||||
[8]: https://linux.cn/article-13186-1.html
|
||||
[9]: https://opensource.com/article/20/8/kubernetes-raspberry-pi
|
||||
[10]: https://opensource.com/article/21/6/kubernetes-linux-homelab
|
||||
[11]: https://linux.cn/article-13298-1.html
|
||||
[12]: https://www.ihmcatholicschool.org/
|
||||
[13]: https://opensource.com/article/21/5/linux-school-servers
|
||||
[14]: https://linux.cn/article-13184-1.html
|
@ -0,0 +1,82 @@
|
||||
[#]: subject: "10 Raspberry Pi project ideas from 2021"
|
||||
[#]: via: "https://opensource.com/article/21/12/raspberry-pi-projects"
|
||||
[#]: author: "Joshua Allen Holm https://opensource.com/users/holmja"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14142-1.html"
|
||||
|
||||
2021 总结:10 个创意树莓派项目
|
||||
======
|
||||
|
||||
> 你的下一个最流行的树莓派项目。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/03/094418bv7lgk6bkaa7dkdz.jpg)
|
||||
|
||||
树莓派是最受欢迎的单板计算机品牌之一。它流行的部分原因是人们用树莓派制造了大量独特而有趣的项目。人们在各种项目中使用了树莓派,并提供了说明,以便其他人可以重新创建他们的项目。以下是在 2021 年发表的十篇最受欢迎的树莓派文章。我希望在你摆弄自己树莓派时,它们能给你带来启发。
|
||||
|
||||
### 《用树莓派建立一个家庭恒温器》
|
||||
|
||||
Joe Truncale 在 2020 年 10 月搬进了新家。家里的老式供暖系统需要改进。他的文章提供了关于他如何 [使用树莓派和 ThermOS][2] 来替换家中的恒温器的详细说明。
|
||||
|
||||
### 《在树莓派上建立一个精简服务器》
|
||||
|
||||
树莓派可以作为一个很好的服务器。Alan Formy-Duval 展示了如何 [建立一个精简服务器][3] 以节约系统资源。他的说明提供了许多关于如何最大限度地利用树莓派的有用提示。
|
||||
|
||||
### 《我是如何在公共图书馆的树莓派 400 上教授 Python 的》
|
||||
|
||||
树莓派是一个很好的教学工具。在这篇文章中,Don Watkins 讲述了他如何在一个公共图书馆 [使用树莓派 400 教授 Python][4]。他描述了他是如何设置树莓派 400 以及如何教授课程的。
|
||||
|
||||
### 《用 Cockpit 管理你的树莓派》
|
||||
|
||||
Alan Formy-Duval 解释了如何 [使用 Cockpit 来管理你的树莓派][5]。他详细介绍了如何在树莓派操作系统上安装和使用 Cockpit,并对 Cockpit 的功能做了大致的介绍。正如他在文章中指出的那样,“就像在其他 Linux 系统上一样,Cockpit 可以在树莓派上发挥功用”,这使得这篇文章也可以用于有兴趣在其他系统上使用 Cockpit 的用户。
|
||||
|
||||
### 《使用树莓派建立一个具有移动连接功能的路由器》
|
||||
|
||||
你可以用树莓派轻松地制作你自己的路由器。在这个教程中,Lukas Janėnas 解释了如何 [建立一个具有移动连接的路由器][6]。他提供了关于如何在树莓派上安装和配置 OpenWRT 的详细说明。
|
||||
|
||||
### 《用树莓派和一个低功耗显示器追踪你的家庭日历》
|
||||
|
||||
Javier Pena 使用树莓派和一个墨水屏显示器 [建立了一个家庭日历][7]。这篇文章提供了关于该项目中使用的硬件和软件的信息。使用所提供的说明,你可以轻松地为自己的家庭创建一个数字日历。
|
||||
|
||||
### 《用树莓派投射你的安卓设备》
|
||||
|
||||
在 Sudeshna Sur 的这篇文章中,可以了解到如何 [用树莓派投射你的安卓设备][8]。Sudeshna 使用 Scrcpy 来完成这个任务。她提供了关于如何设置 Scrcpy 和配置你的手机的说明,以便它们一起工作。
|
||||
|
||||
### 《对树莓派 400 的测评》
|
||||
|
||||
Don Watkins [测评了树莓派 400][9],提供了多张他的树莓派 400 开箱图片,并提供了对该设备和捆绑配件的出色书面评论。关于这个 100 美元的大礼包,他有很多好话要说。
|
||||
|
||||
### 《用树莓派和 Prometheus 监控你家里的温度和湿度》
|
||||
|
||||
在 Chris Collins 的教程中,学习如何 [监测你家里的温度和湿度][10]。Chris 解释了如何使用 Prometheus 和树莓派来收集和存储数据。他提供了关于安装 Prometheus 的说明,设置 Prometheus 来跟踪数据,创建一个 systemd 单元和日志记录等等,最后还说明了如何把所有的步骤结合起来创建完成的项目。
|
||||
|
||||
### 《在树莓派集群中部署 Ceph》
|
||||
|
||||
AJ Canlas 教授了如何 [在树莓派集群中部署 Ceph][11]。这篇文章提供了使用 `ceph-ansible` Ansible 剧本部署 Ceph 的说明。需要的硬件是四个树莓派 4B 4GB 型号,四个 32GB 的 microSD 卡用于启动操作系统,四个带风扇和散热器的外壳,四个树莓派电源,以及六个 32GB 的 USB 闪存用于 Ceph OSD 节点。这是一套很大的设备,但如果你手上有这样的硬件,这是一个迷人的项目,可以尝试一下。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/raspberry-pi-projects
|
||||
|
||||
作者:[Joshua Allen Holm][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/holmja
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/life-raspberrypi_0.png?itok=Kczz87J2 (Raspberries with pi symbol overlay)
|
||||
[2]: https://opensource.com/article/21/3/thermostat-raspberry-pi
|
||||
[3]: https://opensource.com/article/21/1/minimal-server-raspberry-pi
|
||||
[4]: https://opensource.com/article/21/6/teach-python-raspberry-pi
|
||||
[5]: https://linux.cn/article-13487-1.html
|
||||
[6]: https://opensource.com/article/21/3/router-raspberry-pi
|
||||
[7]: https://linux.cn/article-13222-1.html
|
||||
[8]: https://opensource.com/article/21/3/android-raspberry-pi
|
||||
[9]: https://opensource.com/article/21/3/raspberry-pi-400-review
|
||||
[10]: https://opensource.com/article/21/7/home-temperature-raspberry-pi-prometheus
|
||||
[11]: https://linux.cn/article-13020-1.html
|
@ -0,0 +1,100 @@
|
||||
[#]: subject: "9 open source alternatives to try in 2022"
|
||||
[#]: via: "https://opensource.com/article/21/12/open-source-alternatives"
|
||||
[#]: author: "Lauren Maffeo https://opensource.com/users/lmaffeo"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14148-1.html"
|
||||
|
||||
2021 总结:值得尝试的 9 个开源替代品
|
||||
======
|
||||
|
||||
> 无论你在寻找什么工具,都有大量的开源软件的替代品供你选择。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/05/102041ojbpppjmgemmummq.jpg)
|
||||
|
||||
2021 年又是一个主要在网上度过的年份,但这对开源世界来说并不新鲜。在任何地方工作的能力是我们的 DNA,在大流行之前,远程工作就已经进入了主流。
|
||||
|
||||
然而,今年在屏幕前的所有时间使我们的社区考虑开源的替代方案。无论你需要什么样的工具,许多流行的供应商都不是你唯一的选择。
|
||||
|
||||
如果你对 Zoom 感到厌倦,想要一个非 Salesforce 家的 CRM,或者想要一个非谷歌的分析工具,请继续阅读。我们有推荐了 2021 年最受读者喜爱的开源替代品的文章。
|
||||
|
||||
### 我最喜欢的开源项目管理工具
|
||||
|
||||
如果你在管理一个项目,可能看起来你有无穷无尽的工具可以选择。随着甘特图跨入敏捷领域,现在更常见的是看到它们被部署在大型项目的服务中。
|
||||
|
||||
如果你认为微软 Project 是你唯一的选择,别担心,Frank Bergmann 分享了几个 [开源替代品][2],供单个用户计划和跟踪大型单一项目。Redmine、ProjectLibre 和 TaskJuggler 都是这个列表中涉及的开源替代品。
|
||||
|
||||
### 微软 Exchange 的一个开源替代品
|
||||
|
||||
微软 Exchange 在群件中的主导地位可能即将结束。2020年,一位奥地利的开源开发者建立了 grommunio,作为 Exchange 的开源替代品。
|
||||
|
||||
在 Markus Feilner 的 [对 grommunio 的评论][3]中,他分享了该工具提供的大量功能清单。集成的原生 exchange 协议使 Outlook 和智能手机能够像连接到 Exchange 一样连接到 grommunio。在这个强大的列表中,日历管理、视频会议和会议功能是由 [Jitsi][4] 提供的。
|
||||
|
||||
### 用这个开源的财务工具在 Linux 上管理你的预算
|
||||
|
||||
当涉及到资金管理时,Linux 可能不是你想到的第一个工具平台。然而,事实证明,有许多建立在 Linux 上的应用可以帮助保持你的个人财务状况良好。
|
||||
|
||||
像 HomeBank 和 KMyMoney 这样的产品可以让你从银行导入数据,并根据你的预算审查支出。[本文作者][5] Seth Kenlon 更喜欢 Skrooge,并分享了他如何使用它。如果你正在寻找一个追踪支出的开源工具,这可能是一个。
|
||||
|
||||
### 5 个替代 Zoom 的开源工具
|
||||
|
||||
在大流行的近两年时间里,可以说我们中的大多数人都被 Zoom 困住了。对我们中的许多人来说,大多数工作和社会活动都完全在网上进行。但正如 Seth Kenlon 敏锐地指出的那样,开源最大的好处之一就是可以远程工作。因此,如果你对 Zoom 感到厌烦,[开源爱好者有几个选择][6]。
|
||||
|
||||
像 Jitsi 这样受欢迎的名字也在这个名单上,还有一些令人惊讶的名字。例如,你知道 Signal 在其功能列表中增加了小组视频通话吗?P2p.chart、BigBlueButton 和 Wire 也进入了这个从小型团体电话到公司会议的各种视频需求的工具列表。
|
||||
|
||||
### 用 Doodle 的开源替代品来安排约会
|
||||
|
||||
像 Doodle 这样的约会安排应用省去了很多挑选互不冲突日期的麻烦。对于像 Kevin Sonney 这样主持播客的人来说,这些工具可以帮助他和每个客人轻松找到适合他们双方的日期。
|
||||
|
||||
虽然 Doodle 赢得了大众投票,但 Sonney [在这篇文章][7] 分享了他使用 Easy!Appointments 的经验。它旨在帮助服务机构,Easy!Appointments 有一个 WordPress 插件,让用户把请求表格放在页面或帖子上。该应用还与谷歌日历同步,并有添加与其他后端同步的支持。
|
||||
|
||||
### 为什么选择 Plausible 作为谷歌分析的开源替代品
|
||||
|
||||
如果你需要使用网络分析,似乎谷歌分析是你唯一的选择。Uku Taht 和 Marko Saric 在建立 Plausible.io 时,就着手改变这种情况,以提供一个开源的分析工具,可以管理大量的数据而不会出现性能下降。发布两年后,Plausible 每月可以抓取超过 8000 万条记录。
|
||||
|
||||
在这篇文章中,Ben Rometsch 分享了 [Plausible 的历程][8],从带有敏感代码的软件到 AGPL 下的开源选择。如果你想知道这个小小的分析引擎是如何在 GitHub 上从 500 颗星发展到 4300 颗星的,那么这篇文章很值得一读。
|
||||
|
||||
### 试试 Chatwoot,一个开源的客户关系平台
|
||||
|
||||
想找一个涵盖客服管理/支持的开源端到端平台?如果你想要 Salesforce 或 Zendesk 以外的东西,用 Ruby 和 Vue.js 构建的 Chatwoot 可能是一个可行的选择。
|
||||
|
||||
Nitish Tiwari 在 [这篇文章][9] 中分享了 Chatwoot 的架构、安装和主要功能。它可以在几个平台上使用,包括 Linux 和 Docker。这篇文章分享了使用 Docker 的安装过程,以及渠道和集成等功能。
|
||||
|
||||
### 开始使用开源的客户数据平台
|
||||
|
||||
如果你正在管理大规模数据,你很可能使用或正在寻找一个数据仓库。那些寻找开源仓库的人可以考虑 RudderStack,它在数据仓库上建立客户数据湖之前收集和路由事件流数据。
|
||||
|
||||
Amey Varangaonkar [分享了如何获得 RudderStack 的工作空间令牌][10],然后在 Docker 或 Kubernetes 上安装和部署。该工具的 rudder-server 仓库和目标集成是开源的,让用户看到该工具如何完成复杂的任务。在一个充满风险的黑盒子时代,拥有这种透明度是一个很大的好处。
|
||||
|
||||
### 试试 Dolibarr,一个开源的客户关系管理平台
|
||||
|
||||
你没有看错:这是另一篇关于客户关系管理的开源替代品的文章。[Pradeep Vijayakumar 的这篇文章][11] 涵盖了 Dolibarr,它在拥有 CRM 功能的同时还拥有强大的 ERP 功能。
|
||||
|
||||
Vijayakumar 就在做 Dolibarr 开发工作,所以他对安装它的 CRM、添加客户数据和设置活动的知识是非常丰富的。截图显示了每个过程的细节,并提供了优化工具的有用提示。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/open-source-alternatives
|
||||
|
||||
作者:[Lauren Maffeo][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/lmaffeo
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/EDU_OSDC_IntroOS_520x292_FINAL.png?itok=woiZamgj (name tag that says hello my name is open source)
|
||||
[2]: https://opensource.com/article/21/3/open-source-project-management
|
||||
[3]: https://opensource.com/article/21/9/open-source-groupware-grommunio
|
||||
[4]: https://opensource.com/article/20/5/open-source-video-conferencing
|
||||
[5]: https://opensource.com/article/21/2/linux-skrooge
|
||||
[6]: https://opensource.com/article/21/9/alternatives-zoom
|
||||
[7]: https://opensource.com/article/21/1/open-source-scheduler
|
||||
[8]: https://opensource.com/article/21/2/plausible
|
||||
[9]: https://opensource.com/article/21/6/chatwoot
|
||||
[10]: https://opensource.com/article/21/3/rudderstack-customer-data-platform
|
||||
[11]: https://opensource.com/article/21/7/open-source-dolibarr
|
@ -0,0 +1,63 @@
|
||||
[#]: subject: "5 ways open source software transformed business in 2021"
|
||||
[#]: via: "https://opensource.com/article/21/12/open-source-software-business"
|
||||
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14152-1.html"
|
||||
|
||||
2021 年总结:开源软件改变商业的 5 种方式
|
||||
======
|
||||
|
||||
> 这组文章展示了企业如何与开源软件连接。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/06/100657stkkjn9froz4kkqk.jpg)
|
||||
|
||||
开源软件不仅仅创造了专有软件的替代品。在商业方面,开源已经成为一个“力量的倍增器”来改变组织的经营方式。同时,越来越多的公司开始采用更多的开源方法,甚至在管理团队和流程方面。
|
||||
|
||||
在过去的一年里,我们发表了许多优秀的文章,展示了企业如何与开源软件相联系。以下是一些阅读量最大的文章:
|
||||
|
||||
### 《开源给你带来竞争优势的 4 种方式》
|
||||
|
||||
为了在当今快节奏的世界中取得成功,企业必须对数字解决方案进行明智的投资,使他们能够更快地行动并提高运营的灵活性。这正是越来越多的各种规模和各种行业的组织拥抱开源解决方案的原因。根据麦肯锡的一份报告,开源的采用是表现优异的组织的最大差异化因素。[Jason Blais][3] 写了采用开源技术可以帮助组织推动竞争优势和体验更好的业务成果的 [四个原因][2]。
|
||||
|
||||
### 《为什么 Crate.io 回归其纯粹的开源根源》
|
||||
|
||||
开源技术提供企业级的可扩展性、性能、安全性和可靠性。信任就在那里,而且是当之无愧的。但除了顽固的开源信徒之外,较少被人称道的是日常社区贡献的内部运作,在原子级别建立了这些宏观利益。对于那些提供开源技术的人来说,社区不断的用户驱动的测试和加固将这些技术锻造成强大和成熟的解决方案。Crate.io 的联合创始人 [Bernd Dorn][5] 写道,该组织从“开放核心” [转变][4] 为采用 Apache 2.0 许可的纯开源。
|
||||
|
||||
### 《为什么非营利组织选择开源软件》
|
||||
|
||||
随着科技和数据安全意识的提高,开源软件比以往任何时候都更成为各阶层组织的首选。非营利组织在财务方面尤其脆弱,同时又要处理重要的社会和环境问题。[Michael Korotaev][7] 以 Nextcloud 和 ONLYOFFICE为 例,写了关于在非营利组织中 [采用开源协作技术][6] 的文章。
|
||||
|
||||
### 《管理开源产品路线图》
|
||||
|
||||
客户,以及与他们交谈的销售和营销团队,都喜欢一个路线图。它让他们了解什么是现实的,什么是不现实的。路线图也是一个产品的核心。[Scott McCarty][9] 写了关于 [管理开源产品路线图][8] 的文章,以及为什么专有产品的路线图与建立在开源供应链上的产品没有什么不同。产品经理与客户交谈,对他们的需求进行排序,制定路线图,然后找出如何通过建设、购买和合作来提供能力。
|
||||
|
||||
### 《将开源产品推向市场》
|
||||
|
||||
产品营销和计划中的信息传递的作用对于一个成功的发布至关重要。Scott McCarty 继续他关于开源供应链中的产品管理的系列文章,讨论了 [开源和产品营销的交叉点][10]。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/open-source-software-business
|
||||
|
||||
作者:[Jim Hall][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/jim-hall
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/BUSINESS_orgchart1.png?itok=tukiFj89 (A confusing business organization chart)
|
||||
[2]: https://opensource.com/article/21/4/open-source-competitive-advantage
|
||||
[3]: https://opensource.com/users/jasonblais
|
||||
[4]: https://opensource.com/article/21/4/crate-open-source
|
||||
[5]: https://opensource.com/users/bernd-dorn
|
||||
[6]: https://opensource.com/article/21/9/nonprofit-open-source
|
||||
[7]: https://opensource.com/users/michaelk
|
||||
[8]: https://opensource.com/article/21/9/open-source-product-roadmap
|
||||
[9]: https://opensource.com/users/fatherlinux
|
||||
[10]: https://opensource.com/article/21/10/open-source-product-market
|
@ -0,0 +1,123 @@
|
||||
[#]: subject: "My Top 5 Favorite Linux Apps That I Discovered in 2021"
|
||||
[#]: via: "https://news.itsfoss.com/linux-apps-discovered-2021/"
|
||||
[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14140-1.html"
|
||||
|
||||
2021 年我最喜欢的五个 Linux 应用程序
|
||||
======
|
||||
|
||||
> 这些应用程序可能不是绝对的必需品,但我很高兴在 2021 年发现了它们。
|
||||
|
||||
![](https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-apps-discovered-in-2021.png?w=1200&ssl=1)
|
||||
|
||||
在这个 2021 年,我目睹了数百个有趣的 Linux 应用程序的开发取得了进展,并因此获得了更多用户。虽然其中一些已经止步,但其它的应用还在继续发展,不断地获得更多的关注和新功能。
|
||||
|
||||
虽然我希望我可以对所有这些应用都有所了解,但显然这是不可能的。不过,我已经挑选了 5 个我最喜欢的应用,并在这里与你分享它们。它们可能不会被列入 [必需的 Linux 应用程序名单][1],但我却十分青睐它们。
|
||||
|
||||
在开始之前,应该注意的是,所有这些应用程序,除了 EverSticky 之外,都是融合性的,这意味着它们同样适用于桌面和移动 Linux 设备。随着 PinePhone 和 Librem 5 等设备变得越来越流行,我认为融合性应用是相当重要的,看到这么多的此类应用正在开发中,真是太好了。
|
||||
|
||||
言归正传,让我们来看看第一个应用程序。
|
||||
|
||||
### Index
|
||||
|
||||
![图片来源:MauiKit][2]
|
||||
|
||||
早在 2016 年,当 KDE 发布 Kirigami 时,很明显,它是 KDE 的应用程序的未来。不幸的是,将成千上万的应用程序转换到一个新的 UI 工具包是相当困难的,这导致了 KDE 应用程序之间严重的不一致。
|
||||
|
||||
五年后的今天,作为桌面级应用的 UI 工具包,我们终于看到 Kirigami 被真正重视起来,这在文件管理器 Index 中得到了完美的体现。这个漂亮的应用程序能成为 Plasma Mobile 和 Nitrix Linux 的默认文件管理器,自然有原因的。
|
||||
|
||||
虽然不像 KDE 的默认文件管理器 Dolphin 那样功能丰富,但它有集成终端、文件预览、标签和分割视图模式等功能。这使得它可以和 Gnome 的 Nautilus 相提并论,同时它还有融合性和基于 Kirigami 的明显优势。
|
||||
|
||||
自从发现了它,我就只用它了,甚至没有想过要换回 Dolphin 或 Nautilus。我强烈推荐给任何想尝试新文件管理器的人。
|
||||
|
||||
- [获取 Index][3]
|
||||
|
||||
### Vakzination
|
||||
|
||||
我相信大家都会这样认为,过去的两年是艰难的,但是在隧道的尽头有一道光。随着疫苗的推出,我们似乎终于接近了这场大流行病的终点。
|
||||
|
||||
不幸的是,这也意味着许多人不得不习惯于疫苗证书的概念,其中许多现在是数字证书。这对 Linux 用户来说可能是个问题,因为卫生部门很少有资源为 Linux 开发疫苗接种证书应用程序。
|
||||
|
||||
然而,这并没有阻止一些社区成员致力于开发一个自由开源的替代方案,从而产生了 Vakzination。作为一个 KDE 应用程序,它使用 Kirigami 和 Qt Quick 创建了一个快速、现代和用户友好的疫苗接种证书应用程序,使用起来非常方便和快捷。
|
||||
|
||||
它目前支持以下证书格式:
|
||||
|
||||
* [印度疫苗接种证书][4]
|
||||
* [欧盟 “数字绿色证书”(DCG)疫苗接种、测试和康复证书][5]
|
||||
|
||||
老实说,我觉得社区在这个应用程序上取得的成就相当不可思议,在此希望他们能尽快增加更多的格式支持。
|
||||
|
||||
- [获取 Vakzination][6]
|
||||
|
||||
### Elisa
|
||||
|
||||
![][7]
|
||||
|
||||
Elisa 是另一个基于 Kirigami 的应用程序,是一个来自 KDE 的快速而漂亮的音乐播放器。它支持所有主要的音频格式,并集成到 Baloo 文件索引器中,以确保你所有的音乐都被收录。
|
||||
|
||||
> Elisa 是一个由 KDE 社区开发的音乐播放器,努力做到简单和好用。我们也认识到,我们需要一个灵活的产品来考虑用户的不同工作流程和使用情况。我们专注于与 KDE 社区的 Plasma 桌面进行良好整合,而不影响对其他平台(其他 Linux 桌面环境、Windows 和 Android)的支持。
|
||||
>
|
||||
> 据 [Elisa 网站][8]
|
||||
|
||||
总的来说,对于任何平台来说,它都是一个伟大的音乐播放器,对于 KDE Plasma 和 Plasma Mobile 用户来说更是如此。
|
||||
|
||||
- [获取 Elisa][9]
|
||||
|
||||
### Fractal
|
||||
|
||||
![][10]
|
||||
|
||||
继续看看 Gnome 应用程序,Fractal 已经迅速成为我最喜欢的信息应用。它使用了成熟的 Matrix 通信协议,并支持用户可能期望的现代消息应用程序的所有功能。
|
||||
|
||||
它有些值得注意的功能,如图像和视频预览,以及对所有 Matrix 功能的支持。此外,它使用 LibHandy 库,这意味着它可以在移动设备上完美地工作,如 PinePhone 和 Librem 5。
|
||||
|
||||
总的来说,我对这个应用程序非常满意,因为它几乎适合任何希望与朋友或家人交流的人。
|
||||
|
||||
- [获取 Fractal][11]
|
||||
|
||||
### EverSticky
|
||||
|
||||
![][12]
|
||||
|
||||
到目前为止,EverSticky 是这个名单上最小的项目,它是一个类似于 Windows 11 的<ruby>便签应用<rt>Sticky Notes</rt></ruby> 的小型记事应用。与许多其他可用于 Linux 的便签应用不同,EverSticky 有一个关键优势,它能够同步到印象笔记。
|
||||
|
||||
这意味着所有在 EverSticky 上做的笔记也会出现在任何其他登录到印象笔记的设备上。为了帮助尽量减少用户界面混乱(用 Qt 构建),它利用了一个托盘图标,类似于所有最近版本的 Windows 中的图标。
|
||||
|
||||
从我的使用经验来看,它工作得非常好,我的所有笔记都能在我的所有设备之间无缝同步。我强烈建议你自己尝试一下。
|
||||
|
||||
- [获取 EverSticky][13]
|
||||
|
||||
总的来说,我对 Linux 上的应用程序的未来感到兴奋。随着越来越多的人开始关注对开源项目的贡献,我希望我们能得到更多像这样不可思议的应用程序。
|
||||
|
||||
你今年还发现了其他一些有趣的新应用吗?请在下面的评论中分享它们。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/linux-apps-discovered-2021/
|
||||
|
||||
作者:[Jacob Crume][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/jacob/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/essential-linux-applications/
|
||||
[2]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/index-fm.png?resize=1568%2C1037&ssl=1
|
||||
[3]: https://mauikit.org/apps/index/
|
||||
[4]: https://en.wikipedia.org/wiki/Verifiable_credentials
|
||||
[5]: https://github.com/eu-digital-green-certificates
|
||||
[6]: https://invent.kde.org/plasma-mobile/vakzination
|
||||
[7]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/Elisa-screenshot.png?w=800&ssl=1
|
||||
[8]: https://elisa.kde.org/
|
||||
[9]: tmp.C4FwOdq3pZ
|
||||
[10]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/11/fractal-4.0.png?resize=1568%2C882&ssl=1
|
||||
[11]: https://wiki.gnome.org/Apps/Fractal
|
||||
[12]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/eversticky.png?w=580&ssl=1
|
||||
[13]: https://github.com/itsmejoeeey/eversticky
|
@ -0,0 +1,178 @@
|
||||
[#]: subject: "7 Linux Distros to Look Forward to in 2022"
|
||||
[#]: via: "https://news.itsfoss.com/linux-distro-releases-2022/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "imgradeone"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14143-1.html"
|
||||
|
||||
2022 年值得期待的 7 款 Linux 发行版
|
||||
======
|
||||
|
||||
> 2022 年已至,是时候期待一些激动人心的发行版更新了!这里我们挑选了一些值得关注的发行版选择。
|
||||
|
||||
![](https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/Linux-distros-2022.png?w=1200&ssl=1)
|
||||
|
||||
是时候和 2021 年说再见了。
|
||||
|
||||
如果你错过了 [2021 年的 Linux 大事件][1],现在你也可以去回顾一下。
|
||||
|
||||
不过,考虑到 2021 年已有许多令人印象深刻的发行版推出,2022 年,对于较新的 Linux 发行版以及现有版本的更新,人们的期待值已经直达顶峰。
|
||||
|
||||
与十年前相比,Linux 发行版如今更加注重用户体验。这不仅仅关乎资源占用,更关系到发行版的外观及对现代桌面硬件的兼容性。
|
||||
|
||||
先来简单回顾一下 —— [elementary OS 6.1][2]、[Zorin OS 16][3]、[Pop!\_OS 21.10][4] 和 Linux Mint 20.3 都是于 2021 年推出的大型 Linux 发行版的更新版。这些发行版都专注于改善用户体验、改进视觉、优化生产力。
|
||||
|
||||
毫无疑问,你可以选择上述发行版并感受前所未有的桌面体验,也可以获取 [最佳 Linux 发行版][5] 的最新更新。
|
||||
|
||||
所以,到了 2022 年,你又应该期待什么?是否会有一个能让用户体验更上一层楼的发行版呢?
|
||||
|
||||
答案是肯定的,这里就有一些你值得关注的发行版。在此我列出了清单,重点强调 2022 年这些发行版的计划更新内容。
|
||||
|
||||
### 2022 年最值得期待的发行版
|
||||
|
||||
请注意:这里列出的大部分发行版的官方信息暂时缺失,不过本文章将定期更新以补充最新消息。
|
||||
|
||||
#### 1、Slackware 15
|
||||
|
||||
![][6]
|
||||
|
||||
Slackware 是至今为止 [最长寿的活跃发行版][7]。Slackware 15 Beta 版已在去年发布,稳定版将于 2022 年初发布。
|
||||
|
||||
对于新手级桌面用户来说,这并不那么吸引人,不过如果你想要一款支持旧硬件,或者能够有效利用资源的发行版,Slackware 可以成为你的候选方案。
|
||||
|
||||
再次强调一下,Slackware 15 将是时隔六年后的一个大版本更新,所以这是一件大事。
|
||||
|
||||
不过,这款发行版会更适合有经验的 Linux 用户。
|
||||
|
||||
因此,如果你对此不感兴趣的话,你可以去看看 [最轻量级的 Linux 发行版列表][8]。
|
||||
|
||||
#### 2、Ubuntu 22.04 LTS
|
||||
|
||||
![][30]
|
||||
|
||||
Ubuntu 的下一个 LTS 版本 22.04(代号 Jammy Jellyfish)将于 2022 年 4 月 21 日发布。
|
||||
|
||||
在 Ubuntu 22.04 LTS 中,你将可以体验到 GNOME 42 桌面环境、全新的安装器,以及默认使用 Wayland 的桌面会话。
|
||||
|
||||
[Ubuntu 21.10][9] 的一系列改进也将在 Ubuntu 22.04 LTS 中一并出现。
|
||||
|
||||
#### 3、Zorin OS 17
|
||||
|
||||
![Zorin OS 16][31]
|
||||
|
||||
[Zorin OS 16][10] 凭借其新增的许多功能及用户体验改进,让我们留下了极其深刻的印象。
|
||||
|
||||
我认为 Zorin OS 16 是一次极大地增强了桌面体验的更新。
|
||||
|
||||
考虑到 Zorin OS 16 中已经有了大幅改进,我们应该转投于下一个大版本更新 —— 将于 2022 年发布的 Zorin OS 17。当然,它应该会基于 Ubuntu 22.04 LTS,不过你更应该期待一下视觉方面的改进。
|
||||
|
||||
#### 4、Pop!\_OS 22.04
|
||||
|
||||
![][32]
|
||||
|
||||
[Pop!\_OS][11] 是一款开箱即用的稳定发行版。与其他发行版不同, Pop!\_OS 并不意在于“更棒的视觉体验”,而是专注于增强工作流环境,同时提供独特的桌面体验。
|
||||
|
||||
System76 [将仓库从 Launchpad 转移出去][12] 和计划 [使用 Rust 从头构建桌面环境][13] 这几件激动人心的举措,使我更有意愿去关注他们的发展动态。
|
||||
|
||||
毫无疑问,[Pop!\_OS 能够成为我的主力系统][14]。
|
||||
|
||||
此外,Pop!\_OS 22.04 将会是 System76 对其操作系统后续规划的有力支撑,所以,拭目以待吧。
|
||||
|
||||
#### 5、Linux Mint 21
|
||||
|
||||
![][15]
|
||||
|
||||
[Linux Mint][16] 团队可能不会推出很多变化,但从 Linux Mint 20.3 开始,他们开始专注于改善视觉了。
|
||||
|
||||
我并不希望有任何破坏性变更。不过,Linux Mint 21 仍旧有值得期待的重大视觉优化,毕竟他们确实需要向更现代的桌面环境发展了。
|
||||
|
||||
#### 6、CutefishOS
|
||||
|
||||
![][33]
|
||||
|
||||
[CutefishOS][17] 目前仍处于早期开发阶段(虽然已经到了 Beta 测试阶段),尚未进入稳定阶段。
|
||||
|
||||
根据我对其 Beta 测试版本的体验,CutefishOS 在用户体验上 [可以与深度操作系统相媲美][18]。当然我仍旧持谨慎态度,毕竟它还没到达稳定阶段。
|
||||
|
||||
不过,CutefishOS 确实是款值得关注的项目,毕竟,更多的发行版将开始意识到改进用户体验的重要性,并试图与现有的 [最美 Linux 发行版][19] 一决高下,这么“卷”起来总归是好事。
|
||||
|
||||
#### 7、Fedora 36
|
||||
|
||||
![][20]
|
||||
|
||||
[Fedora][21] 团队已经从 [Linus Tech Tip 的 Linux 日用挑战系列视频][22] 中认真地听取了用户反馈。
|
||||
|
||||
事实上,[红帽公司已经捐赠了 1 万美元][23] 来帮助 OBS 构建 Flatpak 官方包。
|
||||
|
||||
即便 Fedora 并非 Linux 游戏玩家的理想发行版,Fedora 团队也在努力使 Workstation 版本兼顾稳定性和最新功能。
|
||||
|
||||
[Fedora 35][24] 正是一个优秀案例,它带来了 GNOME 41 和全新的 KDE 变体版本。
|
||||
|
||||
我并不敢保证 Fedora 36 能更适合游戏玩家,但有一些预期的变化,比如 Wayland 默认使用 NVIDIA 专有驱动,以及新的 GNOME 42 桌面环境。如果你想关注开发动态,你可以查阅 [官方的更新内容列表][25]。
|
||||
|
||||
#### 额外:Nitrux Linux
|
||||
|
||||
我本来没有计划在这里介绍 Nitrux 的,但 Nitrux 几天前突然 [推出了 Maui Shell 项目][26]。
|
||||
|
||||
Maui Shell 是一款跨终端的桌面环境,支持电脑、平板、手机。听起来是不是有点像当年 Ubuntu 的 Unity 呢?Nitrux 项目在设计方面一直很出色,所以我对这款新的桌面环境的期待值已经拉满了。
|
||||
|
||||
![][27]
|
||||
|
||||
Maui Shell 项目仍在大力开发中。它将在接下来的几个月里添加新功能,以确保其基本可用。我们可以期待 2022 年它会变成什么样子。
|
||||
|
||||
### 结束语
|
||||
|
||||
即便我们列出了这么多发行版,谁知道哪个发行版又会突然出现,并拿下头条呢?
|
||||
|
||||
也许是 [EndeavourOS][28]、[Garuda Linux][29] 的重量级更新,又或者是别的?
|
||||
|
||||
2022 年,你又会期待哪款发行版呢?不要介意,欢迎在评论区分享你的想法。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/linux-distro-releases-2022/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[imgradeone](https://github.com/imgradeone)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://linux.cn/article-14103-1.html
|
||||
[2]: https://news.itsfoss.com/elementary-os-6-1-release/
|
||||
[3]: https://news.itsfoss.com/zorin-os-16-release/
|
||||
[4]: https://linux.cn/article-14083-1.html
|
||||
[5]: https://itsfoss.com/best-linux-distributions/
|
||||
[6]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/Slackware-15-beta-feat.png?w=1200&ssl=1
|
||||
[7]: https://news.itsfoss.com/slackware-15-beta-release/
|
||||
[8]: https://itsfoss.com/lightweight-linux-beginners/
|
||||
[9]: https://linux.cn/article-13887-1.html
|
||||
[10]: https://news.itsfoss.com/zorin-os-16-features/
|
||||
[11]: https://pop.system76.com
|
||||
[12]: https://news.itsfoss.com/pop-os-ppa-repo-move/
|
||||
[13]: https://news.itsfoss.com/pop-os-cosmic-rust/
|
||||
[14]: https://linux.cn/article-14118-1.html
|
||||
[15]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-mint-20-3.png?w=1394&ssl=1
|
||||
[16]: https://linuxmint.com
|
||||
[17]: https://cn.cutefishos.com
|
||||
[18]: https://linux.cn/article-14058-1.html
|
||||
[19]: https://itsfoss.com/beautiful-linux-distributions/
|
||||
[20]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/09/fedora-35-beta.png?w=990&ssl=1
|
||||
[21]: https://getfedora.org
|
||||
[22]: https://linux.cn/article-14053-1.html
|
||||
[23]: https://www.gamingonlinux.com/2021/12/red-hat-donates-10k-to-obs-studio-flatpak-to-be-official-for-linux/
|
||||
[24]: https://linux.cn/article-13949-1.html
|
||||
[25]: https://www.fedoraproject.org/wiki/Releases/36/ChangeSet
|
||||
[26]: https://nxos.org/news/introducing-maui-shell/
|
||||
[27]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/maui-shell-nitrux.webp?w=1000&ssl=1
|
||||
[28]: https://endeavouros.com
|
||||
[29]: https://garudalinux.org
|
||||
[30]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/Ubuntu-22.04-LTS.png?w=1200&ssl=1
|
||||
[31]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/08/zorin-os-16-pro.png?resize=1568%2C882&ssl=1
|
||||
[32]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/pop-os-21-10-feat.png?w=1200&ssl=1
|
||||
[33]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/cutefishos.png?w=1200&ssl=1
|
@ -0,0 +1,83 @@
|
||||
[#]: subject: "Folder or Directory? Here’s Why Folders are Called Directories in Linux"
|
||||
[#]: via: "https://itsfoss.com/folder-directory-linux/"
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14137-1.html"
|
||||
|
||||
为什么在 Linux 中“文件夹”被称为“目录”?
|
||||
======
|
||||
|
||||
如果你最开始使用的是 Windows 电脑,你很可能会使用“<ruby>文件夹<rt>folder</rt></ruby>”这个术语。
|
||||
|
||||
但当你换到 Linux 时,你会发现文件夹通常被称为“<ruby>目录<rt>directory</rt></ruby>”。
|
||||
|
||||
这可能使一些新的 Linux 用户感到困惑。你应该叫它文件夹还是目录?它们有区别吗?
|
||||
|
||||
事情是这样的。如果你愿意,你可以叫它文件夹,如果你喜欢,也可以叫它目录。这没有什么区别。
|
||||
|
||||
但是,如果你想知道为什么文件夹在 Linux 中被称为目录,这里有一些解释。
|
||||
|
||||
### 为什么在 Linux 中文件夹被称为目录?
|
||||
|
||||
在我解释之前,让我们回顾一下文件夹和目录在现实世界中的用途。
|
||||
|
||||
在现实中,文件夹(封套)可以用来保存几个文件(或其他项目)。而目录则可以用来维护项目的索引,这样你就可以找到哪个项目位于哪里。
|
||||
|
||||
![文件夹和目录的示意][1]
|
||||
|
||||
现在,让我们回到目录。这个词甚至在 Linux 存在之前就已经存在了。它来自 UNIX 时代。Linux 继承了 UNIX 的很多东西,这只是其中的一个。
|
||||
|
||||
现在让我告诉你一些可能让你吃惊的事情。目录并不是真的把文件放在里面。目录是一个“特殊的文件”,它知道文件在存储中的位置(通过 [inode][2])。
|
||||
|
||||
这就说明了为什么它被称为目录。目录用来保存项目的索引,而不用保存项目本身。Linux 和 UNIX 中的目录并不保存它里面的文件。它们只是记录文件位置的信息。
|
||||
|
||||
如果你想了解更多关于它的信息,我这篇关于 [硬链接][3] 的文章应该可以帮助你。
|
||||
|
||||
那么,为什么它被称为文件夹呢?依我看,这是视角的原因。当你在一个图形环境中时,你会将事物可视化。在这里,文件可以像页面一样被可视化,这些文件页面被存储在一个封套(文件夹)中。
|
||||
|
||||
当操作系统开始使用图形元素时,我认为一些术语也相应地发生了变化,目录 -> 文件夹就是其中之一。
|
||||
|
||||
### 你应该叫它文件夹还是目录?
|
||||
|
||||
这完全取决于你。你可以按你的习惯使用这两个术语。
|
||||
|
||||
然而,如果你正在学习 Linux 命令行或经常使用它,使用目录这个术语可能会有一点帮助。
|
||||
|
||||
有一些 Linux 命令,如 `mkdir`、`rmdir` 等,术语 “dir” 给出了一个提示,即这些命令与目录有关。
|
||||
|
||||
同样,许多 Linux 命令和 bash 脚本会使用选项 `-d` 表示目录,`-f` 表示文件。
|
||||
|
||||
甚至终端中的文件属性也会通过在目录前面加上字母 “d” 来区分文件和文件夹(目录)。
|
||||
|
||||
拿这个例子来说,我有一个名为 `some` 的文件和一个名为 `something` 的文件夹/目录。请注意各种 Linux 命令是如何用 “dir” 或 “d” 来区分文件和目录的。
|
||||
|
||||
![显示文件和目录操作之间区别的例子][4]
|
||||
|
||||
所有这些让我觉得,在使用 Linux 命令时,使用 “目录” 这个术语会有好处。你的潜意识会更容易将 “dir” 和 “d” 与目录联系起来。
|
||||
|
||||
再说一次,你想叫它文件夹或目录这完全取决于你。人们会明白你指的是什么。
|
||||
|
||||
我刚刚对目录一词的历史渊源做了一些分析,这应该会给你一些提示,为什么人们说 “在 Linux/UNIX 中,所有东西都是一个文件”。
|
||||
|
||||
现在我结束了我的胡言乱语,我请你对它进行评论。如果你发现任何技术上的不准确之处,请告诉我。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/folder-directory-linux/
|
||||
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/abhishek/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/folder-directory.png?resize=800%2C450&ssl=1
|
||||
[2]: https://linuxhandbook.com/inode-linux/
|
||||
[3]: https://linuxhandbook.com/hard-link/
|
||||
[4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/file-directory-commands-difference.png?resize=800%2C378&ssl=1
|
@ -0,0 +1,77 @@
|
||||
[#]: subject: "Open source tools for running a small business in 2022"
|
||||
[#]: via: "https://opensource.com/article/21/12/open-source-business-tools"
|
||||
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14156-1.html"
|
||||
|
||||
2021 总结:经营小型企业的开源工具
|
||||
======
|
||||
|
||||
> 这些文章显示了开源作为工具、平台或集成点在商业中的力量。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/07/122339ulofkl3j89o94f3l.jpg)
|
||||
|
||||
今年,我们刊登了几篇关注商业中的开源的好文章。这些文章展示了开源作为工具、平台或集成点在商业中的力量。让我们回顾一下 2021 年的一些顶级开源商业故事。
|
||||
|
||||
### 《我最喜欢的开源项目管理工具》
|
||||
|
||||
如果你在办公环境中管理过项目,你很可能使用微软 Project 来跟踪任务和分配。然而,开源社区已经创造了许多跟踪项目的选项。对于你的 [项目管理需求][2],[Frank Bergmann][3] 写了关于使用 Redmine、project-open、ProjectLibre、GanttProject、TaskJuggler 和 ProjeQtOr。
|
||||
|
||||
### 《使用 Apache Superset 进行开源商业智能报告》
|
||||
|
||||
通过商业智能,你可以通过对数据进行分类、安排结果和显示上下文信息来更好地了解你的信息。对于任何想要做出“数据驱动”决策的组织来说,商业智能(BI)是一项关键技术。[Maxime Beauchemin][5] 的文章讨论了 [Apache Superset][4],以及它如何成熟地成为一个领先的开源 BI 解决方案。
|
||||
|
||||
### 《6 个用于餐馆和零售商的 WordPress 插件》
|
||||
|
||||
这场大流行病可能永久性地改变了许多人喜欢做生意的方式。餐馆和其他当地的零售机构不能再像以前那样依赖上门交易了。网上订购食品和其他物品已经成为一种常态和期望。当大流行结束后,消费者不太可能背弃电子商务的便利。[Don Watkins][7] 写了 [六个开源插件][6],帮助你创建一个 WordPress 网站,满足你的客户对网上购物、路边取货和送货的偏好。它还可以建立你的品牌和你的客户群。
|
||||
|
||||
### 《试试 Chatwoot,一个开源的客户关系平台》
|
||||
|
||||
在任何有面向客户的业务中,保持与客户的互动是至关重要的。我们最后一次接触这个客户是什么时候,或者他们最后一次接触我们是什么时候?我们的组织中谁做了回应?什么服务水平协议制约着这种关系?这些和其他问题最好在客户关系管理系统(CRM)中进行管理。[Nitish Tiwari][9] 介绍了 [Chatwoot][8],一个用 Ruby 和 Vue.js 构建的开源客户关系平台。Chatwoot 是从零开始写的,目的是让客户关系团队建立端到端的票据管理和支持平台。本文将介绍 Chatwoot 的架构、安装和主要功能。
|
||||
|
||||
### 《试试 Dolibarr,一个开源的客户关系管理平台》
|
||||
|
||||
无论你是经营零售店、餐厅、酒吧、超市、健身房还是其他业务,你都需要一个可靠的方式来与你的客户保持联系。毕竟,他们是客户,因为他们喜欢你做的事情,如果他们与你分享了他们的联系信息,他们想听到更多关于你所提供的东西。[Pradeep Vijayakumar][11] 介绍了 [Dolibarr][10] 项目,一个开源的企业资源规划(ERP)和客户关系管理(CRM)软件。Dolibarr 提供了一整套 ERP 功能,包括销售点(POS)、发票、存货和库存管理、销售订单、采购订单和人力资源管理。
|
||||
|
||||
### 《微软 Exchange 的一个开源替代品》
|
||||
|
||||
多年来,微软 Exchange 作为群件环境的必然选择。然而,在 2020 年末,一个奥地利的开源软件开发商推出了 [grommunio][12],它是一个群件服务器和客户端,其外观和感觉为 Exchange 和 Outlook 用户所熟悉。[Markus Feilner][13] 写了关于 grommunio 如何在企业中取代 Exchange,成为群件的一个强大而功能齐全的选择。
|
||||
|
||||
### 《用这个开源工具简化发票的指南》
|
||||
|
||||
许多 IT 项目在开发过程中会延迟、超出预算,并出现巨大的变化。这些问题使开具发票成为 IT 领域最费力的活动之一。Frank Bergmann 写了一篇关于开源项目如何 [简化开票过程][14] 的文章。如果你决定成为自雇人士或成立一个创业公司,Frank 的文章也可以作为处理财务工作的指南。
|
||||
|
||||
### 开源是好生意
|
||||
|
||||
开源软件不仅仅是为开发者服务的。企业也可以利用开源软件的力量。事实上,开源是许多商业领域的一个主要驱动力。你今天使用的工具可能本身就是开源软件,或者使用开源作为堆栈的一部分。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/open-source-business-tools
|
||||
|
||||
作者:[Jim Hall][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/jim-hall
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/tools_hardware_purple.png?itok=3NdVoYhl (Tools illustration)
|
||||
[2]: https://opensource.com/article/21/3/open-source-project-management
|
||||
[3]: http://fraber
|
||||
[4]: https://opensource.com/article/21/4/business-intelligence-open-source
|
||||
[5]: https://opensource.com/users/mistercrunch
|
||||
[6]: https://opensource.com/article/21/3/wordpress-plugins-retail
|
||||
[7]: https://opensource.com/users/don-watkins
|
||||
[8]: https://opensource.com/article/21/6/chatwoot
|
||||
[9]: https://opensource.com/users/tiwarinitish86
|
||||
[10]: https://opensource.com/article/21/7/open-source-dolibarr
|
||||
[11]: https://opensource.com/users/deepschennai
|
||||
[12]: https://opensource.com/article/21/9/open-source-groupware-grommunio
|
||||
[13]: https://opensource.com/users/mfeilner
|
||||
[14]: https://opensource.com/article/21/7/open-source-invoicing-po
|
@ -0,0 +1,95 @@
|
||||
[#]: subject: "Maui Shell is Here, Ushering in a New Era of Desktop Linux"
|
||||
[#]: via: "https://news.itsfoss.com/maui-shell-unveiled/"
|
||||
[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "imgradeone"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14136-1.html"
|
||||
|
||||
Maui Shell 来了,开启 Linux 桌面新时代
|
||||
======
|
||||
|
||||
> 除了 System76 宣布了基于 RUST 的新桌面环境之外,还有别的团队也给桌面 Linux 用户带来了一些新东西。
|
||||
|
||||
![](https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/maui-shell.png?w=1200&ssl=1)
|
||||
|
||||
过去的几年里,我们很欣慰地看到 [Nitrux Linux][1] 背后的团队正在扩大他们对 Linux 社区的影响。如今,伴随着全新 Maui Shell 的发布,他们的影响也已经得到了进一步扩大。
|
||||
|
||||
让我们一起来看看吧!
|
||||
|
||||
### 关于 Maui 项目的一些背景介绍
|
||||
|
||||
![][2]
|
||||
|
||||
作为由 Nitrux Linux 团队原班人马创建、开发、维护的项目,Maui 项目已经开发了许多基础应用。实际上,他们的文件管理器 [Index][3] 甚至成功进入了我们的 [2021 年五大应用列表][4] 之中!
|
||||
|
||||
他们的所有应用均使用 MauiKit 这款定制框架开发。基于 Kirigami 的 MauiKit 专注于跨终端融合性,因此开发出来的应用可以在电脑和手机端拥有一致的体验。此外,它为开发者提供了更多的预置组件,因此创建应用可以更加便捷。
|
||||
|
||||
目前 Maui 项目开发的部分应用包括:
|
||||
|
||||
* Index(文件管理器)
|
||||
* Nota(文本编辑器)
|
||||
* VVave(音乐播放器)
|
||||
* Clip(视频播放器)
|
||||
* Pix(图片查看器)
|
||||
|
||||
虽然这些自制应用本身质量不错,但它们在 Nitrux Linux 的默认桌面环境 KDE Plasma 里总显得不合群。因此,Maui Shell 应运而生。
|
||||
|
||||
### Maui Shell 介绍
|
||||
|
||||
![][5]
|
||||
|
||||
借助与 Maui 应用相同的 MauiKit 和 Qt 技术底层,Maui Shell 是 Nitrux 在桌面环境领域的一个新尝试。从上面的截图可以看出,它在很大程度上受到了 GNOME Shell 的启发,这在使用过程中也确实有所体现。
|
||||
|
||||
但,这并不意味着 Maui Shell 没有原创的地方。从底部上滑可打开类似于 GNOME “活动”的概览界面。与此相邻的是一个小 Dock,可以通过相当美观的启动器来启动应用。右上角有一个与 macOS 相似的控制中心,内有精心设计的菜单和许多控制功能。
|
||||
|
||||
在我使用它的过程中,一切都是如此精致、自然。我感觉这与它极致现代、扁平的设计美学有关,我甚至认为 Maui Shell 已经超越了 GNOME 和 KDE Plasma 等同类软件。说到 Plasma,与 Nitrux 的默认 Plasma 版本相比,Maui Shell 在低端设备(和虚拟机)上的反应更加灵敏。
|
||||
|
||||
总的来说,我预测 Maui Shell 将依靠其实用性成为 “Linux 桌面环境之王”。然而,我还没谈到 Maui Shell 最核心的特性:<ruby>跨终端自适应性<rt>Convergence</rt></ruby>。
|
||||
|
||||
### 主流之中的融合
|
||||
|
||||
许多人可能还记得 2010 年 Canonical 开发了一款类似的跨终端桌面环境 Unity,它最终以失败落幕,到 2018 年则被完全淘汰了。但是,Unity 和 Maui Shell 有一个共同特性 —— 那就是跨终端融合性。
|
||||
|
||||
随着 Linux 在移动端的开发力度逐渐加大,跨终端支持变得尤为重要。由此来看,一个新的桌面环境竟能同时支持桌面端和移动端,的确不可思议。
|
||||
|
||||
这一点必须依靠大量的跨终端应用实现,而 Maui 已经处在了完美的衔接点上。这仅仅是我相信 Maui Shell 能成为 Linux 桌面未来的原因之一。
|
||||
|
||||
### 立即试用 Maui Shell
|
||||
|
||||
与其他新发布的软件不同,Maui Shell 已经预装于新发布的 Nitrux 1.8。如果你想亲自尝试一下,那请随时从下方链接中获取 ISO 镜像。但是,在尝试之前,请务必知晓:Maui Shell 仍处于早期开发阶段。
|
||||
|
||||
尽管 Maui Shell 拥有许多特色功能,但部分功能可能存在问题、尚未实现,要么就是缺失了,其中包括:
|
||||
|
||||
* 蓝牙支持
|
||||
* PulseAudio 支持
|
||||
* 网络开关
|
||||
* 媒体控制(MPRIs)
|
||||
* 拖放支持
|
||||
* 多显示器支持
|
||||
* 设置应用
|
||||
* XWayland Shell 插件
|
||||
|
||||
因此,我暂时不能建议你使用 Maui Shell 作为主力桌面环境。为此,你可能需要等待 2022 年秋季发布的正式版本。
|
||||
|
||||
在此之前,我仍将持续关注 Maui Shell。对于这款桌面环境,你的评价如何?欢迎在评论区说出你的想法!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/maui-shell-unveiled/
|
||||
|
||||
作者:[Jacob Crume][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[imgradeone](https://github.com/imgradeone)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/jacob/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://nxos.org/
|
||||
[2]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/Maui-Apps-.png?resize=1568%2C1012&ssl=1
|
||||
[3]: http://mauikit.org/apps/index
|
||||
[4]: https://news.itsfoss.com/linux-apps-discovered-2021/
|
||||
[5]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/maui-shell-nitrux.webp?w=1000&ssl=1
|
@ -0,0 +1,59 @@
|
||||
[#]: subject: "15 ways to advance your Kubernetes journey in 2022"
|
||||
[#]: via: "https://opensource.com/article/21/12/learn-kubernetes-2022"
|
||||
[#]: author: "Moshe Zadka https://opensource.com/users/moshez"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14169-1.html"
|
||||
|
||||
2021 总结:推进你的 Kubernetes 之旅的 15 种方法
|
||||
======
|
||||
|
||||
> 无论你是在家庭实验室里试验 Kubernetes,还是想成为一个成为 Kubernetes 的维护者,这里都有适合你的资源。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/11/165225i3tvyk3zqbq36yb8.jpg)
|
||||
|
||||
2021 年对于 Kubernetes 来说是令人兴奋的一年,这些文章证明了这一点。从有趣的界面到家庭实验室再到开发环境,看看我在 2021 年最喜欢的 K8s 文章。
|
||||
|
||||
如果你对基本原理感兴趣,这篇 [介绍 Linux 上的容器][2] 的文章从内到外阐明了 Linux 容器的工作原理。你是否想获取一些乐趣?安装 minikube 并开始使用 [DOOM 游戏作为界面][3] 来管理它。另一个选择是 [kubectl][4],这是一个更传统的 Kubernetes 控制 CLI。
|
||||
|
||||
即使你只在你的 [Linux 家庭实验室][5] 上运行 Kubernetes,你也可以使用 [Terraform 和 Helm][6] 等工具来自动化日常操作。这创造了一个 [更好地掌握 Terraform][7] 的机会。
|
||||
|
||||
生活中可以确定的几件事之一是,计算机会以奇怪而有趣的方式出错。[用 Prometheus 和 Grafana 监控你的 Kubernetes 集群][8],看看它是如何出错的。[使用 Grafana Tempo 的分布式跟踪][9]来监控里面运行的应用。通过引入 [Chaos Mesh][10] 在 Kubernetes 中造成有意的混乱,来监控你监控的性能。
|
||||
|
||||
如果你正在开发在 Kubernetes 上运行的应用,[Quarkus 可以帮助你开发和测试][11]。使用 Java 的开发者 [可以在 Kubernetes 上使用容器运行][12] 应用。像 [Tackle-DiVA][13] 这样的工具有助于将应用移植到容器中。
|
||||
|
||||
像所有成功的开源项目一样,Kubernetes 的部分价值是一个强大的 [生态系统][14]。比如 [KubeEdge 项目][15],它有助于将计算和数据更接近终端用户。在使用 Kubernetes 一段时间后,你甚至可能想 [成为 Kubernetes 维护者][16]。
|
||||
|
||||
有这么多有趣的 Kubernetes 内容可供学习,可能很难将它们全部看完。不过,对于系统管理员和开发人员来说,优秀的 Kubernetes 资源是必须的。请阅读这些精选的内容。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/12/learn-kubernetes-2022
|
||||
|
||||
作者:[Moshe Zadka][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/moshez
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ship_captain_devops_kubernetes_steer.png?itok=LAHfIpek (Ship captain sailing the Kubernetes seas)
|
||||
[2]: https://opensource.com/article/21/8/container-linux-technology
|
||||
[3]: https://opensource.com/article/21/6/kube-doom
|
||||
[4]: https://opensource.com/article/21/7/kubectl
|
||||
[5]: https://opensource.com/article/21/6/kubernetes-linux-homelab
|
||||
[6]: https://opensource.com/article/21/8/terraform-deploy-helm
|
||||
[7]: https://opensource.com/article/21/8/terraform-tips
|
||||
[8]: https://opensource.com/article/21/6/chaos-grafana-prometheus
|
||||
[9]: https://opensource.com/article/21/2/tempo-distributed-tracing
|
||||
[10]: https://opensource.com/article/21/6/chaos-mesh-kubernetes
|
||||
[11]: https://opensource.com/article/21/7/developer-productivity-linux
|
||||
[12]: https://opensource.com/article/21/5/what-serverless-java
|
||||
[13]: https://opensource.com/article/21/6/tackle-diva-kubernetes
|
||||
[14]: https://opensource.com/article/21/6/kubernetes-ebook
|
||||
[15]: https://opensource.com/article/21/1/kubeedge
|
||||
[16]: https://opensource.com/article/21/2/kubernetes-maintainer
|
@ -0,0 +1,114 @@
|
||||
[#]: subject: "Using GNOME Screenshot Tool in Linux Like a Pro"
|
||||
[#]: via: "https://itsfoss.com/using-gnome-screenshot-tool/"
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14166-1.html"
|
||||
|
||||
在 Linux 中像专业人士一样使用 GNOME 截图工具
|
||||
======
|
||||
|
||||
有 [几个可用于 Linux 的截图工具][1],我喜欢 [使用 Flameshot 进行截图][2] 和 Shutter 来编辑现有的截图。
|
||||
|
||||
但不幸的是,Flameshot 不能在 4K 屏幕上工作。因此,我不得不使用默认的 GNOME 截图工具,它在我的带有超高清屏幕的戴尔 XPS 上工作得非常好。
|
||||
|
||||
![GNOME screenshot tool][3]
|
||||
|
||||
这一“被迫之举”让我意识到,如果你知道如何正确使用,[GNOME 截图][4] 并不是一个糟糕的工具。
|
||||
|
||||
在这里,我指的是用键盘快捷键来使用它,因为这样可以节省大量的时间。
|
||||
|
||||
让我展示一下如何像专家一样用那些方便的键盘快捷键来使用 GNOME 截图应用。
|
||||
|
||||
我假定你没有改变这里的默认的截图的键盘快捷键。
|
||||
|
||||
### 对整个屏幕进行截图:使用 Prt Scr 键
|
||||
|
||||
这是最简单的操作。在你的键盘上找到 `Prt Sc`(或称 `Prt Scr`、`Prt Scn`)键并按下它。它将对整个屏幕进行截图,并将其保存在你的主目录下的图片文件夹中。
|
||||
|
||||
![Screenshot of entire screen saved as PNG file][5]
|
||||
|
||||
在某些发行版(或版本)中,你可能会看到是否要保存截图的选项,但大多数情况下,它会自动保存屏幕截图。
|
||||
|
||||
这里需要注意的另一件事是,如果你有多个屏幕连接到系统上,它会把所有的屏幕一起截图。这意味着,你会得到一个超宽的图像。
|
||||
|
||||
但是,如果你只想对某个应用进行截图,而不是对整个屏幕进行截图呢?
|
||||
|
||||
### 给一个应用程序的窗口截图:使用 Alt+Prt Scr 键
|
||||
|
||||
要给正在运行的图形应用截图,你需要这样做:
|
||||
|
||||
点击正在运行的应用,使其获得焦点。现在,按住 `Alt` 键并按 `Prt Scr` 键。
|
||||
|
||||
它将得到应用窗口的截图,并保存到图片目录中。
|
||||
|
||||
![Screenshot of an application window in GNOME][6]
|
||||
|
||||
这样获取的截图也有一个阴影效果,看起来很不错。
|
||||
|
||||
这很好,但如果你只想给某个特定区域截图,而不是整个屏幕呢?这也有一个技巧。
|
||||
|
||||
### 对屏幕的选定区域进行截图:使用 Shift+Prt Scr 键
|
||||
|
||||
按住 `Shift` 键。然后按 `Prt Scr` 键。你会看到屏幕上出现一个选框。将鼠标移动到所需的区域,开始拖动光标。它将高亮显示该区域,并在你释放鼠标后立即进行截图。
|
||||
|
||||
![Taking screenshot of an area in GNOME][7]
|
||||
|
||||
### 复制截图到剪贴板而不是保存它们
|
||||
|
||||
当你在和别人聊天时,要和对方分享屏幕截图时,这非常有用。
|
||||
|
||||
![Screenshot copied to the clipboard can be used in various applications][8]
|
||||
|
||||
首先截图,但没必要将保存的截图文件附在聊天工具中。相反,你可以直接将截图复制到剪贴板,然后使用 `Ctrl+V` 快捷键将图像(从剪贴板)粘贴到聊天工具。
|
||||
|
||||
这样,你的系统就不会保留不必要的截图,你也可以节省一些鼠标点击次数。
|
||||
|
||||
要把截图保存到剪贴板,以便你能把它们粘贴到聊天工具、绘图工具或文档中,你必须把 `Ctrl` 键和你在前面几节中看到的其他截图快捷键一起使用。
|
||||
|
||||
* `Ctrl+Prt Scr`:将整个屏幕的截图复制到剪贴板上。
|
||||
* `Ctrl+Alt+Prt Scr`:将应用窗口的截图复制到剪贴板上。
|
||||
* `Ctrl+Shift+Prt Scr`:将选定区域的截图复制到剪贴板上
|
||||
|
||||
我必须补充一点,在这种情况下,[使用像 Flameshot 这样的工具][2] 甚至更好一些,因为它允许你在将截图保存到剪贴板之前对其进行注释。这样,你可以很容易地高亮屏幕的重要部分。
|
||||
|
||||
### 在截图中添加延迟,以便对下拉菜单进行截图
|
||||
|
||||
到目前为止,一切都很好。你只需按下几个键,就可以随心所欲地进行截图了。
|
||||
|
||||
问题是,当你要对下拉菜单或右键动作等进行截图时。当你按下屏幕截图键时,想要的项目可能会消失。
|
||||
|
||||
为了处理这种情况,你可以对该区域或整个屏幕进行截图,但要有一个延迟。
|
||||
|
||||
![Taking screenshot with delay][9]
|
||||
|
||||
在 GNOME 屏幕截图工具中,你可以选择添加这个延迟。例如,你添加了 6 秒的延迟。你点击截图按钮,有 6 秒时间来做/显示你想做的事情。6 秒后,它就会自动截图了。
|
||||
|
||||
### 你有什么技巧吗?
|
||||
|
||||
这就是我使用 GNOME 截图工具的所有技巧。如果你还没有广泛地使用它,你应该会发现它很有帮助。如果你已经是一个专家,也许你知道一些可以添加到本文中的东西?请在评论区与我们其他人分享吧。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/using-gnome-screenshot-tool/
|
||||
|
||||
作者:[Abhishek Prakash][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://itsfoss.com/author/abhishek/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/take-screenshot-linux/
|
||||
[2]: https://itsfoss.com/flameshot/
|
||||
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/gnome-screenshot-tool.jpg?resize=800%2C413&ssl=1
|
||||
[4]: https://apps.gnome.org/app/org.gnome.Screenshot/
|
||||
[5]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/12/screenshot-of-entire-screen-gnome.jpg?resize=800%2C532&ssl=1
|
||||
[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/screenshot-of-an-application-windows-gnome.png?resize=800%2C437&ssl=1
|
||||
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/take-screenshot-of-region-gnome.webp?resize=800%2C430&ssl=1
|
||||
[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/12/saving-screenshot-to-clipboard-and-using-it.webp?resize=800%2C476&ssl=1
|
||||
[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/12/taking-screenshot-with-delay-gnome.webp?resize=800%2C428&ssl=1
|
@ -0,0 +1,95 @@
|
||||
[#]: subject: "10 Git tutorials to level up your open source skills in 2022"
|
||||
[#]: via: "https://opensource.com/article/22/1/git-tutorials"
|
||||
[#]: author: "Manaswini Das https://opensource.com/users/manaswinidas"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "stevenzdg988"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14194-1.html"
|
||||
|
||||
2021 总结:提升 Git 技能的 10 篇指南
|
||||
======
|
||||
|
||||
> 这些文章包含了黑科技、鲜为人知的事实,以及在使用 Git 时可以派上用场的技巧和窍门。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/19/171344h03bqej63r36vyvl.jpg)
|
||||
|
||||
Git 是代码协作开发工作流程中不可或缺的一部分。无论你是初学者还是专家,第一件事就是在使用开源代码时需要学习这个功能强大的版本控制系统。对于 Git,不需要知道所有事情,但是了解一些特殊的黑科技可以让你在 GitLab 等平台上更轻松地分享代码,因此你可以与不同地方的开发人员协作。如果有什么没把握的地方,`git --help` 可以帮助你。
|
||||
|
||||
我每天都为了解 Git 所提供的控制能力而感到惊讶。没有哪种情况是你无法恢复到早期版本的,无论你所处的情况是多么不可能或棘手。
|
||||
|
||||
在 2021 年我们发布了大量 Git 的文章;我只汇总了其中前 10 篇,这些文章包含了各种黑科技、鲜为人知的事实,以及在使用 Git 时可以派上用场的技巧和窍门。
|
||||
|
||||
### 使用 git stash 命令的实用指南
|
||||
|
||||
[Ramakrishna Pattnaik][2] 解释了 [git stash 命令][3] 的功能。这篇文章重点介绍 `git stash` 如何帮助你列出、检查、保存和恢复更改,以确保切换分支时的无忧体验。它还可以帮助你跟踪在本地无需提交的更改,而同时保持干净的工作目录。
|
||||
|
||||
### 5 个让你的 Git 技能更上一层楼的 Git 命令
|
||||
|
||||
[Seth Kenlon][4] 详细介绍了 [五个鲜为人知的 Git 命令][5],它们可以让你的生活更轻松。开发人员可以使用 `git whatchanged`、`git stash`、`git worktree` 和 `git cherry-pick` 等命令来节省时间。
|
||||
|
||||
### Git cherry-pick 简介
|
||||
|
||||
[Rajeev Bera][6] 教程将引导你了解 [git cherry-pick 命令][7] 是什么,为什么和如何使用它,并列出 `git cherry-pick` 可以帮助你避免棘手的情况所有用例。
|
||||
|
||||
### 3 个使用 git cherry-pick 命令的原因
|
||||
|
||||
我分享了 [利用 git cherry-pick][8] 如何帮助你避免冗余,一次性处理多个提交并恢复丢失的更改。
|
||||
|
||||
### 使用 git worktree 自由地尝试你的代码
|
||||
|
||||
`git stash` 命令负责将更改保存到工作目录。Seth Kenlon 向我们介绍了 `git worktree` 和几个 [git worktree 用例][9],它们可以帮助你将存储库恢复到已知状态。
|
||||
|
||||
### Git 上下文切换的 4 个技巧
|
||||
|
||||
[Olaf Alders][10] 的这篇文章讨论了使用 Git 时 [切换分支的四种不同方式][11] 的利弊。这些选项将帮助你简化工作流程,并保持干净的工作目录,而不会丢失你的更改。
|
||||
|
||||
### 查找 Git 提交中的更改
|
||||
|
||||
Seth Kenlon 解释了如何利用如 [git log 和 git whatchanged][12] 等简单命令来提取有关 Git 提交内容中更改的特定信息。这是一个有用的快捷方式,而且名字很容易记住。
|
||||
|
||||
### 管理主目录的 7 个 Git 技巧
|
||||
|
||||
Seth Kenlon 分享了 [使用 Git 管理和组织 $HOME 变量][13] 的注意事项,并解释了它如何让他的跨设备生活更实用。更好的是,这让他可以自由地尝试新想法,因为他知道他可以轻松地将它们回滚。
|
||||
|
||||
### GitOps 与 DevOps:有什么区别?
|
||||
|
||||
[Bryant Son][14] 向你介绍了 [GitOps][15],他将其描述为 DevOps 的进化版本,它使用 Git 作为单一事实来源。这篇文章还列出了其它有用资源,可用于学习 DevOps 并在开源领域找到工作。
|
||||
|
||||
### 开始使用 Argo CD
|
||||
|
||||
[Ayush Sharma][16] 详细介绍了 [Argo CD][17] 的优势,这是一种基于拉取式的 GitOps 开发工具。Argo CD 通过在 Git 中管理 Kubernetes 清单并将它们同步到集群中,为你提供两全其美的体验。
|
||||
|
||||
你能想到其他让你的生活更轻松的 Git 技巧吗?请在评论中告诉我们。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/git-tutorials
|
||||
|
||||
作者:[Manaswini Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[stevenzdg988](https://github.com/stevenzdg988)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/manaswinidas
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-concentration-focus-windows-office.png?itok=-8E2ihcF (Woman using laptop concentrating)
|
||||
[2]: https://opensource.com/users/rkpattnaik780
|
||||
[3]: https://opensource.com/article/21/4/git-stash
|
||||
[4]: https://opensource.com/users/seth
|
||||
[5]: https://opensource.com/article/21/4/git-commands
|
||||
[6]: https://opensource.com/users/acompiler
|
||||
[7]: https://opensource.com/article/21/4/cherry-picking-git
|
||||
[8]: https://opensource.com/article/21/3/git-cherry-pick
|
||||
[9]: https://opensource.com/article/21/4/git-worktree
|
||||
[10]: https://opensource.com/users/oalders
|
||||
[11]: https://opensource.com/article/21/4/context-switching-git
|
||||
[12]: https://opensource.com/article/21/4/git-whatchanged
|
||||
[13]: https://opensource.com/article/21/4/git-home
|
||||
[14]: https://opensource.com/users/brson
|
||||
[15]: https://opensource.com/article/21/3/gitops
|
||||
[16]: https://opensource.com/users/ayushsharma
|
||||
[17]: https://opensource.com/article/21/8/argo-cd
|
||||
[18]: https://opensource.com/how-submit-article
|
@ -0,0 +1,74 @@
|
||||
[#]: subject: "5 tips for learning a new programming language in 2022"
|
||||
[#]: via: "https://opensource.com/article/22/1/learn-programming"
|
||||
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14178-1.html"
|
||||
|
||||
2021 总结:学习新编程语言的 5 个小知识
|
||||
======
|
||||
|
||||
> 借助开源的力量,任何人都可以编程。找到一个你想做的项目,并让它成为你进入编程的第一个项目。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/14/151030layqs229euy206sc.jpg)
|
||||
|
||||
任何人都可以开始学习编程。[我们都是从某个起点开始的][2],而且你不需要有计算机科学背景就可以学习编程。这就是 Linux 和开源的力量:任何人都可以学习一点编程。
|
||||
|
||||
如果你想学习一种新的编程语言,我们有几篇可以让你起步的很棒的文章。下面是我们最受欢迎的几篇文章,它们可以帮助到你。
|
||||
|
||||
### 比较编程语言
|
||||
|
||||
大多数编程语言都有某些相似之处。当你知道如何用一种编程语言做一件事,学习下一种编程语言主要是弄清其语法和结构。
|
||||
|
||||
#### 不同的编程语言如何做同样的事情
|
||||
|
||||
学习一种新的编程语言的一个好方法是写一个简单的测试程序,如一个游戏,以探索该编程语言的工作原理。我经常写的一个示例程序是一个简单的“猜数字”游戏,即计算机在 1 到 100 之间挑选一个数字,让我猜出来。今年早些时候,我们发表了 [一系列文章][3],探讨如何用几种编程语言编写猜数字游戏。了解这些不同的编程语言如何实现“猜数字”游戏的主要步骤。
|
||||
|
||||
#### 不同的编程语言如何读写数据
|
||||
|
||||
[Alan 的][5]文章比较了不同的编程语言如何在相同的思想下 [读写数据][4]。无论这些数据是来自于配置文件还是用户创建的文件,在存储设备上处理数据对于编码者来说是很常见的。Alan 的比较文章提供了对几种流行的编程语言,如 C、Java、Groovy 和其他语言所采取的不同方法的深入了解。
|
||||
|
||||
### 学习一种新的编程语言
|
||||
|
||||
无论你是想学习一种新的编程语言,还是想探索一种现有的编程语言,请看看下面这些关于学习编程的好文章。
|
||||
|
||||
#### 如何用 WebAssembly 编写 “Hello World”
|
||||
|
||||
WebAssembly 是一种字节码格式,几乎所有的浏览器都可以将其编译为主机系统的机器代码。与 JavaScript 和 WebGL 一起,WebAssembly 满足了将应用移植到网络浏览器中独立使用的需求。[Stephan][7] 解释了如何用 WASM-text 创建经典的 [Hello World 程序][6]。
|
||||
|
||||
#### 用 Golang 轻松实现交叉编译
|
||||
|
||||
[Gaurav][9] 写了关于通过将脚本转换为 Go 程序来学习 [Go 的交叉编译支持][8]。你可以一次写好你的程序,并通过交叉编译为另一个环境进行编译。
|
||||
|
||||
#### 为什么我使用 D 编程语言来编写脚本
|
||||
|
||||
D 编程语言由于其静态类型和元编程能力,常常被认为是一种系统编程语言。然而,它也是一种非常高效的脚本语言。[Lawrence][11] 写了关于如何利用 D 编程语言进行 [普通的脚本编写][10]。
|
||||
|
||||
借助于开源的力量,编程可以被任何人所接受。找到一个你想做的项目,并让它成为你进入编程的第一个项目。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/learn-programming
|
||||
|
||||
作者:[Jim Hall][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/jim-hall
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/OSDC_women_computing_2.png?itok=JPlR5aCA (Woman sitting in front of her computer)
|
||||
[2]: https://opensource.com/article/21/8/first-programming-language
|
||||
[3]: https://opensource.com/article/21/4/compare-programming-languages
|
||||
[4]: https://opensource.com/article/21/7/programming-read-write
|
||||
[5]: https://opensource.com/users/alansmithee
|
||||
[6]: https://opensource.com/article/21/3/hello-world-webassembly
|
||||
[7]: https://opensource.com/users/hansic99
|
||||
[8]: https://opensource.com/article/21/1/go-cross-compiling
|
||||
[9]: https://opensource.com/users/gkamathe
|
||||
[10]: https://opensource.com/article/21/1/d-scripting
|
||||
[11]: https://opensource.com/users/aberba
|
@ -0,0 +1,88 @@
|
||||
[#]: subject: "Deepin Desktop With Ubuntu? UbuntuDDE Remix 21.10 is Here!"
|
||||
[#]: via: "https://news.itsfoss.com/ubuntudde-remix-21-10/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14149-1.html"
|
||||
|
||||
想在 Ubuntu 上使用深度桌面?UbuntuDDE Remix 21.10 来了!
|
||||
======
|
||||
|
||||
> 想在不安装深度操作系统的情况下获得最新的深度桌面体验吗?UbuntuDDE Remix 21.10 终于登场了!
|
||||
|
||||
![](https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/ubuntu-dde-remix.jpg?w=1200&ssl=1)
|
||||
|
||||
[深度 20.3][1] 已经发布了一段时间,做了一些基本的改进和细微的视觉变化。
|
||||
|
||||
但是,如果你想在 Ubuntu 上面获得最新的深度桌面体验?UbuntuDDE Remix 21.10 “Impirish Indri” 终于登场了。
|
||||
|
||||
这可能是新年伊始第一周中令人兴奋的发布之一吧?
|
||||
|
||||
### UbuntuDDE Remix 21.10:有什么新内容?
|
||||
|
||||
该版本的关键亮点是增加了最新的深度桌面。你应该还会发现一个更新的 Linux 内核、Calamares 安装程序、更新的应用程序、新的壁纸,以及其他改进。
|
||||
|
||||
下面让我介绍一下这些基本的变化。
|
||||
|
||||
#### Ubuntu 21.10 & Linux 内核 5.13
|
||||
|
||||
![][2]
|
||||
|
||||
[Linux 内核 5.13][3] 是一个必不可少的升级,它包括了一些硬件改进和安全增强。
|
||||
|
||||
具体来说,UbuntuDDE Remix 21.10 采用了 Linux 内核 5.13.0-22。
|
||||
|
||||
而且,这是建立在 [Ubuntu 21.10][4] 的基础上的。因此,在这里你也可以得到 Ubuntu 21.10 的改进和功能。
|
||||
|
||||
#### 最新的深度桌面环境
|
||||
|
||||
有了最新的深度桌面,你也可以期待最新的软件包,包括更新的深度商店等等。
|
||||
|
||||
![][5]
|
||||
|
||||
新的壁纸应该可以让你使桌面看起来很有美感。
|
||||
|
||||
![][6]
|
||||
|
||||
#### 更新的软件包
|
||||
|
||||
Firefox 95.0 是默认的网页浏览器。LibreOffice 7.2.3.2 是默认的办公应用程序。
|
||||
|
||||
此外,你会发现其他几个与深度操作系统相关的软件包已经更新到最新版本。
|
||||
|
||||
#### 其他改进措施
|
||||
|
||||
不仅仅限于新增加的内容,你还会发现针对 UbuntuDDE 和上游深度桌面体验的错误修复。
|
||||
|
||||
你可以通过 [官方公告博文][7] 了解更多关于该版本的信息。
|
||||
|
||||
### 下载 UbuntuDDE Remix 21.10
|
||||
|
||||
你可以从其官方网站上抓取 ISO 文件并安装。如果你想了解任何已知的问题,或获得帮助,你可以看看他们的 [论坛或群组][8]。
|
||||
|
||||
- [UbuntuDDE Remix 21.10][9]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/ubuntudde-remix-21-10/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://news.itsfoss.com/deepin-20-3-release/
|
||||
[2]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/ubuntudde-21-10-terminal.png?w=1001&ssl=1
|
||||
[3]: https://news.itsfoss.com/linux-kernel-5-13-release/
|
||||
[4]: https://news.itsfoss.com/ubuntu-21-10-release/
|
||||
[5]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/ubuntudde-21-10-store.png?w=943&ssl=1
|
||||
[6]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/ubuntudde-21-10-wallpapers.png?resize=1568%2C691&ssl=1
|
||||
[7]: https://ubuntudde.com/blog/ubuntudde-remix-21-10-impish-release-note
|
||||
[8]: https://ubuntudde.com/support/
|
||||
[9]: https://ubuntudde.com
|
@ -0,0 +1,81 @@
|
||||
[#]: subject: "Intel is Gearing Up to Give a ‘Superpower’ to Linux that Windows Users Don’t Have"
|
||||
[#]: via: "https://news.itsfoss.com/intel-linux-kernel/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14153-1.html"
|
||||
|
||||
英特尔正准备为 Linux 提供 Windows 用户所没有的 “超能力”
|
||||
======
|
||||
|
||||
> 英特尔计划在 Linux 内核 5.17 中引入一个特殊的变化,可以在不重启系统的情况下更新系统固件。
|
||||
|
||||
![](https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/intel-linux.png?w=1200&ssl=1)
|
||||
|
||||
去年发现的几个安全漏洞,使得系统管理员很难在不停机的情况下迅速修补系统。
|
||||
|
||||
如果能做出一些改进,在不重启系统的情况下更新一些关键组件以提高安全/性能呢?
|
||||
|
||||
英特尔旨在通过其新的 PFRUT(<ruby>平台固件运行时更新和遥测<rt>Platform Firmware Runtime Update and Telemetry</rt></ruby>)驱动程序来实现这一目标。
|
||||
|
||||
### 英特尔计划在 Linux 内核 5.17 中提供 PFRUT
|
||||
|
||||
虽然 Linux 内核 5.16 将在本周晚些时候发布,不过英特尔的目标是将这一新的功能合并到即将发布的 Linux 内核 5.17 稳定版。
|
||||
|
||||
但是,它究竟是什么?
|
||||
|
||||
有了 PFRUT 驱动,特定组件(或系统固件)可以在系统运行时进行更新,而不需要重新启动。
|
||||
|
||||
最初,英特尔倾向于将其称为“无缝更新”解决方案。然而,随着最近被添加到 Linux 电源管理的 linux-next 分支中的 Linux 内核提交,他们可能会继续使用一个厂商中立的名字,即 `pfrut_driver`。
|
||||
|
||||
顺便说一句,linux-next 分支代表着这些变化将进入下一个 Linux 内核稳定版(5.17)。
|
||||
|
||||
在技术上,这个 [提交][1] 对该变化的解释如下:
|
||||
|
||||
> 用户应该提供 EFI 封包,并通过将该封包写入设备的特殊文件以将其传递给驱动程序。驱动程序在特定的 <ruby>ACPI 平台固件运行时更新<rt> ACPI Platform Firmware Runtime Update</rt></ruby>设备(INTC1080)的 ACPI _DSM 方法的帮助下,将封包传输到平台固件,而实际的固件更新是由平台固件中的低级管理模式代码进行的。
|
||||
|
||||
就像人们通常期望的那样,这应该可以消除停机时间,可以对解决任何安全和性能改进的固件进行基本更新。而且,系统固件更新可以很容易地直接通过操作系统(这里是 Linux)进行。
|
||||
|
||||
正如其中一个 [详细说明其工作原理的 PDF 文件][2] 中强调的那样,驱动程序的遥测部分是为了 “从 MM 中检索日志信息,以进行监控并找出问题的根本原因”。
|
||||
|
||||
请注意,这只有在 Linux 系统和英特尔芯片上才能实现。
|
||||
|
||||
考虑到当你需要修补系统固件以抵御安全问题时,等待系统上的任务完成不是一种理想状况,这种能力的增加应该是非常方便的。
|
||||
|
||||
### 这是为 Linux 桌面或服务器准备的吗?
|
||||
|
||||
该改进主要是为服务器专用硬件量身定做的。
|
||||
|
||||
英特尔的官方文件指出,这是为具有高服务水平协议(SLA)的系统准备的,这种 SLA 需要尽量减少重启。
|
||||
|
||||
然而,这对拥有企业级系统的特定桌面用户群应该也是有用的。
|
||||
|
||||
虽然这可能不是桌面 Linux 发行版必不可少的东西,但它可能是改善用户体验的一个令人兴奋的开始。特别是对于热衷于保持系统固件更新而不严重干扰其工作的用户。
|
||||
|
||||
这也应该可以引入更多类型的更新的可能性,当涉及到 BIOS 或 UEFI 时,可以由操作系统而不是主板处理。
|
||||
|
||||
这不仅限于为你的桌面配置服务器级别的硬件的 Linux 桌面用户。
|
||||
|
||||
虽然目前只限于 Linux 系统,但这也应该很快可以用于 Windows 和其他操作系统。
|
||||
|
||||
你对英特尔推出的这一变化有何看法?你认为这是对系统固件更新处理方式的一个重大改进吗?
|
||||
|
||||
欢迎在下面的评论中分享你的想法。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/intel-linux-kernel/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/commit/?h=linux-next&id=0db89fa243e5edc5de38c88b369e4c3755c5fb74
|
||||
[2]: https://uefi.org/sites/default/files/resources/Intel_MM_OS_Interface_Spec_Rev100.pdf
|
@ -0,0 +1,87 @@
|
||||
[#]: subject: "Pinta 2.0 is a Major Upgrade With GTK 3 Port and Improved HiDPI Support"
|
||||
[#]: via: "https://news.itsfoss.com/pinta-2-0-release/"
|
||||
[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14150-1.html"
|
||||
|
||||
Pinta 2.0 发布,移植到 GTK 3,改进了 HiDPI 支持
|
||||
======
|
||||
|
||||
> 随着最新版本的发布,Pinta 终于带来了视觉上的更新和改进、移植到了 GTK 3 和 .NET 6。
|
||||
|
||||
![](https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/pinta-2.jpg?w=1200&ssl=1)
|
||||
|
||||
新的一年的一周,你是否正在期待一些最新的开源应用发布。
|
||||
|
||||
你很幸运,Pinta 在新年前就宣布了他们的重大升级版本。
|
||||
|
||||
Pinta 是一个轻量级的绘画应用,可以作为一个简单的图像编辑工具。作为 [顶级开源绘画应用][1] 之一,Pinta 的新版本将其基础转移到 GTK3 和 .NET 6,并带来了一些新的功能和用户界面改进。
|
||||
|
||||
它是一个跨平台的开源应用程序,可用于 Linux、Windows 和 MacOS。
|
||||
|
||||
让我们来看看 Pinta 2.0 提供了什么。
|
||||
|
||||
### 有什么新变化?
|
||||
|
||||
![Pinta 2.0][2]
|
||||
|
||||
#### GTK3 移植
|
||||
|
||||
如上所述,Pinta 现在已经被移植到了 GTK3,应该可以支持 GTK3 主题。虽然这可能不会带来巨大的变化,但作为一个 Linux 的原生应用程序,肯定会对体验有所改善。
|
||||
|
||||
GTK 对话框和小工具也得到了相应的调整。这包括增加了 GTK 字体选择器,取代了旧的文本工具,并使用了平台原生的文件对话框。
|
||||
|
||||
#### 用户界面的改进
|
||||
|
||||
在用户界面方面,有许多变化和改进。其中一些包括:
|
||||
|
||||
* 使用 HiDPI 显示器的用户或许遇到的问题更少
|
||||
* 一些工具现在使用旋转按钮而不是组合框
|
||||
* 可以在状态栏上查看位置、缩放和调色板等信息
|
||||
* 调色板现在显示最近使用的颜色
|
||||
* 使用鼠标中键,你可以轻松地缩放和平移画布
|
||||
* 取消了 “插件” 和 “最近打开” 菜单项
|
||||
|
||||
如果你使用 macOS,你可以注意到它使用了全局菜单而不是应用程序菜单,使其看起来更干净。
|
||||
|
||||
#### 其他改进措施
|
||||
|
||||
这个版本还改进了油漆桶、选择工具和魔杖工具的性能,也修复了大量的错误。
|
||||
|
||||
Windows 和 macOS 版本也得到了改进和更新。
|
||||
|
||||
你可以参考 [官方发布说明][3] 了解更多技术细节。
|
||||
|
||||
### 下载 Pinta 2.0
|
||||
|
||||
我觉得将 Pinta 移植到 GTK3 的决定会受到用户的欢迎,但由于 [GTK 4.0][4] 已经崭露头角,是否有点太晚了?让我们拭目以待。
|
||||
|
||||
总的来说,这个版本为用户的桌面外观提供了统一性。Pinta 2.0 看起来是一个做了有益改进的可靠版本。
|
||||
|
||||
你可以以 Flatpak、Snap、Tarball 等以及其它用于 Linux 的软件包格式下载 Pinta 2.0。
|
||||
|
||||
Windows 和 macOS 用户可以使用各自的安装程序,现在它捆绑了所有必要的依赖,如 GTK 和 .NET / Mono。
|
||||
|
||||
- [下载 Pinta 2.0][5]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/pinta-2-0-release/
|
||||
|
||||
作者:[Rishabh Moharir][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/rishabh/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/open-source-paint-apps/
|
||||
[2]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/Pinta2.0.png?w=1120&ssl=1
|
||||
[3]: https://www.pinta-project.com/releases/2-0
|
||||
[4]: https://news.itsfoss.com/gtk-4-release/
|
||||
[5]: https://www.pinta-project.com/releases/
|
@ -0,0 +1,59 @@
|
||||
[#]: subject: "5 ways to learn the C programming language in 2022"
|
||||
[#]: via: "https://opensource.com/article/22/1/c-programming"
|
||||
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14175-1.html"
|
||||
|
||||
2021 总结:学习 C 语言编程的 5 种方法
|
||||
======
|
||||
|
||||
> 只需掌握一点 C 语言的知识,你就可以做很多事情。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/13/192104tb962skk0mm4r44q.jpg)
|
||||
|
||||
我精通几种编程语言,但我最喜欢的是 C 语言。C 语言开发于 20 世纪 70 年代,作为一种系统编程语言,在 2021 年仍然是最受欢迎的编程语言之一。如果你想探索 C 语言的几个特点,可以从去年的这些热门文章开始:
|
||||
|
||||
### 在 C 语言中使用 getopt 进行短选项解析
|
||||
|
||||
如果你的程序每次运行时都能对用户作出反应,你就可以使它变得更加灵活。让你的用户告诉你的程序使用什么文件或如何以不同的方式做事情。为此,你需要读取命令行。[这篇文章][2] 告诉你如何使用 `argv` 直接读取命令行,并使用 `getopt` 读取短命令行选项。
|
||||
|
||||
### 在 Linux 中用 ncurses 定位屏幕上的文本
|
||||
|
||||
大多数 Linux 工具只是从屏幕的底部滚动文本。但如果你想在屏幕上定位文本,比如游戏或数据显示,该怎么办?这就是 [ncurses][3] 的作用。
|
||||
|
||||
### 用 DOS conio 开始编程
|
||||
|
||||
C 语言并不只适用于 Linux。你可以在许多操作系统上找到 C,包括 DOS。许多 C 程序员控制控制台输入和输出的标准方法是使用 `conio` 库。学习如何 [使用 conio` 来更新 DOS 程序的控制台][4],包括文本颜色和文本窗口。
|
||||
|
||||
### 使用位域和掩码编写国际象棋游戏
|
||||
|
||||
在 C 语言程序中关联信息的标准方法是使用一个结合了两个或多个相关字段的结构体。例如,你可以用一个结构体来跟踪棋盘上的棋子。但是有一种更直接的方法来跟踪同样的信息,同时使用更少的数据和内存。使用 [二进制位域和掩码][5],你可以存储一个单一的值来识别每个方格中的棋子和颜色。
|
||||
|
||||
### C 语言编程中的 5 个常见错误以及如何修复它们
|
||||
|
||||
即使是最好的程序员也会产生编程错误。根据你的程序所做的事情,这些 bug 可能会引入安全漏洞,导致程序崩溃,或产生意外的行为。但是,通过一点额外的代码,你可以避免最常见和最严重的 C 语言编程错误。这里有 [五个可能破坏你的应用的 bug 以及你如何避免它们][6]。
|
||||
|
||||
只需一点 C 语言知识,你就可以做很多事情。探索新的方法,为你的下一个 C 语言编程项目增加功能。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/c-programming
|
||||
|
||||
作者:[Jim Hall][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/jim-hall
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/coffee_tea_laptop_computer_work_desk.png?itok=D5yMx_Dr (Person drinking a hot drink at the computer)
|
||||
[2]: https://opensource.com/article/21/8/short-option-parsing-c
|
||||
[3]: https://opensource.com/article/21/8/ncurses-linux
|
||||
[4]: https://opensource.com/article/21/9/programming-dos-conio
|
||||
[5]: https://opensource.com/article/21/8/binary-bit-fields-masks
|
||||
[6]: https://opensource.com/article/21/10/programming-bugs
|
@ -0,0 +1,202 @@
|
||||
[#]: subject: "Why might you run your own DNS server?"
|
||||
[#]: via: "https://jvns.ca/blog/2022/01/05/why-might-you-run-your-own-dns-server-/"
|
||||
[#]: author: "Julia Evans https://jvns.ca/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14165-1.html"
|
||||
|
||||
为什么你要运行自己的 DNS 服务器?
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/10/113033bhek6kfe8ehle0y4.jpg)
|
||||
|
||||
使得 DNS 难以理解的事情之一是它是 **分布式的**。有成千上万(也许是几十万?我不知道!)的<ruby>权威性域名服务器<rt>authoritative nameserver</rt></ruby>,以及至少 [1000 万个解析器][1]。而且它们正在运行许多不同的软件!不同服务器运行着不同的软件意味着 DNS 的工作方式有很多不一致的地方,这可能导致各种令人沮丧的问题。
|
||||
|
||||
但是,与其谈论这些问题,我更感兴趣的是弄清楚 —— 为什么 DNS 是分布式的是一件好事?
|
||||
|
||||
### 为什么 DNS 是分布式的是件好事?
|
||||
|
||||
一个原因是 **可扩展性** —— DNS 的分布式设计使其更容易扩展,对故障的恢复能力更强。我发现,尽管 DNS 已经有近 40 年的历史,但它的扩展性仍然很好,这真是令人惊讶。这一点非常重要,但这并不是这篇文章的主题。
|
||||
|
||||
相反,我想说的是,它是分布式的意味着你可以 **控制** 你的 DNS 的工作方式。你可以向巨大而复杂的 DNS 服务器中添加更多的服务器!添加你控制的服务器!
|
||||
|
||||
昨天我 [在 Twitter 上问][2] 为什么你要运行自己的 DNS 服务器,我得到了很多很好的答案,我想在这里总结一下。
|
||||
|
||||
### 你可以运行 2 种类型的 DNS 服务器
|
||||
|
||||
你可以运行 2 种主要类型的 DNS 服务器:
|
||||
|
||||
1. 如果你拥有一个域名,你可以为该域名运行一个 **权威名称服务器**
|
||||
2. 如果你有一台电脑(或一个有很多电脑的公司),你可以运行一个 **解析器** 来为这些电脑解析 DNS。
|
||||
|
||||
### DNS 不是静态数据库
|
||||
|
||||
我经常看到 DNS 的 “电话簿” 比喻,域名就像人名,IP 地址就像电话号码。
|
||||
|
||||
这是一个不错的思维模型。但是,“电话簿” 思维模型可能会使你认为,如果你对 `google.com` 进行 DNS 查询,你将永远得到相同的结果。而这是不正确的。
|
||||
|
||||
你在 DNS 查询中得到的记录可能取决于:
|
||||
|
||||
* 你在世界的哪个地方(也许你会得到一个离你更近的服务器的 IP 地址)
|
||||
* 你是否在企业网络里(你可以在其中解析内部域名)
|
||||
* 该域名是否被你的 DNS 解析器认为是 “坏” 的(它可能被封锁!)
|
||||
* 之前的 DNS 查询(也许 DNS 解析器正在做基于 DNS 的负载平衡,每次给你一个不同的 IP 地址)
|
||||
* 你是否在使用机场 Wi-Fi 专属门户(机场 Wi-Fi 会在你登录前以不同的方式解析 DNS 记录,它会给你发送一个特殊的 IP 来重定向你)
|
||||
* 随便什么
|
||||
|
||||
你可能想控制你自己的服务器的很多原因都与 DNS 不是一个静态数据库这一事实有关 —— 对于如何处理 DNS 查询,你可能会有不同的选择(无论是为你的域名还是为你的组织)。
|
||||
|
||||
### 运行权威性名称服务器的理由
|
||||
|
||||
这些原因并没有任何特定的顺序。
|
||||
|
||||
对于其中一些原因,你不一定必须要运行你自己的权威名称服务器,你只需选择提供了该功能的权威名称服务器服务就行了。
|
||||
|
||||
要明确的是:有很多理由 **不** 运行自己的权威名称服务器 —— 我就没有运行,我也不想说服你应该这样做。它需要时间来维护,你的服务可能不那么可靠,等等。
|
||||
|
||||
#### 原因:安全
|
||||
|
||||
[这条推文说的很好][3]:
|
||||
|
||||
> [存在] 攻击者通过你的 DNS 供应商的客户支持人员获得 DNS 变更权限的风险,客服本来只应该提供帮助。他们可以被你的 DNS 阻止(也许就是因为缺少这个)。内部可能更容易审计和验证内容。
|
||||
|
||||
### 原因:你喜欢运行 bind/nsd
|
||||
|
||||
有几个人提到的一个原因是:“我习惯于编写区域文件和运行 `bind` 或 `nsd` ,对我来说这样做更容易。”
|
||||
|
||||
如果你喜欢 bind/nsd 的方式,但又不想运维自己的服务器,有几个人提到,你也可以通过运行一个 “隐藏的主服务器” 来获得 bind 的优势,该服务器存储记录,但从一个 “辅助” 服务器提供所有的实际 DNS 查询。这里有一些我发现的关于配置辅助 DNS 的网页,以 [NS1][4]、[cloudflare][5] 和 [Dyn][6] 作为示例。
|
||||
|
||||
我真的不知道什么是最佳的权威 DNS 服务器。我想我只在工作中使用过 nsd。
|
||||
|
||||
#### 原因:你可以使用新的记录类型
|
||||
|
||||
并非所有的 DNS 服务都支持某些较新的 DNS 记录类型,但如果你运行你自己的 DNS,你就可以支持任何你想要的记录类型。
|
||||
|
||||
#### 原因:用户界面
|
||||
|
||||
你可能不喜欢你正在使用的 DNS 服务的用户界面(或 API,或干脆没有 API)。这与 “你喜欢运行 BIND ”的原因差不多,也许你喜欢编写区域文件的方式。
|
||||
|
||||
#### 原因:你可以自己修复问题
|
||||
|
||||
当问题出现时,能够自己解决,有一些明显的优点和缺点(优点:你可以解决问题,缺点:你必须解决问题)。
|
||||
|
||||
#### 原因:做一些奇怪的、自定义的事情
|
||||
|
||||
你可以写一个 DNS 服务器,做任何你想做的事情,它不一定要只返回一组静态记录。
|
||||
|
||||
有几个例子:
|
||||
|
||||
* Replit 有一篇博文介绍了 [为什么他们编写自己的权威性 DNS 服务器来处理路由][7]
|
||||
* [nip.io][8] 将 10.0.0.1.nip.io 映射为 10.0.0.1
|
||||
* 我为 [乱用 dns][9] 而写了一个自定义 DNS 服务器
|
||||
|
||||
#### 原因:省钱
|
||||
|
||||
权威名称服务器似乎一般按每百万次 DNS 查询收费。比如,似乎 Route 53 每百万次查询收费 0.5 美元,[NS1][10] 每百万次查询收费约 8 美元。
|
||||
|
||||
我对一个大型网站的权威 DNS 服务器实际需要解决多少次查询没有概念(哪些类型的网站会对其权威 DNS 服务器进行 10 亿次 DNS 查询?可能是很多,但我没有这方面的经验)。但是有几个人在回复中提到成本是一个原因。
|
||||
|
||||
#### 原因:你可以改变你的注册商
|
||||
|
||||
如果你为你的域名使用一个单独的权威名称服务器,而不是你的注册商的名称服务器,那么当你转移到一个不同的注册商时,你所要做的就是把你的权威 DNS 服务器设置为正确的值,从而使你的 DNS 恢复正常。你不需要迁移你所有的 DNS 记录,那非常痛苦。
|
||||
|
||||
但你不需要为此而运行你自己的名字服务器。
|
||||
|
||||
#### 原因:地理 DNS
|
||||
|
||||
你可能想根据客户的位置为你的域名返回不同的 IP 地址,给他们一个离他们很近的服务器。
|
||||
|
||||
这是很多权威的域名服务器服务所提供的服务,你不需要为此而专门运行名字服务器。
|
||||
|
||||
#### 原因:避免针对他人的拒绝服务攻击
|
||||
|
||||
许多权威 DNS 服务器是共享的。这意味着,如果有人攻击 `google.com` 或其他的 DNS 服务器,而你恰好在使用同一个权威 DNS 服务器,你可能会受到影响,即使攻击不是针对你。例如,2016 年的这次 [对 Dyn 的 DDoS 攻击][11]。
|
||||
|
||||
#### 原因:把所有的配置放在一个地方
|
||||
|
||||
有一个人提到,他们喜欢把所有的配置(DNS 记录、let's encrypt、nginx 等)放在一台服务器上的同一个地方。
|
||||
|
||||
#### 另类原因:把 DNS 当作 VPN 使用
|
||||
|
||||
显然,[iodine][12] 是一个可以让你通过 DNS 隧道传输流量的权威 DNS 服务器,它可以让你像 VPN 一样与外界联系,
|
||||
|
||||
### 运行解析器的原因
|
||||
|
||||
#### 原因:隐私
|
||||
|
||||
如果有人能看到你所有的 DNS 查询,他们就有你(或你组织中的每个人)正在访问的所有域名的完整列表!你可能更愿意保持这种隐私。你可能更愿意保持这种隐私。
|
||||
|
||||
#### 原因:阻止恶意网站
|
||||
|
||||
如果你运行你自己的解析器,你可以(通过不返回任何结果)拒绝解析你认为 “坏” 的域名的 DNS 查询。
|
||||
|
||||
几个你可以自己运行(或只是使用)的解析器的例子:
|
||||
|
||||
* [Pi-Hole][13] 阻止广告商
|
||||
* [Quad9][14] 阻止做恶意软件/网络钓鱼/间谍软件的域名。 Cloudflare 似乎有一个 [类似的服务][15]
|
||||
* 我想也有一些企业安全软件会阻止那些托管恶意软件的域名的 DNS 查询
|
||||
* DNS 不是静态数据库。它是非常动态的,答案往往实时取决于查询的 IP 地址、内容服务器的当前负载等。除非你将这些记录的服务委托给做出这些决定的实体,否则很难实时实现。
|
||||
* DNS 委派控制使访问控制非常简单。从区域中切下的部分都由控制委派服务器的人控制,所以对一个主机名的责任是隐含在 DNS 委派中的。
|
||||
|
||||
#### 原因:在 nginx 中获得动态代理
|
||||
|
||||
这里有一个很酷的故事,来自 [这条推文][16]:
|
||||
|
||||
> 我在一个应用程序中写了一个 DNS 服务器,然后把它设置为 nginx 的解析器,这样我就可以获得动态的后端代理,而不需要 nginx 运行 lua。Nginx 向应用程序发送 DNS 查询,应用程序查询 Redis 并作出相应的反应。这对我正在做的事情来说,效果非常好。
|
||||
|
||||
#### 原因:避免恶意解析器
|
||||
|
||||
一些 ISP 运行的 DNS 解析器会做一些不好的事情,比如把不存在的域名指向他们控制的 IP,向你显示广告或他们控制的奇怪的搜索页面。
|
||||
|
||||
使用你控制的解析器或你信任的另一个解析器可以帮助你避免这种情况。
|
||||
|
||||
#### 原因:解析内部域名
|
||||
|
||||
你可能有一个内部网络,其域名(比如 `blah.corp.yourcompany.com`)并不在公共互联网上。为内部网络中的机器运行你自己的解析器,就有可能访问这些域名。
|
||||
|
||||
无论是访问只在本地的服务,还是为公共互联网上的服务获得本地地址,你都可以在家庭网络中做同样的事情。
|
||||
|
||||
#### 原因:避免你的 DNS 查询被中间人劫持
|
||||
|
||||
有一个人 [说][17]:
|
||||
|
||||
> 我在我的局域网路由器上运行了一个解析器,它的上游使用了基于 HTTPS 的 DNS(DoH),所以物联网和其他不支持 DoH 或 DoT 的设备不会在外面喷射明文 DNS 查询。
|
||||
|
||||
### 就是这样
|
||||
|
||||
对我来说,探索 DNS 的 “原因” 感觉很重要,因为它是一个如此复杂凌乱的系统,我认为大多数人如果不理解为什么这些复杂的东西是有用的,就很难有动力去学习这么复杂的主题。
|
||||
|
||||
感谢 Marie 和 Kamal 对这篇文章的讨论,也感谢 Twitter 上提供这些原因的所有人。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://jvns.ca/blog/2022/01/05/why-might-you-run-your-own-dns-server-/
|
||||
|
||||
作者:[Julia Evans][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://jvns.ca/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.icann.org/en/blogs/details/ten-million-dns-resolvers-on-the-internet-22-3-2012-en
|
||||
[2]: https://twitter.com/b0rk/status/1478490484406468614
|
||||
[3]: https://twitter.com/thatcks/status/1478503078680838153
|
||||
[4]: https://help.ns1.com/hc/en-us/articles/360017508173-Configuring-NS1-as-a-secondary-provider-a-k-a-Creating-secondary-zones-
|
||||
[5]: https://blog.cloudflare.com/secondary-dns-a-faster-more-resilient-way-to-serve-your-dns-records/
|
||||
[6]: https://help.dyn.com/standard-dns/dyn-secondary-dns-information/
|
||||
[7]: https://blog.replit.com/dns
|
||||
[8]: https://nip.io
|
||||
[9]: https://jvns.ca/blog/2021/12/15/mess-with-dns/
|
||||
[10]: https://ns1.com/plans
|
||||
[11]: https://en.wikipedia.org/wiki/DDoS_attack_on_Dyn
|
||||
[12]: https://github.com/yarrick/iodine
|
||||
[13]: https://pi-hole.net/
|
||||
[14]: https://www.quad9.net/
|
||||
[15]: https://developers.cloudflare.com/1.1.1.1/1.1.1.1-for-families
|
||||
[16]: https://twitter.com/jordanorelli/status/1478795241876504577
|
||||
[17]: https://twitter.com/passcod/status/1478806468539269120
|
@ -0,0 +1,136 @@
|
||||
[#]: subject: "Linux Mint 20.3 “Una” Releases With Cinnamon 5.2, Theme Refresh, and a New Document Manager"
|
||||
[#]: via: "https://news.itsfoss.com/linux-mint-20-3-una-release/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14155-1.html"
|
||||
|
||||
Linux Mint 20.3 “Una” 发布
|
||||
======
|
||||
|
||||
> Linux Mint 20.3 “Una” 有一些细微的视觉变化,弥补了现代外观,以及新的应用改进。
|
||||
|
||||
![](https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-mint-20-3-1.png?w=1200&ssl=1)
|
||||
|
||||
代号为 “Una” 的 Linux Mint 20.3 终于来了。官方公告应该很快就会跟进,但它现在已经可以下载了!
|
||||
|
||||
虽然 [Linux Mint 20.2][1] 有一些令人印象深刻的改进,但 Linux Mint 20.3 看起来也是一个不错的版本。
|
||||
|
||||
在这里,我会重点指出 Linux Mint 20.3 的关键变化。
|
||||
|
||||
### Linux Mint 20.3 的新变化
|
||||
|
||||
![][2]
|
||||
|
||||
在这个版本中,Linux Mint 20.3 包含了最新的 Cinnamon 5.2,一些细微的视觉变化,以及其他各种改进。
|
||||
|
||||
请注意,在 Xfce 和 MATE 版中的变化是一样的(不包括桌面环境的具体改进)。
|
||||
|
||||
#### Cinnamon 5.2 桌面环境
|
||||
|
||||
在 Cinnamon 5 中,增加了一些调整和管理桌面环境所消耗资源的功能。
|
||||
|
||||
这一次,升级的重点是几个新功能。日历小程序增强了功能,当你点击系统时间/日期图标时,可以直接从系统托盘上显示事件。
|
||||
|
||||
如果你使用 GNOME 日历或在线账户(如 Google 日历),这些事件应该是同步的。
|
||||
|
||||
![][4]
|
||||
|
||||
除此以外,你还会发现 Nemo 文件管理器的改进和窗口动画的细微变化。
|
||||
|
||||
还有一些必要的错误修复和总体上的小改进。
|
||||
|
||||
#### 新的背景
|
||||
|
||||
新的版本、新的壁纸,总是令人耳目一新。而且,Mint 20.3 也不会让你失望。
|
||||
|
||||
![][5]
|
||||
|
||||
你会得到一个精心策划的美妙的壁纸集,你可以选择使用。
|
||||
|
||||
#### 视觉主题刷新及深色模式
|
||||
|
||||
![][6]
|
||||
|
||||
在 Linux Mint 20.3 中,主题已经进行了改造,对重点颜色轻微进行了重新处理(使其更时尚一些),并从一些小部件中删除了它。
|
||||
|
||||
与窗口的圆角一起,这构成了一个更干净和现代的外观。
|
||||
|
||||
总的来说,包括新的图标,Linux Mint 20.3 带来了一个新的主题包。
|
||||
|
||||
如果你想要同样的外观,同时保持其他的优点,你可以简单地从仓库安装传统主题包并应用它。
|
||||
|
||||
![][7]
|
||||
|
||||
一旦你安装了传统主题包,就可以在选择中找到它了。
|
||||
|
||||
![][8]
|
||||
|
||||
不仅如此,你可以注意到,我更喜欢用深色模式的截图来写文章,因为 Linux Mint 20.3 终于把更多的注意力放在深色模式上!
|
||||
|
||||
一些默认的应用程序,如 Hypnotix、Gnome 终端、Celluloid,都是在启用深色模式的情况下启动的。如果你愿意,你可以永久地禁用它们。
|
||||
|
||||
### 新的 Thingy 应用程序
|
||||
|
||||
当 Clem(Linux Mint 的首席开发者)暗示会有一个新的惊喜应用时,我们 [很快就在 Linux Mint 20.3 里发现了它][9]。
|
||||
|
||||
在稳定版更新之前,测试版就已经确认了它。
|
||||
|
||||
![][10]
|
||||
|
||||
新的 Thingy 应用程序也被称为 “Library”,它实际上是 Linux Mint 默认的文档管理器。你可以下载电子书和其他 PDF 文件,Library 应用应该会自动从下载目录中检测到它。
|
||||
|
||||
#### 应用程序的改进
|
||||
|
||||
![][11]
|
||||
|
||||
一些默认的应用程序,如 Hypnotix IPTV 播放器和便签现在可以分别让你搜索频道或便签。
|
||||
|
||||
### 其他改进
|
||||
|
||||
其他一些改进有助于提高性能,更好地节省电力,以及更多。
|
||||
|
||||
考虑到它是基于 Ubuntu 20.04.3 的,带有 Linux 内核 5.4 LTS。
|
||||
|
||||
![][12]
|
||||
|
||||
你可以在官方公告帖子中找到更多关于这些变化的信息。
|
||||
|
||||
### 下载 Linux Mint 20.3
|
||||
|
||||
你可以从官方主页上下载 ISO。他们还没有更新下载页面,但你可以从他们的 [Torrent 下载页面][13] 找到最新的 ISO。
|
||||
|
||||
如果你想要直接的下载链接,你可以看一下 [全球镜像][14] 来获得所有的 Linux Mint 版本。
|
||||
|
||||
- [Linux Mint 20.3][15]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/linux-mint-20-3-una-release/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://news.itsfoss.com/linux-mint-20-2-release/
|
||||
[2]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-mint-20-3.png?w=1394&ssl=1
|
||||
[3]: https://i0.wp.com/i.ytimg.com/vi/tT45WSef8zQ/hqdefault.jpg?w=780&ssl=1
|
||||
[4]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-mint-20-3-cinnamon-calendar.png?w=651&ssl=1
|
||||
[5]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-mint-20-3-backgrounds.png?w=927&ssl=1
|
||||
[6]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-mint-20-3-file-manager.png?w=946&ssl=1
|
||||
[7]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-mint-20-3-legacy-theme.png?w=684&ssl=1
|
||||
[8]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-mint-20-3-legacy-options.png?w=1313&ssl=1
|
||||
[9]: https://news.itsfoss.com/linux-mint-20-3-release-thingy/
|
||||
[10]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-mint-20-3-thingy.png?w=769&ssl=1
|
||||
[11]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-mint-20-3-app-improvements.png?w=878&ssl=1
|
||||
[12]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/12/linux-mint-20-3-neofetch.png?w=1004&ssl=1
|
||||
[13]: https://linuxmint.com/torrents/
|
||||
[14]: https://mirrors.edge.kernel.org/linuxmint/stable/20.3/
|
||||
[15]: https://linuxmint.com/download.php
|
@ -0,0 +1,77 @@
|
||||
[#]: subject: "Must-have open source cheat sheets for 2022"
|
||||
[#]: via: "https://opensource.com/article/22/1/open-source-cheat-sheets"
|
||||
[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14181-1.html"
|
||||
|
||||
2021 总结:必备的开源备忘单
|
||||
======
|
||||
|
||||
> 在你学习 Linux 命令行或练习新的编程语言时,请随身携带这些方便的备忘单。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/15/113627xxt6ldzq5hvtqvg8.jpg)
|
||||
|
||||
你不可能记住每一个你需要使用的命令或快捷方式。我们都是普通人,通常情况下,我把笔记放在不同的纸片上和笔记本里。这导致我的办公桌上有些过分紊乱。到处都是一些五年前的杂乱无章的潦草文字。这这些 2021 年的备忘单将把混乱降低一个档次。从 JavaScript 到 Linux,这个列表中都有适合你的东西。
|
||||
|
||||
### 如何编写你的第一段 JavaScript 代码
|
||||
|
||||
这篇 [文章][2] 是为那些今年想尝试学习一门新语言的初来乍到者准备的。[Seth Kenlon][3] 介绍了如何安装 JavaScript 和开始制作一个简单的 HTML 页面。虽然 Seth 解释说 JavaScript 并不只用于网站,但所有主要的网页浏览器都有一个运行你的代码的 JavaScript 引擎。在整个演练过程中,Seth 涵盖了语法、变量和函数,让你开始创建一个新的应用。最后,在分享 [备忘录][4] 之前,Seth 还介绍了用 JavaScript 进行跨平台的能力。
|
||||
|
||||
### Linux 软件包管理
|
||||
|
||||
在 [Chris Hermanse][5] 的 [文章][6] 中,在他分享他的 [备忘录][7] 之前,我们对使用 `apt` 做了简要预览。许多人日常在家里和办公室使用基于 Debian 的 Linux。在这篇入门文章中,我们可以了解一下 `apt` 的用途,首先是用 `apt` 在软件包系统中寻找软件,也可以用另一个命令查看这些软件包的元数据。接下来,Chris 介绍了查看一个软件包是否包括安装过程中需要的文件(软件包依赖)。最后,Chris 介绍了如何用 `apt` 命令删除软件包。这份详尽的备忘录可以给你带来比 Linux 的日常软件包管理更多的东西。如果 `apt` 不适合你,你也可以看看 `dnf` [备忘录][8]。
|
||||
|
||||
### 用 DOS conio 开始编程
|
||||
|
||||
你是否想在明年涉足 DOS?如果是的话,你已经准备好创建令人兴奋的新应用,[Jim Hall][9] 为你准备了一份 [备忘录][10]。在这篇 [文章][11] 中定义了 `conio`,在分享备忘录之前,Jim 介绍了如何制作你自己的彩色文本用户界面。Jim 解释说,你可以用你的应用做更多的事情,使其更具互动性和刺激性。现在你有了这个备忘录,你就可以用 DOS `conio` 创建你自己的应用了。
|
||||
|
||||
### 学习 SQLite3
|
||||
|
||||
与这种常见的数据库一起工作?下面是你如何通过这个 [备忘录][12] 成为一个资深用户。在这个 [实践教程][13] 中,[Klaatu][14] 从安装和与 SQLite3 互动开始,然后在分享备忘录之前创建了一个带表的数据库。Klaatu 还用一段很简单的文字解释了数据类型和日期时间戳功能。Klaatu 在本教程中增加了更多详细的功能,包括查看表格、改变表格等等。如果你想继续使用 SQLite3 数据库并使其变得强大,或者只是想学习如何使用它,这个备忘录就适合你。
|
||||
|
||||
### 更多的 Linux 备忘录
|
||||
|
||||
虽然我只是蜻蜓点水地提及了这些备忘单,但我想提到一些值得称赞的地方,其中包括 [Seth Kenlon][3] 的 Linux 备忘单:
|
||||
|
||||
* Seth 对 [grep][15] 的高级用法对各种场合都很有用。
|
||||
* [find][16] 命令备忘录对于我不想花大量时间在目录中徘徊的时候特别有帮助。
|
||||
* [wget][17] 备忘录对于那些你需要从互联网上获取东西的时候是很方便的。
|
||||
|
||||
### 以回顾 2021 年开始 2022 年
|
||||
|
||||
2021 年是备忘录的辉煌之年,其中许多是关于 Linux 的,但也有一些备忘录甚至让你从一种全新的语言开始。我强烈建议你打印出这些备忘录,在 2022 年开始学习新东西。我们欢迎各种经验水平的作者,请通过 [给我们发送文章或备忘录][18] 告诉我们你是如何学习新技能的。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/open-source-cheat-sheets
|
||||
|
||||
作者:[Jessica Cherry][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/cherrybomb
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/brain_computer_solve_fix_tool.png?itok=okq8joti (Brain on a computer screen)
|
||||
[2]: https://opensource.com/article/21/7/javascript-cheat-sheet
|
||||
[3]: https://opensource.com/users/seth
|
||||
[4]: https://opensource.com/downloads/javascript-cheat-sheet
|
||||
[5]: https://opensource.com/users/clhermansen
|
||||
[6]: https://opensource.com/article/21/6/apt-linux
|
||||
[7]: https://opensource.com/downloads/apt-cheat-sheet
|
||||
[8]: https://opensource.com/downloads/dnf-cheat-sheet
|
||||
[9]: https://opensource.com/users/jim-hall
|
||||
[10]: https://opensource.com/downloads/dos-conio-cheat-sheet
|
||||
[11]: https://opensource.com/article/21/9/programming-dos-conio
|
||||
[12]: https://opensource.com/downloads/sqlite-cheat-sheet
|
||||
[13]: https://opensource.com/article/21/2/sqlite3-cheat-sheet
|
||||
[14]: https://opensource.com/users/klaatu
|
||||
[15]: https://opensource.com/downloads/grep-cheat-sheet
|
||||
[16]: https://opensource.com/downloads/linux-find-cheat-sheet
|
||||
[17]: https://opensource.com/downloads/linux-wget-cheat-sheet
|
||||
[18]: https://opensource.com/how-submit-article
|
86
published/202201/20220107 Try FreeDOS in 2022.md
Normal file
86
published/202201/20220107 Try FreeDOS in 2022.md
Normal file
@ -0,0 +1,86 @@
|
||||
[#]: subject: "Try FreeDOS in 2022"
|
||||
[#]: via: "https://opensource.com/article/22/1/try-freedos"
|
||||
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14204-1.html"
|
||||
|
||||
2021 总结:尝试 FreeDOS
|
||||
======
|
||||
|
||||
> 为这个自由操作系统的新用户和老用户提供 15 种资源。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202201/22/112846m55u0f3u5rh6i6e3.jpg)
|
||||
|
||||
在整个上世纪 80 年代和 90 年代,DOS 是桌面之王。世界各地的程序员不满足于 DOS 的专有版本,他们共同创建了一个名为 FreeDOS 的开源版本,该版本于 1994 年首次推出。[FreeDOS 项目][2] 在 2021 年及以后还在继续发展。
|
||||
|
||||
我们发表了几篇关于 FreeDOS 的文章,以帮助新用户开始使用 FreeDOS 和学习新程序。以下是去年我们最受欢迎的几篇 FreeDOS 文章。
|
||||
|
||||
### 初学 FreeDOS
|
||||
|
||||
你是 FreeDOS 的新手吗?如果你想了解如何启动和运行 FreeDOS 的基本知识,请查看这些文章:
|
||||
|
||||
* [开始使用 FreeDOS][3]:它看起来像复古计算时代,但 FreeDOS 是一个现代的操作系统,你可以用它来完成事情。
|
||||
* [FreeDOS 如何启动][4]:了解你的计算机是如何引导和启动 FreeDOS 的,从开机到命令行提示符。
|
||||
* [用纯文本配置 FreeDOS][5]:学习如何用 `fdconfig.sys` 文件来配置 FreeDOS。
|
||||
* [如何用 CD 和 DIR 浏览 FreeDOS][6]:只需掌握两个命令,`DIR` 和 `CD`,你就可以在命令行中浏览你的 FreeDOS 系统。
|
||||
* [在 FreeDOS 中设置和使用环境变量][7]:环境变量在几乎所有的命令行环境中都有用,包括 FreeDOS。
|
||||
|
||||
### Linux 用户的 FreeDOS
|
||||
|
||||
如果你已经熟悉了 Linux 的命令行,你可能想试试这些在 FreeDOS 上创造类似环境的命令和程序:
|
||||
|
||||
* [给 Linux 爱好者的 FreeDOS 命令][8]:如果你已经熟悉了 Linux 的命令行,可以试试这些命令来帮助你轻松进入 FreeDOS。
|
||||
* [在 FreeDOS 中像 Emacs 一样编辑文本][9]:如果你已经熟悉了 GNU Emacs,你应该在 Freemacs 中感到很自在。
|
||||
* [在 Linux 和 FreeDOS 之间复制文件][10]:学习如何在 FreeDOS 虚拟机和 Linux 桌面系统之间传输文件。
|
||||
* [如何在 FreeDOS 上归档文件][11]:这是 FreeDOS 版本的 `tar`,在 DOS 上归档的标准方法是 Zip 和 Unzip。
|
||||
* [在 FreeDOS 上使用这个怀旧的文本编辑器][12]:让人联想到 Linux ed(1),当你想用老式的方法编辑文本时,Edlin 是一种乐趣。
|
||||
|
||||
### 使用 FreeDOS
|
||||
|
||||
当你启动进入 FreeDOS,你可以使用这些很棒的工具和应用来完成工作或安装其他软件:
|
||||
|
||||
* [如何使用 FreeDOS 的文本编辑器][13]:FreeDOS 提供了一个用户友好的文本编辑器,叫做 FreeDOS Edit。
|
||||
* [在 FreeDOS 上听音乐][14]:Mplayer 是一个开源的媒体播放器,通常可以在 Linux、Windows、Mac 和 DOS 上找到。
|
||||
* [在 FreeDOS 上安装和删除软件包][15]:了解如何使用 FDIMPLES,即 FreeDOS 包管理器,在你的 FreeDOS 系统上安装和删除软件包。
|
||||
* [为什么我喜欢用 GW-BASIC 在 FreeDOS 上编程][16]:BASIC 是我进入计算机编程的起点。我已经很多年没有写过 BASIC 代码了,但我对 BASIC 和 GW-BASIC 永远怀有好感。
|
||||
* [用 Bywater BASIC 在 FreeDOS 上编程][17]:在你的 FreeDOS 系统上安装 Bywater BASIC,并开始尝试使用 BASIC 编程。
|
||||
|
||||
在其近 30 年的历程中,FreeDOS 一直试图成为一个现代 DOS。如果你想了解更多,你可以在 [FreeDOS 简史][18] 中阅读关于 FreeDOS 的起源和发展。另外,请看 Don Watkins 关于 FreeDOS 的采访:[一个大学生是如何创立一个自由和开源的操作系统][19]。
|
||||
|
||||
如果你想尝试 FreeDOS,请下载 2021 年 12 月发布的 FreeDOS 1.3 RC5。这个版本有大量的新变化和改进,包括更新的内核和命令 shell,新的程序和游戏,更好的国际支持,以及网络支持。从 [FreeDOS 网站][2]下载 FreeDOS 1.3 RC5。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/1/try-freedos
|
||||
|
||||
作者:[Jim Hall][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/jim-hall
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/puzzle_computer_solve_fix_tool.png?itok=U0pH1uwj (Puzzle pieces coming together to form a computer screen)
|
||||
[2]: https://www.freedos.org/
|
||||
[3]: https://linux.cn/article-13492-1.html
|
||||
[4]: https://linux.cn/article-13503-1.html
|
||||
[5]: https://linux.cn/article-14061-1.html
|
||||
[6]: https://opensource.com/article/21/6/navigate-freedos-cd-dir
|
||||
[7]: https://linux.cn/article-13995-1.html
|
||||
[8]: https://linux.cn/article-14092-1.html
|
||||
[9]: https://opensource.com/article/21/6/freemacs
|
||||
[10]: https://linux.cn/article-13548-1.html
|
||||
[11]: https://linux.cn/article-13567-1.html
|
||||
[12]: https://opensource.com/article/21/6/edlin-freedos
|
||||
[13]: https://opensource.com/article/21/6/freedos-text-editor
|
||||
[14]: https://opensource.com/article/21/6/listen-music-freedos
|
||||
[15]: https://linux.cn/article-14031-1.html
|
||||
[16]: https://opensource.com/article/21/6/freedos-gw-basic
|
||||
[17]: https://opensource.com/article/21/6/freedos-bywater-basic
|
||||
[18]: https://linux.cn/article-13601-1.html
|
||||
[19]: https://opensource.com/article/21/6/freedos-founder
|
@ -0,0 +1,119 @@
|
||||
[#]: subject: "5 Tiny Yet Useful Features I Would Like to See in GNOME in 2022"
|
||||
[#]: via: "https://news.itsfoss.com/gnome-features-i-want/"
|
||||
[#]: author: "Abhishek https://news.itsfoss.com/author/root/"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "wxy"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-14168-1.html"
|
||||
|
||||
我希望在 GNOME 中看到的 5 个微小而有用的功能
|
||||
======
|
||||
|
||||
> 我知道对于圣诞愿望清单来说已经太晚了,但我仍然想分享我希望在 GNOME 中看到的东西。
|
||||
|
||||
![](https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/gnome-wallpaper.png?w=1200&ssl=1)
|
||||
|
||||
GNOME 是许多 Linux 发行版的默认桌面环境。它也是我最喜欢的一个,因为它提供了一种现代的桌面体验。
|
||||
|
||||
但这并不意味着 GNOME 是完美的,不需要改进。事实上,这里有几个建议可以改善整个用户体验。
|
||||
|
||||
### 1、方便的应用程序卸载选项
|
||||
|
||||
桌面 Linux 是碎片化的。为了增加混乱,连软件包也是零零散散的。而最糟糕的是当你从系统中删除一个应用程序时。
|
||||
|
||||
举个例子,你要通过 DEB 包安装一个应用程序,并使用 GNOME 软件中心界面来安装它。
|
||||
|
||||
但如果你不喜欢这个应用程序,想把它删除呢?
|
||||
|
||||
你不会在软件中心中找到该应用程序。相反,你得必须使用命令行的方法。
|
||||
|
||||
这还没完。还有 Snap 和 [Flatpak][1] 软件包。如果你已经使用了其中之一,你必须先找出来,然后使用正确的命令才行。
|
||||
|
||||
GNOME 采用了类似于 Android/iOS 的方法,将应用程序显示在一个网格中,并将它们组织在文件夹中。移动操作系统为用户提供了一种方式,即按住图标并删除应用程序。如果能有一个类似的选项,右键点击应用程序图标并选择卸载,那就更好了。
|
||||
|
||||
![][2]
|
||||
|
||||
这样,终端用户就不用管所安装的应用程序是 Deb 包还是 Snap 包。没有必要为此进入终端,而且它就发生在访问应用程序地方,这不是挺好吗?
|
||||
|
||||
Linux Mint Cinnamon 版有这样的功能,你在菜单中右键点击一个应用程序条目,选择删除它。
|
||||
|
||||
![Linux Mint Cinnamon 中可以使用右键删除选项][3]
|
||||
|
||||
如果 Cinnamon 能做到,GNOME 应该也能做到,对吗?
|
||||
|
||||
### 2、在应用程序商店中设置默认软件源
|
||||
|
||||
如果一个应用程序有多种格式,GNOME 软件中心可以让你选择软件源。至少这是我在 Fedora 的 GNOME 软件中看到的,但在 Ubuntu 中没有。
|
||||
|
||||
![][4]
|
||||
|
||||
假设有人在软件中心同时添加了 Flatpak 和 Snap 支持,而一个应用程序在 Flatpak、Snap 和软件包管理器(apt、DNF 等)中都可用,它可能会在搜索结果中显示多次。
|
||||
|
||||
如果能够设置一个默认的打包格式,使其优先于其他格式,那就更好了。如果你把 Flatpak 作为默认,它就不会显示 Snap 版本,默认只安装 Flatpak 版本。
|
||||
|
||||
### 3、跨系统同步安装的应用程序
|
||||
|
||||
这一点可能取决于发行版情况,从技术和策略的角度看都比较复杂。
|
||||
|
||||
安卓、iOS、macOS 和 Windows 都有这个功能,这样可以更容易开始使用新设备或重置的同一设备。你从他们的官方应用程序商店安装的应用程序与你的个人资料相关联。你重新安装/重置操作系统,或者在一个新系统上,登录应用程序商店,它就会显示你以前使用过的应用程序。
|
||||
|
||||
在 Linux 上,如果你由于某种原因重新安装系统,你就会失去你所安装的应用程序。当然,你可以重新安装它们,但你也必须回忆起你以前安装的应用程序。
|
||||
|
||||
我记得 Ubuntu 曾经有个 Ubuntu One 云,我以为他们会推出这个功能,但他们关闭了这个云服务。然而,Ubuntu One 仍然活着,并被用作 SSO 登录。事实上,你可以在 Ubuntu 软件中心看到 Ubuntu One 的登录选项,但它并没有做任何事情。
|
||||
|
||||
![Ubuntu 软件中心的登录选项][5]
|
||||
|
||||
知道你之前从 GNOME 软件中心安装了哪些软件,将使电脑的格式化和在电脑之间的移动更加容易。你不觉得吗?
|
||||
|
||||
当然,许多 Linux 用户不一定依靠软件中心来获取应用程序,但这对一些人来说可能是一个有用的功能。
|
||||
|
||||
### 4、面部解锁和/或指纹登录
|
||||
|
||||
我喜欢用密码登录并解锁 Windows 的方式。是的,我偶尔会使用 Windows。不,不是用来玩游戏,而是用超高清观看流媒体内容。过去几周我用得比较频繁,因为我在另一个城市,我必须依靠我的笔记本电脑来观看 4K 的 Netflix,而不是使用我的电视。
|
||||
|
||||
输入整个 8 到 10 个字符的长密码,加上特殊字符,总觉得是件麻烦事。值得庆幸的是,我的笔记本电脑有一个指纹识别器,但不是每个人都有这种奢侈。
|
||||
|
||||
对于许多已经习惯于在移动设备上使用这些方法的用户来说,使用指纹或面部来解锁设备可能会很好。
|
||||
|
||||
已经有一些项目允许你在 Linux 上使用面部解锁,GNOME 确实可以考虑将其加入到其产品中。
|
||||
|
||||
### 5、带回“添加新文档”选项
|
||||
|
||||
几年前,GNOME 删除了从右键菜单中创建一个新文档的功能。
|
||||
|
||||
现在仍然可以实现这个功能。你必须先在你的主目录的 Templates 文件夹中创建一个模板文档。然后所有的模板文档都可以在右键菜单中找到。
|
||||
|
||||
![][6]
|
||||
|
||||
但这本应是一个默认功能。人们不应该胡乱摆弄而试图找出“创建新文档”选项的去处。
|
||||
|
||||
现在是时候让 GNOME 恢复这个功能了。
|
||||
|
||||
### 你希望在 GNOME 中看到什么功能?
|
||||
|
||||
由于我主要使用 Ubuntu,它的定制 GNOME 与原生 GNOME 不同。原生 GNOME 也应该把小程序指示器带回来,这样像 Dropbox 等应用程序就可以快速访问。
|
||||
|
||||
GNOME 开发者不太可能关注像我们这样的普通 Linux 用户的想法,但我还是要问问你怎么看。
|
||||
|
||||
你希望在 GNOME 或桌面 Linux 中看到什么新功能?你也可以分享一些你最喜欢的、已经从 GNOME 中删除的,但你希望它们能重新出现的功能。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/gnome-features-i-want/
|
||||
|
||||
作者:[Abhishek][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/root/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/what-is-flatpak/
|
||||
[2]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/Remove-application-option-gnome.png?w=800&ssl=1
|
||||
[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/removing-google-chrome-from-mint.webp?resize=799%2C562&ssl=1
|
||||
[4]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/choosing-software-source-gnome.png?resize=1568%2C1007&ssl=1
|
||||
[5]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2022/01/sign-in-ubuntu-software-center.png?resize=1568%2C836&ssl=1
|
||||
[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/templates-in-ubuntu.png?resize=800%2C479&ssl=1
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user