Merge pull request #8 from LCTT/master

更新
This commit is contained in:
Lv Feng 2016-11-28 16:15:05 +08:00 committed by GitHub
commit e1b2c14482
16 changed files with 762 additions and 753 deletions

View File

@ -0,0 +1,117 @@
在 Linux 系统下从 ISO 镜像中提取和复制文件的 3 种方法
============================================================
假设你的 Linux 服务器上有一个超大的 ISO 镜像文件,你想要打开它,然后提取或者复制其中的一个文件。你会怎么做呢?
其实在 Linux 系统里,有很多方法来实现这个要求。
比如说,你可以使用传统的 mount 命令以只读方式把 ISO 镜像文件加载为 loop 设备,然后再把文件复制到另一个目录。
### 在 Linux 系统下提取 ISO 镜像文件
为了完成该测试,你得有一个 ISO 镜像文件(我使用 ubuntu-16.10-server-amd64.iso 系统镜像文件)以及用于挂载和提取 ISO 镜像文件的目录。
首先,使用如下命令创建一个挂载目录来挂载 ISO 镜像文件:
```
$ sudo mkdir /mnt/iso
```
目录创建完成后,你就可以运行如下命令很容易地挂载 ubuntu-16.10-server-amd64.iso 系统镜像文件,并查看其中的内容。
```
$ sudo mount -o loop ubuntu-16.10-server-amd64.iso /mnt/iso
$ ls /mnt/iso/
```
[
![Mount ISO File in Linux](http://www.tecmint.com/wp-content/uploads/2016/10/Mount-ISO-File-in-Linux.png)
][1]
*在 Linux 系统里挂载 ISO 镜像*
现在你就可以进入到挂载目录 /mnt/iso 里,查看文件或者使用 [cp 命令][2]把文件复制到 /tmp 目录了。
```
$ cd /mnt/iso
$ sudo cp md5sum.txt /tmp/
$ sudo cp -r ubuntu /tmp/
```
[
![Copy Files From ISO File in Linux](http://www.tecmint.com/wp-content/uploads/2016/10/Copy-Files-From-ISO-File-in-Linux.png)
][3]
*在 Linux 系统中复制 ISO 镜像里的文件*
注意:`-r` 选项用于递归复制目录里的内容。如有必要,你也可以[监控复制命令的完成进度][4]。
### 使用 7zip 命令提取 ISO 镜像里的内容
如果不想挂载 ISO 镜像,你可以简单地安装一个 7zip 工具,这是一个自由而开源的解压缩软件,用于压缩或解压不同类型格式的文件,包括 TAR、XZ、GZIP、ZIP、BZIP2 等等。
```
$ sudo apt-get install p7zip-full p7zip-rar [On Debian/Ubuntu systems]
$ sudo yum install p7zip p7zip-plugins [On CentOS/RHEL systems]
```
7zip 软件安装完成后,你就可以使用`7z` 命令提取 ISO 镜像文件里的内容了。
```
$ 7z x ubuntu-16.10-server-amd64.iso
```
[
![7zip - Extract ISO File Content in Linux](http://www.tecmint.com/wp-content/uploads/2016/10/Extract-ISO-Content-in-Linux.png)
][5]
*使用 7zip 工具在 Linux 系统下提取 ISO 镜像里的文件*
注意:跟 Linux 的 mount 命令相比起来7zip 在压缩和解压缩任何格式的文件时速度更快,更智能。
### 使用 isoinfo 命令来提取 ISO 镜像文件内容
虽然 `isoinfo` 命令是用来以目录的形式列出 iso9660 镜像文件的内容,但是你也可以使用该程序来提取文件。
我说过isoinfo 程序会显示目录列表,因此先列出 ISO 镜像文件的内容。
```
$ isoinfo -i ubuntu-16.10-server-amd64.iso -l
```
[
![List ISO Content in Linux](http://www.tecmint.com/wp-content/uploads/2016/10/List-ISO-Content-in-Linux.png)
][6]
*Linux 里列出 ISO 文件的内容*
现在你可以按如下的方式从 ISO 镜像文件中提取单文件:
```
$ isoinfo -i ubuntu-16.10-server-amd64.iso -x MD5SUM.TXT > MD5SUM.TXT
```
注意:因为 `-x` 解压到标准输出,必须使用重定向来提取指定文件。
[
![Extract Single File from ISO in Linux](http://www.tecmint.com/wp-content/uploads/2016/10/Extract-Single-File-from-ISO-in-Linux.png)
][7]
*从 ISO 镜像文件中提取单个文件*
就到这里吧,其实还有很多种方法来实现这个要求,如果你还知道其它有用的命令或工具来提取复制出 ISO 镜像文件中的文件,请在下面的评论中跟大家分享下。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/extract-files-from-iso-files-linux
作者:[Ravi Saive][a]
译者:[rusking](https://github.com/rusking)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/admin/
[1]:http://www.tecmint.com/wp-content/uploads/2016/10/Mount-ISO-File-in-Linux.png
[2]:http://www.tecmint.com/advanced-copy-command-shows-progress-bar-while-copying-files/
[3]:http://www.tecmint.com/wp-content/uploads/2016/10/Copy-Files-From-ISO-File-in-Linux.png
[4]:http://www.tecmint.com/monitor-copy-backup-tar-progress-in-linux-using-pv-command/
[5]:http://www.tecmint.com/wp-content/uploads/2016/10/Extract-ISO-Content-in-Linux.png
[6]:http://www.tecmint.com/wp-content/uploads/2016/10/List-ISO-Content-in-Linux.png
[7]:http://www.tecmint.com/wp-content/uploads/2016/10/Extract-Single-File-from-ISO-in-Linux.png

View File

@ -2,6 +2,7 @@
===========================
[![开源 vs. 闭源](http://www.linuxandubuntu.com/uploads/2/1/1/5/21152474/open-source-vs-closed-source_orig.jpg)][2]
**开源操作系统**和**闭源操作系统**之间有诸多不同。这里我们仅寥书几笔。
### 开源是什么?自由!
@ -10,12 +11,11 @@
这是用户需要知道的最重要的一点。无论我是否打算修改代码,其他人出于善意的修改都不应受到限制。且如果用户喜欢,他们可以分享这个软件。使用**开源**软件,这些都是可能的。
**闭源**操作系统的许可条款很是吓人。但真的所有人都会看吗Nope许多用户只是点了一下Accept
**闭源**操作系统的许可条款很是吓人。但真的所有人都会看吗许多用户只是点了一下Accept 而已。
### 价格
几乎所有的开源操纵系统是免费的。仅有自愿性质的捐款。且只需一个安装 **CD/DVD 或 USB** 就能将系统安装到所有你想要安装的电脑上。
几乎所有的开源操纵系统是免费的。仅有自愿性质的捐款。且只需有个一个 **CD/DVD 或 USB** 就能将系统安装到所有你想要安装的电脑上。
闭源操作系统相较于开源 OS 就贵了许多,如果你用它来构建 PC每台 PC 得你花不少于 $100。
@ -25,7 +25,7 @@
开源操作系统的发行版有很多。如果你不中意眼下的这个,你可以尝试其他的发行版,总能找到适合你的那一个。
诸如 Ubuntu studioBio LinuxEdubuntuKali LinuxQubesSteamOS 这些发行版,就是针对特定用户群产生的发行版。
诸如 Ubuntu studio、Bio Linux、Edubuntu、Kali Linux、Qubes、SteamOS 这些发行版,就是针对特定用户群产生的发行版。
闭源软件有“选择”这种说法吗?我觉得是没有的。
@ -55,7 +55,7 @@
### 商业化
在操作系统上挣钱是非常困难的。开发者一般通过用户的捐款和在网站上打广告来挣钱。捐款主要用于支付主机的开销和开发者的薪水。
在操作系统上挣钱是非常困难的。(开源)开发者一般通过用户的捐款和在网站上打广告来挣钱。捐款主要用于支付主机的开销和开发者的薪水。
许多闭源操作系统,不仅仅通过出售软件的使用许可这种方式来赚钱,还会推送广告大赚一票。
@ -69,16 +69,12 @@
我们已经将我们知晓的罗列了出来。如果你觉得我们还漏了些什么,可以评论告诉我们。
--------------------------------------------------------------------------------
via: http://www.linuxandubuntu.com/home/open-source-vs-closed-source
作者:[Mohd Sohail][a]
译者:[martin2011qi](https://github.com/martin2011qi)
校对:[jasminepeng](https://github.com/jasminepeng)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,65 @@
火狐是否在未经授权的情况下搜集您的数据?
===============
![Mozilla Firefox collects your data](https://iwf1.com/wordpress/wp-content/uploads/2016/11/Mozilla-Firefox-collects-your-data-730x429.jpg)
打包在 Firefox Web 浏览器里面的地理位置服务即使浏览器关闭后也会在后台运行。
我们还没有从关于浏览器插件丑闻的消息中平复下来。插件原本目的是保卫隐私,[但现在却把信息卖给了第三方公司](https://iwf1.com/shock-this-popular-browser-add-on-sells-your-browsing-history/)。然而更令人愤怒的是其规模完全超出我们的预计。
**MLS**,即 Mozilla 位置服务,其可以让设备基于类似于 WIFI 接入点、无线电基站和蓝牙信标等基础设施确定其位置。
MLS 非常像是 Google 位置服务,后者是需要在 Android 设备上打开 GPS 并选择“高精度”模式时使用的服务。
那些曾经经历过 GPS 问题的人可能会知道这个模式是多么精确。
MLS 服务除了能够准确地确定您的位置以外,这个服务可以通过使用 WiFi 网络收集两种个人身份信息,包括**愿意贡献到数据库的用户**和**被扫描的 WiFi 设备的所有者**。
话虽这么说Mozilla 也提到说你可以选择退出服务,但你真的可以退出吗?
### 当后台变成你隐私的展台
作为一个众包项目,为了维护和发展 MLSMozilla 事实上非常依赖于用户的贡献,因此他们开发了多种方法以便用户参与进来。
其中之一,就是被终端用户使用的一款名为 Stumbler 的 Android 应用程序:
> [Mozilla Stumbler][4] 是一个开源的无线网络扫描器,它为我们的众包位置数据库收集 GPS、蜂窝网络和无线网络元数据。
这样一来Stumbler 不仅仅是一个独立的应用程序,同时也是 Firefox 在 Android 设备上提供的一种为 MLS“贡献数据和增强功能”的服务。
该服务的问题在于它在后台运行,而大多数用户都不知道它,**即使您可能已经禁用它**。
根据 Mozilla 提供的[信息][4],要启用该服务,您需要打开“设置”菜单(在 Firefox for Android 版本中) -> 打开“隐私”部分 -> 滚动到底部以查看“数据选择”,最后,勾选 Mozilla 位置服务框。
![Mozilla Location Services is unchecked yet Stumbler is on](http://iwf1.com/wordpress/wp-content/uploads/2016/11/Mozilla-Location-Services-is-unchecked-yet-Stumler-is-on-730x602.jpg)
*Mozilla 定位服务尚未勾选,但 Stumbler 已开启*
实际上,你会发现 Stumbler 服务**运行在你的设备后台**,这意味着它几乎不可见,因为它没有接口,即使 MLS 框未被选中,即使“数据选择”复选框都未选中,甚至 Firefox 浏览器本身已被关闭。
显然,停止 stumbler 的唯一方法是直接结束它。然而,这样做你首先需要一种方法来检测它的运行和结束,最终,这只是一个设备重启前的临时解决方案。
### 如何保证安全
为了避免 MLS 收集您的数据,仍然有一些方法值得您尝试一下,希望这些方法不会像在 Firefox for Android 中的MLS 复选框一样被 Mozilla 忽视。
您可以将您的无线网络 SSID 隐藏或者在 SSID 结尾添加“\_nomap”例如将您的 SSID 从“myWirelessNetwork”更名为“myWirelessNetwork\_nomap”。这在向 Mozilla 的应用程序暗示,您不希望参与他们的数据收集活动。
对于 Android 上的 Stumbler 服务,由于是一个服务(而不是进程),您可能无法在运行的进程/最近的应用程序列表中看到它。 因此,使用专用应用程序关闭它或启用“开发人员选项”,并转到“运行服务” -> 点击 Firefox最后停止“stumbler”。
--------------------------------------------------------------------------------
via: https://iwf1.com/is-mozilla-firefox-collecting-your-data-without-your-consent/
作者:[Liron][a]
译者:[flankershen](https://github.com/flankershen)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://iwf1.com/is-mozilla-firefox-collecting-your-data-without-your-consent/
[1]:https://iwf1.com/shock-this-popular-browser-add-on-sells-your-browsing-history/
[2]:https://en.wikipedia.org/wiki/Crowdsourcing
[3]:http://iwf1.com/wordpress/wp-content/uploads/2016/11/Mozilla-Location-Services-is-unchecked-yet-Stumler-is-on.jpg
[4]: https://location.services.mozilla.com/apps

View File

@ -0,0 +1,103 @@
在 Linux 系统里识别 USB 设备名字的 4 种方法
============================================================
对于初学者来说,在 Linux 系统里你必须掌握的技术之一就是识别出插入系统里的各种设备。这也许是你的系统硬盘、外部的存储设备或者是可移动设备,比如 USB 设备或 SD 闪存卡等。
现如今,使用 USB 设备来传输文件是十分常见的事,对于那些喜欢使用命令行的新手来说,当你需要格式化 USB 设备时,学会使用不同的方法来识别 USB 设备名是非常重要的。
如果在系统中插入一个设备,尤其是在桌面环境下,比如 USB 设备,它会自动挂载到一个指定目录,一般是在 `/media/username/device-label` 目录下,之后你就可以进入到该目录下访问那些文件了。然而,在服务器上就不是这么回事了,你必须[手动挂载](http://www.tecmint.com/mount-filesystem-in-linux/)这个设备,并且指定一个挂载点。
Linux 系统使用 `/dev` 目录下特定的设备文件来标识插入的设备。你会发现该目录下的某些文件,包括 `/dev/sda` 或者 `/dev/hda` 表示你的第一个主设备,每个分区使用一个数字来表示,比如 `/dev/sda1``/dev/hda1` 表示主设备的第一个分区等等。
```
$ ls /dev/sda*
```
[ ![List All Linux Device Names](http://www.tecmint.com/wp-content/uploads/2016/10/List-All-Linux-Device-Names.png)
][3]
*列出 Linux 系统下所有的设备名*
现在让我们来使用下面一些特殊的命令行工具找出设备名:
### 使用 df 命令来找出插入的 USB 设备名
查看插入你系统里的每一个设备及对应的挂载点,你可以使用下图中的 `df` 命令检查 Linux 系统磁盘空间使用情况:
```
$ df -h
```
[![Find USB Device Name Using df Command](http://www.tecmint.com/wp-content/uploads/2016/10/Find-USB-Device-Name.png)
][5]
*使用 df 命令查找 USB 设备名*
### 使用 lsblk 命令查找 USB 设备名
你也可以使用下面的 `lsblk` 命令(列出块设备)来列出插入你系统里的所有块设备:
```
$ lsblk
```
[
![List Linux Block Devices](http://www.tecmint.com/wp-content/uploads/2016/10/List-Linux-Block-Devices.png)
][7]
*列出 Linux 系统里的块设备*
### 使用 fdisk 工具识别 USB 设备名
[fdisk 是一个功能强大的工具][12],用于查看你系统中的所有分区表,包括所有的 USB 设备,使用 root 权限执行如下命令:
```
$ sudo fdisk -l
```
[
![List Partition Table of Block Devices](http://www.tecmint.com/wp-content/uploads/2016/10/List-Partition-Table.png)
][9]
*列出块设备的分区表*
### 使用 dmesg 命令来识别出 USB 设备名
`dmesg` 是一个用于打印或者控制内核环形缓冲区kernel ring buffer的重要命令。环形缓冲区是一种数据结构它[存放着内核操作数据的信息][13]。
运行如下命令来查看内核操作信息,它同时也会打印出 USB 设备的信息:
```
$ dmesg
```
[
![dmesg - Prints USB Device Name](http://www.tecmint.com/wp-content/uploads/2016/10/dmesg-shows-kernel-information.png)
][11]
*dmesg 打印 USB 设备名*
以上就是这篇文章中提及到的所有命令,我们在命令行下使用不同的方法来找出 USB 设备名。你也可以跟大家分享下实现这个目的的其它方法,或者如果你对这篇文章有什么想法也可以在下面跟大家交流下。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/find-usb-device-name-in-linux
作者:[Aaron Kili][a]
译者:[rusking](https://github.com/rusking)
校对:[jasminepeng](https://github.com/jasminepeng)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/aaronkili/
[1]:http://www.tecmint.com/tag/linux-tricks/
[2]:http://www.tecmint.com/mount-filesystem-in-linux/
[3]:http://www.tecmint.com/wp-content/uploads/2016/10/List-All-Linux-Device-Names.png
[4]:http://www.tecmint.com/how-to-check-disk-space-in-linux/
[5]:http://www.tecmint.com/wp-content/uploads/2016/10/Find-USB-Device-Name.png
[6]:http://www.tecmint.com/commands-to-collect-system-and-hardware-information-in-linux/
[7]:http://www.tecmint.com/wp-content/uploads/2016/10/List-Linux-Block-Devices.png
[8]:http://www.tecmint.com/fdisk-commands-to-manage-linux-disk-partitions/
[9]:http://www.tecmint.com/wp-content/uploads/2016/10/List-Partition-Table.png
[10]:http://www.tecmint.com/dmesg-commands/
[11]:http://www.tecmint.com/wp-content/uploads/2016/10/dmesg-shows-kernel-information.png
[12]:http://www.tecmint.com/fdisk-commands-to-manage-linux-disk-partitions/
[13]:http://www.tecmint.com/dmesg-commands/

View File

@ -0,0 +1,139 @@
安卓编年史8Android 1.5 Cupcake——虚拟键盘打开设备设计的大门
================================================================================
![安卓 1.5 的屏幕软键盘输入时的输入建议栏,大写状态键盘,数字与符号界面,更多符号弹窗。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/kb5.png)
*安卓 1.5 的虚拟键盘输入时的输入建议栏、大写状态键盘、数字与符号界面、更多符号弹窗。
[Ron Amadeo 供图]*
### Android 1.5 Cupcake——虚拟键盘打开设备设计的大门 ###
在 2009 年 4 月,安卓 1.1 发布后将近三个月后,安卓 1.5 发布了。这是第一个拥有公开的、市场化代号的安卓版本纸杯蛋糕Cupcake。从这个版本开始每个版本的安卓将会拥有一个按字母表排序以小吃为主题的代号。
纸杯蛋糕新增功能中最重要的明显当属虚拟键盘。这是 OEM 厂商第一次有可能抛开带有数不清的按键的实体键盘以及复杂的滑动结构,创造出平板风格的安卓设备。
安卓的按键标识可以在大小写之间切换这取决于大写锁定是否开启。尽管默认情况下它是关闭的显示在键盘顶部的建议栏有个选项可以打开它。在按键的弹框中带有省略号的就像“u”上面图那样的可以在按住的情况下可以输入弹框中的[发音符号][1]。键盘可以切换到数字和符号,长按句号键可以打开更多符号。
![1.5和1.1中的应用程序界面和通知面板的对比。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/abweave.png)
*1.5 和 1.1 中的应用程序界面和通知面板的对比。
[Ron Amadeo 供图]*
给新的“摄像机”功能增加了新图标Google Talk 从 IM 中分离出来成为了一个独立的应用。亚马逊 MP3 和浏览器的图标同样经过了重新设计。亚马逊 MP3 图标更改的主要原因是亚马逊即将计划推出其它的安卓应用而“A”图标所指范围太泛了。浏览器图标无疑是安卓 1.1 中最糟糕的设计,所以它被重新设计了,并且不再像是一个桌面操作系统的对话框。应用抽屉的最后一个改变是“图片”,它被重新命名为了“相册”。
通知面板同样经过了重新设计。面板背景加上了布纹纹理,通知的渐变效果也被平滑化了。安卓 1.5 在系统核心部分有许多设计上的微小改变,这些改变影响到所有的应用。在“清除通知”按钮上,你可以看到全新的系统按钮风格,与旧版本的按钮相比有了渐变、更细的边框线以及更少的阴影。
![安卓1.5和1.1中的“添加到主屏幕”对话框。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/widget.png)
*安卓 1.5 和 1.1 中的“添加到主屏幕”对话框。
[Ron Amadeo 供图]*
第三方小部件是纸杯蛋糕的另一个头等特性,它们现在仍然是安卓的本质特征之一。无论是用来控制应用还是显示应用的信息,开发者们都可以为他们的应用捆绑一个主屏幕小部件。谷歌同样展示了一些它们自己的新的小部件,分别来自日历和音乐这两个应用。
![左:日历小部件,音乐小部件以及一排实时文件夹的截图。中:文件夹列表。右:“带电话号码的联系人”实时文件夹的打开视图。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/folders-and-widgets-and-stuff.png)
*左:日历小部件,音乐小部件以及一排实时文件夹的截图。中:文件夹列表。右:“带电话号码的联系人”实时文件夹的打开视图。
[Ron Amadeo 供图]*
在上方左边的截图里你可以看到新的日历和音乐图标。日历小部件只能显示当天的一个事件,点击它会打开日历。你不能够选择日历所显示的内容,小部件也不能够重新设置大小——它就是上面看起来的那个样子。音乐小部件是蓝色的——尽管音乐应用里没有一丁点的蓝色——它展示了歌曲名和歌手名,此外还有播放和下一曲按钮。
同样在左侧截图里,底部一排的头三个文件夹是一个叫做“[实时文件夹](http://android-developers.blogspot.com/2009/04/live-folders.html)”的新特性。它们可以在“添加到主屏幕”菜单中的新顶层选项“文件夹”中被找到,就像你在中间那张图看到的那样。实时文件夹可以展示一个应用的内容而不用打开这个应用。纸杯蛋糕带来的都是和联系人相关的实时文件夹,能够显示所有联系人,带有电话号码的联系人和加星标的联系人。
实时文件夹在主屏的弹窗使用了一个简单的列表视图,而不是图标。联系人只是实时文件夹的一个初级应用,它是给开发者使用的一个完整 API。谷歌用 Google Books 应用做了个图书文件夹的演示,它可以显示 RSS 订阅或是一个网站的热门故事。实时文件夹是安卓没有成功实现的想法之一这个特性最终在蜂巢3.x中被取消。
![摄像机和相机界面,屏幕上有触摸快门。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/device-2013-12-26-11016071.png)
*摄像机和相机界面,屏幕上有触摸快门。
[Ron Amadeo 供图]*
如果你不能认出新的“摄像机”图标,这不奇怪,视频录制是在安卓 1.5 中才被添加进来的。相机和摄像机两个图标其实是同一个应用你可用过菜单中的“切换至相机”和“切换至摄像机”选项在它们之间切换。T-Mobile G1 上录制的视频质量并不高。一个“高”质量的测试视频输出一个 .3GP 格式的视频文件,其分辨率仅为 352 x 288帧率只有 4FPS。
除了新的视频特性,相机应用中还可以看到一些急需的 UI 调整。上方左侧的快照展示了最近拍摄的那张照片,点击它会跳转到相册中的相机胶卷。各个界面上方右侧的圆形图标是触摸快门,这意味着,从 1.5 开始,安卓设备不再需要一个实体相机按钮。
这个界面相比于之后版本的相机应用实际上更加接近于安卓 4.2 的设计。尽管后续的设计会向相机加入愚蠢的皮革纹理和更多的控制设置,安卓最终还是回到了基本的设计,安卓 4.2 的重新设计和这里有很多共同之处。安卓 1.5 中的原始布局演变成了安卓 4.2 中的最小化的、全屏的取景器。
![Google Talk运行在Google Talk中vs运行在IM应用中。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/gtalk-im.png)
*Google Talk 运行在 Google Talk 中 vs 运行在 IM 应用中。
[Ron Amadeo 供图]*
安卓 1.0 的 IM 即时通讯应用功能上支持 Google Talk但在安卓 1.5 中Google Talk 从中分离出来成为独立应用。IM应用中对其的支持已经被移除。Google Talk上图左侧明显是基于 IM 应用(上图右侧)的,但随着独立应用在 1.5 中的发布,在 IM 应用的工作被放弃了。
新的 Google Talk 应用拥有重新设计过的状态栏、右侧状态指示灯、重新设计过的移动设备标识,是个灰色的安卓小绿人图案。聊天界面的蓝色的输入框变成了更加合理的灰色,消息的背景从淡绿和白色变成了淡绿和绿色。有了独立的应用,谷歌可以向其中添加 Gtalk 独有的特性,比如“不保存聊天记录”聊天,该特性可以阻止 Gmail 保存每个聊天记录。
![安卓1.5的日历更加明亮。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/cal15.png)
*安卓 1.5 的日历更加明亮。
[Ron Amadeo 供图]*
日历抛弃了丑陋的黑色背景上白色方块的设计,转变为全浅色主题。所有东西的背景都变成了白色,顶部的星期日变成了蓝色。单独的约会方块从带有颜色的细条变成了拥有整个颜色背景,文字也变为白色。这将是很长一段时间内日历的最后一次改动。
![从左到右:新的浏览器控件,缩放视图,复制/粘贴文本高亮。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/browser-craziness.png)
*从左到右:新的浏览器控件,缩放视图,复制/粘贴文本高亮。
[Ron Amadeo 供图]*
安卓 1.5 从系统全局修改了缩放控件。缩放控件不再是两个大圆形,取而代之的是一个圆角的矩形从中间分开为左右两个按钮。这些新的控件被用在了浏览器、谷歌地图和相册之中。
浏览器在缩放功能上做了很多工作。在放大或缩小之后点击“1x”按钮可以回到正常缩放状态。底部右侧的按钮会将缩放整个页面并在页面上显示一个放大矩形框就像你能在上面中间截图看到的那样。按住矩形框并且释放会将页面的那一部分显示回“1x”视图。安卓并没有加速滚动这使得最快的滚动速度也着实很慢——这就是谷歌对长网页页面导航的解决方案。
浏览器的另一个新增功能就是从网页上复制文本——之前你只能从输入框中复制文本。在菜单中选择“复制文本”会激活高亮模式在网页文本上拖动你的手指使它们高亮。G1 的轨迹球对于这种精准的移动十分的方便,并且能够控制鼠标指针。这里并没有可以拖动的光标,当你的手指离开屏幕的时候,安卓就会复制文本并且移除高亮。所以你必须做到荒谬般的精确来使用复制功能。
安卓 1.5 中的浏览器很容易崩溃——比之前的版本经常多了。仅仅是以桌面模式浏览 Ars Technica 就会导致崩溃,许多其它的站点也是一样。
![](http://cdn.arstechnica.net/wp-content/uploads/2013/12/lockscreen.png)
*Ron Amadeo供图*
默认的锁屏界面和图形锁屏都不再是空荡荡的黑色背景,而是和主屏幕一致的壁纸。
图形解锁界面的浅色背景显示出了谷歌在圆圈对齐工作上的草率和马虎。白色圆圈在黑圆圈里从来都不是在正中心的位置——像这样基本的对齐问题对于这一时期的安卓是个频繁出现的问题。
![Youtube上传工具内容快照自动旋转设置全新的音乐应用设计。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/TWEAKS2.png)
*Youtube 上传工具,内容快照,自动旋转设置,全新的音乐应用设计。
[Ron Amadeo 供图]*
安卓 1.5 给予了 YouTube 应用向其网站上传视频的能力。上传通过从相册中分享视频到 YouTube 应用来完成,或从 YouTube 应用中直接打开一个视频。这将会打开一个上传界面,用户在这里可以设置像视频标题、标签和权限这样的选项。照片可以以类似的方式上传到 Picasa这是一个谷歌建立的图片网站。
整个系统的调整没有多少。常用联系人在联系人列表中可以显示图片(尽管常规联系人还是没有图片)。第三张截图展示了设置中全新的自动旋转选项——这个版本同样也是第一个支持基于从设备内部传感器读取的数据来自动切换方向的版本。
![HTC Magic第二部安卓设备第一个不带实体键盘的设备。](http://cdn.arstechnica.net/wp-content/uploads/2014/04/htc-magic-white.jpg)
*HTC Magic第二部安卓设备第一个不带实体键盘的设备。
[HTC 供图]*
纸杯蛋糕在改进安卓上做了巨大的工作,特别是从硬件方面。虚拟键盘意味着不再需要实体键盘。自动旋转使得系统更加接近 iPhone屏幕上的虚拟快门按键同样也意味着实体相机按键变成了可选选项。1.5 发布后不久第二部安卓设备的出现将会展示出这个平台未来的方向HTC Magic。Magic上图没有实体键盘或相机按钮。它是没有间隙、没有滑动结构的平板状设备依赖于安卓的虚拟按键来完成任务。
安卓旗舰机开始可能有着最多按键——一个实体 qwerty 键盘——后来随着时间流逝开始慢慢减少按键数量。而 Magic 是重大的一步,去除了整个键盘和相机按钮,它仍然使用通话和挂断键、四个系统键以及轨迹球。
#### 谷歌地图是第一个登陆谷歌市场的内置应用 ####
尽管这篇文章为了简单起见主要以安卓版本顺序来组织应用更新但还是有一些在这时间线之外的东西值得我们特别注意一下。2009 年 6 月 14 日,谷歌地图成为第一个通过谷歌市场更新的预置应用。尽管其它的所有应用更新还是要在一个完整的系统发布中进行更新,但是地图从系统中脱离了出来,只要新特性已经就绪就可以随时接收升级周期之外的更新。
将应用从核心系统分离发布到安卓市场上将成为谷歌前进的主要关注点。总的来说OTA 更新是个重大的主动改进——这需要 OEM 厂商和运营商的合作,二者都是拖后腿的角色。更新同样没有做到到达每个设备。今天,谷歌市场给了谷歌一个与每个安卓手机之间的联系渠道,而没有了这样的外界干扰。
然而,这是后来才需要考虑的问题。在 2009 年,谷歌只有两种裸机需要支持,而且早期的安卓运营商似乎对谷歌的升级需要反应积极。这些早期的行动对谷歌这方面来说将被证明是非常积极的决定。一开始,公司只在最重要的应用——地图和 Gmail 上——走这条路线,但后来它将大部分预置应用导入安卓市场。后来的举措比如 Google Play 服务甚至将应用 API 从系统移除加入了谷歌商店。
至于这时的新地图应用,得到了一个新的路线界面,此外还有提供公共交通和步行方向的能力。现在,路线只有个朴素的黑色列表界面——逐步风格的导航很快就会登场。
2009 年 6 月同时还是苹果发布第三代 iPhone——3GS——以及第三版 iPhone OS 的时候。iPhone OS 3 的主要特性大多是追赶上来的项目,比如复制/粘贴和对彩信的支持。苹果的硬件依然是更好的软件更流畅、更整合还有更好的设计。尽管谷歌疯狂的开发步伐使得它不得不走上追赶的道路。iPhone OS 2 是在安卓 0.5 的 Milestone 5 版本之前发布的,在 iOS 一年的发布周期里安卓发布了五个版本。
----------
![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg)
[Ron Amadeo][a] / Ron是Ars Technica的评论编缉专注于安卓系统和谷歌产品。他总是在追寻新鲜事物还喜欢拆解事物看看它们到底是怎么运作的。
[@RonAmadeo][t]
--------------------------------------------------------------------------------
via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/8/
译者:[alim0x](https://github.com/alim0x) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://en.wikipedia.org/wiki/Diacritic
[a]:http://arstechnica.com/author/ronamadeo
[t]:https://twitter.com/RonAmadeo

View File

@ -1,134 +0,0 @@
(翻译中 by runningwater)
part 7 - How to manage binary blobs with Git
=====================
In the previous six articles in this series we learned how to manage version control on text files with Git. But what about binary files? Git has extensions for handling binary blobs such as multimedia files, so today we will learn how to manage binary assets with Git.
One thing everyone seems to agree on is Git is not great for big binary blobs. Keep in mind that a binary blob is different from a large text file; you can use Git on large text files without a problem, but Git can't do much with an impervious binary file except treat it as one big solid black box and commit it as-is.
Say you have a complex 3D model for the exciting new first person puzzle game you're making, and you save it in a binary format, resulting in a 1 gigabyte file. Yougit commit it once, adding a gigabyte to your repository's history. Later, you give the model a different hair style and commit your update; Git can't tell the hair apart from the head or the rest of the model, so you've just committed another gigabyte. Then you change the model's eye color and commit that small change: another gigabyte. That is three gigabytes for one model with a few minor changes made on a whim. Scale that across all the assets in a game, and you have a serious problem.
Contrast that to a text file like the .obj format. One commit stores everything, just as with the other model, but an .obj file is a series of lines of plain text describing the vertices of a model. If you modify the model and save it back out to .obj, Git can read the two files line by line, create a diff of the changes, and process a fairly small commit. The more refined the model becomes, the smaller the commits get, and it's a standard Git use case. It is a big file, but it uses a kind of overlay or sparse storage method to build a complete picture of the current state of your data.
However, not everything works in plain text, and these days everyone wants to work with Git. A solution was required, and several have surfaced.
[OSTree](https://ostree.readthedocs.io/en/latest/) began as a GNOME project and is intended to manage operating system binaries. It doesn't apply here, so I'll skip it.
[Git Large File Storage](https://git-lfs.github.com/) (LFS) is an open source project from GitHub that began life as a fork of git-media. [git-media](https://github.com/alebedev/git-media) and [git-annex](https://git-annex.branchable.com/walkthrough/) are extensions to Git meant to manage large files. They are two different approaches to the same problem, and they each have advantages. These aren't official statements from the projects themselves, but in my experience, the unique aspects of each are:
* git-media is a centralised model, a repository for common assets. You tellgit-media where your large files are stored, whether that is a hard drive, a server, or a cloud storage service, and each user on your project treats that location as the central master location for large assets.
* git-annex favors a distributed model; you and your users create repositories, and each repository gets a local .git/annex directory where big files are stored. The annexes are synchronized regularly so that all assets are available to all users as needed. Unless configured otherwise with annex-cost, git-annex prefers local storage before off-site storage.
Of these options, I've used git-media and git-annex in production, so I'll give you an overview of how they each work.
```
git-media
```
git-media uses Ruby, so you must install a gem for it. Instructions are on the[website](https://github.com/alebedev/git-media). Each user who wants to use git-media needs to install it, but it is cross-platform, so that is not a problem.
After installing git-media, you must set some Git configuration options. You only need to do this once per machine you use:
```
$ git config filter.media.clean "git-media filter-clean"$ git config filter.media.smudge "git-media filter-smudge"
```
In each repository that you want to use git-media, set an attribute to marry the filters you've just created to the file types you want to classify as media. Don't get confused by the terminology; a better term is "assets," since "media" usually means audio, video, and photos, but you might just as easily classify 3D models, bakes, and textures as media.
For example:
```
$ echo "*.mp4 filter=media -crlf" >> .gitattributes$ echo "*.mkv filter=media -crlf" >> .gitattributes$ echo "*.wav filter=media -crlf" >> .gitattributes$ echo "*.flac filter=media -crlf" >> .gitattributes$ echo "*.kra filter=media -crlf" >> .gitattributes
```
When you stage a file of those types, the file is copied to .git/media.
Assuming you have a Git repository on the server already, the final step is to tell your Git repository where the "mothership" is; that is, where the media files will go when they have been pushed for all users to share. Set this in the repository's.git/config file, substituting your own user, host, and path:
```
[git-media]
transport = scp
autodownload = false #true to pull assets by default
scpuser = seth
scphost = example.com
scppath = /opt/jupiter.git
```
If you have complex SSH settings on your server, such as a non-standard port or path to a non-default SSH key file use .ssh/config to set defaults for the host.
Life with git-media is mostly normal; you work in your repository, you stage files and blobs alike, and commit them as usual. The only difference in workflow is that at some point along the way, you should sync your secret stockpile of assets (er, media) to the shared repository.
When you are ready to publish your assets for your team or for your own backup, use this command:
```
$ git media sync
```
To replace a file in git-media with a changed version (for example, an audio file has been sweetened, or a matte painting has been completed, or a video file has been colour graded), you must explicitly tell Git to update the media. This overrides git-media's default to not copy a file if it already exists remotely:
```
$ git update-index --really-refresh
```
When other members of your team (or you, on a different computer) clones the repository, no assets will be downloaded by default unless you have set theautodownload option in .git/config to true. A git media sync cures all ills.
```
git-annex
```
git-annex has a slightly different workflow, and defaults to local repositories, but the basic ideas are the same. You should be able to install git-annex from your distribution's repository, or you can get it from the website as needed. As withgit-media, any user using git-annex must install it on their machine.
The initial setup is simpler than git-media. To create a bare repository on your server run this command, substituting your own path:
```
$ git init --bare --shared /opt/jupiter.git
```
Then clone it onto your local computer, and mark it as a git-annex location:
```
$ git clone seth@example.com:/opt/jupiter.cloneCloning into 'jupiter.clone'... warning: You appear to have clonedan empty repository. Checking connectivity... done.$ git annex init "seth workstation" init seth workstation ok
```
Rather than using filters to identify media assets or large files, you configure what gets classified as a large file by using the git annex command:
```
$ git annex add bigblobfile.flacadd bigblobfile.flac (checksum) ok(Recording state in Git...)
```
Committing is done as usual:
```
$ git commit -m 'added flac source for sound fx'
```
But pushing is different, because git annex uses its own branch to track assets. The first push you make may need the -u option, depending on how you manage your repository:
```
$ git push -u origin master git-annexTo seth@example.com:/opt/jupiter.git* [new branch] master -> master* [new branch] git-annex -> git-annex
```
As with git-media, a normal git push does not copy your assets to the server, it only sends information about the media. When you're ready to share your assets with the rest of the team, run the sync command:
```
$ git annex sync --content
```
If someone else has shared assets to the server and you need to pull them, git annex sync will prompt your local checkout to pull assets that are not present on your machine, but that exist on the server.
Both git-media and git-annex are flexible and can use local repositories instead of a server, so they're just as useful for managing private local projects, too.
Git is a powerful and extensible system, and by now there is really no excuse for not using it. Try it out today!
--------------------------------------------------------------------------------
via: https://opensource.com/life/16/8/how-manage-binary-blobs-git-part-7
作者:[Seth Kenlon][a]
译者:[runningwater](https://github.com/runningwater)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth

View File

@ -1,3 +1,4 @@
Yinux 翻译中
Livepatch Apply Critical Security Patches to Ubuntu Linux Kernel Without Rebooting
============================================================
@ -85,7 +86,7 @@ Feel free to let us know if you have any questions about this article. Just drop
via: http://www.tecmint.com/livepatch-install-critical-security-patches-to-ubuntu-kernel
作者:[Gabriel Cánepa][a]
译者:[译者ID](https://github.com/译者ID)
译者:[Yinux](https://github.com/Yinux)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,170 +0,0 @@
FSSlc translating
HOW TO SHARE STEAM GAME FILES BETWEEN LINUX AND WINDOWS
============
[![How to share steam games between Linux and Windows](https://itsfoss.com/wp-content/uploads/2016/10/share-games-linux-windows-steam.jpg)][16]
_Brief: This detailed guide shows you how to share Steam game files between Linux and Windows to save download time and data._
If you are or want to be a committed Linux gamer and have games on [Steam][15] that are supported both on Linux and Windows, or have dual booting OSs for the same reason, you might want to consider reading this.
There are many of us gamers who [dual boot Linux with Windows][14].  Some of us would have had only Linux had it not been for those games which have not yet arrived on Steam for Linux. Hence we keep both of the OSs so that we can play all of our favourite games regardless of the platforms they arrive on.
Thankfully, the [Linux gaming][13] community is emerging gracefully and we are having more and more popular Steam for Windows games being launched on Steam for Linux.
Many of us like to backup our Steam games so we wont have to wait for downloads to complete. These collections are a majority of Steam for Windows games.
Now there are so many of these games that have arrived on [Steam for Linux][12] as well, such as Life is Strange, Tomb Raider 2013, Shadow of Mordor, XCOM: Enemy Unknown, XCOM 2, Race The Sun, Road Redemption, SUPERHOT,…and the [list grows on][11]! We also have the [upcoming Deus Ex: Mankind Divided][10] and [Mad Max][9]!!! Instead of years, nowadays we only have to wait for months for such titles after Windows releases and this is big news!
This experimental method shows you how to use your existing game files on either platform to restore the majority of the game data files on Steam. This results in having much lesser waiting times for you to enjoy the game as the files are pretty much common between the two OSs as we are going to see in the following example.
In the following method, we show you step by step procedures to attempt both Steams own backup and restore feature and the manual way. While were at it, we will also show you the similarities and differences in the game file structures between both platforms so that you too can explore and come up with your own tweaks.
In this method, weve used Ubuntu 14.04 LTS and Windows 10 to perform the backup and restore Steam tests.
### #1 : STEAMS OWN BACKUP AND RESTORE
When we tried to use a Windows Steam Backup of SUPERHOT on Linux(encrypted files in .csd format), Steam for Linux failed to recognise any of the files and started downloading the entire game from 0 MB!  Even on doing a validation check, a vast majority of the files could not be identified by Steam. We also did a similar test on  Windows, but the result was the same!
![steam-restore-failure-from-windows-backup](https://itsfoss.com/wp-content/uploads/2016/10/steam-restore-failure-from-windows-backup.jpeg)
![steam-validation-failure](https://itsfoss.com/wp-content/uploads/2016/10/steam-validation-failure.jpeg)
Time for some manual tweaks to share Steam games between Windows and Linux!
### #2 : MANUAL METHOD
First, we took a look at the locations(user directory in home) where the games files were present on Linux:
This is the default installation location for Steam for Linux. “.local” and “.steam” directories are hidden by default and you would have to unhide them. We would recommend having a custom Steam installation location for easier handling of files. Here “SUPERHOT.x86_64” is the native Linux “executable” unlike a “.exe” file in Windows:
![superhot_data1](https://itsfoss.com/wp-content/uploads/2016/10/superhot_data1-e1477112816241.jpeg)
This is the location which contains the majority of the files that we need(common between Windows and Linux):
![superhot_data2](https://itsfoss.com/wp-content/uploads/2016/10/superhot_data2.jpeg)
Here below we see .acf files. “appmanifest_322500.acf” is the one we need. Editing and tweaking this file helps a lot to make Steam recognise existing unencrypted raw file backups present in the “common” directory:
![steam_linux_manifests](https://itsfoss.com/wp-content/uploads/2016/10/steam_linux_manifests-e1477112765133.jpeg)
To confirm the same, just open the file with an editor and check. The more we understand this file, the better. Here is [a post on the Steam forums][8] that shows its major significance. It looks something like this:
It looks something like this:
```
“AppState”
{
“appid” “322500”
“Universe” “1”
“name” “SUPERHOT”
“StateFlags” “4”
“installdir” “SUPERHOT”
“LastUpdated” “1474466631”
“UpdateResult” “0”
“SizeOnDisk” “4156100762”
“buildid” “1234395”
“LastOwner” “<SteamID>
“BytesToDownload” “909578688”
“BytesDownloaded” “909578688”
“AutoUpdateBehavior” “0”
“UserConfig”
{
“Language” “english”
}
“MountedDepots”
{
“322503” “1943012315434556837”
}
}
```
After uninstalling the game on Linux to try the test, we now have a look at the contents of the same game on Windows 10:
![superhot-windows-steam](https://itsfoss.com/wp-content/uploads/2016/10/superhot-windows-steam.jpeg)![superhot-windows-steam2](https://itsfoss.com/wp-content/uploads/2016/10/superhot-windows-steam2.jpeg)
We copied the “SUPERHOT” folder and also the manifest(.acf) file(it is created in the same format in Steam for Windows). While copying the .acf file and the directory to their respective locations on Steam for Linux, we made sure Steam wasnt running in the background.
After the transfer was complete, we ran Steam and saw this:
![most-files-recognised-on-steam](https://itsfoss.com/wp-content/uploads/2016/10/most-files-recognised-on-steam.jpeg)
So instead of the entire 867.4 MB, it now shows 235.5 MB of files to download and that means more than 70% of the files have been identified by Steam :) ! So this is a massive time gain, relatively speaking. While this might vary for different games, of course, this is definitely worth a try for gamers who have below-average/average internet connections especially when the “heavy duty” games are considered that are mostly sized at around 40-50 GB these days.
Other tweaks that we tried:
* We tried using a backup version of the original manifest file for Linux along with the Windows manual backup. But that resulted in Steam downloading the game for the beginning.
* We can see that the data files are in a folder named “SH_Data” on Windows instead of  the directory, “SUPERHOT_Data” as on Linux. Changing it did not make any difference in the above result.
### AN ATTEMPT TO UNDERSTAND THE MANIFEST FILE
The manifest file can certainly be edited and tweaked for improving these results to make Steam detect as many files as it can.
There is a [project on Github][7] which is a python script to generate these manifest files. AppIDs for any Steam game can be obtained from [SteamDB][6]. By knowing the App ID, you can create your own manifest file with your favourite editor by using the following format: “appmanifest_<AppID>.acf” . In the above manual method, we can see that the AppID for SUPERHOT is 322500\. Hence the filename would be appmanifest_322500.acf .
Lets try to document it within the file according to our best interpretations:
```
“AppState” // The State of the Application(Game)
{
“appid” “322500” // The Steam Application ID of the Game
“Universe” “1”
“name” “SUPERHOT” // Game Name
“StateFlags” “4”
“installdir” “SUPERHOT” // Installation Directory Name
“LastUpdated” “1474466631”
“UpdateResult” “0”
“SizeOnDisk” “4156100762”
“buildid” “1234395”
“LastOwner” “<SteamID>” // Unique <SteamID> for account owner in numerical format
“BytesToDownload” “909578688” // Divide this number by 1073741824(1024 x 1024 x 1024) to calculate data remaining to download in GB.
“BytesDownloaded” “909578688” // Bytes downloaded
“AutoUpdateBehavior” “0” // The game will update automatically when this is set to 0.
“UserConfig” // User Configuration
{
“Language” “english”
}
“MountedDepots” // This section is mostly related to Game DLCs
{
“322503” “1943012315434556837”
}
}
```
By calculating the data download size in GB/MB, you can compare it with what Steam shows and try more tweaks.
Please share with us in the comments if you know about more such tips and tricks/suggestions about the manifest file or other improvements/ways for manual workarounds. We are yet to discover a complete documentation for these file formats as it not yet available officially in the [Valve Developer Community][5] or in [the forums][4].
But for now, these are the best ways to share Steam games between Linux and Windows.
--------------------------------------------------------------------------------
via: https://itsfoss.com/share-steam-files-linux-windows/
作者:[Avimanyu Bandyopadhyay][a]
译者:[译者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/avimanyu/
[1]:http://pinterest.com/pin/create/button/?url=https://itsfoss.com/share-steam-files-linux-windows/&description=How+To+Share+Steam+Game+Files+Between+Linux+And+Windows&media=https://itsfoss.com/wp-content/uploads/2016/10/share-games-linux-windows-steam.jpg
[2]:https://www.linkedin.com/cws/share?url=https://itsfoss.com/share-steam-files-linux-windows/
[3]:https://twitter.com/share?original_referer=https%3A%2F%2Fitsfoss.com%2F&source=tweetbutton&text=How+To+Share+Steam+Game+Files+Between+Linux+And+Windows&url=https%3A%2F%2Fitsfoss.com%2Fshare-steam-files-linux-windows%2F&via=%40itsfoss
[4]:http://steamcommunity.com/discussions/
[5]:https://developer.valvesoftware.com/wiki/Main_Page
[6]:https://steamdb.info/
[7]:https://github.com/dotfloat/steam-appmanifest
[8]:https://steamcommunity.com/app/292030/discussions/0/357286663676318082/
[9]:http://www.kotaku.com.au/2016/10/avalanche-studios-mad-max-arrives-on-linux-and-mac-os/
[10]:https://itsfoss.com/deus-ex-mankind-divided-linux/
[11]:https://itsfoss.com/best-linux-games/
[12]:https://itsfoss.com/install-steam-ubuntu-linux/
[13]:https://itsfoss.com/linux-gaming-guide/
[14]:https://itsfoss.com/guide-install-elementary-os-luna/
[15]:http://store.steampowered.com/
[16]:https://itsfoss.com/wp-content/uploads/2016/10/share-games-linux-windows-steam.jpg

View File

@ -1,102 +0,0 @@
###Translating by rusking
4 Useful Way to Know Plugged USB Device Name in Linux
============================================================
As a newbie, one of the many [things you should master in Linux][1] is identification of devices attached to your system. It may be your computers hard disk, an external hard drive or removable media such USB drive or SD Memory card.
Using USB drives for file transfer is so common today, and for those (new Linux users) who prefer to use the command line, learning the different ways to identify a USB device name is very important, when you need to format it.
Once you attach a device to your system such as a USB, especially on a desktop, it is automatically mounted to a given directory, normally under /media/username/device-label and you can then access the files in it from that directory. However, this is not the case with a server where you have to[ manually mount a device][2] and specify its mount point.
Linux identifies devices using special device files stored in `/dev` directory. Some of the files you will find in this directory include `/dev/sda` or `/dev/hda` which represents your first master drive, each partition will be represented by a number such as `/dev/sda1` or `/dev/hda1` for the first partition and so on.
```
$ ls /dev/sda*
```
[
![List All Linux Device Names](http://www.tecmint.com/wp-content/uploads/2016/10/List-All-Linux-Device-Names.png)
][3]
List All Linux Device Names
Now lets find out device names using some different command-line tools as shown:
### Find Out Plugged USB Device Name Using df Command
To view each device attached to your system as well as its mount point, you can use the [df command][4](checks Linux disk space utilization) as shown in the image below:
```
$ df -h
```
[
![Find USB Device Name Using df Command](http://www.tecmint.com/wp-content/uploads/2016/10/Find-USB-Device-Name.png)
][5]
Find USB Device Name Using df Command
### Use lsblk Command to Find USB Device Name
You can also use the [lsblk command (list block devices)][6] which lists all block devices attached to your system like so:
```
$ lsblk
```
[
![List Linux Block Devices](http://www.tecmint.com/wp-content/uploads/2016/10/List-Linux-Block-Devices.png)
][7]
List Linux Block Devices
### Identify USB Device Name with fdisk Utility
[fdisk is a powerful utility][8] which prints out the partition table on all your block devices, a USB drive inclusive, you can run it will root privileges as follows:
```
$ sudo fdisk -l
```
[
![List Partition Table of Block Devices](http://www.tecmint.com/wp-content/uploads/2016/10/List-Partition-Table.png)
][9]
List Partition Table of Block Devices
### Determine USB Device Name with dmesg Command
dmesg is an important command that prints or controls the kernel ring buffer, a data structure which [stores information about the kernels operations][10].
Run the command below to view kernel operation messages which will as well print information about your USB device:
```
$ dmesg
```
[
![dmesg - Prints USB Device Name](http://www.tecmint.com/wp-content/uploads/2016/10/dmesg-shows-kernel-information.png)
][11]
dmesg Prints USB Device Name
That is all for now, in this article, we have covered different approaches of how to find out a USB device name from the command line. You can also share with us any other methods for the same purpose or perhaps offer us your thoughts about the article via the response section below.
--------------------------------------------------------------------------------
via: http://www.tecmint.com/find-usb-device-name-in-linux
作者:[Aaron Kili ][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/aaronkili/
[1]:http://www.tecmint.com/tag/linux-tricks/
[2]:http://www.tecmint.com/mount-filesystem-in-linux/
[3]:http://www.tecmint.com/wp-content/uploads/2016/10/List-All-Linux-Device-Names.png
[4]:http://www.tecmint.com/how-to-check-disk-space-in-linux/
[5]:http://www.tecmint.com/wp-content/uploads/2016/10/Find-USB-Device-Name.png
[6]:http://www.tecmint.com/commands-to-collect-system-and-hardware-information-in-linux/
[7]:http://www.tecmint.com/wp-content/uploads/2016/10/List-Linux-Block-Devices.png
[8]:http://www.tecmint.com/fdisk-commands-to-manage-linux-disk-partitions/
[9]:http://www.tecmint.com/wp-content/uploads/2016/10/List-Partition-Table.png
[10]:http://www.tecmint.com/dmesg-commands/
[11]:http://www.tecmint.com/wp-content/uploads/2016/10/dmesg-shows-kernel-information.png

View File

@ -1,3 +1,4 @@
(翻译中 by runningwater)
# 4 Ways to Batch Convert Your PNG to JPG and Vice-Versa
In computing, Batch processing is the [execution of a series of tasks][11] in a program non-interactively. In this guide will offer you 4 simple ways to batch convert several `.PNG` images to `.JPG` and vice-versa using Linux command-line tools.
@ -162,7 +163,7 @@ via: http://www.tecmint.com/linux-image-conversion-tools/
作者:[Aaron Kili][a]
译者:[译者ID](https://github.com/译者ID)
译者:[runningwater](https://github.com/runningwater)
校对:[校对者ID](https://github.com/校对者ID)

View File

@ -1,128 +0,0 @@
安卓编年史
================================================================================
![安卓1.5的屏幕软键盘输入时的输入建议栏,大写状态键盘,数字与符号界面,更多符号弹窗。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/kb5.png)
安卓1.5的虚拟键盘输入时的输入建议栏,大写状态键盘,数字与符号界面,更多符号弹窗。
Ron Amadeo供图
### Android 1.5 Cupcake——虚拟键盘打开设备设计的大门 ###
在2009年4月安卓1.1发布后将近三个月后安卓1.5发布了。这是第一个拥有公开的,市场化代号的安卓版本:纸杯蛋糕(Cupcake)。从这个版本开始,每个版本的安卓将会拥有一个按字母表排序,以小吃为主题的代号。
纸杯蛋糕新增功能中最重要的明显当属虚拟键盘。这是OEM厂商第一次有可能抛开数不清按键的实体键盘以及复杂的滑动结构创造出平板风格的安卓设备。
安卓的按键标识可以在大小写之间切换这取决于大写锁定是否开启。尽管默认情况下它是关闭的显示在键盘顶部的建议栏有个选项可以打开它。在按键的弹框中带有省略号的就像“u”上面图那样的可以在按住的情况下可以输入弹框中的[发音符号][1]。键盘可以切换到数字和符号,长按句号键可以打开更多符号。
![1.5和1.1中的应用程序界面和通知面板的对比。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/abweave.png)
1.5和1.1中的应用程序界面和通知面板的对比。
Ron Amadeo供图
“摄像机”功能加入了新图标Google Talk从IM中分离出来成为了一个独立的应用。亚马逊MP3和浏览器的图标同样经过了重新设计。亚马逊MP3图标更改的主要原因是亚马逊即将计划推出其它的安卓应用而“A”图标所指范围太泛了。浏览器图标无疑是安卓1.1中最糟糕的设计,所以它被重新设计了,并且不再像是一个桌面操作系统的对话框。应用抽屉的最后一个改变是“图片”,它被重新命名为了“相册”。
通知面板同样经过了重新设计。面板背景加上了布纹纹理通知的渐变效果也被平滑化了。安卓1.5在系统核心部分有许多设计上的微小改变,这些改变影响到所有的应用。在“清除通知”按钮上,你可以看到全新的系统按钮风格,相比与旧版本的按钮有了渐变,更细的边框线以及更少的阴影。
![安卓1.5和1.1中的“添加到主屏幕”对话框。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/widget.png)
安卓1.5和1.1中的“添加到主屏幕”对话框。
Ron Amadeo供图
第三方小部件是纸杯蛋糕的另一个头等特性,它们现在仍然是安卓的本质特征之一。无论是用来控制应用还是显示应用的信息,开发者们都可以为他们的应用捆绑一个主屏幕小部件。谷歌同样展示了一些它们自己的新的小部件,分别来自日历和音乐这两个应用。
![左:日历小部件,音乐小部件以及一排实时文件夹的截图。中:文件夹列表。右:“带电话号码的联系人”实时文件夹的打开视图。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/folders-and-widgets-and-stuff.png)
左:日历小部件,音乐小部件以及一排实时文件夹的截图。中:文件夹列表。右:“带电话号码的联系人”实时文件夹的打开视图。
Ron Amadeo供图
在上方左边的截图里你可以看到新的日历和音乐图标。日历小部件只能显示当天的一个事件,点击它会打开日历。你不能够选择日历所显示的内容,小部件也不能够重新设置大小——它就是上面看起来的那个样子。音乐小部件是蓝色的——尽管音乐应用里没有一丁点的蓝色——它展示了歌曲名和歌手名,此外还有播放和下一曲按钮。
同样在左侧截图里,底部一排的头三个文件夹是一个叫做“实时文件夹”的新特性。它们可以在“添加到主屏幕”菜单中的新顶层选项“文件夹”中被找到,就像你在中间那张图看到的那样。实时文件夹可以展示一个应用的内容而不用打开这个应用。纸杯蛋糕带来的都是和联系人相关的实时文件夹,能够显示所有联系人,带有电话号码的联系人和加星标的联系人。
实时文件夹在主屏的弹窗使用了一个简单的列表视图而不是图标。联系人只是实时文件夹的一个初级应用它是给开发者使用的一个完整API。谷歌用Google Books应用做了个图书文件夹的演示它可以显示RSS订阅或是一个网站的热门故事。实时文件夹是安卓没有成功实现的想法之一这个特性最终在蜂巢(3.x)中被取消。
![摄像机和相机界面,屏幕上有触摸快门。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/device-2013-12-26-11016071.png)
摄像机和相机界面,屏幕上有触摸快门。
Ron Amadeo供图
如果你不能认出新的“摄像机”图标这不奇怪视频录制是在安卓1.5中才被添加进来的。相机和摄像机两个图标其实是同一个应用你可用过菜单中的“切换至相机”和“切换至摄像机”选项在它们之间切换。T-Mobile G1上录制的视频质量并不高。一个“高”质量的测试视频输出一个.3GP格式的视频文件其分辨率仅为352 x 288帧率只有4FPS。
除了新的视频特性相机应用中还可以看到一些急需的UI调整。上方左侧的快照展示了最近拍摄的那张照片点击它会跳转到相册中的相机胶卷。各个界面上方右侧的圆形图标是触摸快门这意味着从1.5开始,安卓设备不再需要一个实体相机按钮。
这个界面相比于之后版本的相机应用实际上更加接近于安卓4.2的设计。尽管后续的设计会向相机加入愚蠢的皮革纹理毅力更多的控制设置安卓最终还是回到了基本的设计安卓4.2的重新设计和这里有很多共同之处。安卓1.5中的原始布局演变成了安卓4.2中的最小化的,全屏的取景器。
![Google Talk运行在Google Talk中vs运行在IM应用中。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/gtalk-im.png)
Google Talk运行在Google Talk中vs运行在IM应用中。
Ron Amadeo供图
安卓1.0的IM即时通讯应用功能上支持Google Talk但在安卓1.5中Google Talk从中分离出来成为独立应用。IM应用中对其的支持已经被移除。Google Talk上图左侧明显是基于IM应用上图右侧但随着独立应用在1.5中的发布在IM应用的工作被放弃了。
新的Google Talk应用拥有重新设计过的状态栏右侧状态指示灯重新设计过的移动设备标识是个灰色的安卓小绿人图案。聊天界面的蓝色的输入框变成了更加合理的灰色消息的背景从淡绿和白色变成了淡绿和绿色。有了独立的应用谷歌可以向其中添加Gtalk独有的特性比如“不保存聊天记录”聊天该特性可以阻止Gmail保存每个聊天记录。
![安卓1.5的日历更加明亮。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/cal15.png)
安卓1.5的日历更加明亮。
Ron Amadeo供图
日历抛弃了丑陋的黑色背景上白色方块的设计,转变为全浅色主题。所有东西的背景都变成了白色,顶部的星期日变成了蓝色。单独的约会方块从带有颜色的细条变成了拥有整个颜色背景,文字也变为白色。这将是很长一段时间内日历的最后一次改动。
![从左到右:新的浏览器控件,缩放视图,复制/粘贴文本高亮。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/browser-craziness.png)
从左到右:新的浏览器控件,缩放视图,复制/粘贴文本高亮。
Ron Amadeo供图
安卓1.5从系统全局修改了缩放控件。缩放控件不再是两个大圆形,取而代之的是一个圆角的椭圆形从中间分开为左右两个按钮。这些新的控件被用在了浏览器,谷歌地图和相册之中。
浏览器在缩放功能上做了很多工作。在放大或缩小之后点击“1x”按钮可以回到正常缩放状态。底部右侧的按钮会将页面缩放整个页面并在页面上显示一个放大矩形框就像你能在上面中间截图看到的那样。抓住矩形框并且释放会将页面的那一部分显示回“1x”视图。安卓并没有加速滚动这使得最大滚动速度着实很慢——这就是谷歌对长网页页面导航的解决方案。
浏览器的另一个新增功能就是从网页上复制文本——之前你只能从输入框中复制文本。在菜单中选择“复制文本”会激活高亮模式在网页文本上拖动你的手指会使它们高亮。G1的轨迹球对于这种精准的移动十分的方便并且能够控制鼠标指针。这里并没有可以拖动的光标当你的手指离开屏幕的时候安卓就会复制文本并且移除高亮。所以你必须做到荒谬般的精确来使用复制功能。
安卓1.5中的浏览器很容易崩溃——比之前的版本经常多了。仅仅是以桌面模式浏览Ars Technica就会导致崩溃许多其它的站点也是一样。
![](http://cdn.arstechnica.net/wp-content/uploads/2013/12/lockscreen.png)
Ron Amadeo供图
默认的锁屏界面和图形锁屏都不再是空荡荡的黑色背景,而是和主屏幕一致的壁纸。
图形解锁界面的浅色背景显示出了谷歌在圆圈对齐工作上的草率和马虎。白色圆圈在黑圆圈里从来都不是在正中心的位置——像这样基本的对齐问题对于这一时期的安卓是个频繁出现的问题。
![Youtube上传工具内容快照自动旋转设置全新的音乐应用设计。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/TWEAKS2.png)
Youtube上传工具内容快照自动旋转设置全新的音乐应用设计。
Ron Amadeo供图
安卓1.5给予了YouTube应用向其网站上传视频的能力。上传通过从相册中分享视频到YouTube应用来完成或从YouTube应用中直接打开一个视频。这将会打开一个上传界面用户在这里可以设置像视频标题标签和权限这样的选项。照片可以以类似的方式上传到Picasa一个谷歌建立的图片网站。
整个系统的调整没有多少。现在喜爱的联系人在联系人列表中可以显示图片(尽管常规联系人还是没有图片)。第三张截图展示了设置中全新的自动旋转选项——这个版本同样也是第一个支持基于从设备内部传感器读取的数据自动切换方向的版本。
> #### 谷歌地图是第一个登陆谷歌市场的内置应用 ####
>
> 尽管这篇文章为了简单起见主要以安卓版本顺序来组织应用更新但还是有一些在这时间线之外的东西值得我们特别注意一下。2009年6月14日谷歌地图成为第一个通过谷歌市场更新的预置应用。尽管其它的所有应用更新还是要求一个完整的系统更新地图从系统中脱离了出来只要新特性已经就绪就可以随时接收升级周期之外的更新。
>
> 将应用从核心系统分离发布到安卓市场上将成为谷歌前进的主要关注点。总的来说OTA更新是个重大的主动改进——这需要OEM厂商和运营商的合作二者都是拖着后退的角色。更新同样没有做到到达每个设备。今天谷歌市场给了谷歌一个与每个安卓手机之间的联系而没有了这样的外界干扰。
>
> 然而这是后来才需要考虑的问题。在2009年谷歌只有两部裸机需要支持而且早期的安卓运营商似乎对谷歌的升级需要反应积极。这些早期的行动对谷歌部分来说将被证明是非常积极的决定。一开始公司只在最重要的应用——地图和Gmail上——走这条路线但后来它将大部分预置应用导入安卓市场。后来的举措比如Google Play服务甚至将应用API从系统移除加入了谷歌商店。
>
> 至于这时的新地图应用,得到了一个新的路线界面,此外还有提供公共交通和步行方向的能力。现在,路线只有个朴素的黑色列表界面——逐向风格的导航很快就会登场。
>
> 2009年6月同时还是苹果发布第三代iPhone——3GS——以及第三版iPhone OS的时候。iPhone OS 3的主要特性大多是追赶上来的项目比如复制/粘贴和对彩信的支持。苹果的硬件依然是更好的软件更流畅更整合还有更好的设计。尽管谷歌疯狂的开发步伐使得它不得不走上追赶的道路。iPhone OS 2是在安卓0.5的Milestone 5版本之前发布的在iOS一年的发布周期里安卓发布了五个版本。
![HTC Magic第二部安卓设备第一个不带实体键盘的设备。](http://cdn.arstechnica.net/wp-content/uploads/2014/04/htc-magic-white.jpg)
HTC Magic第二部安卓设备第一个不带实体键盘的设备。
HTC供图
纸杯蛋糕在改进安卓上做了巨大的工作特别是从硬件方面。虚拟键盘意味着不再需要实体键盘。自动旋转使得系统更加接近iPhone屏幕上的虚拟快门按键同样也意味着实体相机按键变成了可选选项。1.5发布后不久,第二部安卓设备的出现将会展示出这个平台未来的方向:HTC Magic。Magic上图没有实体键盘或相机按钮。它是没有间隙没有滑动结构的平板状设备依赖于安卓的虚拟按键来完成任务。
安卓旗舰机开始可能有着最多按键——一个实体qwerty键盘——后来随着时间流逝开始慢慢减少按键数量。而Magic是重大的一步去除了整个键盘和相机按钮它仍然使用通话和挂断键四个系统键以及轨迹球。
----------
![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg)
[Ron Amadeo][a] / Ron是Ars Technica的评论编缉专注于安卓系统和谷歌产品。他总是在追寻新鲜事物还喜欢拆解事物看看它们到底是怎么运作的。
[@RonAmadeo][t]
--------------------------------------------------------------------------------
via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/8/
译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://en.wikipedia.org/wiki/Diacritic
[a]:http://arstechnica.com/author/ronamadeo
[t]:https://twitter.com/RonAmadeo

View File

@ -0,0 +1,144 @@
第七部分 - 使用 Git 管理二进制大对象
=====================
通过这系列的前六篇文章,我们已经学会使用 Git 来对文本文件进行版本控制的管理。不禁要问还有二进制文件呢也可进行进行版本控制吗答案是肯定的Git 已经有了扩展可以处理像多媒体文件这样的二进制大对象块。因此,今天我们会学习使用 Git 来管理所谓的二进制资产。
似乎大家都认可的事就是 Git 对于大的二进制对象文件支持得不好。要记住,二进制大对象与大文本文件是不同的。虽然 Git 对大型的文本文件版本控制毫无问题,但是对于不透明的二进制文件起不了多大作用,只能把它当作一个大的实体黑盒来提交。
设想这样的场景,有一个另人兴奋的第一人称解密游戏,您正在为它制作复杂的 3D 建模,源文件是以二进制格式保存的,最后生成一个 1G 大小的的文件。您提交过一次,在 Git 源仓库历史中有一个 1G 大小的新增提交。随后,您修改了下模型人物的头发造型,然后提交更新,因为 Git 并不能把头发和头部及模型中其余的部分离开来,所以您仅仅只能又提交 1G 的量。接着,您改变了模型的眼睛颜色,提交这部分更新:又是 G 字节的提交量。对一个模型的一些微小修改,就会导致三个 G 字节的量提交。对于想对一个游戏所有资源进行版本控制这样的级别,这是个严重的问题。
对比如 .obj 这种格式的文本文件,和其它模块文件一样,都是一个提交就存储所有更新修改状态,不同的是 .obj 文件是一系列描述模型生成目标的纯文本行。如果您修改了模型并保存出成为 .obj 文件Git 可以逐行读取这两个文件,然后创建一个差异版本,得到一个相当小的提交。模块越精致,提交就越小,这就是精典的 Git 用例。虽然文件本身很大,但 Git 使用覆盖或稀疏存储的方法来构建当前数据使用状态的完整图案。
然而,不是所有的都是纯文本的,但都要使用 Git。所以需要解决方案其实有几个已经浮现了。
[OSTree](https://ostree.readthedocs.io/en/latest/) 是GNOME 项目用的,旨在管理操作系统的二进制文件。它不适用于这里,所以我直接跳过。
[Git 大文件存储](https://git-lfs.github.com/)(LFS) 是在 GitHub 上的一个开源项目,是从 git-media 项目中分支出来的。[git-media](https://github.com/alebedev/git-media) 和 [git-annex](https://git-annex.branchable.com/walkthrough/) 是 Git 对于管理大文件的扩展。它们是对同一问题的两种不同的解决方案,各有优点。虽然它们都不是官方的项目,但在我看来,都是独一无二的,体现在:
* git-media 是一个集中模式,有一个公共资源的存储库。您可以告诉告诉 git-media 大文件需要存储的位置,是在硬盘驱动器、服务器还是在云存储服务器,项目中的每个用户都将该位置视为大型资产的中心主位置。
* git-annex 更侧重于分布模式。用户各自创建存储库,每个存储库都有一个存储大文件的本地目录 .git/annex。annexes 会定期同步,只要有需要,每个用户都可以访问到所有的资源。除非是特别配置,否则 git-annex 优先使用本地存储,再使用外部存储。
基于这些选项,我已经在生产中使用了 git-media 和 git-annex那么下面会向你们概述其工作原理。
## git-media
git-media 使用的是 Ruby 语言,所以首先要安装 gem(译者注Gem是基于Ruby的一些开发工具包)。安装说明在[网站](https://github.com/alebedev/git-media)上。想使用 git-meida 的用户都需要安装它,因为 gem 是跨平台的工具,所以在各平台都适用。
安装完 git-media 后,需要对 Git 的配置选择进行设置。在每台机器上只需要配置一次。
```
$ git config filter.media.clean "git-media filter-clean"
$ git config filter.media.smudge "git-media filter-smudge"
```
在要使用 git-media 的每个存储库中,设置一个属性以将刚刚创建的过滤器合并到要您想分类的介质的文件类型里。别被这种术语混淆。一个更好的术语是“资产”,因为“媒体”通常的意思是音频、视频和照片,但您可能很容易的也会将 3D 模型,烘焙和纹理等归类为媒体。
例如:
```
$ echo "*.mp4 filter=media -crlf" >> .gitattributes
$ echo "*.mkv filter=media -crlf" >> .gitattributes
$ echo "*.wav filter=media -crlf" >> .gitattributes
$ echo "*.flac filter=media -crlf" >> .gitattributes
$ echo "*.kra filter=media -crlf" >> .gitattributes
```
当您对这些类型的文件分级时,文件会被复制到 .git/media 目录。
假设在服务器已经有了一个 Git 源仓库,最后一步就告诉源仓库“母版”所在的位置,也就是,当媒体文件被推送给所有用户共享时,媒体文件将会存储的位置。在仓库的 .git/config 文件中设置,替换成您的用户名、主机和路径:
```
[git-media]
transport = scp
autodownload = false #默认为 true拉取资源
scpuser = seth
scphost = example.com
scppath = /opt/jupiter.git
```
如果您的服务器上有复杂的 SSH 设置,例如非标准端口或非默认 SSH 密钥文件的路径,请使用 .ssh/config 为主机设置默认配置。
git-media 的生命周期和普通的一样,可以把它当成普通文件和 blobs 文件一样对待,一样进行 commit 操作。操作流程中唯一的不同就是在某些时候您应该将您的资产库er、media 等)同步到共享存储库中。
当要为团队发布资源或备份资料时,请使用如下命令:
```
$ git media sync
```
使用 git-media 时, 要使发变更的版本(例如,一个已经美声过的音频文件,或者一个已经完成的遮罩绘画,或者一个已经被颜色分级的视频文件)来替换一个文件,您必须明确的告诉 Git 要更新操作。这将覆盖 git-media 的默认设置,如果远程已经存在此文件,就不会重新复制一份文件:
```
$ git update-index --really-refresh
```
当您团队的其他成员(或是您本人,在其它机器上)克隆本仓库时,如果没有在 .git/config 中把 autodownload 选择设置为 true 的话,默认是不会下载资源的。但 git-media 的一个同步命令可解决所有问题。
## git-annex
git-annex 的处理流程略微的有些不同,默认是使用本地仓库的,但基本的思想都一样。您可以从分布的仓库中安装 git-annex或者根据需要从网站上下载安装。与git-media 一样,任何使用 git-annex 的用户都必须在其机器上安装上。
其初始化设置比 git-media 都简单。运行如下命令,其中替换成您的路径,就可以在您的服务器上创建好裸存储库:
```
$ git init --bare --shared /opt/jupiter.git
```
然后克隆到本地计算机,把它标记为 git-annex 的初始路径:
```
$ git clone seth@example.com:/opt/jupiter.clone
Cloning into 'jupiter.clone'...
warning: You appear to have clonedan empty repository.
Checking connectivity... done.
$ git annex init "seth workstation"
init seth workstation ok
```
不要使用过滤器来区分媒体资源或大文件,您可以使用 git annex 命令来配置归类大文件:
```
$ git annex add bigblobfile.flacadd bigblobfile.flac
(checksum) ok(Recording state in Git...)
```
跟普通文件一样进行提交操作:
```
$ git commit -m 'added flac source for sound fx'
```
但是推送操作是不同的,因为 git annex 使用自己的分支来跟踪资源。您首次推送可能需要 -u 选项,具体取决于您如何管理您的存储库:
```
$ git push -u origin master git-annexTo seth@example.com:/opt/jupiter.git*
[new branch] master -> master*
[new branch] git-annex -> git-annex
```
和 git-media 一样,普通的 git push 命令是不会拷贝资料到服务器的,仅仅只是发送了相关的消息,要真正分享文件,需要运行同步命令:
```
$ git annex sync --content
```
如果别人已经提交了共享资源您需要拉取它们git annex sync 命令将提示您本地不存在,但在服务器上存在的资源,并检出到本地。
git-media 和 git-annex 都非常灵活,都可以使用本地存储库来代替服务器,所以它们也常用于管理私有的本地项目。
Git 是一个非常强大和扩展性非常强的系统应用软件,我们应该毫不犹豫的使用它。现在就开始试试吧!
--------------------------------------------------------------------------------
via: https://opensource.com/life/16/8/how-manage-binary-blobs-git-part-7
作者:[Seth Kenlon][a]
译者:[runningwater](https://github.com/runningwater)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth

View File

@ -0,0 +1,165 @@
如何在 LINUX 和 WINDOWS 之间共享 STEAM 的游戏文件
============
[![如何在 LINUX 和 WINDOWS 之间共享 STEAM 的游戏文件](https://itsfoss.com/wp-content/uploads/2016/10/share-games-linux-windows-steam.jpg)][16]
简介:这篇详细的指南将向你展示如何在 Linux 和 Windows 之间共享 Steam 的游戏文件以节省下载的总用时和下载的数据量。
假如你决心成为一名 Linux 平台上的玩家,并且在 [Steam][15] 上拥有同时支持 Linux 和 Windows 平台的游戏,或者基于上面同样的原因,拥有双重启动的系统,则你可以考虑看看这篇文章。
我们中的许多玩家都拥有双重启动的 Linux 和 Windows。有些人只拥有 Linux 系统,但同时拥有当前还没有被 Linux 平台上的 Steam 支持的游戏。所以我们同时保留这两个系统以便我们可以在忽略平台的前提下玩我们喜爱的游戏。
幸运的是 [Linux gaming][13] 出现了,越来越多在 Windows 平台上受欢迎的 Steam 游戏在 Linux 平台上的 Steam 中被开发了出来。
我们中的许多人喜欢备份我们的 Steam 游戏,使得我们不再苦苦等待游戏下载完成。这些游戏很大程度上是 Windows 平台下的 Steam 游戏。
现在,很多游戏也已经登陆了 [Linux 平台上的 Steam][12],例如奇异人生、古墓丽影 2013、中土世界魔多阴影、幽浮未知敌人、幽浮 2、与日赛跑、公路救赎、燥热 等等,并且[这份名单一直在增长][11]。甚至还有 [杀出重围:人类分裂][10] 和 [疯狂的麦克斯][9] !!!在一些游戏的 Windows 版发布之后,现在我们不必再等候多年,而只需等待几月左右,便可以听到类似的消息了,这可是大新闻啊!
下面的实验性方法将向你展示如何使用你现存的任何平台上游戏文件来在 Steam 上恢复游戏的大部分数据。对于某些游戏,它们在两个平台下有很多相似的文件,利用下面例子中的方法,将减少你在享受这些游戏之前的漫长的等待时间。
在下面的方法中,我们将一步一步地尝试利用 Steam 自己的备份与恢复或者以手工的方式来达到我们的目的。当涉及到这些方法的时候,我们也将向你展示这两个平台上游戏文件的相同和不同之处,以便你也可以探索并做出你自己的调整。
下面的方法中,我们将使用 Ubuntu 14.04 LTS 和 Windows 10 来执行备份与恢复 Steam 的测试。
### #1 Steam 自己的备份与恢复
当我们尝试使用 Windows 平台上 Steam 中《燥热》这个游戏的备份(这些加密文件是 .csd 格式Linux 平台上的 Steam 不能识别这些文件,并重新开始下载整个游戏了!甚至在做了验证性检验后,仍然有很大一部分文件不能被 Steam 识别出来。我们在 Windows 上也做了类似的操作,但结果是一样的!
![steam-restore-failure-from-windows-backup](https://itsfoss.com/wp-content/uploads/2016/10/steam-restore-failure-from-windows-backup.jpeg)
![steam-validation-failure](https://itsfoss.com/wp-content/uploads/2016/10/steam-validation-failure.jpeg)
现在到了我们用某些手工的方法来共享 Windows 和 Linux 上的 Steam 游戏的时刻了!
### #2 : 手工方法
首先,让我们先看看 Linux 下这些游戏文件所处的位置(用户目录在 /home 中):
这是 Linux 平台上 Steam 游戏的默认安装位置。 `.local``.steam` 目录默认情况下是不可见的,你必须将它们显现出来。我们将推荐拥有一个自定义的 Steam 安装位置以便更容易地处理这些文件。这里 `SUPERHOT.x86_64` 是 Linux 下原生的可执行文件,与 Windows 中的 `.exe` 文件类似。
![superhot_data1](https://itsfoss.com/wp-content/uploads/2016/10/superhot_data1-e1477112816241.jpeg)
下图展示的位置包含我们需要的大部分文件(在 Windows 和 Linux 平台上相同):
![superhot_data2](https://itsfoss.com/wp-content/uploads/2016/10/superhot_data2.jpeg)
下面我们来看看这些 `.acf` 格式的文件。“appmanifest_322500.acf”便是那个我们需要的文件。编辑并调整这个文件对 Steam 识别在 “common”这个目录下现存的非加密的原始文件备份大有裨益
![steam_linux_manifests](https://itsfoss.com/wp-content/uploads/2016/10/steam_linux_manifests-e1477112765133.jpeg)
为了确认这个文件的相似性,用编辑器打开这个文件并检查它。我们越多地了解这个文件越好。这个[链接是来自 Steam 论坛上的一个帖子][8],它展示了这个文件的主要意义。它类似于下面这样:
```
“AppState”
{
“appid” “322500”
“Universe” “1”
“name” “SUPERHOT”
“StateFlags” “4”
“installdir” “SUPERHOT”
“LastUpdated” “1474466631”
“UpdateResult” “0”
“SizeOnDisk” “4156100762”
“buildid” “1234395”
“LastOwner” “<SteamID>
“BytesToDownload” “909578688”
“BytesDownloaded” “909578688”
“AutoUpdateBehavior” “0”
“UserConfig”
{
“Language” “english”
}
“MountedDepots”
{
“322503” “1943012315434556837”
}
}
```
在 Linux 平台上卸载游戏后我们再进行测试。现在让我们看看在 Windows 10 上相同的游戏安装目录里包含哪些内容:
![superhot-windows-steam](https://itsfoss.com/wp-content/uploads/2016/10/superhot-windows-steam.jpeg)![superhot-windows-steam2](https://itsfoss.com/wp-content/uploads/2016/10/superhot-windows-steam2.jpeg)
我们复制了 “SUPERHOT”目录和 .acf 格式的文件(这个文件在 Windows 的 Steam 上格式是一样的)。在复制 .acf 文件和游戏目录到 Linux 中 Steam 它们对应的位置时,我们需要确保 Steam 没有在后台运行。
在转移完成之后,我们运行 Steam 并看到了这个:
![most-files-recognised-on-steam](https://itsfoss.com/wp-content/uploads/2016/10/most-files-recognised-on-steam.jpeg)
所以下图显示只需要有 235.5 MB 的文件需要下载,而不是整个 867.4 MB这意味着超过 70% 的文件已经被 Steam 识别了:) !相对来说,节省了一笔大量的时间开销。当然不同的游戏可能有所不同,但对于那些网速居于平均水平或以下的玩家来说,这种方法绝对值得一试,尤其是考虑到当前那些 40-50 GB 大小的重量级游戏。
我们还进行了其他几种尝试:
* 我们尝试使用 Linux 下原有的清单文件(.acf)和来自 Windows 的手工备份文件,但结果是 Steam 重新开始下载游戏。
* 我们看到当我们将 “SUPERHOT_Data” 这个目录中的 “SH_Data” 更换为 Windows 中的对应目录时,同上面的一样,也重新开始下载整个游戏。
### 理解清单目录的一个尝试
清单目录绝对可以被进一步地被编辑和修改以此来改善上面的结果,使得 Steam 检测出尽可能多的文件。
在 Github 上有一个[项目][7],包含一个可以生成这些清单文件的 python 脚本。任何 Steam 游戏的 AppID 可以从[SteamDB][6] 上获取到。知晓了游戏的 ID 号后,你便可以用你喜爱的编辑器以下面的格式创建你自己的清单文件 appmanifest_<AppID>.acf”。在上面手工方法中我们可以看到 SUPERHOT 这个游戏的 AppID 是 322500所以对应的清单文件名应该是 appmanifest_322500.acf。
下面以我们知晓的信息来尝试对该文件进行一些解释:
```
“AppState” // 应用(游戏)的状态
“appid” “322500” // 游戏的 AppID
“Universe” “1”
“name” “SUPERHOT” // 游戏的名称
“StateFlags” “4”
“installdir” “SUPERHOT” // 安装目录的名称
“LastUpdated” “1474466631”
“UpdateResult” “0”
“SizeOnDisk” “4156100762”
“buildid” “1234395”
“LastOwner” “<SteamID>” // 唯一的帐号拥有者的 <SteamID>
“BytesToDownload” “909578688” // 将这个数字除以 1073741824(1024 x 1024 x 1024) 便可以计算出还需要下载的数据大小,以 GB 记。
“BytesDownloaded” “909578688” // 已下载数据的大小, 以 Bytes 记。
“AutoUpdateBehavior” “0” // 当这个设为 0 时,该游戏将自动升级。
“UserConfig” // 用户的配置信息
{
“Language” “english”
}
“MountedDepots” // 这个部分大多与游戏的 DLC 相关。
{
“322503” “1943012315434556837”
}
}
```
通过计算下载的数据的大小,你可以将它与 Steam 展现的信息进行比较并进行更多的调整。
假如你知道更多关于清单文件或者手工方式中另外可以改进的方法,请在评论中分享给大家。我们打算去发现更多的关于这些文件格式的信息,当前在官方的 [Valve 开发者社区][5] 或者 [ Steam 论坛][4] 上我们还没有发现完整的文档。
至少现在为止,这些便是我们知道的在 Linux 和 Windows 之间分享 Steam 游戏的最好方法了。
--------------------------------------------------------------------------------
via: https://itsfoss.com/share-steam-files-linux-windows/
作者:[Avimanyu Bandyopadhyay][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/avimanyu/
[1]:http://pinterest.com/pin/create/button/?url=https://itsfoss.com/share-steam-files-linux-windows/&description=How+To+Share+Steam+Game+Files+Between+Linux+And+Windows&media=https://itsfoss.com/wp-content/uploads/2016/10/share-games-linux-windows-steam.jpg
[2]:https://www.linkedin.com/cws/share?url=https://itsfoss.com/share-steam-files-linux-windows/
[3]:https://twitter.com/share?original_referer=https%3A%2F%2Fitsfoss.com%2F&source=tweetbutton&text=How+To+Share+Steam+Game+Files+Between+Linux+And+Windows&url=https%3A%2F%2Fitsfoss.com%2Fshare-steam-files-linux-windows%2F&via=%40itsfoss
[4]:http://steamcommunity.com/discussions/
[5]:https://developer.valvesoftware.com/wiki/Main_Page
[6]:https://steamdb.info/
[7]:https://github.com/dotfloat/steam-appmanifest
[8]:https://steamcommunity.com/app/292030/discussions/0/357286663676318082/
[9]:http://www.kotaku.com.au/2016/10/avalanche-studios-mad-max-arrives-on-linux-and-mac-os/
[10]:https://itsfoss.com/deus-ex-mankind-divided-linux/
[11]:https://itsfoss.com/best-linux-games/
[12]:https://itsfoss.com/install-steam-ubuntu-linux/
[13]:https://itsfoss.com/linux-gaming-guide/
[14]:https://itsfoss.com/guide-install-elementary-os-luna/
[15]:http://store.steampowered.com/
[16]:https://itsfoss.com/wp-content/uploads/2016/10/share-games-linux-windows-steam.jpg

View File

@ -1,108 +0,0 @@
在Linux系统下提取和复制ISO镜像文件的3种方法
============================================================
假设你的Linux服务器上有一个超大的ISO镜像文件你想要打开它然后提取或者复制其中的一个文件。你会怎么做呢
其实在Linux系统里有很多方法来实现这个要求。
比如说你可以使用传统的mount命令以只读方式把ISO镜像文件加载为loop设备然后再把文件复制到另一个目录。
### 在Linux系统下提取ISO镜像文件
为了完成该测试你得有一个ISO镜像文件我使用ubuntu-16.10-server-amd64.iso系统镜像文件以及用于挂载和提取ISO镜像文件的目录。
首先使用如下命令创建一个挂载目录来挂载ISO镜像文件
```
$ sudo mkdir /mnt/iso
```
目录创建完成后你就可以运行如下命令很容易地挂载ubuntu-16.10-server-amd64.iso系统镜像文件并查看其中的内容。
```
$ sudo mount -o loop ubuntu-16.10-server-amd64.iso /mnt/iso
$ ls /mnt/iso/
```
[
![Mount ISO File in Linux](http://www.tecmint.com/wp-content/uploads/2016/10/Mount-ISO-File-in-Linux.png)
][1]
在Linux系统里技巧ISO镜像
Now you can go inside the mounted directory (/mnt/iso) and access the files or copy the files to `/tmp`directory using [cp command][2].
现在你就可以进入到挂载目录/mnt/iso里查看文件或者使用cp命令把文件复制到/tmp目录了。
```
$ cd /mnt/iso
$ sudo cp md5sum.txt /tmp/
$ sudo cp -r ubuntu /tmp/
```
[
![Copy Files From ISO File in Linux](http://www.tecmint.com/wp-content/uploads/2016/10/Copy-Files-From-ISO-File-in-Linux.png)
][3]
在Linux系统中复制ISO镜像里的文件
注意:-r选项用于递归复制目录里的内容。如有必要你也可以监控复制命令的完成进度。
### 使用7zip命令提取ISO镜像里的内容
如果不想挂载ISO镜像你可以简单地安装一个7zip工具这是一个免费而且开源的解压缩软件用于压缩或解压不同类型格式的文件包括TAR,XZ,GZIP,ZIP,BZIP2等等。
```
$ sudo apt-get install p7zip-full p7zip-rar [On Debian/Ubuntu systems]
$ sudo yum install p7zip p7zip-plugins [On CentOS/RHEL systems]
```
7zip软件安装完成后你就可以使用7z命令提取ISO镜像文件里的内容了。
```
$ 7z x ubuntu-16.10-server-amd64.iso
```
[
![7zip - Extract ISO File Content in Linux](http://www.tecmint.com/wp-content/uploads/2016/10/Extract-ISO-Content-in-Linux.png)
][5]
使用7zip工具在Linux系统下提取ISO镜像里的文件
注意跟Linux的mount命令相比起来7zip在压缩和解压缩任何格式的文件时速度更快更智能。
### 使用isoinfo命令来提取ISO镜像文件内容
虽然isoinfo命令是用来以目录的形式列出iso9660镜像文件的内容但是你也可以使用程序来提取文件。
我说过isoinfo程序会显示目录列表因此先列出ISO镜像文件的内容。
```
$ isoinfo -i ubuntu-16.10-server-amd64.iso -l
```
[
![List ISO Content in Linux](http://www.tecmint.com/wp-content/uploads/2016/10/List-ISO-Content-in-Linux.png)
][6]
Linux里列出ISO文件的内容
现在你可以按如下的方式从ISO镜像文件中提取单文件
```
$ isoinfo -i ubuntu-16.10-server-amd64.iso -x MD5SUM.TXT > MD5SUM.TXT
```
注意:必须使用重定向参数 -x 来提取指定文件
[
![Extract Single File from ISO in Linux](http://www.tecmint.com/wp-content/uploads/2016/10/Extract-Single-File-from-ISO-in-Linux.png)
][7]
从ISO镜像文件中提取单文件
就到这里吧其实还有很多种方法来实现这个要求如果你还知道其它有用的命令或工具来提取复制出ISO镜像文件中的文件请在下面的评论中跟大家分享下。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/extract-files-from-iso-files-linux
作者:[Ravi Saive][a]
译者:[rusking](https://github.com/rusking)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -3,23 +3,21 @@
![在 Linux 下生成一个高强度密码](https://www.ostechnix.com/wp-content/uploads/2016/11/password-720x340.jpg)
图片来源: Google.
昨天,我们已经分享了如何 [要求用户在基于 DEB 的系统中使用一个高强度的密码][8],例如在 DebianUbuntuLinux Mint Elementary OS 等系统中。那么,你可能会疑惑一个高强度的密码究竟是什么样的呢?怎么才能生成一个那样的密码呢?不用担心,下面我们将介绍 4 种简单方法让你在 Linux 中生成一个高强度密码。当然,已经有很多免费的工具或者方式来完成这个任务,但这里我们仅考虑那些简单直接的方法。下面就让我们开始吧。
下载 – [免费电子书“Ubuntu 16.04 入门”][7]
前一段时间,我们已经分享了如何 [强制用户在基于 DEB 的系统中使用高强度的密码][8] ,例如 DebianUbuntuLinux Mint Elementary OS 等系统中。那么,你可能会疑惑一个高强度的密码究竟是什么样的呢?怎么才能生成一个那样的密码呢?不用担心,下面我们将介绍 4 种简单方法让你在 Linux 中生成一个高强度密码。当然,已经有很多免费的工具或者方式来完成这个任务,但这里我们仅考虑那些简单直接的方法。下面就让我们开始吧。
### 1. 在 Linux 中使用 OpenSSL 来生成一个高强度密码
OpenSSL 在所有的类 Unix 发行版本SolarisMac OS X 和 Windows 中都可以获取到。
要使用 OpenSSL 生成一个随机密码,唤起你的终端并运行下面的命令:
要使用 OpenSSL 生成一个随机密码,打开终端并运行下面的命令:
```
openssl rand 14 -base64
```
上面的 `-base64` 字符串将确保生成的密码可以被键盘敲出来。
上面的 `-base64` 参数将确保生成的密码可以被键盘敲出来。
样例输出
输出样例:
```
wXCHXlxuhrFrFMQLqik=
@ -29,7 +27,7 @@ wXCHXlxuhrFrFMQLqik=
![sksk_003](http://www.ostechnix.com/wp-content/uploads/2016/11/sk@sk_003.png)
][6]
上面的命令将生成一个随机的、长度为 14 个字符的高强度密码。记住我们强烈推荐你生成 14 个字符的密码。
上面的命令将生成一个随机的、长度为 14 个字符的高强度密码。我们强烈推荐你生成 14 个字符的密码。
当然你可以使用 OpenSSL 生成任意长度的密码。
要了解更多信息,可以参考联机手册:
@ -60,13 +58,13 @@ sudo yum install pwgen
sudo pacman -S pwgen
```
一旦 pwgen 安装完成后,便可以使用下面的命令来生成 1 个长度为 14 个字符的随机高强度密码:
pwgen 安装完成后,便可以使用下面的命令来生成个长度为 14 个字符的随机高强度密码:
```
pwgen 14 1
```
样例输出
输出样例:
```
Choo4aicozai3a
@ -76,25 +74,25 @@ Choo4aicozai3a
![sksk_004](http://www.ostechnix.com/wp-content/uploads/2016/11/sk@sk_004.png)
][5]
上面的命令将只生成 1 个长度为 14 个字符的密码,如果要生成 2 个长度为 14 个字符的不同密码,则可以运行:
上面的命令将只生成 一个 14 位字符长的密码,如果要生成两个不同的 14 位字符长的密码,则可以运行:
```
pwgen 14 2
```
样例输出
输出样例:
```
xee7seerez6Kau Aeshu0geveeji8
```
如果要生成 100 个(尽管可能没有必要生成那么多)长度为 14 个字符的不同密码,则可以运行:
如果要生成 100 个(尽管可能没有必要生成那么多)不同的 14 位字符长的密码,则可以运行:
```
pwgen 14
```
样例输出
输出样例:
```
kaeNg3EiVei4ei Oo0iehiJaix5Ae aenuv2eree2Quo iaT7zahH1eN2Aj Bie2owaiFahsie
@ -129,7 +127,7 @@ aiyoxeiva8Maih gieRahgh8anahM ve2ath9Eyi5iet quohg6ok3Ahgee theingaech5Nef
pwgen 14 1 -n 1
```
样例输出
输出样例:
```
xoiFush3ceiPhe
@ -150,7 +148,7 @@ xoiFush3ceiPhe
-s 或 --secure (生成完全随机的密码)
-B 或 --ambiguous (在密码中不包含双关词语
-B 或 --ambiguous (在密码中不包含难于区分的字母,如 0 和 o, 1 和 l
-h 或 --help (输出帮助信息)
@ -171,7 +169,7 @@ man pwgen
### 3. 在 Linux 中使用 GPG 来生成一个高强度密码
GPG (GnuPG or GNU Privacy Guard) 是一个免费的命令行程序,可以用于替代赛门铁克的 PGP 加密软件。在类 Unix 操作系统、Microsoft Windows 和 Android 中都可以获取到它。
GPG (GnuPG GNU Privacy Guard) 是一个免费的命令行程序,可以用于替代赛门铁克的 PGP 加密软件。在类 Unix 操作系统、Microsoft Windows 和 Android 中都可以获取到它。
要使用 PGP 生成 1 个长度为 14 个字符的高强度密码,请在终端中运行下面的命令:
@ -179,7 +177,7 @@ GPG (GnuPG or GNU Privacy Guard) 是一个免费的命令行程序,可以用
gpg --gen-random --armor 1 14
```
样例输出
输出样例:
```
DkmsrUy3klzzbIbavx8=
@ -201,7 +199,7 @@ Perl 在大多数 Linux 发行版本的默认软件仓库中都可以获取到
sudo apt-get install perl
```
在基于 RPM 的系统中安装 Perl ,可以运行:
在基于 RPM 的系统中安装 Perl可以运行
```
sudo yum install perl
@ -243,7 +241,7 @@ perl password.pl
使用你自己定义的文件名来替换上面命令中的 `password.pl`
样例输出
输出样例:
```
3V4CJJnYd
@ -255,14 +253,11 @@ perl password.pl
注: 我无法找到这个脚本的原有作者,假如你知道作者的名字,请在下面的评论部分让我知晓,我将在这篇指南中添加上该作者的名字。
Please note that you must memorize or keep the passwords you have generated in a safe place in your computer. I recommend you to memorize the password and delete it from your system. It is much better in case your system is compromised by any hackers.
请注意:对于你生成的密码,你必须记住它,或者将它保存到你电脑中一个安全的地方。我建议你记住密码并将它从你的系统中删除,因为这总比你的系统被黑客控制要好。
请注意:对于生成的密码,你必须记住它,或者将它保存到电脑中一个安全的地方。我建议你记住密码并将它从系统中删除,因为这比你的系统被黑客控制要好的多。
伙计们,今天就是这么多了。不久我将带来另一篇有意思的文章。在此之前,敬请关注 OSTechNix。
伙计们,今天就是这么多了。不久我将带来另一篇有意思的文章。在此之前,敬请继续关注 OSTechNix。
Happy Weekend!
Cheers!!
--------------------------------------------------------------------------------
@ -272,7 +267,7 @@ via: https://www.ostechnix.com/4-easy-ways-to-generate-a-strong-password-in-linu
译者:[FSSlc](https://github.com/FSSlc)
校对:[校对者ID](https://github.com/校对者ID)
校对:[jasminepeng](https://github.com/jasminepeng)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@ -283,5 +278,4 @@ via: https://www.ostechnix.com/4-easy-ways-to-generate-a-strong-password-in-linu
[4]:http://www.ostechnix.com/wp-content/uploads/2016/11/sk@sk_005.png
[5]:http://www.ostechnix.com/wp-content/uploads/2016/11/sk@sk_004.png
[6]:http://www.ostechnix.com/wp-content/uploads/2016/11/sk@sk_003.png
[7]:http://ostechnix.tradepub.com/free/w_ubun08/prgm.cgi?a=1
[8]:https://www.ostechnix.com/force-users-use-strong-passwords-debian-ubuntu/

View File

@ -1,74 +0,0 @@
# 火狐是否在未经授权的情况下搜集您的数据?
![Mozilla Firefox collects your data](https://iwf1.com/wordpress/wp-content/uploads/2016/11/Mozilla-Firefox-collects-your-data-730x429.jpg)
使用Firefox Web浏览器打包的地理位置服务即使其被关闭也会在后台运行。
我们还没有从关于浏览器插件丑闻的新闻中恢复过来。插件原本目的是保卫隐私,**但现在却把信息卖给了第三方公司**。然而更令人愤怒的是其规模完全超出我们的预期。
**MLS**是Mozilla位置服务其架构类似于WIFI接入点、无线电基站和蓝牙信标可以让让设备通过网络确定其位置。
MLS非常像是Google位置服务后者是需要在Android设备上打开GPS并选择“高精度”模式时使用的服务。
那些曾经经历过GPS问题的人可能会知道这个模式是多么精确。
MLS服务除了能够准确地确定您的位置以外通过使用WiFi网络的服务能够收集两种个人身份信息包括
**对数据库做出贡献的用户**和**被扫描的WiFi设备的所有者**。
话虽这么说Mozilla也提到说你可以选择退出服务但你真的可以退出吗
### 当后台变成你隐私的展台
作为一个众包项目为了维护和发展MLSMozilla事实上非常依赖于用户的贡献因此他们开发了多种方法以便用户参与进来。
其中之一就是被终端用户使用的一款名为Stumbler的Android应用程序
> Mozilla Stumbler是一个开源的无线网络扫描器它为我们的crowd-sourced位置数据库收集GPS蜂窝和无线网络元数据。[1]
这样以来Stumbler不仅仅是一个独立的应用程序同时也是Firefox 在Android设备上提供的一种为MLS“贡献数据和增强功能”的服务。
该服务的问题在于它在后台运行,而大多数用户都不知道它,**即使您可能已经禁用它**。
根据Mozilla提供的信息 [1]要启用该服务您需要打开设置菜单在Firefox for Android版本中 - >打开隐私部分 - >滚动到底部以查看数据选择最后勾选Mozilla位置服务框。
[
![Mozilla Location Services is unchecked yet Stumbler is on](http://iwf1.com/wordpress/wp-content/uploads/2016/11/Mozilla-Location-Services-is-unchecked-yet-Stumler-is-on-730x602.jpg)
][3]
Mozilla定位服务尚未勾选但Stumbler已开启
实际上你会发现Stumbler服务**正在你的设备后台运行**这意味着它几乎不可见因为它没有接口即使MLS框未被选中即使所有的数据选择复选框都未选中甚至Firefox浏览器本身已被关闭。
显然停止stumbler的唯一方法是直接结束它。然而这样做你首先需要一种方法来检测它的运行和结束最终这只是一个设备重启前的临时解决方案。
### 如何保证安全
为了避免MLS收集您的数据仍然有一些方法值得您尝试一下希望这些方法不会像在Firefox for Android中的MLS复选框一样被Mozilla忽视。
您可以将您的无线网络SSID隐藏或者在SSID结尾添加“_nomap”,例如将您的SSID从“myWirelessNetwork”更名为“myWirelessNetwork_nomap”。这在向Mozilla的应用程序暗示您不希望参与他们的数据收集活动。
对于Android上的Stumbler服务由于是一个服务而不是进程您可能无法在运行的进程/最近的应用程序列表中看到它。 因此,使用专用应用程序关闭它或启用“开发人员选项”,并转到“运行服务” - >点击Firefox最后停止“stumbler”。
--------------------------------------------------------------------------------
via: https://iwf1.com/is-mozilla-firefox-collecting-your-data-without-your-consent/
作者:[Liron][a]
译者:[flankershen](https://github.com/flankershen)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://iwf1.com/is-mozilla-firefox-collecting-your-data-without-your-consent/
[1]:https://iwf1.com/shock-this-popular-browser-add-on-sells-your-browsing-history/
[2]:https://en.wikipedia.org/wiki/Crowdsourcing
[3]:http://iwf1.com/wordpress/wp-content/uploads/2016/11/Mozilla-Location-Services-is-unchecked-yet-Stumler-is-on.jpg