diff --git a/translated/tech/20180901 Flameshot - A Simple, Yet Powerful Feature-rich Screenshot Tool.md b/published/20180901 Flameshot - A Simple, Yet Powerful Feature-rich Screenshot Tool.md similarity index 69% rename from translated/tech/20180901 Flameshot - A Simple, Yet Powerful Feature-rich Screenshot Tool.md rename to published/20180901 Flameshot - A Simple, Yet Powerful Feature-rich Screenshot Tool.md index 898955242a..a34c575261 100644 --- a/translated/tech/20180901 Flameshot - A Simple, Yet Powerful Feature-rich Screenshot Tool.md +++ b/published/20180901 Flameshot - A Simple, Yet Powerful Feature-rich Screenshot Tool.md @@ -1,4 +1,4 @@ -Flameshot – 一个简洁但功能丰富的截图工具 +Flameshot:一个简洁但功能丰富的截图工具 ====== ![](https://www.ostechnix.com/wp-content/uploads/2018/09/Flameshot-720x340.png) @@ -10,11 +10,13 @@ Flameshot – 一个简洁但功能丰富的截图工具 **在 Arch Linux 上:** Flameshot 可以从 Arch LInux 的 [community] 仓库中获取。确保你已经启用了 community 仓库,然后就可以像下面展示的那样使用 pacman 来安装 Flameshot : + ``` $ sudo pacman -S flameshot ``` 它也可以从 [**AUR**][1] 中获取,所以你还可以使用任意一个 AUR 帮助程序(例如 [**Yay**][2])来在基于 Arch 的系统中安装它: + ``` $ yay -S flameshot-git ``` @@ -26,6 +28,7 @@ $ sudo dnf install flameshot ``` 在 **Debian 10+** 和 **Ubuntu 18.04+** 中,可以使用 APT 包管理器来安装它: + ``` $ sudo apt install flameshot ``` @@ -35,97 +38,105 @@ $ sudo apt install flameshot ``` $ sudo zypper install flameshot ``` + 在其他的 Linux 发行版中,可以从源代码编译并安装它。编译过程中需要 **Qt version 5.3** 以及 **GCC 4.9.2** 或者它们的更高版本。 ### 使用 -可以从菜单或者应用启动器中启动 Flameshot。在 MATE 桌面环境,它通常可以在 **Applications - > Graphics** 下找到。 +可以从菜单或者应用启动器中启动 Flameshot。在 MATE 桌面环境,它通常可以在 “Applications -> Graphics” 下找到。 一旦打开了它,你就可以在系统面板中看到 Flameshot 的托盘图标。 **注意:** -假如你使用 Gnome 桌面环境,为了能够看到系统托盘图标,你需要安装 [TopIcons][3] 扩展。 +假如你使用 Gnome 桌面环境,为了能够看到系统托盘图标,你需要安装 [TopIcons][3] 扩展。 在 Flameshot 托盘图标上右击,你便会看到几个菜单项,例如打开配置窗口、信息窗口以及退出该应用。 -要进行截图,只需要点击托盘图标就可以了。接着你将看到如何使用 Flameshot 的帮助窗口。选择一个截图区域,然后敲 **ENTER** 键便可以截屏了,点击右键便可以看到颜色拾取器,再敲空格键便可以查看屏幕侧边的面板。你可以使用鼠标的滚轮来增加或者减少指针的宽度。 +要进行截图,只需要点击托盘图标就可以了。接着你将看到如何使用 Flameshot 的帮助窗口。选择一个截图区域,然后敲回车键便可以截屏了,点击右键便可以看到颜色拾取器,再敲空格键便可以查看屏幕侧边的面板。你可以使用鼠标的滚轮来增加或者减少指针的宽度。 Flameshot 自带一系列非常好的功能,例如: - * 可以进行手写 - * 可以划直线 - * 可以画长方形或者圆形框 - * 可以进行长方形区域选择 - * 可以画箭头 - * 可以对要点进行标注 - * 可以添加文本 - * 可以对图片或者文字进行模糊处理 - * 可以展示图片的尺寸大小 - * 在编辑图片是可以进行撤销和重做操作 - * 可以将选择的东西复制到剪贴板 - * 可以保存选择 - * 可以离开截屏 - * 可以选择另一个 app 来打开图片 - * 可以上传图片到 imgur 网站 - * 可以将图片固定到桌面上 +* 可以进行手写 +* 可以划直线 +* 可以画长方形或者圆形框 +* 可以进行长方形区域选择 +* 可以画箭头 +* 可以对要点进行标注 +* 可以添加文本 +* 可以对图片或者文字进行模糊处理 +* 可以展示图片的尺寸大小 +* 在编辑图片是可以进行撤销和重做操作 +* 可以将选择的东西复制到剪贴板 +* 可以保存选区 +* 可以离开截屏 +* 可以选择另一个 app 来打开图片 +* 可以上传图片到 imgur 网站 +* 可以将图片固定到桌面上 下面是一个示例的视频: -**快捷键** +### 快捷键 -Frameshot 也支持快捷键。在 Flameshot 的托盘图标上右击并点击 **Information** 窗口便可以看到在 GUI 模式下所有可用的快捷键。下面是在 GUI 模式下可用的快捷键清单: +Frameshot 也支持快捷键。在 Flameshot 的托盘图标上右击并点击 “Information” 窗口便可以看到在 GUI 模式下所有可用的快捷键。下面是在 GUI 模式下可用的快捷键清单: | 快捷键 | 描述 | |------------------------|------------------------------| -| ←, ↓, ↑, → | 移动选择区域 1px | -| Shift + ←, ↓, ↑, → | 将选择区域大小更改 1px | -| Esc | 退出截图 | -| Ctrl + C | 复制到粘贴板 | -| Ctrl + S | 将选择区域保存为文件 | -| Ctrl + Z | 撤销最近的一次操作 | -| Right Click | 展示颜色拾取器 | -| Mouse Wheel | 改变工具的宽度 | +| `←`、`↓`、`↑`、`→` | 移动选择区域 1px | +| `Shift` + `←`、`↓`、`↑`、`→` | 将选择区域大小更改 1px | +| `Esc` | 退出截图 | +| `Ctrl` + `C` | 复制到粘贴板 | +| `Ctrl` + `S` | 将选择区域保存为文件 | +| `Ctrl` + `Z` | 撤销最近的一次操作 | +| 鼠标右键 | 展示颜色拾取器 | +| 鼠标滚轮 | 改变工具的宽度 | -边按住 Shift 键并拖动选择区域的其中一个控制点将会对它相反方向的控制点做类似的拖放操作。 +边按住 `Shift` 键并拖动选择区域的其中一个控制点将会对它相反方向的控制点做类似的拖放操作。 -**命令行选项** +### 命令行选项 Flameshot 也支持一系列的命令行选项来延时截图和保存图片到自定义的路径。 要使用 Flameshot GUI 模式,运行: + ``` $ flameshot gui ``` 要使用 GUI 模式截屏并将你选取的区域保存到一个自定义的路径,运行: + ``` $ flameshot gui -p ~/myStuff/captures ``` 要延时 2 秒后打开 GUI 模式可以使用: + ``` $ flameshot gui -d 2000 ``` 要延时 2 秒并将截图保存到一个自定义的路径(无 GUI)可以使用: + ``` $ flameshot full -p ~/myStuff/captures -d 2000 ``` 要截图全屏并保存到自定义的路径和粘贴板中使用: + ``` $ flameshot full -c -p ~/myStuff/captures ``` -要在截屏中包含鼠标并将图片保存为 **PNG** 格式可以使用: +要在截屏中包含鼠标并将图片保存为 PNG 格式可以使用: + ``` $ flameshot screen -r ``` 要对屏幕 1 进行截屏并将截屏复制到粘贴板中可以运行: + ``` $ flameshot screen -n 1 -c ``` @@ -143,7 +154,7 @@ via: https://www.ostechnix.com/flameshot-a-simple-yet-powerful-feature-rich-scre 作者:[SK][a] 选题:[lujun9972](https://github.com/lujun9972) 译者:[FSSlc](https://github.com/FSSlc) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 diff --git a/translated/tech/20181019 How to use Pandoc to produce a research paper.md b/published/20181019 How to use Pandoc to produce a research paper.md similarity index 51% rename from translated/tech/20181019 How to use Pandoc to produce a research paper.md rename to published/20181019 How to use Pandoc to produce a research paper.md index 516ab8ba37..3ccbc8df1c 100644 --- a/translated/tech/20181019 How to use Pandoc to produce a research paper.md +++ b/published/20181019 How to use Pandoc to produce a research paper.md @@ -1,19 +1,21 @@ -用 Pandoc 做一篇调研论文 +用 Pandoc 生成一篇调研论文 ====== -学习如何用 Markdown 管理引用、图像、表格、以及更多。 + +> 学习如何用 Markdown 管理章节引用、图像、表格以及更多。 + ![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/life_paperclips.png?itok=j48op49T) -这篇文章对于使用 [Markdown][1] 语法做一篇调研论文进行了一个深度体验。覆盖了如何创建和引用、图像(用 Markdown 和 [LaTeX][2])和参考书目。我们也讨论了一些棘手的案例和为什么使用 LaTex 是一个正确的做法。 +这篇文章对于使用 [Markdown][1] 语法做一篇调研论文进行了一个深度体验。覆盖了如何创建和引用章节、图像(用 Markdown 和 [LaTeX][2])和参考书目。我们也讨论了一些棘手的案例和为什么使用 LaTex 是一个正确的做法。 -### 调查 +### 调研 -调研论文一般包括引用、图像、表格和参考书目。[Pandoc][3] 本身并不能交叉引用这些,但是但是它能够利用 [pandoc-crossref][4] 过滤来完成自动编号和章节、图像、表格的交叉引用。 +调研论文一般包括对章节、图像、表格和参考书目的引用。[Pandoc][3] 本身并不能交叉引用这些,但是它能够利用 [pandoc-crossref][4] 过滤器来完成自动编号和章节、图像、表格的交叉引用。 -让我们开始正常的使用 LaTax 重写 [一个教育调研报告的例子][5],然后用 Markdown(和一些 LaTax)、Pandoc 和 Pandoc-crossref 再重写。 +让我们从重写原本以 LaTax 撰写的 [一个教育调研报告的例子][5] 开始,然后用 Markdown(和一些 LaTax)、Pandoc 和 Pandoc-crossref 重写。 #### 添加并引用章节 -要想章节被自动编号,必须使用 Markdown 标题 H1 编写。子章节使用子标题 H2-H4 编写(通常不需要更多的东西)。例如一个章节的标题是 “履行”,写作 `# 履行 {#sec: 履行}`,然后 Pandoc 会把它转化为 `3. 履行`(或者转换为相应的章节标号)。`履行` 这个标题使用了 H1 并且声明了一个 `{#sec: 履行}` 的标签,这是作者引用了该章节的标签。要想引用一个章节,在对应章节后面输入 `@` 符号并使用方括号括起来即可: `[@sec:履行]` +要想章节被自动编号,必须使用 Markdown H1 标题编写。子章节使用 H2-H4 子标题编写(通常不需要更多级别了)。例如一个章节的标题是 “Implementation”,写作 `# Implementation {#sec: implementation}`,然后 Pandoc 会把它转化为 `3. Implementation `(或者转换为相应的章节编号)。`Implementation` 这个标题使用了 H1 并且声明了一个 `{#sec: implementation}` 的标签,这是作者用于引用该章节的标签。要想引用一个章节,输入 `@` 符号并跟上对应章节标签,使用方括号括起来即可: `[@ sec:implementation]` [在这篇论文中][5], 我们发现了下面这个例子: @@ -27,16 +29,17 @@ Pandoc 转换: we lack experience (consistency between TAs, Section 4). ``` -章节被自动(这包含在文章最后的 `Makefile` 当中)标号。要创建无标号的章节,输入章节的标题并在最后添加 `{-}`。例如:`### 设计一个可维护的游戏 {-}` 就以标题 “设计一个可维护的游戏”,创建了一个无标号的章节。 +章节被自动编号(这在本文最后的 `Makefile` 当中说明)。要创建无编号的章节,输入章节的标题并在最后添加 `{-}`。例如:`### Designing a game for maintainability {-}` 就以标题 “Designing a game for maintainability”,创建了一个无标号的章节。 #### 添加并引用图像 -添加并引用一个图像,跟添加并引用一个章节和添加一个 Markdown 图片很相似: +添加并引用一个图像,跟添加并引用一个章节和添加一个 Markdown 图片很相似: ``` ![Scatterplot matrix](data/scatterplots/RScatterplotMatrix2.png){#fig:scatter-matrix} ``` -上面这一行是告诉 Pandoc,有一个标有 Scatterplot matrix 的图像以及这张图片路径是 `data/scatterplots/RScatterplotMatrix2.png`。`{#fig:scatter-matrix}` 表明了应该引用的图像的名字。 + +上面这一行是告诉 Pandoc,有一个标有 Scatterplot matrix 的图像以及这张图片路径是 `data/scatterplots/RScatterplotMatrix2.png`。`{#fig:scatter-matrix}` 表明了用于引用该图像的名字。 这里是从一篇论文中进行图像引用的例子: @@ -51,46 +54,47 @@ The boxes "Enjoy", "Grade" and "Motivation" (Fig. 1) ... ``` #### 添加及引用参考书目 -大多数调研报告都把引用放在一个 BibTeX 的数据库文件中。在这个例子中,该文件被命名为 [biblio.bib][6],它包含了论文中所有的引用。下面是这个文件的样子: + +大多数调研报告都把引用放在一个 BibTeX 的数据库文件中。在这个例子中,该文件被命名为 [biblio.bib][6],它包含了论文中所有的引用。下面是这个文件的样子: ``` @inproceedings{wrigstad2017mastery, -    Author =       {Wrigstad, Tobias and Castegren, Elias}, -    Booktitle =    {SPLASH-E}, -    Title =        {Mastery Learning-Like Teaching with Achievements}, -    Year =         2017 + Author = {Wrigstad, Tobias and Castegren, Elias}, + Booktitle = {SPLASH-E}, + Title = {Mastery Learning-Like Teaching with Achievements}, + Year = 2017 } @inproceedings{review-gamification-framework, -  Author =       {A. Mora and D. Riera and C. Gonzalez and J. Arnedo-Moreno}, -  Publisher =    {IEEE}, -  Booktitle =    {2015 7th International Conference on Games and Virtual Worlds -                  for Serious Applications (VS-Games)}, -  Doi =          {10.1109/VS-GAMES.2015.7295760}, -  Keywords =     {formal specification;serious games (computing);design -                  framework;formal design process;game components;game design -                  elements;gamification design frameworks;gamification-based -                  solutions;Bibliographies;Context;Design -                  methodology;Ethics;Games;Proposals}, -  Month =        {Sept}, -  Pages =        {1-8}, -  Title =        {A Literature Review of Gamification Design Frameworks}, -  Year =         2015, -  Bdsk-Url-1 =   {http://dx.doi.org/10.1109/VS-GAMES.2015.7295760} + Author = {A. Mora and D. Riera and C. Gonzalez and J. Arnedo-Moreno}, + Publisher = {IEEE}, + Booktitle = {2015 7th International Conference on Games and Virtual Worlds + for Serious Applications (VS-Games)}, + Doi = {10.1109/VS-GAMES.2015.7295760}, + Keywords = {formal specification;serious games (computing);design + framework;formal design process;game components;game design + elements;gamification design frameworks;gamification-based + solutions;Bibliographies;Context;Design + methodology;Ethics;Games;Proposals}, + Month = {Sept}, + Pages = {1-8}, + Title = {A Literature Review of Gamification Design Frameworks}, + Year = 2015, + Bdsk-Url-1 = {http://dx.doi.org/10.1109/VS-GAMES.2015.7295760} } ... ``` -第一行的 `@inproceedings{wrigstad2017mastery,` 表明了出版物 (`inproceedings`) 的类型,以及用来指向那篇论文 (`wrigstad2017mastery`) 的标签。 +第一行的 `@inproceedings{wrigstad2017mastery,` 表明了出版物 的类型(`inproceedings`),以及用来指向那篇论文的标签(`wrigstad2017mastery`)。 -引用这篇题为 “Mastery Learning-Like Teaching with Achievements” 的论文, 输入: +引用这篇题为 “Mastery Learning-Like Teaching with Achievements” 的论文, 输入: ``` the achievement-driven learning methodology [@wrigstad2017mastery] ``` -Pandoc 将会输出: +Pandoc 将会输出: ``` the achievement- driven learning methodology [30] @@ -100,25 +104,23 @@ the achievement- driven learning methodology [30] ![](https://opensource.com/sites/default/files/uploads/bibliography-example_0.png) -引用文章的集合也很容易:只要引用使用分号 `;` 分隔开被标记的参考文献就可以了。如果一个引用有两个标签 —— 例如: `SEABORN201514` 和 `gamification-leaderboard-benefits`—— 像下面这样把它们放在一起引用: +引用文章的集合也很容易:只要引用使用分号 `;` 分隔开被标记的参考文献就可以了。如果一个引用有两个标签 —— 例如: `SEABORN201514` 和 `gamification-leaderboard-benefits`—— 像下面这样把它们放在一起引用: ``` Thus, the most important benefit is its potential to increase students' motivation - and engagement [@SEABORN201514;@gamification-leaderboard-benefits]. ``` -Pandoc 将会产生: +Pandoc 将会产生: ``` Thus, the most important benefit is its potential to increase students’ motivation - and engagement [26, 28] ``` ### 问题案例 -一个常见的问题是项目与页面不匹配。不匹配的部分会自动移动到它们认为合适的地方,即便这些位置并不是读者期望看到的位置。因此在图像或者表格接近于它们被提及的地方时,我们需要调节一下它们在此处的元素组合,使得他们更加易于阅读。为了达到这个效果,我建议使用 `figure` 这个 LaTeX 环境参数,它可以让用户控制图像的位置。 +一个常见的问题是所需项目与页面不匹配。不匹配的部分会自动移动到它们认为合适的地方,即便这些位置并不是读者期望看到的位置。因此在图像或者表格接近于它们被提及的地方时,我们需要调节一下那些元素放置的位置,使得它们更加易于阅读。为了达到这个效果,我建议使用 `figure` 这个 LaTeX 环境参数,它可以让用户控制图像的位置。 我们看一个上面提到的图像的例子: @@ -126,7 +128,7 @@ and engagement [26, 28] ![Scatterplot matrix](data/scatterplots/RScatterplotMatrix2.png){#fig:scatter-matrix} ``` -然后使用 LaTeX 重写: +然后使用 LaTeX 重写: ``` \begin{figure}[t] @@ -139,17 +141,17 @@ and engagement [26, 28] ### 产生一篇论文 -到目前为止,我们讲了如何添加和引用(子)章节、图像和参考书目,现在让我们重温一下如何生产一篇 PDF 格式的论文,生成 PDF,我们将使用 Pandoc 生成一篇可以被构建成最终 PDF 的 LaTeX 文件。我们还会讨论如何以 LaTeX,使用一套自定义的模板和元信息文件生成一篇调研论文,以及如何构建 LaTeX 文档为最终的 PDF 格式。 +到目前为止,我们讲了如何添加和引用(子)章节、图像和参考书目,现在让我们重温一下如何生成一篇 PDF 格式的论文。要生成 PDF,我们将使用 Pandoc 生成一篇可以被构建成最终 PDF 的 LaTeX 文件。我们还会讨论如何以 LaTeX,使用一套自定义的模板和元信息文件生成一篇调研论文,以及如何将 LaTeX 文档编译为最终的 PDF 格式。 -很多会议都提供了一个 **.cls** 文件或者一套论文该有样子的模板; 例如,他们是否应该使用两列的格式以及其他的设计风格。在我们的例子中,会议提供了一个名为 **acmart.cls** 的文件。 +很多会议都提供了一个 .cls 文件或者一套论文应有样式的模板;例如,它们是否应该使用两列的格式以及其它的设计风格。在我们的例子中,会议提供了一个名为 `acmart.cls` 的文件。 -作者通常想要在他们的论文中包含他们所属的机构,然而,这个选项并没有包含在默认的 Pandoc 的 LaTeX 模板(注意,可以通过输入 `pandoc -D latex` 来查看 Pandoc 模板)当中。要包含这个内容,找一个 Pandoc 默认的 LaTeX 模板,并添加一些新的内容。将这个模板像下面这样复制进一个名为 `mytemplate.tex` 的文件中: +作者通常想要在他们的论文中包含他们所属的机构,然而,这个选项并没有包含在默认的 Pandoc 的 LaTeX 模板(注意,可以通过输入 `pandoc -D latex` 来查看 Pandoc 模板)当中。要包含这个内容,找一个 Pandoc 默认的 LaTeX 模板,并添加一些新的内容。将这个模板像下面这样复制进一个名为 `mytemplate.tex` 的文件中: ``` pandoc -D latex > mytemplate.tex ``` -默认的模板包含以下代码: +默认的模板包含以下代码: ``` $if(author)$ @@ -161,32 +163,30 @@ $if(institute)$ $endif$ ``` -因为这个模板应该包含作者的联系方式和电子邮件地址,在其他一些选项之间,我们可以添加以下内容(我们还做了一些其他的更改,但是因为文件的长度,就没有包含在此处)更新这个模板 +因为这个模板应该包含作者的联系方式和电子邮件地址,在其他一些选项之间,我们更新这个模板以添加以下内容(我们还做了一些其他的更改,但是因为文件的长度,就没有包含在此处): ``` latex $for(author)$ -    $if(author.name)$ -        \author{$author.name$} -        $if(author.affiliation)$ -            \affiliation{\institution{$author.affiliation$}} -        $endif$ -        $if(author.email)$ -            \email{$author.email$} -        $endif$ -    $else$ -        $author$ -    $endif$ + $if(author.name)$ + \author{$author.name$} + $if(author.affiliation)$ + \affiliation{\institution{$author.affiliation$}} + $endif$ + $if(author.email)$ + \email{$author.email$} + $endif$ + $else$ + $author$ + $endif$ $endfor$ ``` 要让这些更改起作用,我们还应该有下面的文件: - * `main.md` 包含调研论文 - * `biblio.bib` 包含参考书目数据库 - * `acmart.cls` 我们使用的文档的集合 - * `mytemplate.tex` 是我们使用的模板文件(代替默认的) - - +* `main.md` 包含调研论文 +* `biblio.bib` 包含参考书目数据库 +* `acmart.cls` 我们使用的文档的集合 +* `mytemplate.tex` 是我们使用的模板文件(代替默认的) 让我们添加论文的元信息到一个 `meta.yaml` 文件: @@ -211,7 +211,7 @@ abstract: |   An achievement-driven methodology strives to give students more control over their learning with enough flexibility to engage them in deeper learning. (more stuff continues) include-before: | -   \```{=latex} +   \` ``{=latex}   \copyrightyear{2018}   \acmYear{2018}   \setcopyright{acmlicensed} @@ -234,7 +234,7 @@ include-before: |   \ccsdesc[500]{Applied computing~Education}   \keywords{gamification, education, software design, UML} -   \``` +   \` `` figPrefix:   - "Fig."   - "Figs." @@ -246,23 +246,21 @@ secPrefix: 这个元信息文件使用 LaTeX 设置下列参数: - * `template` 指向使用的模板(’mytemplate.tex‘) - * `documentclass` 指向使用的 LaTeX 文档集合 (`acmart`) - * `classoption` 是在 `sigconf` 的案例中,指向这个类的选项 - * `title` 指定论文的标题 - * `author` 是一个包含例如 `name`, `affiliation`, 和 `email` 的地方 - * `bibliography` 指向包含参考书目的文件 (biblio.bib) - * `abstract` 包含论文的摘要 - * `include-before` 是这篇论文的真实内容之前应该被包含的信息;在 LaTeX 中被称为 [前言][8]。我在这里包含它去展示如何产生一篇计算机科学的论文,但是你可以选择跳过 - * `figPrefix` 指向如何引用文档中的图像,例如:当引用图像的 `[@fig:scatter-matrix]` 时应该显示什么。例如,当前的 `figPrefix` 在这个例子 `The boxes "Enjoy", "Grade" and "Motivation" ([@fig:scatter-matrix])`中,产生了这样的输出:`The boxes "Enjoy", "Grade" and "Motivation" (Fig. 3)`。如果这里有很多图像,目前的设置表明它应该在图像号码旁边显示 `Figs.`。 - * `secPrefix` 指定如何引用文档中其他地方提到的部分(类似之前的图像和概览) - - +* `template` 指向使用的模板(`mytemplate.tex`) +* `documentclass` 指向使用的 LaTeX 文档集合(`acmart`) +* `classoption` 是在 `sigconf` 的案例中,指向这个类的选项 +* `title` 指定论文的标题 +* `author` 是一个包含例如 `name`、`affiliation` 和 `email` 的地方 +* `bibliography` 指向包含参考书目的文件(`biblio.bib`) +* `abstract` 包含论文的摘要 +* `include-before` 是这篇论文的具体内容之前应该被包含的信息;在 LaTeX 中被称为 [前言][8]。我在这里包含它去展示如何产生一篇计算机科学的论文,但是你可以选择跳过 +* `figPrefix` 指向如何引用文档中的图像,例如:当引用图像的 `[@fig:scatter-matrix]` 时应该显示什么。例如,当前的 `figPrefix` 在这个例子 `The boxes "Enjoy", "Grade" and "Motivation" ([@fig:scatter-matrix])`中,产生了这样的输出:`The boxes "Enjoy", "Grade" and "Motivation" (Fig. 3)`。如果这里有很多图像,目前的设置表明它应该在图像号码旁边显示 `Figs.` +* `secPrefix` 指定如何引用文档中其他地方提到的部分(类似之前的图像和概览) 现在已经设置好了元信息,让我们来创建一个 `Makefile`,它会产生你想要的输出。`Makefile` 使用 Pandoc 产生 LaTeX 文件,`pandoc-crossref` 产生交叉引用,`pdflatex` 构建 LaTeX 为 PDF,`bibtex ` 处理引用。 -`Makefile` 已经展示如下: +`Makefile` 已经展示如下: ``` all: paper @@ -281,18 +279,16 @@ clean: .PHONY: all clean paper ``` -Pandoc 使用下面的标记: +Pandoc 使用下面的标记: - * `-s` 创建一个独立的 LaTeX 文档 - * `-F pandoc-crossref` 利用 `pandoc-crossref` 进行过滤 - * `--natbib` 用 `natbib` (你也可以选择 `--biblatex`)对参考书目进行渲染 - * `--template` 设置使用的模板文件 - * `-N` 为章节的标题编号 - * `-f` 和 `-t` 指定从哪个格式转换到哪个格式。`-t` 通常包含格式和 Pandoc 使用的扩展。在这个例子中,我们标明的 `raw_tex+tex_math_dollars+citations` 允许在 Markdown 中使用 `raw_tex` LaTeX。 `tex_math_dollars` 让我们能够像在 LaTeX 中一样输入数学符号,`citations` 让我们可以使用 [这个扩展][9]. +* `-s` 创建一个独立的 LaTeX 文档 +* `-F pandoc-crossref` 利用 `pandoc-crossref` 进行过滤 +* `--natbib` 用 `natbib` (你也可以选择 `--biblatex`)对参考书目进行渲染 +* `--template` 设置使用的模板文件 +* `-N` 为章节的标题编号 +* `-f` 和 `-t` 指定从哪个格式转换到哪个格式。`-t` 通常包含格式和 Pandoc 使用的扩展。在这个例子中,我们标明的 `raw_tex+tex_math_dollars+citations` 允许在 Markdown 中使用 `raw_tex` LaTeX。 `tex_math_dollars` 让我们能够像在 LaTeX 中一样输入数学符号,`citations` 让我们可以使用 [这个扩展][9]。 - - -由 LaTeX 产生 PDF,接着引导行 [从 bibtex][10] 处理参考书目: +要从 LaTeX 产生 PDF,按 [来自bibtex][10] 的指导处理参考书目: ``` @pdflatex main.tex &> /dev/null @@ -301,7 +297,7 @@ Pandoc 使用下面的标记: @pdflatex main.tex &> /dev/null ``` -脚本用 `@` 忽略输出,并且重定向标准输出和错误到 `/dev/null` ,因此我们在使用这些命令的可执行文件时不会看到任何的输出。 +脚本用 `@` 忽略输出,并且重定向标准输出和错误到 `/dev/null` ,因此我们在使用这些命令的可执行文件时不会看到任何的输出。 最终的结果展示如下。这篇文章的库可以在 [GitHub][11] 找到: @@ -309,9 +305,9 @@ Pandoc 使用下面的标记: ### 结论 -在我看来,研究的重点是协作,思想的传播,以及在任何一个恰好存在的领域中改进现有的技术。许多计算机科学家和工程师使用 LaTeX 文档系统来写论文,它对数学提供了完美的支持。来自社会科学的调查员似乎更喜欢 DOCX 文档。 +在我看来,研究的重点是协作、思想的传播,以及在任何一个恰好存在的领域中改进现有的技术。许多计算机科学家和工程师使用 LaTeX 文档系统来写论文,它对数学提供了完美的支持。来自社会科学的研究人员似乎更喜欢 DOCX 文档。 -当身处不同社区的调查员一同写一篇论文时,他们首先应该讨论一下他们将要使用哪种格式。然而如果包含太多的数学符号,DOCX 对于工程师来说不会是最简便的选择,LaTeX 对于缺乏编程经验的调查员来说也有一些问题。就像这篇文章中展示的,Markdown 是一门工程师和社会科学家都很轻易能够使用的语言。 +当身处不同社区的研究人员一同写一篇论文时,他们首先应该讨论一下他们将要使用哪种格式。然而如果包含太多的数学符号,DOCX 对于工程师来说不会是最简便的选择,LaTeX 对于缺乏编程经验的研究人员来说也有一些问题。就像这篇文章中展示的,Markdown 是一门工程师和社会科学家都很轻易能够使用的语言。 -------------------------------------------------------------------------------- @@ -320,7 +316,7 @@ via: https://opensource.com/article/18/9/pandoc-research-paper 作者:[Kiko Fernandez-Reyes][a] 选题:[lujun9972][b] 译者:[dianbanjiu](https://github.com/dianbanjiu) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 diff --git a/sources/tech/20180820 How To Disable Ads In Terminal Welcome Message In Ubuntu Server.md b/sources/tech/20180820 How To Disable Ads In Terminal Welcome Message In Ubuntu Server.md deleted file mode 100644 index 432788ac15..0000000000 --- a/sources/tech/20180820 How To Disable Ads In Terminal Welcome Message In Ubuntu Server.md +++ /dev/null @@ -1,123 +0,0 @@ -Translating by MjSeven - - -How To Disable Ads In Terminal Welcome Message In Ubuntu Server -====== - -![](https://www.ostechnix.com/wp-content/uploads/2018/08/disable-ads-in-Terminal-welcome-message-in-Ubuntu-720x340.jpg) - -If you’re using any latest Ubuntu server edition, you might have noticed some promotional links in welcome message which are not relevant to Ubuntu server platform. As you might already know **MOTD** , abbreviation of **M** essage **O** f **T** he **D** ay, displays a welcome message at every login in Linux systems. Usually, the welcome message contains the version of your OS, basic system information, official documentation link, and the links to read about the latest security updates etc. This is what we usually see at every time we login either via SSH or on the local machine. However, there some additional links started to appear in the terminal welcome message lately. I have already noticed this link few times, but I didn’t care about it and never clicked it though. Here is the Terminal welcome message shown in my Ubuntu 18.04 LTS server. - -![](http://www.ostechnix.com/wp-content/uploads/2018/08/Ubuntu-Terminal-welcome-message.png) - -As you can see in the above screenshot, there is also a bit.ly link and Ubuntu wiki link in the welcome message. Some of you may surprise and wondering what this is. There is nothing to worry about the links in the welcome message. It may look sort of ad-like, but those are not really commercial ads. The links are actually pointing to [**Ubuntu official blog**][1] and [**Ubuntu wiki**][2]. As I said earlier, one of link is not relevant and doesn’t has any details related to Ubuntu server. That’s why I called them ads in the first place. - -Even though most of us won’t visit bit.ly links, but some people may visit those links out of curiosity and ended up disappointed realizing that it simply points you to an external link. You can use any URL unshortners services, such as unshorten.it, to see where they lead before visiting the actual link. Alternatively, you can just type a plus sign ( **+** ) at the end of the bit.ly link to see where they lead and some statistics about the link. - -![](http://www.ostechnix.com/wp-content/uploads/2018/08/shortlink.png) - -### What is MOTD and how it works? - -Back in 2009, **Dustin Kirkland** from Canonical introduced the concept of MOTD in Ubuntu. It’s a flexible framework that enables the administrators or distro packages to add executable scripts in /etc/update-motd.d/* location to generate informative, interesting messages displayed at login. It was originally implemented for Landscape (a commercial service from Canonical), however other distribution maintainers found it useful and adopted this feature in their own distributions as well. - -If you look in **/etc/update-motd.d/** location in your Ubuntu system, you’ll see a set of scripts. One prints the generic “welcome” banner. The next one prints 3 links showing where to find help for the OS. The other one counts and displays the number of package updates available for the local system. Another one tells you if a reboot is required and so on. - -From Ubuntu 17.04 onwards, the developers have added **/etc/update-motd.d/50-motd-news** , a script to include some additional information in the welcome message. They additional information are; - - 1. Important critical information, such as - -ShellShock, Heartbleed etc. - - 2. End-of-Life (EOL) messages, new feature availability, etc. - - 3. Some fun and informative posts published in Ubuntu official blog and other news about Ubuntu. - - - - -Asynchronously, about 60 seconds after boot, a systemd timer runs “/etc/update-motd.d/50-motd-news –force” script. It sources 3 config variables defined in /etc/default/motd-news script. The default values are: ENABLED=1, URLS=”, WAIT=”5″. - -Here is the contents of /etc/default/motd-news file: -``` -$ cat /etc/default/motd-news -# Enable/disable the dynamic MOTD news service -# This is a useful way to provide dynamic, informative -# information pertinent to the users and administrators -# of the local system -ENABLED=1 - -# Configure the source of dynamic MOTD news -# White space separated list of 0 to many news services -# For security reasons, these must be https -# and have a valid certificate -# Canonical runs a service at motd.ubuntu.com, and you -# can easily run one too -URLS="https://motd.ubuntu.com" - -# Specify the time in seconds, you're willing to wait for -# dynamic MOTD news -# Note that news messages are fetched in the background by -# a systemd timer, so this should never block boot or login -WAIT=5 - -``` - -Good thing is MOTD is fully customizable, so you can disable it entirely (ENABLED=0), change or add scripts as per your wish, and change the wait time in seconds - -If MOTD is enabled, that systemd timer job will loop over each of the URLS, trim them to 80 characters per line, and a maximum of 10 lines, and concatenate them to a cache file in /var/cache/motd-news. This systemd timer job will re-run and update the /var/cache/motd-news every 12 hours. Upon user login, the contents of /var/cache/motd-news is just printed to screen. This is how MOTD works. - -Also, a custom user-agent string is included in **/etc/update-motd.d/50-motd-news** file to report information about your computer. If you look into **/etc/update-motd.d/50-motd-news** file, you will see the following code. -``` -# Piece together the user agent -USER_AGENT="curl/$curl_ver $lsb $platform $cpu $uptime" - -``` - -That means, the MOTD retriever reports your **operating system release** , **hardware platform** , **CPU type** and **uptime** to Canonical. - -Hope you got the basic idea about MOTD. - -Let us now get back to the topic. I don’t want this feature. How do I disable it? If the promotional links in the welcome message still bothers you and you wanted to disable them permanently, here is a quick way to disable it. - -### Disable Ads In Terminal Welcome Message In Ubuntu Server - -To disable these ads, edit file: -``` -$ sudo vi /etc/default/motd-news - -``` - -Find the following line and set its value as 0 (zero). -``` -[...] -ENABLED=0 -[...] - -``` - -Save and close the file. Now, reboot your system and see if the welcome message stills showing the links from Ubuntu blog. - -![](https://www.ostechnix.com/wp-content/uploads/2018/08/Ubuntu-Terminal-welcome-message-1.png) - -See? There are no links from Ubuntu blog and Ubuntu wiki now. - -And, that’s all for now. Hope this helps. More good stuffs to come. Stay tuned! - -Cheers! - - - --------------------------------------------------------------------------------- - -via: https://www.ostechnix.com/how-to-disable-ads-in-terminal-welcome-message-in-ubuntu-server/ - -作者:[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]:https://blog.ubuntu.com/ -[2]:https://wiki.ubuntu.com/ diff --git a/sources/tech/20181030 How To Analyze And Explore The Contents Of Docker Images.md b/sources/tech/20181030 How To Analyze And Explore The Contents Of Docker Images.md deleted file mode 100644 index f76f30055d..0000000000 --- a/sources/tech/20181030 How To Analyze And Explore The Contents Of Docker Images.md +++ /dev/null @@ -1,100 +0,0 @@ -FSSlc translating - -How To Analyze And Explore The Contents Of Docker Images -====== -![](https://www.ostechnix.com/wp-content/uploads/2018/10/dive-tool-720x340.png) - -As you may already know, a Docker container image is a lightweight, standalone, executable package of software that has everything required to run an application. That’s why container images are often used by developers for building and distributing applications. If you’re curious to know what is in a Docker image, this brief guide might help you. Today, we are going to learn to analyze and explore the contents of Docker images layer by layer using a tool named **“Dive”**. By analyzing a Docker image, we can discover possible duplicate files across the layers and remove them to reduce the size of the docker image. The Dive utility is not just a Docker Image analyzer, but also helps us to build one. - -### Installing Dive - -Get the latest version from the [**releases page**][1] and install it as shown below depending upon the distribution you use. - -If you’re on **Debian** or **Ubuntu** , run the following commands to download and install it. - -``` -$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.deb - -$ sudo apt install ./dive_0.0.8_linux_amd64.deb -``` - -**On RHEL/CentOS:** - -``` -$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.rpm - -$ sudo rpm -i dive_0.0.8_linux_amd64.rpm -``` - -Dive can also installed using [**Linuxbrew**][2] package manager. - -``` -$ brew tap wagoodman/dive - -$ brew install dive -``` - -For other installation methods, refer the project’s GitHub page given at the end of this guide. - -### Analyze And Explore The Contents Of Docker Images - -To analyze a Docker image, simply run dive command with Docker “Image ID”. You can get your Docker images’ IDs using “sudo docker images” command. - -``` -$ sudo dive ea4c82dcd15a -``` - -Here, **ea4c82dcd15a** is Docker image id. - -The Dive command will quickly analyze the given Docker image and display its contents in the Terminal. -![](https://www.ostechnix.com/wp-content/uploads/2018/10/Dive-1.png) -As you can see in the above screenshot, the layers of given docker image and its details, wasted space are shown in the left pane. On the right pane, the contents of each layer in the given Docker image. You can switch between the left and right pane using **Ctrl+SPACEBAR** key and **UP/DOWN** arrow keys to navigate through the directory tree. - -The list of keyboard shortcuts to use “Dive”. - - * **Ctrl+Spacebar** – Switch between left and right panes, - * **Spacebar** – Expand/Collapse directory tree, - * **Ctrl+A** – Show/hide added files, - * **Ctrl+R** – Show/hide removed files, - * **Ctrl+M** – Show/hide modified files, - * **Ctrl+U** – Show/hide unmodified files, - * **Ctrl+ L** – Show layer changes, - * **Ctrl+A** – Show layer changes, - * **Ctrl+/** – Filter files, - * **Ctrl+C** – Exit. - - - -In the above example, I have used “sudo” permission, because my Docker images are stored in **/var/lib/docker/** directory. If you have them on your $HOME directory or anywhere not owned “root” user, you need not to use “sudo”. - -You can also build a Docker image and do an immediate analysis with one command: `` - -``` -$ dive build -t -``` - -Dive tool is still in beta stage, so there will be bugs. If you came across any bugs, report them in the project’s github page. - -And, that’s all for today. You know now how to explore and analyze the contents of Docker container image and how to build it using Dive tool. Hope this helps. - -More good stuffs to come. Stay tuned! - -Cheers! - - - --------------------------------------------------------------------------------- - -via: https://www.ostechnix.com/how-to-analyze-and-explore-the-contents-of-docker-images/ - -作者:[SK][a] -选题:[lujun9972][b] -译者:[译者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/ -[b]: https://github.com/lujun9972 -[1]: https://github.com/wagoodman/dive/releases -[2]: https://www.ostechnix.com/linuxbrew-common-package-manager-linux-mac-os-x/ diff --git a/translated/tech/20180820 How To Disable Ads In Terminal Welcome Message In Ubuntu Server.md b/translated/tech/20180820 How To Disable Ads In Terminal Welcome Message In Ubuntu Server.md new file mode 100644 index 0000000000..48a556d29a --- /dev/null +++ b/translated/tech/20180820 How To Disable Ads In Terminal Welcome Message In Ubuntu Server.md @@ -0,0 +1,110 @@ +如何在 Ubuntu 服务器中禁用终端欢迎消息中的广告 +====== + +如果你正在使用最新的 Ubuntu 服务器版本,你可能已经注意到欢迎消息中有一些与 Ubuntu 服务器平台无关的促销链接。你可能已经知道 **MOTD**,即 **M**essage **O**f **T**he **D**ay 的开头首字母,在 Linux 系统每次登录时都会显示欢迎信息。通常,欢迎消息包含操作系统版本,基本系统信息,官方文档链接以及有关最新安全更新等的链接。这些是我们每次通过 SSH 或本地登录时通常会看到的内容。但是,最近在终端欢迎消息中出现了一些其他链接。我已经几次注意到这些链接,但我并在意,也从未点击过。以下是我的 Ubuntu 18.04 LTS 服务器上显示的终端欢迎消息。 + +![](http://www.ostechnix.com/wp-content/uploads/2018/08/Ubuntu-Terminal-welcome-message.png) + +正如你在上面截图中所看到的,欢迎消息中有一个 bit.ly 链接和 Ubuntu wiki 链接。有些人可能会惊讶并想知道这是什么。其实欢迎信息中的链接无需担心。它可能看起来像广告,但并不是商业广告。链接实际上指的是 [**Ubuntu 官方博客**][1] 和 [**Ubuntu wiki**][2]。正如我之前所说,其中的一个链接是不相关的,没有任何与 Ubuntu 服务器相关的细节,这就是为什么我开头称它们为广告。 +(to 校正:这里是其中一个链接不相关还是两个链接都不相关) + +虽然我们大多数人都不会访问 bit.ly 链接,但是有些人可能出于好奇去访问这些链接,结果失望地发现它只是指向一个外部链接。你可以使用任何 URL 短网址服务,例如 unshorten.it,在访问真正链接之前,查看它会指向哪里。或者,你只需在 bit.ly 链接的末尾输入加号(**+**)即可查看它们的实际位置以及有关链接的一些统计信息。 + +![](http://www.ostechnix.com/wp-content/uploads/2018/08/shortlink.png) + +### 什么是 MOTD 以及它是如何工作的? + +2009 年,来自 Canonical 的 **Dustin Kirkland** 在 Ubuntu 中引入了 MOTD 的概念。它是一个灵活的框架,使管理员或发行包能够在 /etc/update-motd.d/* 位置添加可执行脚本,目的是生成在登录时显示有益的,有趣的消息。它最初是为 Landscape(Canonical 的商业服务)实现的,但是其它发行版维护者发现它很有用,并且在他们自己的发行版中也采用了这个特性。 + +如果你在 Ubuntu 系统中查看 **/etc/update-motd.d/**,你会看到一组脚本。一个是打印通用的 “ Welcome” 横幅。下一个打印 3 个链接,显示在哪里可以找到操作系统的帮助。另一个计算并显示本地系统包可以更新的数量。另一个脚本告诉你是否需要重新启动等等。 + +从 Ubuntu 17.04 起,开发人员添加了 **/etc/update-motd.d/50-motd-news**,这是一个脚本用来在欢迎消息中包含一些附加信息。这些附加信息是: + + 1. 重要的关键信息,例如 ShellShock, Heartbleed 等 + + 2. 生命周期(EOL)消息,新功能可用性等 + + 3. 在 Ubuntu 官方博客和其他有关 Ubuntu 的新闻中发布的一些有趣且有益的帖子 + +另一个特点是异步,启动后约 60 秒,systemd 计时器运行 “/etc/update-motd.d/50-motd-news –force” 脚本。它提供了 /etc/default/motd-news 脚本中定义的 3 个配置变量。默认值为:ENABLED=1, URLS=”, WAIT=”5″。 + +以下是 /etc/default/motd-news 文件的内容: +``` +$ cat /etc/default/motd-news +# Enable/disable the dynamic MOTD news service +# This is a useful way to provide dynamic, informative +# information pertinent to the users and administrators +# of the local system +ENABLED=1 + +# Configure the source of dynamic MOTD news +# White space separated list of 0 to many news services +# For security reasons, these must be https +# and have a valid certificate +# Canonical runs a service at motd.ubuntu.com, and you +# can easily run one too +URLS="https://motd.ubuntu.com" + +# Specify the time in seconds, you're willing to wait for +# dynamic MOTD news +# Note that news messages are fetched in the background by +# a systemd timer, so this should never block boot or login +WAIT=5 + +``` + +好事情是 MOTD 是完全可定制的,所以你可以彻底禁用它(ENABLED=0),根据你的意愿更改或添加脚本,并以秒为单位更改等待时间。 + +如果启用了 MOTD,那么 systemd 计时器作业将循环遍历每个 URL,将它们缩减到每行 80 个字符,最多 10 行,并将它们连接(to 校正:也可能是链接?)到 /var/cache/motd-news 中的缓存文件。此 systemd 计时器作业将每隔 12 小时运行并更新 /var/cache/motd-news。用户登录后,/var/cache/motd-news 的内容会打印到屏幕上。这就是 MOTD 的工作原理。 + +此外,**/etc/update-motd.d/50-motd-news** 文件中包含自定义用户代理字符串,以报告有关计算机的信息。如果你查看 **/etc/update-motd.d/50-motd-news** 文件,你会看到 +``` +# Piece together the user agent +USER_AGENT="curl/$curl_ver $lsb $platform $cpu $uptime" +``` + +这意味着,MOTD 检索器将向 Canonical 报告你的**操作系统版本**,**硬件平台**,**CPU 类型**和**正常运行时间**。 + +到这里,希望你对 MOTD 有了一个基本的了解。 + +现在让我们回到主题,我不想要这个功能。我该如何禁用它?如果欢迎消息中的促销链接仍然困扰你,并且你想永久禁用它们,则可以通过以下方法快速禁用它。 + +### 在 Ubuntu 服务器中禁用终端欢迎消息中的广告 + +要禁用这些广告,编辑文件: +``` +$ sudo vi /etc/default/motd-news +``` + +找到以下行并将其值设置为 0(零)。 +``` +[...] +ENABLED=0 +[...] +``` + +保存并关闭文件。现在,重新启动系统,看看欢迎消息是否仍然显示来自 Ubuntu 博客的链接。 + +![](https://www.ostechnix.com/wp-content/uploads/2018/08/Ubuntu-Terminal-welcome-message-1.png) + +看到没?现在没有来自 Ubuntu 博客和 Ubuntu wiki 的链接。 + +这就是全部内容了。希望这对你有所帮助。更多好东西要来了,敬请关注! + +顺祝时祺! + + +-------------------------------------------------------------------------------- + +via: https://www.ostechnix.com/how-to-disable-ads-in-terminal-welcome-message-in-ubuntu-server/ + +作者:[SK][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.ostechnix.com/author/sk/ +[1]:https://blog.ubuntu.com/ +[2]:https://wiki.ubuntu.com/ diff --git a/translated/tech/20181030 How To Analyze And Explore The Contents Of Docker Images.md b/translated/tech/20181030 How To Analyze And Explore The Contents Of Docker Images.md new file mode 100644 index 0000000000..8b0021bf26 --- /dev/null +++ b/translated/tech/20181030 How To Analyze And Explore The Contents Of Docker Images.md @@ -0,0 +1,94 @@ +如何分析并探索 Docker 容器镜像的内容 +====== +![](https://www.ostechnix.com/wp-content/uploads/2018/10/dive-tool-720x340.png) + +或许你已经了解到 Docker 容器镜像是一个轻量、独立、含有运行某个应用所需全部软件的可执行包,这也是为什么容器镜像会经常被开发者用于构建和分发应用。假如你很好奇一个 Docker 镜像里面包含了什么东西,那么这篇简要的指南或许会帮助到你。今天,我们将学会使用一个名为 **Dive** 的工具来分析和探索 Docker 镜像每层的内容。通过分析 Docker 镜像,我们可以发现在各个层之间可能重复的文件并通过移除它们来减小 Docker 镜像的大小。Dive 工具不仅仅是一个 Docker 镜像分析工具,它还可以帮助我们来构建镜像。Dive 是一个用 Go 编程语言编写的免费开源工具。 + +### 安装 Dive + +首先从该项目的 [**发布页**][1] 下载最新版本,然后像下面展示的那样根据你所使用的发行版来安装它。 + +假如你正在使用 **Debian** 或者 **Ubuntu**,那么可以运行下面的命令来下载并安装它。 +``` +$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.deb +``` +``` +$ sudo apt install ./dive_0.0.8_linux_amd64.deb +``` + +**在 RHEL 或 CentOS 系统中** +``` +$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.rpm +``` +``` +$ sudo rpm -i dive_0.0.8_linux_amd64.rpm +``` + +Dive 也可以使用 [**Linuxbrew**][2] 包管理器来安装。 +``` +$ brew tap wagoodman/dive +``` +``` +$ brew install dive +``` + +至于其他的安装方法,请参考 [Dive 项目的 GitHub 网页][3]。 + +### 分析并探索 Docker 镜像的内容 + +要分析一个 Docker 镜像,只需要运行加上 Docker 镜像 ID的 dive 命令就可以了。你可以使用 `sudo docker images` 来得到 Docker 镜像的 ID。 +``` +$ sudo dive ea4c82dcd15a +``` + +上面命令中的 **ea4c82dcd15a** 是某个镜像的 id。 + +然后 Dive 命令将快速地分析给定 Docker 镜像的内容并将它在终端中展示出来。 + +![](https://www.ostechnix.com/wp-content/uploads/2018/10/Dive-1.png) + +正如你在上面的截图中看到的那样,在终端的左边一栏列出了给定 Docker 镜像的各个层及其详细内容,浪费的空间大小等信息。右边一栏则给出了给定 Docker 镜像每一层的内容。你可以使用 **Ctrl+SPACEBAR** 来在左右栏之间切换,使用 **UP/DOWN** 上下键来在目录树中进行浏览。 + +下面是 `Dive` 的快捷键列表: + * **Ctrl+Spacebar** – 在左右栏之间切换 + * **Spacebar** – 展开或收起目录树 + * **Ctrl+A** – 文件树视图:展示或隐藏增加的文件 + * **Ctrl+R** – 文件树视图:展示或隐藏被移除的文件 + * **Ctrl+M** – 文件树视图:展示或隐藏被修改的文件 + * **Ctrl+U** – 文件树视图:展示或隐藏未修改的文件 + * **Ctrl+L** – 层视图:展示当前层的变化 + * **Ctrl+A** – 层视图:展示总的变化 + * **Ctrl+/** – 筛选文件 + * **Ctrl+C** – 退出 + +在上面的例子中,我使用了 `sudo` 权限,这是因为我的 Docker 镜像存储在 **/var/lib/docker/** 目录中。假如你的镜像保存在你的家目录 `$HOME`或者在其他不属于 `root` 用户的目录,你就没有必要使用 `sudo` 命令。 + +你还可以使用下面的单个命令来构建一个 Docker 镜像并立刻分析该镜像: +``` +$ dive build -t +``` + +Dive 工具仍处于 beta 阶段,所以可能会存在 bug。假如你遇到了 bug,请在该项目的 GitHub 主页上进行报告。 + +好了,这就是今天的全部内容。现在你知道如何使用 Dive 工具来探索和分析 Docker 容器镜像的内容以及利用它构建镜像。希望本文对你有所帮助。 + +更多精彩内容即将呈现,请保持关注! + +干杯! + +-------------------------------------------------------------------------------- + +via: https://www.ostechnix.com/how-to-analyze-and-explore-the-contents-of-docker-images/ + +作者:[SK][a] +选题:[lujun9972][b] +译者:[FSSlc](https://github.com/FSSlc) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.ostechnix.com/author/sk/ +[b]: https://github.com/lujun9972 +[1]: https://github.com/wagoodman/dive/releases +[2]: https://www.ostechnix.com/linuxbrew-common-package-manager-linux-mac-os-x/ +[3]: https://github.com/wagoodman/dive \ No newline at end of file