linux中国_ 发布的文章

2013年是开源界丰收的一年。随着Android系统的崛起,在移动设备领域拥有超过85%的市场份额,让Linux前所未有的站在了最前沿。已经在日益增多的报道关于基于Linux发行版受欢迎度增加呈现出来,在今年新出了14个新的发行版。如果你不巧错过了他们,那么瞧一瞧吧!

  1. Slackel Linux:该发行版基于 Slackware Linux 和 Salix Os 。并将KDE作为默认的桌面环境。
  2. SalentOS:基于目前非常流行的 Ubuntu 操作系统,这个发行版用 Openbox 作为默认的窗口管理器。他针对于初学者,是一个比较轻量级的 Linux 发行版。(译注:超爱Openbox :P)
  3. Linux Lite: 这款基于 Linux 的轻量级操作系统受用于新手,用的是 XFCE 桌面环境。
  4. Kali Linux: BackTrack Linux 复兴了!,众所周知的发行版,全新 Kali Linux 备战待敌。这是一款用于渗透测试的发行版,在它正式推出后,立马得到了社区的支持。
  5. Springdale Linux: 基于红帽的一款发行版,Springdale Linux发行版最初称为 PUIAS linux。它由美国的高级研究所连同普林斯顿大学一起维护。
  6. Emmabuntüs: 该发行版有大量的预加载程序,便于日常的操作。基于 Xubuntu 操作系统,是一款轻量级 OS。
  7. Antergos: 该发行版起初命名为 Cinnarch 。这个名字是由 Archlinux 发行版和 Cinnamon 桌面环境组合而成。
  8. SolydXK: SolydX 和 SolydK 都基于 Debian Linux 发行版,分别使用了 XFCE 和 KDE 桌面。而 SolydXK 是这两者的混合版兼具家庭版和商业版。
  9. Point Linux: 结合了 Debian 发行版和 Mate 桌面环境,Mate 是 GNOME2 的一个分支。这个发行版的目标在于简易的设置和使用。
  10. Simplicity Linux: 此发行版的默认桌面是 LXDE,平台本身衍生于 Puppy Linux发行版。
  11. LXLE: 名字再次暗示了该发行版的本质。它基于 Lubuntu 系统的长期支持版本,是一个轻量级的发行版。
  12. Kwheezy: 基于 Debian Linux 发行版同时携带 KDE 桌面环境。该系统已经默认安装了各样的应用程序和媒体解码器。
  13. MakuluLinux: 在这个基于 Debian 的发行版中预装了大量的应用程序,于2013年发布。
  14. OpenMandriva LX: 该发行版基于俄罗斯的 ROSA 发行版。该发行版也受 Mandriva 发行版的支持。事实上,早些时候 Mandriva 也是由 ROSA 分支出来的。

via: http://itsfoss.com/new-linux-distros-2013/

译者:Luoxcat 校对:wxy

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

系统管理员必须维护他们服务器的健康运行。其中一个重要的部分就是内存。当服务器内存使用率过高时,它会降低服务器的性能。Linux有一个称为 free 的工具,来监控内存使用率。

free 命令是什么

free 命令是一个显示系统中空闲和已用内存大小的工具。free 命令的输出和 top 命令相似。大多数Linux发行版已经含有 free 命令。

如何运行 free

想要运行,只需在控制台输入free 即可。不带选项运行会显示一个以KB为单位的默认输出。

$ free

free默认视图

从上面的截图我们看到:

内存 (以KB计)

  • Total(全部) : 1026740
  • Used(已用) : 843396
  • Free(可用) : 183344
  • Shared(共享) : 0
  • Buffers(块设备缓存区) : 52704
  • Cached(文件缓存) : 376384

译注:关于Buffers和Cached的区别,来自 http://www.taobaotesting.com/blogs/qa?bid=2265 的一段解释如下:

buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.

cached是用来给文件做缓冲。

那就是说:buffers是用来存储,目录里面有什么内容,权限等等。而cached直接用来记忆我们打开的文件

Swap (以KB计)

  • Total(全部) : 1045500
  • Used(已用) : 3376
  • Free(可用) : 1042124

当你看见 buffer/cache 的空闲空间低或者 swap 的空闲空间低,说明内存需要升级了。这意味这内存利用率很高。请注意 shared(共享)内存列应该被忽略 ,因为它已经被废弃了。

以其它单元显示内存信息

如我们先前提到的,默认 free 会以 KB 为单位显示信息。free 同样提供给我们 b (B), -k (KB), -m (MB), -g (GB) and –tera (TB)这些单位。要显示我们想要的单位,只要选择一个并在 free 后面跟上。下面一个是以 MB 为单位的输出样例。

$ free -m

free命令以MB为单位

这个技巧同样适用于-b, -k, -g 以及 –tera 选项。

以适于人类可读方式显示内存信息

free 同样提供了-h选项,这意味着适于人类可读(译注:系统上可能并不存在-h选项,已被-m取代)。那么这与其它的选项有什么不同呢,如-m(MB)选项? 可见的最大不同是-h选项会在数字后面加上适于人类可读的单位。让我们看一个例子。

$ free -h

人类可读的free

如我们一起看到的,在1,0数字后这里是G(GB)字母。当数字并没有达到GB时,free足够聪明来知道并在每个数字后面跟上合适的单位。后面的M - 数字929告诉我们它有929MB(译注: 原文为929 number tell us its 969 Megabytes,这里应该为输入错误)。

间隔显示 free

作为一个状态检查工具,最好的统计内存利用率的方法是使用延迟间隔。这么做的话,我们可以使用-s选项后面跟上我们想要间隔的N秒数。我们可以在后面合并几个选项来使输出满足我们的需求。假如我们想要每3秒统计一次内存利用率并且适于人类可读,那么就像这样做:

$ free -hs 3

间隔3s显示free

显示高低内存利用率

如果我们想要知道高低内存统计,我们可以使用-l选项。下面是一个例子。

$ free -l

Free 的 低-高 统计

显示 Linux 全部内存

如果我们需要每列的总计信息,我们可以在 free 命令后面跟上 -t 选项。这会在字底部额外加入一行显示。

$ free -t

free命令带总计内存

总结

除了vmstat以外,free 命令也是一个用于统计内存利用率的简单统计工具。用这个你可以快速查看你的 Linux 内存信息。free 命令使用 /proc/meminfo 作为基准来显示内存利用率信息。如往常一样,你可以在控制台下输入 man free 来获取更多关于 free 的信息。


via: http://linoxide.com/linux-command/linux-free-command/

译者:geekpi 校对:Caroline

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

作为一名系统管理员,我们需要弄清楚在一个特定的时间点都有谁活跃在系统上。必须严密监视我们的服务器。但是,我们当然不可能一天24小时都盯着系统。在linux系统中,我们可以使用who命令查看登录者信息。

什么是 who 命令

who命令能够打印 当前都有谁登录到系统中 的相关信息 。who命令只会显示真正登录到系统中的用户。它不会显示那些通过su命令切换用户的登录者。

如何使用who命令

在大多数linux发行版中,who命令都是默认安装上的。想使用该命令,只需在控制台敲命令就行了。不带选项的话,运行该命令产生默认输出。

$ who

如何理解输出:

  • 第一列显示用户名称
  • 第二列显示用户连接方式。Tty意味着用户直接连接到电脑上,而pts意味着远程登录。
  • 第三、四列分别显示日期和时间
  • 第五列显示用户登录IP地址。

使用带参数的who命令

Who命令有一些参数用于调整输出。以下是常用的例子。

显示上一次重新启动的时间和日期

使用 -b 选项

$ who -b

可以看到系统启动是在2013年12月21日,下午3:52。

显示初始化进程的当前运行级别

使用 -r 选项,who命令会打印出初始化进程的当前运行级别

$ who -r

输出显示2013年12月21日,下午3:52系统以 级别2 开始运行。

为每一列添加标题

使用 -H 选项为每一列添加标题

$ who -H

只打印当前运行终端的相关信息

可以使用-m选项。

$ who -m

对当前登录用户数量计数

如果系统同时有多人登录在线,-q 选项协助你完成计数功能。

$ who -q

附加空闲时间和PID信息

默认情况下,who命令不会打印空闲时间和PID信息。如果打算显示这些信息,使用-u选项。不要忘记使用 -H选项让显示的信息更加简单易读。

$ who -u -H

空闲时间 包含了最近最后一次活动以来消逝的时间. 所以,00:13 意思是 用户leni已经13分钟没执行过命令了. (.)符号 是指该终端过去的一分钟有过活动。在那期间,我们称之为 “current” 。PID 是用户shell程序的进程ID号。

显示登录进程

使用-l选项

$ who -l

第一列只显示系统登录守护进程的名字。上面截图中的数字 967, 971等是进程ID。

显示所有信息

使用-a选项会显示所有信息。例如:

$ who -a

总结

你会发现 who 命令跟 w 命令在某些方面有些相像。不要为此感到疑惑,为什么linux要实现这些在功能上相近的命令。你可以使用你觉得最适合你的或者适用于某种场合的命令。请查阅who命令手册了解更多详细信息。


via: http://linoxide.com/linux-command/linux-who-command/

译者:l3b2w1 校对:Caroline

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

Nagios是企业普遍使用的最具影响力的网络信息监视系统之一,它可以动态监视指定的网络状态,并在状态异常时发出警告音或邮件报警通知运维人员。监控的类型和警报定时器是完全可定制的。

Nagios的另一强大功能是它能同时监测主机和服务。例如,它可以同时监测到IP地址和TCP/UDP端口号。为进一步阐述此功能,我们假定有台需要监测的web服务器,Nagios可运用在服务器上基于IP/服务器名运行ping命令的方法检测服务器是否在线,同时当服务器的RTT(往返时延)增加时,Nagios会随时告警。另外,Nagios还能检测TCP的80端口(web服务器)是否可达,比如可能出现服务器在线但Apache/IIS没有响应的情况。

而基于Nagios的第三方监测工具如Centreon, FAN , op5 Monitor 在界面设计,自动化运行和技术支持方面在独立的Nagios引擎基础上提供了相应的补充。

本段教程将展示Linux下Nagios的安装与配置.

Debian或Ubuntu下Nagios的安装

Debian系统用户使用apt-get命令就可安装Nagios:

root@mrtg:~# apt-get install nagios3 

Nagios安装过程中可以设置邮件服务器,安装后也可以进行自定义设置。

提示:为使Nagios可正常发送邮件通知,需正确配置SMTP。

可以看到Nagios支持多种邮件传送方式。最常见的莫过于服务器(Internet Site)直接向接收者发送邮件,另一种常见的形式是用智能主机或中继服务器,将邮件传送至中继邮件服务器,然后它负责将邮件传送给接收者。

进行下一步操作时服务器的域名需要包含进去。

最后,设置一下Nagios管理员‘nagiosadmin’的密码,用户可以之后自行修改密码。

CentOS或RHEL下Nagios的安装

使用yum命令来安装,建立repoforge库之后运行如下yum命令:

[root@mrtg ~]# yum install nagios nagios-plugins

监测需求

本段教程中,我们希望完成以下监测内容:

  1. 每三分钟监测一次所有Linux服务器。
  2. 每三分钟监测一次所有思科路由器。
  3. 所有的邮件告警集中发送至[email protected]
  4. 发出告警前Nagios都将进行3次验证以确保问题确有发生。
  5. 当设备的往返时延超过100ms并且/或包丢失量超过20%将发出邮件告警。

余下的教程将指导您如何在Linux系统中配置Nagios。

Ubuntu下Nagios的配置

明确Nagios配置文件的地址至关重要,以下路径指明了Debian系统下Nagios的配置文件地址。

/etc/nagios-plugins     实现监测功能的专有脚本存放地址
/etc/nagios3    添加主机、服务,定义检测和定时器的配置文件
/usr/lib/nagios/plugins     用于监测的可执行文件

接下来的步骤相互关联,由此开始定义主机,主机组及向主机组添加服务操作。

添加主机模板

我们对同一类型的主机定义了对应的模板,这里使用安装文件作举例说明。

首先,为Linux设备定义主机模板。

root@mrtg:~# cd /etc/nagios3/conf.d
root@mrtg:/etc/nagios3/conf.d/# cp generic-host_nagios2.cfg linux-server.cfg 

如下编辑linux-server.cfg。需要修改部分已经标出。

root@mrtg:/etc/nagios3/conf.d/# vim linux-server.cfg    

-

define host{
name                        linux-server    ; 名称,需修改
notifications_enabled       1   
event_handler_enabled       1   
flap_detection_enabled      1   
failure_prediction_enabled  1   
process_perf_data           1   
retain_status_information   1   
retain_nonstatus_information    1 
check_command               example-host-check  ; 检查所用脚本,需修改
check_interval              3       ; 连续检查的间隔,需修改
max_check_attempts          3       ; 产生邮件告警前的自检次数,需修改
notification_interval       0
notification_period 24x7
notification_options        d,u,r
contact_groups              admins  ; 邮件将要发送至的组,需修改
register0
}

接下来,为Cisco设备定义主机模板。

root@mrtg:/etc/nagios3/conf.d/# cp linux-server.cfg cisco-device.cfg 

如下修改cisco-device.cfg。需要修改部分已经标出。

root@mrtg:/etc/nagios3/conf.d/# vim cisco-device.cfg 

-

define host{
name                        cisco-device    ;名称,需修改
notifications_enabled       1   
event_handler_enabled       1   
flap_detection_enabled      1   
failure_prediction_enabled  1   
process_perf_data           1   
retain_status_information   1   
retain_nonstatus_information    1 
check_command               example-host-check  ; 检查时使用的脚本,需修改
check_interval              3   ; 连续检查间隔,需修改
max_check_attempts          3   ; 产生邮件告警前的自检次数,需修改
notification_interval       0
notification_period         24x7            
notification_options        d,u,r
contact_groups              admins  ; 邮件将要发至的组,需修改
register                    0       
}

添加主机

现在已定义主机模板,就可以添加需要监测的主机。以默认的文件作例子展示如下内容。

root@mrtg:/etc/nagios3/conf.d/# cp localhost_nagios2.cfg example.cfg
root@mrtg:/etc/nagios3/conf.d/# vim example.cfg 

-

# Host 1
define host{
use                     linux-server    ; 使用的主机模板名
host_name               our-server      ; nagios使用的主机名
alias                   our-server
address                 172.17.1.23     ; 主机的IP地址
}

# Host 2
define host{
use                     cisco-device    ; 使用的主机模板名
host_name               our-router      ; nagios使用的主机名
alias                   our-router
address                 172.17.1.1      ; 主机的IP地址
}

主机组定义

当有多个主机时,为方便管理,建议将相似的主机组成一组。

root@mrtg:/etc/nagios3/conf.d/# vim hostgroups_nagios2.cfg 

-

define hostgroup {
hostgroup_name  linux-server    ; 主机组名
alias           Linux Servers
members         our-server      ; 组员列表
}

define hostgroup {
hostgroup_name  cisco-device    ; 主机组名
alias           Cisco Devices
members         our-server      ; comma separated list of members
}

定义服务

首先,定义一个服务example-host-check:当往返时延达到100ms预警值并且有20%包丢失时发出警告,而紧急告警设置为5000ms且包丢失比率为100%,只执行一个IPv4的ping请求检测。

root@mrtg:~# vim /etc/nagios-plugins/config/ping.cfg 

-

define command{
      command_name    example-host-check
      command_line    /usr/lib/nagios/plugins/check_ping -H '$HOSTADDRESS$' -w 100,20% -c 5000,100% -p 1 -4
}

然后,将命令关联至主机组。

root@mrtg:/etc/nagios3/conf.d/# vim services_nagios2.cfg 

-

define service {
hostgroup_name            linux-server
service_description       Linux Servers
check_command             example-host-check
use                       generic-service
notification_interval     0 ; 初始化设置为0
}

define service {
hostgroup_name            cisco-device
service_description       Cisco Devices
check_command             example-host-check
use                       generic-service
notification_interval     0 ; 初始化设置为0
}

联系人定义

进行如下定义将发送邮件需要的地址添加至Nagios。

root@mrtg:/etc/nagios3/conf.d/# vim contacts.cfg

-

define contact{
contact_name                    root
alias                           Root
service_notification_period     24x7
host_notification_period        24x7
service_notification_options    w,u,c,r
host_notification_options       d,r
service_notification_commands   notify-service-by-email
host_notification_commands      notify-host-by-email
email                           root@localhost, [email protected]
}

最后,试运行初始化检测是否有配置错误。如果没有错误,Nagios开始安全运行。

root@mrtg:~# nagios -v /etc/nagios3/nagios.cfg
root@mrtg:~# service nagios3 restart 

CentOS/RHEL上的Nagios配置

Redhat系统中Nagios的配置文件地址如下所示。

/etc/nagios/objects     添加主机、服务,定义监测和定时器的配置文件

/usr/lib/nagios/plugins     实现监测的可执行文件

添加主机模板

为特定类型的主机创建所需的模板,相应修改安装所需的文件。

[root@mrtg objects]# cd /etc/nagios/objects/
[root@mrtg objects]# vim templates.cfg 

-

 define host{
 name                   linux-server    
 use                    generic-host    
 check_period           24x7      
 check_interval         3
 retry_interval         1
 max_check_attempts     3
 check_command          example-host-check
 notification_period    24x7
 notification_interval  0
 notification_options   d,u,r
 contact_groups         admins
 register               0
 }

 define host{
 name                   cisco-router    
 use                    generic-host    
 check_period           24x7      
 check_interval         3
 retry_interval         1
 max_check_attempts     3
 check_command          example-host-check
 notification_period    24x7
 notification_interval  0
 notification_options   d,u,r
 contact_groups         admins
 register               0
 }

添加主机和主机组

这里以默认的配置文件为例,主机和主机组添加至配置文件中。

[root@mrtg objects]# cp localhost.cfg example.cfg
[root@mrtg objects]# vim example.cfg 

-

#Adding Linux server
define host{
use         linux-server
host_name   our-server
alias       our-server
address     172.17.1.23
}

#Adding Cisco Router
define host{
use         cisco-router
host_name   our-router
alias       our-router
address     172.17.1.1
}

# HOST GROUP DEFINITION
define hostgroup{
hostgroup_name  linux-servers
alias           Linux Servers
members         our-server
}

define hostgroup{
hostgroup_name  cisco-router
alias           cisco-router
members         our-router
}

服务定义

定义一个服务example-host-check:当往返时延达到100ms预警值并且有20%包丢失时发出警告,而紧急告警设置为5000ms且包丢失比率为100%,只执行一个IPv4的ping请求检测。

[root@mrtg objects]# vim commands.cfg 

-

define command{
command_name    example-host-check
command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 100.0,20% -c 5000.0,100% -p 1 -4
}

联系人定义

告警要发送的邮件地址添加至Nagios中。

[root@objects objects]# vim contacts.cfg 

-

define contact{
contact_name    nagiosadmin       
use             generic-contact
alias           Nagios Admin
email           nagios@localhost, [email protected]
}

最后,准备启动Nagios服务,可先试运行检测配置是否出错。

[root@mrtg ~]# nagios –v /etc/nagios/nagios.cfg
[root@mrtg ~]# service nagios restart
[root@mrtg ~]# chkconfig nagios on 

配置后访问Nagios

现在一切就绪,可以开始Nagios之旅了。Ubuntu/Debian用户可以通过打开 http://IP地址/nagios3 网页访问Nagios,CentOS/RHEL用户可以打开 http://IP地址/nagios ,如 http://172.17.1.23/nagios3 来访问Nagios。“nagiosadmin”用户则需要认证来访问页面。

若Nagios没有依原设定运行,首先要做的是建立一个测试运行(dry run)。

Debian或Ubuntu系统:

# nagios3 -v /etc/nagios3/nagios.cfg

CentOS或RHEL系统:

# nagios -v /etc/nagios/nagios.cfg

日志文件也会提供重要线索,若需查看可以转至路径/var/log/nagios/nagios.log。

希望本文有所帮助。


via: http://xmodulo.com/2013/12/install-configure-nagios-linux.html

译者:icybreaker 校对:wxy

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

2013 – What A Year, Right?

2013 - 怎样的一年呢?

去年的这个时候我们还对 Ubuntu Touch 一无所知;Canonical试图募集3200万美金研发高端智能手机,这本来听起来是多么的疯狂啊;Mir还是太空站,而 Wayland 面向未来;至于 Ubuntu的下两个版本,Saucy Salamanders 和 Trusty Tahrs,虽然它们还没影子,但是一切总在按部就班中进行。

今年是繁忙的一年。虽然有约2500万人继续使用普通桌面版以满足日常工作需要,Canonical仍继续大步迈向融合未来的操作系统。

两者的关键是在APP上。在上一年我们盘点了10大最受欢迎的桌面软件。今年我们做了一些小小的改动,也包括这一年内发布更新的APP。

我们会排除一些‘显而易见’的APP,比如Firefox,Chrome,LibreOffice和Steam (因为我们都知道它们是多么的强大啊)来突出在今年使桌面体验更加完善,而又不太知名的应用程序和实用工具。

我们挑选了哪些呢?往下看吧。

Geary

2013见证了Yorba,那个Geary背后的非营利组织,尝试通过群众募集来保证Geary的未来,却募集失败了。这可能会让这个APP终结;好多APP并没有展现它们真正的潜能,却只能淹没在历史的尘埃中。庆幸的是,Geary依然还在!

在令人失望的计划后几个月,Geary 0.4.x 发布,这证明了这个开发团队的奉献精神和耐心。从今年早先时候的一个重要版本的发布,到十月Geary 0.4推出,它提升了稳定性和性能,同时增强了功能。

那些坚持认为桌面邮件客户端时代已终结的人们不得不被Yorba折服,承认了错误。现在,Geary在Linux和其他各大平台都是最好的邮件软件之一。

Birdie 推特APP

在Linux平台上的推特APP总有些异常。虽然有大量的推特APP,但很少能像在其他操作系统的专有APP那样运行稳定。而当Birdie在今年的三月份发布时,一切都改变了。一年过去了,我们亲眼看到它的成长,从起初不稳定,怨声载道地‘小鸡’成长为一个真正成熟和自信的应用程序。

虽然它仍是只羽翼未满的小雏,但它在这仍有一席之地,因为它知道自己的目标,翱翔蓝天,未来铁翅横空。

Springseed

对笔记使用者来说,2013年笔记工具的选择可不少 --从 GNOME下的Bijiben(译注:笔记本!)到强大的Nitro。但是对于我来说,小工具Springseed更引起了我的关注。

围绕着易用性的开发,APP响应更迅速界面更加清新。特性中包含实现条理化所需的所有至关重要的功能 - 创建笔记,文本排版,markdown的支持和同步dropbox,等等 - 所有都呈现在一个迷人的界面中,不带任何繁琐而不必要的东西。

Springseed是一款免费而且开源的软件,能从官方项目网站中直接下载。

Unity Tweak Tool

自从年初发布第一个版本,Unity Tweak Tool已成为’必备’的APP之一,使那些提供Ubuntu后安装建议的人无言以对。用自行设置和定制化工具,可轻而易举的量身定制符合自己习惯的 Unity 体验。

定期更新,利用每一个新的Ubuntu版本能支持的最新选项,并提供安全的取消按钮‘undo’来取消操作,也就很容易理解为什么该APP已成为众多人喜爱的工具了。

Intel 显卡驱动安装程序

Intel (尤其是 Intel的开源技术中心)使得用今年发布的 Intel 显卡驱动管理程序,使得在Linux下安装最新最好的Intel显卡驱动更加方便。程序能为用户实现自动检测,下载和安装,你只需要轻点几下鼠标和一点点耐心。

最初的版本不是没有问题。幸好,随后的版本已经修补了Bug和其他一些稀奇古怪的问题。如果你在今年早些时候尝试时没有成功,那么现在你值得再试一下。

Ubuntu SDK

这是一个独具一格且重要的选择。今年发布的Ubuntu SDK具备了Ubuntu开发者在手机和平板电脑为 Ubuntu Touch 开发APP 所需的一切。

这虽然不会让多数桌面用户使用到,但是在七月的更新特别的加入了一些强大的功能 - 包含一个统一行为的API,能与Ubuntu One数据库同步,支持创建聚合式布局等。

VoD Enablement App

这个条目与其说是一个APP,还不如说作为一个黑客的智慧结晶。无论如何,幸亏有聪明的Erich Hoover,让Netflix,LoveFilm和其他许多基于Silverlight视频流的站点现在首次能在Ubuntu下轻松的观看 - 当然,尽管是非正式的!

你可以阅览我们一月份以后的文章,了解它支持什么,如何安装,以及如何观看。

VLC

这个也许是每个人(也许有人说,不是我喜爱的)都喜爱的媒体播放器在2013进行了大量的更新,并在九月完成了最主要更新。

在其Linux版本的一系列特性和改进中,包括支持4k的视频流;VDPAU硬件解码;.MKV文件回放按钮和改进DBus和MPRIS接口等。

Lightworks for Linux

Lightworks颇富盛名,奇特而又卓越:有许多特色,强大的功能,面向专业人士,对于多数桌用户来说是不可或缺的利器。无可否认拥有这个APP多么让人震惊啊(常用于编辑一些奥斯卡获奖电影和知名唱片)。

该APP幕后公司 Editshare 发布了Linux测试版(虽然有特殊事件延时了发布时间)。但是,自从在四月份发布,他们严格确保维持特性能与Windows版本相差不大 - 这个壮举会在之后的更新中实现。

目前,新的特性和调整会在这个星期到来,对于那些幻想自己是下一个伟大的电影制造者,没有比这更好工具了,尝试一下吧。

GNOME Music 预览

好吧,好吧:这还没竣工呢。事实上,如果你没有运行高度不稳定的GNOME PPAs,你甚至不可能在Ubuntu下用这个。

但这无关紧要;我认为GNOME Music是本年度突出的Apps之一. 有些人认为其简单无为,而另一些人则认为小即是美。当然,该APP和做“所有事”的Apps不能相比,但那也偏离了初衷。

它在注重设计细节和用户体验方面是首屈一指的。


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

译者:Luoxcat 校对:jasminepeng

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

Netstat 简介

Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有没有起来,你可以查看80端口有没有打开。以上功能使 netstat 成为网管和系统管理员的必备利器。在这篇教程中,我会列出几个例子,教大家如何使用 netstat 去查找网络连接信息和系统开启的端口号。

以下的简单介绍来自 netstat 的 man 手册:

netstat - 打印网络连接、路由表、连接的数据统计、伪装连接以及广播域成员。

1. 列出所有连接

第一个要介绍的,是最简单的命令:列出所有当前的连接。使用 -a 选项即可。

$ netstat -a

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 enlightened:domain      *:*                     LISTEN     
tcp        0      0 localhost:ipp           *:*                     LISTEN     
tcp        0      0 enlightened.local:54750 li240-5.members.li:http ESTABLISHED
tcp        0      0 enlightened.local:49980 del01s07-in-f14.1:https ESTABLISHED
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN     
udp        0      0 enlightened:domain      *:*                                
udp        0      0 *:bootpc                *:*                                
udp        0      0 enlightened.local:ntp   *:*                                
udp        0      0 localhost:ntp           *:*                                
udp        0      0 *:ntp                   *:*                                
udp        0      0 *:58570                 *:*                                
udp        0      0 *:mdns                  *:*                                
udp        0      0 *:49459                 *:*                                
udp6       0      0 fe80::216:36ff:fef8:ntp [::]:*                             
udp6       0      0 ip6-localhost:ntp       [::]:*                             
udp6       0      0 [::]:ntp                [::]:*                             
udp6       0      0 [::]:mdns               [::]:*                             
udp6       0      0 [::]:63811              [::]:*                             
udp6       0      0 [::]:54952              [::]:*                             
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     12403    @/tmp/dbus-IDgfj3UGXX
unix  2      [ ACC ]     STREAM     LISTENING     40202    @/dbus-vfs-daemon/socket-6nUC6CCx

上述命令列出 tcp, udp 和 unix 协议下所有套接字的所有连接。然而这些信息还不够详细,管理员往往需要查看某个协议或端口的具体连接情况。

2. 只列出 TCP 或 UDP 协议的连接

使用 -t 选项列出 TCP 协议的连接:

$ netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 enlightened:domain      *:*                     LISTEN     
tcp        0      0 localhost:ipp           *:*                     LISTEN     
tcp        0      0 enlightened.local:36310 del01s07-in-f24.1:https ESTABLISHED
tcp        0      0 enlightened.local:45038 a96-17-181-10.depl:http ESTABLISHED
tcp        0      0 enlightened.local:37892 ABTS-North-Static-:http ESTABLISHED
.....

使用 -u 选项列出 UDP 协议的连接:

$ netstat -au
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 *:34660                 *:*                                
udp        0      0 enlightened:domain      *:*                                
udp        0      0 *:bootpc                *:*                                
udp        0      0 enlightened.local:ntp   *:*                                
udp        0      0 localhost:ntp           *:*                                
udp        0      0 *:ntp                   *:*                                
udp6       0      0 fe80::216:36ff:fef8:ntp [::]:*                             
udp6       0      0 ip6-localhost:ntp       [::]:*                             
udp6       0      0 [::]:ntp                [::]:*

上面同时显示了 IPv4 和 IPv6 的连接。

3. 禁用反向域名解析,加快查询速度

默认情况下 netstat 会通过反向域名解析技术查找每个 IP 地址对应的主机名。这会降低查找速度。如果你觉得 IP 地址已经足够,而没有必要知道主机名,就使用 -n 选项禁用域名解析功能。

$ netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 192.168.1.2:49058       173.255.230.5:80        ESTABLISHED
tcp        0      0 192.168.1.2:33324       173.194.36.117:443      ESTABLISHED
tcp6       0      0 ::1:631                 :::*                    LISTEN

上述命令列出所有 TCP 协议的连接,没有使用域名解析技术。So easy ? 非常好。

4. 只列出监听中的连接

任何网络服务的后台进程都会打开一个端口,用于监听接入的请求。这些正在监听的套接字也和连接的套接字一样,也能被 netstat 列出来。使用 -l 选项列出正在监听的套接字。

$ netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN

现在我们可以看到处于监听状态的 TCP 端口和连接。如果你查看所有监听端口,去掉 -t 选项。如果你只想查看 UDP 端口,使用 -u 选项,代替 -t 选项。

注意:不要使用 -a 选项,否则 netstat 会列出所有连接,而不仅仅是监听端口。

5. 获取进程名、进程号以及用户 ID

查看端口和连接的信息时,能查看到它们对应的进程名和进程号对系统管理员来说是非常有帮助的。举个栗子,Apache 的 httpd 服务开启80端口,如果你要查看 http 服务是否已经启动,或者 http 服务是由 apache 还是 nginx 启动的,这时候你可以看看进程名。

使用 -p 选项查看进程信息。

~$ sudo netstat -nlpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1144/dnsmasq    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      661/cupsd       
tcp6       0      0 ::1:631                 :::*                    LISTEN      661/cupsd

使用 -p 选项时,netstat 必须运行在 root 权限之下,不然它就不能得到运行在 root 权限下的进程名,而很多服务包括 http 和 ftp 都运行在 root 权限之下。

相比进程名和进程号而言,查看进程的拥有者会更有用。使用 -ep 选项可以同时查看进程名和用户名。

$ sudo netstat -ltpe
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp        0      0 enlightened:domain      *:*                     LISTEN      root       11090       1144/dnsmasq    
tcp        0      0 localhost:ipp           *:*                     LISTEN      root       9755        661/cupsd       
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN      root       9754        661/cupsd

上面列出 TCP 协议下的监听套接字,同时显示进程信息和一些额外信息。

这些额外的信息包括用户名和进程的索引节点号。这个命令对网管来说很有用。

注意 - 假如你将 -n-e 选项一起使用,User 列的属性就是用户的 ID 号,而不是用户名。

6. 打印统计数据

netstat 可以打印出网络统计数据,包括某个协议下的收发包数量。

下面列出所有网络包的统计情况:

$ netstat -s
Ip:
    32797 total packets received
    0 forwarded
    0 incoming packets discarded
    32795 incoming packets delivered
    29115 requests sent out
    60 outgoing packets dropped
Icmp:
    125 ICMP messages received
    0 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 125
    125 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 125
... OUTPUT TRUNCATED ...

如果想只打印出 TCP 或 UDP 协议的统计数据,只要加上对应的选项(-t-u)即可,so easy。

7. 显示内核路由信息

使用 -r 选项打印内核路由信息。打印出来的信息与 route 命令输出的信息一样。我们也可以使用 -n 选项禁止域名解析。

$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

8. 打印网络接口

netstat 也能打印网络接口信息,-i 选项就是为这个功能而生。

$ netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0     31611      0      0 0         27503      0      0      0 BMRU
lo        65536 0      2913      0      0 0          2913      0      0      0 LRU

上面输出的信息比较原始。我们将 -e 选项和 -i 选项搭配使用,可以输出用户友好的信息。

$ netstat -ie
Kernel Interface table
eth0      Link encap:Ethernet  HWaddr 00:16:36:f8:b2:64  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::216:36ff:fef8:b264/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:31682 errors:0 dropped:0 overruns:0 frame:0
          TX packets:27573 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:29637117 (29.6 MB)  TX bytes:4590583 (4.5 MB)
          Interrupt:18 Memory:da000000-da020000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2921 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2921 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:305297 (305.2 KB)  TX bytes:305297 (305.2 KB)

上面的输出信息与 ifconfig 输出的信息一样。

9. netstat 持续输出

我们可以使用 netstat 的 -c 选项持续输出信息。

$ netstat -ct

这个命令可持续输出 TCP 协议信息。

10. 显示多播组信息

选项 -g 会输出 IPv4 和 IPv6 的多播组信息。

$ netstat -g
IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      all-systems.mcast.net
eth0            1      224.0.0.251
eth0            1      all-systems.mcast.net
lo              1      ip6-allnodes
lo              1      ff01::1
eth0            1      ff02::fb
eth0            1      ff02::1:fff8:b264
eth0            1      ip6-allnodes
eth0            1      ff01::1
wlan0           1      ip6-allnodes
wlan0           1      ff01::1

更多用法

目前为止我们列出了 netstat 的基本用法,现在让我们一起来 geek 吧~

打印 active 状态的连接

active 状态的套接字连接用 "ESTABLISHED" 字段表示,所以我们可以使用 grep 命令获得 active 状态的连接:

$ netstat -atnp | grep ESTA
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 192.168.1.2:49156       173.255.230.5:80        ESTABLISHED 1691/chrome     
tcp        0      0 192.168.1.2:33324       173.194.36.117:443      ESTABLISHED 1691/chrome

配合 watch 命令监视 active 状态的连接:

$ watch -d -n0 "netstat -atnp | grep ESTA"

查看服务是否在运行

如果你想看看 http,smtp 或 ntp 服务是否在运行,使用 grep。

$ sudo netstat -aple | grep ntp
udp        0      0 enlightened.local:ntp   *:*                                 root       17430       1789/ntpd       
udp        0      0 localhost:ntp           *:*                                 root       17429       1789/ntpd       
udp        0      0 *:ntp                   *:*                                 root       17422       1789/ntpd       
udp6       0      0 fe80::216:36ff:fef8:ntp [::]:*                              root       17432       1789/ntpd       
udp6       0      0 ip6-localhost:ntp       [::]:*                              root       17431       1789/ntpd       
udp6       0      0 [::]:ntp                [::]:*                              root       17423       1789/ntpd       
unix  2      [ ]         DGRAM                    17418    1789/ntpd

从这里可以看到 ntp 服务正在运行。使用 grep 命令你可以查看 http 或 smtp 或其它任何你想查看的服务。

好了,netstat 的大部分功能都介绍过了,如果你想知道 netstat 更高级的功能,阅读它的手册吧(man netstat)。

欢迎在下面留下你的反馈和建议。


via: http://www.binarytides.com/linux-netstat-command-examples/

译者:bazz2 校对:wxy

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