标签 Linux 下的文章

随着2013年的离去,我们评点了10款去年最受喜爱的linux游戏。

得益于Value公司持续不断对平台的支持,2013年取得了巨大的成就。既有来自大工作室,例如战地系列开发者DICE的宣言,也有Creative Assembly公司关于下一年把“全面战争:罗马II”带入linux的承诺。

我们的名单既包括独立游戏,也包括迄今为止最具影响力的AAA级游戏。这份名单并不试图包含一切,除了我们的观点

所有的这些游戏都可以在Steam平台和/或者Ubuntu软件中心上找到,赶紧掏出钱包向你的屏幕砸钱吧!

盖瑞模组

prop or not? prop or not?

“盖瑞模组”是一个沙盘游戏,但是不为玩家设立目标,神奇隐藏在从一系列的Source引擎游戏中装载的道具和社区不断创造的各种游戏模式中。

其中一个模式是PropHunt - 一个躲猫猫的游戏模式,有两组团队,一组隐藏为地图中的不同物体,另一组试图去寻找隐藏在楼道里摇摇欲坠的文件柜。

简单而有趣,大量的游戏模式 - prop hunting(躲猫猫)、spaceship building(建造飞船)、或者machinima recording(拍摄游戏引擎电影) - 使得“盖瑞模组”成为linux狂热游戏爱好者的收藏。

半条命 2

理论物理从未如此之酷 理论物理从未如此之酷

说到Source引擎,“半条命2”也许是这份名单里最古老的游戏,但是也是迄今为止Value公司所有作品和今年移植到linux上所有游戏中最受欢迎的游戏之一。

“半条命2”继续了该系列上一个作品中主角理论物理学家Gordon Freeman的故事:想方设法穿过被人类和外星生物毁坏的世界。从物理谜题到令人恐惧而敏捷的猎头蟹总是会出现在你前进的道路上,这场旅行仍然是今天最迷人的游戏经历之一。

“半条命”系列的下一个作品仍然有很多东西需要去兑现,但是从该作品移植到linux平台上接受情况上判断,linux游戏爱好者已经做好准备把雪橇和重力枪抓在手上了。

失忆症:猪猡的机器

当我们在九月份评论“失忆症:猪猡的机器”时,我们发现这部作品的气氛和它的前作一样令人胆战心惊,并且值得我们跋涉过种种不算太难的谜题去探寻属于维多路亚时代的游戏场景以及蒸汽朋克式的机械装置。

最大的收获是linux首次支持该款大受欢迎游戏系列的作品,虽然Frictional Gmaes公司的开发者们一贯的对linux游戏爱好者友好。在2007和2008年,半影系列一发布他们就完成了移植的工作。

地铁:最后的曙光

“地铁:最后的曙光”是最早进入linux的AAA级游戏之一,而且启动速度相对较快。背景设置在2034年被核毁灭的莫斯科,“地铁:最后的曙光”将世界末日后的故事集中在一个射手的第一视角里。

从鬼魅到变异蜘蛛以及巨大的变形虫都准备好让末日后莫斯科的普通一天不好过。

这款游戏并不像同类末日后题材的辐射系列那样轻松搞笑,相反它反映了人类在艰难时期所经历的残酷,一些时候让人触动。

星际边界

你可以把“星际边界”想象成具有实际故事情节且发生在太空的“泰拉瑞亚”或者2D版的“我的世界”。有什么理由不去喜爱它呢?

和“我的世界”十分类似,你可以狩猎、挖矿、或者建造。但是和流行的3D沙盘游戏不同,你还能旅行到其他的星球并且加入一个实际的故事主线。开始时你的飞船搁浅在轨道上,你的第一项挑战包括熟悉游戏的玩法机制和寻找燃料,这些燃料使得你的飞船能够探寻程序产生的各种星球。更多的是,程序会为每一个星球产生多样的怪兽,这样在你的旅途上你将会遭遇一些奇异的生物。

“星际边界”是一款预览版游戏,所以你可能会发现一些不完善的机制(最起码弓和箭有一点不太好使)或者经历一到两次崩溃。尽管它仍在测试当中,但仍旧是一款有趣而有特色的游戏。

0 A.D.

工人们正在建造建筑和采摘草莓 工人们正在建造建筑和采摘草莓

尽管“0 A.D.”几年前已经就面向linux,但是因为它在2013年的所有成就,我们认为它应该在这份名单上占据一席之地。

它是名单上唯一一款免费且开源的产品,最近通过募捐活动筹得了$33,251 - 足够了,他们说,准备雇佣一名程序员全职工作一年。虽然并没有达到它最初的募捐目标,但仍然获得了$33,251去支撑这个开源项目。

比任何都重要的是,它很有趣。“帝国时代”风格的实时战略游戏的粉丝们将享受历经多年打造的“0 A.D.”。虽然持续改进细节,但这款作品仍然有很长的一段路要走,还有一名志愿程序员在坚持完善它。

纸箱里的坦克战争

塔防类游戏就像黑白棋或者扫雷游戏那样普遍,但是“纸箱里的战争”添加了一剂令人上瘾的魅力。

它独特的纸工艺美学非常起效,使得24个关卡散发出永不疲倦的魅力,让你流连忘返。每一个沉溺于即时塔防游戏的玩家都能接受这款游戏$3.99的售价。简单有趣,但又魅力十足。

FEZ

我喜欢fezes,fezes很酷。 我喜欢fezes,fezes很酷。

我们在九月份评论了“FEZ”,虽然是2D游戏,但是能够变换视角,一个带着毡帽和面团宝宝一样有趣的主人公让其名声大噪。

跳跃谜题、令人头疼的视角谜题以及游戏里的幽默,所有的这些都让这款作品保持新鲜,即便你已经在一张地图上摔死了很多次或者靠近了引爆的炸弹。

欧陆风云 IV

想象一个不同的“文明”系列,更多的微观管理、更多的历史,以及一个巨大的不同:它支持linux!

和“文明”系列不一样的是,“欧陆风云”系列是历史决策游戏,虽然它并不详细的描述历史教科书。“欧陆风云IV”没有把战争延绵在几千年的历史上,它仅仅只包含了1444年-1821年。但是这并不意味着“欧陆风云”不如长跨度的“文明”系列那样有趣和迷人。

“欧陆风云IV”是实时游戏,而不是回合制的,所以你需要经常暂停以便更好地审视你不断增长的帝国或者你富裕国家的广阔的贸易路线。考虑到“大战略”游戏玩法的内容篇幅,“欧陆风云”系列可能会吓到初学者,但是如果你想在美洲殖民历史上大展手脚或者扭转拿破仑战争的局势,这些努力都是值得的。

肯塔基0号路

肯塔基0号路”一直以来都是我最喜爱的游戏之一。它是名单里最富艺术气息的作品,同时它也是彰显游戏诗意的典范,当然这里不考虑2014年及以后我们所能找到所有AAA级作品。

“肯塔基0号路”给点击类冒险游戏带来了魔幻现实主义色彩,将经典的冒险游戏元素和超现实融合在一起。游戏开始时,你试图寻找一个不明就里的地址去投递古董,但是随后剧情将朝着无法预料,通常是奇特的方向发展。

这是一款探索类游戏,不是为了完成某个任务或者去营救一个总是在其他城堡里的公主。它不会被每一个人喜欢 - 也不会符合每一个人对“游戏”的定义 - 但是它却是最具意义和创造性,同时又让我享受其中的作品之一。


via: http://www.omgubuntu.co.uk/2013/12/top-10-linux-games-2013

译者:OnlySang 校对:wxy

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

Google Calendar 是时下最流行的网页应用程序之一。用户可以通过网络接口或者本地的应用程序跨设备访问或同步 Google Calendar。在 Linux 上,有很多方法可以本地访问 Google Calendar,比如用电子邮件客户端插件(如 Evolution 或 Thunderbird )或者用日历应用程序(如 Sunbird 或 Rainklendar)。这些方法通常都需要安装不必要的大型软件,这些软件你很可能根本不需要。

如果你只是想在本地的 Linux 上翻翻 Google Calendar 或者用它设置提醒,那么你可以考虑使用Google Calendar 命令行接口(或者 gcalcli),这是一种更轻型化的方法。对于 Linux 桌面操作系统用户来说,好处不止这些,如果将 gcalcli 与Conky搭配使用你就可以把 Google Calendar 透明地融入桌面主题。

在这个教程中,我会展示如何利用 gcalcli 和 Conky 将 Google Calendar 融入 Linux 桌面

在 Linux 安装 gcalcli

在安装 gcalcli 之前,要确保你正在用的是 Python 2 而不是 Python 3 ,因为 Python 3 与 gcalcli 不兼容。

如果是在 Debian、Ubuntu 或 Linux Mint 上可以用下面的命令安装 gcalcli

$ sudo apt-get install git python-pip python-gdata python-dateutil python-gflags python-vobject python-parsedatetime
$ sudo pip install google-api-python-client
$ sudo pip install apiclient urllib3
$ git clone https://github.com/insanum/gcalcli.git
$ cd gcalcli
$ sudo python setup.py install 

温馨提醒:Ubuntu 或 Linux Mint 的软件库中虽然有 gcalcli,但是这些版本并不包含其最新的特性和针对 bug 的修复。所以这里推荐按以上所述的方法由源文件构建 gcalcli。

对于Fedora 、CentOS 或 RHEL,可按如下方法安装。

$ sudo yum install git python-pip python-gdata python-dateutil python-gflags python-vobject
$ sudo pip install google-api-python-client
$ sudo pip install apiclient urllib3
$ git clone https://github.com/insanum/gcalcli.git
$ cd gcalcli
$ sudo python setup.py install 

gcalcli 的 Google 认证

为了能让 gcalcli 访问 Google Calendar ,你需要用你的 Google 帐号通过 OAuth2 认证,以使 gcalcli 获得许可来访问你的 Google Calendar。

第一次运行 gcalcli 的时候,OAuth2 认证会自动进行初始化。因此运行下面的命令开始

$ gcalcli agenda

该命令会输出如下的一个 URL 。

同时这个命令也会弹出一个指向该 URL 的浏览器窗口。如果因为一些原因,你的浏览器没有反应,你可以手动复制粘贴这个 URL 到你的浏览器中。

如果你还没有登录你的 Google 帐号,你得先登录。然后你会看到下面要求你许可 gcalcli 管理 Google Calendar 的信息。点击“Accept”即可。

支持 Google Calendar API

认证后,下一步就是支持 Google Calendar 的 API 访问。gcalcli 通过 Google Calendar API 访问Google Calendar 。但是,如果要使用 Google API 就必须明确设置你的 Google 帐号支持 Google API。

首先到:https://cloud.google.com/console。点击项目列表下的“API Project ”

转到“APIs & auth ”下面的“APIs”你会看见一个 Google APIs 列表。点击“Calendar API”的开关按钮使其能支持 API。

现在转到“APIs & auth”下的“Registered apps”那里,去注册 gcalcli app。点击最顶端的“Registered app”按钮。

填写 app 的名字(如,“My Gcalcli”),然后选择“ Native ”作为平台。点击“Registered”按钮。

这一步会生成并显示 OAuth 用户的 ID 和密码。另外关于上面提示的“You have not set up your product name(您没有设置您的产品名称)”,你可以忽略掉。

OAuth的认证结果将会保存在 ~/.gcalcli\_oauth 文本文件中。

用 gcalcli 在命令行中访问 Google Calendar

你现在马上就可以用 gcalcli 访问Google Calendar 了。

在你的家目录创建一个如下的 gcalcli 配置文件。将你先前获得的 OAuth 用户 ID 和 密码按下面格式输入进去。

$ vi ~/.gcalclirc

--clientid='XXXXXXXXXX.apps.googleusercontent.com' --clientsecret='YYYYYYYYYYYYYYYY'

到了这一步,你应该可以在命令行运行 gcalcli 了。

试试下面的命令,这两个命令会分别打印出一个你的 Google Calendar 的列表和今后 5 天的日程安排。

$ gcalcli list
$ gcalcli agenda

将 gcalcli 与 Conky 结合

最后一步就是将 gcalcli 的输出导入你的桌面主题中。为了做到这一点,你需要 Conky 这个非常强大的工具,它可以把许多信息直接显示在你的桌面主题中。

首先在你的 Linux 系统上 安装 Conky

然后,在你的家目录下的某个地方( 例如 ~/bin )创建如下的脚本程序。

$ vi ~/bin/gcal.sh

#!/bin/sh

gcalcli --conky calw 2 |
  sed -e 's/^[(0\x71^[(B/?/g' \
      -e 's/^[(0\x78^[(B/?/g' \
      -e 's/^[(0\x6A^[(B/?/g' \
      -e 's/^[(0\x6B^[(B/?/g' \
      -e 's/^[(0\x6C^[(B/?/g' \
      -e 's/^[(0\x6D^[(B/?/g' \
      -e 's/^[(0\x6E^[(B/?/g' \
      -e 's/^[(0\x74^[(B/?/g' \
      -e 's/^[(0\x75^[(B/?/g' \
      -e 's/^[(0\x76^[(B/?/g' \
      -e 's/^[(0\x77^[(B/?/g'

$ chmod +x ~/bin/gcal.sh 

重要提醒:上面脚本中的 ‘ [’ 必须是真正的 ESCAPE 键( 也就是说在 vi 中按 Ctrl-V 然后按 Esc )。

这个脚本程序将 VT100 转义序列转成Unicode组件图字符。这是必须的一步,因为 Conky 不支持 gcalcli 使用的 ANSI 字符画。

最后,在你的家目录中创建下面的 Conky 配置文件。

$ vi ~/.conkyrc

alignment top_right
maximum_width 630
minimum_size 330 10
gap_x 25
gap_y 50

own_window yes
own_window_type conky
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_transparent yes
own_window_argb_visual yes
own_window_argb_value 0

update_interval 300
background no

border_width 1
default_color cornflowerblue
default_outline_color white
default_shade_color white
double_buffer no
draw_borders no
draw_graph_borders no
draw_outline no
draw_shades no
max_port_monitor_connections 64
max_specials 512
max_user_text 16384
text_buffer_size 8096
no_buffers yes
out_to_console no
uppercase no
use_xft yes
xftfont Bitstream Vera Sans Mono:size=10

TEXT
*** Google Calendar Agenda ***
${execpi 300 gcalcli --conky agenda}
${execpi 300 ~/bin/gcal.sh}

这个 Conky 配置文件会直接在你的桌面主题上显示你的 Google Calendar 的一个日程表和一个两个星期的时间表。

现在,你可以运行下面的命令激活 Conky。

$ conky

你应该可以在 Linux 桌面的右边看到 Google Calendar,如题图。

确认 Google Calendar 可以正常运行后,你可以将 Conky 设为在每次登录时自动启动。

设置 Google Calendar 提醒

gcalcli 也可以为 Google Calendar 中即将到来的事件发送一个提醒。它使用 notify-send 命令。对于 Google Calendar 提醒,你可以像下面一样设置一个工作进程。

$ crontab -l

*/10 * * * * /usr/local/bin/gcalcli remind

via: http://xmodulo.com/2013/12/integrate-google-calendar-linux-desktop.html

译者:Linchenguang 校对:Caroline

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

当你使用 WEP,WPA 或 WPA2-PSK 连接到无线网络时,选择“自动连接”后密码将保存在Linux Mint(或任何其他的操作系统)中。试想一个情况,例如你需要提供密码给来访者,这时你需要知道WiFi密码,然而你有没有把它记下来。你可以轻松地找到之前连接的WiFi密码。

在这篇新手教程中,我们将会指导你如何在 Linux Mint 16 中找到保存的 WiFi 密码

在 Linux Mint 中找到保存的 WiFi 密码:

找到保存的 WiFi 密码,其实过程非常简单。点击 Menu 输入network。在其中选择Network Connections

在 Network Connections 中,你可以看到所有你最近链接过的 WiFi 网络。选择你想要知道密码的一个,点击Edit

Wi-Fi Security 选项卡下,选中 Show password 来显示密码。

通过以上步骤,你就可以得到保存的 WiFi 密码。你也可以通过类似的步骤在 Ubuntu 中获取保存的 WiFi 密码。希望这篇文章能够帮到你。


via: http://itsfoss.com/find-wifi-password-linux-mint-16/

译者:乌龙茶 校对:Caroline

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

Nmap亦称为Network Mapper(网络映射)是一个开源并且通用的用于Linux系统/网络管理员的工具。nmap用于探查网络、执行安全扫描、网络核查并且在远程机器上找出开放端口。它可以扫描在线的主机、操作系统、包过滤器和远程主机上的开放端口。

Nmap 命令和示例

我会分两个章节讲述NMAP的常见的使用方法,这篇是nmap系列的第一部分(译注:原文为I’ll be covering most of NMAP usage in two different parts and this is the first part of nmap serious,这里serious可能为笔误,应该为series)。在这个步骤里,我用两个没有防火墙的服务器来测试nmap命令的工作。

  • 192.168.0.100 – server1.tecmint.com
  • 192.168.0.101 – server2.tecmint.com

Nmap 命令使用

# nmap [Scan Type(s)] [Options] {target specification}

如何在Linux上安装nmap

如今大部分Linux发行版像Red Hat, CentOS, Fedoro, DebianUbuntu已经在它们默认的包管理仓库中包含了nmap,可以通过YumAPT安装、管理和更新软件包。在这些发行版上安装nmap,可以使用下面的命令。

# yum install nmap      [基于 Red Hat 的发行版]
$ sudo apt-get install nmap [基于 Debian 的发行版]

安装了最新的nmap程序之后,你就可以跟着这篇文章中的示例指令来学习了。

1. 带主机名和IP地址扫描系统

nmap工具提供了不同的方法来扫描一个系统。在这个例子中,我使用主机名为server2.tecmint.com的机器执行扫描来找出所有开放端口,服务和系统上的MAC地址。

使用主机名扫描

[root@server1 ~]# nmap server2.tecmint.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 15:42 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.415 seconds
You have new mail in /var/spool/mail/root

使用IP地址扫描

[root@server1 ~]# nmap 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 11:04 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
958/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.465 seconds
You have new mail in /var/spool/mail/root

2. 使用"-v"选项扫描

你可以看到带"-v"选项的命令给出了关于远程机器的更多信息。

[root@server1 ~]# nmap -v server2.tecmint.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 15:43 EST
Initiating ARP Ping Scan against 192.168.0.101 [1 port] at 15:43
The ARP Ping Scan took 0.01s to scan 1 total hosts.
Initiating SYN Stealth Scan against server2.tecmint.com (192.168.0.101) [1680 ports] at 15:43
Discovered open port 22/tcp on 192.168.0.101
Discovered open port 80/tcp on 192.168.0.101
Discovered open port 8888/tcp on 192.168.0.101
Discovered open port 111/tcp on 192.168.0.101
Discovered open port 3306/tcp on 192.168.0.101
Discovered open port 957/tcp on 192.168.0.101
The SYN Stealth Scan took 0.30s to scan 1680 total ports.
Host server2.tecmint.com (192.168.0.101) appears to be up ... good.
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.485 seconds
               Raw packets sent: 1681 (73.962KB) | Rcvd: 1681 (77.322KB)

扫描多台主机

你可以简单地通过在namap后写上它们的IP地址或者主机名来扫描多台主机。

[root@server1 ~]# nmap 192.168.0.101 192.168.0.102 192.168.0.103

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:06 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 3 IP addresses (1 host up) scanned in 0.580 seconds

4. 扫描整个子网

你可以通过通配符来使nmap扫描整个子网或者IP段。

[root@server1 ~]# nmap 192.168.0.*

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:11 EST
Interesting ports on server1.tecmint.com (192.168.0.100):
Not shown: 1677 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  rpcbind
851/tcp open  unknown

Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 256 IP addresses (2 hosts up) scanned in 5.550 seconds
You have new mail in /var/spool/mail/root

从上面的输出你可以看到nmap扫描了整个子网,并给出了网络在线主机的信息。

5. 使用IP地址的最后一段扫描多台主机

你可以简单地通过指定IP地址的最后8位执行扫描多台主机。比如说,这里我在IP地址为192.168.0.101, 192.168.0.102 and 192.168.0.103的机器上执行了扫描。

[root@server1 ~]# nmap 192.168.0.101,102,103

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:09 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 3 IP addresses (1 host up) scanned in 0.552 seconds
You have new mail in /var/spool/mail/root

6. 从文件中扫描主机列表

如果你有更多的主机要扫描,并且所有的主机都写在一个文件中,你可以直接让namp读取它并执行扫描。让我们看看要怎么做。

创建一个名为“nmaptest.txt”的文本文件,并定义所有你想要扫描的IP地址或者服务器的主机名。

[root@server1 ~]# cat > nmaptest.txt

localhost
server2.tecmint.com
192.168.0.101

接着,带“iL”参数运行nmap命令来扫描文件中所有列出的IP地址。

[root@server1 ~]# nmap -iL nmaptest.txt

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 10:58 EST
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 1675 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
111/tcp open  rpcbind
631/tcp open  ipp
857/tcp open  unknown

Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
958/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
958/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 3 IP addresses (3 hosts up) scanned in 2.047 seconds

7. 扫描一个IP范围

在使用nmap扫描时,你可以指定一个IP范围。

[root@server1 ~]# nmap 192.168.0.101-110

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:09 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 10 IP addresses (1 host up) scanned in 0.542 seconds

8. 扫描网络时排除部分主机

你可以在执行全网扫描的时候排除一些主机,或者在使用通配符扫描时使用“–exclude”选项。

[root@server1 ~]# nmap 192.168.0.* --exclude 192.168.0.100

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:16 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 255 IP addresses (1 host up) scanned in 5.313 seconds
You have new mail in /var/spool/mail/root

9. 扫描系统信息

(译注:原文这里提到了traceroute,实在并无此内容,删除之)

使用nmap,你可以检测到运行在远程主机上的操作系统和版本。要启用OS及其版本检测,我们可以使用带 “-A” 选项使用nmap。

[root@server1 ~]# nmap -A 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:25 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 4.3 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.2.3 ((CentOS))
111/tcp  open  rpcbind  2 (rpc #100000)
957/tcp  open  status   1 (rpc #100024)
3306/tcp open  mysql   MySQL (unauthorized)
8888/tcp open  http    lighttpd 1.4.32
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:
SInfo(V=4.11%P=i686-redhat-linux-gnu%D=11/11%Tm=52814B66%O=22%C=1%M=080027)
TSeq(Class=TR%IPID=Z%TS=1000HZ)
T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

Uptime 0.169 days (since Mon Nov 11 12:22:15 2013)

Nmap finished: 1 IP address (1 host up) scanned in 22.271 seconds
You have new mail in /var/spool/mail/root

在上面的输出中,你可以看到运行在远程主机上操作系统的TCP/IP指纹和更详细的运行在远程主机上的特定端口和服务。

10. 使用nmap启用系统检测

使用选项“-O”或“-osscan-guess”同样可以发现OS信息。

[root@server1 ~]# nmap -O server2.tecmint.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:40 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:
SInfo(V=4.11%P=i686-redhat-linux-gnu%D=11/11%Tm=52815CF4%O=22%C=1%M=080027)
TSeq(Class=TR%IPID=Z%TS=1000HZ)
T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=Option -O and -osscan-guess also helps to discover OSR%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

Uptime 0.221 days (since Mon Nov 11 12:22:16 2013)

Nmap finished: 1 IP address (1 host up) scanned in 11.064 seconds
You have new mail in /var/spool/mail/root

11. 扫描主机来检测防火墙

下面的命令会在远程主机上执行扫描来检测主机上是否使用了任何包过滤器或者防火墙。

[root@server1 ~]# nmap -sA 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:27 EST
All 1680 scanned ports on server2.tecmint.com (192.168.0.101) are UNfiltered
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.382 seconds
You have new mail in /var/spool/mail/root

12. 扫描主机以检查其受到防火墙保护

扫描检测一个主机是否受到任何包过滤器软件或者防火墙保护。

[root@server1 ~]# nmap -PN 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:30 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.399 seconds

13. 找出网络中在线主机

在“-sP”选项的bang帮助下,我们可以简单地检测网络中的主机是否在线,带这个选项后nmap会跳过端口检测和其他检测。

[root@server1 ~]# nmap -sP 192.168.0.*

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 11:01 EST
Host server1.tecmint.com (192.168.0.100) appears to be up.
Host server2.tecmint.com (192.168.0.101) appears to be up.
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 256 IP addresses (2 hosts up) scanned in 5.109 seconds

14. 执行快速扫描

你可以带“-F”选项仅扫描所有列在nmap-services文件中的端口。

[root@server1 ~]# nmap -F 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:47 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1234 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.322 seconds

15. 找出nmap版本

你可以使用“-V”选项找出运行在你机器上的nmap版本。

[root@server1 ~]# nmap -V

Nmap version 4.11 ( http://www.insecure.org/nmap/ )
You have new mail in /var/spool/mail/root

16. 连续扫描端口

使用“-r”选项而不随机排列端口的扫描顺序。

[root@server1 ~]# nmap -r 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:52 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.363 seconds

17. 显示主机接口及路由

你可以使用nmap的“–iflist”选项来列出本机的主机接口和路由信息。

[root@server1 ~]# nmap --iflist

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:07 EST
************************INTERFACES************************
DEV  (SHORT) IP/MASK          TYPE     UP MAC
lo   (lo)    127.0.0.1/8      loopback up
eth0 (eth0)  192.168.0.100/24 ethernet up 08:00:27:11:C7:89

**************************ROUTES**************************
DST/MASK      DEV  GATEWAY
192.168.0.0/0 eth0
169.254.0.0/0 eth0

在上面的输出中,你可以看到上述清单列出了你系统中的已经启用的接口及它们相应的路由。(译注:这样你就知道可以通过这些接口扫描哪些网络了)

18. 扫描特定端口

nmap使用不同的选项来发现远程机器上的端口。你可以用“-p”选项指定你想扫描的TCP端口。默认上,nmap只会扫描TCP端口。

[root@server1 ~]# nmap -p 80 server2.tecmint.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:12 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT   STATE SERVICE
80/tcp open  http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) sca

19. 扫描TCP端口

当然,你可以指定nmap扫描的端口类型(TCP或UDP)和端口号。

[root@server1 ~]# nmap -p T:8888,80 server2.tecmint.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:15 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT     STATE SERVICE
80/tcp   open  http
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.157 seconds

20. 扫描UDP端口

[root@server1 ~]# nmap -sU 53 server2.tecmint.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:15 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT     STATE SERVICE
53/udp   open  http
8888/udp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.157 seconds

21. 扫描多个端口

你可以使用“-p”选项来指定多个要扫描的端口。

[root@server1 ~]# nmap -p 80,443 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 10:56 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT    STATE  SERVICE
80/tcp  open   http
443/tcp closed https
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.190 seconds

22. 扫描网络的端口范围

你也可以使用表达式指定扫描端口的范围。

[root@server1 ~]#  nmap -p 80-160 192.168.0.101

23. 找出主机服务版本号

我们可以使用“-sV”选项找出远程主机上运行的服务及其版本号。

[root@server1 ~]# nmap -sV 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:48 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 4.3 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.2.3 ((CentOS))
111/tcp  open  rpcbind  2 (rpc #100000)
957/tcp  open  status   1 (rpc #100024)
3306/tcp open  mysql   MySQL (unauthorized)
8888/tcp open  http    lighttpd 1.4.32
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 12.624 seconds

24. 使用 TCP ACK (PA) 和 TCP Syn (PS) 扫描远程主机

有时包过滤防火墙阻止了标准ICMPping请求,在这个情况下,我们可以使用TCP ACKTCP Syn方法来扫描远程主机。

[root@server1 ~]# nmap -PS 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:51 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.360 seconds
You have new mail in /var/spool/mail/root

25. 用TCP ACK扫描远程主机的特定端口

[root@server1 ~]# nmap -PA -p 22,80 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:02 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.166 seconds
You have new mail in /var/spool/mail/root

26. 用TCP SYN扫描远程主机的特定端口

[root@server1 ~]# nmap -PS -p 22,80 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:08 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.165 seconds
You have new mail in /var/spool/mail/root

27. 执行隐秘扫描

[root@server1 ~]# nmap -sS 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:10 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.383 seconds
You have new mail in /var/spool/mail/root

28. 用TCP SYN扫描最常用的端口

[root@server1 ~]# nmap -sT 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:12 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.406 seconds
You have new mail in /var/spool/mail/root

29. 执行tcp空扫描来愚弄防火墙

[root@server1 ~]# nmap -sN 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 19:01 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE         SERVICE
22/tcp   open|filtered ssh
80/tcp   open|filtered http
111/tcp  open|filtered rpcbind
957/tcp  open|filtered unknown
3306/tcp open|filtered mysql
8888/tcp open|filtered sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 1.584 seconds
You have new mail in /var/spool/mail/root

这些就是目前NMAP 的用法,我会写出更有创造性的NMAP的第二部分(译注:原文为 I’ll be coming up more creative options of NMAP in our second part of this serious,这里serious可能为笔误,应该为series)。接着,不要走开也别忘了分享你们有价值的评论。


via: http://www.tecmint.com/nmap-command-examples/

译者:geekpi 校对:wxy

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

虽然曾经被认为是过时的艺术形式,但动态GIF图片现在复苏了。如果你还没有留意到,不少在线分享和社交网络网站都开始支持动态GIF图片,例如,TumblrFlickrGoogle+Facebook的部分地方。由于在消费和共享上的容易,GIF的动画已经成为主流互联网文化的一部分了。

所以,你们中的一些人会好奇怎样才能生成这样的动态GIF图片。已经有各种各样专门用来生成动态GIF图片的在线或离线工具。另一种选择是创建一副动态GIF图片时关闭现有的视频剪辑。在这个教程中,我会描述在Linux上如何将一段视频文件转换成一副动态GIF图片

作为一个更有用的例子,让我展示如何将一个YouTube视频转换成一副动态GIF图片

第一步:下载YouTube视频

首先,下载一个你想要转换的YouTube视频。你可以使用youtube-dl这个工具将YouTube视频保存为MP4文件。假设你把你最爱的YouTube视频保存为"funny.mp4"。(译注:对于墙内的同学,请无视YT吧,自行去好人楼主那里寻找一个MP4吧,;-})

第二步:从视频中解压视频帧

接下来,在Linux系统上安装FFmpeg,我会用这个工具去解压从视频中解压出视频帧。

下面的指令会解压出独立的视频帧,将它们保存为GIF图片。确保使用诸如("out%04d.gif")的输出文件格式。这样,独立的帧就被合适地命名并保存。

ffmpeg -t  -ss  -i  out%04d.gif

例如,如果你想解压输入视频的视频帧,从第10秒开始,每5秒一帧,请运行下列命令。

$ ffmpeg -t 5 -ss 00:00:10 -i funny.mp4 out%04d.gif 

在完成FFmpeg之后,你会看到一组创建出来的GIF文件,它们被命名为"out[\d+].gif"。

第三步:合并视频帧进一副动态GIF

下面这一步要合并单个的GIF文件成一副动态GIF图片。为此,你可以使用ImageMagick。

首先,如果你还没有的话,在Linux系统上安装ImageMagick

convert -delay x -loop 0 out*gif 

在这个命令中,"-delay"是控制动态速度的选项。这个选项表示在显示下一帧画面前需要等待的秒数:帧数/每秒帧数 。"-loop 0"选项表示动画的无限次循环。如果你愿意,你可以指定"-loop N"让动画只重复N次。

例如,为了生成一副每秒20帧和循环无数次的动态GIF图片,使用如下命令。

$ convert -delay 1x20 -loop 0 out*.gif animation.gif 

第四步(可选):减少动态GIF的大小

最后这一步(可选)是通过使用ImageMagick的GIF优化功能来减少生成的GIF文件的大小。

使用下列命令去减少GIF大小。

convert -layers Optimize animation.gif animation_small.gif 

现在你已经准备好在你的社交网络上分享制作完成的GIF图片。

享受技术带来的乐趣吧!:-)


via: http://xmodulo.com/2013/11/convert-video-animated-gif-image-linux.html

译者:KayGuoWhu 校对:wxy

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

在“大数据”时代,我们会经常遇到有大文本文件(上 GB 或更大)的情况。假设需要我们手工的搜索和编辑这些大文件,或者为了解决一些特定的问题而需要手工分析多个上 GB 的日志文件。传统的文本编辑软件对处理这样的大文件不太有效,当我们试图打开一个大文件时会经常由于内存不足而郁闷的不行。

如果你是一个精明的系统管理员,你也许会用 cat、tail、grep、sed、awk 等这些命令的组合来打开和编辑一个文本文件。在这篇教程里,我将会谈论关于如何在 Linux 中打开(并编辑)一个大文本文件的更友好的方式方法。

Vim 的 LargeFile 插件

Vim文本编辑器拥有大量的插件(或脚本),它们能扩展 VIM 的功能。其中的一个Vim插件是 LargeFile 插件

LargeFile 插件可以使大文件更迅速的被加载和编辑,它是通过关闭 VIM 的一些像事件、回退、语法高亮等功能来实现的。

要在 VIM 上安装 LargeFile 插件,首先要确认是否已经安装 VIM。

在 Debian、 Ubuntu 或 Linux Mint 系统中:

$ sudo apt-get install vim 

在 Fedora、CentOS 或 RHEL 系统中:

$ sudo yum install vim-enhanced 

可以从 Vim website 上下载 LargFile 插件,最新版本号是5,下载的文件将会保存为 Vimball 格式(以 .vba 结尾)。

要在你的 home 目录下安装插件,用 VIM 打开 .vba 文件,如下所示。

$ gunzip LargeFile.vba.gz
$ vim LargeFile.vba 

在 VIM 窗体上输入 “:so %”,然后按回车键,就可以在你的 home 目录下安装这个插件了。

完成后,输入 “:q” 退出 VIM。

这个插件将会被安装在 ~/.vim/plugin/LargeFile.vim 下。现在可以像平常一样使用 VIM 了。

当在 VIM 中装载一个“大”文件的时候,这个插件起的作用就是关掉事件、回退、语法高亮等功能。默认情况下大于 100MB 的文件就会被插件认为是“大文件”。要改变也个默认设置,你可以编辑 ~/.vimrc 文件(如果不存在就创建一个)。

如要把大文件的标准最小定为 10MB 的话,可以在 ~/.vimrc 中添加

let g:LargeFile=10

虽然 LargeFile 可以加速文件装载的速度,但 VIM 自身对编辑相当大的文件支持不太好,因为它会一下子把整个文件都加载进内存。例如,用 VIM 装载 1G 大小的文件,它就会占很多内存和交换空间,如下图所示的顶部输出。

所以如果你的文件明显大于你 Linux 系统的物理内存的话,就要考虑其它的选择,如下所述。

glogg 日志资源管理器

如果你只需要查看一个文本文件,并不对它做编辑,可以考虑下 glogg。它是一款基于图形用户界面的独立日志分析器。这个 glogg 分析器支持通过正则表达式和通配符来对要打开的文本文件进行过滤和筛选,使用户只看到其真正关注的内容。

在 Debian (Wheezy 版本或更高版本)、Ubuntu 或 Linux Mint 系统中安装 glogg : 

$ sudo apt-get install glogg 

在 Fedora (17 版本或更高版本) 系统中安装 glogg :

$ sudo yum install glogg 

用 glogg 打开文本文件 :

$ glogg test.log 

glogg 能很快的打开一个大文本文件。我花了大约 12 秒就打开了一个 1G 的日志文件。

在 "Text" 区域,你可以输入正则表达式,然后点击 "Search" 按纽,它支持表达式大小写敏感搜索以及自动刷新功能。搜索后,在窗体底部会显示出筛选的结果内容。

从装载文件来跟 VIM 对比, glogg 显得更轻量级,在加载完一个 1G 的日志文件后,它仅仅只使用了 83M 的物理内存。

JOE 文体编辑器

JOE 是GPL下发布的一个轻量级的基于终端的文本编辑器。JOE 是一款少有的支持大文件的文本编辑器,可以打开和编辑比物理内存大的文件。

此外,JOE支持各种功能强大的文本编辑功能,如非破坏性编辑,用正则表达式搜索和替换,无限次的撤销/重做,语法高亮等。

在 Debian、Ubuntu 或 Linux Mint 系统中安装 JOE:

$ sudo apt-get install joe 

在 Fedora、CentOS 或 RHEL 系统中安装 JOE:

$ sudo yum install joe 

要打开编辑文本文件,请运行:

$ joe test.log 

相比上面提到的 glogg 来说,用 JOE 加载一个大文本文件会有点卡,加载一个 1G 的文件要用将近 30 秒的时间,不过考虑到要对文件进行全文编辑,这还能忍受。一旦文件加载完成,就可以在相当快捷的终端模式中编辑此文件。

JOE的内存消耗令人印象深刻。加载并编辑一个1GB的文本文件,只花费47MB的物理内存。

如果你还知道在 Linux 中打开/编辑大文本文件的其它方法的话,请跟我们分享!


via: http://xmodulo.com/2013/12/open-large-text-file-linux.html

译者:runningwater 校对:jasminepeng

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