标签 Linux 下的文章

提问: 我想要将一个纯文本文件转换成PDF文档。在Linux命令行下是否有一个简单的方法将文本文件转换成PDF文件?

当你有一大堆文本文件要维护的时候,把它们转换成PDF文档会好一些。比如,PDF更适合打印,因为PDF文档有预定义布局。除此之外,还可以减少文档被意外修改的风险。

要将文本文件转换成PDF格式,你要按照下面的两步。

准备工作

首先你要安装两个需要的包。

在 Debian、Ubuntu 或者 Linux Mint上:

$ sudo apt-get install enscript ghostscript 

在 Fedora、CentOS/RHEL上:

$ sudo yum install enscript ghostscript 

在 Arch Linux上:

$ sudo pacman -S enscript ghostscript 

将文本文件转换成PDF格式

准备工作完成之后,按照下面的两步从文本文件生成一个PDF文件

首先,使用enscript命令行工具将文本文件转换成postscript格式。

$ enscript -p output.ps input.txt 

最后将postscript格式文件转换成PDF文件。

$ ps2pdf output.ps output.pdf 

via: http://ask.xmodulo.com/convert-text-to-pdf-linux.html

译者:geekpi 校对:Caroline

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

方德软件中心(Foundation Software Center)于2014年11月12日正式发布!对于Linux爱好者,又多了一种新的尝试。

方德软件中心相对大部分用户来说还比较陌生,在设计上延续了Windows系统的操作习惯,希望通过无障碍的操作体验,吸引更多用户参与体验linux系统,为linux系统的普及开辟新航路。

  • 在应用的数量上,给用户提供了更多的选择,推出了定制化的截图软件、压缩软件等,并将不定期增加新的定制应用;
  • 在功能方面,除了具备一键式的安装、升级与卸载操作的通用功能外,在软件中心首页,对所有软件进行了精心分类,用户可以快速地从软件仓库中找到自己喜爱的软件;
  • 另外,考虑到Linux初级用户,还在软件中心首页加入了软件的常用搭配和装机必备等定制主题。

总体来说,方德软件中心是一款适合中国Linux用户的软件中心,更加考虑到了部分初级Linux用户使用起来上手比较难的问题,该问题也是为什么Linux普及困难的原因,不管您是新手还是老手,不妨下载试用一下这个新的软件中心,现在注册试用还有iphone6等你来拿。

下载地址:http://www.nfs-cloud.cn:81/appCenter/open/softcenter

你是否遇到过这样的情况,需要一遍又一遍地对多个文件执行同样的操作?如果有过,那你肯定会深有感触这是多么的无聊和效率低下。还好有种简单的方式,可以在基于Unix的操作系统中使用xargs命令解决这个烦恼。通过这个命令你可以有效地处理多个文件,节省你的时间和精力。在这篇教程中,你可以学到如何一次性对多个文件执行命令或脚本操作,再也不用担心像单独处理无数个日志或数据文件那样吓人的任务了。

xargs命令有两个要点。第一,你必须列出目标文件。第二,你必须指定对每个文件需要执行的命令或脚本。

这篇教程会涉及三个应用场景,xargs命令被用来处理分布在不同目录下的文件:

  1. 计算所有文件的行数
  2. 打印指定文件的第一行
  3. 对每个文件执行一个自定义脚本

请看下面这个叫xargstest的目录(用tree命令以及-i和-f选项显示了目录树结构,这样可以避免缩进显示而且每个文件都会带有完整路径):

$ tree -if xargstest/ 

这六个文件的内容分别如下:

这个xargstest目录,以及它包含的子目录和文件将用在下面的例子中。

场景1:计算所有文件的行数

就像之前提到的,使用xargs命令的第一个要点是一个用来运行命令或脚本的文件列表。我们可以用find命令来确定和列出目标文件。选项-name 'file??'指定了xargstest目录下那些名字以"file"开头并跟随两个任意字符的文件才是匹配的。这个搜索默认是递归的,意思是find命令会在xargstest和它的子目录下搜索匹配的文件。

$ find xargstest/ -name 'file??' 

xargstest/dir3/file3B
xargstest/dir3/file3A
xargstest/dir1/file1A
xargstest/dir1/file1B
xargstest/dir2/file2B
xargstest/dir2/file2A

我们可以通过管道把结果发给sort命令让文件名按顺序排列:

$ find xargstest/ -name 'file??' | sort 

xargstest/dir1/file1A
xargstest/dir1/file1B
xargstest/dir2/file2A
xargstest/dir2/file2B
xargstest/dir3/file3A
xargstest/dir3/file3B

然后我们需要第二个要素,就是需要执行的命令。我们使用带有-l选项的wc命令来计算每个文件包含的换行符数目(会在输出的每一行的前面打印出来):

$ find xargstest/ -name 'file??' | sort | xargs wc -l 

 1 xargstest/dir1/file1A
 2 xargstest/dir1/file1B
 3 xargstest/dir2/file2A
 4 xargstest/dir2/file2B
 5 xargstest/dir3/file3A
 6 xargstest/dir3/file3B
21 total

可以看到,不用对每个文件手动执行一次wc -l命令,而xargs命令可以让你在一步里完成所有操作。那些之前看起来无法完成的任务,例如单独处理数百个文件,现在可以相当轻松地完成了。

场景2:打印指定文件的第一行

既然你已经有一些使用xargs命令的基础,你可以自由选择执行什么命令。有时,你也许希望只对一部分文件执行操作而忽略其他的。在这种情况下,你可以使用find命令的-name选项以及?通配符(匹配任意单个字符)来选中特定文件并通过管道输出给xargs命令。举个例子,如果你想打印以“B”字符结尾的文件而忽略以“A”结尾的文件的第一行,可以使用下面的find、xargs和head命令组合来完成(head -n1会打印一个文件的第一行):

$ find xargstest/ -name 'file?B' | sort | xargs head -n1 

==> xargstest/dir1/file1B <==
one

==> xargstest/dir2/file2B <==
one

==> xargstest/dir3/file3B <==
one

你将看到只有以“B”结尾的文件会被处理,而所有以“A”结尾的文件都被忽略了。

场景3:对每个文件执行一个自定义脚本

最后,你也许希望对一些文件执行一个自定义脚本(例如Bash、Python或是Perl)。要做到这一点,只要简单地用你的自定义脚本名字替换掉之前例子中的wc和head命令就好了:

$ find xargstest/ -name 'file??' | xargs myscript.sh 

自定义脚本myscript.sh需要写成接受一个文件名作为参数并处理这个文件。上面的命令将为find命令找到的每个文件分别调用脚本。

注意一下上面的例子中的文件名并没有包含空格。通常来说,在Linux环境下操作没有空格的文件名会舒服很多。如果你实在是需要处理名字中带有空格的文件,上边的命令就不能用了,需要稍微处理一下来让它可以被接受。这可以通过find命令的-print0选项(它会打印完整的文件名到标准输出,并以空字符结尾),以及xargs命令的-0选项(它会以空字符作为字符串结束标记)来实现,就像下面的例子:

$ find xargstest/ -name 'file*' -print0 | xargs -0 myscript.sh 

注意一下,-name选项所跟的参数已经改为'file*',意思是所有以"file"开头而结尾可以是任意字符的文件都会被选中。

总结

在看完这篇教程后你应该会理解xargs命令的作用,以及如何应用到自己的工作中。很快你就可以有时间享受这个命令所带来的高效率,而不用把你的时间耗费在一些重复的任务上了。想了解更详细的信息以及更多的选项,你可以在终端中输入'man xargs'命令来查看xargs的文档。


via: http://xmodulo.com/xargs-command-linux.html

作者:Joshua Reed 译者:zpl1025 校对:Caroline

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

2014年8月25日,是Linux的第23个生日。1991年8月25日,一位21岁的赫尔辛基大学的学生发布了举世闻名的新闻组(Usenet post),标志着现在世界著名的Linux正式诞生。

23年以后的现在,Linux已经无处不在,不仅仅被安装于终端用户的桌面系统,智能手机和嵌入式系统,甚至也被龙头企业用于他们的关键系统,比如美国海军的核潜艇(US Navy's nuclear submarines)和联邦航空局的空中管制系统(FAA's air traffic control)。Linux进入了无处不在的云计算时代,在云计算平台方面仍然保持着它的优势。

今天,让我来告诉大家一些你们可能不知道的Linux趣事和Linux历史。如果有什么要补充的,请在评论中分享出来。在这篇文章里,我将会用“linux”、“kernel”和“Linux kernel”来表示同一个意思。

1.关于linux是否是一个开源的操作系统这种争论一直是无休无止的。事实上,“Linux”操作系统的核心组件参照的是Linux kernel(内核)。而反派认为Linux不是一个纯粹的操作系统,因为他们认为仅仅一个内核(kernel),并不是一个操作系统,自由软件的推崇者认为最大的操作系统应叫做“GNU/Linux”,把功劳归于应得的人。(比如:GNU project)。另一方面,一些Linux的开发者和程序员认为,Linux拥有成为一个操作系统的资格,因为它实现了POSIX标准

2.从openhub网站的统计来看,绝大部分(95%)的Linux是用C语言写的。第二(2.8%)受欢迎的是汇编语言。毫无疑问,C语言比C++ 的更受欢迎,也表明了Linus对C++的立场。下面是Linus编程语言的分类。

3.在全世界,Linux已经被13,036个贡献者创建和修改。当然,贡献最多的还是Linus Torvalds自己。从Linux创建至今,他提交了20,000次以上的代码。下图显示了总提交次数最多的前十位Linux贡献者。

4.Linux的代码行(SLOC)超过了1700万行。估计整个代码库的花费大概是5,526人年,或者是超过300M(1M=10*1000万亿)美元,基于模型的基本估算法(basic COCOMO model)。

5.企业并不是单纯的Linux消费者。他们的员工也在积极参与Linux的开发。下图显示了参与Linux内核开发的企业员工2013年提交次数总和的前十位。他们包括Linux商业版发行者(Red Hat,SUSE),芯片/嵌入式系统制造商(Intel,Texas Instrument,wolfson),非盈利性组织(Linaro)和其它的IT公司(IBM,Samsung,Google)。

6.Linux的官方吉祥物是一个非常可爱的小企鹅“Tux”。第一次提出并决定用小企鹅作为Linux吉祥物/标志这个想法的是Linus自己。为什么是小企鹅呢?因为Linus本人很喜欢企鹅,尽管他曾经被一只凶猛的企鹅咬伤过,还导致他得了一场病。

7.一个Linux“发行版”包括Linux内核、支持GNU的组件和库、和一些第三方的应用。根据distrowatch网站的报告,现在总共有286个活跃的Linux发行版。其中最老的一个版本叫Slackware,它是从1993年正式发布出来的一个可用的版本。

8.Kernel.org是一个Linux源码的主要仓库,曾经在2011年8月被一个匿名的攻击者攻陷,攻击者打算篡改kernel.org的服务器。为了加强Linux内核访问策略的安全性,Linux基金会最近在Linux内核的Git官方托管的仓库上开启了双重认证。

9.Linux在500强超级计算机中的优势还在增加。截至2014年6月,世界范围内运算速度最快的计算机97%都是运行在Linux上面的。

10.太空监视(spacewatch),是亚利桑那大学月球与行星实验室的一个研究项目,在GNU/Linux和它的创造者们出现之后,用他们名字命名了几颗小行星(小行星9793 Torvalds,小行星9882 Stallman小行星9885 Linux小行星9965 GNU),以表彰他们把开源操作系统用于他们的小行星调查活动。

11.纵观Linux内核发展的近代史,版本从2.6到3.0有一个很大的跳跃。这个重编的版本号3实际上并不是意味着Linux内核有什么重大的构建,但却标志着Linux 20周年的一个里程碑。

12.在2000年的时候,乔帮主还在苹果。他当时就尝试雇佣Linus Torvalds,让他放弃Linux的开发,转而为“Unix最大的用户群工作”,这个项目后面发展成了MAC OS X。当时,Linus拒绝了乔帮主的邀请。

13.Linux 内核的重启函数reboot()需要两个神奇的数字,而这第二个数字来自Linus Torvalds和他3个女儿的出生日期。

14.虽然全世界都有Linux的很多粉丝,但是也仍然存在很多对Linux的批评(主要是针对桌面系统),如缺乏硬件支持,缺乏标准化,由于很短的升级和发布周期导致系统的不稳定等等。2014年Linux内核小组在LinuxCon大会上,当Linus被问及Linux的未来将何去何从,他表示“I still want the desktop”(我仍然希望桌面化)。

如果你还知道一些关于Linux的趣事,请在评论中与我们分享。


via: http://xmodulo.com/2014/08/interesting-facts-linux.html

作者:Dan Nanni 译者:barney-ro 校对:Caroline

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

在过去的15年内,Linux桌面从一个还算凑合的边缘化解决方案集合发展为一个独特的创新来源和选择之一。它的标准特点中有许多是要么不适用于Windows系统,要么就只适合作为一个专有的扩展软件。因此,使用Linux愈发变得不仅是一个原则问题,也是一种偏好。

然而,尽管Linux桌面不停在进步,但是仍然存在差距。一些特点正在丢失,而一些已经丢失了,还有一些令人惊喜的附加功能可以轻易地提升桌面体验,而不用挑战用户的容忍度。

比如说,以下是7个有利于Linux桌面发展的改善建议:

7. 简单的Email加密技术

如今,各种Email阅读器从Alpine到Thunderbird再到Kmail,都带有Email加密技术。然而,关于它们的文档手册通常是不存在或者非常简陋。

但是,即使你了解加密理论,但是使用起来仍然很困难。这些控件通常分散在配置菜单和选项卡中,需要为所有你需要和想要的设置进行一次彻底的搜索才行。如果你未能进行适当的加密设置,通常你找不到任何有用的反馈。

易用性方面最接近的是 Enigmail ,它是一个带有面向初学者的设置向导的Thunderbird扩展。但是你一定要知道怎么用Enigmail,新的加密设置菜单埋藏在撰写窗口里一级菜单下,和其他选项混在一起,这让日常用户很迷惑。

不管是那种桌面环境,如你所知的,你应该对邮件加密,今天对安全和隐私的媒体不断报道让你知道加密有多重要。

6. 虚拟工作空间缩略图

不需要额外的显示器,虚拟工作空间提供了更多桌面空间。然而,尽管它们很实用,但是虚拟工作空间的管理并没有在过去十年发生改变。在大多数桌面上,你能通过每个工作空间上的pager程序(一个提供很少指示除了它的名字和数字的简单矩形框)来控制它们 -- 或者,在Ubuntu的Unity 环境中,可以指出哪个工作空间是当前激活的。

确实,GNOME和Cinnamon能提供出不错的视图,但是它们的实用性受限于它们需要显示屏大小的事实。而 KDE 写出内容列表则和主流的图形桌面不太协调。

一个比较不错的解决方案应该是鼠标悬停在足够大的缩略图上来获取正常的视图,这样就精确地查看每个工作空间上的东西了。

5. 一个合用的菜单

现代型桌面很久之前就已经舍弃了级联子菜单铺满整个桌面的经典型菜单了。如今,一般的电脑都有太多的应用程序以至于不能适应这样的模式。

糟糕的是,没有什么主要的替代品能与经典型菜单一样方便。把菜单根植于一个单一的窗口,其效果是不理想的,因为你要么必须截掉子菜单要么就用鼠标不断地调整窗口大小。

但是全屏幕菜单的产品还要差,这意味着你甚至要在开始工作之前就调整屏幕,并且哪个搜索框其实只在你已经知道什么应用程序可用的情况下才有用 -- 这种情况下你还不如直接用命令行。

坦白地说,我不知道拿什么来解决这个问题,OS X下的spinner racks吗?我可以肯定地说,所有现代型菜单产品在桌面上呈现出一个个精心构造的图标似乎更是一个合理的选择。

4. 一个专业的、实惠的视频编辑器

多年来,Linux已经慢慢地填充了软件生产力上的空白。然而即便如此,它仍然缺少价格合理的视频编辑软件。

问题不在于没有这样的自由软件。Maya 是动画产业的标准之一,但是问题在于这样的软件的售价达数千美金。

另一边,比如Pitivi或者是Blender这样的免费软件, 它们的功能性 -- 尽管它们的开发者足够的努力 -- 只能保证基本功能。虽然取得了进步,但还是和用户们所期望的相去甚远。

尽管我听说一些非主流的厂家使用的是原生态Linux视频编辑器,原因通常是因为他们抱怨其它编辑器不好,但其余的人更愿意减少麻烦,从而在其它操作系统上对视频进行编辑。

3. 一个文档处理器

有一个极端是,那些需要进行文字处理的用户,Google Docs就让他们满意了;而另一个极端是对于那些排版设计的专家来说,Scribus是唯一比较可行的应用。

这两种极端之间还有一层,是那些比如那些写作很长的文本的文件的出版商和作家。这类用户有些是由基于Windows的 Adobe FrameMaker 来服务, 有些则由基于Linux的LibreOffice Writer来服务。

不幸的是,这些用户显然不会优先考虑LibreOffice,Calligra Words, AbiWord或者是任何其它的办公套件。应该提供给用户的办公套件的特色功能包括:

  • 为每个文件建立引用书目数据库。
  • 表格的样式能和段落与字符保持一致。
  • 除了页眉和页脚,带有持续性内容的页面样式,在每次使用样式时都一样。
  • 交叉引用存储格式,以便不需要每次都手动创建。

无论是LibreOffice还是其它同类应用,提供这些特色功能与它们是否可用是并不相干的。但是没有它们,Linux桌面对于一群潜在的用户来说就是个不完善的东西。

2.彩色标题栏

浏览器的扩展软件向我们展示了彩色编码标签对于工作空间的作用。打开了八九个标签后,它的标题栏就看不全了,所以颜色通常是最快区分标签关系的方法。

同样的系统也能用到桌面上。更好的是,彩色编码也许可以按会话保存,允许用户同时打开某个任务所需的所有应用。到目前为止,我知道没有任何一个桌面有这个特点。

1. 图标栏

多年以来,Stardock公司一直销售着一个名叫 Fences 的扩展软件,它用来分类和组织桌面上的图标,你能用它给每个组取名并且可以把每个图标都放在一起。另外,你可以指定不同的文件类型自动加入到一个组里,并且按个人需要来隐藏和整理。

换句话说,fences让用户整天在桌面上干的事情自动有序地分组排列。然而,除了一两个小功能与KDE的文件夹视图类似之外,fences的功能仍然没有出现在Linux桌面上。这也许是因为开发人员把注意力放到移动设备上作为灵感来源,而使用fences无疑是传统工作站桌面的一大特征。

我个人的列表

我做了这种列表之后,让我震惊的是这些不多的改进都是普适性的,其中几项改进将会吸引大量特定的用户,只有一个是来自专有软件的移植,其中一个至少是修饰性的而不是功能性的。

这一观察表明,对于普通用户来说,Linux能添加的功能已经所剩无几了。作为一个通用的桌面,Linux从几年前到现在都很多元化,到今天,用户能从超过半打的主流桌面中选择出一个来使用。

当然这不意味着,一些专家就不会有其它意见。另外,没有人会关心不断变化的需求会不会使改进令人满意。但是它意味着这份充斥着改进建议的名单上的许多项目将会高度个人化。

所有这些都是为了抛砖引玉:你认为还有什么其它的对桌面有益的建议吗?


via: http://www.datamation.com/open-source/7-improvements-the-linux-desktop-needs-1.html

译者:ZTinoZ 校对:wxy

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

双十一来袭,Linux中国为小伙伴们准备了9本Linux畅销书,不用秒杀,转发即有机会中奖。

活动内容

活动时间:2014年11月3-11月11日

活动内容:在新浪微博关注@LINUX中国 @图灵教育 转发微博即可。(微博地址:http://weibo.com/1772191555/BuywYhaMV)活动期间每日抽取一位中奖用户,用户可以任选九本书中的一本。

特此注意:

微博用户参与活动,注意查看@LINUX中国 官方微博公布的中奖名单或留意您的微博私信。我们会通过微博私信的方式获取您的邮寄信息。

活动奖品:

1、《嵌入式Linux基础教程(第二版)》

图书详情:http://item.jd.com/10993481.html

2、《ARM Linux内核源码剖析》

图书详情:http://item.jd.com/11500192.html

3、《Linux Shell脚本编程入门》

图书详情:http://item.jd.com/11546164.html

4、《Linux Shell脚本攻略(第二版)》

图书详情:http://item.jd.com/11381298.html

5、《Linux就是这个范儿》

图书详情:http://item.jd.com/11492112.html

6、《Linux命令行与Shell脚本编程大全(第二版)》

图书详情:http://item.jd.com/11075150.html

7、《Linux系统架构和应用技巧》

图书详情:http://item.jd.com/1350255541.html

8、《跟阿铭学Linux》

图书详情:http://item.jd.com/11549569.html

9、《只是为了好玩》

图书详情:http://item.jd.com/11514065.html