Merge remote-tracking branch 'LCTT/master'

This commit is contained in:
Xingyu.Wang 2018-05-07 21:48:05 +08:00
commit 5dcf0db88e
10 changed files with 501 additions and 461 deletions

View File

@ -0,0 +1,122 @@
ImageMagick 的一些高级图片查看技巧
======
> 用这些 ImageMagick 命令行图像编辑应用的技巧更好的管理你的数码照片集。
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/osdc-photo-camera-green.png?itok=qiDqmXV1)
图片源于 [Internet Archive Book Images](https://www.flickr.com/photos/internetarchivebookimages/14759826206/in/photolist-ougY7b-owgz5y-otZ9UN-waBxfL-oeEpEf-xgRirT-oeMHfj-wPAvMd-ovZgsb-xhpXhp-x3QSRZ-oeJmKC-ovWeKt-waaNUJ-oeHPN7-wwMsfP-oeJGTK-ovZPKv-waJnTV-xDkxoc-owjyCW-oeRqJh-oew25u-oeFTm4-wLchfu-xtjJFN-oxYznR-oewBRV-owdP7k-owhW3X-oxXxRg-oevDEY-oeFjP1-w7ZB6f-x5ytS8-ow9C7j-xc6zgV-oeCpG1-oewNzY-w896SB-wwE3yA-wGNvCL-owavts-oevodT-xu9Lcr-oxZqZg-x5y4XV-w89d3n-x8h6fi-owbfiq),Opensource.com 修改,[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)协议
在我先前的[ImageMagick 入门:使用命令行来编辑图片][1] 文章中,我展示了如何使用 ImageMagick 的菜单栏进行图片的编辑和变换风格。在这篇续文里,我将向你展示使用这个开源的图像编辑器来查看图片的另外方法。
### 别样的风格
在深入 ImageMagick 的高级图片查看技巧之前,我想先分享另一个使用 `convert` 达到的有趣但简单的效果,在[上一篇文章][1]中我已经详细地介绍了 `convert` 命令,这个技巧涉及这个命令的 `edge``negate` 选项:
```
convert DSC_0027.JPG -edge 3 -negate edge3+negate.jpg
```
![在图片上使用 `edge``negate` 选项][3]
*使用`edge` 和 `negate` 选项前后的图片对比*
这些使我更喜爱编辑后的图片:海的外观,作为前景和背景的植被,特别是太阳及其在海上的反射,最后是天空。
### 使用 display 来查看一系列图片
假如你跟我一样是个命令行用户,你就知道 shell 为复杂任务提供了更多的灵活性和快捷方法。下面我将展示一个例子来佐证这个观点。ImageMagick 的 `display` 命令可以克服我在 GNOME 桌面上使用 [Shotwell][4] 图像管理器导入图片时遇到的问题。
Shotwell 会根据每张导入图片的 [Exif][5] 数据,创建以图片被生成或者拍摄时的日期为名称的目录结构。最终的效果是最上层的目录以年命名,接着的子目录是以月命名 (01、 02、 03 等等),然后是以每月的日期命名的子目录。我喜欢这种结构,因为当我想根据图片被创建或者拍摄时的日期来查找它们时将会非常方便。
但这种结构也并不是非常完美的,当我想查看最近几个月或者最近一年的所有图片时就会很麻烦。使用常规的图片查看器,我将不停地在不同层级的目录间跳转,但 ImageMagick 的 `display` 命令可以使得查看更加简单。例如,假如我想查看最近一年的图片,我便可以在命令行中键入下面的 `display` 命令:
```
display -resize 35% 2017/*/*/*.JPG
```
我可以一个月又一个月,一天又一天地遍历这一年。
现在假如我想查看某张图片,但我不确定我是在 2016 年的上半年还是在 2017 的上半年拍摄的,那么我便可以使用下面的命令来找到它:
```
display -resize 35% 201[6-7]/0[1-6]/*/*.JPG
```
这限制查看的图片拍摄于 2016 和 2017 年的一月到六月
### 使用 montage 来查看图片的缩略图
假如现在我要查找一张我想要编辑的图片,使用 `display` 的一个问题是它只会显示每张图片的文件名,而不显示其在目录结构中的位置,所以想要找到那张图片并不容易。另外,假如我很偶然地在从相机下载图片的过程中将这些图片从相机的内存里面清除了它们,结果使得下次拍摄照片的名称又从 `DSC_0001.jpg` 开始命名,那么当使用 `display` 来展示一整年的图片时,将会在这 12 个月的图片中花费很长的时间来查找它们。
这时 `montage` 命令便可以派上用场了。它可以将一系列的图片缩略图放在一张图片中,这样就会非常有用。例如可以使用下面的命令来完成上面的任务:
```
montage -label %d/%f -title 2017 -tile 5x -resize 10% -geometry +4+4 2017/0[1-4]/*/*.JPG 2017JanApr.jpg
```
从左到右,这个命令以标签开头,标签的形式是包含文件名(`%f`)和以 `/` 分割的目录(`%d`结构接着这个命令以目录的名称2017来作为标题然后将图片排成 5 列,每个图片缩放为 10% (这个参数可以很好地匹配我的屏幕)。`geometry` 的设定将在每张图片的四周留白,最后指定那些图片要包括到这张合成图片中,以及一个合适的文件名称(`2017JanApr.jpg`)。现在图片 `2017JanApr.jpg` 便可以成为一个索引,使得我可以不时地使用它来查看这个时期的所有图片。
### 注意内存消耗
你可能会好奇为什么我在上面的合成图中只特别指定了为期 4 个月(从一月到四月)的图片。因为 `montage` 将会消耗大量内存,所以你需要多加注意。我的相机产生的图片每张大约有 2.5MB,我发现我的系统可以很轻松地处理 60 张图片。但一旦图片增加到 80 张,如果此时还有另外的程序(例如 Firefox 、Thunderbird在后台工作那么我的电脑将会死机这似乎和内存使用相关`montage`可能会占用可用 RAM 的 80% 乃至更多(你可以在此期间运行 `top` 命令来查看内存占用)。假如我关掉其他的程序,我便可以在我的系统死机前处理 80 张图片。
下面的命令可以让你知晓在你运行 `montage` 命令前你需要处理图片张数:
```
ls 2017/0[1-4/*/*.JPG > filelist; wc -l filelist
```
`ls` 命令生成我们搜索的文件的列表,然后通过重定向将这个列表保存在任意以名为 `filelist` 的文件中。接着带有 `-l` 选项的 `wc` 命令输出该列表文件共有多少行,换句话说,展示出了需要处理的文件个数。下面是我运行命令后的输出:
```
163 filelist
```
啊呀!从一月到四月我居然有 163 张图片,使用这些图片来创建一张合成图一定会使得我的系统死机的。我需要将这个列表减少点,可能只处理到 3 月份或者更早的图片。但如果我在 4 月 20 号到 30 号期间拍摄了很多照片,我想这便是问题的所在。下面的命令便可以帮助指出这个问题:
```
ls 2017/0[1-3]/*/*.JPG > filelist; ls 2017/04/0[1-9]/*.JPG >> filelist; ls 2017/04/1[0-9]/*.JPG >> filelist; wc -l filelist
```
上面一行中共有 4 个命令,它们以分号分隔。第一个命令特别指定从一月到三月期间拍摄的照片;第二个命令使用 `>>` 将拍摄于 4 月 1 日至 9 日的照片追加到这个列表文件中;第三个命令将拍摄于 4 月 10 日到 19 日的照片追加到列表中。最终它的显示结果为:
```
81 filelist
```
我知道假如我关掉其他的程序,处理 81 张图片是可行的。
使用 `montage` 来处理它们是很简单的,因为我们只需要将上面所做的处理添加到 `montage` 命令的后面即可:
```
montage -label %d/%f -title 2017 -tile 5x -resize 10% -geometry +4+4 2017/0[1-3]/*/*.JPG 2017/04/0[1-9]/*.JPG 2017/04/1[0-9]/*.JPG 2017Jan01Apr19.jpg
```
从左到右,`montage` 命令后面最后的那个文件名将会作为输出,在它之前的都是输入。这个命令将花费大约 3 分钟来运行,并生成一张大小约为 2.5MB 的图片,但我的系统只是有一点反应迟钝而已。
### 展示合成图片
当你第一次使用 `display` 查看一张巨大的合成图片时,你将看到合成图的宽度很合适,但图片的高度被压缩了,以便和屏幕相适应。不要慌,只需要左击图片,然后选择 `View > Original Size` 便会显示整个图片。再次点击图片便可以使菜单栏隐藏。
我希望这篇文章可以在你使用新方法查看图片时帮助你。在我的下一篇文章中,我将讨论更加复杂的图片操作技巧。
### 作者简介
Greg Pittman - Greg 肯塔基州路易斯维尔的一名退休的神经科医生,对计算机和程序设计有着长期的兴趣,最早可以追溯到 1960 年代的 Fortran IV 。当 Linux 和开源软件相继出现时,他开始学习更多的相关知识,并分享自己的心得。他是 Scribus 团队的成员。
--------------------------------------------------------------------------------
via: https://opensource.com/article/17/9/imagemagick-viewing-images
作者:[Greg Pittman][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://opensource.com/users/greg-p
[1]:https://linux.cn/article-8851-1.html
[3]:https://opensource.com/sites/default/files/u128651/edge3negate.jpg "Using the edge and negate options on an image."
[4]:https://wiki.gnome.org/Apps/Shotwell
[5]:https://en.wikipedia.org/wiki/Exif

View File

@ -1,29 +1,32 @@
如何使用 Npm 管理 NodeJS 包
如何使用 npm 管理 NodeJS 包
=====
![](https://www.ostechnix.com/wp-content/uploads/2018/01/npm-720x340.png)
前一段时间,我们发布了一个[**使用 PIP 管理 Python 包**][3]的指南。今天,我们将讨论如何使用 Npm 管理 NodeJS 包。NPM 是最大的软件注册中心,包含 600,000 多个包。每天,世界各地的开发人员通过 npm 共享和下载软件包。在本指南中,我将解释使用 npm 基础知识,例如安装包(本地和全局)、安装特定版本的包、更新、删除和管理 NodeJS 包等等。
前一段时间,我们发布了一个[使用 pip 管理 Python 包][3]的指南。今天,我们将讨论如何使用 npm 管理 NodeJS 包。npm 是最大的软件注册中心,包含 600,000 多个包。每天,世界各地的开发人员通过 npm 共享和下载软件包。在本指南中,我将解释使用 npm 基础知识,例如安装包(本地和全局)、安装特定版本的包、更新、删除和管理 NodeJS 包等等。
### 使用 Npm 管理 NodeJS 包
##### 安装 NPM
### 安装 npm
用于 npm 是用 NodeJS 编写的,我们需要安装 NodeJS 才能使用 npm。要在不同的 Linux 发行版上安装 NodeJS请参考下面的链接。
- [在 Linux 上安装 NodeJS](https://www.ostechnix.com/install-node-js-linux/)
检查 node 安装的位置:
```
$ which node
/home/sk/.nvm/versions/node/v9.4.0/bin/node
```
检查它的版本:
```
$ node -v
v9.4.0
```
进入 Node 交互式解释器:
```
$ node
> .help
@ -38,43 +41,46 @@ $ node
```
检查 npm 安装的位置:
```
$ which npm
/home/sk/.nvm/versions/node/v9.4.0/bin/npm
```
还有版本:
```
$ npm -v
5.6.0
```
棒极了Node 和 NPM 已安装并能工作!正如你可能已经注意到,我已经在我的 $HOME 目录中安装了 NodeJS 和 NPM这样是为了避免在全局模块时出现权限问题。这是 NodeJS 团队推荐的方法。
棒极了Node 和 npm 已安装好!正如你可能已经注意到,我已经在我的 `$HOME` 目录中安装了 NodeJS 和 NPM这样是为了避免在全局模块时出现权限问题。这是 NodeJS 团队推荐的方法。
那么,让我们继续看看如何使用 npm 管理 NodeJS 模块(或包)。
##### 安装 NodeJS 模块
### 安装 NodeJS 模块
NodeJS 模块可以安装在本地或全局(系统范围)。现在我将演示如何在本地安装包。
NodeJS 模块可以安装在本地或全局(系统范围)。现在我将演示如何在本地安装包LCTT 译注:即将包安装到一个 NodeJS 项目当中,所以下面会先创建一个空项目做演示)
**在本地安装包**
#### 在本地安装包
为了在本地管理包,我们通常使用 **package.json** 文件来管理。
为了在本地管理包,我们通常使用 `package.json` 文件来管理。
首先,让我们创建我们的项目目录。
```
$ mkdir demo
```
```
$ cd demo
```
在项目目录中创建一个 package.json 文件。为此,运行:
在项目目录中创建一个 `package.json` 文件。为此,运行:
```
$ npm init
```
输入你的包的详细信息例如名称版本作者github 页面等等,或者按下 ENTER 键接受默认值并键入 **YES** 确认。
输入你的包的详细信息例如名称、版本、作者、GitHub 页面等等,或者按下回车键接受默认值并键入 `yes` 确认。
```
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
@ -112,19 +118,22 @@ About to write to /home/sk/demo/package.json:
Is this ok? (yes) yes
```
上面的命令初始化你的项目并创建了 package.json 文件。
上面的命令初始化你的项目并创建了 `package.json` 文件。
你也可以使用命令以非交互式方式执行此操作:
```
npm init --y
```
现在让我们安装名为 [**commander**][2] 的包。
现在让我们安装名为 [commander][2] 的包。
```
$ npm install commander
```
示例输出:
```
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN demo@1.0.0 No repository field.
@ -133,9 +142,10 @@ npm WARN demo@1.0.0 No repository field.
added 1 package in 2.519s
```
这将在项目的根目录中创建一个名为 **" node_modules"** 的目录(如果它不存在的话),并在其中下载包。
这将在项目的根目录中创建一个名为 `node_modules` 的目录(如果它不存在的话),并在其中下载包。
让我们检查 `pachage.json` 文件。
让我们检查 pachage.json 文件。
```
$ cat package.json
{
@ -148,30 +158,33 @@ $ cat package.json
},
"author": "",
"license": "ISC",
**"dependencies": {**
**"commander": "^2.13.0"**
"dependencies": {
"commander": "^2.13.0"
}
}
```
你会看到添加了依赖文件,版本号前面的插入符号 ( **^** ) 表示在安装时npm 将取出它可以找到的最高版本的包。
你会看到添加了依赖文件,版本号前面的插入符号 ( `^` ) 表示在安装时npm 将取出它可以找到的最高版本的包。
```
$ ls node_modules/
commander
```
package.json 文件的优点是,如果你的项目目录中有 package.json 文件,只需键入 "npm install",那么 npm 将查看文件中列出的依赖关系并下载它们。你甚至可以与其他开发人员共享它或将其推送到你的 GitHub 仓库。因此,当他们键入 “npm install” 时,他们将获得你拥有的所有相同的包。
`package.json` 文件的优点是,如果你的项目目录中有 `package.json` 文件,只需键入 `npm install`,那么 `npm` 将查看文件中列出的依赖关系并下载它们。你甚至可以与其他开发人员共享它或将其推送到你的 GitHub 仓库。因此,当他们键入 `npm install` 时,他们将获得你拥有的所有相同的包。
你也可能会注意到另一个名为 **package-lock.json** 的文件,该文件确保在项目安装的所有系统上都保持相同的依赖关系。
你也可能会注意到另一个名为 `package-lock.json` 的文件,该文件确保在项目安装的所有系统上都保持相同的依赖关系。
要在你的程序中使用已安装的包,使用实际代码在项目目录中创建一个 `index.js`(或者其他任何名称)文件,然后使用以下命令运行它:
要在你的程序中使用已安装的包,使用实际代码在项目目录中创建一个 **index.js**(或者其他任何名称)文件,然后使用以下命令运行它:
```
$ node index.js
```
**在全局安装包**
#### 在全局安装包
如果你想使用一个包作为命令行工具,那么最好在全局安装它。这样,无论你的当前目录是哪个目录,它都能正常工作。
```
$ npm install async -g
+ async@2.6.0
@ -179,23 +192,27 @@ added 2 packages in 4.695s
```
或者
```
$ npm install async --global
```
要安装特定版本的包,我们可以:
```
$ npm install async@2.6.0 --global
```
##### 更新 NodeJS 模块
### 更新 NodeJS 模块
要更新本地包,转到 `package.json` 所在的项目目录并运行:
要更新本地包,转到 package.json 所在的项目目录并运行:
```
$ npm update
```
然后,运行以下命令确保所有包都更新了。
```
$ npm outdated
```
@ -203,6 +220,7 @@ $ npm outdated
如果没有需要更新的,那么它返回空。
要找出哪一个全局包需要更新,运行:
```
$ npm outdated -g --depth=0
```
@ -210,32 +228,37 @@ $ npm outdated -g --depth=0
如果没有输出,意味着所有包都已更新。
更新单个全局包,运行:
```
$ npm update -g <package-name>
```
更新所有的全局包,运行:
```
$ npm update -g <package>
$ npm update -g
```
##### 列出 NodeJS 模块
### 列出 NodeJS 模块
列出本地包,转到项目目录并运行:
```
$ npm list
demo@1.0.0 /home/sk/demo
└── commander@2.13.0
```
如你所见,我在本地安装了 "commander" 这个包。
如你所见,我在本地安装了 `commander` 这个包。
要列出全局包,从任何位置都可以运行以下命令:
```
$ npm list -g
```
示例输出:
```
/home/sk/.nvm/versions/node/v9.4.0/lib
├─┬ async@2.6.0
@ -252,7 +275,8 @@ $ npm list -g
该命令将列出所有模块及其依赖关系。
要仅仅列出顶级模块,使用 -depth=0 选项:
要仅仅列出顶级模块,使用 `-depth=0` 选项:
```
$ npm list -g --depth=0
/home/sk/.nvm/versions/node/v9.4.0/lib
@ -260,43 +284,48 @@ $ npm list -g --depth=0
└── npm@5.6.0
```
##### 寻找 NodeJS 模块
#### 寻找 NodeJS 模块
要搜索一个模块,使用 `npm search` 命令:
要搜索一个模块,使用 "npm search" 命令:
```
npm search <search-string>
```
例如:
```
$ npm search request
```
该命令将显示包含搜索字符串 "request" 的所有模块。
该命令将显示包含搜索字符串 `request` 的所有模块。
##### 移除 NodeJS 模块
要删除本地包,转到项目目录并运行以下命令,这会从 **node_modules** 目录中删除包:
要删除本地包,转到项目目录并运行以下命令,这会从 `node_modules` 目录中删除包:
```
$ npm uninstall <package-name>
```
要从 **package.json** 文件中的依赖关系中删除它,使用如下所示的 **save** 标志:
要从 `package.json` 文件中的依赖关系中删除它,使用如下所示的 `save` 选项:
```
$ npm uninstall --save <package-name>
```
要删除已安装的全局包,运行:
```
$ npm uninstall -g <package>
```
##### 清楚 NPM 缓存
### 清除 npm 缓存
默认情况下,NPM 在安装包时,会将其副本保存在 $HOME 目录中名为 npm 的缓存文件夹中。所以,你可以在下次安装时不必再次下载。
默认情况下,npm 在安装包时,会将其副本保存在 `$HOME` 目录中名为 `.npm` 的缓存文件夹中。所以,你可以在下次安装时不必再次下载。
查看缓存模块:
```
$ ls ~/.npm
```
@ -304,28 +333,33 @@ $ ls ~/.npm
随着时间的推移,缓存文件夹会充斥着大量旧的包。所以不时清理缓存会好一些。
从 npm@5 开始npm 缓存可以从 corruption 问题中自行修复,并且保证从缓存中提取的数据有效。如果你想确保一切都一致,运行:
```
$ npm cache verify
```
清楚整个缓存,运行:
清除整个缓存,运行:
```
$ npm cache clean --force
```
##### 查看 NPM 配置
### 查看 npm 配置
要查看 npm 配置,键入:
要查看 NPM 配置,键入:
```
$ npm config list
```
或者
或者:
```
$ npm config ls
```
示例输出:
```
; cli configs
metrics-registry = "https://registry.npmjs.org/"
@ -339,26 +373,25 @@ user-agent = "npm/5.6.0 node/v9.4.0 linux x64"
```
要显示当前的全局位置:
```
$ npm config get prefix
/home/sk/.nvm/versions/node/v9.4.0
```
好吧,这就是全部了。我们刚才介绍的只是基础知识,NPM 是一个广泛话题。有关更多详细信息,参阅 [**NPM Getting Started**][3] 指南。
好吧,这就是全部了。我们刚才介绍的只是基础知识,npm 是一个广泛话题。有关更多详细信息,参阅 [**NPM Getting Started**][3] 指南。
希望这对你有帮助。更多好东西即将来临,敬请关注!
干杯!
--------------------------------------------------------------------------------
via: https://www.ostechnix.com/manage-nodejs-packages-using-npm/
作者:[SK][a]
译者:[MjSeven](https://github.com/MjSeven)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,53 +1,52 @@
一个用于追踪工作时间的命令行生产力工具
moro一个用于追踪工作时间的命令行生产力工具
======
![](https://www.ostechnix.com/wp-content/uploads/2018/03/Moro-720x340.jpg)
保持对你的工作小时数的追踪将让你知晓在一个特定时间区间内你所完成的工作总量。在网络上有大量的基于GUI的生产力工具可以用来追踪工作小时数。但我却不能找到一个基于CLI的工具。今天我偶然发现了一个简单而奏效的叫做 **“Moro”** 的追踪工作时间数的工具。Moro是一个芬兰词汇意为"Hello"。通过使用Moro,你可以找到你在完成某项特定任务时花费了多少时间。这个工具是免费且开源的,它是通过**NodeJS**编写的。
保持对你的工作小时数的追踪将让你知晓在一个特定时间区间内你所完成的工作总量。在网络上有大量的基于 GUI 的生产力工具可以用来追踪工作小时数。但我却不能找到一个基于 CLI 的工具。今天我偶然发现了一个简单而奏效的叫做 Moro 的追踪工作时间数的工具。Moro 是一个芬兰词汇意为“Hello”。通过使用 Moro你可以找到你在完成某项特定任务时花费了多少时间。这个工具是自由开源软件它是通过 NodeJS 编写的。
### Moro - 一个追踪工作时间的命令行生产力工具
由于Moro是使用NodeJS编写的保证你的系统上已经安装了(NodeJS)。如果你没有安装好NodeJS跟随下面的链接在你的Linux中安装NodeJS和NPM。
由于 Moro 是使用 NodeJS 编写的,保证你的系统上已经安装了 NodeJS。如果你没有安装好 NodeJS跟随下面的链接在你的 Linux 中安装 NodeJS 和 NPM。
- [如何在 Linux 上安装 NodeJS](https://www.ostechnix.com/install-node-js-linux/)
NodeJS 和NPM一旦装好运行下面的命令来安装 Moro。
NodeJS和NPM一旦装好运行下面的命令来安装Moro。
```
$ npm install -g moro
```
### 用法
Moro的工作概念非常简单。它记录了你的工作开始时间结束时间和在你的系统上的休息时间。在每天结束时它将会告知你已经工作了多少时间。
Moro 的工作概念非常简单。它记录了你的工作开始时间,结束时间和在你的系统上的休息时间。在每天结束时,它将会告知你已经工作了多少时间。
当你到达办公室时,只需键入:
```
$ moro
```
示例输出:
```
💙 Moro \o/
✔ You clocked in at: 9:20
♥ Moro \o/
√ You clocked in at: 9:20
```
Moro将会把这个时间注册为你的开始时间。
Moro 将会把这个时间注册为你的开始时间。
当你离开办公室时,再次键入:
```
$ moro
```
示例输出:
```
💙 Moro \o/
✔ You clocked out at: 19:22
♥ Moro \o/
√ You clocked out at: 19:22
Today looks like this so far:
┌──────────────────┬─────────────────────────┐
│ Today you worked │ 9 Hours and 72 Minutes │
├──────────────────┼─────────────────────────┤
@ -60,43 +59,37 @@ $ moro
│ Date │ 2018-03-19 │
└──────────────────┴─────────────────────────┘
Run moro --help to learn how to edit your clock in, clock out or break duration for today
```
Moro将会把这个时间注册为你的结束时间。
Moro 将会把这个时间注册为你的结束时间。
现在Moro将会从结束时间减去开始时间然后从总的时间减去另外的30分钟作为休息时间并给你在那天总的工作时间。抱歉我的数学计算过程解释实在糟糕。假设你在早上10:00来工作并在晚上1730离开。所以你总共在办公室呆了7.30小时(例如17.30-10)。然后在总的时间减去休息时间(默认是30分钟)。因此你的总工作时间是7小时。明白了?很好!
现在Moro 将会从结束时间减去开始时间然后从总的时间减去另外的 30 分钟作为休息时间并给你在那天总的工作时间。抱歉,我的数学计算过程解释实在糟糕。假设你在早上 10:00 来工作并在晚上 17:30 离开。所以,你总共在办公室呆了 7:30 小时(例如 17:30-10。然后在总的时间减去休息时间默认是 30 分钟)。因此,你的总工作时间是 7 小时。明白了?很好!
**注意:**不要像我在写这个手册的时候一样把“moro”和“more”弄混了。
**注意**不要像我在写这个手册的时候一样把 “moro” “more” 弄混了。
查看你注册的所有小时数,运行:
```
$ moro report --all
```
以防万一,如果你忘记注册开始时间或者结束时间,你一样可以在之后指定这些值。
例如将上午10点注册为开始时间运行
例如,将上午 10 点注册为开始时间,运行:
```
$ moro hi 10:00
💙 Moro \o/
✔ You clocked in at: 10:00
♥ Moro \o/
√ You clocked in at: 10:00
⏰ Working until 18:00 will make it a full (7.5 hours) day
```
注册1730作为结束时间
注册 17:30 作为结束时间:
```
$ moro bye 17:30
💙 Moro \o/
✔ You clocked out at: 17:30
♥ Moro \o/
√ You clocked out at: 17:30
Today looks like this so far:
┌──────────────────┬───────────────────────┐
@ -111,79 +104,75 @@ $ moro bye 17:30
│ Date │ 2018-03-19 │
└──────────────────┴───────────────────────┘
Run moro --help to learn how to edit your clock in, clock out or break duration for today
```
你已经知道Moro默认将会减去30分钟的休息时间。如果你需要设置一个自定义的休息时间你可以简单使用以下命令
你已经知道 Moro 默认将会减去 30 分钟的休息时间。如果你需要设置一个自定义的休息时间,你可以简单使用以下命令:
```
$ moro break 45
```
现在休息时间是45分钟了。
现在,休息时间是 45 分钟了。
若要清除所有的数据:
```
$ moro clear --yes
💙 Moro \o/
✔ Database file deleted successfully
♥ Moro \o/
√ Database file deleted successfully
```
**添加笔记**
#### 添加笔记
有时候你想要在工作时添加笔记。不必去寻找一个独立的作笔记的应用。Moro 将会帮助你添加笔记。要添加笔记,只需运行:
有时候你想要在工作时添加笔记。不必去寻找一个独立的作笔记的应用。Moro将会帮助你添加笔记。要添加笔记只需运行
```
$ moro note mynotes
```
要在之后搜索所有已经注册的笔记,只需做:
```
$ moro search mynotes
```
**修改默认设置**
#### 修改默认设置
默认的完整工作时间是7.5小时。这是因为开发者来自芬兰,这是官方的工作小时数。但是你也可以修改这个设置为你的国家的工作小时数。
默认的完整工作时间是 7.5 小时。这是因为开发者来自芬兰,这是官方的工作小时数。但是你也可以修改这个设置为你的国家的工作小时数。
举个例子,要将其设置为 7 小时,运行:
举个例子要将其设置为7小时运行
```
$ moro config --day 7
```
同样地默认的休息时间也可以像下面这样从30分钟修改
同样地,默认的休息时间也可以像下面这样从 30 分钟修改:
```
$ moro config --break 45
```
**备份你的数据**
#### 备份你的数据
正如我已经说了的Moro将时间追踪信息存储在你的家目录文件名是**.moro-data.db**
正如我已经说了的Moro 将时间追踪信息存储在你的家目录,文件名是 `.moro-data.db`
但是,你可以保存备份数据库到不同的位置。要这样做的话,像下面这样将**.moro-data.db**文件移到你选择的一个不同的位置并告知Moro使用那个数据库文件。
但是,你可以保存备份数据库到不同的位置。要这样做的话,像下面这样将 `.moro-data.db` 文件移到你选择的一个不同的位置并告知 Moro 使用那个数据库文件。
```
$ moro config --database-path /home/sk/personal/moro-data.db
```
在上面的每一个命令,我都已经把默认的数据库文件分配到了**/home/sk/personal**目录。
在上面的每一个命令,我都已经把默认的数据库文件分配到了 `/home/sk/personal` 目录。
需要帮助的话,运行:
```
$ moro --help
```
正如你所见Moro是非常简单而又能用于追踪你完成你的工作使用了多少时间的。对于自由职业者和任何想要在一定时间范围内完成事情的人它将会是有用的。
正如你所见Moro 是非常简单而又能用于追踪你完成你的工作使用了多少时间的。对于自由职业者和任何想要在一定时间范围内完成事情的人,它将会是有用的。
并且,这些只是今天的(内容)。希望这些(内容)能够有所帮助。更多的好东西将会出现。请保持关注!
并且,这些只是今天的内容。希望这些内容能够有所帮助。更多的好东西将会出现。请保持关注!
干杯!
@ -194,7 +183,7 @@ via: https://www.ostechnix.com/moro-a-command-line-productivity-tool-for-trackin
作者:[SK][a]
译者:[leemeans](https://github.com/leemeans)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,8 +1,9 @@
另一个 TUI 图形活动监视器,使用 Go 编写
Gotop另一个 TUI 图形活动监视器,使用 Go 编写
======
![](https://www.ostechnix.com/wp-content/uploads/2018/04/Gotop-720x340.png)
你已经知道 “top” 命令,对么?是的,它提供类 Unix 操作系统中运行中的进程的动态实时信息。一些开发人员为 top 命令构建了图形前端,因此用户可以在图形窗口中轻松找到他们系统的活动。其中之一是 **Gotop**。顾名思义Gotop 是一个 TUI 图形活动监视器,使用 **Go** 语言编写。它是完全免费、开源的,受到 [gtop][1] 和 [vtop][2] 的启发。
你已经知道 `top` 命令,对么?是的,它提供类 Unix 操作系统中运行中的进程的动态实时信息。一些开发人员为 `top` 命令构建了图形前端,因此用户可以在图形窗口中轻松找到他们系统的活动。其中之一是 **Gotop**。顾名思义Gotop 是一个 TUI 图形活动监视器,使用 **Go** 语言编写。它是完全免费、开源的,受到了 [gtop][1] 和 [vtop][2] 的启发。
在此简要的指南中,我们将讨论如何安装和使用 Gotop 来监视 Linux 系统的活动。
@ -11,21 +12,21 @@
Gotop 是用 Go 编写的,所以我们需要先安装它。要在 Linux 中安装 Go 语言,请参阅以下指南。
安装 Go 之后,使用以下命令下载最新的 Gotop 二进制文件。
```
$ sh -c "$(curl https://raw.githubusercontent.com/cjbassi/gotop/master/download.sh)"
```
然后,将下载的二进制文件移动到您的 $PATH 中,例如 **/usr/local/bin/**。
然后,将下载的二进制文件移动到您的 `$PATH` 中,例如 `/usr/local/bin/`
```
$ cp gotop /usr/local/bin
```
最后,用下面的命令使其可执行:
```
$ chmod +x /usr/local/bin/gotop
```
如果你使用的是基于 Arch 的系统Gotop 存在于 **AUR** 中,所以你可以使用任何 AUR 助手程序进行安装。
@ -33,92 +34,91 @@ $ chmod +x /usr/local/bin/gotop
使用 [**Cower**][3]
```
$ cower -S gotop
```
使用 [**Pacaur**][4]
```
$ pacaur -S gotop
```
使用 [**Packer**][5]
```
$ packer -S gotop
```
使用 [**Trizen**][6]
```
$ trizen -S gotop
```
使用 [**Yay**][7]
```
$ yay -S gotop
```
使用 [yaourt][8]
```
$ yaourt -S gotop
```
### 用法
Gotop 的使用非常简单!你所要做的就是从终端运行以下命令。
```
$ gotop
```
这样就行了!你将在简单的 TUI 窗口中看到系统 CPU、磁盘、内存、网络、CPU温度和进程列表的使用情况。
![][10]
要仅显示CPU、内存和进程组件请使用下面的 **-m** 标志
要仅显示CPU、内存和进程组件请使用下面的 `-m` 标志:
```
$ gotop -m
```
![][11]
你可以使用以下键盘快捷键对进程表进行排序。
* **c** CPU
* **m** 内存
* **p** PID
* `c` CPU
* `m` 内存
* `p` PID
对于进程浏览,请使用以下键。
* **上/下** 箭头或者 **j/k** 键用于上移下移。
* **Ctrl-d** 和 **Ctrl-u** 上移和下移半页。
* **Ctrl-f** 和 **Ctrl-b** 上移和下移整页。
* **gg** 和 **G** 跳转顶部和底部。
* `上/下` 箭头或者 `j/k` 键用于上移下移。
* `Ctrl-d``Ctrl-u` 上移和下移半页。
* `Ctrl-f``Ctrl-b` 上移和下移整页。
* `gg``G` 跳转顶部和底部。
按下 **< TAB>** 切换进程分组。要杀死选定的进程或进程组,请输入 **dd**。要选择一个进程,只需点击它。要向下/向上滚动,请使用鼠标滚动按钮。要放大和缩小 CPU 和内存图,请使用 **h****l**。要显示帮助菜单,只需按 **?**。
**推荐阅读:**
按下 `TAB` 切换进程分组。要杀死选定的进程或进程组,请输入 `dd`。要选择一个进程,只需点击它。要向下/向上滚动,请使用鼠标滚动按钮。要放大和缩小 CPU 和内存的图形,请使用 `h``l`。要显示帮助菜单,只需按 `?`
就是这些了。希望这有帮助。还有更多好东西。敬请关注!
### 资源
- [Gotop GitHub Repository](https://github.com/cjbassi/gotop)
--------------------------------------------------------------------------------
via: https://www.ostechnix.com/gotop-yet-another-tui-graphical-activity-monitor-written-in-go/
作者:[SK][a]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
选题:[lujun9972](https://github.com/lujun9972)
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,101 +0,0 @@
translating---geekpi
Easily Install Android Studio in Ubuntu And Linux Mint
======
[Android Studio][1], Googles own IDE for Android development, is a nice alternative to Eclipse with ADT plugin. Android Studio can be installed from its source code but in this quick post, we shall see **how to install Android Studio in Ubuntu 18.04, 16.04 and corresponding Linux Mint variants**.
Before you proceed to install Android Studio, make sure that you have [Java installed in Ubuntu][2].
![How to install Android Studio in Ubuntu][3]
### Install Android Studio in Ubuntu and other distributions using Snap
Ever since Ubuntu started focusing on Snap packages, more software have started providing easy to install Snap packages. Android Studio is one of them. Ubuntu users can simply find the Android Studio application in the Software Center and install it from there.
![Install Android Studio in Ubuntu from Software Center][4]
If you see an error while installing Android Studio from Software Center, you can use the [Snap commands][5] to install Android studio.
```
sudo snap install android-studio --classic
```
Easy peasy!
### Alternative Method 1: Install Android Studio using umake in Ubuntu
You can also easily install Android Studio using Ubuntu Developer Tools Center, now known as [Ubuntu Make][6]. Ubuntu Make provides a command line tool to install various development tools, IDE etc. Ubuntu Make is available in Ubuntu repository.
To install Ubuntu Make, use the commands below in a terminal:
`sudo apt-get install ubuntu-make`
Once you have installed Ubuntu Make, use the command below to install Android Studio in Ubuntu:
```
umake android
```
It will give you a couple of options in the course of the installation. I presume that you can handle it. If you decide to uninstall Android Studio, you can use the same umake tool in the following manner:
```
umake android --remove
```
### Alternative Method 2: Install Android Studio in Ubuntu and Linux Mint via unofficial PPA
Thanks to [Paolo Ratolo][7], we have a PPA which can be used to easily install Android Studio in Ubuntu 16.04, 14.04, Linux Mint and other Ubuntu based distributions. Just note that it will download around 650 MB of data. So mind your internet connection as well as data charges (if any).
Open a terminal and use the following commands:
```
sudo apt-add-repository ppa:paolorotolo/android-studio
sudo apt-get update
sudo apt-get install android-studio
```
Was it not easy? While installing a program from source code is fun in a way, it is always nice to have such PPAs. Once we have seen how to install Android Studio, lets see how to uninstall it.
### Uninstall Android Studio:
If you dont have already, install PPA Purge:
```
sudo apt-get install ppa-purge
```
Now use the PPA Purge to purge the installed PPA:
```
sudo apt-get remove android-studio
sudo ppa-purge ppa:paolorotolo/android-studio
```
Thats it. I hope this quick helps you to **install Android Studio in Ubuntu and Linux Mint**. Before you run Android Studio, make sure to [install Java in Ubuntu][8] first. In similar posts, I advise you to read [how to install and configure Ubuntu SDK][9] and [how to easily install Microsoft Visual Studio in Ubuntu][10].
Any questions or suggestions are always welcomed. Ciao :)
--------------------------------------------------------------------------------
via: https://itsfoss.com/install-android-studio-ubuntu-linux/
作者:[Abhishek Prakash][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/abhishek/
[1]:http://developer.android.com/sdk/installing/studio.html
[2]:https://itsfoss.com/install-java-ubuntu-1404/
[3]:https://itsfoss.com/wp-content/uploads/2014/04/Android_Studio_Ubuntu.jpeg
[4]:https://itsfoss.com/wp-content/uploads/2014/04/install-android-studio-snap-800x469.jpg
[5]:https://itsfoss.com/install-snap-linux/
[6]:https://wiki.ubuntu.com/ubuntu-make
[7]:https://plus.google.com/+PaoloRotolo
[8]:https://itsfoss.com/install-java-ubuntu-1404/ (How To Install Java On Ubuntu 14.04)
[9]:https://itsfoss.com/install-configure-ubuntu-sdk/
[10]:https://itsfoss.com/install-visual-studio-code-ubuntu/

View File

@ -1,113 +0,0 @@
2 scientific calculators for the Linux desktop
======
Translating by zyk2290
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/osdc_OpenData_CityNumbers.png?itok=lC03ce76)
Image by : opensource.com
Every Linux desktop environment comes with at least a simple desktop calculator, but most of those simple calculators are just that: a simple tool for simple calculations.
Fortunately, there are exceptions; programs that go far beyond square roots and a couple of trigonometric functions, yet are still easy to use. Here are two powerful calculator tools for Linux, plus a couple of bonus options.
### SpeedCrunch
[SpeedCrunch][1] is a high-precision scientific calculator with a simple Qt5 graphical interface and strong focus on the keyboard.
![SpeedCrunch graphical interface][3]
SpeedCrunch at work
It supports working with units and comes loaded with all kinds of functions.
For example, by writing:
`2 * 10^6 newton / (meter^2)`
you get:
`= 2000000 pascal`
By default, SpeedCrunch delivers its results in the international unit system, but units can be transformed with the "in" instruction.
For example:
`3*10^8 meter / second in kilo meter / hour`
produces:
`= 1080000000 kilo meter / hour`
With the `F5` key, all results will turn into scientific notation (`1.08e9 kilo meter / hour`), while with `F2` only numbers that are small enough or big enough will change. More options are available on the Configuration menu.
The list of available functions is really impressive. It works on Linux, Windows, and MacOS, and it's licensed under GPLv2; you can access its source code on [Bitbucket][4].
### Qalculate!
[Qalculate!][5] (with the exclamation point) has a long and complex history.
The project offers a powerful library that can be used by other programs (the Plasma desktop can use it to perform calculations from krunner) and a graphical interface built on GTK3. It allows you to work with units, handle physical constants, create graphics, use complex numbers, matrices, and vectors, choose arbitrary precision, and more.
![Qalculate! Interface][7]
Looking for some physical constants on Qalculate!
Its use of units is far more intuitive than SpeedCrunch's and it understands common prefixes without problem. Have you heard of an exapascal pressure? I hadn't (the Sun's core stops at `~26 PPa`), but Qalculate! has no problem understanding the meaning of `1 EPa`. Also, Qalculate! is more flexible with syntax errors, so you don't need to worry about closing all those parentheses: if there is no ambiguity, Qalculate! will give you the right answer.
After a long period on which the project seemed orphaned, it came back to life in 2016 and has been going strong since, with more than 10 versions in just one year. It's licensed under GPLv2 (with source code on [GitHub][8]) and offers versions for Linux and Windows, as well as a MacOS port.
### Bonus calculators
#### ConvertAll
OK, it's not a "calculator," yet this simple application is incredibly useful.
Most unit converters stop at a long list of basic units and a bunch of common combinations, but not [ConvertAll][9]. Trying to convert from astronomical units per year into inches per second? It doesn't matter if it makes sense or not, if you need to transform a unit of any kind, ConvertAll is the tool for you.
Just write the starting unit and the final unit in the corresponding boxes; if the units are compatible, you'll get the transformation without protest.
The main application is written in PyQt5, but there is also an [online version written in JavaScript][10].
#### (wx)Maxima with the units package
Sometimes (OK, many times) a desktop calculator is not enough and you need more raw power.
[Maxima][11] is a computer algebra system (CAS) with which you can do derivatives, integrals, series, equations, eigenvectors and eigenvalues, Taylor series, Laplace and Fourier transformations, as well as numerical calculations with arbitrary precision, graph on two and three dimensions… we could fill several pages just listing its capabilities.
[wxMaxima][12] is a well-designed graphical frontend for Maxima that simplifies the use of many Maxima options without compromising others. On top of the full power of Maxima, wxMaxima allows you to create "notebooks" on which you write comments, keep your graphics with your math, etc. One of the (wx)Maxima combo's most impressive features is that it works with dimension units.
On the prompt, just type:
`load("unit")`
press Shift+Enter, wait a few seconds, and you'll be ready to work.
By default, the unit package works with the basic MKS units, but if you prefer, for instance, to get `N` instead of `kg*m/s2`, you just need to type:
`setunits(N)`
Maxima's help (which is also available from wxMaxima's help menu) will give you more information.
Do you use these programs? Do you know another great desktop calculator for scientists and engineers or another related tool? Tell us about them in the comments!
--------------------------------------------------------------------------------
via: https://opensource.com/article/18/1/scientific-calculators-linux
作者:[Ricardo Berlasso][a]
译者:[译者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/rgb-es
[1]:http://speedcrunch.org/index.html
[2]:/file/382511
[3]:https://opensource.com/sites/default/files/u128651/speedcrunch.png (SpeedCrunch graphical interface)
[4]:https://bitbucket.org/heldercorreia/speedcrunch
[5]:https://qalculate.github.io/
[6]:/file/382506
[7]:https://opensource.com/sites/default/files/u128651/qalculate-600.png (Qalculate! Interface)
[8]:https://github.com/Qalculate
[9]:http://convertall.bellz.org/
[10]:http://convertall.bellz.org/js/
[11]:http://maxima.sourceforge.net/
[12]:https://andrejv.github.io/wxmaxima/

View File

@ -1,3 +1,5 @@
translating---geekpi
Easily Search And Install Google Web Fonts In Linux
======

View File

@ -0,0 +1,98 @@
在 Ubuntu 和 Linux Mint 中轻松安装 Android Studio
======
[Android Studio][1] 是谷歌自己的 Android 开发 IDE是带 ADT 插件的 Eclipse 的不错替代品。Android Studio 可以通过源代码安装,但在这篇文章中,我们将看到**如何在 Ubuntu 18.04、16.04 和相应的 Linux Mint 变体**中安装 Android Studio。
在继续安装 Android Studio 之前,请确保你已经[在 Ubuntu 中安装了 Java][2]。
![How to install Android Studio in Ubuntu][3]
### 使用 Snap 在 Ubuntu 和其他发行版中安装 Android Studio
自从 Ubuntu 开始专注于 Snap 软件包以来,越来越多的软件开始提供易于安装的 Snap 软件包。Android Studio 就是其中之一。Ubuntu 用户可以直接在软件中心找到 Android Studio 程序并从那里安装。
![Install Android Studio in Ubuntu from Software Center][4]
如果你在软件中心安装 Android Studio 时看到错误,则可以使用[ Snap 命令][5] 安装 Android Studio。
```
sudo snap install android-studio --classic
```
非常简单!
### 另一种方式 1在 Ubuntu 中使用 umake 安装 Android Studio
你也可以使用 Ubuntu Developer Tools Center现在称为 [Ubuntu Make][6],轻松安装 Android Studio。Ubuntu Make 提供了一个命令行工具来安装各种开发工具、IDE等。Ubuntu Make 在 Ubuntu 仓库中就有。
要安装 Ubuntu Make请在终端中使用以下命令
`sudo apt-get install ubuntu-make`
安装 Ubuntu Make 后,请使用以下命令在 Ubuntu 中安装 Android Studio
```
umake android
```
在安装过程中它会给你的几个选项。我认为你可以处理。如果你决定卸载 Android Studio则可以按照以下方式使用相同的 umake 工具:
```
umake android --remove
```
### 另一种方式 2通过非官方的 PPA 在 Ubuntu 和 Linux Mint 中安装 Android Studio
感谢 [Paolo Ratolo][7],我们有一个 PPA可用于 Ubuntu 16.04、14.04、Linux Mint 和其他基于 Ubuntu 的发行版中轻松安装 Android Studio。请注意它将下载大约 650MB 的数据。请注意你的互联网连接以及数据费用(如果有的话)。
打开一个终端并使用以下命令:
```
sudo apt-add-repository ppa:paolorotolo/android-studio
sudo apt-get update
sudo apt-get install android-studio
```
这不容易吗?虽然从源代码安装程序很有趣,但拥有这样的 PPA 总是不错的。我们看到了如何安装 Android Studio现在来看看如何卸载它。
### 卸载 Android Studio
如果你还没有安装 PPA Purge
```
sudo apt-get install ppa-purge
```
现在使用 PPA Purge 来清除已安装的 PPA
```
sudo apt-get remove android-studio
sudo ppa-purge ppa:paolorotolo/android-studio
```
就是这些了。我希望这能够帮助你**在 Ubuntu 和 Linux Mint 上安装 Android Studio**。在运行 Android Studio 之前,请确保[在 Ubuntu 中安装了Java][8]。在类似的文章中,我建议你阅读[如何安装和配置 Ubuntu SDK ][9]和[如何在 Ubuntu 中轻松安装 Microsoft Visual Studio][10]。
欢迎提出任何问题或建议。再见
--------------------------------------------------------------------------------
via: https://itsfoss.com/install-android-studio-ubuntu-linux/
作者:[Abhishek Prakash][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://itsfoss.com/author/abhishek/
[1]:http://developer.android.com/sdk/installing/studio.html
[2]:https://itsfoss.com/install-java-ubuntu-1404/
[3]:https://itsfoss.com/wp-content/uploads/2014/04/Android_Studio_Ubuntu.jpeg
[4]:https://itsfoss.com/wp-content/uploads/2014/04/install-android-studio-snap-800x469.jpg
[5]:https://itsfoss.com/install-snap-linux/
[6]:https://wiki.ubuntu.com/ubuntu-make
[7]:https://plus.google.com/+PaoloRotolo
[8]:https://itsfoss.com/install-java-ubuntu-1404/ (How To Install Java On Ubuntu 14.04)
[9]:https://itsfoss.com/install-configure-ubuntu-sdk/
[10]:https://itsfoss.com/install-visual-studio-code-ubuntu/

View File

@ -1,108 +0,0 @@
ImageMagick 的一些高级图片查看技巧
======
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/osdc-photo-camera-green.png?itok=qiDqmXV1)
图片源于 [Internet Archive Book Images](https://www.flickr.com/photos/internetarchivebookimages/14759826206/in/photolist-ougY7b-owgz5y-otZ9UN-waBxfL-oeEpEf-xgRirT-oeMHfj-wPAvMd-ovZgsb-xhpXhp-x3QSRZ-oeJmKC-ovWeKt-waaNUJ-oeHPN7-wwMsfP-oeJGTK-ovZPKv-waJnTV-xDkxoc-owjyCW-oeRqJh-oew25u-oeFTm4-wLchfu-xtjJFN-oxYznR-oewBRV-owdP7k-owhW3X-oxXxRg-oevDEY-oeFjP1-w7ZB6f-x5ytS8-ow9C7j-xc6zgV-oeCpG1-oewNzY-w896SB-wwE3yA-wGNvCL-owavts-oevodT-xu9Lcr-oxZqZg-x5y4XV-w89d3n-x8h6fi-owbfiq),Opensource.com 修改,[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)协议
在我先前的[ImageMagick 入门:使用命令行来编辑图片](https://linux.cn/article-8851-1.html) 文章中,我展示了如何使用 ImageMagick 的菜单栏进行图片的编辑和变换风格。在这篇续文里,我将向你展示使用这个开源的图像编辑器来查看图片的额外方法。
### 别样的风格
在深入 ImageMagick 的高级图片查看技巧之前,我想先分享另一个使用 **convert** 达到的有趣但简单的效果,在上一篇文章中我已经详细地介绍了 **convert** 命令,这个技巧涉及这个命令的 `edge``negate` 选项:
```
convert DSC_0027.JPG -edge 3 -negate edge3+negate.jpg
```
![在图片上使用 `edge``negate` 选项][3]
使用`edge` 和 `negate` 选项前后的图片对比
编辑后的图片让我更加喜爱,具体是因为如下因素:海的外观,作为前景和背景的植被,特别是太阳及其在海上的反射,最后是天空。
### 使用 `display` 来查看一系列图片
假如你跟我一样是个命令行用户,你就知道 shell 为复杂任务提供了更多的灵活性和快捷方法。下面我将展示一个例子来佐证这个观点。ImageMagick 的 **display** 命令可以克服我在 GNOME 桌面上使用 [Shotwell][4] 图像管理器导入图片时遇到的问题。
Shotwell 会根据每张导入图片的 [Exif][5] 数据,创建以图片被生成或者拍摄时的日期为名称的目录结构。最终的效果是最上层的目录以年命名,接着的子目录是以月命名 (01, 02, 03 等等),然后是以每月的日期命名的子目录。我喜欢这种结构,因为当我想根据图片被创建或者拍摄时的日期来查找它们时将会非常方便。
但这种结构也并不是非常完美的,当我想查看最近几个月或者最近一年的所有图片时就会很麻烦。使用常规的图片查看器,我将不停地在不同层级的目录间跳转,但 ImageMagick 的 **display** 命令可以使得查看更加简单。例如,假如我想查看最近一年的图片,我便可以在命令行中键入下面的 **display** 命令:
```
display -resize 35% 2017/*/*/*.JPG
```
我可以匹配一年中的每一月和每一天。
现在假如我想查看某张图片,但我不确定我是在 2016 年的上半年还是在 2017 的上半年拍摄的,那么我便可以使用下面的命令来找到它:
```
display -resize 35% 201[6-7]/0[1-6]/*/*.JPG
```
限制查看的图片拍摄于 2016 和 2017 年的一月到六月
### 使用 `montage` 来查看图片的缩略图
假如现在我要查找一张我想要编辑的图片,使用 **display** 的一个问题是它只会显示每张图片的文件名,而不显示其在目录结构中的位置,所以想要找到那张图片并不容易。另外,假如我很偶然地在从相机下载图片的过程中将这些图片从相机的内存里面清除了它们,结果使得下次拍摄照片的名称又从 **DSC_0001.jpg** 开始命名,那么当使用 **display** 来展示一整年的图片时,将会在这 12 个月的图片中花费很长的时间来查找它们。
这时 **montage** 命令便可以派上用场了。它可以将一系列的图片放在一张图片中,这样就会非常有用。例如可以使用下面的命令来完成上面的任务:
```
montage -label %d/%f -title 2017 -tile 5x -resize 10% -geometry +4+4 2017/0[1-4]/*/*.JPG 2017JanApr.jpg
```
从左到右,这个命令以标签开头,标签的形式是包含文件名( **%f** )和以 **/** 分割的目录( **%d** )结构,接着这个命令以目录的名称(2017)来作为标题,然后将图片排成 5 列,每个图片缩放为 10% (这个参数可以很好地匹配我的屏幕)。`geometry` 的设定将在每张图片的四周留白,最后在接上要处理的对象和一个合适的名称( **2017JanApr.jpg** )。现在图片 **2017JanApr.jpg** 便可以成为一个索引,使得我可以不时地使用它来查看这个时期的所有图片。
### 注意内存消耗
你可能会好奇为什么我在上面的合成图中只特别指定了为期 4 个月(从一月到四月)的图片。因为 **montage** 将会消耗大量内存,所以你需要多加注意。我的相机产生的图片每张大约有 2.5MB,我发现我的系统可以很轻松地处理 60 张图片。但一旦图片增加到 80 张,如果此时还有另外的程序(例如 Firefox 、Thunderbird)在后台工作,那么我的电脑将会死机,这似乎和内存使用相关,**montage**可能会占用可用 RAM 的 80% 乃至更多(你可以在此期间运行 **top** 命令来查看内存占用)。假如我关掉其他的程序,我便可以在我的系统死机前处理 80 张图片。
下面的命令可以让你知晓在你运行 **montage** 命令前你需要处理图片张数:
```
ls 2017/0[1-4/*/*.JPG > filelist; wc -l filelist
```
**ls** 命令生成我们搜索的文件的列表,然后通过重定向将这个列表保存在任意以 filelist 为名称的文件中。接着带有 **-l** 选项的 **wc** 命令输出该列表文件共有多少行,换句话说,展示出需要处理的文件个数。下面是我运行命令后的输出:
```
163 filelist
```
啊呀!从一月到四月我居然有 163 张图片,使用这些图片来创建一张合成图一定会使得我的系统死机的。我需要将这个列表减少点,可能只处理到 3 月份或者更早的图片。但如果我在4月20号到30号期间拍摄了很多照片我想这便是问题的所在。下面的命令便可以帮助指出这个问题
```
ls 2017/0[1-3]/*/*.JPG > filelist; ls 2017/04/0[1-9]/*.JPG >> filelist; ls 2017/04/1[0-9]/*.JPG >> filelist; wc -l filelist
```
上面一行中共有 4 个命令,它们以分号分隔。第一个命令特别指定从一月到三月期间拍摄的照片;第二个命令使用 **>>** 将拍摄于 4 月 1 日至 9 日的照片追加到这个列表文件中;第三个命令将拍摄于 4 月 1 0 日到 19 日的照片追加到列表中。最终它的显示结果为:
```
81 filelist
```
我知道假如我关掉其他的程序,处理 81 张图片是可行的。
使用 **montage** 来处理它们是很简单的,因为我们只需要将上面所做的处理添加到 **montage** 命令的后面即可:
```
montage -label %d/%f -title 2017 -tile 5x -resize 10% -geometry +4+4 2017/0[1-3]/*/*.JPG 2017/04/0[1-9]/*.JPG 2017/04/1[0-9]/*.JPG 2017Jan01Apr19.jpg
```
从左到右,**montage** 命令后面最后的那个文件名将会作为输出,在它之前的都是输入。这个命令将花费大约 3 分钟来运行,并生成一张大小约为 2.5MB 的图片,但我的系统只是有一点反应迟钝而已。
### 展示合成图片
当你第一次使用 **display** 查看一张巨大的合成图片时,你将看到合成图的宽度很合适,但图片的高度被压缩了,以便和屏幕相适应。不要慌,只需要左击图片,然后选择 **View > Original Size** 便会显示整个图片。再次点击图片便可以使菜单栏隐藏。
我希望这篇文章可以在你使用新方法查看图片时帮助你。在我的下一篇文章中,我将讨论更加复杂的图片操作技巧。
### 作者简介
Greg Pittman - Greg 肯塔基州路易斯维尔的一名退休的神经科医生,对计算机和程序设计有着长期的兴趣,最早可以追溯到 1960 年代的 Fortran IV 。当 Linux 和开源软件相继出现时,他开始学习更多的相关知识,并分享自己的心得。他是 Scribus 团队的成员。
--------------------------------------------------------------------------------
via: https://opensource.com/article/17/9/imagemagick-viewing-images
作者:[Greg Pittman][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://opensource.com/users/greg-p
[1]:https://opensource.com/article/17/8/imagemagick
[2]:/file/370946
[3]:https://opensource.com/sites/default/files/u128651/edge3negate.jpg "Using the edge and negate options on an image."
[4]:https://wiki.gnome.org/Apps/Shotwell
[5]:https://en.wikipedia.org/wiki/Exif

View File

@ -0,0 +1,118 @@
两款 Linux 桌面端可用的科学计算器
======
Translating by zyk2290
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/osdc_OpenData_CityNumbers.png?itok=lC03ce76)
Image by : opensource.com
每个Linux 桌面环境都至少带有一个功能简单的桌面计算器,但大多数计算器只能进行一些简单的计算。
幸运的是,还是有例外的:不仅可以做得比开平方根和一些三角函数还多,而且还很简单。这里将介绍两款强大的计算器,外加一大堆额外的功能。
### SpeedCrunch
[SpeedCrunch][1]是一款高精度科学计算器有着 Qt5 图像界面前端,并且强烈依赖键盘。
![SpeedCrunch graphical interface][3]
SpeedCrunch 在工作时
It supports working with units and comes loaded with all kinds of functions.
所有函数都支持与单位一起工作。
例如,
`2 * 10^6 newton / (meter^2)`
你可以得到
`= 2000000 pascal`
SpeedCrunch 会默认地将结果转化为国际标准单位,但还是可以用"in"命令转换
例如:
`3*10^8 meter / second in kilo meter / hour`
结果是:
`= 1080000000 kilo meter / hour`
`F5` 键可以将所有结果转为科学计数法 (`1.08e9 kilo meter / hour`)`F2`键可以只将那些很大的数或很小的数转为科学计数法。更多选项可以在配置(Configuration)页面找到。
可用的函数的列表看上去非常惊艳。它可以在 Linux 、 Windows、macOS.。许可证是GPLv2你可以在[Bitbucket][4]上得到它的源码。
### Qalculate!
[Qalculate!][5](有感叹号)有一段长而复杂的历史。
这个项目给了我们一个强大的库,而这个库可以被其它程序使用(在 Plasma 桌面中krunner 可以用它来计算),以及一个用 GTK3 搭建的图形界面前端。它允许你转换单位,处理物理常量,创建图像,使用复数,矩阵以及向量,选择任意准确度,等等
![Qalculate! Interface][7]
正在在 Qalculate! 寻找物理常量
在使用单位上Qalculate! 会比SppedCrunch 更加直观,而且可以识别一些常用前缀。你有听说过 exapascal 吗?反正我没有(太阳的中心大概在 `~26 PPa`),但 Qalculate! ,可以准确识别出 `1 EPa`。同时Qalculate! 可以更加灵活地处理语法错误所以你不需要担心打括号如果没有歧义Qalculate! 会直接给出正确答案。
一段时间之后这个计划看上去被遗弃了。但在2016年它又变得强大了在一年里更新了10个版本。它的许可证是 GPLv2 (源码在 [GitHub][8] 上提供Linux 、Windows 、macOS的版本。
### Bonus calculators
#### 转换一切
好吧,这不是“计算器”,但这个程序非常好用
大部分单位转换器只是一大个基本单位列表以及一大堆基本组合,但[ConvertAll][9]与它们不一样。有试过把光年转换为英尺每秒吗不管它们说不说得通只要你想转换任何种类的单位ConvertAll 就是你要的工具。
只需要在相应的输入框内输入转换前和转换后的单位:如果单位相容,你会直接得到答案。
主程序是在 PyQt5 上搭建的,但也有[JavaScript 的在线版本][10]。
#### (wx)Maxima with the units package
有时候(好吧,很多时候)一款桌面计算器时候不够你用的,然后你需要更多的原力(raw power?)
[Maxima][11]是一款计算机代数系统LCTT 译者注:进行符号运算的软件。这种系统的要件是数学表示式的符号运算),你可以用它计算导数、积分、方程、特征值和特征向量、泰勒级数、拉普拉斯变换与傅立叶变换,以及任意精度的数字计算、二维或三维图像··· ···列出这些都够我们写几页纸的了。
[wxMaxima][12]是一个设计精湛的 Maxima 的图形前端,它简化了许多 Maxima 的选项,但并不会影响其它。在 Maxima 的基础上wxMaxima 还允许你创建 “笔记本”notebooks你可以在上面写一些笔记保存你的图像等。其中一项 (wx)Maxima 最惊艳的功能是它可以处理标注单位(dimension units)。
`load("unit")`
只需要输入`load("unit")`
按 Shift+Enter等几秒钟的时间然后你就可以开始了
默认地,单位包与基本 MKS 单位工作,但如果你喜欢,例如,要拿到 `N`为单位而不是 `kg*m/s2`,你只需要输入:`setunits(N)`
Maxima 的帮助(也可以在 wxMaxima 的帮助菜单中找到)会给你更多信息。
你使用这些程序吗?你知道还有其它好的科学、工程用途的桌面计算器或者其它相关的计算器吗?在评论区里告诉我们吧!
--------------------------------------------------------------------------------
via: https://opensource.com/article/18/1/scientific-calculators-linux
作者:[Ricardo Berlasso][a]
译者:[译者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/rgb-es
[1]:http://speedcrunch.org/index.html
[2]:/file/382511
[3]:https://opensource.com/sites/default/files/u128651/speedcrunch.png "SpeedCrunch graphical interface"
[4]:https://bitbucket.org/heldercorreia/speedcrunch
[5]:https://qalculate.github.io/
[6]:/file/382506
[7]:https://opensource.com/sites/default/files/u128651/qalculate-600.png "Qalculate! Interface"
[8]:https://github.com/Qalculate
[9]:http://convertall.bellz.org/
[10]:http://convertall.bellz.org/js/
[11]:http://maxima.sourceforge.net/
[12]:https://andrejv.github.io/wxmaxima/