linux中国_ 发布的文章

作为开源爱好者,你一定读过 ESR(Eric S. Raymond)的里程碑著作《大教堂与集市》,甚至在各种开源集会中多次见过他的身影。

上个月,ESR 在 www.patreon.com 上发起来一份捐赠众筹,请求大家帮助他,让他能继续为互联网世界奉献。以下是他的众筹全文:

Every time you use a Web browser, locate yourself on Google Maps, draw money from an ATM, or play on a game console, you rely on computer code I wrote and gave away.

每当你使用浏览器、在 Google 地图上定位、从 ATM 里面取钱、或者玩主机游戏时,你都用到了我编写和贡献的那些计算机代码。

The Internet was built by people like me. We're still out there, patiently building things and fixing bugs and putting in our time to make sure your world keeps working. We're mostly volunteers, because there is no way to wrap a business model around the most essential services. We do what we do for love, and because software is our art - and because, in the Internet-dependent 21st century, we know civilization would be lost without us just as surely as if the roads and sewers and power grid stopped working.

互联网是由像我这样的人构建的。我们仍然在工作,耐心的建设、修复问题、花费我们的时间来让你的世界继续工作。我们大多是志愿者,因为没有办法将这些基础服务包装到一个商业模式上。我们为爱而工作,因为软件就是我们的艺术,也因为我们知道,在离不了互联网的21世纪,如果没有我们,文明就将不再,就像没有了道路、下水道和电网一样。

It's hard to notice us, because we're not the people who write the programs you can easily see. Ours is the software behind the software - the programs and service libraries that paint pixels on your display, move bits along the wires, allow hardware to talk to other hardware. (For those of you more technically inclined, I'm talking about systems code rather than applications.)

你很难注意到我们,因为我们并非编写你常见程序的人。我们编写的是软件背后的软件——这些程序和服务库在你显示器上渲染像素、沿着电路移动字节、让硬件互相通讯。(说的更技术些,我这里说的是系统代码而不是应用。)

Though I'm a techie, I'm in a situation similar to a fine artist because the market has not figured out how to value and reward the work I feel called to do. Unlike most artists, it wouldn't be difficult for me to get a well-paid job - but then I'd have to work on what an employer wants, rather than what the world actually needs.

虽然我是一个技术人员,但我现在的这种处境更像一位优秀的艺术家,因为市场上没有办法评估我的价值和奖励我做的事情。不像大多数艺术家,我要找一份收入不菲的工作并不困难——但是这样我就得为这份薪水而工作了,而不是真正在世界所需要的地方奉献自己。

Pledge to me so I can keep delivering what the world actually needs.

请为我捐款吧,让我能继续为世界而奉献。

你可能会吃惊,ESR 这样伟大的人,怎么会面临生活困窘?

那是因为,奥巴马医改法案让他的妻子丢掉了全职工作及医保,另外,这个医改法案让个人健康保险费用涨到了“天上”。所以,他现在每个月要支出超过了按揭的费用。他每个月去看医生的费用就需要 $973,而这笔钱没有了着落。

如果你也愿意为我们的 ESR 捐赠一点——哪怕是 $1,那么请点此:https://www.patreon.com/esr?ty=h

截止到本文发稿时,ESR 已经达成了第一个里程碑 $500(购买测试装备来改进 NTP 互联网时间服务)。目前正在准备完成第二个里程碑 $973(每月医保支出) ,现在已经有110为捐赠者,每月达到了 $615 的捐赠。

在得到捐赠一个月之后,ESR 写了一篇博文,讲述了他是如何支配这些钱的:

在8月2号我去度假之前,我建立了一个捐赠众筹页。这件事的背景是我现在为 NTPsec 工作并获得了一些稳定的收入,但并不多。我的书的版税持续减少,而且我的妻子 Cathy 自从奥巴马医改法案使她失去她的全职的法律工作后,接手了所有她能接到的法律合同工作,但也收入甚微。另外,我们那辆开了八年的车也出了问题,修它的费用比它自身价值都贵得多,而房子也需要一个新的屋顶了,它看起来已经破得不行了。

(没错,我们的确有一些储蓄跟股票。但是,不,我不想碰这些资金,因为我还不想到我真的老的时候得去领救助金过活,或者因为挨冻受饿而死。况且,即便这样子做不会跟我的价值观相冲突,但是指望2035年的美国政府能够让我有足够的钱来购买食物和住所的这种想法再愚蠢不过了。)

稍微使我惊讶的是,在一个月的捐献中,这个页面吸引了67个赞助者,总共捐赠409.17美元,我当初想不到能得到这么多捐赠,毕竟这个网站看起来完全是面向那些头戴贝雷帽、鼻子穿环的艺术家人群的。但它确实管用,一定程度上。

所有这些也是为什么现在我新发布的公告出现在 Patreon 上(基本上所有的),而不是博客上。这是我最接近艺术内容的东西了,而它也确实也增加了捐赠金额。

第一个月份的 Patreon 捐款只够让我给 Great Beast 装额外 32GB 内存,这是为了进行 GCC 的 Subversion-to-Git 转换的工作需要的。它解决不了多少(例如说)医疗保险问题,感谢那位专权的混蛋,不断地插手干涉把医疗费用搅得齐天高。(还因此牵连了我妻子的工作--这事件在心理上对她伤害不少)

如果你喜欢这个博客,请慷慨地捐赠吧。无论你以“娱乐”之名,还是以“支持 GNOME 的基础建设,让文明延续下去”之名,每个人的一点点帮忙能使我们走得更远。

Linux中的文件是什么?它的文件系统又是什么?那些配置文件又在哪里?我下载好的程序保存在哪里了?在 Linux 中文件系统是标准结构的吗?好了,上图简明地阐释了Linux的文件系统的层次关系。当你苦于寻找配置文件或者二进制文件的时候,这便显得十分有用了。我在下方添加了一些解释以及例子,不过“篇幅较长,可以有空再看”。

另外一种情况便是当你在系统中获取配置以及二进制文件时,出现了不一致性问题,如果你是在一个大型组织中,或者只是一个终端用户,这也有可能会破坏你的系统(比如,二进制文件运行在旧的库文件上了)。若然你在你的Linux系统上做安全审计的话,你将会发现它很容易遭到各种攻击。所以,保持一个清洁的操作系统(无论是Windows还是Linux)都显得十分重要。

Linux的文件是什么?

对于UNIX系统来说(同样适用于Linux),以下便是对文件简单的描述:

在UNIX系统中,一切皆为文件;若非文件,则为进程

这种定义是比较正确的,因为有些特殊的文件不仅仅是普通文件(比如命名管道和套接字),不过为了让事情变的简单,“一切皆为文件”也是一个可以让人接受的说法。Linux系统也像UNIX系统一样,将文件和目录视如同物,因为目录只是一个包含了其他文件名的文件而已。程序、服务、文本、图片等等,都是文件。对于系统来说,输入和输出设备,基本上所有的设备,都被当做是文件。

题图版本历史:

  • Version 2.0 – 17-06-2015

    • – Improved: 添加标题以及版本历史
    • – Improved: 添加/srv,/meida和/proc
    • – Improved: 更新了反映当前的Linux文件系统的描述
    • – Fixed: 多处的打印错误
    • – Fixed: 外观和颜色
  • Version 1.0 – 14-02-2015

    • – Created: 基本的图表
    • – Note: 摒弃更低的版本

下载链接

以下是大图的下载地址。如果你需要其他格式,请跟原作者联系,他会尝试制作并且上传到某个地方以供下载

注意: PDF格式文件是打印的最好选择,因为它画质很高。

Linux 文件系统描述

为了有序地管理那些文件,人们习惯把这些文件当做是硬盘上的有序的树状结构,正如我们熟悉的'MS-DOS'(磁盘操作系统)就是一个例子。大的分枝包括更多的分枝,分枝的末梢是树的叶子或者普通的文件。现在我们将会以这树形图为例,但晚点我们会发现为什么这不是一个完全准确的一幅图。

目录描述
/主层次 的根,也是整个文件系统层次结构的根目录
/bin存放在单用户模式可用的必要命令二进制文件,所有用户都可用,如 cat、ls、cp等等
/boot存放引导加载程序文件,例如kernels、initrd等
/dev存放必要的设备文件,例如/dev/null
/etc存放主机特定的系统级配置文件。其实这里有个关于它名字本身意义上的的争议。在贝尔实验室的UNIX实施文档的早期版本中,/etc表示是“其他(etcetera)目录”,因为从历史上看,这个目录是存放各种不属于其他目录的文件(然而,文件系统目录标准 FSH 限定 /etc 用于存放静态配置文件,这里不该存有二进制文件)。早期文档出版后,这个目录名又重新定义成不同的形式。近期的解释中包含着诸如“可编辑文本配置”或者“额外的工具箱”这样的重定义
/etc/opt存储着新增包的配置文件 /opt/.
/etc/sgml存放配置文件,比如 catalogs,用于那些处理SGML(译者注:标准通用标记语言)的软件的配置文件
/etc/X11X Window 系统11版本的的配置文件
/etc/xml配置文件,比如catalogs,用于那些处理XML(译者注:可扩展标记语言)的软件的配置文件
/home用户的主目录,包括保存的文件,个人配置,等等
/lib/bin//sbin/中的二进制文件的必需的库文件
/lib<架构位数>备用格式的必要的库文件。 这样的目录是可选的,但如果他们存在的话肯定是有需要用到它们的程序
/media可移动的多媒体(如CD-ROMs)的挂载点。(出现于 FHS-2.3)
/mnt临时挂载的文件系统
/opt可选的应用程序软件包
/proc以文件形式提供进程以及内核信息的虚拟文件系统,在Linux中,对应进程文件系统(procfs )的挂载点
/root根用户的主目录
/sbin必要的系统级二进制文件,比如, init, ip, mount
/srv系统提供的站点特定数据
/tmp临时文件 (另见 /var/tmp). 通常在系统重启后删除
/usr二级层级存储用户的只读数据; 包含(多)用户主要的公共文件以及应用程序
/usr/bin非必要的命令二进制文件 (在单用户模式中不需要用到的);用于所有用户
/usr/include标准的包含文件
/usr/lib库文件,用于/usr/bin//usr/sbin/中的二进制文件
/usr/lib<架构位数>备用格式库(可选的)
/usr/local三级层次 用于本地数据,具体到该主机上的。通常会有下一个子目录, 比如, bin/, lib/, share/.
/usr/local/sbin非必要系统的二进制文件,比如用于不同网络服务的守护进程
/usr/share架构无关的 (共享) 数据.
/usr/src源代码,比如内核源文件以及与它相关的头文件
/usr/X11R6X Window系统,版本号:11,发行版本:6
/var各式各样的(Variable)文件,一些随着系统常规操作而持续改变的文件就放在这里,比如日志文件,脱机文件,还有临时的电子邮件文件
/var/cache应用程序缓存数据. 这些数据是由耗时的I/O(输入/输出)的或者是运算本地生成的结果。这些应用程序是可以重新生成或者恢复数据的。当没有数据丢失的时候,可以删除缓存文件
/var/lib状态信息。这些信息随着程序的运行而不停地改变,比如,数据库,软件包系统的元数据等等
/var/lock锁文件。这些文件用于跟踪正在使用的资源
/var/log日志文件。包含各种日志。
/var/mail内含用户邮箱的相关文件
/var/opt来自附加包的各种数据都会存储在 /var/opt/.
/var/run存放当前系统上次启动以来的相关信息,例如当前登入的用户以及当前运行的daemons(守护进程).
/var/spool该spool主要用于存放将要被处理的任务,比如打印队列以及邮件外发队列
/var/mail过时的位置,用于放置用户邮箱文件
/var/tmp存放重启后保留的临时文件

Linux的文件类型

大多数文件仅仅是普通文件,他们被称为regular文件;他们包含普通数据,比如,文本、可执行文件、或者程序、程序的输入或输出等等

虽然你可以认为“在Linux中,一切你看到的皆为文件”这个观点相当保险,但这里仍有着一些例外。

  • 目录:由其他文件组成的文件
  • 特殊文件:用于输入和输出的途径。大多数特殊文件都储存在/dev中,我们将会在后面讨论这个问题。
  • 链接文件:让文件或者目录出现在系统文件树结构上多个地方的机制。我们将详细地讨论这个链接文件。
  • (域)套接字:特殊的文件类型,和TCP/IP协议中的套接字有点像,提供进程间网络通讯,并受文件系统的访问控制机制保护。
  • 命名管道 : 或多或少有点像sockets(套接字),提供一个进程间的通信机制,而不用网络套接字协议。

现实中的文件系统

对于大多数用户和常规系统管理任务而言,“文件和目录是一个有序的类树结构”是可以接受的。然而,对于电脑而言,它是不会理解什么是树,或者什么是树结构。

每个分区都有它自己的文件系统。想象一下,如果把那些文件系统想成一个整体,我们可以构思一个关于整个系统的树结构,不过这并没有这么简单。在文件系统中,一个文件代表着一个inode(索引节点),这是一种包含着构建文件的实际数据信息的序列号:这些数据表示文件是属于谁的,还有它在硬盘中的位置。

每个分区都有一套属于他们自己的inode,在一个系统的不同分区中,可以存在有相同inode的文件。

每个inode都表示着一种在硬盘上的数据结构,保存着文件的属性,包括文件数据的物理地址。当硬盘被格式化并用来存储数据时(通常发生在初始系统安装过程,或者是在一个已经存在的系统中添加额外的硬盘),每个分区都会创建固定数量的inode。这个值表示这个分区能够同时存储各类文件的最大数量。我们通常用一个inode去映射2-8k的数据块。当一个新的文件生成后,它就会获得一个空闲的inode。在这个inode里面存储着以下信息:

  • 文件属主和组属主
  • 文件类型(常规文件,目录文件......)
  • 文件权限
  • 创建、最近一次读文件和修改文件的时间
  • inode里该信息被修改的时间
  • 文件的链接数(详见下一章)
  • 文件大小
  • 文件数据的实际地址

唯一不在inode的信息是文件名和目录。它们存储在特殊的目录文件。通过比较文件名和inode的数目,系统能够构造出一个便于用户理解的树结构。用户可以通过ls -i查看inode的数目。在硬盘上,inodes有他们独立的空间。


via: http://www.blackmoreops.com/2015/06/18/linux-file-system-hierarchy-v2-0/

译者:tnuoccalanosrep 校对:wxy

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

对于大多数计算机用户而言,查找并替换重复的文件是一个常见的需求。查找并移除重复文件真是一项令人不胜其烦的工作,它耗时又耗力。但如果你的机器上跑着GNU/Linux,那么查找重复文件会变得十分简单,这多亏了fdupes工具。

Find and Delete Duplicate Files in Linux

fdupes——在Linux中查找并删除重复文件

fdupes是啥东东?

fdupes是Linux下的一个工具,它由Adrian Lopez用C编程语言编写并基于MIT许可证发行,该应用程序可以在指定的目录及子目录中查找重复的文件。fdupes通过对比文件的MD5签名,以及逐字节比较文件来识别重复内容,fdupes有各种选项,可以实现对文件的列出、删除、替换为文件副本的硬链接等操作。

文件对比以下列顺序开始:

大小对比 > 部分 MD5 签名对比 > 完整 MD5 签名对比 > 逐字节对比

安装 fdupes 到 Linux

在基于Debian的系统上,如UbuntuLinux Mint,安装最新版fdupes,用下面的命令手到擒来。

$ sudo apt-get install fdupes

在基于CentOS/RHEL和Fedora的系统上,你需要开启epel仓库来安装fdupes包。

# yum install fdupes
# dnf install fdupes    [在 Fedora 22 及其以后]

注意:自Fedora 22之后,默认的包管理器yum被dnf取代了。

fdupes命令如何使用

1、 作为演示的目的,让我们来在某个目录(比如 tecmint)下创建一些重复文件,命令如下:

$ mkdir /home/"$USER"/Desktop/tecmint && cd /home/"$USER"/Desktop/tecmint && for i in {1..15}; do echo "I Love Tecmint. Tecmint is a very nice community of Linux Users." > tecmint${i}.txt ; done

在执行以上命令后,让我们使用ls命令验证重复文件是否创建。

$ ls -l

total 60
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint10.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint11.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint12.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint13.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint14.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint15.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint1.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint2.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint3.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint4.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint5.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint6.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint7.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint8.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9.txt

上面的脚本创建了15个文件,名称分别为tecmint1.txt,tecmint2.txt……tecmint15.txt,并且每个文件的数据相同,如

"I Love Tecmint. Tecmint is a very nice community of Linux Users."

2、 现在在tecmint文件夹内搜索重复的文件。

$ fdupes /home/$USER/Desktop/tecmint 

/home/tecmint/Desktop/tecmint/tecmint13.txt
/home/tecmint/Desktop/tecmint/tecmint8.txt
/home/tecmint/Desktop/tecmint/tecmint11.txt
/home/tecmint/Desktop/tecmint/tecmint3.txt
/home/tecmint/Desktop/tecmint/tecmint4.txt
/home/tecmint/Desktop/tecmint/tecmint6.txt
/home/tecmint/Desktop/tecmint/tecmint7.txt
/home/tecmint/Desktop/tecmint/tecmint9.txt
/home/tecmint/Desktop/tecmint/tecmint10.txt
/home/tecmint/Desktop/tecmint/tecmint2.txt
/home/tecmint/Desktop/tecmint/tecmint5.txt
/home/tecmint/Desktop/tecmint/tecmint14.txt
/home/tecmint/Desktop/tecmint/tecmint1.txt
/home/tecmint/Desktop/tecmint/tecmint15.txt
/home/tecmint/Desktop/tecmint/tecmint12.txt

3、 使用-r选项在每个目录包括其子目录中递归搜索重复文件。

它会递归搜索所有文件和文件夹,花一点时间来扫描重复文件,时间的长短取决于文件和文件夹的数量。在此其间,终端中会显示全部过程,像下面这样。

$ fdupes -r /home

Progress [37780/54747] 69%

4、 使用-S选项来查看某个文件夹内找到的重复文件的大小。

$ fdupes -S /home/$USER/Desktop/tecmint

65 bytes each:                          
/home/tecmint/Desktop/tecmint/tecmint13.txt
/home/tecmint/Desktop/tecmint/tecmint8.txt
/home/tecmint/Desktop/tecmint/tecmint11.txt
/home/tecmint/Desktop/tecmint/tecmint3.txt
/home/tecmint/Desktop/tecmint/tecmint4.txt
/home/tecmint/Desktop/tecmint/tecmint6.txt
/home/tecmint/Desktop/tecmint/tecmint7.txt
/home/tecmint/Desktop/tecmint/tecmint9.txt
/home/tecmint/Desktop/tecmint/tecmint10.txt
/home/tecmint/Desktop/tecmint/tecmint2.txt
/home/tecmint/Desktop/tecmint/tecmint5.txt
/home/tecmint/Desktop/tecmint/tecmint14.txt
/home/tecmint/Desktop/tecmint/tecmint1.txt
/home/tecmint/Desktop/tecmint/tecmint15.txt
/home/tecmint/Desktop/tecmint/tecmint12.txt

5、 你可以同时使用-S-r选项来查看所有涉及到的目录和子目录中的重复文件的大小,如下:

$ fdupes -Sr /home/avi/Desktop/

65 bytes each:                          
/home/tecmint/Desktop/tecmint/tecmint13.txt
/home/tecmint/Desktop/tecmint/tecmint8.txt
/home/tecmint/Desktop/tecmint/tecmint11.txt
/home/tecmint/Desktop/tecmint/tecmint3.txt
/home/tecmint/Desktop/tecmint/tecmint4.txt
/home/tecmint/Desktop/tecmint/tecmint6.txt
/home/tecmint/Desktop/tecmint/tecmint7.txt
/home/tecmint/Desktop/tecmint/tecmint9.txt
/home/tecmint/Desktop/tecmint/tecmint10.txt
/home/tecmint/Desktop/tecmint/tecmint2.txt
/home/tecmint/Desktop/tecmint/tecmint5.txt
/home/tecmint/Desktop/tecmint/tecmint14.txt
/home/tecmint/Desktop/tecmint/tecmint1.txt
/home/tecmint/Desktop/tecmint/tecmint15.txt
/home/tecmint/Desktop/tecmint/tecmint12.txt

107 bytes each:
/home/tecmint/Desktop/resume_files/r-csc.html
/home/tecmint/Desktop/resume_files/fc.html

6、 不同于在一个或所有文件夹内递归搜索,你可以选择按要求有选择性地在两个或三个文件夹内进行搜索。不必再提醒你了吧,如有需要,你可以使用-S和/或-r选项。

$ fdupes /home/avi/Desktop/ /home/avi/Templates/

7、 要删除重复文件,同时保留一个副本,你可以使用-d选项。使用该选项,你必须额外小心,否则最终结果可能会是文件/数据的丢失。郑重提醒,此操作不可恢复。

$ fdupes -d /home/$USER/Desktop/tecmint

[1] /home/tecmint/Desktop/tecmint/tecmint13.txt
[2] /home/tecmint/Desktop/tecmint/tecmint8.txt
[3] /home/tecmint/Desktop/tecmint/tecmint11.txt
[4] /home/tecmint/Desktop/tecmint/tecmint3.txt
[5] /home/tecmint/Desktop/tecmint/tecmint4.txt
[6] /home/tecmint/Desktop/tecmint/tecmint6.txt
[7] /home/tecmint/Desktop/tecmint/tecmint7.txt
[8] /home/tecmint/Desktop/tecmint/tecmint9.txt
[9] /home/tecmint/Desktop/tecmint/tecmint10.txt
[10] /home/tecmint/Desktop/tecmint/tecmint2.txt
[11] /home/tecmint/Desktop/tecmint/tecmint5.txt
[12] /home/tecmint/Desktop/tecmint/tecmint14.txt
[13] /home/tecmint/Desktop/tecmint/tecmint1.txt
[14] /home/tecmint/Desktop/tecmint/tecmint15.txt
[15] /home/tecmint/Desktop/tecmint/tecmint12.txt

Set 1 of 1, preserve files [1 - 15, all]: 

你可能注意到了,所有重复的文件被列了出来,并给出删除提示,一个一个来,或者指定范围,或者一次性全部删除。你可以选择一个范围,就像下面这样,来删除指定范围内的文件。

Set 1 of 1, preserve files [1 - 15, all]: 2-15

   [-] /home/tecmint/Desktop/tecmint/tecmint13.txt
   [+] /home/tecmint/Desktop/tecmint/tecmint8.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint11.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint3.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint4.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint6.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint7.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint9.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint10.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint2.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint5.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint14.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint1.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint15.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint12.txt

8、 从安全角度出发,你可能想要打印fdupes的输出结果到文件中,然后检查文本文件来决定要删除什么文件。这可以降低意外删除文件的风险。你可以这么做:

$ fdupes -Sr /home > /home/fdupes.txt

注意:你应该替换/home为你想要的文件夹。同时,如果你想要递归搜索并打印大小,可以使用-r-S选项。

9、 你可以使用-f选项来忽略每个匹配集中的首个文件。

首先列出该目录中的文件。

$ ls -l /home/$USER/Desktop/tecmint

total 20
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (3rd copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (4th copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (another copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9.txt

然后,忽略掉每个匹配集中的首个文件。

$ fdupes -f /home/$USER/Desktop/tecmint

/home/tecmint/Desktop/tecmint9 (copy).txt
/home/tecmint/Desktop/tecmint9 (3rd copy).txt
/home/tecmint/Desktop/tecmint9 (another copy).txt
/home/tecmint/Desktop/tecmint9 (4th copy).txt

10、 检查已安装的fdupes版本。

$ fdupes --version

fdupes 1.51

11、 如果你需要关于fdupes的帮助,可以使用-h开关。

$ fdupes -h

Usage: fdupes [options] DIRECTORY...

 -r --recurse       for every directory given follow subdirectories
                    encountered within
 -R --recurse:      for each directory given after this option follow
                    subdirectories encountered within (note the ':' at
                    the end of the option, manpage for more details)
 -s --symlinks      follow symlinks
 -H --hardlinks     normally, when two or more files point to the same
                    disk area they are treated as non-duplicates; this
                    option will change this behavior
 -n --noempty       exclude zero-length files from consideration
 -A --nohidden      exclude hidden files from consideration
 -f --omitfirst     omit the first file in each set of matches
 -1 --sameline      list each set of matches on a single line
 -S --size          show size of duplicate files
 -m --summarize     summarize dupe information
 -q --quiet         hide progress indicator
 -d --delete        prompt user for files to preserve and delete all
                    others; important: under particular circumstances,
                    data may be lost when using this option together
                    with -s or --symlinks, or when specifying a
                    particular directory more than once; refer to the
                    fdupes documentation for additional information
 -N --noprompt      together with --delete, preserve the first file in
                    each set of duplicates and delete the rest without
                    prompting the user
 -v --version       display fdupes version
 -h --help          display this help message

到此为止了。让我知道你以前怎么在Linux中查找并删除重复文件的吧?同时,也让我知道你关于这个工具的看法。在下面的评论部分中提供你有价值的反馈吧,别忘了为我们点赞并分享,帮助我们扩散哦。

我正在使用另外一个移除重复文件的工具,它叫fslint。很快就会把使用心得分享给大家哦,你们一定会喜欢看的。


via: http://www.tecmint.com/fdupes-find-and-delete-duplicate-files-in-linux/

作者:GOLinux 校对:wxy

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

Ubuntu的安装器提供了一个轻松“使用LVM”的复选框。它的描述中说,启用逻辑卷管理可以让你制作快照,并更容易地调整硬盘分区大小——这里将为大家讲述如何完成这些操作。

LVM是一种技术,某种程度上和RAID阵列Windows上的“存储空间”类似。虽然该技术在服务器上更为有用,但是它也可以在桌面端PC上使用。

你应该在新安装Ubuntu时使用LVM吗?

第一个问题是,你是否想要在安装Ubuntu时使用LVM?如果是,那么Ubuntu让这一切变得很简单,只需要轻点鼠标就可以完成,但是该选项默认是不启用的。正如安装器所说的,它允许你调整分区、创建快照、将多个磁盘合并到一个逻辑卷等等——所有这一切都可以在系统运行时完成。不同于传统分区,你不需要关掉你的系统,从Live CD或USB驱动,然后当这些分区不使用时才能调整

完全坦率地说,普通Ubuntu桌面用户可能不会意识到他们是否正在使用LVM。但是,如果你想要在今后做一些更高深的事情,那么LVM就会有所帮助了。LVM可能更复杂,可能会在你今后恢复数据时会导致问题——尤其是在你经验不足时。这里不会有显著的性能损失——LVM是彻底地在Linux内核中实现的。

逻辑卷管理说明

前面,我们已经说明了何谓LVM。概括来讲,它在你的物理磁盘和呈现在你系统中的分区之间提供了一个抽象层。例如,你的计算机可能装有两个硬盘驱动器,它们的大小都是 1 TB。你必须得在这些磁盘上至少分两个区,每个区大小 1 TB。

LVM就在这些分区上提供了一个抽象层。用于取代磁盘上的传统分区,LVM将在你对这些磁盘初始化后,将它们当作独立的“物理卷”来对待。然后,你就可以基于这些物理卷创建“逻辑卷”。例如,你可以将这两个 1 TB 的磁盘组合成一个 2 TB 的分区,你的系统将只看到一个 2 TB 的卷,而LVM将会在后台处理这一切。一组物理卷以及一组逻辑卷被称之为“卷组”,一个典型的系统只会有一个卷组。

该抽象层使得调整分区、将多个磁盘组合成单个卷、甚至为一个运行着的分区的文件系统创建“快照”变得十分简单,而完成所有这一切都无需先卸载分区。

注意,如果你没有创建备份,那么将多个磁盘合并成一个卷将会是个糟糕的想法。它就像RAID 0——如果你将两个 1 TB 的卷组合成一个 2 TB 的卷,只要其中一个硬盘失败,你将丢失该卷上的重要数据。所以,如果你要走这条路,那么备份就及其重要。

管理LVM卷的图形化工具

通常,LVM通过Linux终端命令来管理。这在Ubuntu上也行得通,但是有个更简单的图形化方法可供大家采用。如果你是一个Linux用户,对GParted或者与其类似的分区管理器熟悉,算了,别瞎掰了——GParted根本不支持LVM磁盘。

然而,你可以使用Ubuntu附带的磁盘工具。该工具也被称之为GNOME磁盘工具,或者叫Palimpsest。点击dash中的图标来开启它吧,搜索“磁盘”然后敲击回车。不像GParted,该磁盘工具将会在“其它设备”下显示LVM分区,因此你可以根据需要格式化这些分区,也可以调整其它选项。该工具在Live CD或USB 驱动下也可以使用。

不幸的是,该磁盘工具不支持LVM的大多数强大的特性,没有管理卷组、扩展分区,或者创建快照等选项。对于这些操作,你可以通过终端来实现,但是没有那个必要。相反,你可以打开Ubuntu软件中心,搜索关键字LVM,然后安装逻辑卷管理工具,你可以在终端窗口中运行sudo apt-get install system-config-lvm命令来安装它。安装完之后,你就可以从dash上打开逻辑卷管理工具了。

这个图形化配置工具是由红帽公司开发的,虽然有点陈旧了,但却是唯一的图形化方式,你可以通过它来完成上述操作,将那些终端命令抛诸脑后了。

比如说,你想要添加一个新的物理卷到卷组中。你可以打开该工具,选择未初始化条目下的新磁盘,然后点击“初始化条目”按钮。然后,你就可以在未分配卷下找到新的物理卷了,你可以使用“添加到现存卷组”按钮来将它添加到“ubuntu-vg”卷组,这是Ubuntu在安装过程中创建的卷组。

卷组视图会列出你所有的物理卷和逻辑卷的总览。这里,我们有两个横跨两个独立硬盘驱动器的物理分区,我们有一个交换分区和一个根分区,这是Ubuntu默认设置的分区图表。由于我们从另一个驱动器添加了第二个物理分区,现在那里有大量未使用空间。

要扩展逻辑分区到物理空间,你可以在逻辑视图下选择它,点击编辑属性,然后修改大小来扩大分区。你也可以在这里缩小分区。

system-config-lvm的其它选项允许你设置快照和镜像。对于传统桌面而言,你或许不需要这些特性,但是在这里也可以通过图形化处理。记住,你也可以使用终端命令完成这一切


via: http://www.howtogeek.com/211937/how-to-use-lvm-on-ubuntu-for-easy-partition-resizing-and-snapshots/

译者:GOLinux 校对:wxy

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

2015 年 8 月 25 ,星期二,KDE 发布了 Plasma 5 的一个特色新版本。

此版本为我们带来了许多非常棒的感受,如优化了对高分辨率的支持,KRunner 自动补全和一些新的 Breeze 漂亮图标。这还为不久以后的技术预览版的 Wayland 桌面奠定了基础。我们还带来了几个新组件,如声音音量部件,显示器校准工具和测试版的用户管理工具。

新的音频音量程序

The new Audio Volume Applet

新的音频音量程序直接工作于 PulseAudio (Linux 上一个非常流行的音频服务) 之上 ,并且在一个漂亮的简约的界面提供一个完整的音量控制和输出设定。

替代的应用控制面板起动器

he new Dashboard alternative launcher

Plasma 5.4 在 kdeplasma-addons 软件包中提供了一个全新的全屏的应用控制面板,它具有应用菜单的所有功能,还支持缩放和全空间键盘导航。新的起动器可以像你目前所用的“最近使用的”或“收藏的文档和联系人”一样简单和快速地查找应用。

丰富的艺术图标

Plasma 5.4 提供了超过 1400 个的新图标,其中不仅包含 KDE 程序的,而且还为 Inkscape, Firefox 和 Libreoffice 提供 Breeze 主题的艺术图标,可以体验到更加一致和本地化的感觉。

KRunner 历史记录

KRunner

KRunner 现在可以记住之前的搜索历史并根据历史记录进行自动补全。

Network 程序中实用的图形展示

Network Graphs

Network 程序现在可以以图形形式显示网络流量了,同时也支持两个新的 VPN 插件:通过 SSH 连接或通过 SSTP 连接。

Wayland 技术预览

随着 Plasma 5.4 ,Wayland 桌面发布了第一个技术预览版。在使用自由图形驱动(free graphics drivers)的系统上可以使用 KWin(Plasma 的 Wayland 合成器和 X11 窗口管理器)通过内核模式设定来运行 Plasma。现在已经支持的功能需求来自于手机 Plasma 项目,更多的面向桌面的功能还未被完全实现。现在还不能作为替换那些基于 Xorg 的桌面,但可以轻松地对它测试和贡献,以及观看令人激动视频。有关如何在 Wayland 中使用 Plasma 的介绍请到:KWin 维基页。Wlayland 将随着我们构建的稳定版本而逐步得到改进。

其他的改变和添加

  • 优化对高 DPI 支持
  • 更少的内存占用
  • 桌面搜索使用了更快的新后端
  • 便笺增加拖拉支持和键盘导航
  • 回收站重新支持拖拉
  • 系统托盘获得更快的可配置性
  • 文档重新修订和更新
  • 优化了窄小面板上的数字时钟的布局
  • 数字时钟支持 ISO 日期
  • 切换数字时钟 12/24 格式更简单
  • 日历显示第几周
  • 任何项目都可以收藏进应用菜单(Kicker),支持收藏文档和 Telepathy 联系人
  • Telepathy 联系人收藏可以展示联系人的照片和实时状态
  • 优化程序与容器间的焦点和激活处理
  • 文件夹视图中各种小修复:更好的默认尺寸,鼠标交互问题以及文本标签换行
  • 任务管理器更好的呈现起动器默认的应用图标
  • 可再次通过将程序拖入任务管理器来添加启动器
  • 可配置中间键点击在任务管理器中的行为:无动作,关闭窗口,启动一个相同的程序的新实例
  • 任务管理器现在以列排序优先,无论用户是否更倾向于行优先;许多用户更喜欢这样排序是因为它会使更少的任务按钮像窗口一样移来移去
  • 优化任务管理器的图标和缩放边
  • 任务管理器中各种小修复:垂直下拉,触摸事件处理现在支持所有系统,组扩展箭头的视觉问题
  • 提供可用的目的框架技术预览版,可以使用 QuickShare Plasmoid,它可以让许多 web 服务分享文件更容易
  • 增加了显示器配置工具
  • 增加的 kwallet-pam 可以在登录时打开 wallet
  • 用户管理器现在会同步联系人到 KConfig 的设置中,用户账户模块被丢弃了
  • 应用程序菜单(Kicker)的性能得到改善
  • 应用程序菜单(Kicker)各种小修复:隐藏/显示程序更加可靠,顶部面板的对齐修复,文件夹视图中 “添加到桌面”更加可靠,在基于 KActivities 的最新模块中有更好的表现
  • 支持自定义菜单布局 (kmenuedit)和应用程序菜单(Kicker)支持菜单项目分隔
  • 当在面板中时,改进了文件夹视图,参见 blog
  • 将文件夹拖放到桌面容器现在会再次创建一个文件夹视图

完整的 Plasma 5.4 变更日志在此

Live 镜像

尝鲜的最简单的方式就是从 U 盘中启动,可以在 KDE 社区 Wiki 中找到 各种 带有 Plasma 5 的 Live 镜像

下载软件包

各发行版已经构建了软件包,或者正在构建,wiki 中的列出了各发行版的软件包名:软件包下载维基页

源码下载

可以直接从源码中安装 Plasma 5。KDE 社区 Wiki 已经介绍了怎样编译

注意,Plasma 5 与 Plasma 4 不兼容,必须先卸载旧版本,或者安装到不同的前缀处。


via: https://www.kde.org/announcements/plasma-5.4.0.php

译者:Locez 校对:wxy

公有地址由 InterNIC 分配并由基于类的网络 ID 或基于 CIDR 的地址块构成(被称为 CIDR 块),并保证了在全球互联网中的唯一性。当公有地址被分配时,其路由将会被记录到互联网中的路由器中,这样访问公有地址的流量就能顺利到达。访问目标公有地址的流量可经由互联网抵达。比如,当一个 CIDR 块被以网络 ID 和子网掩码的形式分配给一个组织时,对应的 [网络 ID,子网掩码] 也会同时作为路由储存在互联网中的路由器中。目标是 CIDR 块中的地址的 IP 封包会被导向对应的位置。

在本文中我将会介绍在几种在 Linux 终端中查看你的公有 IP 地址的方法。这对普通用户来说并无意义,但 Linux 服务器(无GUI或者作为只能使用基本工具的用户登录时)会很有用。无论如何,从 Linux 终端中获取公有 IP 在各种方面都很意义,说不定某一天就能用得着。

以下是我们主要使用的两个命令,curl 和 wget。你可以换着用。

Curl 纯文本格式输出:

curl icanhazip.com
curl ifconfig.me
curl curlmyip.com
curl ip.appspot.com
curl ipinfo.io/ip
curl ipecho.net/plain
curl www.trackip.net/i

curl JSON格式输出:

curl ipinfo.io/json
curl ifconfig.me/all.json
curl www.trackip.net/ip?json (有点丑陋)

curl XML格式输出:

curl ifconfig.me/all.xml

curl 得到所有IP细节 (挖掘机)

curl ifconfig.me/all

使用 DYDNS (当你使用 DYDNS 服务时有用)

curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0-9\.]*\).*/\1/g' 
curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"

使用 Wget 代替 Curl

wget http://ipecho.net/plain -O - -q ; echo
wget http://observebox.com/ip -O - -q ; echo

使用 host 和 dig 命令

如果有的话,你也可以直接使用 host 和 dig 命令。

host -t a dartsclink.com | sed 's/.*has address //'
dig +short myip.opendns.com @resolver1.opendns.com

bash 脚本示例:

#!/bin/bash

PUBLIC_IP=`wget http://ipecho.net/plain -O - -q ; echo`
echo $PUBLIC_IP

简单易用。

我实际上是在写一个用于记录每日我的路由器中所有 IP 变化并保存到一个文件的脚本。我在搜索过程中找到了这些很好用的命令。希望某天它能帮到其他人。


via: http://www.blackmoreops.com/2015/06/14/how-to-get-public-ip-from-linux-terminal/

译者:KevinSJ 校对:wxy

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