分类 技术 下的文章

一些Windows用户,希望试试Linux操作系统,而不用删除他正在使用的系统。令人高兴的是,想尝试下Linux是非常简单的,而且Linux操作系统也能和其他操作系统在同一台机器上和平共处。

举个例子,如果你是Windows用户,想试试Ubuntu,这个过程实际上是相当简单的,用户只需要付出一点小小的努力即可,这个过程中稍微注意一点就行了。

在PC上正常安装一个操作系统并不复杂,甚至是Ubuntu和其它Linux也一样简单。在大多数情况下,用户单击对话框的“下一步”,按照流程进行即可。当你想保留PC上的原来的操作系统时(并不特指Windows),还需要多一点操作才行,但是很简单。

在Linux下刻录一个ISO镜像是很容易的,有好几个程序可以提供这样的功能。而在Windows下,你可以将Ubuntu刻录到DVD或制作成USB启动盘(这样更好一些)。要将Ubuntu正确复制到一个USB设备,你将需要下载名为Win32 Disk Imager 0.9.5一个小工具。它具有一个简单的界面,是完全自动的。

在重启机器以安装Ubuntu前,你要给Ubuntu一些可用的磁盘空间,而且给Ubuntu一个磁盘分区是不够的。你将需要两个,一个放Ubuntu本身(大约10GB,如果你不想安装太多的应用的话,就足够了),第二个是交换分区(类似于Windows的页面文件),它的大小一般是你的内存的两倍。你不需要格式化它们,只要他们是可用的就行。如果你在第二块空闲硬盘安装Ubuntu,那就更简单了。

插上USB启动盘并重新启动。你会得到一个提示,询问是“试用”还是“安装”。选择“安装”并选择安装方式:安装Ubuntu和Windows 8并存(或任何你拥有的其他版本),用Ubuntu替换Windows 8,或者别的选项。

你可以选择“和Windows 8并存安装”,但你也许不喜欢安装程序自动处理的方式。你也可以选择“其它(Something Else)”来手动控制安装过程。

找到你给Ubuntu保留的空闲分区(安装程序无法读取和显示Windows卷的名称,所以你要小心别选错了),双击它,选择ext4文件系统,和“/”作为默认的安装点。

现在选择另外的那个较小的分区,选择swap分区类型。就这些了。当你点击下一步,安装程序将启动,你将要输入用户名,密码和其他信息。

当你启动你之后,将得到一个简单的列表,可以选择你要启动的操作系统。

尽情享受!


via: http://news.softpedia.com/news/How-to-Install-Windows-8-1-and-Ubuntu-14-04-LTS-on-the-Same-Computer-440356.shtml

译者:CHINAANSHE 校对:wxy

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

之前我已经写过关于如何安装Ubuntu Linux和Windows 7以及8的双启动,但是那些教程不包含那些预装Windows 8的系统。那些较新的预装了Windows 8或Windows 8.1的系统使用了UEFI来替代BIOS。这使得安装双启动变得和之前的常规方法有点不同。在这个教程中,我们将看到如何在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

这个教程是在一台新买的戴尔灵越 7437(酷睿i7第四代处理器, 256GB SSD,8GB内存以及内置1GB(共享内存) Intel显卡)上演示的。为了使你能够成功安装UEFI下Linux和Windows 8的双启动,我会提到你需要做的所有步骤。如果你已经完成这些步骤中的部分步骤,直接跳到下一步。如果你有个全新的系统,那就更好了。

在这里提到的这些步骤也适用于其它基于Ubuntu的Linux发行版,如Linux Mint,Elementary OS等等。不多说,让我们来看看如何在启用了UEFI安全启动的Windows 8系统上双启动Linux。

让 Ubuntu 14.04 和 Windows 8 双启动:

要在一个UEFI系统上安装Ubuntu有多方面的前提条件。让我们来一个一个看:

第一步:做个备份 [可选]

做个备份总是个不错的选择,防止你把系统弄糟了。网上有众多文章教你如何备份系统。你可以参照这个教程

第二步:创建一个Ubuntu的USB启动盘/光盘启动盘

你需要做的下一件事是创建一个USB启动盘或光盘启动盘。我推荐在Windows下使用Universal USB Installer创建一个Linux OS的USB启动盘。

第三步:为Ubuntu划分一块安装分区

假设你有一个全新的系统,我们要做的第一件事是创建一个分区来安装Linux。我系统中的256GB磁盘出厂时就有若干个分区,但主要是用来备份及其它目的的。主分区是安装了Windows 8.1的C盘,约有220GB。

如果你也像这样只有一个分区,你需要从中分割出一些空间给Linux。如果你有若干空间大小足够的分区,可以使用它们中除C盘外的任意盘,因为安装时会抹掉其中的数据。

要在Windows 8中创建分区,需要使用磁盘管理工具。你可以通过在控制面板中搜索‘磁盘’找到磁盘管理工具。

在磁盘管理工具中,右键点击你想划分并缩小的卷。在我的演示中,我选择C盘的卷进行缩小,划分出未分配空间:

缩小后出现的未分配空间就放在那里好了,不用对其分区和格式化。我们会在安装Ubuntu时用到它。

第四步:在Windows中禁用快速启动 [可选]

为了实现快速启动,Windows 8引进了叫做“快速启动”的新特性。尽管不是强制要求,最好还是将其禁用。

打开控制面板 > 硬件与声音 > 电源选项 > 选择电源按钮的功能 > 更改当前不可用的设置,取消选中启用快速启动(推荐)

第五步:禁用Windows 8 and 8.1的安全启动(secure boot)

这是最重要的步骤。Windows 8新的安全启动(secure boot)原本是针对rootkit病毒的安全特性,但它也阻止了Windows和Linux的双启动。为了实现Windows和Linux的双启动,我们必须在UEFI中禁用安全启动(secure boot)。

可以参见:如何在 Win8 上禁用 UEFI 安全引导以安装Linux

第六步:安装Ubuntu,与Windows 8共存

一旦你禁用了安全启动(secure boot),那就是时候安装Ubuntu了。我希望你像第二步中提到的一样创建了一个USB启动盘。插入U盘,然后从U盘启动系统。

要从USB启动,需要在Windows中选择从USB启动的选项。从电脑设置(像UEFI)中选择选项或在点击“重新启动”的时候按住Shift键。

当你用USB启动盘启动后,你会看到试用(try)或者安装(install)Ubuntu的选择,这里要点击“安装”。另外在屏幕上不多的设置选项里面,你可以选择你用的语言。接下来是关于硬盘空间,电源和网络连接等等的一些检查。只需点击继续

安装窗口中你需要注意的是安装类型(Installation Type)。选择这里的其它选项(Something else)

还记得我们事先划分的未分配空间吗?我们将用它来创建根分区( / ),交换空间(Swap)以及家目录(Home)。选择空闲(free space)然后点击加号(+)。

它会给你提供创建Linux分区的选项。我们正在创建根分区 /。10到20GB空间就足够了。选择大小(Size),然后选择Ext 4作为文件系统以及 /(意思是根)作为挂载点(Mount point)。

点击确定会回到分区界面。下一步我们创建交换空间(Swap)。像之前一样,再次点击加号(+)。这次我们选择作为交换空间(Swap area)。建议的交换空间大小是物理内存的两倍。

以同样的方式创建家目录(Home)。给它分配最大的空间(实际上是给它分配剩余的所有空间),因为这是你会用来存储音乐,图片以及下载的文件的位置。

分配好了根分区( / ),交换空间(Swap)和家目录(Home)之后,点击现在安装(Install Now)

好了,你现在基本上以及赢得了这场战役了~露出胜利的微笑吧~接下来你会被要求设置用户名密码等等。基本上你现在只需点击下一步。

一旦安装完成,重新启动电脑,你应该会看到紫色的grub欢迎界面。尽情享受Ubuntu和Windows 8的双启动模式吧。(译注:对于可能出现grub系统选择中没有Windows 8选项或是无法正常启动的情况,可搜索Boot Repair工具的使用)

我希望这份指南能够帮你实现Ubuntu和Windows 8的UEFI模式双启动。虽然这篇文章是为Ubuntu写的,它对其它的Linux OS应该也有所帮助。欢迎提出任何问题与建议。


via: http://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/

译者:alim0x 校对:wxy

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

一般来说,服务器非常慢可能原因是多方面的,有可能是配置错误,脚本错误或者是一些奇诡的硬件。当然也有可能是有人对你的服务器进行 Dos (拒绝服务攻击)或者 DDOS (分布式拒绝服务攻击)。

Dos攻击或者DDos攻击目的是使服务器或者网络资源耗尽,使其他用户无法使用。一般来说,这种攻击主要针对重要的网站或服务,比如银行、信用卡支付网关甚至是根域名服务器。Dos攻击主要通过强制目标主机重启或大量消耗其主机资源,使得目标主机无法提供服务或者妨害主机和用户之间的通信的手段,使得主机无法提供正常的服务的。

在本文中你将知道如何在终端中使用netstat命令判断服务器是否遭受Dos攻击。

netstat命令的用户手册描述其作用是用来显示网络连接、路由表、接口统计、伪连接和组播成员的。

一些例子和解释

netstat -na

该命令将显示所有活动的网络连接。

netstat -an | grep :80 | sort

显示所有80端口的网络连接并排序。这里的80端口是http端口,所以可以用来监控web服务。如果看到同一个IP有大量连接的话就可以判定单点流量攻击了。

netstat -n -p|grep SYN_REC | wc -l

这个命令可以查找出当前服务器有多少个活动的 SYNC\_REC 连接。正常来说这个值很小,最好小于5。 当有Dos攻击或者邮件炸弹的时候,这个值相当的高。尽管如此,这个值和系统有很大关系,有的服务器值就很高,也是正常现象。

netstat -n -p | grep SYN_REC | sort -u

列出所有连接过的IP地址。

netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'

列出所有发送SYN\_REC连接节点的IP地址。

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

使用netstat命令计算每个主机连接到本机的连接数。

netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

列出所有连接到本机的UDP或者TCP连接的IP数量。

netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

检查 ESTABLISHED 连接并且列出每个IP地址的连接数量。

netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

列出所有连接到本机80端口的IP地址和其连接数。80端口一般是用来处理HTTP网页请求。

如何减少DOS攻击

一旦你获得攻击服务器的IP地址你就可以使用以下命令拒绝此IP的所有连接。

iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT

注意,你需要将 $IPADRESS 替换成需要拒绝连接的IP地址。

执行完以上命令后,使用以下命令结束所有的httpd连接以清理系统。

killall -KILL httpd

然后执行以下命令重启httpd服务。

service httpd start           #RedHat 系统 
/etc/init/d/apache2 restart   #Debian 系统

via: http://linuxaria.com/howto/how-to-verify-ddos-attack-with-netstat-command-on-linux-terminal

译者:shipsw 校对:wxy

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

在基于密码的认证在网络盛行的今天,你可能需要或者已经使用了某种密码管理工具来跟踪管理你正在使用的所有密码。有各种各样的在线或离线服务或者软件工具用于完成此类事情,而这些工具因复杂程度、用户界面或者目标环境(如企业或终端用户)的不同而各不相同。例如,有一些是为终端用户开发基于图形化的密码管理器,如KeePass(X)

对于那些不想要依赖图形化进行密码管理的用户,笔者将会讲述如何在命令行下使用 pass来管理密码,这是一个简单的用于命令行管理密码的工具

该密码工具实际上是一个shell脚本编写的前端,其中调用了几个其它工具(如gpg,pwgen,git,xsel)来使用OpenGPG管理用户的密码信息。各个密码使用gpg工具进行加密,并存储到本地密码仓库中。密码信息可以通过终端或者自清除的剪贴板工具使用。

该密码工具相当灵活,并且使用起来及其简单。你可以将每个密码信息存储到一个OpenGPG保护的普通文本文件,并且将不同的密码文件分组多个类目中。它支持bash自动补全特性,因此可以很方便地使用TAB键来补全命令或者很长的密码名称。

在Linux上安装pass

在Debian,Ubuntu或者Linux Mint上安装pass:

$ sudo apt-get install pass
$ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc

在Fedora上安装pass:

$ sudo yum install pass
$ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc

在CentOS上安装pass,首先启用EPEL仓库,然后执行以下命令:

$ sudo yum install pass
$ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc

在Archlinux上安装pass:

$ sudo pac -S pass
$ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc

初始化本地密码仓库

在使用密码工具之前,你需要执行一次初始化步骤,该步骤包括创建一个GPG密钥对(如果你还没有)以及一个本地密码仓库。

首先,通过以下步骤创建一个GPG密钥对(即:公钥/私钥)。如果已经创建了自己的GPG密钥对,可以跳过此步骤。

$ gpg --gen-key 

执行该步骤,会询问你如下问题。如果你不确定,可以选择接受默认回答。作为密钥生成部分,你将要为你的密钥创建一个加密口令,这个口令实际上是你访问存储在本地密码仓库中的任何密码信息时的主密码。成功创建密钥对后,创建的密钥对会存储在~/.gnupg目录中。

接下来,运行以下命令来初始化本地密码仓库。下面的,输入之前创建密钥对时的关联电子邮件地址。

$ pass init <gpg-id> 

该命令会在~/.password-store目录中创建一个密码仓库。

在终端使用pass管理密码

插入新密码信息

要将新的密码信息插入到本地密码仓库中,请遵循以下命令格式:

$ pass insert <password-name> 

是你定义的专有名称,并且可以分级(如 "finance/tdbank", "online/gmail.com")。在这种情况下,密码信息可以存储到~/.password-store目录下对应的子目录中。

如果你想要分多行插入密码信息,请像以下命令一样使用"-m"选项。以你自己喜欢的任何格式来输入密码信息,然后按Ctrl+D来结束。

$ pass insert <password-name> -m 

查看所有密码名称列表

要查看所有存储的密码名称列表,只需输入"pass"命令:

$ pass 

从密码仓库中取回密码信息

要访问特定密码列表中的内容,只需使用以下命令:

$ pass <password-name> 

例如:

$ pass email/gmail.com 

会要求你输入密码口令来解锁密钥。

如果你想要将密码复制到剪贴板,而不是显示到终端屏幕上,使用以下命令:

$ pass -c email/gmail.com 

当密码被复制到剪贴板,剪贴板在45秒后会被自动清空。

在密码仓库中生成并存储新密码

使用pass命令,你也可以生成一个新的随机密码,该密码可用于任何目的。pass工具将会使用pwgen工具来生成一个好的随机密码。你可以指定密码的长度,或者生成带或不带符号的密码。

例如,要生成一个具有10个字符不带符号的密码,并将它存储到 "email/new\_service.com"列表中:

$ pass generate email/new_service.com 10 -n 

移除密码信息

要移除现存的密码信息是很容易的:

$ pass rm email/gmail.com 

小结一下,pass是及其灵活,便于携带,并且更为重要的是,易于使用。对于正在寻找能简单而行之有效地、安全地、并且不依赖图形化管理任何私人信息的工具的人,笔者强烈推荐pass。


via: http://xmodulo.com/2014/05/manage-passwords-command-line-linux.html

译者:GOLinux 校对:wxy

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

对于一个 Linux 系统管理员来说确保自己管理的系统处于一个良好的状态是其首要责任。Linux 系统管理员可以找到有很多工具来帮助自己监控和显示系统中的进程,例如 top 和 htop ,但是这些工具都不能与 collectl 相媲美。

Collectl: Linux Performance Monitoring

collectl是一款非常优秀并且有着丰富的命令行功能的实用程序,你可以用它来采集描述当前系统状态的性能数据。不同于大多数其它的系统监控工具,collectl 并非仅局限于有限的系统度量,相反,它可以收集许多不同类型系统资源的相关信息,如 cpu 、disk、memory 、network 、sockets 、 tcp 、inodes 、infiniband 、 lustre 、memory、nfs、processes、quadrics、slabs和buddyinfo等。

使用 collectl 的另一个好处就是它可以替代那些特定用途的工具如: top、ps、iotop 等等其它工具。那么 collectl 有什么特性而使其成为一个有用的工具呢?

经过许多研究后,我总结了 collectl 的命令行功能的一些非常重要的特性。

Collectl 特性

  • 可以交互式地运行或作为一个守护进程,或同时二者兼备地运行。
  • 可以以多种格式显示输出。
  • 可以监控几乎所有的子系统。
  • 可以替代许多工具如 ps、top、iotop、vmstat。
  • 可以记录并回放捕获的数据。
  • 可以将数据导出成多种数据格式。(这在你想用外部工具分析数据时非常有用)
  • 可以作为一个服务来监控远程机或者整个服务器集群。
  • 可以在终端显示数据,写入数据到文件或者一个套接字。

如何在Linux上安装collectl

collectl可以在所有的 Linux 发行版上运行,唯一需要的就是 perl 语言,所以在安装 collectl 之前,一定要确保你的电脑上已经安装了Perl

对于Debian/Ubuntu/Linux Mint

下面的命令可以用来在以 Debian 为基础的设备如 Ubuntu 上安装 collectl。

$ sudo apt-get install collectl

对于RHEL/CentOS/Fedora

如果你正在使用基于红帽的发行版,你可以用 yum 命令轻松获取它。

# yum install collectl

一些关于collectl的实例

collectl 工具安装完成之后,你可以轻松地在终端运行它,你甚至不需要指定任何选项。下面的命令将会以简短易读的格式显示cpu、硬盘和网络信息。

# collectl

waiting for 1 second sample...
#
#cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut 
  13   5   790   1322      0      0     92      7      4     13      0       5 
  10   2   719   1186      0      0      0      0      3      9      0       4 
  12   0   753   1188      0      0     52      3      2      5      0       6 
  13   2   733   1063      0      0      0      0      1      1      0       1 
  25   2   834   1375      0      0      0      0      1      1      0       1 
  28   2   870   1424      0      0     36      7      1      1      0       1 
  19   3   949   2271      0      0     44      3      1      1      0       1 
  17   2   809   1384      0      0      0      0      1      6      0       6 
  16   2   732   1348      0      0      0      0      1      1      0       1 
  22   4   993   1615      0      0     56      3      1      2      0       3

正如上面终端上所显示的,我们很容易观察该命令输出的系统度量值,因为它每次以一行显示。

不加任何参数执行 collectl 会显示下面子系统的信息

  • cpu
  • 磁盘
  • 网络

提示:在这里,一个子系统就是每一种可以测量的系统资源。

你也可以显示除slabs以外各个子系统的统计数据,这要结合下面的 -all 选项来实现。

# collectl --all

waiting for 1 second sample...
#
#cpu sys inter  ctxsw Cpu0 Cpu1 Free Buff Cach Inac Slab  Map   Fragments KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut   IP  Tcp  Udp Icmp  Tcp  Udp  Raw Frag Handle Inodes  Reads Writes Meta Comm 
  16   3   817   1542  430  390   1G 175M   1G 683M 193M   1G nsslkjjebbk      0      0     24      3      1      1      0       1    0    0    0    0  623    0    0    0   8160 240829      0      0    0    0 
  11   1   745   1324  316  426   1G 175M   1G 683M 193M   1G nsslkjjebbk      0      0      0      0      0      3      0       2    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  15   2   793   1683  371  424   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0      0      0      1      1      0       1    0    0    0    0  622    0    0    0   8160 240829      0      0    0    0 
  16   2   872   1875  427  446   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0     24      3      1      1      0       1    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  24   2   842   1383  473  368   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0    168      6      1      1      0       1    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  27   3   844   1099  478  365   1G 175M   1G 683M 193M   1G nsslkjjebbk      0      0      0      0      1      6      1       9    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  26   5   823   1238  396  428   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0      0      0      2     11      3       9    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  15   1   753   1276  361  391   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0     40      3      1      2      0       3    0    0    0    0  623    0    0    0   8160 240829      0      0    0    0

但是,你如何用它来监控 cpu 的使用情况呢? ‘-s’ 选项可以用来控制哪个子系统的数据需要收集和回放。

例如下面的命令可以用来对cpu使用情况进行一个总结。

# collectl -sc

waiting for 1 second sample...
#
#cpu sys inter  ctxsw 
  15   2   749   1155 
  16   3   772   1445 
  14   2   793   1247 
  27   4   887   1292 
  24   1   796   1258 
  16   1   743   1113 
  15   1   743   1179 
  14   1   706   1078 
  15   1   764   1268

当你将这个命令与“scdn”结合时会发生什么呢?学习命令行工具最好的方式就是多加练习,所以在终端运行下面的命令看看会发生什么吧。

# collectl -scdn

waiting for 1 second sample...
#
#cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut 
  25   4   943   3333      0      0      0      0      1      1      0       2 
  27   3   825   2910      0      0      0      0      1      1      0       1 
  27   5   886   2531      0      0      0      0      0      0      0       1 
  20   4   872   2406      0      0      0      0      1      1      0       1 
  26   1   854   2091      0      0     20      2      1      1      0       1 
  39   4  1004   3398      0      0      0      0      2      8      3       6 
  41   6   955   2464      0      0     40      3      1      2      0       3 
  25   7   890   1609      0      0      0      0      1      1      0       1 
  16   2   814   1165      0      0    796     43      2      2      0       2 
  14   1   779   1383      0      0     48      6      1      1      0       1 
  11   2   795   1285      0      0      0      0      2     14      1      14

你可以很容易就明白默认选项是“cdn”,它代表cpu、硬盘和网络数据。运行带这个选项的 collectl 命令的输出和“collectl -scn”的输出一样。

如果你想采集内存的数据,用下面的命令。

# collectl -sm

waiting for 1 second sample...
#
#Free Buff Cach Inac Slab  Map 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G

当你想要进一步了解内存使用信息、空闲的内存或者与你系统性能有关的重要资料时,上面的输出将是非常有用的。

如果想搜集一点儿 tcp 的数据呢?使用下面的命令来实现吧。

# collectl -st

waiting for 1 second sample...
#
#  IP  Tcp  Udp Icmp 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0

当你熟练到一定程度时,你就可以很轻松地得到你想要的结果了。例如你可以将关于 tcp 的“t”选项和关于 cpu 的“c”选项组合到一起。下面的命令就是如此。

# collectl -stc

waiting for 1 second sample...
#
#cpu sys inter  ctxsw   IP  Tcp  Udp Icmp 
  23   8   961   3136    0    0    0    0 
  24   5   916   3662    0    0    0    0 
  21   8   848   2408    0    0    0    0 
  30  10   916   2674    0    0    0    0 
  38   3   826   1752    0    0    0    0 
  31   3   820   1408    0    0    0    0 
  15   5   781   1335    0    0    0    0 
  17   3   802   1314    0    0    0    0 
  17   3   755   1218    0    0    0    0 
  14   2   788   1321    0    0    0    0

对于我们普通大众来说记住这些选项很困难,所以在这里,我整理出了一个列表来总结这个工具支持的选项。

  • b – buddy info (内存碎片)
  • c – CPU
  • d – Disk
  • f – NFS V3 Data
  • i – Inode and File System
  • j – Interrupts
  • l – Lustre
  • m – Memory
  • n – Networks
  • s – Sockets
  • t – TCP
  • x – Interconnect
  • y – Slabs (系统对象缓存)

对于一个系统管理员或者一个 Linux 用户来说很重要的一种数据就是硬盘的使用情况。下面的命令可以帮你监控硬盘使用情况。

# collectl -sd

waiting for 1 second sample...
#
#KBRead  Reads KBWrit Writes 
      0      0      0      0 
      0      0      0      0 
      0      0     92      7 
      0      0      0      0 
      0      0     36      3 
      0      0      0      0 
      0      0      0      0 
      0      0    100      7 
      0      0      0      0

你也可以使用“-sD”选项来采集单个硬盘的数据,不过你必须知道这就不会显示全部硬盘的信息。

# collectl -sD

waiting for 1 second sample...

# DISK STATISTICS (/sec)
#           Pct
#Name       KBytes Merged  IOs Size  KBytes Merged  IOs Size  RWSize  QLen  Wait SvcTim Util
sda              0      0    0    0      52     11    2   26      26     1     8      8    1
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0      24      0    2   12      12     0     0      0    0
sda              0      0    0    0     152      0    4   38      38     0     0      0    0
sda              0      0    0    0     192     45    3   64      64     1    20     20    5
sda              0      0    0    0     204      0    2  102     102     0     0      0    0
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0     116     26    3   39      38     1    16     16    4
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0      32      5    3   11      10     1    16     16    4
sda              0      0    0    0       0      0    0    0       0     0     0      0    0

你也可以使用其它详细的子系统来采集详细的数据。下面是详细子系统的一个列表。

  • C – CPU
  • D – Disk
  • E – Environmental data (fan, power, temp), via ipmitool
  • F – NFS Data
  • J – Interrupts
  • L – Lustre OST detail OR client Filesystem detail
  • N – Networks
  • T – 65 TCP counters only available in plot format
  • X – Interconnect
  • Y – Slabs (system object caches)
  • Z – Processes

collectl 工具中有许多选项,但是仅用一篇文章来介绍肯定是介绍不过来的。然而如果将它当作 topps 工具来使用还是值得一提的。

很容易将 collectl 当作 top 来使用,只要在 Linux 系统的终端运行下面的命令你就会看到和 top 工具类似的输出。

# collectl --top

# TOP PROCESSES sorted by time (counters are /sec) 13:11:02
# PID  User     PR  PPID THRD S   VSZ   RSS CP  SysT  UsrT Pct  AccuTime  RKB  WKB MajF MinF Command
^COuch!tecmint  20     1   40 R    1G  626M  0  0.01  0.14  15  28:48.24    0    0    0  109 /usr/lib/firefox/firefox 
 3403  tecmint  20     1   40 R    1G  626M  1  0.00  0.20  20  28:48.44    0    0    0  600 /usr/lib/firefox/firefox 
 5851  tecmint  20  4666    0 R   17M   13M  0  0.02  0.06   8  00:01.28    0    0    0    0 /usr/bin/perl 
 1682  root     20  1666    2 R  211M   55M  1  0.02  0.01   3  03:10.24    0    0    0   95 /usr/bin/X 
 3454  tecmint  20  3403    8 S  216M   45M  1  0.01  0.02   3  01:23.32    0    0    0    0 /usr/lib/firefox/plugin-container 
 4658  tecmint  20  4657    3 S  207M   17M  1  0.00  0.02   2  00:08.23    0    0    0  142 gnome-terminal 
 2890  tecmint  20  2571    3 S  340M   68M  0  0.00  0.01   1  01:19.95    0    0    0    0 compiz 
 3521  tecmint  20     1   24 S  710M  148M  1  0.01  0.00   1  01:47.84    0    0    0    0 skype 
    1  root     20     0    0 S    3M    2M  0  0.00  0.00   0  00:02.57    0    0    0    0 /sbin/init 
    2  root     20     0    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kthreadd 
    3  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.60    0    0    0    0 ksoftirqd/0 
    5  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/0:0H 
    7  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/u:0H 
    8  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:04.42    0    0    0    0 migration/0 
    9  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 rcu_bh 
   10  root     20     2    0 R     0     0  0  0.00  0.00   0  00:02.22    0    0    0    0 rcu_sched 
   11  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:00.05    0    0    0    0 watchdog/0 
   12  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:00.07    0    0    0    0 watchdog/1 
   13  root     20     2    0 S     0     0  1  0.00  0.00   0  00:00.73    0    0    0    0 ksoftirqd/1 
   14  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:01.96    0    0    0    0 migration/1 
   16  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kworker/1:0H 
   17  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 cpuset

最后,当然不是说这不重要,我们在终端运行下面的命令就可以将 collectl 用作 ps 工具了。 你可以得到关于你系统进程的信息,这和在终端运行“ps”命令是一样的。

# collectl -c1 -sZ -i:1

waiting for 1 second sample...

### RECORD    1 >>> tecmint-vgn-z13gn <<< (1397979716.001) (Sun Apr 20 13:11:56 2014) ###

# PROCESS SUMMARY (counters are /sec)
# PID  User     PR  PPID THRD S   VSZ   RSS CP  SysT  UsrT Pct  AccuTime  RKB  WKB MajF MinF Command
    1  root     20     0    0 S    3M    2M  0  0.00  0.00   0  00:02.57    0    0    0    0 /sbin/init 
    2  root     20     0    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kthreadd 
    3  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.60    0    0    0    0 ksoftirqd/0 
    5  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/0:0H 
    7  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/u:0H 
    8  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:04.42    0    0    0    0 migration/0 
    9  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 rcu_bh 
   10  root     20     2    0 S     0     0  0  0.00  0.00   0  00:02.24    0    0    0    0 rcu_sched 
   11  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:00.05    0    0    0    0 watchdog/0 
   12  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:00.07    0    0    0    0 watchdog/1 
   13  root     20     2    0 S     0     0  1  0.00  0.00   0  00:00.73    0    0    0    0 ksoftirqd/1 
   14  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:01.96    0    0    0    0 migration/1 
   16  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kworker/1:0H 
   17  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 cpuset 
   18  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 khelper 
   19  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kdevtmpfs 
   20  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 netns 
   21  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 bdi-default 
   22  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kintegrityd

我确信许多系统管理员将会喜欢这个工具并且在充分使用它后会感受到它的强大。如果你想增进你对 collectl 的了解,从而达到新的层面,你可以去参阅 collectl 的 man 手册并勤加练习。

在你的终端键入下面的命令开始阅读吧。

# man collectl

参考链接


via: http://www.tecmint.com/linux-performance-monitoring-with-collectl-tool/

译者:Linchenguang 校对:Caroline

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

一个好的终端模拟器是一个选择Linux而不是Windows或Mac的充分理由,任何Linux的资深用户都会同意这点。通过使用shell,用户可以完成在图形环境下不可能或者太重复的任务。但是终端模拟器的选择是非常重要的,因为它会成为你使用最多的程序。我会尝试列出在Linux上好的终端模拟器的清单,从经典的到奇特的,但是它们都是有效率且独特的。

如果你认为还有好的终端程序在这里没有提到,请在评论区让我们知道。这里列出了许多,大多数是值得你了解一下。

1. Gnome-terminal

让我们先从“经典”终端开始,对于Gnome而言,Gnome-terminal和Gnome一样经典。它支持多用户配置,标签,文本大小调整,背景转换和高度定制。如它名字暗示的那样,它适用于Gnome环境。

2. Konsole

同样大名鼎鼎,Konsole在KDE环境下等同于Gnome-terminal。Konsole额外支持的一点是分割视图和书签目录。

3. (Xfce) terminal

Xfce用户同样有他们的Xfce4终端。这个项目的目的是制造一个在外观上相似Gnome-terminal的产品,但是更少占用资源需求。它是高端定制化的,虽然没有用户配置功能或者透明背景。

4. LXTerminal

其目标是为了成为桌面环境下的最有名的终端,LXTerminal是为LXDE环境设计的。如你所能想到的,它甚至比xfce-terminal更轻量快速,去除了复杂的自定义和高级选项,只保持了标签功能。

5. Terminator

现在让我们看看终端模拟器中的劳斯莱斯,Terminator是这些终端里面功能最完备的一款,它包括了标签、水平和垂直分割视图、截屏、用户配置、插件、布局管理。可能还有一些你永远都用不到的选项。它的缺点是太大和大量的资源消耗,这些就是你付出的代价。

6. Tilda

这里还有一款完全不同的一款终端,它称为“下拉”式。如果你喜欢你的终端总是一键可达,也许你会喜欢下面提到的三个特点。首先,Tilda是一个典型的下拉式终端;它不依赖于环境并且非常轻量;你可以设置透明度或者甚至是不同的背景,并且选择出现在屏幕的那个边。除去这些,不要期待太复杂的功能,比如标签或者分割视图。Tilda只做一件事:在你需要的时候快速显示出来。

7. Guake

如果喜欢Tilda的方式,而且希望与Gnome结合更紧密,你应该试试Guake。在功能方面,它多多少少与Tilda相似。两者之间最大的不同是Guake更美观。

8. Yakuake

KDE用户当然也不会被遗忘,他们有Yakuake,它基本上就是KDE环境下的Guake的替代品。它和Quake功能一样,除了还有标签化接口和用户配置。

9. Terra

对于既喜欢Terminator,也喜欢下拉式的资深用户而言,我估计Terra是最好的。介于Guake和Terminator之间,Terra在下拉式中支持分割视图和标签。

10. rxvt

如果你的目标是尽可能的轻量,并且你希望类似xterm,那么rxvt就是为你设计的。它没有标签和自定义,没有分割视图,没有任何东西,要极轻量就用rxvt。如果有时你只需要刚好够的功能,那么rxvt就是为你提供的。

11. Sakura

作为一款并不有名的终端模拟器,Sakura基于GTK但是并不需要完整的Gnome环境。不像rxvt,Sakura有一些额外的功能,像标签和颜色自定义,但是它尝试着保持简单和基本。因此如果你想要一款不针对特定环境的基础终端,Sakura可能是你想要的。

12. Terminology

这里面最奇异的终端是Terminology。它原本是为Enlightment设计的,它包括了目前我们看到的常规功能,并且还有我之前没有见过的功能。比如,直接在终端中播放流媒体,以及在文件列表中显示略缩图。


via: http://xmodulo.com/2014/05/good-terminal-emulator-linux.html

译者:geekpi 校对:wxy

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