mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-25 23:11:02 +08:00
Merge remote-tracking branch 'LCTT/master'
This commit is contained in:
commit
81f86879ae
@ -1,88 +1,100 @@
|
||||
在 Linux 中如何归档文件和目录
|
||||
=====
|
||||
|
||||
![](https://www.ostechnix.com/wp-content/uploads/2018/03/Archive-Files-And-Directories-In-Linux-720x340.png)
|
||||
|
||||
在我们之前的教程中,我们讨论了如何[使用 gzip 和 bzip2 压缩和解压缩文件][1]。在本教程中,我们将学习如何在 Linux 归档文件。归档和压缩有什么不同吗?你们中的一些人可能经常认为这些术语有相同的含义。但是,这两者完全不同。归档是将多个文件和目录(相同或不同大小)组合成一个文件的过程。另一方面,压缩是减小文件或目录大小的过程。归档通常用作系统备份的一部分,或者将数据从一个系统移至另一个系统时。希望你了解归档和压缩之间的区别。现在,让我们进入主题。
|
||||
|
||||
### 归档文件和目录
|
||||
|
||||
归档文件和目录最常见的程序是:
|
||||
|
||||
1. tar
|
||||
2. zip
|
||||
|
||||
这是一个很大的话题,所以,我将分两部分发表这篇文章。在第一部分中,我们将看到如何使用 tar 命令来归档文件和目录。
|
||||
|
||||
##### 使用 tar 命令归档文件和目录
|
||||
### 使用 tar 命令归档文件和目录
|
||||
|
||||
**Tar** 是一个 Unix 命令,代表 **T**ape **A**rchive(这里我将其翻译为 磁带归档,希望校正者修正以下)。它用于将多个文件(相同或不同大小)组合或存储到一个文件中。在 tar 实用程序中有 4 种主要的操作模式。
|
||||
**Tar** 是一个 Unix 命令,代表 **T**ape **A**rchive(磁带归档)。它用于将多个文件(相同或不同大小)组合或存储到一个文件中。在 tar 实用程序中有 4 种主要的操作模式。
|
||||
|
||||
1. **c** – 从文件或目录中建立归档
|
||||
2. **x** – 提取归档
|
||||
3. **r** – 将文件追加到归档
|
||||
4. **t** – 列出归档的内容
|
||||
1. `c` – 从文件或目录中建立归档
|
||||
2. `x` – 提取归档
|
||||
3. `r` – 将文件追加到归档
|
||||
4. `t` – 列出归档的内容
|
||||
|
||||
有关完整的模式列表,参阅 man 手册页。
|
||||
|
||||
**创建一个新的归档**
|
||||
#### 创建一个新的归档
|
||||
|
||||
为了本指南,我将使用名为 `ostechnix` 的文件夹,其中包含三种不同类型的文件。
|
||||
|
||||
为了本指南,我将使用名为 **ostechnix** 的文件夹,其中包含三种不同类型的文件。
|
||||
```
|
||||
$ ls ostechnix/
|
||||
file.odt image.png song.mp3
|
||||
```
|
||||
|
||||
现在,让我们为 ostechnix 目录创建一个新的 tar 归档。
|
||||
现在,让我们为 `ostechnix` 目录创建一个新的 tar 归档。
|
||||
|
||||
```
|
||||
$ tar cf ostechnix.tar ostechnix/
|
||||
```
|
||||
|
||||
这里,**c**标志指的是创建新的归档,**f** 是指定归档文件。
|
||||
这里,`c` 标志指的是创建新的归档,`f` 是指定归档文件。
|
||||
|
||||
同样,对当前工作目录中的一组文件创建归档文件,使用以下命令:
|
||||
|
||||
```
|
||||
$ tar cf archive.tar file1 file2 file 3
|
||||
```
|
||||
|
||||
**提取归档**
|
||||
#### 提取归档
|
||||
|
||||
要在当前目录中提取归档文件,只需执行以下操作:
|
||||
|
||||
```
|
||||
$ tar xf ostechnix.tar
|
||||
```
|
||||
|
||||
我们还可以使用 **C** 标志(大写字母 C)将归档提取到不同的目录中。例如,以下命令在 **Downloads** 目录中提取给定的归档文件。
|
||||
我们还可以使用 `C` 标志(大写字母 C)将归档提取到不同的目录中。例如,以下命令将归档文件提取到 `Downloads` 目录中。
|
||||
|
||||
```
|
||||
$ tar xf ostechnix.tar -C Downloads/
|
||||
```
|
||||
|
||||
或者,转到 Downloads 文件夹并像下面一样提取其中的归档。
|
||||
或者,转到 `Downloads` 文件夹并像下面一样提取其中的归档。
|
||||
|
||||
```
|
||||
$ cd Downloads/
|
||||
|
||||
$ tar xf ../ostechnix.tar
|
||||
```
|
||||
|
||||
有时,你可能想要提取特定类型的文件。例如,以下命令提取 “.png” 类型的文件。
|
||||
|
||||
```
|
||||
$ tar xf ostechnix.tar --wildcards "*.png"
|
||||
```
|
||||
|
||||
**创建 gzip 和 bzip 格式的压缩归档**
|
||||
#### 创建 gzip 和 bzip 格式的压缩归档
|
||||
|
||||
默认情况下,tar 创建归档文件以 **.tar** 结尾。另外,tar 命令可以与压缩实用程序 **gzip** 和 **bzip** 结合使用。文件结尾以 **.tar** 为扩展名使用普通 tar 归档文件,文件以 **tar.gz** 或 **.tgz** 结尾使用 **gzip** 归档并压缩文件,tar 文件以 **tar.bz2** 或 **.tbz** 结尾使用 **bzip** 归档并压缩。
|
||||
默认情况下,tar 创建归档文件以 `.tar` 结尾。另外,`tar` 命令可以与压缩实用程序 `gzip` 和 `bzip` 结合使用。文件结尾以 `.tar` 为扩展名使用普通 tar 来归档文件,文件以 `tar.gz` 或 `.tgz` 结尾使用 `gzip` 归档并压缩文件,文件以 `tar.bz2` 或 `.tbz` 结尾使用 `bzip` 归档并压缩。
|
||||
|
||||
首先,让我们来创建一个 gzip 归档:
|
||||
|
||||
首先,让我们来**创建一个 gzip 归档**:
|
||||
```
|
||||
$ tar czf ostechnix.tar.gz ostechnix/
|
||||
```
|
||||
|
||||
或者
|
||||
或者:
|
||||
|
||||
```
|
||||
$ tar czf ostechnix.tgz ostechnix/
|
||||
```
|
||||
|
||||
这里,我们使用 **z** 标志来使用 gzip 压缩方法压缩归档文件。
|
||||
这里,我们使用 `z` 标志来使用 gzip 压缩方法压缩归档文件。
|
||||
|
||||
你可以使用 `v` 标志在创建归档时查看进度。
|
||||
|
||||
你可以使用 **v** 标志在创建归档时查看进度。
|
||||
```
|
||||
$ tar czvf ostechnix.tar.gz ostechnix/
|
||||
ostechnix/
|
||||
@ -91,80 +103,92 @@ ostechnix/image.png
|
||||
ostechnix/song.mp3
|
||||
```
|
||||
|
||||
这里,**v** 指显示进度。
|
||||
这里,`v` 指显示进度。
|
||||
|
||||
从一个文件列表创建 gzip 归档文件:
|
||||
|
||||
```
|
||||
$ tar czf archive.tgz file1 file2 file3
|
||||
```
|
||||
|
||||
要提取当前目录中的 gzip 归档文件,使用:
|
||||
|
||||
```
|
||||
$ tar xzf ostechnix.tgz
|
||||
```
|
||||
|
||||
要提取其他文件夹中的归档,使用 -C 标志:
|
||||
要提取到其他文件夹,使用 `-C` 标志:
|
||||
|
||||
```
|
||||
$ tar xzf ostechnix.tgz -C Downloads/
|
||||
```
|
||||
|
||||
现在,让我们创建 **bzip 归档**。为此,请使用下面的 **j** 标志。
|
||||
现在,让我们创建 **bzip 归档**。为此,请使用下面的 `j` 标志。
|
||||
|
||||
创建一个目录的归档:
|
||||
|
||||
```
|
||||
$ tar cjf ostechnix.tar.bz2 ostechnix/
|
||||
```
|
||||
|
||||
或
|
||||
|
||||
```
|
||||
$ tar cjf ostechnix.tbz ostechnix/
|
||||
```
|
||||
|
||||
从一个列表文件中创建归档:
|
||||
|
||||
```
|
||||
$ tar cjf archive.tar.bz2 file1 file2 file3
|
||||
```
|
||||
|
||||
或
|
||||
|
||||
```
|
||||
$ tar cjf archive.tbz file1 file2 file3
|
||||
```
|
||||
|
||||
为了显示进度,使用 **v** 标志。
|
||||
为了显示进度,使用 `v` 标志。
|
||||
|
||||
现在,在当前目录下,让我们提取一个 bzip 归档。这样做:
|
||||
|
||||
```
|
||||
$ tar xjf ostechnix.tar.bz2
|
||||
```
|
||||
|
||||
或者,提取归档文件到其他目录:
|
||||
|
||||
```
|
||||
$ tar xjf ostechnix.tar.bz2 -C Downloads
|
||||
```
|
||||
|
||||
**一次创建多个目录和/或文件的归档**
|
||||
#### 一次创建多个目录和/或文件的归档
|
||||
|
||||
这是 `tar` 命令的另一个最酷的功能。要一次创建多个目录或文件的 gzip 归档文件,使用以下文件:
|
||||
|
||||
这是 tar 命令的另一个最酷的功能。要一次创建多个目录或文件的 gzip 归档文件,使用以下文件:
|
||||
```
|
||||
$ tar czvf ostechnix.tgz Downloads/ Documents/ ostechnix/file.odt
|
||||
```
|
||||
|
||||
上述命令创建 **Downloads**, **Documents** 目录和 **ostechnix** 目录下的 **file.odt** 文件的归档,并将归档保存在当前工作目录中。
|
||||
上述命令创建 `Downloads`、 `Documents` 目录和 `ostechnix` 目录下的 `file.odt` 文件的归档,并将归档保存在当前工作目录中。
|
||||
|
||||
**在创建归档时跳过目录和/或文件**
|
||||
#### 在创建归档时跳过目录和/或文件
|
||||
|
||||
这在备份数据时非常有用。你可以在备份中排除不重要的文件或目录,这是 **–exclude** 选项所能帮助的。例如你想要创建 /home 目录的归档,但不希望包括 Downloads, Documents, Pictures, Music 这些目录。
|
||||
这在备份数据时非常有用。你可以在备份中排除不重要的文件或目录,这是 `–exclude` 选项所能帮助的。例如你想要创建 `/home` 目录的归档,但不希望包括 `Downloads`、 `Documents`、 `Pictures`、 `Music` 这些目录。
|
||||
|
||||
这是我们的做法:
|
||||
|
||||
```
|
||||
$ tar czvf ostechnix.tgz /home/sk --exclude=/home/sk/Downloads --exclude=/home/sk/Documents --exclude=/home/sk/Pictures --exclude=/home/sk/Music
|
||||
```
|
||||
|
||||
上述命令将对我的 $HOME 目录创建一个 gzip 归档,其中不包括 Downloads, Documents, Pictures 和 Music 目录。要创建 bzip 归档,将 **z** 替换为 **j**,并在上例中使用扩展名 .bz2。
|
||||
上述命令将对我的 `$HOME` 目录创建一个 gzip 归档,其中不包括 `Downloads`、`Documents`、`Pictures` 和 `Music` 目录。要创建 bzip 归档,将 `z` 替换为 `j`,并在上例中使用扩展名 `.bz2`。
|
||||
|
||||
**列出归档文件但不提取它们**
|
||||
#### 列出归档文件但不提取它们
|
||||
|
||||
要列出归档文件的内容,我们使用 `t` 标志。
|
||||
|
||||
要列出归档文件的内容,我们使用 **t** 标志。
|
||||
```
|
||||
$ tar tf ostechnix.tar
|
||||
ostechnix/
|
||||
@ -173,7 +197,8 @@ ostechnix/image.png
|
||||
ostechnix/song.mp3
|
||||
```
|
||||
|
||||
要查看详细输出,使用 **v** 标志。
|
||||
要查看详细输出,使用 `v` 标志。
|
||||
|
||||
```
|
||||
$ tar tvf ostechnix.tar
|
||||
drwxr-xr-x sk/users 0 2018-03-26 19:52 ostechnix/
|
||||
@ -182,16 +207,18 @@ drwxr-xr-x sk/users 0 2018-03-26 19:52 ostechnix/
|
||||
-rw-r--r-- sk/users 112383 2018-02-22 14:35 ostechnix/song.mp3
|
||||
```
|
||||
|
||||
**追加文件到归档**
|
||||
#### 追加文件到归档
|
||||
|
||||
文件或目录可以使用 `r` 标志添加/更新到现有的归档。看看下面的命令:
|
||||
|
||||
文件或目录可以使用 **r** 标志添加/更新到现有的归档。看看下面的命令:
|
||||
```
|
||||
$ tar rf ostechnix.tar ostechnix/ sk/ example.txt
|
||||
```
|
||||
|
||||
上面的命令会将名为 **sk** 的目录和名为 **exmple.txt** 添加到 ostechnix.tar 归档文件中。
|
||||
上面的命令会将名为 `sk` 的目录和名为 `exmple.txt` 添加到 `ostechnix.tar` 归档文件中。
|
||||
|
||||
你可以使用以下命令验证文件是否已添加:
|
||||
|
||||
```
|
||||
$ tar tvf ostechnix.tar
|
||||
drwxr-xr-x sk/users 0 2018-03-26 19:52 ostechnix/
|
||||
@ -203,22 +230,24 @@ drwxr-xr-x sk/users 0 2018-03-26 19:52 sk/
|
||||
-rw-r--r-- sk/users 0 2018-03-26 19:56 example.txt
|
||||
```
|
||||
|
||||
##### **TL;DR**
|
||||
### TL;DR
|
||||
|
||||
**创建 tar 归档:**
|
||||
* **普通 tar 归档:** tar -cf archive.tar file1 file2 file3
|
||||
* **Gzip tar 归档:** tar -czf archive.tgz file1 file2 file3
|
||||
* **Bzip tar 归档:** tar -cjf archive.tbz file1 file2 file3
|
||||
创建 tar 归档:
|
||||
|
||||
**提取 tar 归档:**
|
||||
* **普通 tar 归档:** tar -xf archive.tar
|
||||
* **Gzip tar 归档:** tar -xzf archive.tgz
|
||||
* **Bzip tar 归档:** tar -xjf archive.tbz
|
||||
* **普通 tar 归档:** `tar -cf archive.tar file1 file2 file3`
|
||||
* **Gzip tar 归档:** `tar -czf archive.tgz file1 file2 file3`
|
||||
* **Bzip tar 归档:** `tar -cjf archive.tbz file1 file2 file3`
|
||||
|
||||
提取 tar 归档:
|
||||
|
||||
* **普通 tar 归档:** `tar -xf archive.tar`
|
||||
* **Gzip tar 归档:** `tar -xzf archive.tgz`
|
||||
* **Bzip tar 归档:** `tar -xjf archive.tbz`
|
||||
|
||||
我们只介绍了 `tar` 命令的基本用法,这些对于开始使用 `tar` 命令足够了。但是,如果你想了解更多详细信息,参阅 man 手册页。
|
||||
|
||||
我们只介绍了 tar 命令的基本用法,这些对于开始使用 tar 命令足够了。但是,如果你想了解更多详细信息,参阅 man 手册页。
|
||||
```
|
||||
$ man tar
|
||||
|
||||
```
|
||||
|
||||
好吧,这就是全部了。在下一部分中,我们将看到如何使用 Zip 实用程序来归档文件和目录。
|
||||
@ -230,9 +259,9 @@ $ man tar
|
||||
via: https://www.ostechnix.com/how-to-archive-files-and-directories-in-linux-part-1/
|
||||
|
||||
作者:[SK][a]
|
||||
译者:[MjSeven](https://github.com/MjSeven)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[MjSeven](https://github.com/MjSeven)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -3,26 +3,27 @@
|
||||
|
||||
![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/minetest.png?itok=Houi9zf9)
|
||||
|
||||
让我们假设你希望搭建一个游戏服务器,运行 [Minetest][1] 这款非常酷、开源的、以采集 & 合成为主题的沙盒游戏。你希望将游戏运行在位于客厅的服务器中,以便搭建完成后可供你的学校或朋友使用。考虑到内核邮件列表管理就是通过这种方式完成的,那么对你来说也是足够的。
|
||||
让我们假设你希望搭建一个游戏服务器,运行 [Minetest][1] 这款非常酷、开源的,以采集 & 合成为主题的沙盒游戏。你希望将游戏运行在位于客厅的服务器中,以便搭建完成后可供你的学校或朋友使用。你知道内核邮件列表的管理就不过就是如此,那么对你来说也是足够的。
|
||||
|
||||
但你很快发现每次开机之后需要启动服务器,每次关机之前需要安全地关闭服务器,十分繁琐和麻烦。
|
||||
|
||||
最初,你可能用守护进程的方式运行服务器:
|
||||
```
|
||||
minetest --server &
|
||||
|
||||
```
|
||||
minetest --server &
|
||||
```
|
||||
|
||||
记住进程 PID 以便后续使用。
|
||||
|
||||
接着,你还需要通过邮件或短信的方式将服务器已经启动的信息告知你的朋友。然后你就可以开始游戏了。
|
||||
|
||||
转眼之间,已经凌晨三点,今天的战斗即将告一段落。但在你关闭主机、睡个好觉之前,还需要做一些操作。首先,你需要通知其它玩家服务器即将关闭,找到记录我们之前提到的 PID 的纸条,然后友好地关闭 Minetest 服务器。
|
||||
转眼之间,已经凌晨三点,今天的战斗即将告一段落。但在你关闭主机、睡个好觉之前,还需要做一些操作。首先,你需要通知其它玩家服务器即将关闭,找到记录我们之前提到的 PID 的纸条,然后友好地关闭 Minetest 服务进程。
|
||||
|
||||
```
|
||||
kill -2 <PID>
|
||||
|
||||
```
|
||||
|
||||
因为直接关闭主机电源很可能导致文件损坏。下一步也是最后一步,关闭主机电源。
|
||||
这是因为直接关闭主机电源很可能导致文件损坏。下一步也是最后一步,关闭主机电源。
|
||||
|
||||
一定有方法能让事情变得更简单。
|
||||
|
||||
@ -30,13 +31,15 @@ kill -2 <PID>
|
||||
|
||||
让我们从构建一个普通用户可以(手动)运行的 systemd 服务开始,然后再逐步增加内容。
|
||||
|
||||
不需要管理员权限即可运行的服务位于 _~/.config/systemd/user/_,故首先需要创建这个目录:
|
||||
不需要管理员权限即可运行的服务位于 `~/.config/systemd/user/`,故首先需要创建这个目录:
|
||||
|
||||
```
|
||||
cd
|
||||
mkdir -p ~/.config/systemd/user/
|
||||
|
||||
```
|
||||
有很多类型的 systemd _units_ (曾经叫做 systemd 脚本),包括 _timers_ 和 _paths_ 等,但我们这里关注的是 service 类型。在 _~/.config/systemd/user/_ 目录中创建 _minetest.service_ 文件,使用文本编辑器打开并输入如下内容:
|
||||
|
||||
有很多类型的 systemd 单元 (曾经叫做 systemd 脚本),包括“计时器”和“路径”等,但我们这里关注的是“服务”类型。在 `~/.config/systemd/user/` 目录中创建 `minetest.service` 文件,使用文本编辑器打开并输入如下内容:
|
||||
|
||||
```
|
||||
# minetest.service
|
||||
|
||||
@ -47,39 +50,38 @@ Documentation= https://wiki.minetest.net/Main_Page
|
||||
[Service]
|
||||
Type= simple
|
||||
ExecStart= /usr/games/minetest --server
|
||||
|
||||
```
|
||||
|
||||
可以看到 units 中包含不同的段,其中 `[Unit]` 段主要为用户提供信息,给出 unit 的描述及如何获得更多相关文档。
|
||||
可以看到该单元中包含不同的段,其中 `[Unit]` 段主要为用户提供信息,给出该单元的描述及如何获得更多相关文档。
|
||||
|
||||
脚本核心位于 `[Service]` 段,首先使用 `Type` 指令确定服务类型。服务[有多种类型][2],下面给出两个示例。如果你运行的进程设置环境变量、调用另外一个进程(主进程)、退出运行,那么你应该使用的服务类型为 `forking`。如果你希望在你的 unit 对应进程结束运行前阻断其他 units 运行,那么你应该使用的服务类型为 `oneshot`。
|
||||
脚本核心位于 `[Service]` 段,首先使用 `Type` 指令确定服务类型。服务[有多种类型][2],下面给出两个示例。如果你运行的进程设置环境变量、调用另外一个进程(主进程)、退出运行,那么你应该使用的服务类型为 `forking`。如果你希望在你的单元对应进程结束运行前阻断其他单元运行,那么你应该使用的服务类型为 `oneshot`。
|
||||
|
||||
但 Minetest 服务器的情形与上面两种都不同,你希望启动服务器并使其在后台持续运行;这种情况下应该使用 `simple` 类型。
|
||||
|
||||
下面来看 `ExecStart` 指令,它给出 systemd 需要运行的程序。在本例中,你希望在后台运行 `minetest` 服务器。如上所示,你可以在可执行程序后面添加参数,但不能将一系列 Bash 命令通过管道连接起来。下面给出的例子无法工作:
|
||||
|
||||
```
|
||||
ExecStart: lsmod | grep nvidia > videodrive.txt
|
||||
|
||||
```
|
||||
|
||||
如果你需要将 Bash 命令通过管道连接起来,可以将其封装到一个脚本中,然后运行该脚本。
|
||||
|
||||
还需要注意一点,systemd 要求你给出程序的完整路径。故如果你想使用 `simeple` 类型运行类似 _ls_ 的命令,你需要使用 `ExecStart= /bin/ls`。
|
||||
还需要注意一点,systemd 要求你给出程序的完整路径。故如果你想使用 `simple` 类型运行类似 `ls` 的命令,你需要使用 `ExecStart= /bin/ls`。
|
||||
|
||||
另外还有 `ExecStop` 指令用于定制服务终止的方式。我们会在第二部分讨论这个指令,但你要了解,如果你没有指定 `ExecStop`,systemd 会帮你尽可能友好地终止进程。
|
||||
|
||||
_systemd.directives_ 的帮助页中包含完整指令列表,另外你可以在[网站][3]上找到同样的列表,点击即可查看每个指令的具体信息。
|
||||
`systemd.directives` 的帮助页中包含完整指令列表,另外你可以在该[网站][3]上找到同样的列表,点击即可查看每个指令的具体信息。
|
||||
|
||||
虽然只有 6 行,但你的 `minetest.service` 已经是一个有完整功能的 systemd 单元。执行如下命令启动服务:
|
||||
|
||||
虽然只有 6 行,但你的 _minetest.service_ 已经是一个有完整功能的 systemd unit。执行如下命令启动服务:
|
||||
```
|
||||
systemd --user start minetest
|
||||
|
||||
```
|
||||
|
||||
执行如下命令终止服务
|
||||
执行如下命令终止服务:
|
||||
|
||||
```
|
||||
systemd --user stop minetest
|
||||
|
||||
```
|
||||
|
||||
选项 `--user` 告知 systemd 在你的本地目录中检索服务并用你的用户权限执行服务。
|
||||
@ -95,7 +97,7 @@ via: https://www.linux.com/blog/learn/intro-to-linux/2018/5/writing-systemd-serv
|
||||
作者:[Paul Brown][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[pinewall](https://github.com/pinewall)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -1,12 +1,11 @@
|
||||
Orbital Apps - 新一代 Linux 程序
|
||||
Orbital Apps:新一代 Linux 程序
|
||||
======
|
||||
|
||||
![](https://www.ostechnix.com/wp-content/uploads/2016/05/orbital-apps-720x340.jpg)
|
||||
|
||||
今天,我们要了解 **Orbital Apps** 或 **ORB**(**O**pen **R**unnable **B**undle)**apps**(开放可运行程序包),一个免费、跨平台的开源程序集合。所有 ORB 程序都是可移动的。你可以将它们安装在你的 Linux 系统或 USB 驱动器上,以便你可以在任何系统上使用相同的程序。它们不需要 root 权限,并且没有依赖关系。所有必需的依赖关系都包含在程序中。只需将 ORB 程序复制到 USB 驱动器并将其插入到任何 Linux 系统中就立即开始使用它们。所有设置和配置以及程序的数据都将存储在 USB 驱动器上。由于不需要在本地驱动器上安装程序,我们可以在联机或脱机的计算机上运行应用程序。这意味着我们不需要 Internet 来下载任何依赖。
|
||||
今天,我们要了解 **Orbital Apps** 或 **ORB**(**O**pen **R**unnable **B**undle)**apps**(开放可运行程序包),一个自由的、跨平台的开源程序集合。所有 ORB 程序都是可移动的。你可以将它们安装在你的 Linux 系统或 USB 驱动器上,以便你可以在任何系统上使用相同的程序。它们不需要 root 权限,并且没有依赖关系。所有必需的依赖关系都包含在程序中。只需将 ORB 程序复制到 USB 驱动器并将其插入到任何 Linux 系统中就立即开始使用它们。所有设置和配置以及程序的数据都将存储在 USB 驱动器上。由于不需要在本地驱动器上安装程序,我们可以在联机或脱机的计算机上运行应用程序。这意味着我们不需要 Internet 来下载任何依赖。
|
||||
|
||||
ORB apps are compressed up to 60% smaller, so we can store and use them even from the small sized USB drives. All ORB apps are signed with PGP/RSA and distributed via TLS 1.2. All Applications are packaged without any modifications, they are not even re-compiled. Here is the list of currently available portable ORB applications.
|
||||
ORB 程序压缩了 60%,因此我们甚至可以从小型USB驱动器存储和使用它们。所有ORB应用程序都使用PGP / RSA进行签名,并通过TLS 1.2进行分发。所有应用程序打包时都不做任何修改,甚至不会重新编译。以下是当前可用的便携式ORB应用程序列表。
|
||||
ORB 程序压缩了 60%,因此我们甚至可以从小型 USB 驱动器存储和使用它们。所有 ORB 应用程序都使用 PGP / RSA 进行签名,并通过 TLS 1.2 进行分发。所有应用程序打包时都不做任何修改,甚至不会重新编译。以下是当前可用的便携式 ORB 应用程序列表。
|
||||
|
||||
* abiword
|
||||
* audacious
|
||||
@ -28,34 +27,32 @@ ORB 程序压缩了 60%,因此我们甚至可以从小型USB驱动器存储
|
||||
* tomahawk
|
||||
* uget
|
||||
* vlc
|
||||
* 未来还有更多。
|
||||
* 未来还有更多
|
||||
|
||||
|
||||
|
||||
Orb is open source, so If you’re a developer, feel free to collaborate and add more applications.
|
||||
Orb 是开源的,所以如果你是开发人员,欢迎协作并添加更多程序。
|
||||
|
||||
### 下载并使用可移动 ORB 程序
|
||||
|
||||
正如我已经提到的,我们不需要安装可移动 ORB 程序。但是,ORB 团队强烈建议你使用 **ORB 启动器** 来获得更好的体验。 ORB 启动器是一个小的安装程序(小于 5MB),它可帮助你启动 ORB 程序,并获得更好,更流畅的体验。
|
||||
|
||||
让我们先安装 ORB 启动器。为此,[**下载 ORB 启动器**][1]。你可以手动下载 ORB 启动器的 ISO 并将其挂载到文件管理器上。或者在终端中运行以下任一命令来安装它:
|
||||
让我们先安装 ORB 启动器。为此,[下载 ORB 启动器][1]。你可以手动下载 ORB 启动器的 ISO 并将其挂载到文件管理器上。或者在终端中运行以下任一命令来安装它:
|
||||
|
||||
```
|
||||
$ wget -O - https://www.orbital-apps.com/orb.sh | bash
|
||||
|
||||
```
|
||||
|
||||
如果你没有 wget,请运行:
|
||||
|
||||
```
|
||||
$ curl https://www.orbital-apps.com/orb.sh | bash
|
||||
|
||||
```
|
||||
|
||||
询问时输入 root 用户和密码。
|
||||
|
||||
就是这样。Orbit 启动器已安装并可以使用。
|
||||
|
||||
现在,进入 [**ORB 可移动程序下载页面**][2],并下载你选择的程序。在本教程中,我会下载 Firefox。
|
||||
现在,进入 [ORB 可移动程序下载页面][2],并下载你选择的程序。在本教程中,我会下载 Firefox。
|
||||
|
||||
下载完后,进入下载位置并双击 ORB 程序来启动它。点击 Yes 确认。
|
||||
|
||||
@ -67,7 +64,7 @@ Firefox ORB 程序能用了!
|
||||
|
||||
同样,你可以立即下载并运行任何程序。
|
||||
|
||||
如果你不想使用 ORB 启动器,请将下载的 .orb 安装程序设置为可执行文件,然后双击它进行安装。不过,建议使用 ORB 启动器,它可让你在使用 ORB 程序时更轻松、更顺畅。
|
||||
如果你不想使用 ORB 启动器,请将下载的 `.orb` 安装程序设置为可执行文件,然后双击它进行安装。不过,建议使用 ORB 启动器,它可让你在使用 ORB 程序时更轻松、更顺畅。
|
||||
|
||||
就我测试的 ORB 程序而言,它们打开即可使用。希望这篇文章有帮助。今天就是这些。祝你有美好的一天!
|
||||
|
||||
@ -81,7 +78,7 @@ via: https://www.ostechnix.com/orbitalapps-new-generation-ubuntu-linux-applicati
|
||||
作者:[SK][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -1,65 +0,0 @@
|
||||
translating----geekpi
|
||||
|
||||
Get started with Pidgin: An open source replacement for Skype for Business
|
||||
======
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/meeting-team-listen-communicate.png?itok=KEBP6vZ_)
|
||||
Technology is at an interesting crossroads, where Linux rules the server landscape but Microsoft rules the enterprise desktop. Office 365, Skype for Business, Microsoft Teams, OneDrive, Outlook... the list goes on of Microsoft software and services that dominate the enterprise workspace.
|
||||
|
||||
What if you could replace that proprietary software with free and open source applications and make them work with an Office 365 backend you have no choice but to use? Buckle up, because that is exactly what we are going to do with Pidgin, an open source replacement for Skype.
|
||||
|
||||
### Installing Pidgin and SIPE
|
||||
|
||||
Microsoft's Office Communicator became Microsoft Lync which became what we know today as Skype for Business. There are [pay software options][1] for Linux that provide feature parity with Skype for Business, but [Pidgin][2] is a fully free and open source option licensed under the GNU GPL.
|
||||
|
||||
Pidgin can be found in just about every Linux distro's repository, so getting your hands on it should not be a problem. The only Skype feature that won't work with Pidgin is screen sharing, and file sharing can be a bit hit or miss—but there are ways to work around it.
|
||||
|
||||
You also need a [SIPE][3] plugin, as it's part of the secret sauce to make Pidgin work as a Skype for Business replacement. Please note that the `sipe` library has different names in different distros. For example, the library's name on System76's Pop_OS! is `pidgin-sipe` while in the Solus 3 repo it is simply `sipe`.
|
||||
|
||||
With the prerequisites out of the way, you can begin configuring Pidgin.
|
||||
|
||||
### Configuring Pidgin
|
||||
|
||||
When firing up Pidgin for the first time, click on **Add** to add a new account. In the Basic tab (shown in the screenshot below), select** Office Communicator** in the **Protocol** drop-down, then type your **business email address** in the **Username** field.
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/panopoly_image_original/public/u128651/pidgin_basic_account_screen_final.png?itok=1zoSbZjy)
|
||||
|
||||
Next, click on the Advanced tab. In the **Server[:Port]** field enter **sipdir.online.lync.com:443** and in **User Agent** enter **UCCAPI/16.0.6965.5308 OC/16.0.6965.2117**.
|
||||
|
||||
Your Advanced tab should now look like this:
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/panopoly_image_original/public/u128651/pidgin_advanced_account_screen.png?itok=Z6loRfGi)
|
||||
|
||||
You shouldn't need to make any changes to the Proxy tab or the Voice and Video tab. Just to be certain, make sure **Proxy type** is set to **Use Global Proxy Settings** and in the Voice and Video tab, the **Use silence suppression** checkbox is **unchecked**.
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/panopoly_image_original/public/u128651/pidgin_account_proxy_screen.png?itok=iDgszWy0)
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/panopoly_image_original/public/u128651/pidgin_voiceandvideo_screen.png?itok=klkbt5hr)
|
||||
|
||||
After you've completed those configurations, click **Add,** and you'll be prompted for your email account's password.
|
||||
|
||||
### Adding contacts
|
||||
|
||||
To add contacts to your buddy list, click on **Manage Accounts** in the **Buddy Window**. Hover over your account and select **Contact Search** to look up your colleagues. If you run into any problems when searching by first and last name, try searching with your colleague's full email address, and you should always get the right person.
|
||||
|
||||
You are now up and running with a Skype for Business replacement that gives you about 98% of the functionality you need to banish the proprietary option from your desktop.
|
||||
|
||||
Ray Shimko will be speaking about [Linux in a Microsoft World][4] at [LinuxFest NW][5] April 28-29. See program highlights or register to attend.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/18/4/pidgin-open-source-replacement-skype-business
|
||||
|
||||
作者:[Ray Shimko][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://opensource.com/users/shickmo
|
||||
[1]:https://tel.red/linux.php
|
||||
[2]:https://pidgin.im/
|
||||
[3]:http://sipe.sourceforge.net/
|
||||
[4]:https://www.linuxfestnorthwest.org/conferences/lfnw18/program/proposals/32
|
||||
[5]:https://www.linuxfestnorthwest.org/conferences/lfnw18
|
53
sources/talk/20180518 Mastering CI-CD at OpenDev.md
Normal file
53
sources/talk/20180518 Mastering CI-CD at OpenDev.md
Normal file
@ -0,0 +1,53 @@
|
||||
Mastering CI/CD at OpenDev
|
||||
======
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/BUSINESS_opennature_3.png?itok=J1OSECM_)
|
||||
After launching in 2017, the [OpenDev Conference][1] is now an annual event. At the inaugural event last September, the conference focus was on edge computing. This year's event, taking place May 22-23, will be focused on Continuous Integration/Continuous Deployment (CI/CD) and will be co-located with the OpenStack Summit in Vancouver.
|
||||
|
||||
|
||||
|
||||
I was invited to participate in the program committee for OpenDev CI/CD based on my background on the CI/CD system for the OpenStack project and my recent move into the container space. Today I frequently talk about CI/CD pipelines using various open source technologies, including [Jenkins][3] [GitLab][2],[Spinnaker][4] , and [Artifactory][5]
|
||||
|
||||
This event is exciting for me because we're bringing two open source infrastructure ideas together into one event. First, we'll be discussing CI/CD tooling that can be used by any organization. To this end, in the [keynotes][6] we'll hear practical talks about open source CI/CD tooling, including a talk about Spinnaker from Boris Renski and one from Jim Blair on [Zuul][7]. The keynotes also will include higher-level talks about the preference for open technologies, especially across communities and inside open source projects themselves. From Fatih Degirmenci and Daniel Farrell we'll hear about sharing continuous delivery practices across communities, and Benjamin Mako Hill will join us to talk about why free software needs free tools.
|
||||
|
||||
Given the relative newness of CI/CD, the rest of the event is a mix of talks, workshops, and collaborative discussions. When selecting from talks and workshops submitted, and coming up with collaborative discussion topics, we wanted to make sure there was a diverse schedule so anyone on the open CI/CD spectrum would find something interesting.
|
||||
|
||||
The talks will be standard conference style, selected to cover key topics like crafting CI/CD pipelines, improving security when practicing DevOps, and more specific solutions like container-based [Aptomi][8] on Kubernetes and doing CI/CD in ETSI NFV environments. Many of these sessions will serve as an introduction to these topics, ideal for those who are new to the CI/CD space or any of these specific technologies.
|
||||
|
||||
The hands-on workshops are longer and will have specific outcomes in mind for attendees. These include "[Anomaly Detection in Continuous Integration Jobs][9]," "[How to Install Zuul and Configure Your First Jobs][10]," and "[Spinnaker 101: Releasing Software with Velocity and Confidence][11]." (Note that space is limited in these workshops, so an RSVP system has been set up. You'll find an RSVP button on the session links provided here.)
|
||||
|
||||
Perhaps what I'm most excited about are the collaborative discussions, and these take up over half of the conference schedule. The topics were chosen by the program committee based on what we've been seeing in our communities. These are "fishbowl"-style sessions, where several people get in a room together to discuss a specific topic around CI/CD.
|
||||
|
||||
The idea for this style of session was taken from developer summits that the Ubuntu community pioneered and the OpenStack community continued. Topics for these collaborative discussions include separate sessions for CI and CD fundamentals, improvements that can be made to encourage cross-community collaboration, driving CI/CD culture in organizations, and why open source CI/CD tooling is so important. Shared documents are used to take notes during these sessions to make sure that as much knowledge shared during the session is retained as possible. It's also common for action items to come from these discussions, so community members can push forward initiatives related to the topic being covered.
|
||||
|
||||
The event concludes with a [Joint Conclusion Session][12], which will be summarizing the key points from the collaborative discussions and identifying work areas that attendees wish to work on in future.
|
||||
|
||||
Registration for this event is included in [OpenStack Summit registration][13], or tickets for this event only can be purchased for $199 onsite at the Vancouver Convention Center. Learn more about tickets and the full agenda on the [OpenDev website][1].
|
||||
|
||||
I hope you'll join us in Vancouver for an exciting two days of learning, collaborating and making progress together on CI/CD.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/18/5/opendev
|
||||
|
||||
作者:[Elizabeth K.Joseph][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://opensource.com/users/pleia2
|
||||
[1]:http://2018.opendevconf.com/
|
||||
[2]:https://about.gitlab.com/
|
||||
[3]:https://jenkins.io/
|
||||
[4]:https://www.spinnaker.io/
|
||||
[5]:https://jfrog.com/artifactory/
|
||||
[6]:http://2018.opendevconf.com/schedule/
|
||||
[7]:https://zuul-ci.org/
|
||||
[8]:http://aptomi.io/
|
||||
[9]:https://www.openstack.org/summit/vancouver-2018/summit-schedule/events/21692/anomaly-detection-in-continuous-integration-jobs
|
||||
[10]:https://www.openstack.org/summit/vancouver-2018/summit-schedule/events/21693/how-to-install-zuul-and-configure-your-first-jobs
|
||||
[11]:https://www.openstack.org/summit/vancouver-2018/summit-schedule/events/21699/spinnaker-101-releasing-software-with-velocity-and-confidence
|
||||
[12]:https://www.openstack.org/summit/vancouver-2018/summit-schedule/events/21831/opendev-cicd-joint-collab-conclusion
|
||||
[13]:https://www.eventbrite.com/e/openstack-summit-may-2018-vancouver-tickets-40845826968?aff=VancouverSummit2018
|
@ -1,177 +0,0 @@
|
||||
Translating by MjSeven
|
||||
|
||||
The Best Linux Tools for Teachers and Students
|
||||
======
|
||||
Linux is a platform ready for everyone. If you have a niche, Linux is ready to meet or exceed the needs of said niche. One such niche is education. If you are a teacher or a student, Linux is ready to help you navigate the waters of nearly any level of the educational system. From study aids, to writing papers, to managing classes, to running an entire institution, Linux has you covered.
|
||||
|
||||
If you’re unsure how, let me introduce you to a few tools Linux has at the ready. Some of these tools require little to no learning curve, whereas others require a full blown system administrator to install, setup, and manage. We’ll start with the simple and make our way to the complex.
|
||||
|
||||
### Study aids
|
||||
|
||||
Everyone studies a bit differently and every class requires a different type and level of studying. Fortunately, Linux has plenty of study aids. Let’s take a look at a few examples:
|
||||
|
||||
Flash Cards ─ [KWordQuiz][1] (Figure 1) is one of the many flashcard applications available for the Linux platform. KWordQuiz uses the kvtml file format and you can download plenty of pre-made, contributed files to use [here][2]. KWordQuiz is part of the KDE desktop environment, but can be installed on other desktops (KDE dependencies will be installed alongside the flashcard app).
|
||||
|
||||
![](https://lcom.static.linuxfound.org/images/stories/41373/kwordquiz-sm.png)
|
||||
|
||||
### Language tools
|
||||
|
||||
Thanks to an ever-shrinking world, foreign language has become a crucial element of education. You’ll find plenty of language tools, including [Kiten][3] (Figure 2) the kanji browser for the KDE desktop.
|
||||
|
||||
![](https://lcom.static.linuxfound.org/images/stories/41373/kiten.jpg)
|
||||
|
||||
If Japanese isn’t your language, you could try [Jargon Informatique][4]. This dictionary is entirely in French and, so if you’re new to the language, you might want to stick with something like [Google Translate][5].
|
||||
|
||||
### Writing Aids/ Note Taking
|
||||
|
||||
Linux has everything you need to keep notes on a subject and write those term papers. Let’s start with taking notes. If you’re familiar with Microsoft OneNote, you'll love [BasKet Note Pads][6]. With this app, you can create baskets for subjects and add just about anything ─ notes, links, images, cross references (to other baskets ─ Figure 3), app launchers, load from file, and more.
|
||||
|
||||
![](https://lcom.static.linuxfound.org/images/stories/41373/basket.jpg)
|
||||
|
||||
You can create baskets that are free-form, so elements can be moved around to suit your need. If you prefer a more ordered feel, create a columned basket to retain those notes walled in.
|
||||
|
||||
Of course, the mother of all writing aids for Linux would be [LibreOffice][7]. The default office suite on most Linux distributions, LibreOffice has your text documents, spreadsheets, presentations, databases, formula, and drawing covered.
|
||||
|
||||
The one caveat to using LibreOffice in an educational environment, is that you will most likely have to save your documents in the MS Office format.
|
||||
|
||||
### Education-specific distribution
|
||||
|
||||
With all of this said about Linux applications geared toward the student in mind, it might behoove you to take a look at one of the distributions created specifically for education. The best in breed is [Edubuntu][8]. This grassroots Linux distribution aims at getting Linux into schools, homes, and communities. Edubuntu uses the default Ubuntu desktop (the Unity shell) and adds the following software:
|
||||
|
||||
|
||||
+ KDE Education Suite
|
||||
|
||||
+ GCompris
|
||||
|
||||
+ Celestia
|
||||
|
||||
+ Tux4Kids
|
||||
|
||||
+ Epoptes
|
||||
|
||||
+ LTSP
|
||||
|
||||
+ GBrainy
|
||||
|
||||
+ and much more.
|
||||
|
||||
Edubuntu isn’t the only game in town. If you’d rather test other education-specific Linux distributions, here’s the short list:
|
||||
|
||||
|
||||
+ Debian-Edu
|
||||
|
||||
+ Fedora Education Spin
|
||||
|
||||
+ Guadalinux-Edu
|
||||
|
||||
+ OpenSuse-Edu
|
||||
|
||||
+ Qimo for Kids
|
||||
|
||||
+ Uberstudent.
|
||||
|
||||
### Classroom/institutional administration
|
||||
|
||||
This is where the Linux platform really shines. There are a number of tools geared specifically for administering. Let’s first look at tools specific to the classroom.
|
||||
|
||||
[iTalc][9] is a powerful didactical environment for the classroom. With this tool, teachers can view and control students desktops (supporting Linux and Windows). The iTalc system allows teachers to view what’s happening on a student's desktop, take control of their desktop, lock their desktop, show demonstrations to desktops, power on/off desktops, send text messages to students' desktops, and much more.
|
||||
|
||||
[aTutor][10] (Figure 4) is an open source Learning Management System (LMS) focused on developing online courses and e-learning content. Where aTutor really shines is the creation and management of online tests and quizzes. Of course, aTutor is not limited to testing purposes. With this powerful software, students and teachers can enjoy:
|
||||
|
||||
* Social networking
|
||||
|
||||
* Profiles
|
||||
|
||||
* Messaging
|
||||
|
||||
* Adaptive navigation
|
||||
|
||||
* Work groups
|
||||
|
||||
* File storage
|
||||
|
||||
* Group blogs
|
||||
|
||||
* and much more.
|
||||
|
||||
![](https://lcom.static.linuxfound.org/images/stories/41373/atutor.png)
|
||||
|
||||
|
||||
Course material is easy to create and deploy (you can even assign tests/quizzes to specific study groups).
|
||||
|
||||
[Moodle][11] is one of the most widely used educational management software titles available. With Moodle you can manage, teach, learn, and even participate in your child’s education. This powerhouse software offers collaborative tools for teachers and students, exams, calendars, forums, file management, course management (Figure 5), notifications, progress tracking, mass enrollment, bulk course creation, attendance, and much more.
|
||||
|
||||
![](https://lcom.static.linuxfound.org/images/stories/41373/moodle.png)
|
||||
|
||||
[OpenSIS][12] stands for Open Source Student Information System and does a great job of managing your educational institution. There is a free community edition, but even with the paid version you can look forward to reducing ownership costs for a school district by up to 75 percent (when compared to proprietary solutions).
|
||||
|
||||
OpenSIS includes the following features/modules:
|
||||
|
||||
* Attendance (Figure 6)
|
||||
|
||||
* Contact information
|
||||
|
||||
* Student demographics
|
||||
|
||||
* Gradebook
|
||||
|
||||
* Scheduling
|
||||
|
||||
* Health records
|
||||
|
||||
* Report cards.
|
||||
|
||||
![](https://lcom.static.linuxfound.org/images/stories/41373/opensis.png)
|
||||
|
||||
|
||||
There are four editions of OpenSIS. Check out the feature comparison matrix [here][13].
|
||||
|
||||
[vufind][14] is an outstanding library management system that allows students and teachers to easily browse for library resources such as:
|
||||
|
||||
* Catalog Records
|
||||
|
||||
* Locally Cached Journals
|
||||
|
||||
* Digital Library Items
|
||||
|
||||
* Institutional Repository
|
||||
|
||||
* Institutional Bibliography
|
||||
|
||||
* Other Library Collections and Resources.
|
||||
|
||||
|
||||
|
||||
|
||||
The vufind system allows user login where authenticated users can save resources for quick recall and enjoy “more like this” results.
|
||||
|
||||
This list just barely scratches the surface of what is available for Linux in the educational arena. And, as you might expect, each tool is highly customizable and open source ─ so if the software doesn’t precisely meet your needs, you are free (in most cases) to modify the source and change it.
|
||||
|
||||
Linux and education go hand in hand. Whether you are a teacher, a student, or an administrator, you’ll find plenty of tools to help make the institution of education open, flexible, and powerful.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.linux.com/news/best-linux-tools-teachers-and-students
|
||||
|
||||
作者:[Jack Wallen][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://www.linux.com/users/jlwallen
|
||||
[1]:https://edu.kde.org/kwordquiz/
|
||||
[2]:http://kde-files.org/index.php?xcontentmode=694
|
||||
[3]:https://edu.kde.org/kiten/
|
||||
[4]:http://jargon.asher256.com/index.php
|
||||
[5]:https://translate.google.com/
|
||||
[6]:http://basket.kde.org/
|
||||
[7]:http://www.libreoffice.com
|
||||
[8]:http://www.edubuntu.org/
|
||||
[9]:http://italc.sourceforge.net/
|
||||
[10]:http://www.atutor.ca/
|
||||
[11]:https://moodle.org/
|
||||
[12]:http://www.opensis.com/
|
||||
[13]:http://www.opensis.com/compare_edition.php
|
||||
[14]:http://vufind-org.github.io/vufind/
|
@ -1,3 +1,5 @@
|
||||
pinewall translating
|
||||
|
||||
Configuring local storage in Linux with Stratis
|
||||
======
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
pinewall translating
|
||||
|
||||
What Stratis learned from ZFS, Btrfs, and Linux Volume Manager | Opensource.com
|
||||
======
|
||||
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/cloud-windows-building-containers.png?itok=0XvZLZ8k)
|
||||
|
@ -0,0 +1,287 @@
|
||||
A Set Of Useful Utilities For Debian And Ubuntu Users
|
||||
======
|
||||
|
||||
![](https://www.ostechnix.com/debian-goodies-a-set-of-useful-utilities-for-debian-and-ubuntu-users/)
|
||||
|
||||
Are you using a Debian-based system? Great! I am here today with a good news for you. Say hello to **“Debian-goodies”** , a collection of useful utilities for Debian-based systems, like Ubuntu, Linux Mint. These set of utilities provides some additional useful commands which are not available by default in the Debian-based systems. Using these tools, the users can find which programs are consuming more disk space, which services need to be restarted after updating the system, search for a file matching a pattern in a package, list the installed packages based on the search string and a lot more. In this brief guide, we will be discussing some useful Debian goodies.
|
||||
|
||||
### Debian-goodies – Useful Utilities For Debian And Ubuntu Users
|
||||
|
||||
The debian-goodies package is available in the official repositories of Debian and its derivative Ubuntu and other Ubuntu variants such as Linux Mint. To install debian-goodies package, simply run:
|
||||
```
|
||||
$ sudo apt-get install debian-goodies
|
||||
|
||||
```
|
||||
|
||||
Debian-goodies has just been installed. Let us go ahead and see some useful utilities.
|
||||
|
||||
#### **1. Checkrestart**
|
||||
|
||||
Let me start from one of my favorite, the **“checkrestart”** utility. When installing security updates, some running applications might still use the old libraries. In order to apply the security updates completely, you need to find and restart all of them. This is where Checkrestart comes in handy. This utility will find which processes are still using the old versions of libs. You can then restart the services.
|
||||
|
||||
To check which daemons need to be restarted after library upgrades, run:
|
||||
```
|
||||
$ sudo checkrestart
|
||||
[sudo] password for sk:
|
||||
Found 0 processes using old versions of upgraded files
|
||||
|
||||
```
|
||||
|
||||
Since I didn’t perform any security updates lately, it shows nothing.
|
||||
|
||||
Please note that Checkrestart utility does work well. However, there is a new similar tool named “needrestart” available latest Debian systems. The needrestart is inspired by the checkrestart utility and it does exactly the same job. Needrestart is actively maintained and supports newer technologies such as containers (LXC, Docker).
|
||||
|
||||
Here are the features of Needrestart:
|
||||
|
||||
* supports (but does not require) systemd
|
||||
* binary blacklisting (i.e. display managers)
|
||||
* tries to detect pending kernel upgrades
|
||||
* tries to detect required restarts of interpreter based daemons (supports Perl, Python, Ruby)
|
||||
* fully integrated into apt/dpkg using hooks
|
||||
|
||||
|
||||
|
||||
It is available in the default repositories too. so, you can install it using command:
|
||||
```
|
||||
$ sudo apt-get install needrestart
|
||||
|
||||
```
|
||||
|
||||
Now you can check the list of daemons need to be restarted after updating your system using command:
|
||||
```
|
||||
$ sudo needrestart
|
||||
Scanning processes...
|
||||
Scanning linux images...
|
||||
|
||||
Running kernel seems to be up-to-date.
|
||||
|
||||
Failed to check for processor microcode upgrades.
|
||||
|
||||
No services need to be restarted.
|
||||
|
||||
No containers need to be restarted.
|
||||
|
||||
No user sessions are running outdated binaries.
|
||||
|
||||
```
|
||||
|
||||
The good thing is Needrestart works on other Linux distributions too. For example, you can install on Arch Linux and its variants from AUR using any AUR helper programs like below.
|
||||
```
|
||||
$ yaourt -S needrestart
|
||||
|
||||
```
|
||||
|
||||
On fedora:
|
||||
```
|
||||
$ sudo dnf install needrestart
|
||||
|
||||
```
|
||||
|
||||
#### 2. Check-enhancements
|
||||
|
||||
The check-enhancements utility is used to find packages which enhance the installed packages. This utility will list all packages that enhances other packages but are not strictly necessary to run it. You can find enhancements for a single package or all installed installed packages using “-ip” or “–installed-packages” flag.
|
||||
|
||||
For example, I am going to list the enhancements for gimp package.
|
||||
```
|
||||
$ check-enhancements gimp
|
||||
gimp => gimp-data: Installed: (none) Candidate: 2.8.22-1
|
||||
gimp => gimp-gmic: Installed: (none) Candidate: 1.7.9+zart-4build3
|
||||
gimp => gimp-gutenprint: Installed: (none) Candidate: 5.2.13-2
|
||||
gimp => gimp-help-ca: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-de: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-el: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-en: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-es: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-fr: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-it: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-ja: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-ko: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-nl: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-nn: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-pt: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-ru: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-sl: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-help-sv: Installed: (none) Candidate: 2.8.2-0.1
|
||||
gimp => gimp-plugin-registry: Installed: (none) Candidate: 7.20140602ubuntu3
|
||||
gimp => xcftools: Installed: (none) Candidate: 1.0.7-6
|
||||
|
||||
```
|
||||
|
||||
To list the enhancements for all installed packages, run:
|
||||
```
|
||||
$ check-enhancements -ip
|
||||
autoconf => autoconf-archive: Installed: (none) Candidate: 20170928-2
|
||||
btrfs-progs => snapper: Installed: (none) Candidate: 0.5.4-3
|
||||
ca-certificates => ca-cacert: Installed: (none) Candidate: 2011.0523-2
|
||||
cryptsetup => mandos-client: Installed: (none) Candidate: 1.7.19-1
|
||||
dpkg => debsig-verify: Installed: (none) Candidate: 0.18
|
||||
[...]
|
||||
|
||||
```
|
||||
|
||||
#### 3. dgrep
|
||||
|
||||
As the name implies, dgrep is used to search all files in specified packages based on the given regex. For instance, I am going to search for files that contains the regex “text” in Vim package.
|
||||
```
|
||||
$ sudo dgrep "text" vim
|
||||
Binary file /usr/bin/vim.tiny matches
|
||||
/usr/share/doc/vim-tiny/copyright: that they must include this license text. You can also distribute
|
||||
/usr/share/doc/vim-tiny/copyright: include this license text. You are also allowed to include executables
|
||||
/usr/share/doc/vim-tiny/copyright: 1) This license text must be included unmodified.
|
||||
/usr/share/doc/vim-tiny/copyright: text under a) applies to those changes.
|
||||
/usr/share/doc/vim-tiny/copyright: context diff. You can choose what license to use for new code you
|
||||
/usr/share/doc/vim-tiny/copyright: context diff will do. The e-mail address to be used is
|
||||
/usr/share/doc/vim-tiny/copyright: On Debian systems, the complete text of the GPL version 2 license can be
|
||||
[...]
|
||||
|
||||
```
|
||||
|
||||
The dgrep supports most of grep’s options. Refer the following guide to learn grep commands.
|
||||
|
||||
#### 4 dglob
|
||||
|
||||
The dglob utility generates a list of package names which match a pattern. For example, find the list of packages that matches the string “vim”.
|
||||
```
|
||||
$ sudo dglob vim
|
||||
vim-tiny:amd64
|
||||
vim:amd64
|
||||
vim-common:all
|
||||
vim-runtime:all
|
||||
|
||||
```
|
||||
|
||||
By default, dglob will display only the installed packages. If you want to list all packages (installed and not installed), use **-a** flag.
|
||||
```
|
||||
$ sudo dglob vim -a
|
||||
|
||||
```
|
||||
|
||||
#### 5. debget
|
||||
|
||||
The **debget** utility will download a .deb for a package in APT’s database. Please note that it will only download the given package, not the dependencies.
|
||||
```
|
||||
$ debget nano
|
||||
Get:1 http://in.archive.ubuntu.com/ubuntu bionic/main amd64 nano amd64 2.9.3-2 [231 kB]
|
||||
Fetched 231 kB in 2s (113 kB/s)
|
||||
|
||||
```
|
||||
|
||||
#### 6. dpigs
|
||||
|
||||
This is another useful utility in this collection. The **dpigs** utility will find and show you which installed packages occupy the most disk space.
|
||||
```
|
||||
$ dpigs
|
||||
260644 linux-firmware
|
||||
167195 linux-modules-extra-4.15.0-20-generic
|
||||
75186 linux-headers-4.15.0-20
|
||||
64217 linux-modules-4.15.0-20-generic
|
||||
55620 snapd
|
||||
31376 git
|
||||
31070 libicu60
|
||||
28420 vim-runtime
|
||||
25971 gcc-7
|
||||
24349 g++-7
|
||||
|
||||
```
|
||||
|
||||
As you can see, the linux-firmware packages occupies the most disk space. By default, it will display the **top 10** packages that occupies the most disk space. If you want to display more packages, for example 20, run the following command:
|
||||
```
|
||||
$ dpigs -n 20
|
||||
|
||||
```
|
||||
|
||||
#### 7. debman
|
||||
|
||||
The **debman** utility allows you to easily view man pages from a binary **.deb** without extracting it. You don’t even need to install the .deb package. The following command displays the man page of nano package.
|
||||
```
|
||||
$ debman -f nano_2.9.3-2_amd64.deb nano
|
||||
|
||||
```
|
||||
|
||||
If you don’t have a local copy of the .deb package, use **-p** flag to download and view package’s man page.
|
||||
```
|
||||
$ debman -p nano nano
|
||||
|
||||
```
|
||||
|
||||
**Suggested read:**
|
||||
|
||||
#### 8. debmany
|
||||
|
||||
An installed Debian package has not only a man page, but also includes other files such as acknowledgement, copy right, and read me etc. The **debmany** utility allows you to view and read those files.
|
||||
```
|
||||
$ debmany vim
|
||||
|
||||
```
|
||||
|
||||
![][1]
|
||||
|
||||
Choose the file you want to view using arrow keys and hit ENTER to view the selected file. Press **q** to go back to the main menu.
|
||||
|
||||
If the specified package is not installed, debmany will download it from the APT database and display the man pages. The **dialog** package should be installed to read the man pages.
|
||||
|
||||
#### 9. popbugs
|
||||
|
||||
If you’re a developer, the **popbugs** utility will be quite useful. It will display a customized release-critical bug list based on packages you use (using popularity-contest data). For those who don’t know, the popularity-contest package sets up a cron job that will periodically anonymously submit to the Debian developers statistics about the most used Debian packages on this system. This information helps Debian make decisions such as which packages should go on the first CD. It also lets Debian improve future versions of the distribution so that the most popular packages are the ones which are installed automatically for new users.
|
||||
|
||||
To generate a list of critical bugs and display the result in your default web browser, run:
|
||||
```
|
||||
$ popbugs
|
||||
|
||||
```
|
||||
|
||||
Also, you can save the result in a file as shown below.
|
||||
```
|
||||
$ popbugs --output=bugs.txt
|
||||
|
||||
```
|
||||
|
||||
#### 10. which-pkg-broke
|
||||
|
||||
This command will display all the dependencies of the given package and when each dependency was installed. By using this information, you can easily find which package might have broken another at what time after upgrading the system or a package.
|
||||
```
|
||||
$ which-pkg-broke vim
|
||||
Package <debconf-2.0> has no install time info
|
||||
debconf Wed Apr 25 08:08:40 2018
|
||||
gcc-8-base:amd64 Wed Apr 25 08:08:41 2018
|
||||
libacl1:amd64 Wed Apr 25 08:08:41 2018
|
||||
libattr1:amd64 Wed Apr 25 08:08:41 2018
|
||||
dpkg Wed Apr 25 08:08:41 2018
|
||||
libbz2-1.0:amd64 Wed Apr 25 08:08:41 2018
|
||||
libc6:amd64 Wed Apr 25 08:08:42 2018
|
||||
libgcc1:amd64 Wed Apr 25 08:08:42 2018
|
||||
liblzma5:amd64 Wed Apr 25 08:08:42 2018
|
||||
libdb5.3:amd64 Wed Apr 25 08:08:42 2018
|
||||
[...]
|
||||
|
||||
```
|
||||
|
||||
#### 11. dhomepage
|
||||
|
||||
The dhomepage utility will display the official website of the given package in your default web browser. For example, the following command will open Vim editor’s home page.
|
||||
```
|
||||
$ dhomepage vim
|
||||
|
||||
```
|
||||
|
||||
And, that’s all for now. Debian-goodies is a must-have tool in your arsenal. Even though, we don’t use all those utilities often, they are worth to learn and I am sure they will be really helpful at times.
|
||||
|
||||
I hope this was useful. More good stuffs to come. Stay tuned!
|
||||
|
||||
Cheers!
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.ostechnix.com/debian-goodies-a-set-of-useful-utilities-for-debian-and-ubuntu-users/
|
||||
|
||||
作者:[SK][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://www.ostechnix.com/author/sk/
|
||||
[1]:http://www.ostechnix.com/wp-content/uploads/2018/05/debmany.png
|
223
sources/tech/20180523 How to dual-boot Linux and Windows.md
Normal file
223
sources/tech/20180523 How to dual-boot Linux and Windows.md
Normal file
@ -0,0 +1,223 @@
|
||||
How to dual-boot Linux and Windows
|
||||
======
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/migration_innovation_computer_software.png?itok=VCFLtd0q)
|
||||
|
||||
Even though Linux is a great operating system with widespread hardware and software support, the reality is that sometimes you have to use Windows, perhaps due to key apps that won't run under Linux. Thankfully, dual-booting Windows and Linux is very straightforward—and I'll show you how to set it up, with Windows 10 and Ubuntu 18.04, in this article.
|
||||
|
||||
Before you get started, make sure you've backed up your computer. Although the dual-boot setup process is not very involved, accidents can still happen. So take the time to back up your important files in case chaos theory comes into play. In addition to backing up your files, consider taking an image backup of the disk as well, though that's not required and can be a more advanced process.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
To get started, you will need the following five items:
|
||||
|
||||
#### 1\. Two USB flash drives (or DVD-Rs)
|
||||
|
||||
I recommend installing Windows and Ubuntu via flash drives since they're faster than DVDs. It probably goes without saying, but creating bootable media erases everything on the flash drive. Therefore, make sure the flash drives are empty or contain data you don't care about losing.
|
||||
|
||||
If your machine doesn't support booting from USB, you can create DVD media instead. Unfortunately, because no two computers seem to have the same DVD-burning software, I can't walk you through that process. However, if your DVD-burning application has an option to burn from an ISO image, that's the option you need.
|
||||
|
||||
#### 2\. A Windows 10 license
|
||||
|
||||
If Windows 10 came with your PC, the license will be built into the computer, so you don't need to worry about entering it during installation. If you bought the retail edition, you should have a product key, which you will need to enter during the installation process.
|
||||
|
||||
#### 3\. Windows 10 Media Creation Tool
|
||||
|
||||
Download and launch the Windows 10 [Media Creation Tool][1]. Once you launch the tool, it will walk you through the steps required to create the Windows media on a USB or DVD-R. Note: Even if you already have Windows 10 installed, it's a good idea to create bootable media anyway, just in case something goes wrong and you need to reinstall it.
|
||||
|
||||
#### 4\. Ubuntu 18.04 installation media
|
||||
|
||||
Download the [Ubuntu 18.04][2] ISO image.
|
||||
|
||||
#### 5\. Etcher software (for making a bootable Ubuntu USB drive)
|
||||
|
||||
For creating bootable media for any Linux distribution, I recommend [Etcher][3]. Etcher works on all three major operating systems (Linux, MacOS, and Windows) and is careful not to let you overwrite your current operating system partition.
|
||||
|
||||
Once you have downloaded and launched Etcher, click Select image, and point it to the Ubuntu ISO you downloaded in step 4. Next, click Select drive to choose your flash drive, and click Flash! to start the process of turning a flash drive into an Ubuntu installer. (If you're using a DVD-R, use your computer's DVD-burning software instead.)
|
||||
|
||||
### Install Windows and Ubuntu
|
||||
|
||||
You should be ready to begin. At this point, you should have accomplished the following:
|
||||
|
||||
* Backed up your important files
|
||||
* Created Windows installation media
|
||||
* Created Ubuntu installation media
|
||||
|
||||
|
||||
|
||||
There are two ways of going about the installation. First, if you already have Windows 10 installed, you can have the Ubuntu installer resize the partition, and the installation will proceed in the empty space. Or, if you haven't installed Windows 10, install it on a smaller partition you can set up during the installation process. (I'll describe how to do that below.) The second way is preferred and less error-prone. There's a good chance you won't have any issues either way, but installing Windows manually and giving it a smaller partition, then installing Ubuntu, is the easiest way to go.
|
||||
|
||||
If you already have Windows 10 on your computer, skip the following Windows installation instructions and proceed to Installing Ubuntu.
|
||||
|
||||
#### Installing Windows
|
||||
|
||||
Insert the Windows installation media you created into your computer and boot from it. How you do this depends on your computer, but most have a key you can press to initiate the boot menu. On a Dell PC for example, that key is F12. If the flash drive doesn't show up as an option, you may need to restart the computer. Sometimes it will show up only if you've inserted the media before turning on the computer. If you see a message like, "press any key to boot from the installation media," press a key. You should see the following screen. Select your language and keyboard style and click Next.
|
||||
|
||||
![Windows setup][5]
|
||||
|
||||
Click on Install now to start the Windows installer.
|
||||
|
||||
On the next screen, it will ask for your product key. If you don't have one because Windows 10 came with your PC, select "I don't have a product key." It should automatically activate after the installation once it catches up with updates. If you do have a product key, type that in and click Next.
|
||||
|
||||
|
||||
![Enter product key][7]
|
||||
|
||||
|
||||
Select which version of Windows you want to install. If you have a retail copy, the label will tell you what version you have. Otherwise, it is typically located with the documentation that came with your computer. In most cases, it's going to be either Windows 10 Home or Windows 10 Pro. Most PCs that come with the Home edition have a label that simply reads "Windows 10," while Pro is clearly marked.
|
||||
|
||||
|
||||
![Select Windows version][10]
|
||||
|
||||
|
||||
Accept the license agreement by checking the box, then click Next.
|
||||
|
||||
|
||||
![Accept license terms][12]
|
||||
|
||||
|
||||
After accepting the agreement, you have two installation options available. Choose the second option, Custom: Install Windows only (advanced).
|
||||
|
||||
|
||||
![Select type of Windows installation][14]
|
||||
|
||||
|
||||
The next screen should show your current hard disk configuration.
|
||||
|
||||
|
||||
![Hard drive configuration][16]
|
||||
|
||||
|
||||
Your results will probably look different than mine. I have never used this hard disk before, so it's completely unallocated. You will probably see one or more partitions for your current operating system. Highlight each partition and remove it.
|
||||
|
||||
At this point, your screen will show your entire disk as unallocated. To continue, create a new partition.
|
||||
|
||||
|
||||
![Create a new partition][18]
|
||||
|
||||
|
||||
Here you can see that I divided the drive in half (or close enough) by creating a partition of 81,920MB (which is close to half of 160GB). Give Windows at least 40GB, preferably 64GB or more. Leave the rest of the drive unallocated, as that's where you'll install Ubuntu later.
|
||||
|
||||
Your results will look similar to this:
|
||||
|
||||
|
||||
![Leaving a partition with unallocated space][20]
|
||||
|
||||
|
||||
Confirm the partitioning looks good to you and click Next. Windows will begin installing.
|
||||
|
||||
|
||||
![Installing Windows][22]
|
||||
|
||||
|
||||
If your computer successfully boots into Windows, you're all set to move on to the next step.
|
||||
|
||||
![Windows desktop][24]
|
||||
|
||||
|
||||
#### Installing Ubuntu
|
||||
|
||||
Whether it was already there or you worked through the steps above, at this point you should have Windows installed. Now use the Ubuntu installation media you created earlier to boot into Ubuntu. Go ahead and insert the media and boot your computer from it. Again, the exact sequence of keys to access the boot menu varies from one computer to another, so check your documentation if you're not sure. If all goes well, you see the following screen once the media finishes loading:
|
||||
|
||||
|
||||
![Ubuntu installation welcome screen][26]
|
||||
|
||||
|
||||
Here, you can select between Try Ubuntu or Install Ubuntu. Don't install just yet; instead, click Try Ubuntu. After it finishes loading, you should see the Ubuntu desktop.
|
||||
|
||||
|
||||
![Ubuntu desktop][28]
|
||||
|
||||
By clicking Try Ubuntu, you have opted to try out Ubuntu before you install it. Here, in Live mode, you can play around with Ubuntu and make sure everything works before you commit to the installation. Ubuntu works with most PC hardware, but it's always better to test it out beforehand. Make sure you can access the internet and get audio and video playback. Going to YouTube and playing a video is a good way of doing all of that at once. If you need to connect to a wireless network, click on the networking icon at the top-right of the screen. There, you can find a list of wireless networks and connect to yours.
|
||||
|
||||
Once you're ready to go, double-click on the Install Ubuntu 18.04 LTS icon on the desktop to launch the installer.
|
||||
|
||||
Choose the language you want to use for the installation process, then click Continue.
|
||||
|
||||
|
||||
![Select language in Ubuntu][30]
|
||||
|
||||
|
||||
Next, choose the keyboard layout. Once you've made your selection, click Continue.
|
||||
|
||||
|
||||
![Select keyboard in Ubuntu][32]
|
||||
|
||||
You have a few options on the screen below. One, you can choose a Normal or a Minimal installation. For most people, the Normal installation is ideal. Advanced users may want to do a Minimal install instead, which has fewer software applications installed by default. In addition, you can choose to download updates and whether or not to include third-party software and drivers. I recommend checking both of those boxes. When done, click Continue.
|
||||
|
||||
|
||||
![Choose Ubuntu installation options][34]
|
||||
|
||||
The next screen asks whether you want to erase the disk or set up a dual-boot. Since you're dual-booting, choose Install Ubuntu alongside Windows 10. Click Install Now.
|
||||
|
||||
|
||||
![install Ubuntu alongside Windows][36]
|
||||
|
||||
|
||||
The following screen may appear. If you installed Windows from scratch and left unallocated space on the disk, Ubuntu will automatically set itself up in the empty space, so you won't see this screen. If you already had Windows 10 installed and it's taking up the entire drive, this screen will appear and give you an option to select a disk at the top. If you have just one disk, you can choose how much space to steal from Windows and apply to Ubuntu. You can drag the vertical line in the middle left and right with your mouse to take space away from one and gives it to the other. Adjust this exactly the way you want it, then click Install Now.
|
||||
|
||||
|
||||
![Allocate drive space][38]
|
||||
|
||||
|
||||
You should see a confirmation screen indicating what Ubuntu plans on doing. If everything looks right, click Continue.
|
||||
|
||||
Ubuntu is now installing in the background. You still have some configuration to do, though. While Ubuntu tries its best to figure out your location, you can click on the map to narrow it down to ensure your time zone and other things are set correctly.
|
||||
|
||||
Next, fill in the user account information: your name, computer name, username, and password. Click Continue when you're done.
|
||||
|
||||
There you have it! The installation is complete. Go ahead and reboot the PC.
|
||||
|
||||
If all went according to plan, you should see a screen similar to this when your computer restarts. Choose Ubuntu or Windows 10; the other options are for troubleshooting, so I won't go into them.
|
||||
|
||||
Try booting into both Ubuntu and Windows to test them out and make sure everything works as expected. If it does, you now have both Windows and Ubuntu installed on your computer.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/18/5/dual-boot-linux
|
||||
|
||||
作者:[Jay LaCroix][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://opensource.com/users/jlacroix
|
||||
[1]:https://www.microsoft.com/en-us/software-download/windows10
|
||||
[2]:https://www.ubuntu.com/download/desktop
|
||||
[3]:http://www.etcher.io
|
||||
[4]:/file/397066
|
||||
[5]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_01.png (Windows setup)
|
||||
[6]:/file/397076
|
||||
[7]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_03.png (Enter product key)
|
||||
[8]:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== (Click and drag to move)
|
||||
[9]:/file/397081
|
||||
[10]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_04.png (Select Windows version)
|
||||
[11]:/file/397086
|
||||
[12]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_05.png (Accept license terms)
|
||||
[13]:/file/397091
|
||||
[14]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_06.png (Select type of Windows installation)
|
||||
[15]:/file/397096
|
||||
[16]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_07.png (Hard drive configuration)
|
||||
[17]:/file/397101
|
||||
[18]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_08.png (Create a new partition)
|
||||
[19]:/file/397106
|
||||
[20]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_09.png (Leaving a partition with unallocated space)
|
||||
[21]:/file/397111
|
||||
[22]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_10.png (Installing Windows)
|
||||
[23]:/file/397116
|
||||
[24]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_11.png (Windows desktop)
|
||||
[25]:/file/397121
|
||||
[26]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_12.png (Ubuntu installation welcome screen)
|
||||
[27]:/file/397126
|
||||
[28]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_13.png (Ubuntu desktop)
|
||||
[29]:/file/397131
|
||||
[30]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_15.png (Select language in Ubuntu)
|
||||
[31]:/file/397136
|
||||
[32]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_16.png (Select keyboard in Ubuntu)
|
||||
[33]:/file/397141
|
||||
[34]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_17.png (Choose Ubuntu installation options)
|
||||
[35]:/file/397146
|
||||
[36]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_18.png (Install Ubuntu alongside Windows)
|
||||
[37]:/file/397151
|
||||
[38]:https://opensource.com/sites/default/files/uploads/linux-dual-boot_18b.png (Allocate drive space)
|
71
sources/tech/20180523 Set up zsh on your Fedora system.md
Normal file
71
sources/tech/20180523 Set up zsh on your Fedora system.md
Normal file
@ -0,0 +1,71 @@
|
||||
Set up zsh on your Fedora system
|
||||
======
|
||||
|
||||
![](https://fedoramagazine.org/wp-content/uploads/2017/12/zsh-816x345.jpg)
|
||||
|
||||
For some people, the terminal can be scary. But a terminal is more than just a black screen to type in. It usually runs a shell, so called because it wraps around the kernel. The shell is a text-based interface that lets you run commands on the system. It’s also sometimes called a command line interpreter or CLI. Fedora, like most Linux distributions, comes with bash as the default shell. However, it isn’t the only shell available; several other shells can be installed. This article focuses on the Z Shell, or zsh.
|
||||
|
||||
Bash is a rewrite of the old Bourne shell (sh) that shipped in UNIX. Zsh is intended to be friendlier than bash, through better interaction. Some of its useful features are:
|
||||
|
||||
* Programmable command line completion
|
||||
* Shared command history between running shell sessions
|
||||
* Spelling correction
|
||||
* Loadable modules
|
||||
* Interactive selection of files and folders
|
||||
|
||||
|
||||
|
||||
Zsh is available in the Fedora repositories. To install, run this command:
|
||||
```
|
||||
$ sudo dnf install zsh
|
||||
|
||||
```
|
||||
|
||||
### Using zsh
|
||||
|
||||
To start using it, just type zsh and the new shell prompts you with a first run wizard. This wizard helps you configure initial features, like history behavior and auto-completion. Or you can opt to keep the [rc file][1] empty:
|
||||
|
||||
![zsh First Run Wizzard][2]
|
||||
|
||||
If you type 1 the configuration wizard starts. The other options launch the shell immediately.
|
||||
|
||||
Note that the user prompt is **%** and not **$** as with bash. A significant feature here is the auto-completion that allows you to move among files and directories with the Tab key, much like a menu:
|
||||
|
||||
![zsh cd Feature][3]
|
||||
|
||||
Another interesting feature is spelling correction, which helps when writing filenames with mixed cases:
|
||||
|
||||
![zsh Auto Completion][4]
|
||||
|
||||
## Making zsh your default shell
|
||||
|
||||
Zsh offers a lot of plugins, like zsh-syntax-highlighting, and the famous “Oh my zsh” ([check out its page here][5]). You might want to make it the default, so it runs whenever you start a session or open a terminal. To do this, use the chsh (“change shell”) command:
|
||||
```
|
||||
$ chsh -s $(which zsh)
|
||||
|
||||
```
|
||||
|
||||
This command tells your system that you want to set (-s) your default shell to the correct location of the shell (which zsh).
|
||||
|
||||
Photo by [Kate Ter Haar][6] from [Flickr][7] (CC BY-SA).
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://fedoramagazine.org/set-zsh-fedora-system/
|
||||
|
||||
作者:[Eduard Lucena][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://fedoramagazine.org/author/x3mboy/
|
||||
[1]:https://en.wikipedia.org/wiki/Configuration_file
|
||||
[2]:https://fedoramagazine.org/wp-content/uploads/2017/12/zshFirstRun.gif
|
||||
[3]:https://fedoramagazine.org/wp-content/uploads/2017/12/zshChangingFeature-1.gif
|
||||
[4]:https://fedoramagazine.org/wp-content/uploads/2017/12/zshAutoCompletion.gif
|
||||
[5]:http://ohmyz.sh/
|
||||
[6]:https://www.flickr.com/photos/katerha/
|
||||
[7]:https://www.flickr.com/photos/katerha/34714051013/
|
119
sources/tech/20180524 4 Markdown-powered slide generators.md
Normal file
119
sources/tech/20180524 4 Markdown-powered slide generators.md
Normal file
@ -0,0 +1,119 @@
|
||||
4 Markdown-powered slide generators
|
||||
======
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/bus_presentation.png?itok=CQeyO61b)
|
||||
|
||||
Imagine you've been tapped to give a presentation. As you're preparing your talk, you think, "I should whip up a few slides."
|
||||
|
||||
Maybe you prefer the simplicity of [plain text][1], or maybe you think software like LibreOffice Writer is overkill for what you need to do. Or perhaps you just want to embrace your inner geek.
|
||||
|
||||
It's easy to turn files formatted with [Markdown][2] into attractive presentation slides. Here are four tools that can do help you do the job.
|
||||
|
||||
### Landslide
|
||||
|
||||
One of the more flexible applications on this list, [Landslide][3] is a command-line application that takes files formatted with Markdown, [reStructuredText][4], or [Textile][5] and converts them into an HTML file based on [Google’s HTML5 slides template][6].
|
||||
|
||||
All you need to do is write up your slides with Markdown, crack open a terminal window, and run the command `landslide` followed by the name of the file. Landslide will spit out presentation.html, which you can open in any web browser. Simple, isn’t it?
|
||||
|
||||
Don't let that simplicity fool you. Landslide offers more than a few useful features, such as the ability to add notes and create configuration files for your slides. Why would you want to do that? According to Landslide's developer, it helps with aggregating and reusing source directories across presentations.
|
||||
|
||||
|
||||
![landslide.png][8]
|
||||
|
||||
Viewing presenter notes in a Landslide presentation
|
||||
|
||||
### Marp
|
||||
|
||||
[Marp][9] is a work in progress, but it shows promise. Short for "Markdown Presentation Writer," Marp is an [Electron][10] app in which you craft slides using a simple two-pane editor: Write in Markdown in the left pane and you get a preview in the right pane.
|
||||
|
||||
Marp supports [GitHub Flavored Markdown][11]. If you need a quick tutorial on using GitHub Flavored Markdown to write slides, check out the [sample presentation][12]. It's a bit more flexible than baseline Markdown.
|
||||
|
||||
While Marp comes with only two very basic themes, you can add background images to your slides, resize them, and include math. On the down side, it currently lets you export your slides only as PDF files. To be honest, I wonder why HTML export wasn’t a feature from day one.
|
||||
|
||||
|
||||
![marp.png][14]
|
||||
|
||||
Editing some simple slides in Marp
|
||||
|
||||
### Pandoc
|
||||
|
||||
You probably know [pandoc][15] as a magic wand for converting between various markup languages. What you might not know is that pandoc can take a file formatted with Markdown and create attractive HTML slides that work with the [Slidy][16], [Slideous][17], [DZSlides][18], [S5][19], and [Reveal.js][20] presentation frameworks. If you prefer [LaTeX][21], you can also output PDF slides using the [Beamer package][22].
|
||||
|
||||
You'll need to [use specific formatting][23] for your slides, but you can add some [variables][24] to control how they behave. You can also change the look and feel of your slides, add pauses between slides, and include speaker notes.
|
||||
|
||||
Of course, you must have the supporting files for your preferred presentation framework installed on your computer. Pandoc spits out only the raw slide file.
|
||||
|
||||
|
||||
![pandoc.png][26]
|
||||
|
||||
Viewing slides created with Pandoc and DZSlides
|
||||
|
||||
### Hacker Slides
|
||||
|
||||
[Hacker Slides][27] is an application for [Sandstorm][28] and [Sandstorm Oasis][29] that mates Markdown and the [Reveal.js][20] slide framework. The slides are simple, but they can be visually striking.
|
||||
|
||||
Craft your slide deck in a two-pane editor in your browser—type in Markdown on the left and see it rendered on the right. When you're ready to present, you can do it from within Sandstorm or get a link that you can share with others to present remotely.
|
||||
|
||||
What’s that—you say that you don’t use Sandstorm or Sandstorm Oasis? No worries.There's a [version of Hacker Slides][30] that you can run on your desktop or server.
|
||||
|
||||
|
||||
![hacker-slides.png][32]
|
||||
|
||||
Editing slides in Hacker Slides
|
||||
|
||||
### Two honorable mentions
|
||||
|
||||
If you use [Jupyter Notebooks][33] (see community moderator Don Watkins' [article][34]) to publish data or instructional texts, then [Jupyter2slides][35] is for you. It works with Reveal.js to convert a notebook into a nice set of HTML slides.
|
||||
|
||||
If you prefer your applications hosted, test-drive [GitPitch][36]. It works with GitHub, GitLab, and Bitbucket. Just push the source files for your slides to a repository on one of those services, point GitPitch to that repository, and your slides are ready to view at the GitPitch site.
|
||||
|
||||
Do you have a favorite Markdown-powered slide generator? Share it by leaving a comment.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/18/5/markdown-slide-generators
|
||||
|
||||
作者:[Scott Nesbitt][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://opensource.com/users/scottnesbitt
|
||||
[1]:https://plaintextproject.online/
|
||||
[2]:https://en.wikipedia.org/wiki/Markdown
|
||||
[3]:https://github.com/adamzap/landslide
|
||||
[4]:https://en.wikipedia.org/wiki/ReStructuredText
|
||||
[5]:https://en.wikipedia.org/wiki/Textile_(markup_language)
|
||||
[6]:https://github.com/skaegi/html5slides
|
||||
[7]:/file/397441
|
||||
[8]:https://opensource.com/sites/default/files/uploads/landslide.png (landslide.png)
|
||||
[9]:https://yhatt.github.io/marp/
|
||||
[10]:https://en.wikipedia.org/wiki/Electron_(software_framework)
|
||||
[11]:https://guides.github.com/features/mastering-markdown/
|
||||
[12]:https://raw.githubusercontent.com/yhatt/marp/master/example.md
|
||||
[13]:/file/397446
|
||||
[14]:https://opensource.com/sites/default/files/uploads/marp.png (marp.png)
|
||||
[15]:https://pandoc.org/
|
||||
[16]:https://www.w3.org/Talks/Tools/Slidy2/Overview.html#(1)
|
||||
[17]:http://goessner.net/articles/slideous/
|
||||
[18]:http://paulrouget.com/dzslides/
|
||||
[19]:https://meyerweb.com/eric/tools/s5/
|
||||
[20]:https://revealjs.com/#/
|
||||
[21]:https://www.latex-project.org/
|
||||
[22]:https://en.wikipedia.org/wiki/Beamer_(LaTeX)
|
||||
[23]:https://pandoc.org/MANUAL.html#producing-slide-shows-with-pandoc
|
||||
[24]:https://pandoc.org/MANUAL.html#variables-for-slides
|
||||
[25]:/file/397451
|
||||
[26]:https://opensource.com/sites/default/files/uploads/pandoc.png (pandoc.png)
|
||||
[27]:https://github.com/jacksingleton/hacker-slides
|
||||
[28]:https://sandstorm.io/
|
||||
[29]:https://oasis.sandstorm.io/
|
||||
[30]:https://github.com/msoedov/hacker-slides
|
||||
[31]:/file/397456
|
||||
[32]:https://opensource.com/sites/default/files/uploads/hacker-slides.png (hacker-slides.png)
|
||||
[33]:http://jupyter.org/
|
||||
[34]:https://opensource.com/article/18/3/getting-started-jupyter-notebooks
|
||||
[35]:https://github.com/datitran/jupyter2slides
|
||||
[36]:https://gitpitch.com/
|
@ -0,0 +1,147 @@
|
||||
TrueOS: A Simple BSD Distribution for the Desktop Users
|
||||
======
|
||||
**Brief: If you want to try something other than Linux, have a look at TrueOS. It is a BSD distribution specifically aimed at desktop users.**
|
||||
|
||||
When you think of It’s FOSS you probably think mainly of Linux. It’s true that we cover mostly Linux-related news and tutorials. But today we are going to do something different.We are going to look at TrueOS BSD distribution.
|
||||
|
||||
Linux and BSD, both fall into Unix-like operating system domain. The main difference lies at the core i.e. the kernel as both Linux and BSD have their own kernel implementation.
|
||||
|
||||
### TrueOS BSD Review
|
||||
|
||||
![TrueOS BSD ][1]
|
||||
|
||||
[TrueOS (formerly PC-BSD)][2] is a desktop operating system based on [FreeBSD][3]. The goal of the project is to create a version of BSD that can be easily installed and is ready to use out of the box.
|
||||
|
||||
TrueOS contains all of the FreeBSD goodness and includes some improvements of its own. It’s features include:
|
||||
|
||||
* Graphical installer
|
||||
* OpenZFS file system
|
||||
* Automatically configured hardware
|
||||
* Full clang functionality
|
||||
* Upgrades use boot environments so live system is not harmed
|
||||
* Laptop support
|
||||
* Easy system administration
|
||||
* Built-in firewall
|
||||
* Built in support for the [Tor Project][4]
|
||||
|
||||
|
||||
|
||||
There are [two version][5] of TrueOS for desktop use. TrueOS Stable is a long-term-release that is updated every 6 months. The most recent version is 18.03. TrueOS Unstable is more of a rolling release. It is based on the latest development version of FreeBSD. TrueOS also support ARM processors with [TrueOS Pico][6].
|
||||
|
||||
#### Lumina
|
||||
|
||||
![True OS BSD][7]
|
||||
|
||||
While TrueOS supports many of the desktop environments that you are used to, it comes with [Lumina][8] installed by default. Started in 2014, Lumina is a lightweight desktop created by the TrueOS team from scratch. Since it is primarily designed for TrueOS and other BSDs, Lumina does not make use of “any of the Linux-based desktop frameworks (ConsoleKit, PolicyKit, D-Bus, systemd, etc..)”. However, it has been [ported][9] for several Linux distros. It currently uses Fluxbox, but they are writing a new window manage for [tighter integration][10].
|
||||
|
||||
Lumina does come with its own file manager, media player, archiver and other utilities. The most current version is [1.4.0][11].
|
||||
|
||||
#### System Requirements
|
||||
|
||||
TrueOS’ [handbook][12] lists the following system requirements
|
||||
|
||||
##### Minimum Requirements
|
||||
|
||||
* 64-bit processor
|
||||
* 1 GB RAM
|
||||
* 10 – 15 GB of free hard drive space on a primary partition for a command-line server installation.
|
||||
* Network card
|
||||
|
||||
|
||||
|
||||
##### Recommended Requirements
|
||||
|
||||
* 64-bit processor
|
||||
* 4 GB of RAM
|
||||
* 20 – 30 GB of free hard drive space on a primary partition for a graphical desktop installation.
|
||||
* Network card
|
||||
* Sound card
|
||||
* 3D-accelerated video card
|
||||
|
||||
|
||||
|
||||
#### Included Applications
|
||||
|
||||
The number of applications that come pre-installed in TrueOS is small. Here they are:
|
||||
|
||||
* AppCafe
|
||||
* QupZilla
|
||||
* Photonic
|
||||
* TrueOS PDF Viewer
|
||||
* Trojita email client
|
||||
* Insight File Manager
|
||||
* Lumina Archiver
|
||||
* Lumina Media Player
|
||||
* Lumina Screenshot
|
||||
* Lumina Text Editor
|
||||
* QTerminal
|
||||
* Calculator
|
||||
|
||||
|
||||
|
||||
### Installation
|
||||
|
||||
I was able to successfully install TrueOS on my Dell Latitude D630. This laptop has an Intel Centrino Duo Core processor running at 2.00 GHz, NVIDIA Quadro NVS 135M graphics chip, and 4 GB of RAM.
|
||||
|
||||
The installation process was pretty painless. It was similar to most modern OS installers, you work your way through a series of screens which ask you for information. Interestingly, you don’t have the option to boot into a live environment. You have to install TrueOS, even if you only want to test it.
|
||||
|
||||
I would like to note that some BSDs are fairly easy to install. I’ve installed FreeBSD and it took a little over an hour to go from text installer to a GUI. I have not managed to install vanilla Arch yet, but I’m sure it would take longer.
|
||||
|
||||
### ![][13]
|
||||
|
||||
### Experience
|
||||
|
||||
I’ve been wanting to install TrueOS for a while (going back to the PC-BSD days). My only experience with BSD before this had been a web server running FreeBSD. Based on the name, I was expecting a polished desktop experience. After all, it ships with its own desktop environment. My experience was not as good as I had hoped.
|
||||
|
||||
Whenever I start using a new operating system, I check to see if the applications that I regularly use are available. TrueOS does come with its own package manager (AppCafe), which made things easy. I was able to quickly install LibreOffice, VLC, FireFox, and Calibre. However, I was unable to install my favorite Markdown editor, ghostwriter. Interestingly, when I searched Markdown in the AppCafe there were quite a few packages listed, but none of them were Markdown editors. I was also unable to install Dropbox, which I use to backup up my writing.
|
||||
|
||||
Besides the AppCafe package manager, you can also install applications using the TrueOS ports collection. To figure out how to do this, I turned to the [TrueOS handbook][14]. Unfortunately, the section on [ports][15] was very light on details. This is what I learned from my research on the web. The first step is to download the ports information from GitHub with this command: `git clone http://github.com/trueos/freebsd-ports.git /usr/ports`. From there you need to navigate to the directory of the port you want to install and type `make install`to start the process.
|
||||
|
||||
While this process is similar to Arch’s AUR, it limits you to install one package at a time. Also, it takes quite a while to download the entire ports collection. (I have a fast connection and it took over 30 minutes.) When I was searching for information about how to use ports, I did see a command that allows you to only download the ports that you want to install, but that was not included in the TrueOS handbook.
|
||||
|
||||
Like macOS and Windows, TrueOS has login and shutdown jingles. While it was cool at first, it got annoying pretty quickly. Especially, when I didn’t expect it.
|
||||
|
||||
I applaud the TrueOS team for creating their own desktop environment (especially since the whole TrueOS team consists of less than a dozen people.). They have come a long way from their first release, but it still feels unfinished. One thing that I kept noticing was that the icons in the system tray were not a uniform size. The battery and sound icon were large, but the wifi icon was half the size. Also, when I went to click on the “start” button, I had to make sure to click on the icon, not near it, or the menu would not launch. Most other “start” menus don’t have this problem. They seem to have a large click area, so you don’t miss.
|
||||
|
||||
For some reason, I could not get the system clock set. I entered the information for my timezone and location, but TrueOS set the time ahead by five hours.
|
||||
|
||||
![][16]
|
||||
|
||||
### Final Thoughts
|
||||
|
||||
Overall, I like the idea of TrueOS, a user-friendly BSD. It offered an experience that was familiar, but different than any Linux distro. Unfortunately, the lack of applications was disappointing. Also, I wish the TrueOS handbook was more fleshed out in some areas.
|
||||
|
||||
I would recommend that you install TrueOS if you want to get the full the BSD experience, complete with its own desktop environment. There is nothing even remotely related to Linux here.
|
||||
|
||||
Have you ever TrueOS? What is your favorite version of BSD? Please let us know in the comments below.
|
||||
|
||||
If you found this article interesting, please take a minute to share it on social media.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/trueos-bsd-review/
|
||||
|
||||
作者:[John Paul][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/john/
|
||||
[1]:https://4bds6hergc-flywheel.netdna-ssl.com/wp-content/uploads/2018/05/trueos-bsd-featured-800x450.jpg
|
||||
[2]:https://www.trueos.org
|
||||
[3]:https://en.wikipedia.org/wiki/FreeBSD
|
||||
[4]:https://www.trueos.org/handbook/using.html#tor-mode
|
||||
[5]:https://www.trueos.org/downloads/
|
||||
[6]:https://www.trueos.org/trueos-pico/
|
||||
[7]:https://4bds6hergc-flywheel.netdna-ssl.com/wp-content/uploads/2018/02/TrueOSScreenshot2-800x500.png
|
||||
[8]:https://lumina-desktop.org
|
||||
[9]:https://lumina-desktop.org/get-lumina/
|
||||
[10]:https://lumina-desktop.org/faq/
|
||||
[11]:https://lumina-desktop.org/version-1-4-0-released/
|
||||
[12]:https://www.trueos.org/handbook/introducing.html#hardware-requirements-and-supported-hardware
|
||||
[13]:https://4bds6hergc-flywheel.netdna-ssl.com/wp-content/uploads/2018/02/TrueOSScreenshot5.png
|
||||
[14]:https://www.trueos.org/handbook/trueos.html
|
||||
[15]:https://www.trueos.org/handbook/using.html#freebsd-ports
|
||||
[16]:https://4bds6hergc-flywheel.netdna-ssl.com/wp-content/uploads/2018/02/TrueOSScreenshot4.png
|
@ -0,0 +1,116 @@
|
||||
pinewall translating
|
||||
|
||||
15 books for kids who (you want to) love Linux and open source
|
||||
======
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/books_library_reading_list.jpg?itok=O3GvU1gH)
|
||||
In my job I've heard professionals in tech, from C-level executives to everyone in between, say they want their own kids to learn more about [Linux][1] and [open source][2]. Some of them seem to have an easy time with their kids following closely in their footsteps. And some have a tough time getting their kids to see what makes Linux and open source so cool. Maybe their time will come, maybe it won't. There's a lot of interesting, valuable stuff out there in this big world.
|
||||
|
||||
Either way, if you have a kid or know a kid that may be interested in learning more about making something with code or hardware, from games to robots, this list is for you.
|
||||
|
||||
### 15 books for kids with a focus on Linux and open source
|
||||
|
||||
[Adventures in Raspberry Pi][3] by Carrie Anne Philbin
|
||||
|
||||
The tiny, credit-card sized Raspberry Pi has become a huge hit among kids—and adults—interested in programming. It does everything your desktop can do, but with a few basic programming skills you can make it do so much more. With simple instructions, fun projects, and solid skills, Adventures in Raspberry Pi is the ultimate kids' programming guide! (Recommendation by [Joshua Allen Holm][4] | Review is an excerpt from the book's abstract)
|
||||
|
||||
[Automate the Boring Stuff with Python][5] by Al Sweigart
|
||||
|
||||
This is a classic introduction to programming that's written clearly enough for a motivated 11-year-old to understand and enjoy. Readers will quickly find themselves working on practical and useful tasks while picking up good coding practices almost by accident. The best part: If you like, you can read the whole book online. (Recommendation and review by [DB Clinton][6])
|
||||
|
||||
[Coding Games in Scratch][7] by Jon Woodcock
|
||||
|
||||
Written for children ages 8-12 with little to no coding experience, this straightforward visual guide uses fun graphics and easy-to-follow instructions to show young learners how to build their own computer projects using Scratch, a popular free programming language. (Recommendation by [Joshua Allen Holm][4] | Review is an excerpt from the book's abstract)
|
||||
|
||||
[Doing Math with Python][8] by Amit Saha
|
||||
|
||||
Whether you're a student or a teacher who's curious about how you can use Python for mathematics, this book is for you. Beginning with simple mathematical operations in the Python shell to the visualization of data using Python libraries like matplotlib, this books logically takes the reader step by easily followed step from the basics to more complex operations. This book will invite your curiosity about the power of Python with mathematics. (Recommendation and review by [Don Watkins][9])
|
||||
|
||||
[Girls Who Code: Learn to Code and Change the World][10] by Reshma Saujani
|
||||
|
||||
From the leader of the movement championed by Sheryl Sandberg, Malala Yousafzai, and John Legend, this book is part how-to, part girl-empowerment, and all fun. Bursting with dynamic artwork, down-to-earth explanations of coding principles, and real-life stories of girls and women working at places like Pixar and NASA, this graphically animated book shows what a huge role computer science plays in our lives and how much fun it can be. (Recommendation by [Joshua Allen Holm][4] | Review is an excerpt from the book's abstract)
|
||||
|
||||
[Invent Your Own Computer Games with Python][11] by Al Sweigart
|
||||
|
||||
This book will teach you how to make computer games using the popular Python programming language—even if you’ve never programmed before! Begin by building classic games like Hangman, Guess the Number, and Tic-Tac-Toe, and then work your way up to more advanced games, like a text-based treasure hunting game and an animated collision-dodging game with sound effects. (Recommendation by [Joshua Allen Holm][4] | Review is an excerpt from the book's abstract)
|
||||
|
||||
[Lauren Ipsum: A Story About Computer Science and Other Improbable Things][12] by Carlos Bueno
|
||||
|
||||
Written in the spirit of Alice in Wonderland, Lauren Ipsum takes its heroine through a slightly magical world whose natural laws are the laws of logic and computer science and whose puzzles can be solved only through learning and applying the principles of computer code. Computers are never mentioned, but they're at the center of it all. (Recommendation and review by [DB Clinton][6])
|
||||
|
||||
[Learn Java the Easy Way: A Hands-On Introduction to Programming][13] by Bryson Payne
|
||||
|
||||
Java is the world's most popular programming language, but it’s known for having a steep learning curve. This book takes the chore out of learning Java with hands-on projects that will get you building real, functioning apps right away. (Recommendation by [Joshua Allen Holm][4] | Review is an excerpt from the book's abstract)
|
||||
|
||||
[Lifelong Kindergarten][14] by Mitchell Resnick
|
||||
|
||||
Kindergarten is becoming more like the rest of school. In this book, learning expert Mitchel Resnick argues for exactly the opposite: The rest of school (even the rest of life) should be more like kindergarten. To thrive in today's fast-changing world, people of all ages must learn to think and act creatively―and the best way to do that is by focusing more on imagining, creating, playing, sharing, and reflecting, just as children do in traditional kindergartens. Drawing on experiences from more than 30 years at MIT's Media Lab, Resnick discusses new technologies and strategies for engaging young people in creative learning experiences. (Recommendation by [Don Watkins][9] | Review from Amazon)
|
||||
|
||||
[Python for Kids][15] by Jason Briggs
|
||||
|
||||
Jason Briggs has taken the art of teaching Python programming to a new level in this book that can easily be an introductory text for teachers and students as well as parents and kids. Complex concepts are presented with step-by-step directions that will have even neophyte programmers experiencing the success that invites you to learn more. This book is an extremely readable, playful, yet powerful introduction to Python programming. You will learn fundamental data structures like tuples, lists, and maps. The reader is shown how to create functions, reuse code, and use control structures like loops and conditional statements. Kids will learn how to create games and animations, and they will experience the power of Tkinter to create advanced graphics. (Recommendation and review by [Don Watkins][9])
|
||||
|
||||
[Scratch Programming Playground][16] by Al Sweigart
|
||||
|
||||
Scratch programming is often seen as a playful way to introduce young people to programming. In this book, Al Sweigart demonstrates that Scratch is in fact a much more powerful programming language than most people realize. Masterfully written and presented in his own unique style, Al will have kids exploring the power of Scratch to create complex graphics and animation in no time. (Recommendation and review by [Don Watkins][9])
|
||||
|
||||
[Secret Coders][17] by Mike Holmes
|
||||
|
||||
From graphic novel superstar (and high school computer programming teacher) Gene Luen Yang comes a wildly entertaining new series that combines logic puzzles and basic programming instruction with a page-turning mystery plot. Stately Academy is the setting, a school that is crawling with mysteries to be solved! (Recommendation by [Joshua Allen Holm][4] | Review is an excerpt from the book's abstract)
|
||||
|
||||
[So, You Want to Be a Coder?: The Ultimate Guide to a Career in Programming, Video Game Creation, Robotics, and More!][18] by Jane Bedell
|
||||
|
||||
Love coding? Make your passion your profession with this comprehensive guide that reveals a whole host of careers working with code. (Recommendation by [Joshua Allen Holm][4] | Review is an excerpt from the book's abstract)
|
||||
|
||||
[Teach Your Kids to Code][19] by Bryson Payne
|
||||
|
||||
Are you looking for a playful way to introduce children to programming with Python? Bryson Payne has written a masterful book that uses the metaphor of turtle graphics in Python. This book will have you creating simple programs that are the basis for advanced Python programming. This book is a must-read for anyone who wants to teach young people to program. (Recommendation and review by [Don Watkins][9])
|
||||
|
||||
[The Children's Illustrated Guide to Kubernetes][20] by Matt Butcher, illustrated by Bailey Beougher
|
||||
|
||||
Introducing Phippy, an intrepid little PHP app, and her journey to Kubernetes. (Recommendation by [Chris Short][21] | Review from [Matt Butcher's blog post][20].)
|
||||
|
||||
### Bonus books for babies
|
||||
|
||||
[CSS for Babies][22], [Javascript for Babies][23], and [HTML for Babies][24] by Sterling Children's
|
||||
|
||||
These concept books familiarize young ones with the kind of shapes and colors that make up web-based programming languages. This beautiful book is a colorful introduction to coding and the web, and it's the perfect gift for any technologically minded family. (Recommendation by [Chris Short][21] | Review from Amazon)
|
||||
|
||||
Have other books for babies or kids to share? Let us know in the comments.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/18/5/books-kids-linux-open-source
|
||||
|
||||
作者:[Jen Wike Huger][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://opensource.com/users/remyd
|
||||
[1]:https://opensource.com/resources/linux
|
||||
[2]:https://opensource.com/article/18/3/what-open-source-programming
|
||||
[3]:https://www.amazon.com/Adventures-Raspberry-Carrie-Anne-Philbin/dp/1119046025
|
||||
[4]:https://opensource.com/users/holmja
|
||||
[5]:https://automatetheboringstuff.com/
|
||||
[6]:https://opensource.com/users/dbclinton
|
||||
[7]:https://www.goodreads.com/book/show/25733628-coding-games-in-scratch
|
||||
[8]:https://nostarch.com/doingmathwithpython
|
||||
[9]:https://opensource.com/users/don-watkins
|
||||
[10]:https://www.amazon.com/Girls-Who-Code-Learn-Change/dp/042528753X
|
||||
[11]:http://inventwithpython.com/invent4thed/
|
||||
[12]:https://www.amazon.com/gp/product/1593275749/ref=as_li_tl?ie=UTF8&tag=projemun-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=1593275749&linkId=e05e1f12176c4959cc1aa1a050908c4a
|
||||
[13]:https://nostarch.com/learnjava
|
||||
[14]:http://lifelongkindergarten.net/
|
||||
[15]:https://nostarch.com/pythonforkids
|
||||
[16]:https://nostarch.com/scratchplayground
|
||||
[17]:http://www.secret-coders.com/
|
||||
[18]:https://www.amazon.com/So-You-Want-Coder-Programming/dp/1582705798?tag=ad-backfill-amzn-no-or-one-good-20
|
||||
[19]:https://opensource.com/education/15/9/review-bryson-payne-teach-your-kids-code
|
||||
[20]:https://deis.com/blog/2016/kubernetes-illustrated-guide/
|
||||
[21]:https://opensource.com/users/chrisshort
|
||||
[22]:https://www.amazon.com/CSS-Babies-Code-Sterling-Childrens/dp/1454921560/
|
||||
[23]:https://www.amazon.com/Javascript-Babies-Code-Sterling-Childrens/dp/1454921579/
|
||||
[24]:https://www.amazon.com/HTML-Babies-Code-Sterling-Childrens/dp/1454921552
|
@ -0,0 +1,287 @@
|
||||
Getting started with the Python debugger
|
||||
======
|
||||
|
||||
![](https://fedoramagazine.org/wp-content/uploads/2018/05/pdb-816x345.jpg)
|
||||
|
||||
The Python ecosystem is rich with many tools and libraries that improve developers’ lives. For example, the Magazine has previously covered how to [enhance your Python with a interactive shell][1]. This article focuses on another tool that saves you time and improves your Python skills: the Python debugger.
|
||||
|
||||
### Python Debugger
|
||||
|
||||
The Python standard library provides a debugger called pdb. This debugger provides most features needed for debugging such as breakpoints, single line stepping, inspection of stack frames, and so on.
|
||||
|
||||
A basic knowledge of pdb is useful since it’s part of the standard library. You can use it in environments where you can’t install another enhanced debugger.
|
||||
|
||||
#### Running pdb
|
||||
|
||||
The easiest way to run pdb is from the command line, passing the program to debug as an argument. Considering the following script:
|
||||
```
|
||||
# pdb_test.py
|
||||
#!/usr/bin/python3
|
||||
|
||||
from time import sleep
|
||||
|
||||
def countdown(number):
|
||||
for i in range(number, 0, -1):
|
||||
print(i)
|
||||
sleep(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
seconds = 10
|
||||
countdown(seconds)
|
||||
|
||||
```
|
||||
|
||||
You can run pdb from the command line like this:
|
||||
```
|
||||
$ python3 -m pdb pdb_test.py
|
||||
> /tmp/pdb_test.py(1)<module>()
|
||||
-> from time import sleep
|
||||
(Pdb)
|
||||
|
||||
```
|
||||
|
||||
Another way to use pdb is to set a breakpoint in the program. To do this, import the pdb module and use the set_trace function:
|
||||
```
|
||||
1 # pdb_test.py
|
||||
2 #!/usr/bin/python3
|
||||
3
|
||||
4 from time import sleep
|
||||
5
|
||||
6
|
||||
7 def countdown(number):
|
||||
8 for i in range(number, 0, -1):
|
||||
9 import pdb; pdb.set_trace()
|
||||
10 print(i)
|
||||
11 sleep(1)
|
||||
12
|
||||
13
|
||||
14 if __name__ == "__main__":
|
||||
15 seconds = 10
|
||||
16 countdown(seconds)
|
||||
|
||||
$ python3 pdb_test.py
|
||||
> /tmp/pdb_test.py(6)countdown()
|
||||
-> print(i)
|
||||
(Pdb)
|
||||
|
||||
```
|
||||
|
||||
The script stops at the breakpoint, and pdb displays the next line in the script. You can also execute the debugger after a failure. This is known as postmortem debugging.
|
||||
|
||||
#### Navigate the execution stack
|
||||
|
||||
A common use case in debugging is to navigate the execution stack. Once the Python debugger is running, the following commands are useful :
|
||||
|
||||
+ w(here) : Shows which line is currently executed and where the execution stack is.
|
||||
|
||||
|
||||
```
|
||||
$ python3 test_pdb.py
|
||||
> /tmp/test_pdb.py(10)countdown()
|
||||
-> print(i)
|
||||
(Pdb) w
|
||||
/tmp/test_pdb.py(16)<module>()
|
||||
-> countdown(seconds)
|
||||
> /tmp/test_pdb.py(10)countdown()
|
||||
-> print(i)
|
||||
(Pdb)
|
||||
|
||||
```
|
||||
|
||||
+ l(ist) : Shows more context (code) around the current the location.
|
||||
|
||||
|
||||
```
|
||||
$ python3 test_pdb.py
|
||||
> /tmp/test_pdb.py(10)countdown()
|
||||
-> print(i)
|
||||
(Pdb) l
|
||||
5
|
||||
6
|
||||
7 def countdown(number):
|
||||
8 for i in range(number, 0, -1):
|
||||
9 import pdb; pdb.set_trace()
|
||||
10 -> print(i)
|
||||
11 sleep(1)
|
||||
12
|
||||
13
|
||||
14 if __name__ == "__main__":
|
||||
15 seconds = 10
|
||||
(Pdb)
|
||||
|
||||
```
|
||||
|
||||
+ u(p)/d(own) : Navigate the call stack up or down.
|
||||
|
||||
|
||||
```
|
||||
$ py3 test_pdb.py
|
||||
> /tmp/test_pdb.py(10)countdown()
|
||||
-> print(i)
|
||||
(Pdb) up
|
||||
> /tmp/test_pdb.py(16)<module>()
|
||||
-> countdown(seconds)
|
||||
(Pdb) down
|
||||
> /tmp/test_pdb.py(10)countdown()
|
||||
-> print(i)
|
||||
(Pdb)
|
||||
|
||||
```
|
||||
|
||||
#### Stepping through a program
|
||||
|
||||
pdb provides the following commands to execute and step through code:
|
||||
|
||||
+ n(ext): Continue execution until the next line in the current function is reached, or it returns
|
||||
+ s(tep): Execute the current line and stop at the first possible occasion (either in a function that is called or in the current function)
|
||||
+ c(ontinue): Continue execution, only stopping at a breakpoint.
|
||||
|
||||
|
||||
```
|
||||
$ py3 test_pdb.py
|
||||
> /tmp/test_pdb.py(10)countdown()
|
||||
-> print(i)
|
||||
(Pdb) n
|
||||
10
|
||||
> /tmp/test_pdb.py(11)countdown()
|
||||
-> sleep(1)
|
||||
(Pdb) n
|
||||
> /tmp/test_pdb.py(8)countdown()
|
||||
-> for i in range(number, 0, -1):
|
||||
(Pdb) n
|
||||
> /tmp/test_pdb.py(9)countdown()
|
||||
-> import pdb; pdb.set_trace()
|
||||
(Pdb) s
|
||||
--Call--
|
||||
> /usr/lib64/python3.6/pdb.py(1584)set_trace()
|
||||
-> def set_trace():
|
||||
(Pdb) c
|
||||
> /tmp/test_pdb.py(10)countdown()
|
||||
-> print(i)
|
||||
(Pdb) c
|
||||
9
|
||||
> /tmp/test_pdb.py(9)countdown()
|
||||
-> import pdb; pdb.set_trace()
|
||||
(Pdb)
|
||||
|
||||
```
|
||||
|
||||
The example shows the difference between next and step. Indeed, when using step the debugger stepped into the pdb module source code, whereas next would have just executed the set_trace function.
|
||||
|
||||
#### Examine variables content
|
||||
|
||||
Where pdb is really useful is examining the content of variables stored in the execution stack. For example, the a(rgs) command prints the variables of the current function, as shown below:
|
||||
```
|
||||
py3 test_pdb.py
|
||||
> /tmp/test_pdb.py(10)countdown()
|
||||
-> print(i)
|
||||
(Pdb) where
|
||||
/tmp/test_pdb.py(16)<module>()
|
||||
-> countdown(seconds)
|
||||
> /tmp/test_pdb.py(10)countdown()
|
||||
-> print(i)
|
||||
(Pdb) args
|
||||
number = 10
|
||||
(Pdb)
|
||||
|
||||
```
|
||||
|
||||
pdb prints the value of the variable number, in this case 10.
|
||||
|
||||
Another command that can be used to print variables value is p(rint).
|
||||
```
|
||||
$ py3 test_pdb.py
|
||||
> /tmp/test_pdb.py(10)countdown()
|
||||
-> print(i)
|
||||
(Pdb) list
|
||||
5
|
||||
6
|
||||
7 def countdown(number):
|
||||
8 for i in range(number, 0, -1):
|
||||
9 import pdb; pdb.set_trace()
|
||||
10 -> print(i)
|
||||
11 sleep(1)
|
||||
12
|
||||
13
|
||||
14 if __name__ == "__main__":
|
||||
15 seconds = 10
|
||||
(Pdb) print(seconds)
|
||||
10
|
||||
(Pdb) p i
|
||||
10
|
||||
(Pdb) p number - i
|
||||
0
|
||||
(Pdb)
|
||||
|
||||
```
|
||||
|
||||
As shown in the example’s last command, print can evaluate an expression before displaying the result.
|
||||
|
||||
The [Python documentation][2] contains the reference and examples for each of the pdb commands. This is a useful read for someone starting with the Python debugger.
|
||||
|
||||
### Enhanced debugger
|
||||
|
||||
Some enhanced debuggers provide a better user experience. Most add useful extra features to pdb, such as syntax highlighting, better tracebacks, and introspection. Popular choices of enhanced debuggers include [IPython’s ipdb][3] and [pdb++][4].
|
||||
|
||||
These examples show you how to install these two debuggers in a virtual environment. These examples use a new virtual environment, but in the case of debugging an application, the application’s virtual environment should be used.
|
||||
|
||||
#### Install IPython’s ipdb
|
||||
|
||||
To install the IPython ipdb, use pip in the virtual environment:
|
||||
```
|
||||
$ python3 -m venv .test_pdb
|
||||
$ source .test_pdb/bin/activate
|
||||
(test_pdb)$ pip install ipdb
|
||||
|
||||
```
|
||||
|
||||
To call ipdb inside a script, you must use the following command. Note that the module is called ipdb instead of pdb:
|
||||
```
|
||||
import ipdb; ipdb.set_trace()
|
||||
|
||||
```
|
||||
|
||||
IPython’s ipdb is also available in Fedora packages, so you can install it using Fedora’s package manager dnf:
|
||||
```
|
||||
$ sudo dnf install python3-ipdb
|
||||
|
||||
```
|
||||
|
||||
#### Install pdb++
|
||||
|
||||
You can install pdb++ similarly:
|
||||
```
|
||||
$ python3 -m venv .test_pdb
|
||||
$ source .test_pdb/bin/activate
|
||||
(test_pdb)$ pip install pdbp
|
||||
|
||||
```
|
||||
|
||||
pdb++ overrides the pdb module, and therefore you can use the same syntax to add a breakpoint inside a program:
|
||||
```
|
||||
import pdb; pdb.set_trace()
|
||||
|
||||
```
|
||||
|
||||
### Conclusion
|
||||
|
||||
Learning how to use the Python debugger saves you time when investigating problems with an application. It can also be useful to understand how a complex part of an application or some libraries work, and thereby improve your Python developer skills.
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://fedoramagazine.org/getting-started-python-debugger/
|
||||
|
||||
作者:[Clément Verna][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://fedoramagazine.org
|
||||
[1]:https://fedoramagazine.org/enhance-python-interactive-shell
|
||||
[2]:https://docs.python.org/3/library/pdb.html
|
||||
[3]:https://github.com/gotcha/ipdb
|
||||
[4]:https://github.com/antocuni/pdb
|
80
sources/tech/20180525 How insecure is your router.md
Normal file
80
sources/tech/20180525 How insecure is your router.md
Normal file
@ -0,0 +1,80 @@
|
||||
How insecure is your router?
|
||||
======
|
||||
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/locks_keys_bridge_paris.png?itok=Bp0dsEc9)
|
||||
|
||||
I've always had a problem with the t-shirt that reads, "There's no place like 127.0.0.1." I know you're supposed to read it as "home," but to me, it says, "There's no place like localhost," which just doesn't have the same ring to it. And in this post, I want to talk about something broader: the entry point to your home network, which for most people will be a cable or broadband router.1 The UK and U.S. governments just published advice that "Russia"2 is attacking routers. This attack will be aimed mostly, I suspect, at organisations (see my previous post "[What's a state actor, and should I care?][1]"), rather than homes, but it's a useful wake-up call for all of us.
|
||||
|
||||
### What do routers do?
|
||||
|
||||
Routers are important. They provide the link between one network (in this case, our home network) and another one (in this case, the internet, via our ISP's network). In fact, for most of us, the box we think of as "the router"3 is doing a lot more than that. The "routing" bit is what is sounds like; it helps computers on your network find routes to send data to computers outside the network—and vice-versa, for when you're getting data back.
|
||||
|
||||
High among a router's other functions, many also perform as a modem. Most of us4 connect to the internet via a phone line—whether cable or standard landline—though there is a growing trend for mobile internet to the home. When you're connecting via a phone line, the signals we use for the internet must be converted to something else and then (at the other end) back again. For those of us old enough to remember the old "dial-up" days, that's what the screechy box next to your computer used to do.
|
||||
|
||||
But routers often do more things, sometimes many more things, including traffic logging, acting as a WiFi access point, providing a VPN for external access to your internal network, child access, firewalling, and all the rest.
|
||||
|
||||
Home routers are complex things these days; although state actors may not be trying to get into them, other people may.
|
||||
|
||||
Does this matter, you ask? Well, if other people can get into your system, they have easy access to attacking your laptops, phones, network drives, and the rest. They can access and delete unprotected personal data. They can plausibly pretend to be you. They can use your network to host illegal data or launch attacks on others. Basically, all the bad things.
|
||||
|
||||
Luckily, routers tend to come set up by your ISP, with the implication being that you can leave them, and they'll be nice and safe.
|
||||
|
||||
### So we're safe, then?
|
||||
|
||||
Unluckily, we're really not.
|
||||
|
||||
The first problem is that ISPs are working on a budget, and it's in their best interests to provide cheap kit that just does the job. The quality of ISP-provided routers tends to be pretty terrible. It's also high on the list of things to try to attack by malicious actors: If they know that a particular router model is installed in several million homes, there's a great incentive to find an attack, because an attack on that model will be very valuable to them.
|
||||
|
||||
Other problems that arise include:
|
||||
|
||||
* Slowness to fix known bugs or vulnerabilities. Updating firmware can be costly to your ISP, so fixes may be slow to arrive (if they do at all).
|
||||
* Easily derived or default admin passwords, which means attackers don't even need to find a real vulnerability—they can just log in.
|
||||
|
||||
|
||||
|
||||
### Measures to take
|
||||
|
||||
Here's a quick list of steps you can take to try to improve the security of your first hop to the internet. I've tried to order them in terms of ease—simplest first. Before you do any of these, however, save the configuration data so you can bring it back if you need it.
|
||||
|
||||
1. **Passwords:** Always, always, always change the admin password for your router. It's probably going to be one you rarely use, so you'll want to record it somewhere. This is one of the few times where you might want to consider taping it to the router itself, as long as the router is in a secure place where only authorised people (you and your family5) have access.
|
||||
2. **Internal admin access only:** Unless you have very good reasons and you know what you're doing, don't allow machines to administer the router unless they're on your home network. There should be a setting on your router for this.
|
||||
3. **WiFi passwords:** Once you've done item 2, also ensure that WiFi passwords on your network—whether set on your router or elsewhere—are strong. It's easy to set a "friendly" password to make it easy for visitors to connect to your network, but if a malicious person who happens to be nearby guesses it, the first thing that person will do is to look for routers on the network. As they're on the internal network, they'll have access to it (hence why item 1 is important).
|
||||
4. **Turn on only the functions that you understand and need:** As I noted above, modern routers have all sorts of cool options. Disregard them. Unless you really need them, and you actually understand what they do and the dangers of turning them on, then leave them off. Otherwise, you're just increasing your attack surface.
|
||||
5. **Buy your own router:** Replace your ISP-supplied router with a better one. Go to your local computer store and ask for suggestions. You can pay an awful lot, but you can also get something fairly cheap that does the job and is more robust, performant, and easy to secure than the one you have at the moment. You may also want to buy a separate modem. Generally, setting up your modem or router is simple, and you can copy the settings from the ISP-supplied one and it will "just work."
|
||||
6. **Firmware updates:** I'd love to move this further up the list, but it's not always easy. From time to time, firmware updates appear for your router. Most routers will check automatically and may prompt you to update when you next log in. The problem is that failure to update correctly can cause catastrophic results6 or lose configuration data that you'll need to re-enter. But you really do need to consider keeping a lookout for firmware updates that fix severe security issues and implement them.
|
||||
7. **Go open source:** There are some great open source router projects out there that allow you to take an existing router and replace all of its firmware/software with open source alternatives. You can find many of them on [Wikipedia][2], and a search for ["router" on Opensource.com][3] will open your eyes to a set of fascinating opportunities. This isn't a step for the faint-hearted, as you'll definitely void the warranty on your router, but if you want to have real control, open source is always the way to go.
|
||||
|
||||
|
||||
|
||||
### Other issues
|
||||
|
||||
I'd love to pretend that once you've improved the security of your router, all's well and good on your home network, but it's not. What about IoT devices in your home (Alexa, Nest, Ring doorbells, smart lightbulbs, etc.?) What about VPNs to other networks? Malicious hosts via WiFi, malicious apps on your children's phones…?
|
||||
|
||||
No, you won't be safe. But, as we've discussed before, although there is no such thing as "secure," it doesn't mean we shouldn't raise the bar and make it harder for the Bad Folks.™
|
||||
|
||||
1. I'm simplifying—but read on, we'll get there.
|
||||
2. "Russian state-sponsored cyber actors"
|
||||
3. Or, in my parents' case, "the internet box," I suspect.
|
||||
4. This is one of these cases where I don't want comments telling me how you have a direct, 1TB/s connection to your local backbone, thank you very much.
|
||||
5. Maybe not the entire family.
|
||||
6. Your router is now a brick, and you have no access to the internet.
|
||||
|
||||
|
||||
|
||||
This article originally appeared on [Alice, Eve, and Bob – a security blog][4] and is republished with permission.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/18/5/how-insecure-your-router
|
||||
|
||||
作者:[Mike Bursell][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://opensource.com/users/mikecamel
|
||||
[1]:https://aliceevebob.com/2018/03/13/whats-a-state-actor-and-should-i-care/
|
||||
[2]:https://en.wikipedia.org/wiki/List_of_router_firmware_projects
|
||||
[3]:https://opensource.com/sitewide-search?search_api_views_fulltext=router
|
||||
[4]:https://aliceevebob.com/2018/04/17/defending-our-homes/
|
@ -0,0 +1,63 @@
|
||||
开始使用 Pidgin:Skype for Business 的开源替代品
|
||||
======
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/meeting-team-listen-communicate.png?itok=KEBP6vZ_)
|
||||
技术正处在一个有趣的十字路口,Linux 统治服务器领域,但微软统治企业桌面。 Office 365、Skype for Business、Microsoft Teams、OneDrive、Outlook ......等等,这些是支配企业工作空间的微软软件和服务。
|
||||
|
||||
如果你可以使用免费和开源程序替换该专有软件,并使其与你别无选择,但只能使用的 Office 365 的后端一起工作?是的,因为这正是我们要用 Pidgin 做的,它是 Skype 的开源替代品。
|
||||
|
||||
### 安装 Pidgin 和 SIPE
|
||||
|
||||
微软的 Office Communicator 变成了 Microsoft Lync,它成为我们今天所知的 Skype for Business。现在有针对 Linux 的[付费软件][1]提供了与 Skype for Business 相同的功能,但 [Pidgin][2] 是 GNU GPL 授权的完全免费且开源的选择。
|
||||
|
||||
Pidgin 可以在几乎每个 Linux 发行版的仓库中找到,因此,使用它不应该是一个问题。唯一不能在 Pidgin 中使用的 Skype 功能是屏幕共享,并且文件共享可能会失败,但有办法解决这个问题。
|
||||
|
||||
你还需要一个 [SIPE][3] 插件,因为它是使 Pidgin 成为 Skype for Business 替代品的秘密武器的一部分。请注意,`sipe` 库在不同的发行版中有不同的名称。例如,库在 System76 的 Pop_OS! 中是 `pidgin-sipe`,而在 Solus 3 仓库中是 `sipe`。
|
||||
|
||||
有了先决条件,你可以开始配置 Pidgin。
|
||||
|
||||
### 配置 Pidgin
|
||||
|
||||
首次启动 Pidgin 时,点击 **Add** 添加一个新帐户。在基本选项卡(如下截图所示)中,选择 **Protocol** 下拉菜单中的 **Office Communicator**,然后在 **Username** 字段中输入你的**公司电子邮件地址**。
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/panopoly_image_original/public/u128651/pidgin_basic_account_screen_final.png?itok=1zoSbZjy)
|
||||
|
||||
接下来,点击高级选项卡。在 **Server[:Port]** 字段中输入 **sipdir.online.lync.com:443**,在 **User Agent** 中输入 **UCCAPI/16.0.6965.5308 OC/16.0.6965.2117**。
|
||||
|
||||
你的高级选项卡现在应该如下所示:
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/panopoly_image_original/public/u128651/pidgin_advanced_account_screen.png?itok=Z6loRfGi)
|
||||
|
||||
你不需要对“代理”选项卡或“语音和视频”选项卡进行任何更改。只要确定,请确保 **Proxy type** 设置为 **Use Global Proxy Settings**,并且在语音和视频选项卡中,**Use silence suppression** 复选框为**取消选中**。
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/panopoly_image_original/public/u128651/pidgin_account_proxy_screen.png?itok=iDgszWy0)
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/panopoly_image_original/public/u128651/pidgin_voiceandvideo_screen.png?itok=klkbt5hr)
|
||||
|
||||
完成这些配置后,点击 **Add**,系统会提示你输入电子邮件帐户的密码。
|
||||
|
||||
### 添加联系人
|
||||
|
||||
要将联系人添加到好友列表,请点击**好友窗口**中的 **Manage Accounts**。将鼠标悬停在你的帐户上,然后选择 **Contact Search** 查找你的同事。如果您在使用姓氏和名字进行搜索时遇到任何问题,请尝试使用你同事的完整电子邮件地址进行搜索,你就会找到正确的人。
|
||||
|
||||
你现在已经开始使用 Skype for Business 替代产品,该产品可为你提供 98% 的功能,从你的桌面上消除专有软件。
|
||||
|
||||
Ray Shimko 将在 4 月 28 日至 29 日的 [LinuxFest NW][5] 上谈论[ Linux 在微软世界][4]。查看计划亮点或注册参加。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/18/4/pidgin-open-source-replacement-skype-business
|
||||
|
||||
作者:[Ray Shimko][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://opensource.com/users/shickmo
|
||||
[1]:https://tel.red/linux.php
|
||||
[2]:https://pidgin.im/
|
||||
[3]:http://sipe.sourceforge.net/
|
||||
[4]:https://www.linuxfestnorthwest.org/conferences/lfnw18/program/proposals/32
|
||||
[5]:https://www.linuxfestnorthwest.org/conferences/lfnw18
|
@ -0,0 +1,170 @@
|
||||
最好的 Linux 工具献给老师和学生们
|
||||
=====
|
||||
|
||||
Linux是一个适合每个人的平台。如果你有一个商机,Linux 已经准备好满足或超过这个商机的需求,其中一个商机是教育。如果你是一名教师或一名学生,Linux 已经准备好帮助你在几乎任何级别的教育系统领域中畅游。从辅助学习,写作论文,管理课程,到管理整个机构,Linux 已经全部涵盖了。
|
||||
|
||||
如果你不确定,请让我介绍一下 Linux 准备好的一些工具。其中一些工具几乎不需要学习曲线,而另一些工具则需要一个全面的系统管理员来安装,设置和管理。我们将从简单开始,然后到复杂。
|
||||
|
||||
### 学习辅助工具
|
||||
|
||||
每个人的学习方式都有所不同,每个班级都需要不同的学习类型和水平。幸运的是,Linux 有很多学习辅助工具。让我们来看几个例子:
|
||||
|
||||
闪存卡 [KWordQuiz][1](图1)是适用于 Linux 平台的许多闪存卡应用程序之一。KWordQuiz 使用 kvtml 文件格式,你可以下载大量预制的贡献文件在[这里][2]使用。 KWordQuiz 是 KDE 桌面环境的一部分,但可以安装在其他桌面上(KDE 依赖关系将与闪存卡应用程序一起安装)。
|
||||
|
||||
![](https://lcom.static.linuxfound.org/images/stories/41373/kwordquiz-sm.png)
|
||||
|
||||
### 语言工具
|
||||
|
||||
由于全球化,外语已成为教育的重要组成部分。你会发现很多语言工具,包括 [Kiten][3](图2)KDE 桌面的汉字浏览器。
|
||||
|
||||
![](https://lcom.static.linuxfound.org/images/stories/41373/kiten.jpg)
|
||||
|
||||
如果日文不是你的母语,你可以试试[Jargon Informatique][4]。这本词典完全是法文的,所以如果你对这门语言还不熟悉,你可能要需要 [Google 翻译][5]的帮助才能坚持下去。
|
||||
|
||||
### Writing Aids/ Note Taking
|
||||
|
||||
Linux 拥有你需要的所有东西比如记录一个主题,撰写那些学期论文。让我们从记笔记开始。如果你熟悉 Microsoft OneNote,你一定会喜欢 [BasKet Note Pads][6]。有了这个应用程序,你可以为主题创建 basket(to 校正者:我将其翻译为笔记本),并添加任何东西─注释,链接,图像,交叉引用(到其他 basket─图 3),应用程序启动器,从文件加载等等。
|
||||
|
||||
![](https://lcom.static.linuxfound.org/images/stories/41373/basket.jpg)
|
||||
|
||||
你可以创建任意形式的 basket,可以移动元素来满足你的需求。如果你更喜欢有序的感觉,那么创建一个表状的 basket 来保留那些封装的笔记。
|
||||
|
||||
当然,所有 Linux 写作辅助工具都是由 [LibreOffice][7] 发展而来。LibreOffice 是大多数 Linux 发行版默认的办公套件,它能打开文本文档,电子表格,演示文稿,数据库,公式和绘图。
|
||||
|
||||
在教育环境中使用 LibreOffice 的一个警告是,你很可能不得不将文档以 MS Office 格式保存。
|
||||
|
||||
### 为教育而生的发行版
|
||||
|
||||
所有这些都是关于 Linux 面向学生的应用程序,你可以看看专门为教育而开发的一个发行版。最好的是 [Edubuntu][8]。这种草根(to 校正者:草根这个词感觉不雅) Linux 发行版旨在让 Linux 进入学校,家庭和社区。Edubuntu 使用默认的 Ubuntu 桌面(Unity shell)并添加以下软件:
|
||||
|
||||
+ KDE 教育套件
|
||||
|
||||
+ GCompris
|
||||
|
||||
+ Celestia
|
||||
|
||||
+ Tux4Kids
|
||||
|
||||
+ Epoptes
|
||||
|
||||
+ LTSP
|
||||
|
||||
+ GBrainy
|
||||
|
||||
+ 等等
|
||||
|
||||
Edubuntu 并不是唯一的发行版。如果你想测试其他特定于教育的 Linux 发行版,以下是简短列表:
|
||||
|
||||
+ Debian-Edu
|
||||
|
||||
+ Fedora Education Spin
|
||||
|
||||
+ Guadalinux-Edu
|
||||
|
||||
+ OpenSuse-Edu
|
||||
|
||||
+ Qimo
|
||||
|
||||
+ Uberstudent
|
||||
|
||||
### 课堂/机构管理
|
||||
|
||||
这是 Linux 平台真正闪耀的地方。有许多专门用于管理的工具。我们先来看看教室特有的工具。
|
||||
|
||||
[iTalc][9] 是一个强大的课堂教学环境。借助此工具,教师可以查看和控制学生桌面(支持 Linux 和 Windows)。iTalc 系统允许教师查看学生桌面上发生了什么,控制他们的桌面,锁定他们的桌面,对桌面演示,打开或关闭桌面,向学生桌面发送文本消息等等。
|
||||
|
||||
[aTutor][10](图4)是一个开源的学习管理系统(LMS),专注于开发在线课程和电子学习内容。一个老师真正发挥的就是创建和管理在线考试和测验。当然,aTutor 不限于测试的目的,有了这个强大的软件,学生和老师可以享受:
|
||||
|
||||
* 社交网络
|
||||
|
||||
* 配置文件
|
||||
|
||||
* 消息
|
||||
|
||||
* 自适应导航
|
||||
|
||||
* 工作组
|
||||
|
||||
* 文件存储
|
||||
|
||||
* 小组博客
|
||||
|
||||
* 以及更多。
|
||||
|
||||
![](https://lcom.static.linuxfound.org/images/stories/41373/atutor.png)
|
||||
|
||||
课程资料易于创建和部署(你甚至可以将考试/测验分配给特定的学习小组)。
|
||||
|
||||
[Moodle][11] 是目前使用最广泛的教育管理软件之一。通过 Moodle,你可以管理,教授,学习甚至参与孩子的教育。这个强大的软件为教师和学生,考试,日历,论坛,文件管理,课程管理(图5),通知,进度跟踪,大量注册,批量课程创建,考勤等提供协作工具。
|
||||
|
||||
![](https://lcom.static.linuxfound.org/images/stories/41373/moodle.png)
|
||||
|
||||
[OpenSIS][12] 代表开源学生信息系统,在管理你的教育机构方面做得很好。有一个免费的社区版,但即使使用付费版本,你也可以期待将学区的拥有成本降低高达 75%(与专有解决方案相比)。
|
||||
|
||||
OpenSIS 包括以下特点或模块:
|
||||
|
||||
* 出席情况(图6)
|
||||
|
||||
* 联系信息
|
||||
|
||||
* 学生人口统计
|
||||
|
||||
* 成绩簿
|
||||
|
||||
* 计划
|
||||
|
||||
* 健康记录
|
||||
|
||||
* 报告卡
|
||||
|
||||
![](https://lcom.static.linuxfound.org/images/stories/41373/opensis.png)
|
||||
|
||||
OpenSIS 有四个版本,在[这里][13]查看它们的功能比较。
|
||||
|
||||
[vufind][14] 是一个优秀的图书馆管理系统,允许学生和教师轻松浏览图书馆资源,例如:
|
||||
|
||||
* 目录记录
|
||||
|
||||
* 本地缓存期刊
|
||||
|
||||
* 数字图书馆项目
|
||||
|
||||
* 机构知识库
|
||||
|
||||
* 机构书目
|
||||
|
||||
* 其他图书馆集合和资源
|
||||
|
||||
Vufind 系统允许用户登录,通过认证的用户可以节省资源以便快速回忆,并享受“更像这样”的结果。
|
||||
|
||||
这份列表仅仅触及了 Linux 在教育领域可用性的一点皮毛。而且,正如你所期望的那样,每个工具都是高度可定制且开放源代码的 - 所以如果软件不能精确地满足你的需求,那么你可以免费(在大多数情况下)修改源代码并进行更改。
|
||||
|
||||
Linux 在与教育齐头并进。无论你是老师,学生还是管理员,你都会找到大量工具来帮助教育机构开放,灵活和强大。
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.linux.com/news/best-linux-tools-teachers-and-students
|
||||
|
||||
作者:[Jack Wallen][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[MjSeven](https://github.com/MjSeven)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://www.linux.com/users/jlwallen
|
||||
[1]:https://edu.kde.org/kwordquiz/
|
||||
[2]:http://kde-files.org/index.php?xcontentmode=694
|
||||
[3]:https://edu.kde.org/kiten/
|
||||
[4]:http://jargon.asher256.com/index.php
|
||||
[5]:https://translate.google.com/
|
||||
[6]:http://basket.kde.org/
|
||||
[7]:http://www.libreoffice.com
|
||||
[8]:http://www.edubuntu.org/
|
||||
[9]:http://italc.sourceforge.net/
|
||||
[10]:http://www.atutor.ca/
|
||||
[11]:https://moodle.org/
|
||||
[12]:http://www.opensis.com/
|
||||
[13]:http://www.opensis.com/compare_edition.php
|
||||
[14]:http://vufind-org.github.io/vufind/
|
Loading…
Reference in New Issue
Block a user