分类 桌面应用 下的文章

inkscape-gettingstarted

Inkscape 是一个流行的、功能齐全、自由而开源的矢量图形编辑器,它已经在 Fedora 官方仓库中。它特别适合创作 SVG 格式的矢量图形。Inkscape 非常适于创建和操作图片和插图,以及创建图表和用户界面设计。

cyberscoty-landscape-800px

使用 inkscape 创建的风车景色的插图

其官方网站的截图页上有一些很好的例子,说明 Inkscape 可以做些什么。 Fedora 杂志 Fedora Magazine 上的大多数精选图片也是使用 Inkscape 创建的,包括最近的精选图片:

communty

Fedora 杂志最近使用 Inkscape 创建的精选图片

在 Fedora 上安装 Inkscape

Inkscape 已经在 Fedora 官方仓库中了,因此可以非常简单地在 Fedora Workstation 上使用 Software 这个应用来安装它:

inkscape-gnome-software

另外,如果你习惯用命令行,你可以使用 dnf 命令来安装:

sudo dnf install inkscape

(开始)深入 Inkscape

当第一次打开程序时,你会看到一个空白页面,并且有一组不同的工具栏。对于初学者,最重要的三个工具栏是:Toolbar、Tools Control Bar、 Colour Palette:

inkscape_window

Toolbar提供了创建绘图的所有基本工具,包括以下工具:

  • 矩形工具:用于绘制矩形和正方形
  • 星形/多边形(形状)工具
  • 圆形工具:用于绘制椭圆和圆
  • 文本工具:用于添加标签和其他文本
  • 路径工具:用于创建或编辑更复杂或自定义的形状
  • 选择工具:用于选择图形中的对象

Colour Palette 提供了一种设置当前选定对象的颜色的快速方式。 Tools Control Bar 提供了工具栏中当前选定工具的所有设置。每次选择新工具时,Tools Control Bar 会变成该工具的相应设置:

绘图

接下来,让我们使用 Inkscape 绘制一个星星。 首先,从 Toolbar 中选择星形工具,然后在主绘图区域上单击并拖动。

你可能会注意到你画的星星看起来很像一个三角形。要更改它,请使用 Tools Control Bar 中的 Corners 选项,再添加几个点。 最后,当你完成后,在星星仍被选中的状态下,从 Palette(调色板)中选择一种颜色来改变星星的颜色:

inkscape-drawastar

接下来,可以在 Toolbar 中实验一些其他形状工具,如矩形工具,螺旋工具和圆形工具。通过不同的设置,每个工具都可以创建一些独特的图形。

在绘图中选择并移动对象

现在你有一堆图形了,你可以使用 Select 工具来移动它们。要使用 Select 工具,首先从工具栏中选择它,然后单击要操作的形状,接着将图形拖动到您想要的位置。

选择形状后,你还可以使用尺寸句柄调整图形大小。此外,如果你单击所选的图形,尺寸句柄将转变为旋转模式,并允许你旋转图形:

inkscape-movingshapes


Inkscape是一个很棒的软件,它还包含了更多的工具和功能。在本系列的下一篇文章中,我们将介绍更多可用来创建插图和文档的功能和选项。


作者简介:Ryan 是一名 Fedora 设计师。他使用 Fedora Workstation 作为他的主要桌面,还有来自 Libre Graphics 世界的最好的工具,尤其是矢量图形编辑器 Inkscape。


via: https://fedoramagazine.org/getting-started-inkscape-fedora/

作者:Ryan Lerch 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果你的手机有一个解锁的 bootloader 的话,你可以用 fastboot 命令来刷入原厂镜像。听起来这好像是外行弄不懂的东西,但是当你需要升级被 root 过的设备,修理坏掉的手机,恢复到原生系统,或者是比别人更早的享受 Android 更新时,它可是最好的办法。

ADB 类似,fastboot 是一个强大的 Android 命令行工具。这听起来可能会很恐怖 —— 别担心,一旦你了解了它,你就会知道 Android 的内部工作原理,以及如何解决最常见的问题。

关于三星设备的注释

下面的指南对于 Nexus、Pixel、HTC 以及 Motorola 的大多数设备,以及其他众多厂商的手机和平板电脑都适用。但是,三星的设备有自己的刷机软件,所以你的 Galaxy 设备并不支持 Fastboot。对于三星的设备,最好使用 Odin 来进行刷机工作,我们在下文的链接中提供了相关指南。

第一步 在你的电脑上安装 ADB 和 Fastboot

首先,你需要在你的电脑上安装 ADB 和 Fastboot,只有有了它们你才能使用 Fastboot 命令刷入镜像。网上有不少“一键安装版”或者“绿色版”的 ADB 和 Fastboot,但是我不建议安装这样的版本,它们没有官方版本更新那么快,所以可能不会完全兼容新版设备。

你最好从 Google 上安装 Android SDK Tools。这才是“真正的” ADB 和 Fastboot。安装 SDK Tools 可能需要一点时间,不过这等待是值得的。在下面的 方法 1 中,我会说明在 Windows, Mac,以及 Linux 中安装这个软件的方法,所以可以跳转到那里开始。

第二步 OEM 解锁 OEM Unlocking

为了能够使用 Fastboot 刷入镜像,你需要解锁你设备的 bootloader。如果你已经解锁,你可以跳过这步到第三步。

如果你的设备的 Android 版本在 6.0 及以上的话,在你解锁 bootloader 之前,你还需要开启一项设置。首先你需要开启 开发者选项 Developers Options 。开启之后,进入“开发者选项菜单”,然后开启 “OEM 解锁” 选项。之后就可以进行下一步了。

如果你的设备没有这个选项,那么你的设备的 Android 版本可能不是 6.0 或以上。如果这个选项存在但是是灰色的,这就意味着你的 bootloader 不能解锁,也就是说你不能使用 Fastboot 给你的手机刷入镜像。

第三步 进入 Bootloader 模式

在使用 Fastboot 软件之前,你还需要让你的设备进入 bootloader 模式。具体进入方式与你的设备有关。

对于大多数手机,你需要先完全关闭你的手机。在屏幕黑掉以后,同时按住开机键和音量向下键大约 10 秒。

如果这不起效的话,关掉手机,按住音量降低键。然后把手机用 USB 数据线连到电脑上,等上几秒钟。

如果还不起效的话,改按音量升高键,再试试第二种方法。

很快你就会看见像这样的 bootloader 界面:

看到这个界面之后,确保你的设备已经连接到电脑上。之后的工作就都是在电脑上完成了,把手机放在那里就成。

第四步 在你的电脑上为 ADB 打开一个命令行窗口

转到 ADB 和 Fastboot 的安装目录。对于 Windows 用户来说,这目录通常是 C:\Program Files (x86)\Android\android-sdk\platform-tools。 对于 Mac 和 Linux 用户,则取决于你安装此工具时将 ADB 解压的位置,所以如果你忘了位置的话,就在硬盘里搜索 platform-tools

在安装目录下,如果你使用 Windows PC 的话,按住键盘上的 Shift 键,在文件管理器的空白处单击右键,然后选择“在此处开启命令行窗口”。如果你用的是 Mac 或者 Linux,那么你仅仅需要打开一个终端,然后转到 platform-tools 下。

第五步 解锁 bootloader

这一步你仅仅需要做一次,所以如果你的 bootloader 已经解锁,你可以直接跳过这步。否则你还需要运行一条命令 —— 注意,这条命令会清空你设备上的所有数据

在输入命令之前,我需要说明下,下面的命令仅仅对 Windows 适用,Mac 用户需要在每条命令前加上一个句号和一个斜线(./),Linux 用户则需要加上一个斜线(/)。

所以,在 ADB Shell 里输入如下命令,然后按下回车键。

fastboot devices

如果程序输出了以 fastboot 结尾的一串字符,那就说明你的设备连接正常,可以继续操作。如果没有的话,回到第一步,检查你的 ADB 以及 Fastooot,是否正确安装,之后再确定设备是否如第三步所示进入了 bootloader 模式。

之后,解锁你的 bootloader。因为 Android 版本的差别,我们有两种方法来解决这个问题。

如果你的设备的 Android 版本是 5.0 或者更低版本 ,输入如下命令:

fastboot oem unlock

如果你的 Android 版本是 6.0 或更高的话,输入如下命令,然后按下回车:

fastboot flashing unlock

将解锁命令发送到 6.0 或者更高版本的 Android 手机上

这时,你的 Android 手机会问你是否确定要解锁 bootloader。确定你选中了 “Yes” 的选项,如果没有,使用音量键选中 “Yes”。然后按下电源键,你的设备将会开始解锁,之后会重启到 Fastboot 模式。

Nexus 6P 上的解锁菜单。图像来自 Dallas Thomas/Gadget Hacks

第六步 下载出厂镜像

现在你的 bootloader 已经解锁,准备好刷入出厂镜像了 -- 不过,你需要先下载镜像。下面是常规设备下载出厂镜像的链接。

使用上面的链接,在列表中定位你的设备型号,然后下载最新固件到计算机上。如果你的厂商不在列表中,可以试着用 “factory images for ” 进行 google 搜索。

第七步 刷入出厂镜像

现在该刷入镜像了。首先将从厂商网站下载的出厂镜像文件解压。我推荐 7-Zip ,它是免费的,支持大多数格式。

解压出厂镜像

下一步,把压缩包中内容移动到你的 ADB 安装文件夹。之后在这里打开一个命令行窗口。要得到更多信息,请回看第四步。

出厂镜像移动到 platform-tools 的文件

除了上面这些,你有两种刷入镜像的方法。我会在下文分开叙述。

方法一:使用 flash-all 脚本

大多数出厂镜像都会包含一个flash-all 脚本,可以让你一条命令就完成刷机过程。如果你试图让你的黑砖恢复正常的话,这是最简单的方法。但是这会让你的手机回到未 root 的状态,并会擦除所有数据,如果你不想这样的话,请选择方法二。

如果要运行 flash-all 脚本,输入如下命令,之后敲下回车:

flash-all

运行 "flash-all" 命令

这需要一点时间,当这步完成之后,你的手机应当自动重启,你可以享受 100% 原生固件。

方法二 手动解压刷入镜像

你可以手动刷入系统镜像。这么做需要额外的工作,但是它可以在不清除数据的情况下反 root,升级设备,或者救回你的砖机。

首先解压出厂镜像包中的所有压缩文件。通常压缩包里会包含三或四个层叠的文件夹,确认你已经解压了所有的压缩文件。之后把这些文件移动到 platform-tools —— 或者说,别把他们放到任何子文件夹下。

从出厂镜像包解压后的所有文件移至 platform-tools 目录

在这些文件里,有两个镜像是可以直接删除的:cache.imguserdata.img。就是这两个文件清除了你的设备数据,如果你不刷入这两个镜像,你的数据就不会消失。

在剩下的文件中,有六个镜像构成了 Android 的核心部分: bootbootloaderradiorecoverysystemvendor

boot 镜像包含了内核,如果你想要换掉一个不太好用的自制内核的话,你仅仅需要刷入这个文件。通过键入如下命令完成工作:

fastboot flash boot <boot image file name>.img

下一个就是 bootloader 镜像—— 也就是你用来刷入镜像的界面。如果你要升级 bootloader 的话,输入如下命令:

fastboot flash bootloader <bootloader image file name>.img

做完这步之后,你就可以用新版的 bootloader 刷入镜像。要想如此,输入:

fastboot reboot-bootloader

之后就是 radio 镜像。这个镜像控制你设备的网络连接,如果你手机的 Wi-Fi 或者移动数据出现了毛病,或者你仅仅想升级你的 radio,输入:

fastboot flash radio <radio image file name>.img

然后就是 recovery。根据你之前的修改,你可能选择刷或不刷这个镜像。例如,如果你已经刷入 TWRP 的话,刷入这个镜像覆盖你的修改,并替代为 stock recovery。如果你仅仅要升级你的已经被修改过的设备,你就可以跳过这步。如果你想要新版的 stock recovery ,键入:

fastboot flash recovery <recovery file name>.img

下一个可是个大家伙:system 镜像,它包含了 Android 系统所需的全部文件。它是升级过程中最重要的部分。

如果你不想升级系统,仅仅是要换回原生固件或者是救砖的话,你只需要刷入这个镜像,它包含了 Android 的所有文件。换言之,如果你仅仅刷入了这个文件,那你之前对这个设备做的修改都会被取消。

作为一个救砖的通用方法,以及升级 Android 的方法,键入:

fastboot flash system <system file name>.img

最后,就是 vendor 镜像。只有新版的设备才包含这个包。没有的话也不必担心,不过如果有这个文件的话,那它就包含了一些重要的文件,键入如下命令使其更新:

fastboot flash vendor <vendor file name>.img

在这之后,你就可以重新启动设备:

fastboot reboot

手动逐个刷入出厂镜像

至此,你的设备已经完全更新,如果你是救砖的话,你的手机应该已经完好的运行。如果你知道每个系统镜像怎么是干什么的话,你就会更好的理解 Android 是怎么运行的。

手动刷入镜像比做任何修改已经帮助我更多地理解了 Android。你会发现,Android 就是写进存储设备里的一堆镜像,现在你可以自己处理他们,你也能更好的处理有关 root 的问题。


via: http://android.wonderhowto.com/how-to/complete-guide-flashing-factory-images-using-fastboot-0175277/

作者:Dallas Thomas 译者:name1e5s 校对:jasminepeng

本文由 LCTT 组织编译,Linux中国 荣誉推出

如果你要换一部手机或升级你的系统,备份你的数据就变得至关重要。我们存储重要数据的位置之一就是我们的短信/彩信,不管是感情价值还是实用价值,备份它们是很有用的。

然而,不像照片、视频或音频文件可以相对容易地传输和备份,备份短信/彩信比较复杂,通常需要使用第三方 app 或服务。

为什么要手动备份

尽管现在有很多不同的 app 能够帮你备份短信/彩信,你可能因为以下原因,考虑自己动手备份它们:

  1. app 可能不能在所有的设备和安卓版本上都工作。
  2. app 可能把你的备份数据上传到云端, 有破坏你的内容安全的风险。
  3. 通过手动备份,你可以完全掌握你的数据通过哪里,走向哪里,备份过程中减少被间谍软件窥视的危险。
  4. 手动备份相比其他方法更省时,更省力,更直接

怎么手动备份短信/彩信?

要手动备份你的短信/彩信,你需要在你的电脑上安装一个叫做 adb 的安卓工具。

现在,需要重点知道的是,安卓把短信/彩信通常存储在一个叫做 mmssms.db 的数据库里。

因为在不同设备上这个数据库的位置可能不相同,而且,其他短信 app 会创建它们自己的数据库,比如 GO SMS 会创建 gommssms.db 数据库, 所以你需要做的第一件事是搜索这些数据库。

打开命令行工具(我使用了 Linux Terminal, 你也可以使用 Windows CMD 或 PowerShell )并运行以下命令:

注意: 以下是完成该任务的一系列命令,再后面是每个命令用途的解释。

adb root
adb shell
find / -name "*mmssms*"
exit

adb pull /PATH/TO/mmssms.db /PATH/TO/DESTINATION/FOLDER

解释

一开始我们使用 adb root 命令来以 root 模式启动 adb - 这样我们就有了读取系统保护文件的权限。

adb shell 用来进入设备的 shell。

然后, find 命令用来搜索数据库。(在我的例子中,我发现数据库在 /data/data/com.android.providers.telephony/databases/mmssms.db)

建议:如果你的终端输出了太多无关的结果,可以试试使用 find 的参数来精简结果。(具体参数可以搜索引擎查下)

安卓短信/彩信数据库

然后我们使用 exit 命令回退到我们的本地系统目录。

最后,使用 adb pull 把数据库文件复制到我们电脑的一个文件夹里。

现在,当你想要还原短信/彩信时,不管是还原到新的设备还是新的系统版本, 只要再次搜索新系统中短信/彩信的具体位置,并用我们备份的数据库替换它即可。

使用 adb push 来替换它,例如:

adb push ~/Downloads/mmssms.db /data/data/com.android.providers.telephony/databases/mmssms.db

via: https://iwf1.com/how-to-manually-backup-your-sms-mms-messages-on-android/

作者:Liron 译者:willcoderwang 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

简介:这篇详细的指南将向你展示如何在 Linux 和 Windows 之间共享 Steam 的游戏文件以节省下载的总用时和下载的数据量。我们将展示给你它是怎样为我们节约了 83% 的数据下载量。

假如你决心成为一名 Linux 平台上的玩家,并且在 Steam 上拥有同时支持 Linux 和 Windows 平台的游戏,或者基于同样的原因,拥有双重启动的系统,则你可以考虑看看这篇文章。

我们中的许多玩家都拥有双重启动的 Linux 和 Windows。有些人只拥有 Linux 系统,但同时拥有当前还没有被 Linux 平台上的 Steam 支持的游戏。所以我们同时保留这两个系统以便我们可以在忽略平台的前提下玩我们喜爱的游戏。

幸运的是 Linux 游戏社区应运而生,越来越多在 Windows 平台上受欢迎的 Steam 游戏也发布在 Linux 平台上的 Steam 中。

我们中的许多人喜欢备份我们的 Steam 游戏,使得我们不再苦苦等待游戏下载完成。这些游戏很大程度上是 Windows 平台下的 Steam 游戏。

现在,很多游戏也已经登陆了 Linux 平台上的 Steam,例如 奇异人生 Life is Strange 古墓丽影 2013 Tomb Raider 2013 中土世界:魔多阴影 Shadow of Mordor 幽浮:未知敌人 XCOM: Enemy Unknown 、幽浮 2、 与日赛跑 Race The Sun 公路救赎 Road Redemption 燥热 SUPERHOT 等等,并且这份名单一直在增长。甚至还有 杀出重围:人类分裂 Deus Ex: Mankind Divided 疯狂的麦克斯 Mad Max !!!在一些游戏的 Windows 版发布之后,现在我们不必再等候多年,而只需等待几月左右,便可以听到类似的消息了,这可是大新闻啊!

下面的实验性方法将向你展示如何使用你现存的任何平台上游戏文件来在 Steam 上恢复游戏的大部分数据。对于某些游戏,它们在两个平台下有很多相似的文件,利用下面例子中的方法,将减少你在享受这些游戏之前的漫长的等待时间。

在下面的方法中,我们将一步一步地尝试利用 Steam 自身的备份与恢复功能或者以手工的方式来达到我们的目的。当涉及到这些方法的时候,我们也将向你展示这两个平台上游戏文件的相同和不同之处,以便你也可以探索并做出你自己的调整。

下面的方法中,我们将使用 Ubuntu 14.04 LTS 和 Windows 10 来执行备份与恢复 Steam 的测试。

1、Steam 自身的备份与恢复

当我们尝试使用 Windows 平台上 Steam 中《 燥热 SUPERHOT 》这个游戏的备份(这些加密文件是 .csd 格式)时,Linux 平台上的 Steam 不能识别这些文件,并重新开始下载整个游戏了!甚至在做了验证性检验后,仍然有很大一部分文件不能被 Steam 识别出来。我们在 Windows 上也做了类似的操作,但结果是一样的!

现在到了我们用某些手工的方法来共享 Windows 和 Linux 上的 Steam 游戏的时刻了!

2、手工方法

首先,让我们先看看 Linux 下这些游戏文件所处的位置(用户目录在 /home 中):

这是 Linux 平台上 Steam 游戏的默认安装位置。 .local.steam 目录默认情况下是不可见的,你必须将它们显现出来。我们将推荐使用一个自定义的 Steam 安装位置以便更容易地处理这些文件。这里 SUPERHOT.x86_64 是 Linux 下原生的可执行文件,与 Windows 中的 .exe 文件类似。

下图展示的位置包含我们需要的大部分文件(在 Windows 和 Linux 平台上相同):

下面我们来看看这些 .acf 格式的文件。appmanifest_322500.acf 便是那个我们需要的文件。编辑并调整这个文件有助于 Steam 识别在 common 这个目录下现存的非加密的原始文件备份:

为了确认这个文件是一样的,用编辑器打开这个文件并检查它。我们越多地了解这个文件越好。这个链接是来自 Steam 论坛上的一个帖子,它展示了这个文件的主要意义。它类似于下面这样:

“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 目录和 .acf 格式的清单文件(这个文件在 Windows 的 Steam 上格式是一样的)。在复制 .acf 文件和游戏目录到 Linux 中 Steam 它们对应的位置时,我们需要确保 Steam 没有在后台运行。

在转移完成之后,我们运行 Steam 并看到了这个:

所以下图显示只需要有 235.5 MB 的文件需要下载,而不是整个 867.4 MB,这意味着超过 70% 的文件已经被 Steam 识别了:) !相对来说,节省了一笔大量的时间开销。当然不同的游戏可能有所不同,但对于那些网速居于平均水平或以下的玩家来说,这种方法绝对值得一试,尤其是考虑到当前那些 40-50 GB 大小的重量级游戏。

我们还进行了其他几种尝试:

  • 我们尝试使用 Linux 下原有的清单文件(.acf)和来自 Windows 的手工备份文件,但结果是 Steam 重新开始下载游戏。
  • 我们看到当我们将 SUPERHOT_Data 这个目录中的 SH_Data 更换为 Windows 中的对应目录时,同上面的一样,也重新开始下载整个游戏。

理解清单目录的一个尝试

清单目录绝对可以被进一步地被编辑和修改以此来改善上面的结果,使得 Steam 检测出尽可能多的文件。

在 Github 上有一个项目,包含一个可以生成这些清单文件的 python 脚本。任何 Steam 游戏的 AppID 可以从SteamDB 上获取到。知晓了游戏的 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 开发者社区 或者 Steam 论坛 上我们还没有发现完整的文档。

至少现在为止,这些便是我们知道的在 Linux 和 Windows 之间分享 Steam 游戏的最好方法了。


via: https://itsfoss.com/share-steam-files-linux-windows/

作者:Avimanyu Bandyopadhyay 译者:FSSlc 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

计算机术语中,批处理指的是用一个非交互式的程序来执行一序列的任务的方法。这篇教程里,我们会使用 Linux 命令行工具,并提供 4 种简单的处理方式来把一些 .PNG 格式的图像批量转换成 .JPG 格式的,以及转换回来。

虽然所有示例中我们使用的都是 convert 命令行工具,但是您也可以使用 mogrify 命令来达到同样的效果。

convert 命令的语法如下:

$ convert 输入选项 输入文件 输出选项 输出文件

mogrify 的为:

$ mogrify 选项 输入文件

注意:在使用 mogrify 命令时,默认情况下源图像文件会被转换后的新文件覆盖掉,您可以使用明确的操作选项来禁止覆盖,具体的选项可以在手册页中查询得到。

下面是把所有 .PNG 格式图像批量转换为 .JPG 格式的各种实现方式。如果想把 .JPG 转换为 .PNG 格式,也可使用这些命令,按需修改。

1、 使用 lsxargs 命令来转换 PNG 和 JPG

ls 命令 可以列出所有的 png 图像文件, xargs 使得可以从标准输入构建和执行 convert 命令,从而将所有 .png 图像转换为 .jpg 图像。

----------- 从 PNG 转换到 JPG ----------- 
$ ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"'

----------- 从 JPG 转换到 PNG ----------- 
$ ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'

关于上面命令选项的说明:

  1. -1 – 告诉 ls 每行列出一个图像名称的选项标识
  2. -n – 指定最多参数个数,例子中为 1
  3. -c – 指示 bash 运行给定的命令
  4. ${0%.png}.jpg – 设置新转换的图像文件的名字,% 符号用来删除源文件的扩展名

Convert PNG to JPG Format in Linux

Linux 中 PNG 格式转为 JPG 格式

我使用 ls -ltr 命令按修改的日期和时间列出所有文件

类似的,也可以使用上面的命令要把 .JPG 图像转换为 .PNG 格式,只需稍微调整就行。

2、 使用 GNU 的 parallel 命令来转换 PNG 和 JPG

GNU 的 parallel 使用户能够从标准输入并行构建和执行 shell 命令。确保您的系统上安装了 GNU Parallel,否则请使用以下适当的命令进行安装:

$ sudo apt-get install parallel     [在 Debian/Ubuntu 系统中]
$ sudo yum install parallel         [在 RHEL/CentOS 和 Fedora 系统中]

安装好 parallel 工具后,您就可以运行下面的命令来把所有从标准输入的 .PNG 图像转换成 .JPG 格式的图像。

----------- 从 PNG 转换到 JPG ----------- 
$ parallel convert '{}' '{.}.jpg' ::: *.png

----------- 从 JPG 转换到 PNG -----------
$ parallel convert '{}' '{.}.png' ::: *.jpg

其中:

  1. {} – 输入行替代符,代替了从输入源读取的完整行。
  2. {.} – 去除扩展名的输入行。
  3. ::: – 指定输入源的符号,即上面示例的命令行,在这里 png 或 jpg 是命令参数。

Parallel Command - Converts All PNG Images to JPG Format

Parallel 命令 – 把所有 PNG 图像转换为 JPG 格式

或者,您也可以结合 lsparallel 命令来批量转换所有图像,如图所示:

----------- 从 PNG 转换到 JPG ----------- 
$ ls -1 *.png | parallel convert '{}' '{.}.jpg'

----------- 从 JPG 转换到 PNG -----------
$ ls -1 *.jpg | parallel convert '{}' '{.}.png'

3、 使用 for 循环命令来转换 PNG 和 JPG

为了避免编写 shell 脚本的繁琐,你可以从命令行执行 for 循环语句,如下所示:

----------- 从 PNG 转换到 JPG ----------- 
$ bash -c 'for image in *.png; do convert "$image" "${image%.png}.jpg"; echo “image $image converted to ${image%.png}.jpg ”; done'

----------- 从 JPG 转换到 PNG -----------
$ bash -c 'for image in *.jpg; do convert "$image" "${image%.jpg}.png"; echo “image $image converted to ${image%.jpg}.png ”; done'

对上面的命令所使用的选项参数的描述:

  1. -c 允许执行包括在单引号中的循环语句。
  2. image 变量是目录中的图像名的数量记数器。
  3. 对于每个转换操作,在 $image 转换为 ${image%.png}.jpg 这行中,echo 命令通知用户 png 图像已经转换为 jpg 格式,反之亦然。
  4. ${image%.png}.jpg 语句创建了转换后的图像名字,其中 % 表示去除源图像文件的扩展名。

for loop - Convert PNG to JPG Format

for 循环语句 – 从 PNG 转换到 JPG 格式

4、 使用 Shell 脚本来转换 PNG 和 JPG

如果你不想像前面的例子那样让你的命令行变得邋遢的话,可以写一个小脚本,如下所示:

注意:适当地交换 .png.jpg 扩展名,如下面的例子所示,从一种格式转换到另一种格式:

#!/bin/bash
#convert
for image in *.png; do
        convert  "$image"  "${image%.png}.jpg"
        echo “image $image converted to ${image%.png}.jpg ”
done
exit 0 

把上面的脚本保存为 convert.sh 文件,然后使此脚本文件可执行,接着从存有图像文件的目录下执行。

$ chmod +x convert.sh
$ ./convert.sh

Batch Image Convert Using Shell Script

使用 Shell 脚本来批量图像转换

总之,我们介绍了一些重要的将 .PNG 图像批量转换为 .JPG 格式的方法,以及再转回来。如果还想对图像进行一些优化的话, 您可以移步到 Linux 系统中如何压缩 png 和 jpg 图像这篇指导文章。

您可以给我们分享一些包括 Linux 命令行工具在内的把图像从一种格式转成另一种格式的方式方法,或者在下面的评论部分畅所欲言。


via: http://www.tecmint.com/linux-image-conversion-tools/

作者:Aaron Kili 译者:runningwater 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Neofetch 是一个跨平台的易于使用的 系统信息显示命令行脚本,它收集你的系统信息,并在终端中和图像一起显示出来,这个图像可能是你的发行版的 logo 也可能是你选择的一幅 ascii 艺术字。

Neofetch 和 ScreenFetch 或者 Linux\_Logo 很像,但是它可以高度定制,并且还有一些额外的我们要在下面讨论的特点。

它的主要特点有:运行速度快,可以显示全色图像 —— 用 ASCII 字符显示的发行版 logo ,旁边显示系统信息,可以高度定制,可以随时随地显示系统信息,并且在脚本结束的时候还可以通过一个特殊的参数来启用桌面截图。

系统要求:

  1. Bash 3.0+ 带 ncurses 支持。
  2. w3m-img (有时候会打包成 w3m) 或者 iTerm2 或者 Terminology,用于显示图像。
  3. imagemagick,用于创建缩略图。
  4. 支持 [\033[14tLinux 终端模拟器 或者 xdotool 或者 xwininfo + xprop 或者 xwininfo + xdpyinfo 。
  5. Linux 系统中还需要 feh、nitrogen 或者 gsettings 来提供对墙纸的支持。

注意:你可以从 Neofetch 的 Github 页面了解更多关于可选依赖的信息,以检查你的 Linux 终端模拟器 是不是真的支持 \033[14t 或者是否需要一些额外的依赖来使这个脚本在你的发行版上工作得更好。

怎样在 Linux 系统上安装 Neofetch

Neofetch 可以从几乎所有 Linux 发行版的第三方仓库轻松安装,请按照以下各自的安装说明进行安装。

Debian

$ echo "deb http://dl.bintray.com/dawidd6/neofetch jessie main" | sudo tee -a /etc/apt/sources.list
$ curl -L "https://bintray.com/user/downloadSubjectPublicKey?username=bintray" -o Release-neofetch.key && sudo apt-key add Release-neofetch.key && rm Release-neofetch.key
$ sudo apt-get update
$ sudo apt-get install neofetch

Ubuntu 和 Linux Mint

$ sudo add-apt-repository ppa:dawidd0811/neofetch
$ sudo apt-get update
$ sudo apt-get install neofetch

RHEL, CentOS 和 Fedora

你的系统里面要安装了 dnf-plugins-core ,或者用以下命令安装它:

$ sudo yum install dnf-plugins-core

启用 COPR 仓库然后安装 neofetch。

$ sudo dnf copr enable konimex/neofetch
$ sudo dnf install neofetch

Arch Linux

你可以用 packer 或 Yaourt 从 AUR 安装 neofetch 或 neofetch-git。

$ packer -S neofetch
$ packer -S neofetch-git
或
$ yaourt -S neofetch
$ yaourt -S neofetch-git

Gentoo

从 Gentoo/Funtoo 的官方源安装 app-misc/neofetch。如果你要安装这个程序的 git 版的话,你可以安装 app-misc/neofetch-9999。

怎么在 Linux 中使用 Neofetch

一旦你安装了 Neofetch ,使用它的一般语法是:

$ neofetch

注意: 要是你没有安装 w3m-img 或者 imagemagick 的话,screenfetch 会默认被启用,neofetch 会如下图所示显示你的 [ASCII 艺术 logo]。

Linux Mint 系统信息

Linux Mint 系统信息

Linux Mint 系统信息

Ubuntu 系统信息

Ubuntu System Information

Ubuntu 系统信息

如果你想用图片显示你的发行版 logo,需要用下面的命令安装 w3m-img 或者 imagemagick 。

$ sudo apt-get install w3m-img    [On Debian/Ubuntu/Mint]
$ sudo yum install w3m-img        [On RHEL/CentOS/Fedora]

然后再次运行 neofetch,你就会看到如下图所示的用你系统的默认墙纸来显示图片。

$ neofetch

Ubuntu System Information with Logo

Ubuntu 系统信息带 logo

第一次运行 neofetch 后,它会在这里创建一个配置文件: $HOME/.config/neofetch/config

这个配置文件可以让你通过 printinfo () 函数来调整你想显示在终端的系统信息。你可以增加,修改,删除,也可以使用 bash 代码去调整你要显示的信息。

你可以如下图所示用你喜欢的编辑器打开这个配置文件:

$ vi ~/.config/neofetch/config

以下是我系统配置的片段 ,显示了 printinfo () 函数。

Neofetch 配置

#!/usr/bin/env bash
# vim:fdm=marker
#
# Neofetch config file
# https://github.com/dylanaraps/neofetch

# Speed up script by not using unicode
export LC_ALL=C
export LANG=C

# Info Options {{{

# Info
# See this wiki page for more info:
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
printinfo() {
    info title
    info underline

    info "Model" model
    info "OS" distro
    info "Kernel" kernel
    info "Uptime" uptime
    info "Packages" packages
    info "Shell" shell
    info "Resolution" resolution
    info "DE" de
    info "WM" wm
    info "WM Theme" wmtheme
    info "Theme" theme
    info "Icons" icons
    info "Terminal" term
    info "Terminal Font" termfont
    info "CPU" cpu
    info "GPU" gpu
    info "Memory" memory

    # info "CPU Usage" cpu_usage
    # info "Disk" disk
    # info "Battery" battery
    # info "Font" font
    # info "Song" song
    # info "Local IP" localip
    # info "Public IP" publicip
    # info "Users" users
    # info "Birthday" birthday

    info linebreak
    info cols
    info linebreak
}
.....

下面的命令可以显示所有你能在 neofetch 脚本中用的参数和配置值:

$ neofetch --help

要启用所有的功能和参数来运行程序,你可以用 --test 参数:

$ neofetch --test

要再次显示 ASCII 艺术 logo ,你可以用 --ascii 参数 :

$ neofetch --ascii

这篇文章中,我们向你介绍了一个可以高度定制的、用来收集系统信息并将它显示在终端上的命令行脚本。

如果你有什么问题,或者对这个脚本有什么想法,请在下面留言。

最后但是同样重要的是,如果你知道有类似的脚本,请毫不犹豫地告诉我们,感谢反馈。

在此访问 neofetch Github 仓库


via: http://www.tecmint.com/neofetch-shows-linux-system-information-with-logo

作者:Aaron Kili 译者:Yinux 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出