2015年10月

我知道你已经看过如何下载 YouTube 视频。但那些工具大部分都采用图形用户界面的方式。我会向你展示如何通过终端使用 youtube-dl 下载 YouTube 视频。

youtube-dl

youtube-dl 是基于 Python 的命令行小工具,允许你从 YouTube.com、Dailymotion、Google Video、Photobucket、Facebook、Yahoo、Metacafe、Depositfiles 以及其它一些类似网站中下载视频。它是用 pygtk 编写的,需要 Python 解析器来运行,对平台要求并不严格。它能够在 Unix、Windows 或者 Mac OS X 系统上运行。

youtube-dl 支持断点续传。如果在下载的过程中 youtube-dl 被杀死了(例如通过 Ctrl-C 或者丢失网络连接),你只需要使用相同的 YouTube 视频 URL 再次运行它。只要当前目录中有下载的部分文件,它就会自动恢复没有完成的下载,也就是说,你不需要下载管理器来恢复下载。

安装 youtube-dl

如果你运行的是基于 Ubuntu 的 Linux 发行版,你可以使用下面的命令安装:

sudo apt-get install youtube-dl

对于任何 Linux 发行版,你都可以通过下面的命令行在你的系统上快速安装 youtube-dl:

sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O/usr/local/bin/youtube-dl

获取到该文件后,为了能正常执行你需要给脚本设置可执行权限。

sudo chmod a+rx /usr/local/bin/youtube-dl

使用 youtube-dl 下载视频:

要下载一个视频文件,只需要运行下面的命令。其中 “VIDEO\_URL” 是你想要下载视频的 url。

youtube-dl VIDEO_URL

以多种格式下载 YouTube 视频:

现在 YouTube 视频有不同的分辨率,首先你需要检查指定的 YouTube 视频可用的视频格式。可以使用 “-F” 选项运行 youtube-dl。它会向你显示出可用的格式。

youtube-dl -F http://www.youtube.com/watch?v=BlXaGWbFVKY

它的输出类似于:

Setting language
BlXaGWbFVKY: Downloading video webpage
BlXaGWbFVKY: Downloading video info webpage
BlXaGWbFVKY: Extracting video information
Available formats:
37      :       mp4     [1080×1920]
46      :       webm    [1080×1920]
22      :       mp4     [720×1280]
45      :       webm    [720×1280]
35      :       flv     [480×854]
44      :       webm    [480×854]
34      :       flv     [360×640]
18      :       mp4     [360×640]
43      :       webm    [360×640]
5       :       flv     [240×400]
17      :       mp4     [144×176]

在可用的视频格式中,选择你需要的一种。例如,如果你想下载 MP4 格式的,你可以:

youtube-dl -f 17 http://www.youtube.com/watch?v=BlXaGWbFVKY

使用 youtube-dl 下载视频字幕

首先检查是否有可用的视频字幕。使用下面的命令列出视频所有可用的字幕:

youtube-dl --list-subs https://www.youtube.com/watch?v=Ye8mB6VsUHw

下载所有字幕,但不包括视频:

youtube-dl --all-subs --skip-download https://www.youtube.com/watch?v=Ye8mB6VsUHw

下载整个播放列表

运行下面的命令下载整个播放列表。其中 “playlist\_url” 是你希望下载的播放列表的 url。

youtube-dl -cit playlist_url

youtube-dl 是一个多功能的命令行工具,它提供了很多功能。难怪这个命令行工具这么流行。


via: http://itsfoss.com/download-youtube-linux/

作者:alimiracle 译者:ictlyh 校对:wxy

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

得益于围绕 Linux 和云不断发展的平台与基础设施技术,红帽正在持续快速发展。红帽宣布在九月二十一日完成了 2016 财年第二季度的财务业绩,再次超过预期。

这一季度,红帽的收入为 5 亿 4 百万美元,和去年同比增长 13%。净收入为 5 千 1 百万美元,超过了 2015 财年第二季度的 4 千 7 百万美元。

展望未来,红帽为下一季度和全年提供了积极的目标。对于第三季度,红帽希望指导收益能在 5亿1千9百万美元和5亿2千3百万美元之间,和去年同期相比增长 15%。

对于 2016 财年,红帽的全年指导目标是 20亿4千4百万美元,和去年相比增长 14%。

红帽 CFO Frank Calderoni 在电话会议上指出,红帽最高的 30 个订单差不多甚至超过了 1 百万美元。其中有 4 个订单超过 5 百万美元,还有一个超过 1 千万美元。

从近几年的经验来看,红帽产品的交叉销售非常成功,全部订单中有超过 65% 的订单包括了一个或多个红帽应用和新兴技术产品组件。

Calderoni 说 “我们希望这些技术,例如中间件、RHEL OpenStack 平台、OpenShift、云管理和存储能持续推动收益增长。”

OpenStack

在电话会议中,红帽 CEO Jim Whitehurst 多次问到 OpenStack 的预期收入。Whitehurst 说得益于安装程序的改进,最近发布的 Red Hat OpenStack Platform 7.0 向前垮了一大步。

Whitehurst 提到:“在识别硬件和使用方面它做的很好,当然,这也意味着在硬件识别并正确使用它们方便还有很多工作要做。”

Whitehurst 说他已经开始注意到很多的生产应用程序开始迁移到 OpenStack 云上来。他也警告说在产业化方面迁移到 OpenStack 大部分只是尝鲜,还并没有成为主流。

对于竞争对手, Whitehurst 尤其提到了微软、惠普和 Mirantis。在他看来,很多组织仍然会使用多种操作系统,如果他们部分使用了微软产品,会更倾向于开源方案作为替代选项。Whitehurst 说在云方面他还没有看到太多和惠普面对面的竞争,但和 Mirantis 则确实如此。

Whitehurst 说 “我们也有几次胜利,客户从 Mirantis 转到了 RHEL。”


via: http://www.serverwatch.com/server-news/red-hat-ceo-optimistic-on-openstack-revenue-opportunity.html

作者:Sean Michael Kerner 译者:ictlyh 校对:wxy

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

之前的文章中,我们介绍了如何使用 Quagga 将 CentOS 服务器变成一个 BGP 路由器,也介绍了 BGP 对等体和前缀交换设置。在本教程中,我们将重点放在如何使用 前缀列表 prefix-list 路由映射 route-map 来分别控制数据注入和数据输出。

之前的文章已经说过,BGP 的路由判定是基于前缀的收取和前缀的广播。为避免错误的路由,你需要使用一些过滤机制来控制这些前缀的收发。举个例子,如果你的一个 BGP 邻居开始广播一个本不属于它们的前缀,而你也将错就错地接收了这些不正常前缀,并且也将它转发到网络上,这个转发过程会不断进行下去,永不停止(所谓的“黑洞”就这样产生了)。所以确保这样的前缀不会被收到,或者不会转发到任何网络,要达到这个目的,你可以使用前缀列表和路由映射。前者是基于前缀的过滤机制,后者是更为常用的基于前缀的策略,可用于精调过滤机制。

本文会向你展示如何在 Quagga 中使用前缀列表和路由映射。

拓扑和需求

本教程使用下面的拓扑结构。

服务供应商A和供应商B已经将对方设置成为 eBGP 对等体,实现互相通信。他们的自治系统号和前缀分别如下所示。

  • 对等区段: 192.168.1.0/24
  • 服务供应商A: 自治系统号 100, 前缀 10.10.0.0/16
  • 服务供应商B: 自治系统号 200, 前缀 10.20.0.0/16

在这个场景中,供应商B只想从A接收 10.10.10.0/23, 10.10.10.0/24 和 10.10.11.0/24 三个前缀。

安装 Quagga 和设置 BGP 对等体

之前的教程中,我们已经写了安装 Quagga 和设置 BGP 对等体的方法,所以这里就不再详细说明了,只简单介绍下 BGP 配置和前缀广播:

上图说明 BGP 对等体已经开启。Router-A 在向 router-B 广播多个前缀,而 Router-B 也在向 router-A 广播一个前缀 10.20.0.0/16。两个路由器都能正确无误地收发前缀。

创建前缀列表

路由器可以使用 ACL 或前缀列表来过滤一个前缀。前缀列表比 ACL 更常用,因为前者处理步骤少,而且易于创建和维护。

ip prefix-list DEMO-PRFX permit 192.168.0.0/23

上面的命令创建了名为“DEMO-FRFX”的前缀列表,只允许存在 192.168.0.0/23 这个前缀。

前缀列表的另一个强大功能是支持子网掩码区间,请看下面的例子:

ip prefix-list DEMO-PRFX permit 192.168.0.0/23 le 24

这个命令创建的前缀列表包含在 192.168.0.0/23 和 /24 之间的前缀,分别是 192.168.0.0/23, 192.168.0.0/24 和 192.168.1.0/24。运算符“le”表示小于等于,你也可以使用“ge”表示大于等于。

一个前缀列表语句可以有多个允许或拒绝操作。每个语句都自动或手动地分配有一个序列号。

如果存在多个前缀列表语句,则这些语句会按序列号顺序被依次执行。在配置前缀列表的时候,我们需要注意在所有前缀列表语句之后是隐性拒绝语句,就是说凡是不被明显允许的,都会被拒绝。

如果要设置成允许所有前缀,前缀列表语句设置如下:

ip prefix-list DEMO-PRFX permit 0.0.0.0/0 le 32

我们已经知道如何创建前缀列表语句了,现在我们要创建一个名为“PRFX-LST”的前缀列表,来满足我们实验场景的需求。

router-b# conf t
router-b(config)# ip prefix-list PRFX-LST permit 10.10.10.0/23 le 24

创建路由映射

除了前缀列表和 ACL,这里还有另一种机制,叫做路由映射,也可以在 BGP 路由器中控制前缀。事实上,路由映射针对前缀匹配的微调效果比前缀列表和 ACL 都强。

与前缀列表类似,路由映射语句也可以指定允许和拒绝操作,也需要分配一个序列号。每个路由匹配可以有多个允许或拒绝操作。例如:

route-map DEMO-RMAP permit 10

上面的语句创建了名为“DEMO-RMAP”的路由映射,添加序列号为10的允许操作。现在我们在这个序列号所对应的路由映射下使用 match 命令进行匹配。

router-a(config-route-map)# match (press ? in the keyboard)

  as-path       Match BGP AS path list
  community     Match BGP community list
  extcommunity  Match BGP/VPN extended community list
  interface     match first hop interface of route
  ip            IP information
  ipv6          IPv6 information
  metric        Match metric of route
  origin        BGP origin code
  peer          Match peer address
  probability   Match portion of routes defined by percentage value
  tag           Match tag of route

如你所见,路由映射可以匹配很多属性,在本教程中匹配的是前缀。

route-map DEMO-RMAP permit 10
match ip address prefix-list DEMO-PRFX

这个 match 命令会匹配之前建好的前缀列表中允许的 IP 地址(也就是前缀 192.168.0.0/23, 192.168.0.0/24 和 192.168.1.0/24)。

接下来,我们可以使用 set 命令来修改这些属性。例子如下:

route-map DEMO-RMAP permit 10
match ip address prefix-list DEMO-PRFX
set (press ? in keyboard)

  aggregator          BGP aggregator attribute
  as-path             Transform BGP AS-path attribute
  atomic-aggregate    BGP atomic aggregate attribute
  comm-list           set BGP community list (for deletion)
  community           BGP community attribute
  extcommunity        BGP extended community attribute
  forwarding-address  Forwarding Address
  ip                  IP information
  ipv6                IPv6 information
  local-preference    BGP local preference path attribute
  metric              Metric value for destination routing protocol
  metric-type         Type of metric
  origin              BGP origin code
  originator-id       BGP originator ID attribute
  src                 src address for route
  tag                 Tag value for routing protocol
  vpnv4               VPNv4 information
  weight              BGP weight for routing table

如你所见,set 命令也可以修改很多属性。为了作个示范,我们修改一下 BGP 的 local-preference 这个属性。

route-map DEMO-RMAP permit 10
match ip address prefix-list DEMO-PRFX
set local-preference 500

如同前缀列表,路由映射语句的末尾也有隐性拒绝操作。所以我们需要添加另外一个允许语句(使用序列号20)来允许所有前缀。

route-map DEMO-RMAP permit 10
match ip address prefix-list DEMO-PRFX
set local-preference 500
!
route-map DEMO-RMAP permit 20

序列号20未指定任何匹配命令,所以默认匹配所有前缀。在这个路由映射语句中,所有的前缀都被允许。

回想一下,我们的需求是只允许或只拒绝一些前缀,所以上面的 set 命令不应该存在于这个场景中。我们只需要一个允许语句,如下如示:

router-b# conf t
router-b(config)# route-map RMAP permit 10
router-b(config-route-map)# match ip address prefix-list PRFX-LST

这个路由映射才是我们需要的效果。

应用路由映射

注意,在被应用于一个接口或一个 BGP 邻居之前,ACL、前缀列表和路由映射都不会生效。与 ACL 和前缀列表一样,一条路由映射语句也能被多个接口或邻居使用。然而,一个接口或一个邻居只能有一条路由映射语句应用于输入端,以及一条路由映射语句应用于输出端。

下面我们将这条路由映射语句应用于 router-B 的 BGP 配置,为 router-B 的邻居 192.168.1.1 设置输入前缀广播。

router-b# conf terminal
router-b(config)# router bgp 200
router-b(config-router)# neighbor 192.168.1.1 route-map RMAP in

现在检查下广播路由和收取路由。

显示广播路由的命令:

show ip bgp neighbor-IP advertised-routes

显示收取路由的命令:

show ip bgp neighbor-IP routes

可以看到,router-A 有4条路由前缀到达 router-B,而 router-B 只接收3条。查看一下范围,我们就能知道只有被路由映射允许的前缀才能在 router-B 上显示出来,其他的前缀一概丢弃。

小提示:如果接收前缀内容没有刷新,试试重置下 BGP 会话,使用这个命令:clear ip bgp neighbor-IP。本教程中命令如下:

clear ip bgp 192.168.1.1

我们能看到系统已经满足我们的要求了。接下来我们可以在 router-A 和 router-B 上创建相似的前缀列表和路由映射语句来更好地控制输入输出的前缀。

这里把配置过程总结一下,方便查看。

router bgp 200
network 10.20.0.0/16
neighbor 192.168.1.1 remote-as 100
neighbor 192.168.1.1 route-map RMAP in
!
ip prefix-list PRFX-LST seq 5 permit 10.10.10.0/23 le 24
!
route-map RMAP permit 10
match ip address prefix-list PRFX-LST

总结

在本教程中我们演示了如何在 Quagga 中设置前缀列表和路由映射来过滤 BGP 路由。我们也展示了如何将前缀列表结合进路由映射来进行输入前缀的微调功能。你可以参考这些方法来设置满足自己需求的前缀列表和路由映射。这些工具是保护网络免受路由毒化和来自 bogon 路由(LCTT 译注:指不该出现在internet路由表中的地址)的广播。

希望本文对你有帮助。


via: http://xmodulo.com/filter-bgp-routes-quagga-bgp-router.html

作者:Sarmed Rahman 译者:bazz2 校对:wxy

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

史前

没有 C 编程语言) 和 GNU 项目 构成 Linux 环境,也就不可能有 Linux 的成功。

Ken Thompson 和 Dennis Ritchie

Ken Thompson) 和 Dennis Ritchie 在 1969-1970 创造了 Unix 操作系统。之后发布了新的 C 编程语言,它是一种高级的、可移植的编程语言。 Linux 内核用 C 和一些汇编代码写成。

Richard Matthew Stallman

Richard Matthew Stallman

Richard Matthew Stallman 在 1984 年启动了 GNU 项目。最大的一个目标 - 完全自由的类-Unix 操作系统。

1991 – 元年

Linus Torvalds, 1991

Linus Torvalds 在芬兰赫尔辛基开始了 Linux 内核开发,他是为他的硬件 - Intel 30386 CPU 编写的程序。他也使用 Minix 和 GNU C 编译器。下面是 Linus Torvalds 给 Minix 新闻组的历史消息:

From: [email protected] (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki

Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

Linus ([email protected])

从此之后,Linux 开始得到了世界范围志愿者和专业专家的支持。Linus 的同事 Ari Lemmke 把它命名为 “Linux” - 这其实是他们的大学 ftp 服务器上的项目目录名称。

1992

在 GPLv2 协议下发布了 0.12 版 Linux 内核。

1993

Slackware 1.0

Slackware 首次发布(LCTT 译注:Slackware Linux 是一个高度技术性的、干净的发行版,只有少量非常有限的个人设置) – 最早的 Linux 发行版,其领导者 Patrick Volkerding 也是最早的。其时,Linux 内核有 100 多个开发者。

Debian

Debian – 最大的 Linux 社区之一也创立于 1991 年。

1994

Linux 1.0 发布了,多亏了 XFree 86 项目,第一次有了 GUI。

Red Hat Linux

发布了 Red Hat Linux 1.0

S.u.S.E Linux

S.u.S.E. Linux 1.0。

1995

Red Hat Inc.

Bob Young 和 Marc Ewing 合并他们的本地业务为 Red Hat Software。Linux 移植到了很多硬件平台。

1996

Tux

企鹅 Tux 是 Linux 官方吉祥物,Linus Torvalds 参观了堪培拉国家动物园和水族馆之后有了这个想法。发布了 Linux 2.0,支持对称多处理器。开始开发 KDE。

1997

Miguel de Icaza

Miguel de Icaza 和 Federico Mena 开始开发 GNOME - 自由桌面环境和应用程序。Linus Torvalds 赢得了 Linux 商标冲突官司,Linux 成为了 Linus Torvalds 的注册商标。

1998

大教堂和集市

Eric S. Raymond 出版了文章 The Cathedral and the Bazaar(大教堂和集市) - 高度推荐阅读。Linux 得到了大公司的支持: IBM、Oracle、康柏。

Mandrake Linux

Mandrake Linux 首次发布 - 基于红帽 Linux 的发行版,带有 KDE 桌面环境。

1999

第一个主要的 KDE 版本。

2000

Dell 支持 Linux - 这是第一个支持的大硬件供应商。

2001

Revolution OS

纪录片 “Revolution OS(操作系统革命)” - GNU、Linux、开源、自由软件的 20 年历史,以及对 Linux 和开源界顶级黑客的采访。

2002

BitKeeper

Linux 开始使用 BitKeeper,这是一种商业版的分布式版本控制软件。

2003

SUSE

Novell 用 2.1 亿美元购买了 SUSE Linux AG。同年 SCO 集团 也开始了同 IBM 以及 Linux 社区关于 Unix 版权的艰难的法律诉讼。

Fedora

红帽和 Linux 社区首次发布了 Fedora Linux。

2004

X.ORG 基金会

XFree86 解散了并加入到 X.Org 基金会, X 的开发更快了。

Ubuntu 4.10 – Ubuntu 首次发布

2005

openSUSE

openSUSE 开始了,这是企业版 Novell’s OS 的免费版本。OpenOffice.org 开始支持 OpenDocument 标准。

2006

一个新的 Linux 发行版,基于红帽企业版 Linux 的 Oracle Linux。微软和 Novell 开始在 IT 和专利保护方面进行合作。

2007

Dell Linux 笔记本

Dell 发布了第一个预装 Linux 的笔记本。

2008

KDE 4.0

KDE 4 发布了,但是不稳定,很多用户开始迁移到 GNOME。

2009

Red Hat

红帽 Linux 取得了成功 - 市值达 26亿2千万美元。

2009 年微软在 GPLv2 协议下向 Linux 内核提交了第一个补丁。

2010

Novell -> Attachmate

Novell 已 22亿美元卖给了 Attachmate Group, Inc。SUSE 和 Novell 成为了新公司的两款独立的产品。

systemd 首次发布,开始了 Linux 系统的革命。

2011

Unity 桌面,2011

Ubuntu Unity 发布,遭到很多用户的批评。

GNOME 3.0,2011

GNOME 3.0 发布, Linus Torvalds 评论为 “unholy mess” ,有很多负面评论。Linux 内核 3.0 发布。

2012

1500 万行代码

Linux 内核达到 1500 万行代码。微软成为主要贡献者之一。

2013

Kali Linux 1.0 发布, 用于渗透测试和数字取证,基于 Debian 的 Linux 发行版。2014 年 CentOS 及其代码开发者加入到了红帽公司。

2014

Lennart Poettering 和 Kay Sievers

systemd 成为 Ubuntu 和所有主流 Linux 发行版的默认初始化程序。Ubuntu 有 2200 万用户。安卓的大进步 - 占了所有移动设备的 75% 份额。

2015

发布了 Linux 4.0。Mandriva 公司清算,但还有很多分支,其中最流行的一个是 Mageia。

带着对 Linux 的热爱而执笔。


via: https://tlhp.cf/linux-history/

作者:Pavlo Rudyi 译者:ictlyh 校对:wxy

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

引言

在本教程中,我已经收集了10个给 Linux 用户的有用工具,其中包括各种网络监控,系统审计和一些其它实用的命令,它可以帮助用户提高工作效率。我希望你会喜欢他们。

1. w

显示谁登录了系统并执行了哪些程序。

$ w

不显示头部信息(LCTT译注:原文此处有误)

$ w -h

显示指定用户的信息

$ w <username>

2. nmon

Nmon(nigel’s monitor 的简写)是一个显示系统性能信息的工具。

$ sudo apt-get install nmon

$ nmon

nmon 可以显示与 netwrok,cpu, memory 和磁盘使用情况的信息。

nmon 显示 cpu 信息 (按 c)

nmon 显示 network 信息 (按 n)

nman 显示 disk 信息 (按 d)

3. ncdu

是一个支持光标的du程序,这个命令是用来分析各种目录占用的磁盘空间。

$ apt-get install ncdu

$ ncdu /

最终的输出:

按 n 则通过文件名来排序,按 s 则按文件大小来排序(默认的)。

4. slurm

一个基于网络接口的带宽监控命令行程序,它会用字符来显示文本图形。

$ apt-get install slurm

例如:

$ slurm -i <interface>

$ slurm -i eth1

选项

  • l 显示 lx/tx 指示灯.
  • c 切换到经典模式.
  • r 刷新屏幕.
  • q 退出.

5.findmnt

Findmnt 命令用于查找挂载的文件系统。它用来列出安装设备,当需要时也可以挂载或卸载设备,它是 util-linux 软件包的一部分。

例子:

$ findmnt

以列表格式输出。

$ findmnt -l

列出在 fstab 中挂载的文件系统。

$ findmnt -s

按文件类型列出已挂载的文件系统。

$ findmnt -t ext4

6. dstat

一种灵活的组合工具,它可用于监控内存,进程,网络和磁盘性能,它可以用来取代 ifstat, iostat, dmstat 等。

$ apt-get install dstat

例如:

查看有关 cpu,硬盘和网络的详细信息。

$ dstat

-c cpu

$ dstat -c

-d 磁盘

$ dstat -d

显示 cpu、磁盘等的详细信息。

$ dstat -cdl -D sda1

7. saidar

另一种基于命令行的系统统计数据监控工具,提供了有关磁盘使用,网络,内存,交换分区等信息。

$ sudo apt-get install saidar

例如:

$ saidar

启用彩色输出

$ saider -c

8. ss

ss(socket statistics)是一个很好的替代 netstat 的选择,它从内核空间收集信息,比 netstat 的性能更好。

例如:

列出所有的连接

$ ss |less

列出 tcp 流量

$ ss -A tcp

列出进程名和 pid

$ ss -ltp

9. ccze

一个美化日志显示的工具 :).

$ apt-get install ccze

例如:

$ tailf /var/log/syslog | ccze

列出 ccze 模块:

$ ccze -l

将日志保存为 html 文件。

tailf /var/log/syslog | ccze -h > /home/tux/Desktop/rajneesh.html

10. ranwhen.py

一种基于 Python 的终端工具,它可以用来以图形方式显示系统活动状态。详细信息以一个丰富多彩的柱状图来展示。

安装 python(LCTT 译注:一般来说,你应该已经有了 python,不需要此步):

$ sudo apt-add-repository ppa:fkrull/deadsnakes

更新系统:

$ sudo apt-get update

下载 python:

$ sudo apt-get install python3.2

点此下载 ranwhen.py

$ unzip ranwhen-master.zip && cd ranwhen-master

运行工具。

$ python3.2 ranwhen.py

结论

这都是些不常见但重要的 Linux 管理工具。他们可以在日常生活中帮助用户。在我们即将发表的文章中,我们会尽量多带来些管理员/用户工具。

玩得愉快!


via: http://www.unixmen.com/10-useful-utilities-linux-users/

作者:Rajneesh Upadhyay 译者:strugglingyouth 校对:wxy

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

df 即 “可用磁盘” disk free ,用于显示文件系统的磁盘使用情况。默认情况下 df 命令将以每块 1K 的单位进行显示所有当前已挂载的文件系统,如果你想以人类易读的格式显示 df 命令的输出,像这样“df -h”使用 -h 选项。

在这篇文章中,我们将讨论 df 命令在 Linux 下11种不同的实例。

在 Linux 下 df 命令的基本格式为:

# df {options} {mount_point_of_filesystem}

在 df 命令中可用的选项有:

df 的样例输出 :

[root@linux-world ~]# df
Filesystem            1K-blocks   Used Available Use% Mounted on
/dev/mapper/vg00-root  17003304 804668  15311852   5% /
devtmpfs                 771876      0    771876   0% /dev
tmpfs                    777928      0    777928   0% /dev/shm
tmpfs                    777928   8532    769396   2% /run
tmpfs                    777928      0    777928   0% /sys/fs/cgroup
/dev/mapper/vg00-home  14987616  41000  14162232   1% /home
/dev/sda1                487652  62593    395363  14% /boot
/dev/mapper/vg00-var    9948012  48692   9370936   1% /var
/dev/mapper/vg00-sap   14987656  37636  14165636   1% /sap
[root@linux-world ~]#

例1:使用 -a 选项列出所有文件系统的磁盘使用量

当我们在 df 命令中使用 -a 选项时,它会显示所有文件系统的磁盘使用情况。

[root@linux-world ~]# df -a
Filesystem            1K-blocks   Used Available Use% Mounted on
rootfs                 17003304 804668  15311852   5% /
proc                          0      0         0    - /proc
sysfs                         0      0         0    - /sys
devtmpfs                 771876      0    771876   0% /dev
securityfs                    0      0         0    - /sys/kernel/security
tmpfs                    777928      0    777928   0% /dev/shm
devpts                        0      0         0    - /dev/pts
tmpfs                    777928   8532    769396   2% /run
tmpfs                    777928      0    777928   0% /sys/fs/cgroup
cgroup                        0      0         0    - /sys/fs/cgroup/systemd
pstore                        0      0         0    - /sys/fs/pstore
cgroup                        0      0         0    - /sys/fs/cgroup/cpuset
cgroup                        0      0         0    - /sys/fs/cgroup/cpu,cpuacct
cgroup                        0      0         0    - /sys/fs/cgroup/memory
cgroup                        0      0         0    - /sys/fs/cgroup/devices
cgroup                        0      0         0    - /sys/fs/cgroup/freezer
cgroup                        0      0         0    - /sys/fs/cgroup/net_cls
cgroup                        0      0         0    - /sys/fs/cgroup/blkio
cgroup                        0      0         0    - /sys/fs/cgroup/perf_event
cgroup                        0      0         0    - /sys/fs/cgroup/hugetlb
configfs                      0      0         0    - /sys/kernel/config
/dev/mapper/vg00-root  17003304 804668  15311852   5% /
selinuxfs                     0      0         0    - /sys/fs/selinux
systemd-1                     0      0         0    - /proc/sys/fs/binfmt_misc
debugfs                       0      0         0    - /sys/kernel/debug
hugetlbfs                     0      0         0    - /dev/hugepages
mqueue                        0      0         0    - /dev/mqueue
/dev/mapper/vg00-home  14987616  41000  14162232   1% /home
/dev/sda1                487652  62593    395363  14% /boot
/dev/mapper/vg00-var    9948012  48692   9370936   1% /var
/dev/mapper/vg00-sap   14987656  37636  14165636   1% /sap
[root@linux-world ~]#

例2:以人类易读的格式显示 df 命令的输出

在 df 命令中使用-h选项,以人类易读的格式输出(例如,5K,500M 及 5G)

[root@linux-world ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/vg00-root   17G  786M   15G   5% /
devtmpfs               754M     0  754M   0% /dev
tmpfs                  760M     0  760M   0% /dev/shm
tmpfs                  760M  8.4M  752M   2% /run
tmpfs                  760M     0  760M   0% /sys/fs/cgroup
/dev/mapper/vg00-home   15G   41M   14G   1% /home
/dev/sda1              477M   62M  387M  14% /boot
/dev/mapper/vg00-var   9.5G   48M  9.0G   1% /var
/dev/mapper/vg00-sap    15G   37M   14G   1% /sap
[root@linux-world ~]#

例3:显示特定文件系统已使用的空间

假如我们想显示 /sap 文件系统空间的使用情况。

[root@linux-world ~]# df -h /sap/
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg00-sap   15G   37M   14G   1% /sap
[root@linux-world ~]#

例4:输出所有已挂载文件系统的类型

-T 选项用在 df 命令中用来显示文件系统的类型。

[root@linux-world ~]# df -T
Filesystem            Type     1K-blocks   Used Available Use% Mounted on
/dev/mapper/vg00-root ext4      17003304 804668  15311852   5% /
devtmpfs              devtmpfs    771876      0    771876   0% /dev
tmpfs                 tmpfs       777928      0    777928   0% /dev/shm
tmpfs                 tmpfs       777928   8532    769396   2% /run
tmpfs                 tmpfs       777928      0    777928   0% /sys/fs/cgroup
/dev/mapper/vg00-home ext4      14987616  41000  14162232   1% /home
/dev/sda1             ext3        487652  62593    395363  14% /boot
/dev/mapper/vg00-var  ext3       9948012  48696   9370932   1% /var
/dev/mapper/vg00-sap  ext3      14987656  37636  14165636   1% /sap
[root@linux-world ~]#

例5:按块大小输出文件系统磁盘使用情况

[root@linux-world ~]# df -k
Filesystem            1K-blocks   Used Available Use% Mounted on
/dev/mapper/vg00-root  17003304 804668  15311852   5% /
devtmpfs                 771876      0    771876   0% /dev
tmpfs                    777928      0    777928   0% /dev/shm
tmpfs                    777928   8532    769396   2% /run
tmpfs                    777928      0    777928   0% /sys/fs/cgroup
/dev/mapper/vg00-home  14987616  41000  14162232   1% /home
/dev/sda1                487652  62593    395363  14% /boot
/dev/mapper/vg00-var    9948012  48696   9370932   1% /var
/dev/mapper/vg00-sap   14987656  37636  14165636   1% /sap
[root@linux-world ~]#

例6:输出文件系统的 inode 信息

-i 选项用在 df 命令用于显示文件系统的 inode 信息。

所有文件系统的 inode 信息:

[root@linux-world ~]# df -i
Filesystem             Inodes IUsed   IFree IUse% Mounted on
/dev/mapper/vg00-root 1089536 22031 1067505    3% /
devtmpfs               192969   357  192612    1% /dev
tmpfs                  194482     1  194481    1% /dev/shm
tmpfs                  194482   420  194062    1% /run
tmpfs                  194482    13  194469    1% /sys/fs/cgroup
/dev/mapper/vg00-home  960992    15  960977    1% /home
/dev/sda1              128016   337  127679    1% /boot
/dev/mapper/vg00-var   640848  1235  639613    1% /var
/dev/mapper/vg00-sap   960992    11  960981    1% /sap
[root@linux-world ~]#

特定文件系统的 inode 信息:

[root@linux-world ~]# df -i /sap/
Filesystem           Inodes IUsed  IFree IUse% Mounted on
/dev/mapper/vg00-sap 960992    11 960981    1% /sap
[root@linux-world ~]#

例7:输出所有文件系统使用情况汇总

-total 选项在 df 命令中用于显示所有文件系统的磁盘使用情况汇总。

[root@linux-world ~]# df -h --total
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/vg00-root   17G  786M   15G   5% /
devtmpfs               754M     0  754M   0% /dev
tmpfs                  760M     0  760M   0% /dev/shm
tmpfs                  760M  8.4M  752M   2% /run
tmpfs                  760M     0  760M   0% /sys/fs/cgroup
/dev/mapper/vg00-home   15G   41M   14G   1% /home
/dev/sda1              477M   62M  387M  14% /boot
/dev/mapper/vg00-var   9.5G   48M  9.0G   1% /var
/dev/mapper/vg00-sap    15G   37M   14G   1% /sap
total                   58G  980M   54G   2% -
[root@linux-world ~]#

例8:只打印本地文件系统磁盘的使用情况

假设网络文件系统也挂载在 Linux 上,但我们只想显示本地文件系统的信息,这可以通过使用 df 命令的 -l 选项来实现。

只打印本地文件系统:

[root@linux-world ~]# df -Thl
Filesystem            Type      Size  Used Avail Use% Mounted on
/dev/mapper/vg00-root ext4       17G  791M   15G   6% /
devtmpfs              devtmpfs  754M     0  754M   0% /dev
tmpfs                 tmpfs     760M     0  760M   0% /dev/shm
tmpfs                 tmpfs     760M  8.4M  752M   2% /run
tmpfs                 tmpfs     760M     0  760M   0% /sys/fs/cgroup
/dev/mapper/vg00-home ext4       15G   41M   14G   1% /home
/dev/sda1             ext3      477M   62M  387M  14% /boot
/dev/mapper/vg00-var  ext3      9.5G  105M  8.9G   2% /var
/dev/mapper/vg00-sap  ext3       15G   37M   14G   1% /sap
[root@linux-world ~]#

例9:打印特定文件系统类型的磁盘使用情况

-t 选项在 df 命令中用来打印特定文件系统类型的信息,用 -t 指定文件系统的类型,如下所示:

对于 ext4 :

[root@linux-world ~]# df -t ext4
Filesystem            1K-blocks   Used Available Use% Mounted on
/dev/mapper/vg00-root  17003304 809492  15307028   6% /
/dev/mapper/vg00-home  14987616  41000  14162232   1% /home
[root@linux-world ~]#

对于 nfs4 :

[root@linux-world ~]# df -t nfs4
Filesystem            1K-blocks      Used Available Use% Mounted on
192.168.1.5:/opensuse 301545472 266833920  19371008  94% /data
[root@linux-world ~]#

例10:使用 -x 选项排除特定的文件系统类型

-x–exclude-type 在 df 命令中用来在输出中排出某些文件系统类型。

假设我们想打印除 ext3 外所有的文件系统。

[root@linux-world ~]# df -x ext3
Filesystem            1K-blocks      Used Available Use% Mounted on
/dev/mapper/vg00-root  17003304    809492  15307028   6% /
devtmpfs                 771876         0    771876   0% /dev
tmpfs                    777928         0    777928   0% /dev/shm
tmpfs                    777928      8540    769388   2% /run
tmpfs                    777928         0    777928   0% /sys/fs/cgroup
/dev/mapper/vg00-home  14987616     41000  14162232   1% /home
192.168.1.5:/opensuse 301545472 266834944  19369984  94% /data
[root@linux-world ~]#

例11:在 df 命令的输出中只打印特定的字段

-output={field_name1,field_name2...} 选项用于显示 df 命令某些字段的输出。

可用的字段名有: source, fstype, itotal, iused, iavail, ipcent, size, used, avail, pcenttarget

[root@linux-world ~]# df --output=fstype,size,iused
Type     1K-blocks  IUsed
ext4      17003304  22275
devtmpfs    771876    357
tmpfs       777928      1
tmpfs       777928    423
tmpfs       777928     13
ext4      14987616     15
ext3        487652    337
ext3       9948012   1373
ext3      14987656     11
nfs4     301545472 451099
[root@linux-world ~]#

via: http://www.linuxtechi.com/11-df-command-examples-in-linux/

作者:Pradeep Kumar 译者:strugglingyouth 校对:wxy

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