mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-07 22:11:09 +08:00
commit
a248729d7d
27
.github/workflows/lctt-article-badge.yml
vendored
Normal file
27
.github/workflows/lctt-article-badge.yml
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
name: LCTT Article Badge
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: checkout old pages branch
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: lctt/translateproject
|
||||
path: build
|
||||
ref: gh-pages
|
||||
- name: remove pages .git
|
||||
run: rm -rf ./build/.git
|
||||
- name: run badge
|
||||
run: sh ./scripts/badge.sh;
|
||||
- uses: crazy-max/ghaction-github-pages@v2.2.0
|
||||
with:
|
||||
build_dir: ./build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
18
.github/workflows/lctt-article-checker.yml
vendored
Normal file
18
.github/workflows/lctt-article-checker.yml
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
name: LCTT Article Checker
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [master]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.number }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: "checkout master branch & return to pull request branch"
|
||||
run: CURRENT=$(echo ${{github.ref}} | sed "s|refs/|refs/remotes/|") && git checkout master && git checkout $CURRENT
|
||||
- name: run check
|
||||
run: sh ./scripts/check.sh;
|
28
.github/workflows/lctt-article-status.yml
vendored
Normal file
28
.github/workflows/lctt-article-status.yml
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
name: LCTT Article Status
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "*/30 * * * *"
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: checkout old pages branch
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: lctt/translateproject
|
||||
path: build
|
||||
ref: gh-pages
|
||||
- name: remove pages .git
|
||||
run: rm -rf ./build/.git
|
||||
- name: run status
|
||||
run: sh ./scripts/status.sh;
|
||||
- uses: crazy-max/ghaction-github-pages@v2.2.0
|
||||
with:
|
||||
build_dir: ./build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
27
.travis.yml
27
.travis.yml
@ -1,27 +0,0 @@
|
||||
language: minimal
|
||||
install:
|
||||
- sudo apt-get install jq
|
||||
- git clone --depth=1 -b gh-pages https://github.com/LCTT/TranslateProject/ build && rm -rf build/.git
|
||||
script:
|
||||
- 'if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then sh ./scripts/check.sh; fi'
|
||||
- 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then sh ./scripts/badge.sh; fi'
|
||||
- 'if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then sh ./scripts/status.sh; fi'
|
||||
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
# - status
|
||||
except:
|
||||
- gh-pages
|
||||
git:
|
||||
submodules: false
|
||||
depth: false
|
||||
deploy:
|
||||
provider: pages
|
||||
skip_cleanup: true
|
||||
github_token: $GITHUB_TOKEN
|
||||
local_dir: build
|
||||
on:
|
||||
branch:
|
||||
- master
|
||||
# - status
|
64
lctt2020.md
Normal file
64
lctt2020.md
Normal file
@ -0,0 +1,64 @@
|
||||
# Linux 中国旗下贡献者组织 LCTT 七年回顾和展望
|
||||
|
||||
> 这是一篇 LCTT 七周年的纪念文章,也是 LCTT 承前启后的一个里程碑。
|
||||
|
||||
### 写在 LCTT 七年之际
|
||||
|
||||
在 7 年前的今天,我并没有想到,在一个偶然的机会下诞生的 LCTT,它能走过这么长的时间,留下这么多的印痕。是的,一些老朋友或许记得,LCTT 这个 Linux 中国旗下的最主要的开源活动/组成部分,最初只是我发心想完善 man 的中文翻译而产生的副产品。结果,man 中文翻译项目没有做成,而 LCTT 却持续地运营了下来。
|
||||
|
||||
虽然,这些年 LCTT 屡有改进和完善,但是总体来说还是相对保守。当然,LCTT 这些年已经陆续有 400 多位贡献者实质性的参与了贡献,并在此基础上创建了几个 SIG(特别兴趣小组),如[红帽代码英雄 SIG](https://linux.cn/article-12436-1.html)、漫画 SIG、LFS SIG 等。
|
||||
|
||||
作为回顾,我来介绍一下 LCTT 这 7 年间在主项目(TranslateProject)上取得的成就:
|
||||
|
||||
- 贡献者: [435 位](https://linux.cn/lctt-list)
|
||||
- 翻译文章:[5687 篇](https://linux.cn/)
|
||||
- GitHub 提交:[54629 次](https://github.com/LCTT/TranslateProject)
|
||||
- GitHub 拉取请求:[19243 次](https://github.com/LCTT/TranslateProject/pulls)
|
||||
|
||||
这是 LCTT 主项目的提交图:
|
||||
|
||||
![](https://postimg.aliavv.com/mbp/uglsc.png)
|
||||
|
||||
这其中,[钻石级的贡献者有 5 名,五星级贡献者有 6 名,13 位 4 星贡献者](https://linux.cn/lctt-list)。那么,请让我来用一段视频展示一下 LCTT 七年来的历程:
|
||||
|
||||
![](https://img.linux.net.cn/static/video/LCTT%207%20Years.mp4)
|
||||
|
||||
当然,整体的贡献水平呈现长尾分布,大部分贡献者浅尝辄止,我想除了贡献者存在着体验的心态之外,也与 LCTT 没有建立起来合适的社区引导和激励机制有关。此外,就开源社区/开源项目而言,我们也存在一些不足,比如,按 GitHub 建议,我们在如下社区建设方面还缺乏:
|
||||
|
||||
- 社区行为准则
|
||||
- 贡献指南
|
||||
- 议题模板
|
||||
- 拉取请求模板
|
||||
|
||||
因此,在写这篇文章时,我也要宣布一件事,就是我会逐渐淡出 LCTT 的日常管理,改组 LCTT 管理团队,将更多未来的可能交给社区成员来建设,也希望新的社区管理团队可以为 LCTT 创造出一个不同的明天。
|
||||
|
||||
以下,请我们的 Linux 中国的核心合伙人 Bestony 来介绍一下今后 LCTT 的发展计划。
|
||||
|
||||
---
|
||||
|
||||
大家好,我是 Bestony,感谢老王数年来的坚持不懈的投入,正是有老王的坚守,才能有我们如今的成就。在接下来的时间里,我将会帮助老王,更好的运作 LCTT,让老王可以喘口气,也为 LCTT 带来一些新的气象。
|
||||
|
||||
在过去的七年里,我们 LCTT 做了很多事情,我们翻译了数千篇文章,有数百位技能精湛的贡献者。如今,到了 7 年的这个节点上,我也在思考,我们下一步应该怎么走。
|
||||
|
||||
其实,在过去的一年里,LCTT 的问题在不断的浮现:选题方向单一、译者进入门槛较高、大家翻译的质量水平参差不齐、校对的人手不足、译稿外发的反馈不足,这些问题都是我们在过去遇见,但一直没有足够的精力和人力来解决的问题。不过,如今我将加入到 LCTT 的管理团队中,配合老王,一起一个个的解决这些过去遇见的问题。
|
||||
|
||||
![](https://postimg.aliavv.com/mbp/3kfwy.png)
|
||||
|
||||
对于这些问题,有一些我们已经在解决,比如“**选题方向单一**”,在今年的年初,LCTT 与红帽公司(RedHat)[联合建立了 LCRH SIG](https://linux.cn/article-12436-1.html),面向红帽旗下的原创播客《<ruby>[代码英雄](https://www.redhat.com/en/command-line-heroes) <rt>Command Line Heroes</rt></ruby>》进行定向的翻译,目前,第一季度的翻译成功已经全部在 Linux 中国公众号上发布,而第二、三季度的内容,也正在不断的发布过程中。
|
||||
|
||||
![](https://postimg.aliavv.com/mbp/71eup.png)
|
||||
|
||||
LCTT - SIG 将是后续的新的发展方向。**我们将会在保留 LCTT 主体的基础上,鼓励各位译者探索更多的兴趣方向,通过建立起不同的 SIG,引入更多的翻译内容,来帮助大家更好的达成自己想要的翻译目标。** 并且,通过 LCTT 的技术和经验,赋能每一位译者,帮助译者更好的学习、了解各种不同领域的知识。
|
||||
|
||||
而在“**进入门槛较高**”方面,一直以来 Github 的访问慢问题、Git 的概念不熟悉等问题,都是困扰不少新同学的点。而也正是这些点,在不断制约着 LCTT 的发展。在将来,我希望 LCTT 可以打造出自己的翻译工具(也将会为之而奋斗),通过工具辅助的方式,帮助更多人走上翻译的道路,让更多的爱好者们,可以为中文的技术环境贡献一份力。
|
||||
|
||||
![](https://postimg.aliavv.com/mbp/8183e.png)
|
||||
|
||||
后续,我们将会引入翻译工具、自建关键词表、多轮校对手段等方案,帮助更多的译者完成自己的翻译文章,通过翻译,学到自己想要的知识。
|
||||
|
||||
当然,问题并不止我点出来的这些,我们能发展到今天,一定有很多做对了的地方,但同样,我们也有做错了的地方。欢迎你随时联系我,讨论你对于 LCTT 下一步的想法,我相信,你的意见能够帮助 LCTT 变得更好。
|
||||
|
||||
![](https://postimg.aliavv.com/mbp/aq5m9.png)
|
||||
|
||||
最后,**千里之行,始于足下**,刚刚走过 7 年的 LCTT, 希望我们可以在下一个七年,再次相遇。
|
||||
|
0
published/201610/20160604 How to Build Your First Slack Bot with Python.md
Executable file → Normal file
0
published/201610/20160604 How to Build Your First Slack Bot with Python.md
Executable file → Normal file
0
published/201610/20160724 Terminator A Linux Terminal Emulator With Multiple Terminals In One Window.md
Executable file → Normal file
0
published/201610/20160724 Terminator A Linux Terminal Emulator With Multiple Terminals In One Window.md
Executable file → Normal file
0
published/201610/20160811 How to Mount Remote Linux Filesystem or Directory Using SSHFS Over SSH.md
Executable file → Normal file
0
published/201610/20160811 How to Mount Remote Linux Filesystem or Directory Using SSHFS Over SSH.md
Executable file → Normal file
0
published/201610/20160812 What is copyleft.md
Executable file → Normal file
0
published/201610/20160812 What is copyleft.md
Executable file → Normal file
0
published/201611/20160513 aria2 (Command Line Downloader) command examples.md
Executable file → Normal file
0
published/201611/20160513 aria2 (Command Line Downloader) command examples.md
Executable file → Normal file
0
published/201611/20160914 Down and dirty with Windows Nano Server 2016.md
Executable file → Normal file
0
published/201611/20160914 Down and dirty with Windows Nano Server 2016.md
Executable file → Normal file
0
published/201611/20161025 3 Ways to Delete All Files in a Directory Except One or Few Files with Extensions.md
Executable file → Normal file
0
published/201611/20161025 3 Ways to Delete All Files in a Directory Except One or Few Files with Extensions.md
Executable file → Normal file
0
published/201611/20161025 How to Start Linux Command in Background and Detach Process in Terminal.md
Executable file → Normal file
0
published/201611/20161025 How to Start Linux Command in Background and Detach Process in Terminal.md
Executable file → Normal file
0
published/201701/20160610 Setting Up Real-Time Monitoring with Ganglia.md
Executable file → Normal file
0
published/201701/20160610 Setting Up Real-Time Monitoring with Ganglia.md
Executable file → Normal file
0
published/201804/20180206 Programming in Color with ncurses.md
Executable file → Normal file
0
published/201804/20180206 Programming in Color with ncurses.md
Executable file → Normal file
0
published/201908/20190730 How to create a pull request in GitHub.md
Executable file → Normal file
0
published/201908/20190730 How to create a pull request in GitHub.md
Executable file → Normal file
@ -0,0 +1,125 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (M4Xrun)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-13480-1.html)
|
||||
[#]: subject: (4 technologists on careers in tech for minorities)
|
||||
[#]: via: (https://opensource.com/article/20/2/careers-tech-minorities)
|
||||
[#]: author: (Shilla Saebi https://opensource.com/users/shillasaebi)
|
||||
|
||||
4 位技术专家谈少数族群的技术职业
|
||||
======
|
||||
|
||||
> 了解 BHM 对他们意味着什么,什么影响了他们的职业生涯,为想要进入科技领域的少数族群提供资源,等等。
|
||||
|
||||
![Team meeting][1]
|
||||
|
||||
为了纪念 BHM,我收集了一些我最喜欢的技术专家和开源贡献者的意见。这四位正在为下一代铺路,同时也在为他们在科技行业所做的工作铺路。了解 BHM 对他们意味着什么,是什么影响了他们的职业生涯,为想要进入科技领域的少数族群提供资源,等等。
|
||||
|
||||
**[Tameika Reed][2],Women In Linux 创始人**
|
||||
|
||||
自 Women In Linux 发起以来,Tameika 一直致力于探索基础设施、网络安全、DevOps 和物联网领域的职业生涯,并致力于领导力和持续技能的培养。作为一个自学成才的系统管理员,Tameika 相信学习技术的最好方法就是深入其中。为了给女性一个全面的角度来看技术,Tameika 每周都会举办一次线上会议来探讨 Hyperledger、Kubernetes、微服务和高性能计算等 Linux 常规之外的技术。Tameika 的职业生涯包括与 OSCon、LISA 2018、Seagl、HashiCorp EU 2019 不同的会议以及各种当地活动进行会议发言。
|
||||
|
||||
**[Michael Scott Winslow][3],Comcast 公司核心应用与平台总监**
|
||||
|
||||
“我是一个父亲、丈夫、兄弟、儿子。我出生在一个小家庭,所以我很乐于把朋友们变成一个大家庭。当我把我的名字附在某件事上时,我就非常希望它能成功,所以我很在意我参与的事情。噢,在我的职业生涯中我已经做了数十年的软件开发。我解决问题,和别人合作一起帮助解决大问题,我带领、引导和指导年轻的软件工程师的同时观察我想要学习的人。”
|
||||
|
||||
**[Bryan Liles][4],VMware 资深工程师**
|
||||
|
||||
“我正在和我们的团队一起重新思考开发人员如何与 Kubernetes 进行交互。当我不工作的时候,我就制造机器人和在社区里努力激励下一代的软件工程师。”
|
||||
|
||||
**[Mutale Nkonde][5],AI For the People(AFP)首席执行官**
|
||||
|
||||
AFP 是一家非营利性的创意机构。在创办非营利组织之前,Nkonde 从事人工智能治理工作。在此期间,她是向美国众议院提出《算法和深度伪造算法法案》以及《无生物识别障碍住房法案》的团队成员之一。Nkonde 的职业生涯中最开始是做广播记者,曾在英国广播公司(BBC)、美国有线电视新闻网(CNN)和美国广播公司(ABC)工作。她还广泛从事种族和科技方面的写作,并在哈佛大学和斯坦福大学获得奖学金。
|
||||
|
||||
### 是什么影响了你选择技术领域的职业?
|
||||
|
||||
当我回到大学的时候,我害怕电脑。我害怕电脑是因为我从大学辍学了。之后我又回去了,我就把尽我所能学习作为自己的任务。这是我至今的座右铭,学习永不停止。— Tameika Reed
|
||||
|
||||
我不会拐弯抹角,我小时候是个极客!在我 10 岁的时候,我就从印刷杂志上读到的代码开始每天写 GW-BASIC。在我上高中的时候,我给了自己一点喘息的时间来享受生活,但是当到了为大学选择专业的时候,这是一个很容易做出的选择。我留在了科技行业,这得感谢我一路走来遇到的了不起的导师和同事。— Michael Scott Winslow
|
||||
|
||||
我从中学就开始写软件了。我喜欢告诉电脑去做事情并看到结果。长大后,我很快就意识到,拥有一份让我满意、收入高的工作才是正确的选择。— Bryan Liles
|
||||
|
||||
我想知道为什么科技公司雇佣的黑人女性这么少。 — Mutale Nkonde
|
||||
|
||||
### 在开源技术领域有没有某个特别的人给了你启发?
|
||||
|
||||
我从很多其他人和项目中得到启发。比如我喜欢看到其他人来到 [Women In Linux][6],并确定他们想去哪里。我试着让人们从更全面的角度来看科技,这样他们就可以决定自己喜欢什么。说自己想在科技行业工作很容易,但要入手并坚持下去很难。你不必仅仅是一个程序员,你也可以成为一个云计算架构师。— Tameika Reed
|
||||
|
||||
[Kelsey Hightower][7]、[Bryan Liles][4] 和 Kim Scott 激励了我。他们是如此真实!他们说的都是我每天的感受和经历。做好你的工作!别抱怨了!承认你的行为,并明白你是如何促成你的处境的![Gene Kim][8] 也给了我很大的启发。作为 DevOps 运动的领导者,我看到自己在追随和模仿他做的很多事情。 — Michael Scott Winslow
|
||||
|
||||
不,我没有看到我想要的灵感,所以我努力成为 20 年前那个给我启发的人。 — Bryan Liles
|
||||
|
||||
太多了!我最喜欢的一个是:[Dorothy Vaughan][9],她是美国第一个为 IBM 沃森电脑编程的人。她的故事被记录在电影《Hidden Figures》中。 — Mutale Nkonde
|
||||
|
||||
### 你有什么特别的资源可以推荐给那些想要加入科技行业的少数人吗?
|
||||
|
||||
有,我建议你在 Twitter 上交一些朋友,然后提问。以下是我在科技界关注和欣赏的一些人: — Tameika Reed
|
||||
|
||||
* [@techgirl1908][10]
|
||||
* [@bryanl][4]
|
||||
* [@kelseyhightower][7]
|
||||
* [@kstewart][11]
|
||||
* [@tiffani][12]
|
||||
* [@EricaJoy][13]
|
||||
* [@womeninlinux][6]
|
||||
* [@ArlanWasHere][14]
|
||||
* [@blkintechnology][15]
|
||||
* [@digundiv][16]
|
||||
|
||||
受重视的新人训练营确实缩短了人们加入科技行业的时间。我遇到过几位经过培训的专业人士,他们都比 4 年制学校的同行更出色。我认为我们可以真正开始尊重人们创造的成果,而不是技术的熟练。 — Michael Scott Winslow
|
||||
|
||||
我不确定我能推荐什么具体的东西。科技是一个很大的整体,所以没有一个简单的答案。我的建议是选择你认为会感兴趣的东西,并努力成为这个方面的专家。从问为什么开始,而不是怎么做,并且开始理解事物是如何一起运作的。 — Bryan Liles
|
||||
|
||||
这取决于他们想做什么工作。对于那些在科技和社会公正的交汇处工作的人,我推荐 Safiya Noble 的《[Algorithms of Oppression][17]》一书。 —Mutale Nkonde
|
||||
|
||||
### 你对有色人种将科技作为他们的职业有什么建议?
|
||||
|
||||
我建议你学习自己的技能。你将是一个永远的学习者。总会有人或事挡在你的路上,你的反应和行动将取决于你自己。永远不要拒绝第一个提议,要知道自己的价值。我看技术就像看艺术一样。发展需要时间,所以要对自己有耐心,拔掉插头说不也没关系。 — Tameika Reed
|
||||
|
||||
作为一个有点像行业保护者一样的人,我不想要不适合技术的人。所以要真正判断自己是否适合科技。你是一个能解决问题的人吗?你是否理性多于感性?你是否经常发现自己在创造过程?如果是这样,无论你的背景如何,我认为你都可以在科技行业找到一个家。— Michael Scott Winslow
|
||||
|
||||
事情不会那么简单。你的进步会因为你的族群而减慢。你必须更努力工作。把逆境当作动力。你要比周围的人准备的更充分,这样当机会出现时你就能够应对它。找一个与你相似的人的网络,私下发泄不满,公开展示实力。你属于这里,你就能成功。 — Bryan Liles
|
||||
|
||||
除了为一家公司工作,也在发展公共利益技术领域,我们的工作中心是技术如何影响真实的人。许多领导这项工作的人是有色人种妇女,黑人妇女正在取得巨大的进步。— Mutale Nkonde
|
||||
|
||||
### BHM 对你来说意味着什么?
|
||||
|
||||
意味着永不停止,为你永远不会忘记。 —Tameika Reed
|
||||
|
||||
BHM 对我来说意味着关注塔斯克基飞行队而不是奴隶制。强调我们如何为历史做出贡献,而不是如何成为历史的受害者。我希望人们理解我们的骄傲来自哪里,而不是我们的愤怒。在我们的人民身上发生了很多非常糟糕的事情,但我们还站在这里。坚强!— Michael Scott Winslow
|
||||
|
||||
BHM 是一个反思被遗忘的美国黑人历史的日子。我把它当作是感谢我的祖先所做的牺牲的时刻。— Bryan Liles
|
||||
|
||||
这是一个集中体现全球黑人所作贡献的时刻。我喜欢它,这是我一年中最喜欢的时间之一。 — Mutale Nkonde
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/2/careers-tech-minorities
|
||||
|
||||
作者:[Shilla Saebi][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[M4Xrun](https://github.com/M4Xrun)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/shillasaebi
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/meeting-team-listen-communicate.png?itok=KEBP6vZ_ (Team meeting)
|
||||
[2]: https://www.linkedin.com/in/tameika-reed-1a7290128/
|
||||
[3]: https://twitter.com/michaelswinslow
|
||||
[4]: https://twitter.com/bryanl
|
||||
[5]: https://twitter.com/mutalenkonde
|
||||
[6]: https://twitter.com/WomenInLinux
|
||||
[7]: https://twitter.com/kelseyhightower
|
||||
[8]: https://twitter.com/RealGeneKim
|
||||
[9]: https://en.wikipedia.org/wiki/Dorothy_Vaughan
|
||||
[10]: https://twitter.com/techgirl1908
|
||||
[11]: https://twitter.com/kstewart
|
||||
[12]: https://twitter.com/tiffani
|
||||
[13]: https://twitter.com/EricaJoy
|
||||
[14]: https://twitter.com/ArlanWasHere
|
||||
[15]: https://twitter.com/blkintechnology
|
||||
[16]: https://twitter.com/digundiv
|
||||
[17]: http://algorithmsofoppression.com/
|
98
published/202004/20190712 What is Silverblue.md
Normal file
98
published/202004/20190712 What is Silverblue.md
Normal file
@ -0,0 +1,98 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (wxy)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12153-1.html)
|
||||
[#]: subject: (What is Silverblue?)
|
||||
[#]: via: (https://fedoramagazine.org/what-is-silverblue/)
|
||||
[#]: author: (Tomáš Popela https://fedoramagazine.org/author/tpopela/)
|
||||
|
||||
Silverblue 是什么?
|
||||
======
|
||||
|
||||
![][1]
|
||||
|
||||
Fedora Silverblue 在 Fedora 世界内外越来越受欢迎。因此,根据社区的反馈,以下是关于这个项目的一些有趣问题的答案。如果你有任何其他与 Silverblue 相关的问题,请在评论区留言,我们会在未来的文章中回答。
|
||||
|
||||
### Silverblue 是什么?
|
||||
|
||||
Silverblue 是新一代桌面操作系统的代号,之前被称为 Atomic Workstation。该操作系统是通过利用 [rpm-ostree 项目][2]创建的映像来交付的。这种系统的主要优点是速度、安全性、原子更新和不变性。
|
||||
|
||||
### “Silverblue” 到底是什么意思?
|
||||
|
||||
“Team Silverblue” 或简称 “Silverblue”,没有任何隐藏的含义。该项目以前被称为 Atomic Workstation,大约两个月后更名时选中了这个名字。在这个过程中,审查过 150 多个单词或单词组合。最终选择了 “Silverblue”,因为它有一个可用的域名以及社交网络账号。人们可以把它看成是 Fedora 的蓝色品牌的一个新的品牌形象,可以用在诸如“加油,Silverblue 团队!”或“想加入该团队,改进 Silverblue 吗?”这样的短语中。
|
||||
|
||||
### 何谓 ostree?
|
||||
|
||||
[OSTree(或 libostree)是一个项目][3],它结合了一个类似 Git 的提交和下载可引导文件系统树的模型,以及用于部署它们和管理引导加载程序配置的层。OSTree 由 rpm-ostree 使用,这是 Silverblue 使用的一个基于包/镜像的混合系统。它原子化地复制了一个基础操作系统,并允许用户在需要时在基础操作系统之上“层叠”传统的 RPM。
|
||||
|
||||
### 为何使用 Silverblue?
|
||||
|
||||
因为它可以让你专注于你的工作,而不是你正在运行的操作系统。因为系统的更新是原子式的,所以它更稳健。你唯一需要做的事情就是重新启动到新的镜像中。此外,如果当前启动的镜像有什么问题,你可以很容易地重启/回滚到之前可以工作的镜像,如果有的话。如果没有,你可以使用 `ostree` 命令下载并启动过去生成的任何其他镜像。
|
||||
|
||||
另一个好处是可以在不同的分支(或者用旧的语境说就是不同的 Fedora 风味版本)之间轻松切换。你可以轻松地尝试 [Rawhide][4] 或 [updates-testing][5] 分支,然后返回到包含当前稳定版本的分支。另外,如果你想尝试一些新奇的东西,也可以考虑试试 Silverblue。
|
||||
|
||||
### 不可变的操作系统有什么好处?
|
||||
|
||||
其中一个主要的好处是安全。基础操作系统是以只读的形式挂载的,因此不能被恶意软件修改。唯一可以改变系统的方法是通过 `rpm-ostree` 实用程序。
|
||||
|
||||
另一个好处是健壮性。普通用户几乎不可能在不小心或无意中删除了一些系统库后,导致操作系统回到不启动或无法正常工作的状态。试着想想你过去的这些经历,就可以明白 Silverblue 可以如何帮助你。
|
||||
|
||||
### 如何在 Silverblue 中管理应用程序和包?
|
||||
|
||||
对于图形化用户界面的应用程序,建议使用 [Flatpak][6] —— 如果应用程序是以 Flatpak 的形式提供的话。用户可以选择来自 Fedora 的 Flatpak,和从 Fedora 包及 Fedora 自己的基础架构中构建的 Flatpak,或者是目前有更广泛的交付品的 Flathub。用户可以通过已经支持 Fedora Silverblue 的 GNOME “软件”轻松安装它们。
|
||||
|
||||
用户首先发现的一件事就是操作系统中没有预装 `dnf`。主要原因是它不能在 Silverblue 上工作 —— 它的部分功能被 `rpm-ostree` 命令所取代。用户可以通过使用 `rpm-ostree install PACKAGE` 来层叠传统的软件包。但只有在没有其他方法的情况下,才应该使用这种方式。这是因为从存储库中提取新的系统镜像时,每次更改系统镜像时都必须重新构建系统镜像,以容纳层叠的包或从基础操作系统中删除及替换为其他版本的包。
|
||||
|
||||
Fedora Silverblue 自带的默认 GUI 应用程序集是基础操作系统的一部分。团队正在努力将它们移植到 Flatpak 上,这样它们就可以通过这种方式分发。其中一个好处是,基础操作系统将变得更小,更容易维护和测试,用户可以更容易修改他们的默认安装环境。如果你想看一下它是怎么做的,或者有什么帮助,可以看看官方的[文档][7]。
|
||||
|
||||
### 什么是 Toolbox?
|
||||
|
||||
[Toolbox][8] 是一个让普通用户可以轻松使用容器的项目。它通过使用 podman 的无 root 容器环境来实现。Toolbox 可以让你在常规的 Fedora 环境中轻松、快速地创建一个容器,你可以在这个容器上折腾或开发,而与你的操作系统分离。
|
||||
|
||||
### Silverblue 有路线图吗?
|
||||
|
||||
形式上没有,因为我们正在关注在测试过程中发现的问题和社区的反馈。我们目前正在使用 Fedora 的 [Taiga][9] 来进行规划。
|
||||
|
||||
### Silverblue 的发布周期是多少?
|
||||
|
||||
它和普通的 Fedora Workstation 是一样的。每 6 个月发布一次新版本,支持期为 13 个月。团队计划每两周(或更长时间)发布一次更新,而不是像现在这样每天发布一次。这样一来,更新可以在发送给其他用户之前,由 QA 和社区志愿者进行更彻底的测试。
|
||||
|
||||
### 不可变操作系统的未来前景如何?
|
||||
|
||||
从我们的角度来看,桌面的未来会走向到不可变的操作系统。这对用户来说是最安全的,Android、ChromeOS、ChromeOS、最近的 macOS Catalina 全都在底层采用了这种方式。而对于 Linux 桌面来说,一些第三方软件期望写到操作系统的问题还是存在的。HP 打印机驱动程序就是一个很好的例子。
|
||||
|
||||
另一个问题是系统中的部分软件如何分发和安装。字体就是一个很好的例子。目前在 Fedora 中,它们是以 RPM 包的形式分发的。如果你想使用它们,你必须层叠它们,然后重新启动到新创建的包含它们的镜像中。
|
||||
|
||||
### 标准版 Workstation 的前景如何?
|
||||
|
||||
Silverblue 有可能会取代普通的 Workstation 版本。但 Silverblue 要提供与 Workstation 版本相同的功能和用户体验还有很长的路要走。在此期间,这两款桌面产品将同时推出。
|
||||
|
||||
### Atomic Workstation 或 Fedora CoreOS 与这些有什么关系?
|
||||
|
||||
Atomic Workstation 是在更名为 Fedora Silverblue 之前的项目名称。
|
||||
|
||||
Fedora CoreOS 是一个不同但相似的项目。它与 Silverblue 共享一些基本技术,如 `rpm-ostree`、`toolbox` 等。尽管如此,CoreOS 是一个更简约、专注于容器、自动更新的操作系统。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://fedoramagazine.org/what-is-silverblue/
|
||||
|
||||
作者:[Tomáš Popela][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://fedoramagazine.org/author/tpopela/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://fedoramagazine.org/wp-content/uploads/2019/07/what-is-fedora-silverblue-816x345.jpg
|
||||
[2]: https://rpm-ostree.readthedocs.io/en/latest/
|
||||
[3]: https://ostree.readthedocs.io/en/latest/
|
||||
[4]: https://fedoraproject.org/wiki/Releases/Rawhide
|
||||
[5]: https://fedoraproject.org/wiki/QA:Updates_Testing
|
||||
[6]: https://flatpak.org/
|
||||
[7]: https://docs.fedoraproject.org/en-US/flatpak/tutorial/
|
||||
[8]: https://github.com/debarshiray/toolbox
|
||||
[9]: https://teams.fedoraproject.org/project/silverblue/
|
@ -0,0 +1,155 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (robsean)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12152-1.html)
|
||||
[#]: subject: (How to make a Halloween lantern with Inkscape)
|
||||
[#]: via: (https://opensource.com/article/19/10/how-make-halloween-lantern-inkscape)
|
||||
[#]: author: (Jess Weichler https://opensource.com/users/cyanide-cupcake)
|
||||
|
||||
如何使用 Inkscape 制作万圣节灯笼
|
||||
======
|
||||
|
||||
> 使用开源软件为你最喜欢的万圣节鬼屋制作一个有趣和怪异的装饰品。
|
||||
|
||||
![万圣节 - 背光飞行的蝙蝠][1]
|
||||
|
||||
使用开源软件装饰一个独一无二的万圣节灯笼!
|
||||
|
||||
通常,灯笼的一部分结构体是不透明的,以阻挡内部的光线。灯笼之所以成为灯笼,是因为其去掉了一些东西 :从结构体上切开的窗口,这样光线就可以射出。虽然对于照明来说不实用,但是一个有着怪异形状窗口和隐藏暗色轮廓的灯笼却可以令人兴奋,并创造出很多乐趣。
|
||||
|
||||
这篇演示如何使用 [Inkscape][2] 创建你自己的灯笼。如果还没有 Inkscape ,在 Linux 上,你可以从软件库中安装它,在 MacOS 和 Windows 上,你可以从[Inkscape 网站][3] 上下载它.
|
||||
|
||||
### 使用材料
|
||||
|
||||
* 模板([A4][4] 或[信纸][5]大小)
|
||||
* 卡片纸(黑色是传统色)
|
||||
* 描图纸(可选)
|
||||
* 裁纸刀、尺子、切割垫板(可使用工艺切割机/激光切割机代替)
|
||||
* 工艺胶
|
||||
* LED 茶灯"蜡烛"
|
||||
|
||||
安全注意事项:这个项目只使用电池操作的蜡烛。
|
||||
|
||||
### 理解模板
|
||||
|
||||
首先,从上面的链接下载你所在区域(A4 或信纸)的合适的模板,然后在 Inkscape 中打开它。
|
||||
|
||||
![灯笼模板荧光屏][6]
|
||||
|
||||
灰白色的棋盘格背景是透明的(从技术角度来说,它是 alpha 通道。)
|
||||
|
||||
黑色基板构成了灯笼。现在,没有窗口可以让光线穿过;灯笼有一个非镂空的黑色基板。你将在 Inkscape 中使用**并集**和**差集**选项来数字化的设计窗口。
|
||||
|
||||
蓝色虚线表示折线。橙色实线表示参考线。采光窗口不应该放在橙色盒子的外面。
|
||||
|
||||
模板的左侧是你可以在你设计中使用的一些预先制作好的对象。
|
||||
|
||||
### 创建一个窗口或形状
|
||||
|
||||
1. 创建一个看起来像你想要的窗口样式的对象。可以使用 Inkscape 左侧工具栏中的一些形状工具来创建对象。此外,你可以下载共创或公共领域的剪贴画,并导入 PNG 文件到你的项目中。
|
||||
2. 当你对对象的形状满意时,在顶部菜单中选择“路径” -> “对象转化成路径” 将其转换为一个路径(而不是一个形状,Inkscape 视其为两种不同的对象)。
|
||||
|
||||
![对象到路径 菜单][7]
|
||||
|
||||
3. 在基板形状的上面放置对象。
|
||||
4. 选择对象和黑色基板。通过先单击一个,并按住 `Shift` 按键,再选择另一个来完成。
|
||||
5. 从顶部菜单选择“路径” -> “差集” 来从基板的对象中移除形状。这将创建灯笼中的一个窗口。
|
||||
|
||||
![路径 > 差集 菜单][8]
|
||||
|
||||
### 添加对象到窗口中
|
||||
|
||||
在制作了一个窗口后,你可以添加对象到其中来创建一个场景。
|
||||
|
||||
提示:
|
||||
|
||||
* 所有的对象,包括文本,必须连接到灯笼的基板,否则,在切割后会掉落下来,并留下一片空白。
|
||||
* 避免小而复杂的细微之处。即使使用激光切割机或工艺切割机等机器,也很难切割这些细微之处。
|
||||
|
||||
1. 创建或导入一个对象。
|
||||
2. 放置对象到窗口内,以便它至少接触基板的两侧。
|
||||
3. 选择对象后,从顶部菜单选择“连接” -> “对象转化成路径”。
|
||||
|
||||
![对象到路径 菜单][9]
|
||||
|
||||
4. 选择对象和黑色基板,通过在按住 `Shift` 按键的同时单击每一个来完成。
|
||||
5. 选择“路径” -> “并集”来使对象和基板合二为一。
|
||||
|
||||
### 添加文本
|
||||
|
||||
文本既可以从基板剪出文字来创建一个窗口(就像我对星星所做的那样),或者也可以添加到一个窗口上(它可以阻挡来自灯笼内部的光线)。如果你要创建一个窗口,只需要执行下面的步骤 1 和步骤 2,然后使用“差集”来从基板移除文本。
|
||||
|
||||
1. 从左侧边栏中选择文本工具来创建文本。粗体字体效果最好。
|
||||
|
||||
![文本工具][10]
|
||||
|
||||
2. 选择你的文本,然后从顶部菜单选择“路径” -> “对象转化成路径”。这将转换文本对象为一个路径。注意,这个步骤意味着你将不能再编辑该文本,所以,*只有当*你确定你拥有想要的单词后,执行这个步骤。
|
||||
3. 在你转换文本后,你可以按键盘上的 `F2` 来激活节点编辑器工具,当选择使用这个工具时,可以清楚地显示文本的节点。
|
||||
|
||||
![选中的文本使用节点编辑器][11]
|
||||
|
||||
4. 取消文本分组。
|
||||
5. 调整每个字母,以便使其与相邻字母或基板稍微重叠。
|
||||
|
||||
![重叠文本][12]
|
||||
|
||||
6. 为将所有的字母彼此连接,并连接到基板,重新选择所有文本和基板,然后选择“路径” -> “并集”。
|
||||
|
||||
![使用 路径 > 并集 连接字母和基板][13]
|
||||
|
||||
### 准备打印
|
||||
|
||||
下面是手工切割灯笼的说明。如果使用激光切割机或工艺切割机,遵循硬件所需要的技巧来准备好你的文件。
|
||||
|
||||
1. 在“图层”面板中,单击“安全”图层旁边的“眼睛”图标来隐藏安全线。如果你看不到图层面板,通过顶部菜单选择“图层” -> “图层”来显示它。
|
||||
2. 选择黑色基板。在“填充和笔划”面板中,设置填充为“X”(意味着*不填充*),设置“笔划”为纯黑色(对于喜欢十六进制的粉丝来说是 `#000000ff` )。
|
||||
|
||||
![设置填充和笔划][14]
|
||||
|
||||
3. 使用“文件” -> “打印”来打印你的图案。
|
||||
4. 使用一把工艺刀和直尺,小心地绕着每一条黑线切割。在蓝色虚线上轻划,然后折叠。
|
||||
|
||||
![裁剪灯笼][15]
|
||||
|
||||
5. 要完成窗口的制作,剪切描图纸为每个窗口的大小,然后粘贴它到灯笼的内侧。
|
||||
|
||||
![添加描图纸][16]
|
||||
|
||||
6. 在折条处把灯笼的边粘在一起。
|
||||
7. 接通电池供电的 LED 蜡烛,并放置它到你灯笼中。
|
||||
|
||||
![完成灯笼][17]
|
||||
|
||||
现在你的灯笼已经完成了,准备好点亮你的鬼屋了。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/19/10/how-make-halloween-lantern-inkscape
|
||||
|
||||
作者:[Jess Weichler][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[robsean](https://github.com/robsean)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/cyanide-cupcake
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/halloween_bag_bat_diy.jpg?itok=24M0lX25 (Halloween - backlit bat flying)
|
||||
[2]: https://opensource.com/article/18/1/inkscape-absolute-beginners
|
||||
[3]: http://inkscape.org
|
||||
[4]: https://www.dropbox.com/s/75qzjilg5ak2oj1/papercraft_lantern_A4_template.svg?dl=0
|
||||
[5]: https://www.dropbox.com/s/8fswdge49jwx91n/papercraft_lantern_letter_template%20.svg?dl=0
|
||||
[6]: https://opensource.com/sites/default/files/uploads/lanterntemplate_screen.png (Lantern template screen)
|
||||
[7]: https://opensource.com/sites/default/files/uploads/lantern1.png (Object to path menu)
|
||||
[8]: https://opensource.com/sites/default/files/uploads/lantern2.png (Object > Difference menu)
|
||||
[9]: https://opensource.com/sites/default/files/uploads/lantern3.png (Object to path menu)
|
||||
[10]: https://opensource.com/sites/default/files/uploads/lantern4.png (Text tool)
|
||||
[11]: https://opensource.com/sites/default/files/uploads/lantern5.png (Text selected with Node editor)
|
||||
[12]: https://opensource.com/sites/default/files/uploads/lantern6.png (Overlapping the text)
|
||||
[13]: https://opensource.com/sites/default/files/uploads/lantern7.png (Connecting letters and base with Path > Union)
|
||||
[14]: https://opensource.com/sites/default/files/uploads/lantern8.png (Setting fill and stroke)
|
||||
[15]: https://opensource.com/sites/default/files/uploads/lantern9.jpg (Cutting out the lantern)
|
||||
[16]: https://opensource.com/sites/default/files/uploads/lantern10.jpg (Adding tracing paper)
|
||||
[17]: https://opensource.com/sites/default/files/uploads/lantern11.jpg (Completed lantern)
|
@ -0,0 +1,68 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (wxy)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12161-1.html)
|
||||
[#]: subject: (The Difference Between DNF and YUM, Why is Yum Replaced by DNF?)
|
||||
[#]: via: (https://www.2daygeek.com/comparison-difference-between-dnf-vs-yum/)
|
||||
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
|
||||
|
||||
DNF 和 Yum 的区别,为什么 Yum 会被 DNF 取代?
|
||||
======
|
||||
|
||||
由于 Yum 中许多长期存在的问题仍未得到解决,因此 [Yum 包管理器][1]已被 [DNF 包管理器][2]取代。这些问题包括性能差、内存占用过多、依赖解析速度变慢等。
|
||||
|
||||
DNF 使用 `libsolv` 进行依赖解析,由 SUSE 开发和维护,旨在提高性能。
|
||||
|
||||
Yum 主要是用 Python 编写的,它有自己的应对依赖解析的方法。它的 API 没有完整的文档,它的扩展系统只允许 Python 插件。
|
||||
|
||||
Yum 是 RPM 的前端工具,它管理依赖关系和资源库,然后使用 RPM 来安装、下载和删除包。
|
||||
|
||||
为什么他们要建立一个新的工具,而不是修复现有的问题呢?
|
||||
|
||||
Ales Kozamblak 解释说,这个修复在技术上是不可行的,而且 Yum 团队还没有准备好立即接受修改。
|
||||
|
||||
另外,最大的挑战是,Yum 有 56000 行代码,但 DNF 只有 29000 行代码。
|
||||
|
||||
所以除了分叉,没有办法解决。
|
||||
|
||||
不过 Yum 的运行情况还算可以。
|
||||
|
||||
|
||||
编号 | DNF(Dandified YUM) | YUM(Yellowdog Updater, Modified)
|
||||
---|---|---
|
||||
1 | DNF 使用 libsolv 来解析依赖关系,由 SUSE 开发和维护 | YUM 使用公开的 API 来解析依赖关系
|
||||
2 | API 有完整的文档 | API 没有完整的文档
|
||||
3 | 由 C、C++、Python 编写的 | 只用 Python 编写
|
||||
4 | DNF 目前在 Fedora、RHEL 8、CentOS 8、OEL 8 和 Mageia 6/7 中使用 | YUM 目前在 RHEL 6/7、CentOS 6/7、OEL 6/7 中使用
|
||||
5 | DNF 支持各种扩展 | Yum 只支持基于 Python 的扩展
|
||||
6 | API 有良好的文档,因此很容易创建新的功能 | 因为 API 没有正确的文档化,所以创建新功能非常困难
|
||||
7 | DNF 在同步存储库的元数据时,使用的内存较少 | 在同步存储库的元数据时,YUM 使用了过多的内存
|
||||
8 | DNF 使用满足性算法来解决依赖关系解析(它是用字典的方法来存储和检索包和依赖信息)| 由于使用公开 API 的原因,Yum 依赖性解析变得迟钝
|
||||
9 | 从内存使用量和版本库元数据的依赖性解析来看,性能都不错 | 总的来说,在很多因素的影响下,表现不佳
|
||||
10 | DNF 更新:在 DNF 更新过程中,如果包中包含不相关的依赖,则不会更新 | YUM 将在没有验证的情况下更新软件包
|
||||
11 | 如果启用的存储库没有响应,DNF 将跳过它,并继续使用可用的存储库处理事务 | 如果有存储库不可用,YUM 会立即停止
|
||||
12 | `dnf update` 和 `dnf upgrade` 是等价的 | 在 Yum 中则不同
|
||||
13 | 安装包的依赖关系不更新 | Yum 为这种行为提供了一个选项
|
||||
14 | 清理删除的包:当删除一个包时,DNF 会自动删除任何没有被用户明确安装的依赖包 | Yum 不会这样做
|
||||
15 | 存储库缓存更新计划:默认情况下,系统启动后 10 分钟后,DNF 每小时会对配置的存储库检查一次更新。这个动作由系统定时器单元 `dnf-makecache.timer` 控制 | Yum 也会这样做
|
||||
16 | 内核包不受 DNF 保护。不像 Yum,你可以删除所有的内核包,包括运行中的内核包 | Yum 不允许你删除运行中的内核
|
||||
17 | libsolv:用于解包和读取资源库。hawkey: 为 libsolv 提供简化的 C 和 Python API 库。librepo: 提供 C 和 Python(类似 libcURL)API 的库,用于下载 Linux 存储库元数据和软件包。libcomps: 是 yum.comps 库的替代品。它是用纯 C 语言编写的库,有 Python 2 和 Python 3 的绑定。| Yum 不使用单独的库来执行这些功能
|
||||
18 | DNF 包含 29000 行代码 | Yum 包含 56000 行代码
|
||||
19 | DNF 由 Ales Kozumplik 开发 | YUM 由 Zdenek Pavlas、Jan Silhan 和团队成员开发
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.2daygeek.com/comparison-difference-between-dnf-vs-yum/
|
||||
|
||||
作者:[Magesh Maruthamuthu][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://www.2daygeek.com/author/magesh/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.2daygeek.com/yum-command-examples-manage-packages-rhel-centos-systems/
|
||||
[2]: https://www.2daygeek.com/linux-dnf-command-examples-manage-packages-fedora-centos-rhel-systems/
|
@ -0,0 +1,173 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (lxbwolf)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12156-1.html)
|
||||
[#]: subject: (Manage complex Git workspaces with Great Teeming Workspaces)
|
||||
[#]: via: (https://opensource.com/article/20/2/git-great-teeming-workspaces)
|
||||
[#]: author: (Daniel Gryniewicz https://opensource.com/users/dang)
|
||||
|
||||
使用 GTWS 管理复杂的 Git 工作空间
|
||||
======
|
||||
|
||||
> GTWS 是一系列脚本,它使我们在开发环境中管理不同的项目和项目的各个版本变得很容易。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202004/27/182149xh9s7kb5bkf5875b.jpg)
|
||||
|
||||
[Great Teeming Workspaces][2](GTWS)是一个 Git 的复杂工作空间管理工具包,它使我们在开发环境中管理不同的项目和项目的各个版本变得很容易。
|
||||
|
||||
有点像 Python 的 [venv][3],但不是为 Python 语言准备的。GTWS 用来管理多个项目的多个版本的工作空间。你可以很容易地创建、更新、进入和离开工作空间,每个项目或版本的组合(最多)有一个本地的 origin,用来与 upstream 同步 — 其余的所有工作空间都从本地的 origin 更新。
|
||||
|
||||
### 部署
|
||||
|
||||
```
|
||||
${GTWS_ORIGIN}/<project>/<repo>[/<version>]
|
||||
${GTWS_BASE_SRCDIR}/<project>/<version>/<workspacename>/{<repo>[,<repo>...]}
|
||||
```
|
||||
|
||||
源代码目录的每一级(包括全局的家目录)可以包含一个 `.gtwsrc` 文件,这个文件中维护与当前级相关的设置和 bash 代码。每一级的配置会覆盖上一级。
|
||||
|
||||
### 安装
|
||||
|
||||
用下面的命令检出 GTWS:
|
||||
|
||||
```
|
||||
git clone https://github.com/dang/gtws.git
|
||||
```
|
||||
|
||||
配置你的 `${HOME}/.gtwsrc`。它应该包含 `GTWS_ORIGIN`,也可以再包含 `GTWS_SETPROMPT`。
|
||||
|
||||
把仓库目录加到环境变量中:
|
||||
|
||||
```
|
||||
export PATH="${PATH}:/path/to/gtws
|
||||
```
|
||||
|
||||
### 配置
|
||||
|
||||
通过级联 `.gtwsrc` 文件来进行配置。它从根目录向下遍历,会执行在每级目录中找到的 `.gtwsrc` 文件。下级目录的文件会覆盖上一级。
|
||||
|
||||
在你最上层的文件 `~/.gtws/.gtwsrc` 中进行如下设置:
|
||||
|
||||
* `GTWS_BASE_SRCDIR`:所有项目源文件目录树的基目录。默认为 `$HOME/src`。
|
||||
* `GTWS_ORIGIN`: 指定 origin git 目录树的路径。默认为 `$HOME/origin`。
|
||||
* `GTWS_SETPROMPT`: 可选配置。如果配置了这个参数,shell 提示符会有工作空间的名字。
|
||||
* `GTWS_DEFAULT_PROJECT`: 不指定项目或项目未知时默认的项目名。如果不指定,使用命令行时必须指明项目。
|
||||
* `GTWS_DEFAULT_PROJECT_VERSION`: 检出的默认版本。默认为 `master`。
|
||||
|
||||
在每个项目的根目录进行以下设置:
|
||||
|
||||
* `GTWS_PROJECT`: 项目的名字(和基目录)。
|
||||
* `gtws_project_clone`: 这个函数用于克隆一个项目的指定版本。如果未定义,它会假定项目的 origin 对每一个版本都有一个单独的目录,这样会导致克隆一堆 Git 仓库。
|
||||
* `gtws_project_setup`: 在克隆完所有的仓库后,可以选择是否调用这个函数,调用后可以对项目进行必要的配置,如在 IDE 中配置工作空间。
|
||||
|
||||
在项目版本级进行以下设置:
|
||||
|
||||
* `GTWS_PROJECT_VERSION:` 项目的版本。用于正确地从 origin 拉取代码。类似 Git 中的分支名字。
|
||||
|
||||
下面这些参数可以在目录树的任意地方进行配置,如果能生效,它们可以被重写多次:
|
||||
|
||||
* `GTWS_PATH_EXTRA`: 这些是工作空间中加到路径后的额外的路径元素。
|
||||
* `GTWS_FILES_EXTRA`: 这些是不在版本控制内,但应该在工作空间中被检出的额外的文件。这些文件包括 `.git/info/exclude`,每个文件都与仓库的基目录相关联。
|
||||
|
||||
### origin 目录
|
||||
|
||||
`GTWS_ORIGIN` (大部分脚本中)指向拉取和推送的原始 Git 检出目录。
|
||||
|
||||
`${GTWS_ORIGIN}` 部署:
|
||||
|
||||
* `/<project>`
|
||||
* 这是一个项目的仓库的基目录。
|
||||
* 如果指定了 `gtws_project_clone`,你可以配置任意的部署路径。
|
||||
* 如果没有指定 `gtws_project_clone`,这个路径下必须有个名为 `git` 的子目录,且 `git` 目录下有一系列用来克隆的裸 Git 仓库。
|
||||
|
||||
### 工作流示例
|
||||
|
||||
假设你有一个项目名为 `Foo`,它的 upstream 为 `github.com/foo/foo.git`。这个仓库有个名为 `bar` 的子模块,它的 upstream 是 `github.com/bar/bar.git`。Foo 项目在 master 分支开发,使用稳定版本的分支。
|
||||
|
||||
为了能在 Foo 中使用 GTWS,你首先要配置目录结构。本例中假设你使用默认的目录结构。
|
||||
|
||||
* 配置你最上层的 `.gtwsrc`:
|
||||
* `cp ${GTWS_LOC}/examples/gtwsrc.top ~/.gtwsrc`
|
||||
* 根据需要修改 `~/.gtwsrc`。
|
||||
* 创建顶级目录:
|
||||
* `mkdir -p ~/origin ~/src`
|
||||
* 创建并配置项目目录:
|
||||
* `mkdir -p ~/src/foo`
|
||||
|
||||
`cp ${GTWS_LOC}/examples/gtwsrc.project ~/src/foo/.gtwsrc`
|
||||
* 根据需要修改 `~/src/foo/.gtwsrc`。
|
||||
* 创建并配置 master 版本目录:
|
||||
* `mkdir -p ~/src/foo/master`
|
||||
|
||||
`cp ${GTWS_LOC}/examples/gtwsrc.version ~/src/foo/master/.gtwsrc`
|
||||
* 根据需要修改 `~/src/foo/master/.gtwsrc`。
|
||||
* 进入版本目录并创建一个临时工作空间来配置镜像:
|
||||
* `mkdir -p ~/src/foo/master/tmp`
|
||||
|
||||
`cd ~/src/foo/master/tmp`
|
||||
|
||||
`git clone --recurse-submodules git://github.com/foo/foo.git`
|
||||
|
||||
`cd foo`
|
||||
|
||||
`gtws-mirror -o ~/origin -p foo`(译注:这个地方原文有误,不加 `-s` 参数会报错)
|
||||
* 上面命令会创建 `~/origin/foo/git/foo.git` 和 `~/origin/foo/submodule/bar.git`。
|
||||
* 以后的克隆操作会从这些 origin 而不是 upstream 克隆。
|
||||
* 现在可以删除工作空间了。
|
||||
|
||||
到现在为止,Foo 的 master 分支的工作可以结束了。假设你现在想修复一个 bug,名为 `bug1234`。你可以脱离你当前的工作空间为修复这个 bug 单独创建一个工作空间,之后在新创建的工作空间中开发。
|
||||
|
||||
* 进入版本目录,创建一个新的工作空间:
|
||||
* `cd ~/src/foo/master`
|
||||
|
||||
`mkws bug1234`
|
||||
* 上面的命令创建了 `bug1234/`,在这个目录下检出了 Foo(和它的子模块 `bar`),并创建了 `build/foo` 来构建它。
|
||||
* 有两种方式进入工作空间:
|
||||
* `cd ~/src/foo/master/bug1234`
|
||||
|
||||
`startws`
|
||||
|
||||
或者
|
||||
|
||||
`cd ~/src/foo/master/`
|
||||
|
||||
`startws bug1234`
|
||||
* 上面的命令在 `bug1234` 工作空间中开启了一个子 shell。这个 shell 有 GTWS 的环境和你在各级 `.gtwsrc` 文件中设置的环境。它也把你工作空间的基目录加入到了 CD,因此你可以从 base 路径 `cd` 到相关的目录中。
|
||||
* 现在你可以修复 `bug1234` 了,构建、测试、提交你的修改。当你可以把代码推送到 upstream 时,执行下面的命令:
|
||||
|
||||
`cd foo`
|
||||
|
||||
`wspush`
|
||||
* `wspush` 会把代码推送到与你工作空间相关的分支 — 先推送到本地的 origin,再推送到 upstream。
|
||||
* 当 upstream 有修改时,你可以用下面的命令同步到本地:
|
||||
|
||||
`git sync`
|
||||
* 上面的命令调用了 GTWS 的 `git-sync` 脚本,会从本地 origin 更新代码。使用下面的命令来更新本地的 origin:
|
||||
|
||||
`git sync -o`
|
||||
* 上面的命令会更新你本地的 origin 和子模块的镜像,然后用那些命令来更新你的检出仓库的代码。`git-sync` 也有一些其他的很好的工鞥。
|
||||
* 当要结束工作空间中的工作时,直接退出 shell:
|
||||
|
||||
`exit`
|
||||
* 你可以在任何时间重复进入工作空间,也可以在同一时间在相同的工作空间中开多个 shell。
|
||||
* 当你不需要某个工作空间时,你可以使用 `rmws` 来删除它,或者直接删除它的目录树。
|
||||
* 还有一个脚本 `tmws` 使用 tmux 进入工作空间,能创建一系列的窗口/窗格,这完美契合我的工作流。你可以根据你自己的需求来修改它。
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/2/git-great-teeming-workspaces
|
||||
|
||||
作者:[Daniel Gryniewicz][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[lxbwolf](https://github.com/lxbwolf)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/dang
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/code_computer_laptop_hack_work.png?itok=aSpcWkcl (Coding on a computer)
|
||||
[2]: https://github.com/dang/gtws
|
||||
[3]: https://docs.python.org/3/library/venv.html
|
@ -0,0 +1,121 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (qfzy1233)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12155-1.html)
|
||||
[#]: subject: (Bodhi Linux 5.1 Review: Slightly Different Lightweight Linux)
|
||||
[#]: via: (https://itsfoss.com/bodhi-linux-review/)
|
||||
[#]: author: (John Paul https://itsfoss.com/author/john/)
|
||||
|
||||
Bodhi Linux 5.1 一览: 略有不同的轻量化 Linux
|
||||
======
|
||||
|
||||
Bodhi Linux 是一个基于 Ubuntu 的[轻量级 Linux 发行版][1]。与其他大多数发行版不同,Bodhi 使用自己的 Moksha 桌面,并专注于为你提供一个可以在旧计算机上运行的最简设置。
|
||||
|
||||
### 什么是 Bodhi Linux?
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202004/27/093318yawppv07zqpva4j6.png)
|
||||
|
||||
[Bodhi Linux][3] 最早于 2011 年推出。它以“[简约、高效和用户自定义][4]”为设计理念。开发人员旨在提供一个“[实用但不臃肿的系统][5]”。因此,它使用轻量级的 Moksha 桌面,只预装了基本的应用程序。这一做法是为了给用户一个稳定的平台来构建他们想要的系统。它基于最新版的 Ubuntu 长期支持版本。
|
||||
|
||||
### Moksha 桌面
|
||||
|
||||
![Bodhi Desktop][6]
|
||||
|
||||
起初 Bodhi 是装载着 [Enlightenment 桌面环境][7]的。Bodhi Linux 一直被认为是“Enlightenment 系的” Linux 发行版。事实上,“Bodhi”(菩提)这个词是基于梵文的“<ruby>开悟<rt> enlightenment</rt></ruby>”。
|
||||
|
||||
然而,当 Enlightenment 18 版本发布以后,这一切都改变了。该版本是如此的糟糕,以至于它并没有集成到 Bodhi 中。Enlightenment 19 发布后修复了一些问题,但仍然存在一些不足。
|
||||
|
||||
在尝试与 Enlightenment 开发团队合作却毫无进展之后,Bodhi 开发者在 2015 年[复刻][8]了 Enlightenment 17。新的桌面环境被命名为 [Moksha][9],它是基于梵文单词“解脱、解放或释放”。你可以在 [GitHub][10] 上找到它的代码。
|
||||
|
||||
### 5.1.0 有什么新特性?
|
||||
|
||||
- [Bodhi Linux 5.1 Trailer](https://youtu.be/e8wcRL9F3p8)
|
||||
|
||||
[Bodhi 5.1.0][12] 是这两年内发布的第一个版本,也是基于 Ubuntu 18.04 的第二个版本。除了更新包,它还有新的默认图标和主题。该版本对默认应用程序做了几处更改。预装版 Leafpad 取代了 epad 并且 [GNOME Web][13](也被称为 Epiphany)代替了 [Midori][14]。删除了 eepDater 系统更新器。
|
||||
|
||||
目前有[四个不同的版本][15]的 Bodhi5.1.0 可以[下载][16]: <ruby>标准版<rt>Standard</rt></ruby>、<ruby>硬件支持版<rt>Hwe</rt></ruby>、<ruby>兼容版<rt>Legacy</rt></ruby> 和<ruby>软件包版<rt>AppPack</rt></ruby>。
|
||||
|
||||
* 标准适用于过去十年内电脑配置。它不推送内核更新。
|
||||
* 硬件支持版是 Bodhi 家族的新成员,其设计用来包括对更新的硬件的支持,并会接收到内核更新。5.1 版本的使用的是 5.3.0-42 内核。
|
||||
* 兼容版是仅有的 32 位版本。它使用“较旧的 4.9.0-6-686 Linux 内核,该内核针对旧的(15 年以上)硬件进行了优化。这个内核也不包括许多老系统不支持的 PAE 扩展。”
|
||||
* 软件包版是为那些想要一个开箱即用的全载系统的人准备的,并预装了许多应用程序。
|
||||
|
||||
### Bodhi Linux 的系统要求
|
||||
|
||||
最低系统要求:
|
||||
|
||||
* 500 MHz 处理器
|
||||
* 256 MB 内存
|
||||
* 5 GB 的硬盘存储空间
|
||||
|
||||
推荐系统要求:
|
||||
|
||||
* 1.0 GHz 处理器
|
||||
* 512 MB 内存
|
||||
* 10 GB 的硬盘存储空间
|
||||
|
||||
### 体验 Bodhi Linux
|
||||
|
||||
![Old Bodhi Linux][17]
|
||||
|
||||
由于它是基于 Ubuntu 的,所以安装 Bodhi 非常简单。当我登录到 Bodhi 后,新的主题和图标集让我大吃一惊。上次我安装 Bodhi(包括几个月前的 5.0)时,我认为它需要换一个新的外观。之前的主题并没有什么问题,但看起来像是二十一世纪初的东西。新的主题使它看起来更具现代感。
|
||||
|
||||
![Bodhi Linux 5.1][18]
|
||||
|
||||
我也很高兴看到 Midori 浏览器被 GNOME Web 所取代。我不是 [Midori 浏览器][19]的粉丝。对我来说,它总是显得功能太少了。(不过,随着 [Midori Next][20] 的推出,这种情况可能会改变。)GNOME Web 更像是我需要的网页浏览器。最重要的是它带有 Firefox Sync,这样我就可以同步我所有的书签和密码了。
|
||||
|
||||
与许多 Linux 发行版不同,Bodhi 并没有一个独立的软件中心。相反,如果你点击 AppCenter 图标,它会打开浏览器,并导航到 Bodhi 网站的软件中心页面 [AppCenter 页面][21]。这里的应用程序是按类别排序的,它们中的大多数是[轻量级应用程序][22]。
|
||||
|
||||
![Bodhi Linux Appcenter][23]
|
||||
|
||||
如果你点击其中一个页面并点击“安装”,(在你输入密码之后)Bodhi 就会安装它。这是通过一个名为 [apturl][24] 的小程序实现的,它是“是一个非常简单的从网页浏览器安装软件包的方法”。它非常灵巧,我希望更多基于 Ubuntu 的发行版使用它。
|
||||
|
||||
总的来说,我喜欢 Moksha 桌面。它坚持我们几十年来看到的桌面风格(这是我最喜欢的)。它不会影响你,却很容易改变和定制。我唯一怀念的是,当我按下超级键时,应用程序菜单不打开。但我猜你不可能拥有生活中的一切。
|
||||
|
||||
### 结语
|
||||
|
||||
我对最近发布的 Bodhi Linux 感到十分惊喜。过去,我经常折腾它。并且我一直很喜欢它,但最近的这个版本是迄今为止最好的。在某种程度上,他们打破了 Bodhi 只适合老系统的想法,加入了对较新内核的支持。
|
||||
|
||||
如果你想换换个环境,同时又想在 Ubuntu 的世界里寻找新的风景,那就试试[Bodhi Linux][3]吧。
|
||||
|
||||
你用过 Bodhi Linux 吗?你最喜欢的基于 Ubuntu 的发行版是什么?请在下面的评论中告诉我们。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/bodhi-linux-review/
|
||||
|
||||
作者:[John Paul][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[qfzy1233](https://github.com/qfzy1233)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/john/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/lightweight-linux-beginners/
|
||||
[2]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/bodhi-start-page.png?resize=800%2C500&ssl=1
|
||||
[3]: https://www.bodhilinux.com/
|
||||
[4]: https://www.bodhilinux.com/w/wiki/
|
||||
[5]: https://www.bodhilinux.com/w/what-is-bodhi-linux/
|
||||
[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/bodhi-desktop.jpg?resize=800%2C500&ssl=1
|
||||
[7]: https://www.enlightenment.org/start
|
||||
[8]: https://www.bodhilinux.com/2015/04/28/introducing-the-moksha-desktop/
|
||||
[9]: https://www.bodhilinux.com/moksha-desktop/
|
||||
[10]: https://github.com/JeffHoogland/moksha
|
||||
[11]: https://www.youtube.com/c/itsfoss?sub_confirmation=1
|
||||
[12]: https://www.bodhilinux.com/2020/03/25/bodhi-linux-5-1-0-released/
|
||||
[13]: https://wiki.gnome.org/Apps/Web/
|
||||
[14]: https://en.wikipedia.org/wiki/Midori_(web_browser
|
||||
[15]: https://www.bodhilinux.com/w/selecting-the-correct-iso-image/
|
||||
[16]: https://www.bodhilinux.com/download/
|
||||
[17]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/bodhi.png?resize=800%2C400&ssl=1
|
||||
[18]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/04/bodhi-Linux-5-1-screenshot.jpg?ssl=1
|
||||
[19]: https://itsfoss.com/midori-browser/
|
||||
[20]: https://www.midori-browser.org/2020/01/15/midori-next-come-on-yarovi-we-can/
|
||||
[21]: https://www.bodhilinux.com/a/
|
||||
[22]: https://itsfoss.com/lightweight-alternative-applications-ubuntu/
|
||||
[23]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/Bodhi-Linux-AppCenter.png?resize=800%2C500&ssl=1
|
||||
[24]: https://wiki.ubuntu.com/AptUrl
|
||||
[25]: https://reddit.com/r/linuxusersgroup
|
@ -0,0 +1,88 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12160-1.html)
|
||||
[#]: subject: (MystiQ: A Free and Open Source Audio/Video Converter)
|
||||
[#]: via: (https://itsfoss.com/mystiq/)
|
||||
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
|
||||
|
||||
MystiQ:一个自由开源的音视频转换器
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202004/28/223258cr9rxzyrj344kh68.jpg)
|
||||
|
||||
> MystiQ 是一款全新的开源视频转换工具,适用于 Linux 和 Windows。它的底层使用 FFMPEG,并为你提供了一个基于 Qt 的整洁干净的图形界面。
|
||||
|
||||
### MystiQ,一个基于 QT 的 FFmpeg GUI 前端
|
||||
|
||||
![][1]
|
||||
|
||||
音频/视频转换工具可为每位跨多个平台的计算机用户提供方便。
|
||||
|
||||
出于同样的原因,我想着重介绍 [MystiQ][2] 是个好主意,这是一个相对较新的视频/音频转换器工具,适用于 Linux 和 Windows。截至目前,它还不支持 macOS,但可能会在不久的将来支持。
|
||||
|
||||
MystiQ 是基于 [Qt 5 界面][4]的 [FFmpeg][3] 图形前端。现在,你可以随时[在 Linux 命令行中安装并使用 ffmpeg][5],但这不是很舒服,是吗?这就是为什么 [Handbrake][6] 和 MystiQ 之类的工具可以使我们的生活更方便的原因。
|
||||
|
||||
由于 MystiQ 基于 FFmpeg,因此你可以将其用于一些基本的视频编辑,例如修剪、旋转等。
|
||||
|
||||
让我们来看看它的功能。
|
||||
|
||||
### MystiQ 视频转换器的功能
|
||||
|
||||
![][7]
|
||||
|
||||
即使 MystiQ 目前还算是一个新事物,但它也包含了一组很好的基本功能。以下它提供的:
|
||||
|
||||
* 视频转换
|
||||
* 音频转换(也可从视频中提取音频)
|
||||
* 支持的格式:MP4、WEBM、MKV、MP3、MOV、OGG、WAV、ASF、FLV、3GP、M4A 等。
|
||||
* 跨平台(Windows 和 Linux)
|
||||
* 适用于 32 位和 64 位系统的安装包
|
||||
* 能够调整音频质量(采样率、比特率等)进行转换
|
||||
* 基本的视频编辑功能(剪辑视频、插入字幕、旋转视频、缩放视频等)
|
||||
* 将彩色视频转换为黑白
|
||||
* 有几个预设方案,可轻松转换视频以获得最佳质量或获得最佳压缩效果。
|
||||
|
||||
### 安装 MystiQ
|
||||
|
||||
你可能没有在软件中心中找到它,但将它安装在 Linux 发行版上非常容易。
|
||||
|
||||
它提供了 .AppImage 文件和 .deb / .rpm 文件(32 位和 64 位软件包)。如果你不清楚如何使用的话,可以阅读[如何使用 AppImage 文件][10]。
|
||||
|
||||
如果你想帮助他们测试软件进行改进,你还可以找到他们的 [GitHub 页面][11],并查看源码或任何近期的预发布软件包。
|
||||
|
||||
你可以在其官方网站下载适用于 Linux 和 Windows 的安装程序文件。
|
||||
|
||||
- [下载 MystiQ][2]
|
||||
|
||||
### 总结
|
||||
|
||||
在本文中,我使用 [Pop!_OS][12] 20.04 测试了 MytiQ 转换器,并且在转换视频和音频时没遇到任何问题。而且,对于像我这样的普通用户来说,它的转换速度足够快。
|
||||
|
||||
欢迎尝试一下,让我知道你对它的想法!另外,如果你在 Linux 上一直使用其他工具转换视频和音频,那它是什么?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/mystiq/
|
||||
|
||||
作者:[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://i1.wp.com/itsfoss.com/wp-content/uploads/2020/04/mystiq-converter-ft.jpg?ssl=1
|
||||
[2]: https://mystiqapp.com/
|
||||
[3]: https://www.ffmpeg.org/
|
||||
[4]: https://www.qt.io/
|
||||
[5]: https://itsfoss.com/ffmpeg/
|
||||
[6]: https://itsfoss.com/handbrake/
|
||||
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/mystiq-options.jpg?ssl=1
|
||||
[9]: https://itsfoss.com/sound-converter-linux/
|
||||
[10]: https://itsfoss.com/use-appimage-linux/
|
||||
[11]: https://github.com/swl-x/MystiQ/
|
||||
[12]: https://system76.com/pop
|
@ -0,0 +1,198 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12165-1.html)
|
||||
[#]: subject: (How to Check the Available Network Interfaces, Associated IP Addresses, MAC Addresses, and Interface Speed on Linux)
|
||||
[#]: via: (https://www.2daygeek.com/linux-unix-check-network-interfaces-names-nic-speed-ip-mac-address/)
|
||||
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
|
||||
|
||||
如何在 Linux 上检查网卡信息
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202004/29/214835m1ms3n00s6qbcycz.jpg)
|
||||
|
||||
默认情况下,在设置服务器时你会配置主网络接口。这是每个人所做的构建工作的一部分。有时出于各种原因,你可能需要配置额外的网络接口。
|
||||
|
||||
这可以是通过网络<ruby>绑定<rt>bonding</rt><ruby>/<ruby>协作<rt>teaming</rt></ruby>来提供高可用性,也可以是用于应用需求或备份的单独接口。
|
||||
|
||||
为此,你需要知道计算机有多少接口以及它们的速度来配置它们。
|
||||
|
||||
有许多命令可检查可用的网络接口,但是我们仅使用 `ip` 命令。以后,我们会另外写一篇文章来全部介绍这些工具。
|
||||
|
||||
在本教程中,我们将向你显示可用网络网卡(NIC)信息,例如接口名称、关联的 IP 地址、MAC 地址和接口速度。
|
||||
|
||||
### 什么是 ip 命令
|
||||
|
||||
[ip 命令][1] 类似于 `ifconfig`, 用于分配静态 IP 地址、路由和默认网关等。
|
||||
|
||||
```
|
||||
# ip a
|
||||
|
||||
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
|
||||
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
||||
inet 127.0.0.1/8 scope host lo
|
||||
inet6 ::1/128 scope host
|
||||
valid_lft forever preferred_lft forever
|
||||
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
|
||||
link/ether fa:16:3e:a0:7d:5a brd ff:ff:ff:ff:ff:ff
|
||||
inet 192.168.1.101/24 brd 192.168.1.101 scope global eth0
|
||||
inet6 fe80::f816:3eff:fea0:7d5a/64 scope link
|
||||
valid_lft forever preferred_lft forever
|
||||
```
|
||||
|
||||
### 什么是 ethtool 命令
|
||||
|
||||
`ethtool` 用于查询或控制网络驱动或硬件设置。
|
||||
|
||||
```
|
||||
# ethtool eth0
|
||||
```
|
||||
|
||||
### 1)如何在 Linux 上使用 ip 命令检查可用的网络接口
|
||||
|
||||
在不带任何参数的情况下运行 `ip` 命令时,它会提供大量信息,但是,如果仅需要可用的网络接口,请使用以下定制的 `ip` 命令。
|
||||
|
||||
```
|
||||
# ip a |awk '/state UP/{print $2}'
|
||||
|
||||
eth0:
|
||||
eth1:
|
||||
```
|
||||
|
||||
### 2)如何在 Linux 上使用 ip 命令检查网络接口的 IP 地址
|
||||
|
||||
如果只想查看 IP 地址分配给了哪个接口,请使用以下定制的 `ip` 命令。
|
||||
|
||||
```
|
||||
# ip -o a show | cut -d ' ' -f 2,7
|
||||
或
|
||||
ip a |grep -i inet | awk '{print $7, $2}'
|
||||
|
||||
lo 127.0.0.1/8
|
||||
192.168.1.101/24
|
||||
192.168.1.102/24
|
||||
```
|
||||
|
||||
### 3)如何在 Linux 上使用 ip 命令检查网卡的 MAC 地址
|
||||
|
||||
如果只想查看网络接口名称和相应的 MAC 地址,请使用以下格式。
|
||||
|
||||
检查特定的网络接口的 MAC 地址:
|
||||
|
||||
```
|
||||
# ip link show dev eth0 |awk '/link/{print $2}'
|
||||
00:00:00:55:43:5c
|
||||
```
|
||||
|
||||
检查所有网络接口的 MAC 地址,创建该脚本:
|
||||
|
||||
```
|
||||
# vi /opt/scripts/mac-addresses.sh
|
||||
|
||||
#!/bin/sh
|
||||
ip a |awk '/state UP/{print $2}' | sed 's/://' | while read output;
|
||||
do
|
||||
echo $output:
|
||||
ethtool -P $output
|
||||
done
|
||||
```
|
||||
|
||||
运行该脚本获取多个网络接口的 MAC 地址:
|
||||
|
||||
```
|
||||
# sh /opt/scripts/mac-addresses.sh
|
||||
|
||||
eth0:
|
||||
Permanent address: 00:00:00:55:43:5c
|
||||
eth1:
|
||||
Permanent address: 00:00:00:55:43:5d
|
||||
```
|
||||
|
||||
### 4)如何在 Linux 上使用 ethtool 命令检查网络接口速度
|
||||
|
||||
如果要在 Linux 上检查网络接口速度,请使用 `ethtool` 命令。
|
||||
|
||||
检查特定网络接口的速度:
|
||||
|
||||
```
|
||||
# ethtool eth0 |grep "Speed:"
|
||||
|
||||
Speed: 10000Mb/s
|
||||
```
|
||||
|
||||
检查所有网络接口速度,创建该脚本:
|
||||
|
||||
```
|
||||
# vi /opt/scripts/port-speed.sh
|
||||
|
||||
#!/bin/sh
|
||||
ip a |awk '/state UP/{print $2}' | sed 's/://' | while read output;
|
||||
do
|
||||
echo $output:
|
||||
ethtool $output |grep "Speed:"
|
||||
done
|
||||
```
|
||||
|
||||
运行该脚本获取多个网络接口速度:
|
||||
|
||||
```
|
||||
# sh /opt/scripts/port-speed.sh
|
||||
|
||||
eth0:
|
||||
Speed: 10000Mb/s
|
||||
eth1:
|
||||
Speed: 10000Mb/s
|
||||
```
|
||||
|
||||
### 5)验证网卡信息的 Shell 脚本
|
||||
|
||||
通过此 shell 脚本你可以收集上述所有信息,例如网络接口名称、网络接口的 IP 地址,网络接口的 MAC 地址以及网络接口的速度。创建该脚本:
|
||||
|
||||
```
|
||||
# vi /opt/scripts/nic-info.sh
|
||||
|
||||
#!/bin/sh
|
||||
hostname
|
||||
echo "-------------"
|
||||
for iname in $(ip a |awk '/state UP/{print $2}')
|
||||
do
|
||||
echo "$iname"
|
||||
ip a | grep -A2 $iname | awk '/inet/{print $2}'
|
||||
ip a | grep -A2 $iname | awk '/link/{print $2}'
|
||||
ethtool $iname |grep "Speed:"
|
||||
done
|
||||
```
|
||||
|
||||
运行该脚本检查网卡信息:
|
||||
|
||||
```
|
||||
# sh /opt/scripts/nic-info.sh
|
||||
|
||||
vps.2daygeek.com
|
||||
----------------
|
||||
eth0:
|
||||
192.168.1.101/24
|
||||
00:00:00:55:43:5c
|
||||
Speed: 10000Mb/s
|
||||
eth1:
|
||||
192.168.1.102/24
|
||||
00:00:00:55:43:5d
|
||||
Speed: 10000Mb/s
|
||||
```
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.2daygeek.com/linux-unix-check-network-interfaces-names-nic-speed-ip-mac-address/
|
||||
|
||||
作者:[Magesh Maruthamuthu][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://www.2daygeek.com/author/magesh/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.2daygeek.com/ip-command-configure-network-interface-usage-linux/
|
||||
[2]: https://www.2daygeek.com/category/shell-script/
|
@ -0,0 +1,129 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12158-1.html)
|
||||
[#]: subject: (Things You Should Know About Ubuntu 20.04)
|
||||
[#]: via: (https://itsfoss.com/ubuntu-20-04-faq/)
|
||||
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
|
||||
|
||||
关于 Ubuntu 20.04 你应该了解的事情
|
||||
======
|
||||
|
||||
[Ubuntu 20.04][1] 已经发布,你可能对升级、安装等有一些问题和疑问。
|
||||
|
||||
我在各种社交媒体渠道上主持了一些问答环节,回答像你这样的读者的疑虑。我将列出这些关于 Ubuntu 20.04 的常见问题,并给出答案。我希望它能帮助你消除你的疑虑。如果你仍有问题,请随时在下面的评论栏提问。
|
||||
|
||||
### Ubuntu 20.04:已回复的问题
|
||||
|
||||
![][2]
|
||||
|
||||
为了澄清一下,这里的一些答案也许受我个人意见的影响。如果你是一个有经验的 Ubuntu 用户,有些问题听起来可能有点愚蠢,但它对 Ubuntu 新用户不是这样。
|
||||
|
||||
#### Ubuntu 20.04 何时发布?
|
||||
|
||||
Ubuntu 20.04 LTS 于 2020 年 4 月 23 日发布。所有变种,如 Kubuntu、Lubuntu,、Xubuntu、Budgie、MATE 都将和 20.04 同一天发布。
|
||||
|
||||
#### Ubuntu 20.04 的系统要求是什么?
|
||||
|
||||
对于默认的 GNOME 版本,应至少具有 4GB 的内存、2GHz 双核处理器和至少 25GB 的磁盘空间。
|
||||
|
||||
其他 [Ubuntu 变种][3]可能有不同的系统要求。
|
||||
|
||||
#### 我可以在 32 位系统上使用 Ubuntu 20.04 吗?
|
||||
|
||||
完全不行。你不能在 32 位系统上使用 Ubuntu 20.04。即使你使用的是 32 位 Ubuntu 18.04,也不能升级到 Ubuntu 20.04。32 位的系统 ISO 是以前用的。
|
||||
|
||||
![Error while upgrading 32-bit Ubuntu 18.04 to Ubuntu 20.04][4]
|
||||
|
||||
#### 我可以在 Ubuntu 20.04 上使用 Wine 吗?
|
||||
|
||||
是的,你仍然可以在 Ubuntu 20.04 上使用 Wine,因为仍然用于 Wine 和 [Steam Play][5] 软件包所需的 32 位库。
|
||||
|
||||
#### 我需要购买 Ubuntu 20.04 或许可证?
|
||||
|
||||
不,Ubuntu 完全可以免费使用。你不必像在 Windows 中那样购买许可证密钥或激活 Ubuntu。
|
||||
|
||||
Ubuntu 的下载页会请求你捐赠一些资金,如果你想为开发这个强大的操作系统捐钱,由你自己决定。
|
||||
|
||||
#### GNOME 版本是什么?
|
||||
|
||||
Ubuntu 20.04 有 GNOME 3.36。
|
||||
|
||||
#### Ubuntu 20.04 的性能是否优于 Ubuntu 18.04?
|
||||
|
||||
是的,在几个方面。Ubuntu 20.04 系统速度更快,甚至超快。我在下面这个视频的 4:40 处展示了性能对比。
|
||||
|
||||
- [video](https://img.linux.net.cn/static/video/Top%207%20Best%20Features%20You%27ll%20Love%20in%20Ubuntu%2020.04-lpq8pm_xkSE.mp4)
|
||||
|
||||
在 GNOME 3.36 中,滚动、窗口动画和其他 UI 元素更加流畅,提供了更流畅的体验。
|
||||
|
||||
#### Ubuntu 20.04 将支持多长时间?
|
||||
|
||||
它是一个长期支持(LTS)版本,与任何 LTS 版本一样,它将在五年内得到支持。这意味着 Ubuntu 20.04 将在 2025 年 4 月之前获得安全和维护更新。
|
||||
|
||||
#### 升级到 Ubuntu 20.04 时,是否会丢失数据?
|
||||
|
||||
你可以从 Ubuntu 19.10 或 Ubuntu 18.04 升级到 Ubuntu 20.04。你无需创建 live USB 并从中安装。你所需要的是一个良好的互联网连接,来下载约 1.5GB 的数据。
|
||||
|
||||
从现有系统升级不会破坏你的文件。你应该会留有所有文件,并且大多数现有软件应具有相同的版本或升级后的版本。
|
||||
|
||||
如果你使用了某些第三方工具或[其他 PPA][6],升级过程将禁用它们。如果 Ubuntu 20.04 可以使用这些其他存储库,那么可以再次启用它们。
|
||||
|
||||
升级大约需要一个小时,重启后,你将登录到新版本。
|
||||
|
||||
虽然你的数据不会被触碰,并且不会丢失系统文件和配置,但最好在外部设备备份重要数据。
|
||||
|
||||
#### 何时可以升级到 Ubuntu 20.04?
|
||||
|
||||
![][7]
|
||||
|
||||
如果你正在使用 Ubuntu 19.10 并有正确的更新设置(如前面部分所述),那么应在发布后的几天内通知你升级到 Ubuntu 20.04。
|
||||
|
||||
对于 Ubuntu 18.04 用户,可能需要几周时间才能正式通知他们 Ubuntu 20.04 可用。可能,你可能会在第一个点版本 Ubuntu 20.04.1 后获得提示。
|
||||
|
||||
#### 如果我升级到 Ubuntu 20.04,我可以降级到 19.10 或 18.04 吗?
|
||||
|
||||
不行。虽然升级到新版本很容易,但无法选择降级。如果你想回到 Ubuntu 18.04,你需要重新[安装 Ubuntu 18.04][8]。
|
||||
|
||||
#### 我使用的是 Ubuntu 18.04 LTS。我应该升级到 Ubuntu 20.04 LTS 吗?
|
||||
|
||||
这取决于你。如果你对 Ubuntu 20.04 中的新功能印象深刻,并希望上手尝试,那么你应该升级。
|
||||
|
||||
如果你想要一个更稳定的系统,我建议等待第一个点版本 Ubuntu 20.04.1,新版本会有 bug 修复。20.04.1 通常在 Ubuntu 20.04 发布后大约两个月到来。
|
||||
|
||||
无论是那种情况,我都建议你或早或晚升级到 Ubuntu 20.04。Ubuntu 20.04 具有更新的内核、性能改进,尤其是仓库中有更新版本的软件。
|
||||
|
||||
在外部磁盘上进行备份,并且有良好的互联网连接,升级不应成为问题。
|
||||
|
||||
#### 我应该重新安装 Ubuntu 20.04 还是从 18.04/19.10 升级到 Ubuntu?
|
||||
|
||||
如果你可以选择,请备份数据,并重新安装 Ubuntu 20.04。
|
||||
|
||||
从现有版本升级到 20.04 是一个方便的选择。然而,在我看来,它仍然保留有一些旧版本的痕迹/包。全新安装更加干净。
|
||||
|
||||
#### 关于 Ubuntu 20.04 的任何其他问题?
|
||||
|
||||
如果你对 Ubuntu 20.04 有任何疑问,请随时在下面发表评论。如果你认为应该将其他信息添加到列表中,请让我知道。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/ubuntu-20-04-faq/
|
||||
|
||||
作者:[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://linux.cn/article-12142-1.html
|
||||
[2]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/04/ubuntu_20_04_faq.jpg?ssl=1
|
||||
[3]: https://itsfoss.com/which-ubuntu-install/
|
||||
[4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/04/ubuntu-32-bit.jpg?ssl=1
|
||||
[5]: https://itsfoss.com/steam-play/
|
||||
[6]: https://itsfoss.com/ppa-guide/
|
||||
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/upgrade-ubuntu-20-04.jpg?ssl=1
|
||||
[8]: https://itsfoss.com/install-ubuntu/
|
@ -0,0 +1,56 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (CrazyShipOne)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12157-1.html)
|
||||
[#]: subject: (What you need to know about open source ad blockers)
|
||||
[#]: via: (https://opensource.com/article/20/4/ad-blockers)
|
||||
[#]: author: (Joshua Pearce https://opensource.com/users/jmpearce)
|
||||
|
||||
开源的广告拦截器不但节能,而且能拯救生命!
|
||||
======
|
||||
> 三个开源广告拦截器与“无广告拦截器”对照组进行了测试。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202004/27/220109b86sidn56sn6inoh.jpg)
|
||||
|
||||
一项旨在调查自由开源的广告拦截器节能的情况的[研究][2],意外地发现了互联网广告正在浪费你大量的时间。
|
||||
|
||||
更重要的是,研究结果表明了你可以挽救回这些失去的时间。这项研究评估发现,使用 [uBlock Origin][3](一个开源免费的广告拦截器)的情况下平均每个网民一年可以节约超过 100 个小时的时间。uBlock Origin 是测试中最有效的广告拦截器,不过其他的广告拦截器也为网民节省了时间、能源以及金钱。
|
||||
|
||||
![Ad blocker screen comparison][4]
|
||||
|
||||
在研究结果中,[AdBlock+][5] 减少了 11% 的页面加载时间,[Privacy Badger][6] 减少了 22%,[uBlock Origin][3] 减少了 28%。对于单独一个页面来说这个时间並不算多,但是网民们一半以上的浏览时间都是在网站间快速跳转,通常在一个页面停留少于 15 秒。鉴于这种情况,加载广告的额外时间加起来就很多了。
|
||||
|
||||
发布于 Technologies 杂志上的《[用开源的广告拦截器节能][7]》一文最初旨在解决日益增长的能源消耗问题。随着全球网民每日上网时间超过 6.5 小时,与互联网相关的用电量正在快速地增加。以美国人为例,自 2000 年他们的上网时间已经增加了一倍,几乎达到每周 24 小时。开源广告拦截器通过消灭上网和观看视频时产生的广告,潜在地减少了时间,从而减少用电。
|
||||
|
||||
在研究过程中,对三个开源广告拦截器与“无广告拦截器”对照组进行了测试。研究人员记录了浏览全球访问量最大的网站的页面加载时间,其中包括网络搜索(谷歌、雅虎、必应)、信息(Weather.com、维基百科)和新闻网站(CNN、福克斯、纽约时报)。除此之外,研究还分析了观看流行与非流行视频内容时广告所花费的时间。这部分研究由于缺乏 Youtube 上流行和非流行内容观看比例的数据而非常具有挑战性。每个视频浪费在广告观看上的时间可以从 0.06% 到惊人的 21% 不等。而且,这还只是浏览器上记录的加载广告而失去的时间。
|
||||
|
||||
总的来说,研究结果表明加载广告所浪费的能源并不是是小事。由于运行电脑所使用的大量电力仍然来自于煤炭,而煤炭会造成空气污染和过早死亡,因此该研究分析了广告拦截器拯救美国人生命的潜力。(LCTT 译注:由于这项研究是美国人完成的,所以这里仅提及了美国人,但是同理可推至全球。)结果是令人震惊的:如果美国人都使用开源广告拦截器,每年节约的能源将会拯救超过 36 个美国人的生命。
|
||||
|
||||
电能即金钱,所以削减广告也可以为消费者节约钱财。在美国,如果所有的网民都在他们的电脑上开启 [Privacy Badger][8],美国人每年可以节约超过 9100 万美元。在全球范围内,调查研究的结果则更令人吃惊。uBlock Origin 每年可以为全球消费者节约 18 亿美元。
|
||||
|
||||
这项研究始于人们因为新冠肺炎大流行而被迫居家之前,因此所有的数据都可以被认为是保守的估算。整体来说,研究发现了开源广告拦截器是一项潜在的节能技术。
|
||||
|
||||
虽然自由开源的广告拦截器可以节约能源,对自然环境也有好处,但你可能主要是为了拦截恼人的广告和节省自己的时间而使用它们。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/4/ad-blockers
|
||||
|
||||
作者:[Joshua Pearce][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[CrazyShipOne](https://github.com/CrazyShipOne)
|
||||
校对:[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/browser_desktop_website_checklist_metrics.png?itok=OKKbl1UR (Browser of things)
|
||||
[2]: https://www.mdpi.com/2227-7080/8/2/18
|
||||
[3]: https://github.com/gorhill/uBlock
|
||||
[4]: https://opensource.com/sites/default/files/uploads/os_ad_blocker_story_.png (Ad blocker screen comparison)
|
||||
[5]: https://adblockplus.org/
|
||||
[6]: https://privacybadger.org/
|
||||
[7]: https://www.academia.edu/42434401/Energy_Conservation_with_Open_Source_Ad_Blockers
|
||||
[8]: https://privacybadger.org/
|
@ -0,0 +1,76 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12168-1.html)
|
||||
[#]: subject: (What Happened to IPv5? Why there is IPv4, IPv6 but no IPv5?)
|
||||
[#]: via: (https://itsfoss.com/what-happened-to-ipv5/)
|
||||
[#]: author: (John Paul https://itsfoss.com/author/john/)
|
||||
|
||||
IPv5 发生了什么?为什么有 IPv4、IPv6 但没有 IPv5?
|
||||
======
|
||||
|
||||
如果你花过很多时间在互联网上,那么你应该已经听说过计算机每天使用的 IPv4 和 IPv6 协议。
|
||||
|
||||
你可能会问的一个问题是:为什么没有 IPv5?为什么 IPv6 在 IPv4 之后而不是 IPv5 之后出现?是否有 IPv5,如果是,那么 IPv5 发生了什么?
|
||||
|
||||
答案是肯定的,曾经有一个 IPv5。让我解释一下这里发生的事。
|
||||
|
||||
### 互联网的早期历史
|
||||
|
||||
![ARPA Logical Map in 1977 | Image courtesy: Wikipedia][1]
|
||||
|
||||
在 1960 年代后期,美国国防部的[高级研究计划局][2](DARPA)发起了一个[项目][3]来连接全国的计算机。最初的目标是创建一个由全国 ARPA 资助的所有计算机组成的网络系统。
|
||||
|
||||
由于这是第一次将如此规模的网络整合在一起,因此他们也在不断发展自己的技术和硬件。他们首先做的工作之一就是开发名为<ruby>[传输控制协议][4]<rt>Transmission Control Protocol</rt></ruby>(TCP)的<ruby>互联网协议<rt>Internet Protocol</rt></ruby>(IP)。该协议“可靠、有序,并会对运行于通过 IP 网络传输的主机上的应用的八进制(字节)流通讯进行错误检测”。简单来说,它可以确保数据安全到达。
|
||||
|
||||
最初,TCP 被设计为[“主机级别的端到端协议以及封装和路由协议”][5]。但是,他们意识到他们需要拆分协议以使其更易于管理。于是决定由 IP 协议处理封装和路由。
|
||||
|
||||
那时,TCP 已经经历了三个版本,因此新协议被称为 IPv4。
|
||||
|
||||
### IPv5 的诞生
|
||||
|
||||
IPv5 开始时有个不同的名字:<ruby>互联网流协议<rt>Internet Stream Protocol</rt></ruby>(ST)。它是[由 Apple、NeXT 和 Sun Microsystems][6] 为试验流式语音和视频而创建的。
|
||||
|
||||
该新协议能够“在保持通信的同时,以特定频率传输数据包”。
|
||||
|
||||
### 那么 IPv5 发生了什么?
|
||||
|
||||
![][7]
|
||||
|
||||
IPv5 从未被接受为正式的互联网协议。这主要是由于 32 位限制。
|
||||
|
||||
IPV5 使用与 IPv4 相同的寻址系统。每个地址由 0 到 255 之间的四组数字组成。这将可能的地址数量限制为 [43 亿][6]个。
|
||||
|
||||
在 1970 年代初,这似乎比全世界所需要的还要多。但是,互联网的爆炸性增长证明了这一想法是错误的。2011 年,世界上的IPv4地址正式用完了。
|
||||
|
||||
在 1990 年代,一个新项目开始致力于研究下一代互联网协议(IPng)。这形成了 128 位的 IPv6。IPv6 地址包含 [“8 组 4 字符的十六进制数字”][6],它可以包含从 0 到 9 的数字和从 A 到 F 的字母。与 IPv4 不同,IPv6 拥有数万亿个可能的地址,因此我们应该能安全一阵子。
|
||||
|
||||
同时,IPv5 奠定了 VoIP 的基础,而该技术已被我们用于当今世界范围内的通信。**因此,我想在某种程度上,你可以说 IPv5 仍然可以保留到了今天**。
|
||||
|
||||
希望你喜欢有关互联网历史的轶事。你可以阅读其他[关于 Linux 和技术的琐事文章][8]。
|
||||
|
||||
如果你觉得这篇文章有趣,请花一点时间在社交媒体、Hacker News 或 [Reddit][9] 上分享它。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/what-happened-to-ipv5/
|
||||
|
||||
作者:[John Paul][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/john/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/04/Arpa_internet.png?fit=800%2C573&ssl=1
|
||||
[2]: https://en.wikipedia.org/wiki/DARPA
|
||||
[3]: https://en.wikipedia.org/wiki/ARPANET
|
||||
[4]: https://en.wikipedia.org/wiki/Transmission_Control_Protocol
|
||||
[5]: https://fcw.com/articles/2006/07/31/what-ever-happened-to-ipv5.aspx
|
||||
[6]: https://www.lifewire.com/what-happened-to-ipv5-3971327
|
||||
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/04/what-happened-to-ipv5.png?ssl=1
|
||||
[8]: https://itsfoss.com/category/story/
|
||||
[9]: https://reddit.com/r/linuxusersgroup
|
77
published/202004/20200428 Fedora 32 is officially here.md
Normal file
77
published/202004/20200428 Fedora 32 is officially here.md
Normal file
@ -0,0 +1,77 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (wxy)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12164-1.html)
|
||||
[#]: subject: (Fedora 32 is officially here!)
|
||||
[#]: via: (https://fedoramagazine.org/announcing-fedora-32/)
|
||||
[#]: author: (Matthew Miller https://fedoramagazine.org/author/mattdm/)
|
||||
|
||||
Fedora 32 正式发布!
|
||||
======
|
||||
|
||||
![][1]
|
||||
|
||||
它来了! 我们很荣幸地宣布 Fedora 32 的发布。感谢成千上万的 Fedora 社区成员和贡献者的辛勤工作,我们又一次准时发布了。
|
||||
|
||||
如果你只想马上就能拿到它,请马上访问 <https://getfedora.org/>。更多详情,请继续阅读本文。
|
||||
|
||||
### Fedora 的全部变种
|
||||
|
||||
Fedora Editions 是针对特定的“展示”用途输出的。
|
||||
|
||||
Fedora Workstation 专注于桌面系统。特别是,它面向的是那些希望获得“可以工作的” Linux 操作系统体验的软件开发者。这个版本采用了 [GNOME 3.36][2],一如既往地有很多很棒的改进。我最喜欢的是新的锁屏!
|
||||
|
||||
Fedora Server 以一种易于部署的方式为系统管理员带来了新锐的开源服务器软件。对于边缘计算用例,[Fedora IoT][3] 为 IoT 生态系统提供了坚实的基础。
|
||||
|
||||
Fedora CoreOS 是一个新兴的 Fedora Edition。它是一个自动更新的、最小化的操作系统,用于安全地大规模运行容器化工作负载。它提供了几个[更新流][4],遵循大约每两周一次的自动更新。目前,next 流是基于 Fedora 32,后续还有 testing 流和 stable 流。你可以从[下载页面][5]中找到关于按 next 流发布的工件的信息,并在 [Fedora CoreOS 文档][6]中找到关于如何使用这些工件的信息。
|
||||
|
||||
当然,我们制作的不仅仅是 Editions。[Fedora Spins][7] 和[实验室][8]针对的是不同的受众和用例,包括[Fedora 天文学实验室][9],它为业余和专业的天文学家带来了完整的开源工具链,还有像 [KDE Plasma][10] 和 [Xfce][11] 这样的桌面环境。Fedora 32 中新增的 [计算神经科学实验室][12] 是由我们的神经科学特别兴趣小组开发的,它可以实现计算神经科学。
|
||||
|
||||
还有,别忘了我们的备用架构,[ARM AArch64、Power 和 S390x][13]。特别值得一提的是,我们改进了对 Rockchip 系统级芯片的支持,包括 Rock960、RockPro64 和 Rock64。
|
||||
|
||||
### 一般性的改进
|
||||
|
||||
无论你使用 Fedora 的哪个变体,你都能获得最新的开源世界。遵循我们的“[First][14]”理念,我们更新了关键的编程语言和系统库包,包括 GCC 10、Ruby 2.7 和 Python 3.8。当然,随着 Python 2 已经过了报废期,我们已经从 Fedora 中删除了大部分 Python 2 包,但我们为仍然需要它的开发者和用户提供了一个遗留的 python27 包。在 Fedora Workstation 中,我们默认启用了 EarlyOOM 服务,以改善低内存情况下的用户体验。
|
||||
|
||||
我们非常期待你能尝试一下新版本的使用体验! 现在就去 <https://getfedora.org/> 下载它。或者如果你已经在运行 Fedora 操作系统,请按照简单的[升级说明][15]进行升级。
|
||||
|
||||
### 万一出现问题……
|
||||
|
||||
如果你遇到问题,请查看[Fedora 32 常见错误][16]页面,如果有问题,请访问我们的 [Askedora][17] 用户支持平台。
|
||||
|
||||
### 谢谢大家
|
||||
|
||||
感谢在这个发布周期中为 Fedora 项目做出贡献的成千上万的人,特别是感谢那些在大流行期间为又一次准时发布而付出额外努力的人。Fedora 是一个社区,很高兴看到我们彼此之间的支持。我邀请大家参加 4 月28-29 日的[红帽峰会虚拟体验][18],了解更多关于 Fedora 和其他社区的信息。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://fedoramagazine.org/announcing-fedora-32/
|
||||
|
||||
作者:[Matthew Miller][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://fedoramagazine.org/author/mattdm/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://fedoramagazine.org/wp-content/uploads/2020/04/f32-final-816x345.png
|
||||
[2]: https://www.gnome.org/news/2020/03/gnome-3-36-released/
|
||||
[3]: https://iot.fedoraproject.org/
|
||||
[4]: https://docs.fedoraproject.org/en-US/fedora-coreos/update-streams/
|
||||
[5]: https://getfedora.org/en/coreos/download?stream=next
|
||||
[6]: https://docs.fedoraproject.org/en-US/fedora-coreos/getting-started/
|
||||
[7]: https://spins.fedoraproject.org/
|
||||
[8]: https://labs.fedoraproject.org/
|
||||
[9]: https://labs.fedoraproject.org/en/astronomy/
|
||||
[10]: https://spins.fedoraproject.org/en/kde/
|
||||
[11]: https://spins.fedoraproject.org/en/xfce/
|
||||
[12]: https://labs.fedoraproject.org/en/comp-neuro
|
||||
[13]: https://alt.fedoraproject.org/alt/
|
||||
[14]: https://docs.fedoraproject.org/en-US/project/#_first
|
||||
[15]: https://docs.fedoraproject.org/en-US/quick-docs/upgrading/
|
||||
[16]: https://fedoraproject.org/wiki/Common_F32_bugs
|
||||
[17]: http://ask.fedoraproject.org
|
||||
[18]: https://www.redhat.com/en/summit
|
@ -0,0 +1,110 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (wxy)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12166-1.html)
|
||||
[#]: subject: (Manjaro 20 Lysia Arrives with ZFS and Snap Support)
|
||||
[#]: via: (https://itsfoss.com/manjaro-20-release/)
|
||||
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
|
||||
|
||||
Manjaro 20 Lysia 到来,支持 ZFS 和 Snap
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202004/29/232925j8paomvp11pfu12v.jpg)
|
||||
|
||||
> Manjaro Linux 刷新了其 Manjaro 20 “Lysia” 的 ISO。现在在 Pamac 中支持了 Snap 和 Flatpak 软件包。在 Manjaro Architect 安装程序中增加了 ZFS 选项,并使用最新的内核 5.6 作为基础。
|
||||
|
||||
最近新的发行版的发布像下雨一样。在上周发布了 [Ubuntu 20.04 LTS](https://linux.cn/article-12142-1.html) ,紧接着 [Fedora 32](https://linux.cn/article-12164-1.html) 也刚刚发布,而现在 [Manjaro 发布了版本 20][1],代号为 Lysia。
|
||||
|
||||
### Manjaro 20 Lysia 有什么新东西?
|
||||
|
||||
其实有很多。让我给大家介绍一下 Manjaro 20 中的一些主要新功能。
|
||||
|
||||
#### 新的抹茶主题
|
||||
|
||||
Manjaro 20 有一个新的默认主题,名为 Matcha(抹茶)。它让桌面看起来更有质感。
|
||||
|
||||
![][2]
|
||||
|
||||
#### 对 Snap 和 Flatpak 的支持
|
||||
|
||||
Snap 和 Flatpak 软件包的支持得到了改进。如果你愿意,你可以在命令行中使用它们。
|
||||
|
||||
你还可以在 Pamac 图形界面包管理器中启用 Snap 和 Flatpak 支持。
|
||||
|
||||
![Enable Snap support in Pamac Manjaro][3]
|
||||
|
||||
启用后,你可以在 Pamac 软件管理器中找到并安装 Snap/Flatpak 应用程序。
|
||||
|
||||
![Snap applications in Pamac][4]
|
||||
|
||||
#### Pamac 提供了基于搜索安装新软件的方式(在 GNOME 中)
|
||||
|
||||
在 GNOME 变种中,如果你搜索某个东西,Pamac 软件管理器会提供安装符合查询的软件。在其他使用 GNOME 桌面的发行版中,GNOME 软件中心也会这样做。
|
||||
|
||||
#### ZFS 支持登陆了 Manjaro Architect
|
||||
|
||||
现在,你可以在 Manjaro Linux 中轻松地使用 ZFS 作为根文件系统。在 [Manjaro Architect][6] 中提供了对 [ZFS 文件系统][5]的支持。
|
||||
|
||||
请注意,我说的是 Manjaro Architect,即基于终端的安装程序。它和普通的图形化的 [Calamares 安装程序][7]不一样。
|
||||
|
||||
![][8]
|
||||
|
||||
#### Linux kernel 5.6
|
||||
|
||||
最新的稳定版 [Linux 内核 5.6][9] 带来了更多的硬件支持,如 thunderbolt、Nvidia 和 USB4。你也可以使用 [WireGuard VPN][10]。
|
||||
|
||||
![][11]
|
||||
|
||||
#### 其他杂项变化
|
||||
|
||||
* 新的桌面环境版本:Xfce 4.14、GNOME 3.36 和 KDE Plasma 5.18。
|
||||
* 新的默认 shell 是 zsh。
|
||||
* Display-Profiles 允许你存储一个或多个配置文件,用于你的首选显示配置。
|
||||
* 改进后的 Gnome-Layout-Switcher。
|
||||
* 最新的驱动程序。
|
||||
* 改进和完善了 Manjaro 工具。
|
||||
|
||||
### 如何取得 Manjaro 20 Lysia?
|
||||
|
||||
如果你已经在使用 Manjaro,只需更新你的 Manjaro Linux 系统,你就应该已经在使用 Lysia 了。
|
||||
|
||||
Manjaro 采用了滚动发布模式,这意味着你不必手动从一个版本升级到另一个版本。只要有新的版本发布,不需要重新安装就可以使用了。
|
||||
|
||||
既然 Manjaro 是滚动发布的,为什么每隔一段时间就会发布一个新版本呢?这是因为他们要刷新 ISO,这样下载 Manjaro 的新用户就不用再安装过去几年的更新了。这就是为什么 Arch Linux 也会每个月刷新一次 ISO 的原因。
|
||||
|
||||
Manjaro 的“ISO 刷新”是有代号和版本的,因为它可以帮助开发者清楚地标明每个开发阶段的发展方向。
|
||||
|
||||
所以,如果你已经在使用它,只需使用 Pamac 或命令行[更新你的 Manjaro Linux 系统][12]即可。
|
||||
|
||||
如果你想尝试 Manjaro 或者想使用 ZFS,那么你可以通过从它的网站上[下载 ISO][14] 来[安装 Manjaro][13]。
|
||||
|
||||
愿你喜欢新的 Manjaro Linux 发布。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/manjaro-20-release/
|
||||
|
||||
作者:[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://forum.manjaro.org/t/manjaro-20-0-lysia-released/138633
|
||||
[2]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/manjaro-20-lysia.jpeg?resize=800%2C440&ssl=1
|
||||
[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/enable-snap-in-pamac-manjaro.jpg?resize=800%2C490&ssl=1
|
||||
[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/04/snap-app-pacman.jpg?resize=800%2C489&ssl=1
|
||||
[5]: https://itsfoss.com/what-is-zfs/
|
||||
[6]: https://itsfoss.com/manjaro-architect-review/
|
||||
[7]: https://calamares.io/
|
||||
[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/pacman-prompts-install-apps.jpg?resize=800%2C331&ssl=1
|
||||
[9]: https://itsfoss.com/linux-kernel-5-6/
|
||||
[10]: https://itsfoss.com/wireguard/
|
||||
[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/manjaro-20-neofetch-screen.jpg?resize=800%2C495&ssl=1
|
||||
[12]: https://itsfoss.com/update-arch-linux/
|
||||
[13]: https://itsfoss.com/install-manjaro-linux/
|
||||
[14]: https://manjaro.org/download/
|
@ -0,0 +1,127 @@
|
||||
GNU 核心实用程序简介
|
||||
======
|
||||
|
||||
> 大多数 Linux 系统管理员需要做的事情都可以在 GNU coreutils 或 util-linux 中找到。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202005/10/172312hofgh88i3g6jajfj.jpg)
|
||||
|
||||
许多 Linux 系统管理员最基本和常用的工具主要包括在两套实用程序中:[GNU 核心实用程序(coreutils)][3]和 util-linux。它们的基本功能允许系统管理员执行许多管理 Linux 系统的任务,包括管理和操作文本文件、目录、数据流、存储介质、进程控制、文件系统等等。
|
||||
|
||||
这些工具是不可缺少的,因为没有它们,就不可能在 Unix 或 Linux 计算机上完成任何有用的工作。鉴于它们的重要性,让我们来研究一下它们。
|
||||
|
||||
### GNU coreutils
|
||||
|
||||
要了解 GNU 核心实用程序的起源,我们需要乘坐时光机进行一次短暂的旅行,回到贝尔实验室的 Unix 早期。[编写 Unix][8] 是为了让 Ken Thompson、Dennis Ritchie、Doug McIlroy 和 Joe Ossanna 可以继续他们在大型多任务和多用户计算机项目 [Multics][9] 上的工作:开发一个叫做《太空旅行》游戏的小东西。正如今天一样,推动计算技术发展的似乎总是游戏玩家。这个新的操作系统比 Multics(LCTT 译注:multi- 字头的意思是多数的)的局限性更大,因为一次只能有两个用户登录,所以被称为 Unics(LCTT 译注:uni- 字头的意思是单独的)。后来这个名字被改成了 Unix。
|
||||
|
||||
随着时间的推移,Unix 取得了如此巨大的成功,开始贝尔实验室基本上是将其赠送给大学,后来送给公司也只是收取介质和运输的费用。在那个年代,系统级的软件是在组织和程序员之间共享的,因为在系统管理这个层面,他们努力实现的是共同的目标。
|
||||
|
||||
最终,AT&T 公司的[老板们][10]决定,他们应该在 Unix 上赚钱,并开始使用限制更多的、昂贵的许可证。这发生在软件变得更加专有、受限和封闭的时期,从那时起,与其他用户和组织共享软件变得不可能。
|
||||
|
||||
有些人不喜欢这种情况,于是用自由软件来对抗。Richard M. Stallman(RMS),他带领着一群“反叛者”试图编写一个开放的、自由的可用操作系统,他们称之为 GNU 操作系统。这群人创建了 GNU 实用程序,但并没有产生一个可行的内核。
|
||||
|
||||
当 Linus Torvalds 开始编写和编译 Linux 内核时,他需要一套非常基本的系统实用程序来开始执行一些稍微有用的工作。内核并不提供命令或任何类型的命令 shell,比如 Bash,它本身是没有任何用处的,因此,Linus 使用了免费提供的 GNU 核心实用程序,并为 Linux 重新编译了它们。这让他拥有了一个完整的、即便是相当基本的操作系统。
|
||||
|
||||
你可以通过在终端命令行中输入命令 `info coreutils` 来了解 GNU 核心实用程序的全部内容。下面的核心实用程序列表就是这个信息页面的一部分。这些实用程序按功能进行了分组,以方便查找;在终端中,选择你想了解更多信息的组,然后按回车键。
|
||||
|
||||
```
|
||||
* Output of entire files:: cat tac nl od base32 base64
|
||||
* Formatting file contents:: fmt pr fold
|
||||
* Output of parts of files:: head tail split csplit
|
||||
* Summarizing files:: wc sum cksum b2sum md5sum sha1sum sha2
|
||||
* Operating on sorted files:: sort shuf uniq comm ptx tsort
|
||||
* Operating on fields:: cut paste join
|
||||
* Operating on characters:: tr expand unexpand
|
||||
* Directory listing:: ls dir vdir dircolors
|
||||
* Basic operations:: cp dd install mv rm shred
|
||||
* Special file types:: mkdir rmdir unlink mkfifo mknod ln link readlink
|
||||
* Changing file attributes:: chgrp chmod chown touch
|
||||
* Disk usage:: df du stat sync truncate
|
||||
* Printing text:: echo printf yes
|
||||
* Conditions:: false true test expr
|
||||
* Redirection:: tee
|
||||
* File name manipulation:: dirname basename pathchk mktemp realpath
|
||||
* Working context:: pwd stty printenv tty
|
||||
* User information:: id logname whoami groups users who
|
||||
* System context:: date arch nproc uname hostname hostid uptime
|
||||
* SELinux context:: chcon runcon
|
||||
* Modified command invocation:: chroot env nice nohup stdbuf timeout
|
||||
* Process control:: kill
|
||||
* Delaying:: sleep
|
||||
* Numeric operations:: factor numfmt seq
|
||||
```
|
||||
|
||||
这个列表里有 102 个实用程序。它涵盖了在 Unix 或 Linux 主机上执行基本任务所需的许多功能。但是,很多基本的实用程序都缺失了,例如,`mount` 和 `umount` 命令不在这个列表中。这些命令和其他许多不在 GNU 核心实用程序中的命令可以在 util-linux 中找到。
|
||||
|
||||
### util-linux
|
||||
|
||||
util-linix 实用程序包中包含了许多系统管理员常用的其它命令。这些实用程序是由 Linux 内核组织发布的,这 107 条命令中几乎每一个都来自原本是三个单独的集合 —— fileutils、shellutils 和 textutils,2003 年它们被[合并成一个包][11]:util-linux。
|
||||
|
||||
```
|
||||
agetty fsck.minix mkfs.bfs setpriv
|
||||
blkdiscard fsfreeze mkfs.cramfs setsid
|
||||
blkid fstab mkfs.minix setterm
|
||||
blockdev fstrim mkswap sfdisk
|
||||
cal getopt more su
|
||||
cfdisk hexdump mount sulogin
|
||||
chcpu hwclock mountpoint swaplabel
|
||||
chfn ionice namei swapoff
|
||||
chrt ipcmk newgrp swapon
|
||||
chsh ipcrm nologin switch_root
|
||||
colcrt ipcs nsenter tailf
|
||||
col isosize partx taskset
|
||||
colrm kill pg tunelp
|
||||
column last pivot_root ul
|
||||
ctrlaltdel ldattach prlimit umount
|
||||
ddpart line raw unshare
|
||||
delpart logger readprofile utmpdump
|
||||
dmesg login rename uuidd
|
||||
eject look renice uuidgen
|
||||
fallocate losetup reset vipw
|
||||
fdformat lsblk resizepart wall
|
||||
fdisk lscpu rev wdctl
|
||||
findfs lslocks RTC Alarm whereis
|
||||
findmnt lslogins runuser wipefs
|
||||
flock mcookie script write
|
||||
fsck mesg scriptreplay zramctl
|
||||
fsck.cramfs mkfs setarch
|
||||
```
|
||||
|
||||
这些实用程序中的一些已经被淘汰了,很可能在未来的某个时候会从集合中被踢出去。你应该看看[维基百科的 util-linux 页面][12]来了解其中许多实用程序的信息,而 man 页面也提供了关于这些命令的详细信息。
|
||||
|
||||
### 总结
|
||||
|
||||
这两个 Linux 实用程序的集合,GNU 核心实用程序和 util-linux,共同提供了管理 Linux 系统所需的基本实用程序。在研究这篇文章的过程中,我发现了几个有趣的实用程序,这些实用程序是我从不知道的。这些命令中的很多都是很少需要的,但当你需要的时候,它们是不可缺少的。
|
||||
|
||||
在这两个集合里,有 200 多个 Linux 实用工具。虽然 Linux 的命令还有很多,但这些都是管理一个典型的 Linux 主机的基本功能所需要的。
|
||||
|
||||
---
|
||||
|
||||
via: [https://opensource.com/article/18/4/gnu-core-utilities][17]
|
||||
|
||||
作者: [David Both][18] 选题者: [lujun9972][19] 译者: [wxy][20] 校对: [wxy][21]
|
||||
|
||||
本文由 [LCTT][22] 原创编译,[Linux中国][23] 荣誉推出
|
||||
|
||||
[1]: https://pixabay.com/en/tiny-people-core-apple-apple-half-700921/
|
||||
[2]: https://creativecommons.org/publicdomain/zero/1.0/
|
||||
[3]: https://www.gnu.org/software/coreutils/coreutils.html
|
||||
[4]: https://opensource.com/life/17/10/top-terminal-emulators?intcmp=7016000000127cYAAQ
|
||||
[5]: https://opensource.com/article/17/2/command-line-tools-data-analysis-linux?intcmp=7016000000127cYAAQ
|
||||
[6]: https://opensource.com/downloads/advanced-ssh-cheat-sheet?intcmp=7016000000127cYAAQ
|
||||
[7]: https://developers.redhat.com/cheat-sheet/advanced-linux-commands-cheatsheet?intcmp=7016000000127cYAAQ
|
||||
[8]: https://en.wikipedia.org/wiki/History_of_Unix
|
||||
[9]: https://en.wikipedia.org/wiki/Multics
|
||||
[10]: https://en.wikipedia.org/wiki/Pointy-haired_Boss
|
||||
[11]: https://en.wikipedia.org/wiki/GNU_Core_Utilities
|
||||
[12]: https://en.wikipedia.org/wiki/Util-linux
|
||||
[13]: https://opensource.com/users/dboth
|
||||
[14]: https://opensource.com/users/dboth
|
||||
[15]: https://opensource.com/users/dboth
|
||||
[16]: https://opensource.com/participate
|
||||
[17]: https://opensource.com/article/18/4/gnu-core-utilities
|
||||
[18]: https://opensource.com/users/dboth
|
||||
[19]: https://github.com/lujun9972
|
||||
[20]: https://github.com/译者ID
|
||||
[21]: https://github.com/校对者ID
|
||||
[22]: https://github.com/LCTT/TranslateProject
|
||||
[23]: https://linux.cn/
|
@ -0,0 +1,266 @@
|
||||
Systemd 服务:响应变化
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202005/12/001037iz91uu9b15dqb9w3.jpg)
|
||||
|
||||
[我有一个这样的电脑棒][1](图1),我把它用作通用服务器。它很小且安静,由于它是基于 x86 架构的,因此我为我的打印机安装驱动没有任何问题,而且这就是它大多数时候干的事:与客厅的共享打印机和扫描仪通信。
|
||||
|
||||
![ComputeStick][3]
|
||||
|
||||
*一个英特尔电脑棒。欧元硬币大小。*
|
||||
|
||||
大多数时候它都是闲置的,尤其是当我们外出时,因此我认为用它作监视系统是个好主意。该设备没有自带的摄像头,也不需要一直监视。我也不想手动启动图像捕获,因为这样就意味着在出门前必须通过 SSH 登录,并在 shell 中编写命令来启动该进程。
|
||||
|
||||
因此,我以为应该这么做:拿一个 USB 摄像头,然后只需插入它即可自动启动监视系统。如果这个电脑棒重启后发现连接了摄像头也启动监视系统就更加分了。
|
||||
|
||||
在先前的文章中,我们看到 systemd 服务既可以[手动启动或停止][5],也可以[在满足某些条件时启动或停止][6]。这些条件不限于操作系统在启动或关机时序中达到某种状态,还可以在你插入新硬件或文件系统发生变化时进行。你可以通过将 Udev 规则与 systemd 服务结合起来实现。
|
||||
|
||||
### 有 Udev 支持的热插拔
|
||||
|
||||
Udev 规则位于 `/etc/udev/rules` 目录中,通常是由导致一个<ruby>动作<rt>action</rt></ruby>的<ruby>条件<rt>conditions</rt></ruby>和<ruby>赋值<rt>assignments</rt></ruby>的单行语句来描述。
|
||||
|
||||
有点神秘。让我们再解释一次:
|
||||
|
||||
通常,在 Udev 规则中,你会告诉 systemd 当设备连接时需要查看什么信息。例如,你可能想检查刚插入的设备的品牌和型号是否与你让 Udev 等待的设备的品牌和型号相对应。这些就是前面提到的“条件”。
|
||||
|
||||
然后,你可能想要更改一些内容,以便以后可以方便使用该设备。例如,更改设备的读写权限:如果插入 USB 打印机,你会希望用户能够从打印机读取信息(用户的打印应用程序需要知道其模型、制造商,以及是否准备好接受打印作业)并向其写入内容,即发送要打印的内容。更改设备的读写权限是通过你之前阅读的“赋值” 之一完成的。
|
||||
|
||||
最后,你可能希望系统在满足上述条件时执行某些动作,例如在插入某个外部硬盘时启动备份程序以复制重要文件。这就是上面提到的“动作”的例子。
|
||||
|
||||
了解这些之后, 来看看以下几点:
|
||||
|
||||
```
|
||||
ACTION=="add", SUBSYSTEM=="video4linux", ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="e207",
|
||||
SYMLINK+="mywebcam", TAG+="systemd", MODE="0666", ENV{SYSTEMD_WANTS}="webcam.service"
|
||||
```
|
||||
|
||||
规则的第一部分,
|
||||
|
||||
```
|
||||
ACTION=="add", SUBSYSTEM=="video4linux", ATTRS{idVendor}=="03f0",
|
||||
ATTRS{idProduct}=="e207" [etc... ]
|
||||
```
|
||||
|
||||
表明了执行你想让系统执行的其他动作之前设备必须满足的条件。设备必须被添加到(`ACTION=="add"`)机器上,并且必须添加到 `video4linux` 子系统中。为了确保仅在插入正确的设备时才应用该规则,你必须确保 Udev 正确识别设备的制造商(`ATTRS{idVendor}=="03f0"`)和型号(`ATTRS{idProduct}=="e207"`)。
|
||||
|
||||
在本例中,我们讨论的是这个设备(图2):
|
||||
|
||||
![webcam][8]
|
||||
|
||||
*这个试验使用的是 HP 的摄像头。*
|
||||
|
||||
注意怎样用 `==` 来表示这是一个逻辑操作。你应该像这样阅读上面的简要规则:
|
||||
|
||||
> 如果添加了一个设备并且该设备由 video4linux 子系统控制,而且该设备的制造商编码是 03f0,型号是 e207,那么...
|
||||
|
||||
但是,你从哪里获取的这些信息?你在哪里找到触发事件的动作、制造商、型号等?你可要使用多个来源。你可以通过将摄像头插入机器并运行 `lsusb` 来获得 `IdVendor` 和 `idProduct` :
|
||||
|
||||
```
|
||||
lsusb
|
||||
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
|
||||
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
|
||||
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
|
||||
Bus 003 Device 003: ID 03f0:e207 Hewlett-Packard
|
||||
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
|
||||
Bus 001 Device 003: ID 04f2:b1bb Chicony Electronics Co., Ltd
|
||||
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
|
||||
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
|
||||
```
|
||||
|
||||
我用的摄像头是 HP 的,你在上面的列表中只能看到一个 HP 设备。`ID` 提供了制造商和型号,它们以冒号(`:`)分隔。如果你有同一制造商的多个设备,不确定哪个是哪个设备,请拔下摄像头,再次运行 `lsusb` , 看看少了什么。
|
||||
|
||||
或者...
|
||||
|
||||
拔下摄像头,等待几秒钟,运行命令 `udevadmin monitor --environment` ,然后重新插入摄像头。当你使用的是HP摄像头时,你将看到:
|
||||
|
||||
```
|
||||
udevadmin monitor --environment
|
||||
UDEV [35776.495221] add /devices/pci0000:00/0000:00:1c.3/0000:04:00.0
|
||||
/usb3/3-1/3-1:1.0/input/input21/event11 (input)
|
||||
.MM_USBIFNUM=00
|
||||
ACTION=add
|
||||
BACKSPACE=guess
|
||||
DEVLINKS=/dev/input/by-path/pci-0000:04:00.0-usb-0:1:1.0-event
|
||||
/dev/input/by-id/usb-Hewlett_Packard_HP_Webcam_HD_2300-event-if00
|
||||
DEVNAME=/dev/input/event11
|
||||
DEVPATH=/devices/pci0000:00/0000:00:1c.3/0000:04:00.0/
|
||||
usb3/3-1/3-1:1.0/input/input21/event11
|
||||
ID_BUS=usb
|
||||
ID_INPUT=1
|
||||
ID_INPUT_KEY=1
|
||||
ID_MODEL=HP_Webcam_HD_2300
|
||||
ID_MODEL_ENC=HPx20Webcamx20HDx202300
|
||||
ID_MODEL_ID=e207
|
||||
ID_PATH=pci-0000:04:00.0-usb-0:1:1.0
|
||||
ID_PATH_TAG=pci-0000_04_00_0-usb-0_1_1_0
|
||||
ID_REVISION=1020
|
||||
ID_SERIAL=Hewlett_Packard_HP_Webcam_HD_2300
|
||||
ID_TYPE=video
|
||||
ID_USB_DRIVER=uvcvideo
|
||||
ID_USB_INTERFACES=:0e0100:0e0200:010100:010200:030000:
|
||||
ID_USB_INTERFACE_NUM=00
|
||||
ID_VENDOR=Hewlett_Packard
|
||||
ID_VENDOR_ENC=Hewlettx20Packard
|
||||
ID_VENDOR_ID=03f0
|
||||
LIBINPUT_DEVICE_GROUP=3/3f0/e207:usb-0000:04:00.0-1/button
|
||||
MAJOR=13
|
||||
MINOR=75
|
||||
SEQNUM=3162
|
||||
SUBSYSTEM=input
|
||||
USEC_INITIALIZED=35776495065
|
||||
XKBLAYOUT=es
|
||||
XKBMODEL=pc105
|
||||
XKBOPTIONS=
|
||||
XKBVARIANT=
|
||||
```
|
||||
|
||||
可能看起来有很多信息要处理,但是,看一下这个:列表前面的 `ACTION` 字段, 它告诉你刚刚发生了什么事件,即一个设备被添加到系统中。你还可以在其中几行中看到设备名称的拼写,因此可以非常确定它就是你要找的设备。输出里还显示了制造商的ID(`ID_VENDOR_ID = 03f0`)和型号(`ID_VENDOR_ID = 03f0`)。
|
||||
|
||||
这为你提供了规则条件部分需要的四个值中的三个。你可能也会想到它还给了你第四个,因为还有一行这样写道:
|
||||
|
||||
```
|
||||
SUBSYSTEM=input
|
||||
```
|
||||
|
||||
小心!尽管 USB 摄像头确实是提供输入的设备(键盘和鼠标也是),但它也属于 usb 子系统和其他几个子系统。这意味着你的摄像头被添加到了多个子系统,并且看起来像多个设备。如果你选择了错误的子系统,那么你的规则可能无法按你期望的那样工作,或者根本无法工作。
|
||||
|
||||
因此,第三件事就是检查网络摄像头被添加到的所有子系统,并选择正确的那个。为此,请再次拔下摄像头,然后运行:
|
||||
|
||||
```
|
||||
ls /dev/video*
|
||||
```
|
||||
|
||||
这将向你显示连接到本机的所有视频设备。如果你使用的是笔记本,大多数笔记本都带有内置摄像头,它可能会显示为 `/dev/video0` 。重新插入摄像头,然后再次运行 `ls /dev/video*`。
|
||||
|
||||
现在,你应该看到多一个视频设备(可能是`/dev/video1`)。
|
||||
|
||||
现在,你可以通过运行 `udevadm info -a /dev/video1` 找出它所属的所有子系统:
|
||||
|
||||
```
|
||||
udevadm info -a /dev/video1
|
||||
|
||||
Udevadm info starts with the device specified by the devpath and then
|
||||
walks up the chain of parent devices. It prints for every device
|
||||
found, all possible attributes in the udev rules key format.
|
||||
A rule to match, can be composed by the attributes of the device
|
||||
and the attributes from one single parent device.
|
||||
|
||||
looking at device '/devices/pci0000:00/0000:00:1c.3/0000:04:00.0
|
||||
/usb3/3-1/3-1:1.0/video4linux/video1':
|
||||
KERNEL=="video1"
|
||||
SUBSYSTEM=="video4linux"
|
||||
DRIVER==""
|
||||
ATTR{dev_debug}=="0"
|
||||
ATTR{index}=="0"
|
||||
ATTR{name}=="HP Webcam HD 2300: HP Webcam HD"
|
||||
|
||||
[etc...]
|
||||
```
|
||||
|
||||
输出持续了相当长的时间,但是你感兴趣的只是开头的部分:`SUBSYSTEM =="video4linux"`。你可以将这行文本直接复制粘贴到你的规则中。输出的其余部分(为简洁未显示)为你提供了更多的信息,例如制造商和型号 ID,同样是以你可以复制粘贴到你的规则中的格式。
|
||||
|
||||
现在,你有了识别设备的方式吗,并明确了什么事件应该触发该动作,该对设备进行修改了。
|
||||
|
||||
规则的下一部分,`SYMLINK+="mywebcam", TAG+="systemd", MODE="0666"` 告诉 Udev 做三件事:首先,你要创建设备的符号链接(例如 `/dev/video1` 到 `/dev/mywebcam`。这是因为你无法预测系统默认情况下会把那个设备叫什么。当你拥有内置摄像头并热插拔一个新的时,内置摄像头通常为 `/dev/video0`,而外部摄像头通常为 `/dev/video1`。但是,如果你在插入外部 USB 摄像头的情况下重启计算机,则可能会相反,内部摄像头可能会变成 `/dev/video1` ,而外部摄像头会变成 `/dev/video0`。这想告诉你的是,尽管你的图像捕获脚本(稍后将看到)总是需要指向外部摄像头设备,但是你不能依赖它是 `/dev/video0` 或 `/dev/video1`。为了解决这个问题,你告诉 Udev 创建一个符号链接,该链接在设备被添加到 `video4linux` 子系统的那一刻起就不会再变,你将使你的脚本指向该链接。
|
||||
|
||||
第二件事就是将 `systemd` 添加到与此规则关联的 Udev 标记列表中。这告诉 Udev,该规则触发的动作将由 systemd 管理,即它将是某种 systemd 服务。
|
||||
|
||||
注意在这个两种情况下是如何使用 `+=` 运算符的。这会将值添加到列表中,这意味着你可以向 `SYMLINK` 和 `TAG` 添加多个值。
|
||||
|
||||
另一方面,`MODE` 值只能包含一个值(因此,你可以使用简单的 `=` 赋值运算符)。`MODE` 的作用是告诉 Udev 谁可以读或写该设备。如果你熟悉 `chmod`(你读到此文, 应该会熟悉),你就也会熟悉[如何用数字表示权限][9]。这就是它的含义:`0666` 的含义是 “向所有人授予对设备的读写权限”。
|
||||
|
||||
最后, `ENV{SYSTEMD_WANTS}="webcam.service"` 告诉 Udev 要运行什么 systemd 服务。
|
||||
|
||||
将此规则保存到 `/etc/udev/rules.d` 目录名为 `90-webcam.rules`(或类似的名称)的文件中,你可以通过重启机器或运行以下命令来加载它:
|
||||
|
||||
```
|
||||
sudo udevadm control --reload-rules && udevadm trigger
|
||||
```
|
||||
|
||||
### 最后是服务
|
||||
|
||||
Udev 规则触发的服务非常简单:
|
||||
|
||||
```
|
||||
# webcam.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/home/[user name]/bin/checkimage.sh
|
||||
```
|
||||
|
||||
基本上,它只是运行存储在你个人 `bin/` 中的 `checkimage.sh` 脚本并将其放到后台。[这是你在先前的文章中看过的内容][5]。它看起来似乎很小,但那只是因为它是被 Udev 规则调用的,你刚刚创建了一种特殊的 systemd 单元,称为 `device` 单元。 恭喜。
|
||||
|
||||
至于 `webcam.service` 调用的 `checkimage.sh` 脚本,有几种方法从摄像头抓取图像并将其与前一个图像进行比较以检查变化(这是 `checkimage.sh` 所做的事),但这是我的方法:
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
# This is the checkimage.sh script
|
||||
|
||||
mplayer -vo png -frames 1 tv:// -tv driver=v4l2:width=640:height=480:device=
|
||||
/dev/mywebcam &>/dev/null
|
||||
mv 00000001.png /home/[user name]/monitor/monitor.png
|
||||
|
||||
while true
|
||||
do
|
||||
mplayer -vo png -frames 1 tv:// -tv driver=v4l2:width=640:height=480:device=/dev/mywebcam &>/dev/null
|
||||
mv 00000001.png /home/[user name]/monitor/temp.png
|
||||
|
||||
imagediff=`compare -metric mae /home/[user name]/monitor/monitor.png /home/[user name]
|
||||
/monitor/temp.png /home/[user name]/monitor/diff.png 2>&1 > /dev/null | cut -f 1 -d " "`
|
||||
if [ `echo "$imagediff > 700.0" | bc` -eq 1 ]
|
||||
then
|
||||
mv /home/[user name]/monitor/temp.png /home/[user name]/monitor/monitor.png
|
||||
fi
|
||||
|
||||
sleep 0.5
|
||||
done
|
||||
```
|
||||
|
||||
首先使用[MPlayer][10]从摄像头抓取一帧(`00000001.png`)。注意,我们怎样将 `mplayer` 指向 Udev 规则中创建的 `mywebcam` 符号链接,而不是指向 `video0` 或 `video1`。然后,将图像传输到主目录中的 `monitor/` 目录。然后执行一个无限循环,一次又一次地执行相同的操作,但还使用了[Image Magick 的 compare 工具][11]来查看最后捕获的图像与 `monitor/` 目录中已有的图像之间是否存在差异。
|
||||
|
||||
如果图像不同,则表示摄像头的镜框里某些东西动了。该脚本将新图像覆盖原始图像,并继续比较以等待更多变动。
|
||||
|
||||
### 插线
|
||||
|
||||
所有东西准备好后,当你插入摄像头后,你的 Udev 规则将被触发并启动 `webcam.service`。 `webcam.service` 将在后台执行 `checkimage.sh` ,而 `checkimage.sh` 将开始每半秒拍一次照。你会感觉到,因为摄像头的 LED 在每次拍照时将开始闪。
|
||||
|
||||
与往常一样,如果出现问题,请运行:
|
||||
|
||||
```
|
||||
systemctl status webcam.service
|
||||
```
|
||||
|
||||
检查你的服务和脚本正在做什么。
|
||||
|
||||
### 接下来
|
||||
|
||||
你可能想知道:为什么要覆盖原始图像?当然,系统检测到任何动静,你都想知道发生了什么,对吗?你是对的,但是如你在下一部分中将看到的那样,将它们保持原样,并使用另一种类型的 systemd 单元处理图像将更好,更清晰和更简单。
|
||||
|
||||
请期待下一篇。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.linux.com/blog/intro-to-linux/2018/6/systemd-services-reacting-change
|
||||
|
||||
作者:[Paul Brown][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[messon007](https://github.com/messon007)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.linux.com/users/bro66
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.intel.com/content/www/us/en/products/boards-kits/compute-stick/stk1a32sc.html
|
||||
[2]: https://www.linux.com/files/images/fig01png
|
||||
[3]: https://lcom.static.linuxfound.org/sites/lcom/files/fig01.png
|
||||
[4]: https://www.linux.com/licenses/category/used-permission
|
||||
[5]: https://linux.cn/article-9700-1.html
|
||||
[6]: https://linux.cn/article-9703-1.html
|
||||
[7]: https://www.linux.com/files/images/fig02png
|
||||
[8]: https://www.linux.com/sites/lcom/files/styles/floated_images/public/fig02.png?itok=esFv4BdM (webcam)
|
||||
[9]: https://chmod-calculator.com/
|
||||
[10]: https://mplayerhq.hu/design7/news.html
|
||||
[11]: https://www.imagemagick.org/script/compare.php
|
||||
[12]: https://training.linuxfoundation.org/linux-courses/system-administration-training/introduction-to-linux
|
@ -0,0 +1,199 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (robsean)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12186-1.html)
|
||||
[#]: subject: (How to Configure SFTP Server with Chroot in Debian 10)
|
||||
[#]: via: (https://www.linuxtechi.com/configure-sftp-chroot-debian10/)
|
||||
[#]: author: (Pradeep Kumar https://www.linuxtechi.com/author/pradeep/)
|
||||
|
||||
如何在 Debian 10 中配置 Chroot 环境的 SFTP 服务
|
||||
======
|
||||
|
||||
SFTP 意思是“<ruby>安全文件传输协议<rt>Secure File Transfer Protocol</rt></ruby>” 或 “<ruby>SSH 文件传输协议<rt>SSH File Transfer Protocol</rt></ruby>”,它是最常用的用于通过 `ssh` 将文件从本地系统安全地传输到远程服务器的方法,反之亦然。`sftp` 的主要优点是,除 `openssh-server` 之外,我们不需要安装任何额外的软件包,在大多数的 Linux 发行版中,`openssh-server` 软件包是默认安装的一部分。`sftp` 的另外一个好处是,我们可以允许用户使用 `sftp` ,而不允许使用 `ssh` 。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202005/05/223518ip4mbdi4nggbdtgu.jpg)
|
||||
|
||||
当前发布的 Debian 10 代号为 ‘Buster’,在这篇文章中,我们将演示如何在 Debian 10 系统中在 “监狱式的” Chroot 环境中配置 `sftp`。在这里,Chroot 监狱式环境意味着,用户不能超出各自的家目录,或者用户不能从各自的家目录更改目录。下面实验的详细情况:
|
||||
|
||||
* OS = Debian 10
|
||||
* IP 地址 = 192.168.56.151
|
||||
|
||||
让我们跳转到 SFTP 配置步骤,
|
||||
|
||||
### 步骤 1、使用 groupadd 命令给 sftp 创建一个组
|
||||
|
||||
打开终端,使用下面的 `groupadd` 命令创建一个名为的 `sftp_users` 组:
|
||||
|
||||
```
|
||||
root@linuxtechi:~# groupadd sftp_users
|
||||
```
|
||||
|
||||
### 步骤 2、添加用户到组 sftp_users 并设置权限
|
||||
|
||||
假设你想创建新的用户,并且想添加该用户到 `sftp_users` 组中,那么运行下面的命令,
|
||||
|
||||
**语法:**
|
||||
|
||||
```
|
||||
# useradd -m -G sftp_users <用户名>
|
||||
```
|
||||
|
||||
让我们假设用户名是 `jonathan`:
|
||||
|
||||
```
|
||||
root@linuxtechi:~# useradd -m -G sftp_users jonathan
|
||||
```
|
||||
|
||||
使用下面的 `chpasswd` 命令设置密码:
|
||||
|
||||
```
|
||||
root@linuxtechi:~# echo "jonathan:<输入密码>" | chpasswd
|
||||
```
|
||||
|
||||
假设你想添加现有的用户到 `sftp_users` 组中,那么运行下面的 `usermod` 命令,让我们假设已经存在的用户名称是 `chris`:
|
||||
|
||||
```
|
||||
root@linuxtechi:~# usermod -G sftp_users chris
|
||||
```
|
||||
|
||||
现在设置用户所需的权限:
|
||||
|
||||
```
|
||||
root@linuxtechi:~# chown root /home/jonathan /home/chris/
|
||||
```
|
||||
|
||||
在各用户的家目录中都创建一个上传目录,并设置正确地所有权:
|
||||
|
||||
```
|
||||
root@linuxtechi:~# mkdir /home/jonathan/upload
|
||||
root@linuxtechi:~# mkdir /home/chris/upload
|
||||
root@linuxtechi:~# chown jonathan /home/jonathan/upload
|
||||
root@linuxtechi:~# chown chris /home/chris/upload
|
||||
```
|
||||
|
||||
**注意:** 像 Jonathan 和 Chris 之类的用户可以从他们的本地系统上传文件和目录。
|
||||
|
||||
### 步骤 3、编辑 sftp 配置文件 /etc/ssh/sshd_config
|
||||
|
||||
正如我们已经陈述的,`sftp` 操作是通过 `ssh` 完成的,所以它的配置文件是 `/etc/ssh/sshd_config`,在做任何更改前,我建议首先备份文件,然后再编辑该文件,接下来添加下面的内容:
|
||||
|
||||
```
|
||||
root@linuxtechi:~# cp /etc/ssh/sshd_config /etc/ssh/sshd_config-org
|
||||
root@linuxtechi:~# vim /etc/ssh/sshd_config
|
||||
......
|
||||
#Subsystem sftp /usr/lib/openssh/sftp-server
|
||||
Subsystem sftp internal-sftp
|
||||
|
||||
Match Group sftp_users
|
||||
X11Forwarding no
|
||||
AllowTcpForwarding no
|
||||
ChrootDirectory %h
|
||||
ForceCommand internal-sftp
|
||||
......
|
||||
```
|
||||
|
||||
保存并退出文件。
|
||||
|
||||
为使上述更改生效,使用下面的 `systemctl` 命令来重新启动 `ssh` 服务:
|
||||
|
||||
```
|
||||
root@linuxtechi:~# systemctl restart sshd
|
||||
```
|
||||
|
||||
在上面的 `sshd_config` 文件中,我们已经注释掉了以 `Subsystem` 开头的行,并添加了新的条目 `Subsystem sftp internal-sftp` 和新的行。而
|
||||
|
||||
`Match Group sftp_users` –> 它意味着如果用户是 `sftp_users` 组中的一员,那么将应用下面提到的规则到这个条目。
|
||||
|
||||
`ChrootDierctory %h` –> 它意味着用户只能在他们自己各自的家目录中更改目录,而不能超出他们各自的家目录。或者换句话说,我们可以说用户是不允许更改目录的。他们将在他们的目录中获得监狱一样的环境,并且不能访问其他用户的目录和系统的目录。
|
||||
|
||||
`ForceCommand internal-sftp` –> 它意味着用户仅被限制到只能使用 `sftp` 命令。
|
||||
|
||||
### 步骤 4、测试和验证 sftp
|
||||
|
||||
登录到你的 `sftp` 服务器的同一个网络上的任何其它的 Linux 系统,然后通过我们放入 `sftp_users` 组中的用户来尝试 ssh 和 sftp 服务。
|
||||
|
||||
```
|
||||
[root@linuxtechi ~]# ssh root@linuxtechi
|
||||
root@linuxtechi's password:
|
||||
Write failed: Broken pipe
|
||||
[root@linuxtechi ~]# ssh root@linuxtechi
|
||||
root@linuxtechi's password:
|
||||
Write failed: Broken pipe
|
||||
[root@linuxtechi ~]#
|
||||
```
|
||||
|
||||
以上操作证实用户不允许 `ssh` ,现在使用下面的命令尝试 `sftp`:
|
||||
|
||||
```
|
||||
[root@linuxtechi ~]# sftp root@linuxtechi
|
||||
root@linuxtechi's password:
|
||||
Connected to 192.168.56.151.
|
||||
sftp> ls -l
|
||||
drwxr-xr-x 2 root 1001 4096 Sep 14 07:52 debian10-pkgs
|
||||
-rw-r--r-- 1 root 1001 155 Sep 14 07:52 devops-actions.txt
|
||||
drwxr-xr-x 2 1001 1002 4096 Sep 14 08:29 upload
|
||||
```
|
||||
|
||||
让我们使用 sftp 的 `get` 命令来尝试下载一个文件:
|
||||
|
||||
```
|
||||
sftp> get devops-actions.txt
|
||||
Fetching /devops-actions.txt to devops-actions.txt
|
||||
/devops-actions.txt 100% 155 0.2KB/s 00:00
|
||||
sftp>
|
||||
sftp> cd /etc
|
||||
Couldn't stat remote file: No such file or directory
|
||||
sftp> cd /root
|
||||
Couldn't stat remote file: No such file or directory
|
||||
sftp>
|
||||
```
|
||||
|
||||
上面的输出证实我们能从我们的 sftp 服务器下载文件到本地机器,除此之外,我们也必须测试用户不能更改目录。
|
||||
|
||||
让我们在 `upload` 目录下尝试上传一个文件:
|
||||
|
||||
```
|
||||
sftp> cd upload/
|
||||
sftp> put metricbeat-7.3.1-amd64.deb
|
||||
Uploading metricbeat-7.3.1-amd64.deb to /upload/metricbeat-7.3.1-amd64.deb
|
||||
metricbeat-7.3.1-amd64.deb 100% 38MB 38.4MB/s 00:01
|
||||
sftp> ls -l
|
||||
-rw-r--r-- 1 1001 1002 40275654 Sep 14 09:18 metricbeat-7.3.1-amd64.deb
|
||||
sftp>
|
||||
```
|
||||
|
||||
这证实我们已经成功地从我们的本地系统上传一个文件到 sftp 服务中。
|
||||
|
||||
现在使用 winscp 工具来测试 sftp 服务,输入 sftp 服务器 IP 地址和用户的凭证:
|
||||
|
||||
![][3]
|
||||
|
||||
在 “Login” 上单击,然后尝试下载和上传文件:
|
||||
|
||||
![][4]
|
||||
|
||||
现在,在 `upload` 文件夹中尝试上传文件:
|
||||
|
||||
![][5]
|
||||
|
||||
上面的窗口证实上传是完好地工作的,这就是这篇文章的全部。如果这些步骤能帮助你在 Debian 10 中使用 chroot 环境配置 SFTP 服务器s,那么请分享你的反馈和评论。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.linuxtechi.com/configure-sftp-chroot-debian10/
|
||||
|
||||
作者:[Pradeep Kumar][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[robsean](https://github.com/robsean)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.linuxtechi.com/author/pradeep/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
|
||||
[2]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Configure-sftp-debian10.jpg
|
||||
[3]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Winscp-sftp-debian10.jpg
|
||||
[4]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Download-file-winscp-debian10-sftp.jpg
|
||||
[5]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Upload-File-using-winscp-Debian10-sftp.jpg
|
@ -0,0 +1,227 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (lxbwolf)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12264-1.html)
|
||||
[#]: subject: (How to install TT-RSS on a Raspberry Pi)
|
||||
[#]: via: (https://opensource.com/article/20/2/ttrss-raspberry-pi)
|
||||
[#]: author: (Patrick H. Mullins https://opensource.com/users/pmullins)
|
||||
|
||||
怎样在树莓派上安装 TT-RSS
|
||||
======
|
||||
|
||||
> 使用 Tiny Tiny RSS 来保护你阅读新闻馈送时的隐私。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202005/29/230337vmazkl65hh61l0qq.png)
|
||||
|
||||
[Tiny Tiny RSS][2](TT-RSS)是一个自由开源的基于 Web 的新闻<ruby>馈送<rt>feed</rt></ruby>(RSS/Atom)阅读器和聚合工具。它非常适合那些注重隐私,并且仍然依赖 RSS 来获取日常新闻的人。TT-RSS 是自行托管的软件,因此你可以 100% 的掌控你的服务器、数据以及你的全部隐私。它还支持大量的插件、扩展和主题。你喜欢黑暗模式的界面?没问题。想基于关键词过滤发来的消息?TT-RSS 也能让你得偿所愿。
|
||||
|
||||
![Tiny Tiny RSS screenshot][3]
|
||||
|
||||
现在你知道 TT-RSS 是什么了,那么为什么你可能会想用它。我会讲述要把它安装到树莓派或 Debian 10 服务器上你需要了解的所有的东西。
|
||||
|
||||
### 安装和配置 TT-RSS
|
||||
|
||||
要把 TT-RSS 安装到树莓派上,你还需要安装和配置最新版本的 PHP(本文撰写时 PHP 最新版本是 7.3)、后端数据库 PostgreSQL、Nginx web 服务器、Git,最后才是 TT-RSS。
|
||||
|
||||
#### 1、安装 PHP 7
|
||||
|
||||
安装 PHP 7 是整个过程中最复杂的部分。幸运的是,它并不像看起来那样困难。从安装下面的支持包开始:
|
||||
|
||||
```
|
||||
$ sudo apt install -y ca-certificates apt-transport-https
|
||||
```
|
||||
|
||||
现在,添加存储库 PGP 密钥:
|
||||
|
||||
```
|
||||
$ wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
|
||||
```
|
||||
|
||||
下一步,把 PHP 库添加到你的 apt 源:
|
||||
|
||||
```
|
||||
$ echo "deb https://packages.sury.org/php/ buster main" | sudo tee /etc/apt/sources.list.d/php.list
|
||||
```
|
||||
|
||||
然后更新你的存储库索引:
|
||||
|
||||
```
|
||||
$ sudo apt update
|
||||
```
|
||||
|
||||
最后,安装 PHP 7.3(或最新版本)和一些通用组件:
|
||||
|
||||
```
|
||||
$ sudo apt install -y php7.3 php7.3-cli php7.3-fpm php7.3-opcache php7.3-curl php7.3-mbstring php7.3-pgsql php7.3-zip php7.3-xml php7.3-gd php7.3-intl
|
||||
```
|
||||
|
||||
上面的命令默认你使用的后端数据库是 PostgreSQL,会安装 `php7.3-pgsql`。如果你想用 MySQL 或 MariaDB,你可以把命令参数改为 `php7.3-mysql`。
|
||||
|
||||
下一步,确认 PHP 已安装并在你的树莓派上运行着:
|
||||
|
||||
```
|
||||
$ php -v
|
||||
```
|
||||
|
||||
现在是时候安装和配置 Web 服务器了。
|
||||
|
||||
#### 2、安装 Nginx
|
||||
|
||||
可以用下面的命令安装 Nginx:
|
||||
|
||||
```
|
||||
$ sudo apt install -y nginx
|
||||
```
|
||||
|
||||
修改默认的 Nginx 虚拟主机配置,这样 Web 服务器才能识别 PHP 文件以及知道如何处理它们。
|
||||
|
||||
```
|
||||
$ sudo nano /etc/nginx/sites-available/default
|
||||
```
|
||||
|
||||
你可以安全地删除原文件中的所有内容,用下面的内容替换:
|
||||
|
||||
```
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
|
||||
root /var/www/html;
|
||||
index index.html index.htm index.php;
|
||||
server_name _;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
include snippets/fastcgi-php.conf;
|
||||
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
按 `Ctrl+O` 保存修改后的配置文件,然后按 `Ctrl+X` 退出 Nano。你可以用下面的命令测试你的新配置文件:
|
||||
|
||||
|
||||
```
|
||||
$ nginx -t
|
||||
```
|
||||
|
||||
如果没有报错,重启 Nginx 服务:
|
||||
|
||||
```
|
||||
$ systemctl restart nginx
|
||||
```
|
||||
|
||||
#### 3、安装 PostgreSQL
|
||||
|
||||
接下来是安装数据库服务器。在树莓派上安装 PostgreSQL 超级简单:
|
||||
|
||||
```
|
||||
$ sudo apt install -y postgresql postgresql-client postgis
|
||||
```
|
||||
|
||||
输入下面的命令看一下数据库服务器安装是否成功:
|
||||
|
||||
```
|
||||
$ psql --version
|
||||
```
|
||||
|
||||
#### 4、创建 Tiny Tiny RSS 数据库
|
||||
|
||||
在做其他事之前,你需要创建一个数数据库,用来给 TT-RSS 软件保存数据。首先,登录 PostgreSQL 服务器:
|
||||
|
||||
```
|
||||
sudo -u postgres psql
|
||||
```
|
||||
|
||||
下一步,新建一个用户,设置密码:
|
||||
|
||||
```
|
||||
CREATE USER username WITH PASSWORD 'your_password' VALID UNTIL 'infinity';
|
||||
```
|
||||
|
||||
然后创建一个给 TT-RSS 用的数据库:
|
||||
|
||||
|
||||
```
|
||||
CREATE DATABASE tinyrss;
|
||||
```
|
||||
|
||||
最后,给新建的用户赋最高权限:
|
||||
|
||||
```
|
||||
GRANT ALL PRIVILEGES ON DATABASE tinyrss to user_name;
|
||||
```
|
||||
|
||||
这是安装数据库的步骤。你可以输入 `\q` 来退出 `psql` 程序。
|
||||
|
||||
#### 5、安装 Git
|
||||
|
||||
安装 TT-RSS 需要用 Git,所以输入下面的命令安装 Git:
|
||||
|
||||
```
|
||||
$ sudo apt install git -y
|
||||
```
|
||||
|
||||
现在,进入到 Nginx 服务器的根目录:
|
||||
|
||||
```
|
||||
$ cd /var/www/html
|
||||
```
|
||||
|
||||
下载 TT-RSS 最新源码:
|
||||
|
||||
```
|
||||
$ git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss
|
||||
```
|
||||
|
||||
注意,这一步会创建一个 `tt-rss` 文件夹。
|
||||
|
||||
#### 6、安装和配置Tiny Tiny RSS
|
||||
|
||||
现在是安装和配置你的新 TT-RSS 服务器的最后时刻了。首先,确认下你在浏览器中能打开 `http://your.site/tt-rss/install/index.php`。如果浏览器显示 `403 Forbidden`,那么就证明 `/var/www/html` 文件夹的权限没有设置正确。下面的命令通常能解决这个问题:
|
||||
|
||||
```
|
||||
$ chmod 755 /var/www/html/ -v
|
||||
```
|
||||
|
||||
如果一切正常,你会看到 TT-RSS 安装页面,它会让你输入一些数据的信息。你只需要输入前面你创建的数据库用户名和密码;数据库名;主机名填 `localhost`;端口填 `5432`。
|
||||
|
||||
点击“Test Configuration”。如果一切正常,你会看到一个标记着“Initialize Database”的红色按钮。点击它来开始安装。结束后,你会看到一个配置文件,你可以把它复制到 TT-RSS 的目录,另存为 `config.php`。
|
||||
|
||||
安装过程结束后,浏览器输入 `http://yoursite/tt-rss/` 打开 TT-RSS,使用默认的凭证登录(用户名:`admin`,密码:`password`)。登录后系统会提示你修改密码。我强烈建议你尽快修改密码。
|
||||
|
||||
### 配置 TT-RSS
|
||||
|
||||
如果一切正常,你现在就可以开始使用 TT-RSS 了。建议你新建一个非管理员用户,使用新用户名登录,并开始导入你的馈送、订阅,按照你的意愿来配置它。
|
||||
|
||||
最后,并且是超级重要的事,不要忘了阅读 TT-RSS 维基上的 [Updating Feeds][4] 部分。它讲述了如何创建一个简单的 systemd 服务来更新馈送。如果你跳过了这一步,你的 RSS 馈送就不会自动更新。
|
||||
|
||||
### 总结
|
||||
|
||||
呵!工作量不小,但是你做完了!你现在有自己的 RSS 聚合服务器了。想了解 TT-RSS 更多的知识?我推荐你去看官方的 [FAQ][5]、[支持][6]论坛,和详细的[安装][7]笔记。如果你有任何问题,尽情地在下面评论吧。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/2/ttrss-raspberry-pi
|
||||
|
||||
作者:[Patrick H. Mullins][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[lxbwolf](https://github.com/lxbwolf)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/pmullins
|
||||
[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://tt-rss.org/
|
||||
[3]: https://opensource.com/sites/default/files/uploads/tt-rss.jpeg (Tiny Tiny RSS screenshot)
|
||||
[4]: https://tt-rss.org/wiki/UpdatingFeeds
|
||||
[5]: https://tt-rss.org/wiki/FAQ
|
||||
[6]: https://community.tt-rss.org/c/tiny-tiny-rss/support
|
||||
[7]: https://tt-rss.org/wiki/InstallationNotes
|
@ -0,0 +1,105 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12173-1.html)
|
||||
[#]: subject: (Create Stunning Pixel Art With Free and Open Source Editor Pixelorama)
|
||||
[#]: via: (https://itsfoss.com/pixelorama/)
|
||||
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
|
||||
|
||||
使用 Pixelorama 创建令人惊叹的像素艺术
|
||||
======
|
||||
|
||||
> Pixelorama 是一个跨平台、自由开源的 2D 精灵编辑器。它在一个整洁的用户界面中提供了创建像素艺术所有必要工具。
|
||||
|
||||
### Pixelorama:开源 Sprite 编辑器
|
||||
|
||||
[Pixelorama][1] 是 [Orama 互动][2]公司的年轻游戏开发人员创建的一个工具。他们已经开发了一些 2D 游戏,其中一些使用了像素艺术。
|
||||
|
||||
虽然 Orama 主要从事于游戏开发,但开发人员也创建实用工具,帮助他们(和其他人)创建这些游戏。
|
||||
|
||||
自由开源的<ruby>精灵<rt>Sprite</rt></ruby>编辑器 Pixelorama 就是这样一个实用工具。它构建在 [Godot 引擎][3]之上,非常适合创作像素艺术。
|
||||
|
||||
![Pixelorama screenshot][4]
|
||||
|
||||
你看到上面截图中的像素艺术了吗?它是使用 Pixelorama 创建的。这段视频展示了制作上述图片的时间推移视频。
|
||||
|
||||
### Pixelorama 的功能
|
||||
|
||||
以下是 Pixelorama 提供的主要功能:
|
||||
|
||||
* 多种工具,如铅笔、橡皮擦、填充桶、取色器等
|
||||
* 多层系统,你可以根据需要添加、删除、上下移动、克隆和合并多个层
|
||||
* 支持 Spritesheets
|
||||
* 导入图像并在 Pixelorama 中编辑它们
|
||||
* 带有 [Onion Skinning][5] 的动画时间线
|
||||
* 自定义画笔
|
||||
* 以 Pixelorama 的自定义文件格式 .pxo 保存并打开你的项目
|
||||
* 水平和垂直镜像绘图
|
||||
* 用于创建图样的磁贴模式
|
||||
* 拆分屏幕模式和迷你画布预览
|
||||
* 使用鼠标滚轮缩放
|
||||
* 无限次撤消和重做
|
||||
* 缩放、裁剪、翻转、旋转、颜色反转和去饱和图像
|
||||
* 键盘快捷键
|
||||
* 提供多种语言
|
||||
* 支持 Linux、Windows 和 macOS
|
||||
|
||||
### 在 Linux 上安装 Pixelorama
|
||||
|
||||
Pixelorama 提供 Snap 应用,如果你使用的是 Ubuntu,那么可以在软件中心找到它。
|
||||
|
||||
![Pixelorama is available in Ubuntu Software Center][6]
|
||||
|
||||
或者,如果你在 [Linux 发行版上启用了 Snap 支持][7],那么可以使用此命令安装它:
|
||||
|
||||
```
|
||||
sudo snap install pixelorama
|
||||
```
|
||||
|
||||
如果你不想使用 Snap,不用担心。你可以从[他们的 GitHub 仓库][8]下载最新版本的 Pixelorama,[解压 zip 文件][9],你会看到一个可执行文件。授予此文件执行权限,并双击它运行应用。
|
||||
|
||||
- [下载 Pixelorama][10]
|
||||
|
||||
### 总结
|
||||
|
||||
![Pixelorama Welcome Screen][11]
|
||||
|
||||
在 Pixeloaram 的功能中,它说你可以导入图像并对其进行编辑。我想,这只是对某些类型的文件,因为当我尝试导入 PNG 或 JPEG 文件,程序崩溃了。
|
||||
|
||||
然而,我可以像一个 3 岁的孩子那样随意涂鸦并制作像素艺术。我对艺术不是很感兴趣,但我认为这[对 Linux 上的数字艺术家是个有用的工具][12]。
|
||||
|
||||
我喜欢这样的想法:尽管是游戏开发人员,但他们创建的工具,可以帮助其他游戏开发人员和艺术家。这就是开源的精神。
|
||||
|
||||
如果你喜欢这个项目,并且会使用它,请考虑通过捐赠来支持他们。[It’s FOSS 捐赠了][13] 25 美元,以感谢他们的努力。
|
||||
|
||||
- [向 Pixelorama 捐赠(主要开发者的个人 Paypal 账户)][14]
|
||||
|
||||
你喜欢 Pixelorama 吗?你是否使用其他开源精灵编辑器?请随时在评论栏分享你的观点。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
via: https://itsfoss.com/pixelorama/
|
||||
|
||||
作者:[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://www.orama-interactive.com/pixelorama
|
||||
[2]: https://www.orama-interactive.com/
|
||||
[3]: https://godotengine.org/
|
||||
[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/pixelorama-v6.jpg?ssl=1
|
||||
[5]: https://en.wikipedia.org/wiki/Onion_skinning
|
||||
[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/pixelorama-ubuntu-software-center.jpg?ssl=1
|
||||
[7]: https://itsfoss.com/install-snap-linux/
|
||||
[8]: https://github.com/Orama-Interactive/Pixelorama
|
||||
[9]: https://itsfoss.com/unzip-linux/
|
||||
[10]: https://github.com/Orama-Interactive/Pixelorama/releases
|
||||
[11]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/pixelorama.jpg?ssl=1
|
||||
[12]: https://itsfoss.com/best-linux-graphic-design-software/
|
||||
[13]: https://itsfoss.com/donations-foss/
|
||||
[14]: https://www.paypal.me/erevos
|
@ -0,0 +1,134 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (lxbwolf)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12255-1.html)
|
||||
[#]: subject: (How to create a personal file server with SSH on Linux)
|
||||
[#]: via: (https://opensource.com/article/20/3/personal-file-server-ssh)
|
||||
[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
|
||||
|
||||
怎样在 Linux 下用 SSH 搭建个人文件服务器
|
||||
======
|
||||
|
||||
> 通过 SSH 连接远程 Linux 系统很简单。下面是教程。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202005/27/120338v62cakrqnccpjckk.jpg)
|
||||
|
||||
树莓派是一个有用且价格低廉的家庭服务器,可用于很多事情。我的树莓派最常用来做[打印服务器][2],可以在我的家庭网络中共享激光打印机,或作为个人文件服务器保存项目副本和其他数据。
|
||||
|
||||
我的文件服务器有很多用途。假设说我现在有一个项目,比如一本新书,我想把我的工作和所有相关的文件都复制一份快照。这种场景下,我只需要把 `BookProject` 文件夹复制到文件服务器的 `BookBackup` 文件夹。
|
||||
|
||||
或者我现在正在清理我的本地文件时,发现一些我不需要的文件,但是我不确定是否要删除,我会把它们复制到文件服务器的 `KeepForLater` 文件夹。这是我日常 Linux 系统中清除杂乱的文件,并将不常用的文件卸载到个人文件服务器上的方便方法。
|
||||
|
||||
用树莓派或其他 Linux 系统搭建个人文件服务器不需要配置 NFS(<ruby>网络文件系统<rt>Network File System</rt></ruby>>)或 CIFS(<ruby>通用互联网文件系统<rt>Common Internet File System</rt></ruby>)或改造其他的文件共享系统如 WebDAV。你可以很轻松的使用 SSH 来搭建远程文件服务器。下面是教程。
|
||||
|
||||
### 在远程服务器上配置 SSHD
|
||||
|
||||
你的 Linux 系统可能已经安装了 SSH 守护进程(`sshd`),甚至它已经默认运行了。如果没有,你可以使用你 Linux 发行版本上的任何控制面板来轻松配置 SSH。我在树莓派上运行了 [Fedora ARM][3],通过 Web 浏览器访问树莓派的 9090 端口,我可以远程访问控制面板。(在我的家庭网络中,树莓派的 IP 地址是 `10.0.0.11`,因此我连接的是 `10.0.0.11:9090`。)如果 SSH 守护进程没有默认运行,你可以在控制面板的“服务”里把它设置为开机启动。
|
||||
|
||||
![sshd in the list of system services][4]
|
||||
|
||||
你可以在系统服务列表里找到 `sshd`。
|
||||
|
||||
![slider to activate sshd][5]
|
||||
|
||||
如果 `sshd` 没有开启,点击切换按钮打开它。
|
||||
|
||||
### 你有账号吗?
|
||||
|
||||
你需要有个远程系统的账号。它可以与你本地系统的账号相同,也可以不同。
|
||||
|
||||
在流行的 Raspbian 发行版本上,默认的账号名是 `pi`。但是其他的 Linux 发行版本可能需要你在安装系统时就设置一个唯一的新用户。如果你不知道你的用户名,你可以用系统的控制面板创建一个。在我的树莓派上,我创建了一个 `jhall` 账号,与我日常用的 Linux 桌面机器的用户名相同。
|
||||
|
||||
![Set up a new account on Fedora Server][6]
|
||||
|
||||
如果你用的是 Fedora 服务器,你可以点击“创建新账号”按钮。
|
||||
|
||||
![Set password or SSH key][7]
|
||||
|
||||
不要忘记设置密码或添加公钥。
|
||||
|
||||
### 可选:添加公钥
|
||||
|
||||
如果你把公钥添加到远程 Linux 系统上,你就可以不使用密码登录。这一步是可选的;如果你愿意,你仍可以用密码登录。
|
||||
|
||||
你可以在下面的文章中学到更多关于 SSH 密钥的信息:
|
||||
|
||||
* [SSH 密钥管理工具][8]
|
||||
* [用 Seahorse 对 SSH 密钥进行图形化管理][9]
|
||||
* [如何管理多个 SSH 密钥][10]
|
||||
* [使用 GPG 密钥作为鉴权依据开启 SSH 访问][11]
|
||||
|
||||
### 创建文件管理器的快捷方式
|
||||
|
||||
现在你已经在远程系统上启动 SSH 守护进程了,也设置了用户名和密码,最后一步就是在你本地的文件管理器中创建一个快捷方式,地址映射到远程 Linux 系统。我的桌面是 GNOME,但是在其他的 Linux 桌面上的基本操作步骤都是一样的。
|
||||
|
||||
#### 建立初始连接
|
||||
|
||||
在 GNOME 的文件管理器中,在左边导航栏找到 “+其它位置” 按钮。点击它会出现一个 “连接到服务器” 提示框。在框中输入远程 Linux 服务器的地址,地址以 SSH 连接协议开头。
|
||||
|
||||
![Creating a shortcut in GNOME file manager][12]
|
||||
|
||||
GNOME 文件管理器支持多种连接协议。要通过 SSH 进行连接,服务器地址请以 `sftp://` 或 `ssh://` 开头。
|
||||
|
||||
如果你远程 Linux 系统的用户名与本地的相同,那么你只需要输入服务器的地址和文件夹路径就可以了。比如要连接到我的树莓派的 `/home/jhall` 目录,我输入:
|
||||
|
||||
```
|
||||
sftp://10.0.0.11/home/jhall
|
||||
```
|
||||
|
||||
![GNOME file manager Connect to Server][13]
|
||||
|
||||
如果你远程 Linux 系统的用户名与本地的不同,你可以在远程系统地址前加 `@` 符号来指定远程系统的用户名。要连接到远程的 Raspbian 系统,你可能要输入:
|
||||
|
||||
```
|
||||
sftp://pi@10.0.0.11/home/pi
|
||||
```
|
||||
|
||||
![GNOME file manager Connect to Server][14]
|
||||
|
||||
如果你没有把公钥添加到远程服务器,那么你需要输入密码。如果你已经添加,GNOME 文件管理器应该会自动打开远程系统上的文件夹来让你跳转到不同的目录。
|
||||
|
||||
![GNOME file manager connection][15]
|
||||
|
||||
#### 创建一个快捷方式,之后就可以轻松连接服务器
|
||||
|
||||
在 GNOME 文件管理器中,这很简单。右击导航栏中远程系统的名字,选择“添加书签”。这一步操作就创建了连接到远程路径的快捷方式。
|
||||
|
||||
![GNOME file manager - adding bookmark][16]
|
||||
|
||||
如果你想把标签中的快捷方式改成一个更容易记的名字,你可以右击快捷方式选择“重命名”。
|
||||
|
||||
### 总结
|
||||
|
||||
通过 SSH 连接到远程 Linux 系统是很简单的事。你可以用相同的方式连接到家庭文件服务器以外的其他系统。我还创建了一个能让我立即访问我的提供商 Web 服务器上的文件的快捷方式,和另一个能迅速打开我的项目服务器的文件夹的快捷方式。SSH 使它成为一个安全的连接;所有的传输都是加密的。当我通过 SSH 打开远程的文件时,我可以像在本地操作一样使用 GNOME 文件管理器轻松打开远程文件。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/3/personal-file-server-ssh
|
||||
|
||||
作者:[Jim Hall][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[lxbwolf](https://github.com/lxbwolf)
|
||||
校对:[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/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer)
|
||||
[2]: https://opensource.com/article/18/3/print-server-raspberry-pi
|
||||
[3]: https://arm.fedoraproject.org/
|
||||
[4]: https://opensource.com/sites/default/files/uploads/fedora-server-control-panel-sshd.png (sshd in the list of system services)
|
||||
[5]: https://opensource.com/sites/default/files/uploads/fedora-server-control-panel-sshd-service.png (slider to activate sshd)
|
||||
[6]: https://opensource.com/sites/default/files/uploads/fedora-server-control-panel-accounts_create-user.png (Set up a new account on Fedora Server)
|
||||
[7]: https://opensource.com/sites/default/files/uploads/fedora-server-control-panel-accounts.png (Set password or SSH key)
|
||||
[8]: https://linux.cn/article-11947-1.html
|
||||
[9]: https://linux.cn/article-9451-1.html
|
||||
[10]: https://opensource.com/article/19/4/gpg-subkeys-ssh-manage
|
||||
[11]: https://opensource.com/article/19/4/gpg-subkeys-ssh
|
||||
[12]: https://opensource.com/sites/default/files/uploads/gnome-file-manager-other-locations.png (Creating a shortcut in GNOME file manager)
|
||||
[13]: https://opensource.com/sites/default/files/uploads/gnome-file-manager-other-sftp.png (GNOME file manager Connect to Server)
|
||||
[14]: https://opensource.com/sites/default/files/uploads/gnome-file-manager-other-sftp-username.png (GNOME file manager Connect to Server)
|
||||
[15]: https://opensource.com/sites/default/files/uploads/gnome-file-manager-remote-jhall.png (GNOME file manager connection)
|
||||
[16]: https://opensource.com/sites/default/files/uploads/gnome-file-manager-remote-jhall-add-bookmark.png (GNOME file manager - adding bookmark)
|
@ -0,0 +1,104 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12250-1.html)
|
||||
[#]: subject: (Audacious 4.0 Released With Qt 5: Here’s How to Install it on Ubuntu)
|
||||
[#]: via: (https://itsfoss.com/audacious-4-release/)
|
||||
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
|
||||
|
||||
如何安装使用 Qt 5 的音频播放器 Audacious 4.0
|
||||
======
|
||||
|
||||
[Audacious][1] 是一个开源音频播放器,可用于包括 Linux 在内的多个平台。继上次发布主版本将近 2 年后,Audacious 4.0 带来了一些重大变化。
|
||||
|
||||
最新版本的 Audacious 4.0 默认带 [Qt 5][2] 用户界面。你仍然可以和以前一样使用旧的 GTK2 UI,但是,新功能仅会添加到 Qt UI 中。
|
||||
|
||||
让我们看下发生了什么变化,以及如何在 Linux 系统上安装最新的 Audacious。
|
||||
|
||||
### Audacious 4.0 关键变化和功能
|
||||
|
||||
![Audacious 4 Release][3]
|
||||
|
||||
当然,主要的变化是默认使用 Qt 5 UI。除此之外,他们的[官方公告][4]中提到了许多改进和功能补充,它们是:
|
||||
|
||||
* 单击播放列表列头可对播放列表进行排序
|
||||
* 拖动播放列表列头会更改列顺序
|
||||
* 应用中的音量和时间步长设置
|
||||
* 隐藏播放列表标签的新选项
|
||||
* 按路径对播放列表排序,现在将文件夹排序在文件后面
|
||||
* 实现了额外的 MPRIS 调用,以与 KDE 5.16+ 兼容
|
||||
* 新的基于 OpenMPT 的跟踪器模块插件
|
||||
* 新的 VU Meter 可视化插件
|
||||
* 添加了使用 SOCKS 网络代理的选项
|
||||
* 换歌插件现在可在 Windows 上使用
|
||||
* 新的“下一张专辑”和“上一张专辑”命令
|
||||
* Qt UI 中的标签编辑器现在可以一次编辑多个文件
|
||||
* 为 Qt UI 实现均衡器预设窗口
|
||||
* 歌词插件获得了在本地保存和加载歌词的能力
|
||||
* 模糊范围和频谱分析器可视化已移植到 Qt
|
||||
* MIDI 插件 “SoundFont 选择”已移植到 Qt
|
||||
* JACK 输出插件获得了一些新选项
|
||||
* 添加了无限循环 PSF 文件的选项
|
||||
|
||||
如果你以前不了解它,你可以轻松安装它,并使用均衡器和 [LADSP][5] 效果器来调整音乐体验。
|
||||
|
||||
![Audacious Winamp Classic Interface][6]
|
||||
|
||||
### 如何在 Ubuntu 上安装 Audacious 4.0
|
||||
|
||||
值得注意的是,[非官方 PPA][7] 是由 [UbuntuHandbook][8] 提供的。你可以按照以下说明在 Ubuntu 16.04、18.04、19.10 和 20.04 上进行安装。
|
||||
|
||||
1、首先,你必须在终端中输入以下命令将 PPA 添加到系统中:
|
||||
|
||||
```
|
||||
sudo add-apt-repository ppa:ubuntuhandbook1/apps
|
||||
```
|
||||
|
||||
2、接下来,你需要从仓库中更新(刷新)软件包信息,然后继续安装该应用。方法如下:
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
sudo apt install audacious audacious-plugins
|
||||
```
|
||||
|
||||
就是这样。你无需执行其他任何操作。无论什么情况,如果你想[删除 PPA 和软件][9],只需按顺序输入以下命令:
|
||||
|
||||
```
|
||||
sudo add-apt-repository --remove ppa:ubuntuhandbook1/apps
|
||||
sudo apt remove --autoremove audacious audacious-plugins
|
||||
```
|
||||
|
||||
你也可以在它的 GitHub 页面上查看有关源码的更多信息,并根据需要在其他 Linux 发行版上进行安装。
|
||||
|
||||
- [Audacious 源代码][10]
|
||||
|
||||
### 总结
|
||||
|
||||
新功能和 Qt 5 UI 开关对于改善用户体验和音频播放器的功能应该是一件好事。如果你是经典 Winamp 界面的粉丝,它也可以正常工作。但缺少其公告中提到的一些功能。
|
||||
|
||||
你可以尝试一下,并在下面的评论中让我知道你的想法!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/audacious-4-release/
|
||||
|
||||
作者:[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://audacious-media-player.org
|
||||
[2]: https://doc.qt.io/qt-5/qt5-intro.html
|
||||
[3]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/audacious-4-release.jpg?ssl=1
|
||||
[4]: https://audacious-media-player.org/news/45-audacious-4-0-released
|
||||
[5]: https://www.ladspa.org/
|
||||
[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/audacious-winamp.jpg?ssl=1
|
||||
[7]: https://itsfoss.com/ppa-guide/
|
||||
[8]: http://ubuntuhandbook.org/index.php/2020/03/audacious-4-0-released-qt5-ui/
|
||||
[9]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/
|
||||
[10]: https://github.com/audacious-media-player/audacious
|
@ -0,0 +1,142 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12239-1.html)
|
||||
[#]: subject: (Tricks for getting around your Linux file system)
|
||||
[#]: via: (https://www.networkworld.com/article/3533421/tricks-for-getting-around-your-linux-file-system.html)
|
||||
[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/)
|
||||
|
||||
在 Linux 文件系统中导航的技巧
|
||||
======
|
||||
|
||||
> cd 命令可能是任何 Linux 用户学习的前 10 个命令之一,但这并不是在 Linux 文件系统中导航的唯一方法,这里还有其他一些方法。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202005/22/114058yrzlx94rz9lbx974.jpg)
|
||||
|
||||
无论你是在文件系统中四处查看、寻找文件还是尝试进入重要目录,Linux 都可以提供很多帮助。在本文中,我们将介绍一些技巧,使你可以在文件系统中移动,查找和使用所需的命令也更加轻松。
|
||||
|
||||
### 添加到 \$PATH
|
||||
|
||||
确保你不必花费大量时间在 Linux 系统上查找命令的最简单、最有用的方法之一就是在 `$PATH` 变量中添加适当的目录。但是,添加到 `$PATH` 变量中的目录顺序非常重要。它们确定系统在目录中查找要运行命令的目录顺序--在找到第一个匹配项时停止。
|
||||
|
||||
例如,你可能希望将家目录放在第一个,这样,如果你创建的脚本与其他可执行文件有相同的名称,那么只要输入该脚本的名称,它便会运行。
|
||||
|
||||
要将家目录添加到 `$PATH` 变量中,可以执行以下操作:
|
||||
|
||||
```
|
||||
$ export PATH=~:$PATH
|
||||
```
|
||||
|
||||
`~` 字符代表家目录。
|
||||
|
||||
如果将脚本保存在 `bin` 目录中,下面的会有效:
|
||||
|
||||
```
|
||||
$ export PATH=~/bin:$PATH
|
||||
```
|
||||
|
||||
然后,你可以运行位于家目录中的脚本,如下所示:
|
||||
|
||||
```
|
||||
$ myscript
|
||||
Good morning, you just ran /home/myacct/bin/myscript
|
||||
```
|
||||
|
||||
**重要提示:**上面显示的命令会添加到你的搜索路径中,因为 `$PATH`(当前路径)被包含在内。它们不会覆盖它。你的搜索路径应该在你的 `.bashrc` 文件中配置,任何你打算永久化的更改也应该添加到那里。
|
||||
|
||||
### 使用符号链接
|
||||
|
||||
符号链接提供了一种简单而明显的方式来记录可能经常需要使用的目录的位置。例如,如果你管理网站的内容,那么可能需要通过创建如下链接来使你的帐户“记住”网页文件的位置:
|
||||
|
||||
```
|
||||
ln -s /var/www/html www
|
||||
```
|
||||
|
||||
参数的顺序很重要。第一个(`/var/www/html`)是目标,第二个是你创建的链接的名称。如果你当前不在家目录中,那么以下命令将执行相同的操作:
|
||||
|
||||
```
|
||||
ln -s /var/www/html ~/www
|
||||
```
|
||||
|
||||
设置好之后,你可以使用 `cd www` 进入 `/var/www/html`。
|
||||
|
||||
### 使用 shopt
|
||||
|
||||
`shopt` 命令还提供了一种让移动到其他目录更加容易的方法。当你使用 `shopt` 的 `autocd` 选项时,只需输入名称即可转到目录。例如:
|
||||
|
||||
```
|
||||
$ shopt -s autocd
|
||||
$ www
|
||||
cd -- www
|
||||
/home/myacct/www
|
||||
$ pwd -P
|
||||
/var/www/html
|
||||
|
||||
$ ~/bin
|
||||
cd -- /home/myacct/bin
|
||||
$ pwd
|
||||
/home/myacct/bin
|
||||
```
|
||||
|
||||
在上面的第一组命令中,启用了 `shopt` 命令的 `autocd` 选项。输入 `www`,就会调用 `cd www` 命令。由于此符号链接是在上面的 `ln` 命令示例之一中创建的,因此将我们移至 `/var/www/html`。 `pwd -P` 命令显示实际位置。
|
||||
|
||||
在第二组中,键入 `~/bin` 会调用 `cd` 进入在用户家目录的 `bin` 目录。
|
||||
|
||||
请注意,当你输入的是命令时,`autocd` 行为将*不会*生效,即使它也是目录的名称。
|
||||
|
||||
`shopt` 是 bash 内置命令,它有很多选项。这只是意味着你不必在要进入每个目录的名称之前输入 `cd`。
|
||||
|
||||
要查看 `shopt` 的其他选项,只需输入 `shopt`。
|
||||
|
||||
### 使用 \$CDPATH
|
||||
|
||||
可能进入特定目录的最有用技巧之一,就是将你希望能够轻松进入的路径添加到 `$CDPATH` 中。这将创建一个目录列表,只需输入完整路径名的一部分即可进入。
|
||||
|
||||
一方面,这可能有点棘手。你的 `$CDPATH` 需要包含要移动到的目录的父目录,而不是目录本身。
|
||||
|
||||
例如,假设你希望仅通过输入 `cd html` 就可以移至 `/var/www/html` 目录,并仅使用 `cd` 和简单目录名即可移至 `/var/log` 中的子目录。在这种情况下,此 `$CDPATH` 就可以起作用:
|
||||
|
||||
```
|
||||
$ CDPATH=.:/var/log:/var/www
|
||||
```
|
||||
|
||||
你将看到:
|
||||
|
||||
```
|
||||
$ cd journal
|
||||
/var/log/journal
|
||||
$ cd html
|
||||
/var/www/html
|
||||
```
|
||||
|
||||
当你输入的不是完整路径时,`$CDPATH` 就会生效。它向下查看其目录列表,以查看指定的目录是否存在于其中一个目录中。找到匹配项后,它将带你到那里。
|
||||
|
||||
在 `$CDPATH` 开头保持 `.` 意味着你可以进入本地目录,而不必在 `$CDPATH` 中定义它们。
|
||||
|
||||
```
|
||||
$ export CDPATH=".:$CDPATH"
|
||||
$ Videos
|
||||
cd -- Videos
|
||||
/home/myacct/Videos
|
||||
```
|
||||
|
||||
在 Linux 文件系统键切换并不难,但是如果你使用一些方便的技巧轻松地到达各个位置,那你可以节省一些大脑细胞。
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3533421/tricks-for-getting-around-your-linux-file-system.html
|
||||
|
||||
作者:[Sandra Henry-Stocker][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://www.networkworld.com/author/Sandra-Henry_Stocker/
|
||||
[b]: https://github.com/lujun9972
|
||||
[2]: https://www.networkworld.com/blog/itaas-and-the-corporate-storage-technology/?utm_source=IDG&utm_medium=promotions&utm_campaign=HPE22140&utm_content=sidebar (ITAAS and Corporate Storage Strategy)
|
||||
[3]: https://www.facebook.com/NetworkWorld/
|
||||
[4]: https://www.linkedin.com/company/network-world
|
@ -0,0 +1,96 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12171-1.html)
|
||||
[#]: subject: (Rambox is an All-in-one Messenger for Linux)
|
||||
[#]: via: (https://itsfoss.com/rambox/)
|
||||
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
|
||||
|
||||
Rambox:Linux 中多合一的消息收发工具
|
||||
======
|
||||
|
||||
> Rambox 是一个多合一消息收发工具,允许你将多种服务(如 Discord、Slack、Facebook Messenger)和数百个此类服务结合在一起。
|
||||
|
||||
### Rambox:在单个应用中添加多个消息服务
|
||||
|
||||
![][1]
|
||||
|
||||
Rambox 是通过安装单个应用管理多个通信服务的最佳方式之一。你可以在一个界面使用[多个消息服务][2],如 Facebook Messenger、Gmail chats、AOL、Discord、Google Duo、[Viber][3] 等。
|
||||
|
||||
这样,你就不需要安装单独的应用或者在浏览器中一直打开着。你可以使用主密码锁定 Rambox 应用。你还可以使用“请勿打扰”功能。
|
||||
|
||||
Rambox 提供可免费使用的[开源社区版][4]。付费专业版允许你访问 600 多个应用,而社区版则包含 99 多个应用。专业版本具有额外的功能,如主题、休眠、ad-block、拼写检查和高级支持。
|
||||
|
||||
不用担心。开源社区版本身非常有用,你甚至不需要这些专业功能。
|
||||
|
||||
### Rambox 的功能
|
||||
|
||||
![][5]
|
||||
|
||||
虽然你应该在开源版中找到大多数基本功能,但你可能会注意到其中一些功能仅限于专业版。
|
||||
|
||||
此处,我说下所有的基本功能:
|
||||
|
||||
* 在开源版本中,你有大约 100 个应用/服务可供选择
|
||||
* 能够使用单个主密码锁保护应用
|
||||
* 能够锁定加载的每个会话
|
||||
* 请勿打扰模式
|
||||
* 能够跨多个设备同步应用和配置
|
||||
* 你可以创建和添加自定义应用
|
||||
* 支持键盘快捷键
|
||||
* 启用/禁用应用而无需删除它们
|
||||
* JS 和 CSS 注入支持,以调整应用的样式
|
||||
* Ad-block (**专业版**)
|
||||
* 休眠支持 (**专业版**)
|
||||
* 主题支持(**专业版**)
|
||||
* 移动设备视图 (**专业版**)
|
||||
* 拼写检查 (**专业版**)
|
||||
* 工作时间 - 计划传入通知的时间 (**专业版**)
|
||||
* 支持代理 (**专业版**)
|
||||
|
||||
除了我在这里列出的内容外,你还可以在 Rambox Pro 版本中找到更多功能。要了解有关它的更多信息,你可以参考[正式功能列表][6]。
|
||||
|
||||
还值得注意的是,你不能超过 3 个活跃并发设备的连接。
|
||||
|
||||
### 在 Linux 上安装 Rambox
|
||||
|
||||
你可以在[官方下载页][4]获取 .AppImage 文件来运行 Rambox。如果你不清楚,你可以参考我们的指南,了解如何[在 Linux 上使用 AppImage 文件][7]。
|
||||
|
||||
另外,你也可以从 [Snap 商店][8]获取它。此外,请查看其 [GitHub release][9] 部分的 .deb / .rpm 或其他包。
|
||||
|
||||
- [下载 Rambox 社区版][4]
|
||||
|
||||
### 总结
|
||||
|
||||
使用 Rambox 安装大量应用可能会有点让人不知所措。因此,我建议你在添加更多应用并将其用于工作时监视内存使用情况。
|
||||
|
||||
还有一个类似的应用称为 [Franz][10],它也像 Rambox 部分开源、部分高级版。
|
||||
|
||||
尽管像 Rambox 或 Franz 这样的解决方案非常有用,但它们并不总是节约资源,特别是如果你同时使用数十个服务。因此,请留意系统资源(如果你注意到对性能的影响)。
|
||||
|
||||
除此之外,这是一个令人印象深刻的应用。你有试过了么?欢迎随时让我知道你的想法!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/rambox/
|
||||
|
||||
作者:[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://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/rambox-ce.jpg?ssl=1
|
||||
[2]: https://itsfoss.com/best-messaging-apps-linux/
|
||||
[3]: https://itsfoss.com/viber-linux-client-beta-install/
|
||||
[4]: https://rambox.pro/#ce
|
||||
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/rambox-preferences.png?ssl=1
|
||||
[6]: https://rambox.pro/#features
|
||||
[7]: https://itsfoss.com/use-appimage-linux/
|
||||
[8]: https://snapcraft.io/rambox
|
||||
[9]: https://github.com/ramboxapp/community-edition/releases
|
||||
[10]: https://itsfoss.com/franz-messaging-app/
|
@ -0,0 +1,177 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12252-1.html)
|
||||
[#]: subject: (3 Python templating languages you should (probably) never use)
|
||||
[#]: via: (https://opensource.com/article/20/4/python-templating-languages)
|
||||
[#]: author: (Moshe Zadka https://opensource.com/users/moshez)
|
||||
|
||||
你应该(或许)没使用过的 3 种 Python 模板语言
|
||||
======
|
||||
|
||||
> 包括这 3 个模板语言在内,Python 积累了许多模板语言。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202005/26/110220lxie9osmd592m5ee.jpg)
|
||||
|
||||
当需要使用模板语言来编写 [Python][2] Web 应用时,有很多健壮的解决方案。
|
||||
|
||||
有 [Jinja2][3]、[Genshi 和 Mako][4]。甚至还有 [Chameleon][5] 之类的解决方案,虽然有些陈旧,但仍被 [Pyramid][6] 框架推荐。
|
||||
|
||||
Python 已经存在了很长时间。此时,在系统的深处,它积累了一些几乎被遗忘的模板语言,它们都是值得一试的。
|
||||
|
||||
这些语言就像桉树上可爱的考拉一样,在自己的生态圈里快乐地生活着,有时也会有危险的工作,这些都是很少有人听说过的模板语言,使用过的应该更少。
|
||||
|
||||
### 3、string.Template
|
||||
|
||||
你是否曾经想过:“如何获得一种没有任何特性的模板语言,而且同时也不需要 `pip install` 安装任何东西?” Python 标准库已经为你提供了答案。虽然没有循环和条件,但 `string.Template` 类是一种最小的模板语言。
|
||||
|
||||
使用它很简单。
|
||||
|
||||
```
|
||||
>>> import string
|
||||
>>> greeting = string.Template("Hello, $name, good $time!")
|
||||
>>> greeting.substitute(name="OpenSource.com", time="afternoon")
|
||||
'Hello, OpenSource.com, good afternoon!'
|
||||
```
|
||||
|
||||
### 2、twisted.web.template
|
||||
|
||||
你会给一个包罗万象的库送什么礼物?
|
||||
|
||||
当然,不是模板语言,因为它已经有了。twisted.web.template 中嵌套了两种模板语言。一种是基于 XML 的,并有一个[很棒的文档][7]。
|
||||
|
||||
但是它还有另一种,一种基于使用 Python 作为领域特定语言(DSL)来生成 HTML 文档。
|
||||
|
||||
它基于两个原语:包含标签对象的 `twisted.web.template.tags` 和渲染它们的 `twisted.web.template.flattenString`。由于它是 Twisted 的一部分,因此它内置支持高效异步渲染。
|
||||
|
||||
此例将渲染一个小页面:
|
||||
|
||||
```
|
||||
async def render(reactor):
|
||||
my_title = "A Fun page"
|
||||
things = ["one", "two", "red", "blue"]
|
||||
template = tags.html(
|
||||
tags.head(
|
||||
tags.title(my_title),
|
||||
),
|
||||
tags.body(
|
||||
tags.h1(my_title),
|
||||
tags.ul(
|
||||
[tags.li(thing) for thing in things],
|
||||
),
|
||||
tags.p(
|
||||
task.deferLater(reactor, 3, lambda: "Hello "),
|
||||
task.deferLater(reactor, 3, lambda: "world!"),
|
||||
)
|
||||
)
|
||||
)
|
||||
res = await flattenString(None, template)
|
||||
res = res.decode('utf-8')
|
||||
with open("hello.html", 'w') as fpout:
|
||||
fpout.write(res)
|
||||
```
|
||||
|
||||
该模板是使用 `tags.<TAGNAME>` 来指示层次结构的常规 Python 代码。原生支持渲染字符串,因此任何字符串都正常。
|
||||
|
||||
要渲染它,你需要做的是添加调用:
|
||||
|
||||
```
|
||||
from twisted.internet import task, defer
|
||||
from twisted.web.template import tags, flattenString
|
||||
|
||||
def main(reactor):
|
||||
return defer.ensureDeferred(render(reactor))
|
||||
```
|
||||
|
||||
最后写上:
|
||||
|
||||
|
||||
```
|
||||
task.react(main)
|
||||
```
|
||||
|
||||
只需 3 秒(而不是 6 秒),它将渲染一个不错的 HTML 页面。在实际中,这些 `deferLater` 可以是对 HTTP API 的调用:它们将并行发送和处理,而无需付出任何努力。我建议你阅读关于[更好地使用 Twisted][8]。不过,这已经可以工作了。
|
||||
|
||||
### 1、Quixote
|
||||
|
||||
你会说:“但是 Python 并不是针对 HTML 领域而优化的领域特定语言。” 如果有一种语言可以[转化][9]到 Python,但是更适合定义模板,而不是像 Python 那样按原样解决呢?如果可以的话,请使用“Python 模板语言”(PTL)。
|
||||
|
||||
编写自己的语言,有时被说成是一个攻击假想敌人的唐吉坷德项目。当 Quixote(可在 [PyPI][10] 中找到)的创造者决定这样做时,并没有受此影响。
|
||||
|
||||
以下将渲染与上面 Twisted 相同的模板。*警告:以下不是有效的 Python 代码*:
|
||||
|
||||
```
|
||||
import time
|
||||
|
||||
def render [html] ():
|
||||
my_title = "A Fun page"
|
||||
things = ["one", "two", "red", "blue"]
|
||||
"<html><head><title>"
|
||||
my_title
|
||||
"</head></title><body><h1>"
|
||||
my_title
|
||||
"</h1>"
|
||||
"<ul>"
|
||||
for thing in things:
|
||||
"<li>"
|
||||
thing
|
||||
"</li>"
|
||||
"<p>"
|
||||
time.sleep(3)
|
||||
(lambda: "Hello ")()
|
||||
time.sleep(3)
|
||||
(lambda: "world!")()
|
||||
"</p>"
|
||||
"</body></html>"
|
||||
|
||||
def write():
|
||||
result = render()
|
||||
with open("hello.html", 'w') as fpout:
|
||||
fpout.write(str(result))
|
||||
```
|
||||
|
||||
但是,如果将它放到 `template.ptl` 文件中,那么可以将其导入到 Quixote 中,并写出可以渲染模板的版本:
|
||||
|
||||
|
||||
```
|
||||
>>> from quixote import enable_ptl
|
||||
>>> enable_ptl()
|
||||
>>> import template
|
||||
>>> template.write()
|
||||
```
|
||||
|
||||
Quixote 安装了一个导入钩子,它会将 PTL 文件转换为 Python。请注意,此渲染需要 6 秒,而不是 3 秒。你不再获得自由的异步性。
|
||||
|
||||
### Python 中的模板太多
|
||||
|
||||
Python 库的历史悠久且曲折,其中一些库可以或多或少都能达到类似结果(例如,Python [包管理][11])。
|
||||
|
||||
我希望你喜欢探索这三种*可以*用 Python 创建模板的方式。另外,我建议从[这三个库之一][4]开始了解。
|
||||
|
||||
你是否有另一种深奥的模板方法?请在下面的评论中分享!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/4/python-templating-languages
|
||||
|
||||
作者:[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/python-programming-code-keyboard.png?itok=fxiSpmnd (Hands on a keyboard with a Python book )
|
||||
[2]: https://opensource.com/resources/python
|
||||
[3]: https://opensource.com/article/20/2/jinja2-cheat-sheet
|
||||
[4]: https://opensource.com/resources/python/template-libraries
|
||||
[5]: https://chameleon.readthedocs.io/en/latest/
|
||||
[6]: https://opensource.com/article/18/5/pyramid-framework
|
||||
[7]: https://twistedmatrix.com/documents/13.1.0/web/howto/twisted-templates.html
|
||||
[8]: https://opensource.com/article/20/3/treq-python
|
||||
[9]: https://en.wikipedia.org/wiki/Source-to-source_compiler
|
||||
[10]: https://pypi.org/project/Quixote/
|
||||
[11]: https://opensource.com/article/19/4/managing-python-packages
|
@ -0,0 +1,96 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (messon007)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12202-1.html)
|
||||
[#]: subject: (The ins and outs of high-performance computing as a service)
|
||||
[#]: via: (https://www.networkworld.com/article/3534725/the-ins-and-outs-of-high-performance-computing-as-a-service.html)
|
||||
[#]: author: (Josh Fruhlinger https://www.networkworld.com/author/Josh-Fruhlinger/)
|
||||
|
||||
超算即服务:超级计算机如何上云
|
||||
======
|
||||
|
||||
> 高性能计算(HPC)服务可能是一种满足不断增长的超级计算需求的方式,但依赖于使用场景,它们不一定比使用本地超级计算机好。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202005/09/223805mrjfjzecr3hceais.jpg)
|
||||
|
||||
导弹和军用直升机上的电子设备需要工作在极端条件下。美国国防承包商<ruby>麦考密克·史蒂文森公司<rt>McCormick Stevenson Corp.</rt></ruby>在部署任何物理设备之前都会事先模拟它所能承受的真实条件。模拟依赖于像 Ansys 这样的有限元素分析软件,该软件需要强大的算力。
|
||||
|
||||
几年前的一天,它出乎意料地超出了计算极限。
|
||||
|
||||
麦考密克·史蒂文森公司的首席工程师 Mike Krawczyk 说:“我们的一些工作会使办公室的计算机不堪重负。购买机器并安装软件在经济上或计划上都不划算。”相反,他们与 Rescale 签约,该公司销售其超级计算机系统上的处理能力,而这只花费了他们购买新硬件上所需的一小部分。
|
||||
|
||||
麦考密克·史蒂文森公司已成为被称为超级计算即服务或高性能计算即服务(两个紧密相关的术语)市场的早期采用者之一。根据国家计算科学研究所的定义,HPC 是超级计算机在计算复杂问题上的应用,而超级计算机是处理能力最先进的那些计算机。
|
||||
|
||||
无论叫它什么,这些服务都在颠覆传统的超级计算市场,并将 HPC 能力带给以前负担不起的客户。但这不是万能的,而且绝对不是即插即用的,至少现在还不是。
|
||||
|
||||
### HPC 服务实践
|
||||
|
||||
从最终用户的角度来看,HPC 即服务类似于早期大型机时代的批处理模型。 “我们创建一个 Ansys 批处理文件并将其发送过去,运行它,然后将结果文件取下来,然后导入到本地,” Krawczyk 说。
|
||||
|
||||
在 HPC 服务背后,云提供商在其自己的数据中心中运行超级计算基础设施,尽管这不一定意味着当你听到“超级计算机”时你就会看到最先进的硬件。正如 IBM OpenPOWER 计算技术副总裁 Dave Turek 解释的那样,HPC 服务的核心是“相互互连的服务器集合。你可以调用该虚拟计算基础设施,它能够在你提出问题时,使得许多不同的服务器并行工作来解决问题。”
|
||||
|
||||
理论听起来很简单。但都柏林城市大学数字商业教授 Theo Lynn 表示,要使其在实践中可行,需要解决一些技术问题。普通计算与 HPC 的区别在于那些互联互通 —— 高速的、低延时的而且昂贵的 —— 因此需要将这些互连引入云基础设施领域。在 HPC 服务可行之前,至少需要将存储性能和数据传输也提升到与本地 HPC 相同的水平。
|
||||
|
||||
但是 Lynn 说,一些制度创新相比技术更好的帮助了 HPC 服务的起飞。特别是,“我们现在看到越来越多的传统 HPC 应用采用云友好的许可模式 —— 这在过去是阻碍采用的障碍。”
|
||||
|
||||
他说,经济也改变了潜在的客户群。“云服务提供商通过向那些负担不起传统 HPC 所需的投资成本的低端 HPC 买家开放,进一步开放了市场。随着市场的开放,超大规模经济模型变得越来越多,更可行,成本开始下降。”
|
||||
|
||||
### 避免本地资本支出
|
||||
|
||||
HPC 服务对传统超级计算长期以来一直占据主导地位的私营部门客户具有吸引力。这些客户包括严重依赖复杂数学模型的行业,包括麦考密克·史蒂文森公司等国防承包商,以及石油和天然气公司、金融服务公司和生物技术公司。都柏林城市大学的 Lynn 补充说,松耦合的工作负载是一个特别好的用例,这意味着许多早期采用者将其用于 3D 图像渲染和相关应用。
|
||||
|
||||
但是,何时考虑 HPC 服务而不是本地 HPC 才有意义?对于德国的模拟烟雾在建筑物中的蔓延和火灾对建筑物结构部件的破坏的 hhpberlin 公司来说,答案是在它超出了其现有资源时。
|
||||
|
||||
Hpberlin 公司数值模拟的科学负责人 Susanne Kilian 说:“几年来,我们一直在运行自己的小型集群,该集群具有多达 80 个处理器核。……但是,随着应用复杂性的提高,这种架构已经越来越不足以支撑;可用容量并不总是够快速地处理项目。”
|
||||
|
||||
她说:“但是,仅仅花钱买一个新的集群并不是一个理想的解决方案:鉴于我们公司的规模和管理环境,不断地维护这个集群(定期进行软件和硬件升级)是不现实的。另外,需要模拟的项目数量会出现很大的波动,因此集群的利用率并不是真正可预测的。通常,使用率很高的阶段与很少使用或不使用的阶段交替出现。”通过转换为 HPC 服务模式,hhpberlin 释放了过剩的产能,并无需支付升级费用。
|
||||
|
||||
IBM 的 Turek 解释了不同公司在评估其需求时所经历的计算过程。对于拥有 30 名员工的生物科学初创公司来说,“你需要计算,但你真的不可能让 15% 的员工专门负责计算。这就像你可能也会说你不希望有专职的法律代表,所以你也会把它作为一项服务来做。”不过,对于一家较大的公司而言,最终归结为权衡 HPC 服务的运营费用与购买内部超级计算机或 HPC 集群的费用。
|
||||
|
||||
到目前为止,这些都是你采用任何云服务时都会遇到的类似的争论。但是,可以 HPC 市场的某些特殊性将使得衡量运营支出(OPEX)与资本支出(CAPEX)时选择前者。超级计算机不是诸如存储或 x86 服务器之类的商用硬件;它们非常昂贵,技术进步很快会使其过时。正如麦考密克·史蒂文森公司的 Krawczyk 所说,“这就像买车:只要车一开走,它就会开始贬值。”对于许多公司,尤其是规模较大,灵活性较差的公司,购买超级计算机的过程可能会陷入无望的泥潭。IBM 的 Turek 说:“你会被规划问题、建筑问题、施工问题、培训问题所困扰,然后必须执行 RFP。你必须得到 CIO 的支持。你必须与内部客户合作以确保服务的连续性。这是一个非常、非常复杂的过程,并没有很多机构有非常出色的执行力。”
|
||||
|
||||
一旦你选择走 HPC 服务的路线,你会发现你会得到你期望从云服务中得到的许多好处,特别是仅在业务需要时才需付费的能力,从而可以带来资源的高效利用。Gartner 高级总监兼分析师 Chirag Dekate 表示,当你对高性能计算有短期需求时,突发性负载是推动选择 HPC 服务的关键用例。
|
||||
|
||||
他说:“在制造业中,在产品设计阶段前后,HPC 活动往往会达到很高的峰值。但是,一旦产品设计完成,在其余产品开发周期中,HPC 资源的利用率就会降低。” 相比之下,他说:“当你拥有大型的、长期运行的工作时,云计算的经济性才会逐渐减弱。”
|
||||
|
||||
通过巧妙的系统设计,你可以将这些 HPC 服务突发活动与你自己的内部常规计算集成在一起。<ruby>埃森哲<rt>Accenture</rt></ruby>实验室常务董事 Teresa Tung 举了一个例子:“通过 API 访问 HPC 可以与传统计算无缝融合。在模型构建阶段,传统的 AI 流水线可能会在高端超级计算机上进行训练,但是最终经过反复按预期运行的训练好的模型将部署在云端的其他服务上,甚至部署在边缘设备上。”
|
||||
|
||||
### 它并不适合所有的应用场景
|
||||
|
||||
HPC 服务适合批处理和松耦合的场景。这与一个常见的 HPC 缺点有关:数据传输问题。高性能计算本身通常涉及庞大的数据集,而将所有这些信息通过互联网发送到云服务提供商并不容易。IBM 的 Turek 说:“我们与生物技术行业的客户交流,他们每月仅在数据费用上就花费 1000 万美元。”
|
||||
|
||||
而钱并不是唯一的潜在问题。构建一个利用数据的工作流程,可能会对你的工作流程提出挑战,让你绕过数据传输所需的漫长时间。hhpberlin 的 Kilian 说:“当我们拥有自己的 HPC 集群时,当然可以随时访问已经产生的仿真结果,从而进行交互式的临时评估。我们目前正努力达到在仿真的任意时刻都可以更高效地、交互地访问和评估云端生成的数据,而无需下载大量的模拟数据。”
|
||||
|
||||
Mike Krawczyk 提到了另一个绊脚石:合规性问题。国防承包商使用的任何服务都需要遵从《国际武器交易条例》(ITAR),麦考密克·史蒂文森公司之所以选择 Rescale,部分原因是因为这是他们发现的唯一符合的供应商。如今,尽管有更多的公司使用云服务,但任何希望使用云服务的公司都应该意识到使用其他人的基础设施时所涉及的法律和数据保护问题,而且许多 HPC 场景的敏感性使得 HPC 即服务的这个问题更加突出。
|
||||
|
||||
此外,HPC 服务所需的 IT 治理超出了目前的监管范围。例如,你需要跟踪你的软件许可证是否允许云使用 —— 尤其是专门为本地 HPC 群集上运行而编写的软件包。通常,你需要跟踪 HPC 服务的使用方式,它可能是一个诱人的资源,尤其是当你从员工习惯的内部系统过渡到有可用的空闲的 HPC 能力时。例如,Avanade 全球平台高级主管兼 Azure 平台服务全球负责人 Ron Gilpin 建议,将你使用的处理核心的数量回拨给那些对时间不敏感的任务。他说:“如果一项工作只需要用一小时来完成而不需要在十分钟内就完成,那么它可以使用 165 个处理器而不是 1,000 个,从而节省了数千美元。”
|
||||
|
||||
### 对 HPC 技能的要求很高
|
||||
|
||||
一直以来,采用 HPC 的最大障碍之一就是其所需的独特的内部技能,而 HPC 服务并不能神奇使这种障碍消失。Gartner 的 Dekate 表示:“许多 CIO 将许多工作负载迁移到了云上,他们看到了成本的节约、敏捷性和效率的提升,因此相信在 HPC 生态中也可以达成类似的效果。一个普遍的误解是,他们可以通过彻底地免去系统管理员,并聘用能解决其 HPC 工作负载的新的云专家,从而以某种方式优化人力成本。”对于 HPC 即服务来说更是如此。
|
||||
|
||||
“但是 HPC 并不是一个主流的企业环境。” 他说。“你正在处理通过高带宽、低延迟的网络互联的高端计算节点,以及相当复杂的应用和中间件技术栈。许多情况下,甚至连文件系统层也是 HPC 环境所独有的。没有对应的技能可能会破坏稳定性。”
|
||||
|
||||
但是超级计算技能的供给却在减少,Dekate 将其称为劳动力“老龄化”,这是因为这一代开发人员将目光投向了新兴的初创公司,而不是学术界或使用 HPC 的更老套的公司。因此,HPC 服务供应商正在尽其所能地弥补差距。IBM 的 Turek 表示,许多 HPC 老手将总是想运行他们自己精心调整过的代码,并需要专门的调试器和其他工具来帮助他们在云端实现这一目标。但是,即使是 HPC 新手也可以调用供应商构建的代码库,以利用超级计算的并行处理能力。第三方软件提供商出售的交钥匙软件包可以减少 HPC 的许多复杂性。
|
||||
|
||||
埃森哲的 Tung 表示,该行业需要进一步加大投入才能真正繁荣。她说:“HPCaaS 已经创建了具有重大影响力的新功能,但还需要做的是使它易于被数据科学家、企业架构师或软件开发人员使用。这包括易用的 API、文档和示例代码。它包括解答问题的用户支持。仅仅提供 API 是不够的,API 需要适合特定的用途。对于数据科学家而言,这可能是以 Python 形式提供,并容易更换她已经在使用的框架。价值来自于使这些用户能够通过新的效率和性能最终使他们的工作得到改善,只要他们能够访问新的功能就可以了。” 如果供应商能够做到这一点,那么 HPC 服务才能真正将超级计算带给大众。
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.networkworld.com/article/3534725/the-ins-and-outs-of-high-performance-computing-as-a-service.html
|
||||
|
||||
作者:[Josh Fruhlinger][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[messon007](https://github.com/messon007)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.networkworld.com/author/Josh-Fruhlinger/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://www.networkworld.com/article/3236875/embargo-10-of-the-worlds-fastest-supercomputers.html
|
||||
[2]: https://www.networkworld.com/blog/itaas-and-the-corporate-storage-technology/?utm_source=IDG&utm_medium=promotions&utm_campaign=HPE22140&utm_content=sidebar (ITAAS and Corporate Storage Strategy)
|
||||
[3]: https://www.facebook.com/NetworkWorld/
|
||||
[4]: https://www.linkedin.com/company/network-world
|
@ -0,0 +1,353 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (lxbwolf)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12219-1.html)
|
||||
[#]: subject: (Best Raspberry Pi Operating Systems for Various Purposes)
|
||||
[#]: via: (https://itsfoss.com/raspberry-pi-os/)
|
||||
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
|
||||
|
||||
用于各种用途的最佳树莓派操作系统
|
||||
======
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202005/15/105040b17d6v7gdmj63k3k.jpg)
|
||||
|
||||
[树莓派][1] 是一款不可缺少的单板电脑,在很多工作中都能派上用场。不相信?只要[看看这个树莓派项目列表][2],就能了解这个小小的设备能做什么。
|
||||
|
||||
考虑到树莓派用途这么多,为它选择一个合适的操作系统就极其重要。当然,你可以用 Linux 做很多事,但专门为特定目的配置的操作系统可以为你节省大量的时间和精力。
|
||||
|
||||
因此,本文中我要介绍一些专门为树莓派量身定制的流行且实用的操作系统。
|
||||
|
||||
### 由于有树莓派镜像工具,安装任何操作系统到树莓派上都很容易
|
||||
|
||||
[在 SD 卡上安装树莓派操作系统][3]比以前容易得多。你只需下载[树莓派镜像][4]就可以快速地安装任何树莓派操作系统。请看下面的官方视频,你就知道有多简单。
|
||||
|
||||
- [HOW TO INSTALL RASPBIAN OS to your Raspberry Pi with ease - Raspberry Pi Imager](https://youtu.be/J024soVgEeM)
|
||||
|
||||
你也可以使用 [NOOBS][5](<ruby>新开箱即用软件<rt>New Out Of the Box Software</rt></ruby>)在树莓派上轻松安装各种的操作系统。你还可以从他们的 [NOOBS 官方下载页面][5]提到的支持的零售商列表中获得预装 SD 卡。
|
||||
|
||||
欢迎在他们的[官方文档][6]中了解更多关于安装操作系统的信息。
|
||||
|
||||
- [下载树莓派操作系统][4]
|
||||
|
||||
现在你知道了怎么安装它(以及从哪儿获取),让我来重点介绍几个有用的树莓派操作系统,希望对你有所帮助。
|
||||
|
||||
### 适用于树莓派的各种操作系统
|
||||
|
||||
请注意,我花了一些精力筛选出了那些被积极维护的树莓派操作系统项目。如果某个项目在不久的将来会停止维护,请在评论区告诉我,我会更新本文。
|
||||
|
||||
另一件事是,我关注到现在最新的版本是树莓派 4,但是下面的列表不应被认为是树莓派 4 的操作系统列表,这些系统应该也能用于树莓派 3、3B+ 和其他变种,但是请参照项目的官方网站了解详细信息。
|
||||
|
||||
**注意:** 排名不分先后。
|
||||
|
||||
#### 1、Raspbian OS:官方的树莓派操作系统
|
||||
|
||||
![][7]
|
||||
|
||||
Raspbian OS 是官方支持的树莓派板卡操作系统。它集成了很多工具,用于教育、编程以及其他广泛的用途。具体来说,它包含了 Python、Scratch、Sonic Pi、Java 和其他一些重要的包。
|
||||
|
||||
最初,Raspbian OS 是基于 Debian 的,并预装了大量有用的包。因此,当你安装 Raspbian OS 后,你可能就不需要特意安装基本工具了 — 你会发现大部分工具已经提前安装好了。
|
||||
|
||||
Raspbian OS 是被积极地维护着的,它也是最流行的树莓派操作系统之一。你可以使用 [NOOBS][5] 或参照[官方文档][6]来安装它。
|
||||
|
||||
- [Raspbian OS][8]
|
||||
|
||||
#### 2、Ubuntu MATE:适合通用计算需求
|
||||
|
||||
![][9]
|
||||
|
||||
尽管 Raspbian 是官方支持的操作系统,但它的特点不是最新、最大的软件包。因此,如果你想更快的更新,想用最新的包,你可以试试 Ubuntu MATE 的树莓派版本。
|
||||
|
||||
Ubuntu MATE 的树莓派定制版是值得安装的非常不错的轻量级发行版。它还被广泛用于 [NVIDIA 的 Jetson Nano][10]。换言之,你可以在树莓派的很多场景下使用它。
|
||||
|
||||
为了更好地帮助你,我们还有一份详细的教程:[怎样在树莓派上安装 Ubuntu MATE][11]。
|
||||
|
||||
- [Ubuntu MATE for Raspberry Pi][12]
|
||||
|
||||
#### 3、Ubuntu Server:把树莓派作为一台 Linux 服务器来使用
|
||||
|
||||
![][13]
|
||||
|
||||
如果你计划把你的树莓派当作项目的某个服务器来使用,那么安装 Ubuntu Server 会是一个不错的选择。
|
||||
|
||||
Ubuntu Server 有 32 位和 64 位的镜像。你可以根据你的板卡类型(是否支持 64 位)来选择对应的操作系统。
|
||||
|
||||
然而,值得注意的一点是 Ubuntu Server 不是为桌面用户定制的。因此,你需要留意 Ubuntu Server 默认不会安装图形用户界面。
|
||||
|
||||
- [Ubuntu Server][14]
|
||||
|
||||
#### 4、LibreELEC:适合做媒体服务器
|
||||
|
||||
![][15]
|
||||
|
||||
我们已经有一个 [Linux 下可用的媒体服务器软件][16],LibreELEC 在列表中。
|
||||
|
||||
它是一个很棒的轻量级操作系统,让你可以在树莓派上安装 [KODI][17]。你可以尝试使用树莓派镜像工具来安装它。
|
||||
|
||||
你可以很容易地找到他们的[官方下载页面][18],并找到适合你板卡的安装镜像。
|
||||
|
||||
- [LibreELEC][19]
|
||||
|
||||
#### 5、OSMC:适合做媒体服务器
|
||||
|
||||
![][20]
|
||||
|
||||
OSMC 是另一个 Linux 下[流行的媒体服务器软件][16]。如果要把树莓派板作为媒体中心设备,那么 OSMC 是你可以向他人推荐的操作系统之一。
|
||||
|
||||
类似 LibreELEC,OSMC 也运行 KODI,可以帮助你管理你的媒体文件和欣赏你已有的素材。
|
||||
|
||||
OSMC 没有正式提及对树莓派 4 的支持。因此,如果你的树莓派是树莓派 3 或更早的版本,那么应该没有问题。
|
||||
|
||||
- [OSMC][21]
|
||||
|
||||
#### 6、RISC OS:最初的 ARM 操作系统
|
||||
|
||||
![][22]
|
||||
|
||||
RISC OS 最初是为 ARM 设备打造的,至今已有近 30 年左右的历史。
|
||||
|
||||
如果你想了解,我们也有篇详细介绍 [RISC OS][23] 的文章。简而言之,RISC OS 也是为诸如树莓派的现代基于 ARM 的单板计算机定制的。它的用户界面很简单,更专注于性能。
|
||||
|
||||
同样的,这并不是为树莓派 4 量身定做的。因此,如果你的树莓派是 3 或更早的版本,你可以试一下。
|
||||
|
||||
- [RISC OS][24]
|
||||
|
||||
#### 7、Mozilla WebThings Gateway:适合 IoT 项目
|
||||
|
||||
![][25]
|
||||
|
||||
作为 Mozilla 的 [IoT 设备的开源实现][26]的一部分,WebThings Gateway 让你可以监控和控制所有连接的 IoT 设备。
|
||||
|
||||
你可以参考[官方文档][27]来检查所需的环境,遵照指导把安装到树莓派上。它确实是适合 IoT 应用的最有用的树莓派操作系统之一。
|
||||
|
||||
- [WebThings Gateway][28]
|
||||
|
||||
#### 8、Ubuntu Core:适合 IoT 项目
|
||||
|
||||
Ubuntu Core 是又一个树莓派操作系统,适用于潜在的 [IoT][29] 应用,或者只是测试一下 Snap。
|
||||
|
||||
Ubuntu Core 是专门为 IoT 设备或者具体来说是树莓派定制的。我不会刻意宣传它 —— 但是 Ubuntu Core 是一款适合树莓派板卡的安全操作系统。你可以自己尝试一下!
|
||||
|
||||
- [Ubuntu Core][30]
|
||||
|
||||
#### 9、DietPi:轻量级树莓派操作系统
|
||||
|
||||
![][31]
|
||||
|
||||
DietPi 是一款轻量级的 [Debian][32] 操作系统,它还宣称比 “Raspbian Lite” 操作系统更轻量。
|
||||
|
||||
虽然它被视作一款轻量级的树莓派操作系统,但它提供了很多功能,可以在多个使用场景中派上用场。从简单的软件安装包到备份解决方案,还有很多功能值得探索。
|
||||
|
||||
如果你想安装一个低内存占用而性能相对更好的操作系统,你可以尝试一下 DietPi。
|
||||
|
||||
- [DietPi][33]
|
||||
|
||||
#### 10、Lakka Linux:打造复古的游戏主机
|
||||
|
||||
![][34]
|
||||
|
||||
想让你的树莓派变成一个复古的游戏主机?
|
||||
|
||||
Lakka Linux 发行版本最初是建立在 RetroArch 模拟器上的。因此,你可以立刻在树莓派上获得所有的复古游戏。
|
||||
|
||||
如果你想了解,我们也有一篇介绍 [Lakka Linux][35] 的文章。或者直接上手吧!
|
||||
|
||||
- [Lakka][36]
|
||||
|
||||
#### 11、RetroPie:适合复古游戏
|
||||
|
||||
![][37]
|
||||
|
||||
RetroPie 是另一款可以让树莓派变成复古游戏主机的树莓派操作系统。它提供了几个配置工具,让你可以自定义主题,或者调整模拟器即可拥有最好的复古游戏。
|
||||
|
||||
值得注意的是它不包含任何有版权的游戏。你可以试一下,看看它是怎么工作的!
|
||||
|
||||
- [RetroPie][38]
|
||||
|
||||
#### 12、Kali Linux:适合低成本渗透
|
||||
|
||||
![][39]
|
||||
|
||||
想要在你的树莓派上尝试和学习一些道德黑客技巧吗?[Kali Linux][64] 会是最佳选择。是的,Kali Linux 通常在最新的树莓派一发布就会支持它。
|
||||
|
||||
Kali Linux 不仅适合树莓派,它也支持很多其他设备。尝试一下,玩得愉快!
|
||||
|
||||
- [Kali Linux][40]
|
||||
|
||||
#### 13、OpenMediaVault:适合网络附加存储(NAS)
|
||||
|
||||
![][41]
|
||||
|
||||
如果你想在极简的硬件上搭建 [NAS][42] 解决方案,树莓派可以帮助你。
|
||||
|
||||
OpenMediaVault 最初是基于 Debian Linux 的,提供了大量功能,如基于 Web 的管理能力、插件支持,等等。它支持大多数树莓派型号,因此你可以尝试下载并安装它!
|
||||
|
||||
- [OpenMediaVault][43]
|
||||
|
||||
#### 14、ROKOS:适合加密挖矿
|
||||
|
||||
![][44]
|
||||
|
||||
如果你对加密货币和比特币很感兴趣,那么 ROKOS 会吸引你。
|
||||
|
||||
ROKOS 是基于 Debian 的操作系统,基本上可以让你把你的树莓派变成一个节点,同时预装了相应的驱动程序和软件包。当然,在安装之前你需要了解它是怎么工作的。因此,如果你对此不太了解,我建议你先调研下。
|
||||
|
||||
- [ROKOS][45]
|
||||
|
||||
#### 15、Alpine Linux:专注于安全的轻量级 Linux
|
||||
|
||||
当今年代,很多用户都在寻找专注于安全和[隐私的发行版本][46]。如果你也是其中一员,你可以试试在树莓派上安装 Alpine Linux。
|
||||
|
||||
如果你是个树莓派新手,它可能不像你想象的那样对用户友好(或者说对初学者来说容易上手)。但是,如果你想尝试一些不一样的东西,那么你可以试试 Alpine Linux 这个专注于安全的 Linux 发行版本。
|
||||
|
||||
- [Alpine Linux][47]
|
||||
|
||||
#### 16、Kano OS:适合儿童教育的操作系统
|
||||
|
||||
![][48]
|
||||
|
||||
如果你在寻找一款能让学习变得有趣还能教育儿童的树莓派操作系统,那么 Kano OS 是个不错的选择。
|
||||
|
||||
它正在积极维护中,而且 Kano OS 上的桌面集成的用户体验相当简单,玩起来也很有趣,可以让孩子们从中学习。
|
||||
|
||||
- [Kano OS][49]
|
||||
|
||||
#### 17、KDE Plasma Bigscreen:把普通电视转换为智能电视
|
||||
|
||||
![][50]
|
||||
|
||||
这是 KDE 一个正在开发中的项目。在树莓派上安装 [KDE “等离子大屏”][51] 后,你可以把普通电视变成智能电视。
|
||||
|
||||
你不需要特殊的遥控器来控制电视,你可以使用普通的遥控器。
|
||||
|
||||
“等离子大屏”也集成了 [MyCroft 开源 AI][52] 作为声控。
|
||||
|
||||
这个项目还在测试阶段,所以如果你想尝试,可能会有一些错误和问题。
|
||||
|
||||
- [Plasma Bigscreen][53]
|
||||
|
||||
#### 18、Manjaro Linux:为你提供多功能的桌面体验
|
||||
|
||||
![][54]
|
||||
|
||||
如果你想在树莓派上寻找一个基于 Arch 的 Linux 发行版,那么 Manjaro Linux 应该是一个很好的补充,它可以做很多事情,适合一般的计算任务。
|
||||
|
||||
Manjaro Linux ARM 版也支持最新的树莓派 4。它为你的树莓派或任何[树莓派替代品][55]提供了 XFCE 和 KDE Plasma 变体。
|
||||
|
||||
此外,它似乎还提供了树莓派设备上最快/最好的体验之一。如果你还没试过,那就试试吧!
|
||||
|
||||
- [Manjaro ARM][56]
|
||||
|
||||
#### 19、Volumio:作为一个开源音乐播放器使用
|
||||
|
||||
![][57]
|
||||
|
||||
想做一个廉价的音乐发烧友系统?Volumio 应该可以帮到你。
|
||||
|
||||
它是一个自由而开源的操作系统([GitHub][58]),还支持集成多个设备的能力。你可以通过一个简单的 Web 控制界面,对所有连接的设备进行管理。除了免费版之外,它还提供了一个高级版,可以让你获得独家功能。
|
||||
|
||||
它也确实支持最新的树莓派 4。所以,如果你对调整已有的家庭立体声系统有一定的兴趣,想要获得最佳的音质,不妨试试这个。
|
||||
|
||||
- [Volumio][59]
|
||||
|
||||
#### 20、FreeBSD
|
||||
|
||||
不想使用 Linux 发行版?不用担心,你也可以用 FreeBSD 在树莓派上安装一个类 UNIX 操作系统。
|
||||
|
||||
如果你不知道的话,我们有一篇关于 [FreeBSD 项目][60]的详细文章。
|
||||
|
||||
一旦你按照他们的[官方说明][61]安装好之后,你可以利用它来进行任何 DIY 实验,或者只是把它作为一个轻量级的桌面系统来完成特定的任务。
|
||||
|
||||
- [FreeBSD][62]
|
||||
|
||||
#### 21、NetBSD
|
||||
|
||||
NetBSD 是另一个令人印象深刻的类 UNIX 操作系统,你可以在树莓派上安装。它的目标是成为一个跨多个系统的便携式操作系统。
|
||||
|
||||
如果你在其他系统中使用过它,你可能已经知道它的好处了。然而,它不仅仅是一个轻量级的便携式操作系统,它的特点是拥有一套有用的功能,可以完成各种任务。
|
||||
|
||||
- [NetBSD][63]
|
||||
|
||||
### 结语
|
||||
|
||||
我相信还有很多为树莓派定制的操作系统 — 但是我尽力列出了被积极维护的最流行的或最有用的操作系统。
|
||||
|
||||
如果你觉得我遗漏了最合适树莓派的操作系统,尽情在下面的评论去告诉我吧!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/raspberry-pi-os/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[lxbwolf](https://github.com/lxbwolf)
|
||||
校对:[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://www.raspberrypi.org/
|
||||
[2]: https://itsfoss.com/raspberry-pi-projects/
|
||||
[3]: https://linux.cn/article-12136-1.html
|
||||
[4]: https://www.raspberrypi.org/downloads/
|
||||
[5]: https://www.raspberrypi.org/downloads/noobs/
|
||||
[6]: https://www.raspberrypi.org/documentation/installation/installing-images/README.md
|
||||
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/06/raspbian_home_screen.jpg?resize=800%2C492&ssl=1
|
||||
[8]: https://www.raspbian.org/
|
||||
[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/04/Desktop-ubuntu.jpg?resize=800%2C600&ssl=1
|
||||
[10]: https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-nano/
|
||||
[11]: https://linux.cn/article-10817-1.html
|
||||
[12]: https://ubuntu-mate.org/raspberry-pi/
|
||||
[13]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/ubunt-server.png?ssl=1
|
||||
[14]: https://ubuntu.com/download/raspberry-pi
|
||||
[15]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/02/libreelec.jpg?resize=800%2C600&ssl=1
|
||||
[16]: https://itsfoss.com/best-linux-media-server/
|
||||
[17]: https://kodi.tv/
|
||||
[18]: https://libreelec.tv/downloads_new/
|
||||
[19]: https://libreelec.tv/
|
||||
[20]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/02/osmc-server.jpg?resize=800%2C450&ssl=1
|
||||
[21]: https://osmc.tv/
|
||||
[22]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2018/10/riscos5.1.jpg?resize=800%2C600&ssl=1
|
||||
[23]: https://itsfoss.com/risc-os-is-now-open-source/
|
||||
[24]: https://www.riscosopen.org/content/
|
||||
[25]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/web-things-gateway.png?ssl=1
|
||||
[26]: https://iot.mozilla.org/about/
|
||||
[27]: https://iot.mozilla.org/docs/gateway-getting-started-guide.html
|
||||
[28]: https://iot.mozilla.org/gateway/
|
||||
[29]: https://en.wikipedia.org/wiki/Internet_of_things
|
||||
[30]: https://ubuntu.com/download/raspberry-pi-core
|
||||
[31]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/diet-pi.jpg?ssl=1
|
||||
[32]: https://www.debian.org/
|
||||
[33]: https://dietpi.com/
|
||||
[34]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2016/08/lakkaos.jpg?resize=1024%2C640&ssl=1
|
||||
[35]: https://linux.cn/article-10158-1.html
|
||||
[36]: http://www.lakka.tv/
|
||||
[37]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/retro-pie.png?ssl=1
|
||||
[38]: https://retropie.org.uk/
|
||||
[39]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/kali-linux-pi.png?ssl=1
|
||||
[40]: https://www.offensive-security.com/kali-linux-arm-images/
|
||||
[41]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/openmediavault.jpg?ssl=1
|
||||
[42]: https://en.wikipedia.org/wiki/Network-attached_storage
|
||||
[43]: https://www.openmediavault.org/
|
||||
[44]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/03/rocos-bitcoin-pi.jpg?ssl=1
|
||||
[45]: https://rokos.space/
|
||||
[46]: https://itsfoss.com/privacy-focused-linux-distributions/
|
||||
[47]: https://alpinelinux.org/
|
||||
[48]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/03/kano-os-pi.jpeg?ssl=1
|
||||
[49]: https://kano.me/row/downloadable
|
||||
[50]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/03/plasma-bigscreen-menu.jpg?ssl=1
|
||||
[51]: https://itsfoss.com/kde-plasma-bigscreen/
|
||||
[52]: https://itsfoss.com/mycroft-mark-2/
|
||||
[53]: https://plasma-bigscreen.org/#download-jumpto
|
||||
[54]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/manjaro-arm.jpg?w=800&ssl=1
|
||||
[55]: https://linux.cn/article-10823-1.html
|
||||
[56]: https://manjaro.org/download/#raspberry-pi-4
|
||||
[57]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/volumio.jpg?w=800&ssl=1
|
||||
[58]: https://github.com/volumio
|
||||
[59]: https://volumio.org/
|
||||
[60]: https://itsfoss.com/freebsd-interview-deb-goodkin/
|
||||
[61]: https://www.freebsdfoundation.org/freebsd/how-to-guides/installing-freebsd-for-raspberry-pi/
|
||||
[62]: https://www.freebsd.org/
|
||||
[63]: https://www.netbsd.org/
|
||||
[64]: https://linux.cn/article-10690-1.html
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user