IT技术博客大学习 共学习 共进步

Linux

共 467 篇文章

IT 2012-09-03 13:50:10 / 浏览 5,080

神探tcpdump第四招

本文会是“选项内容”的最后一期讲解,主要会讲讲-w和-r两个选项。tcpdump的选项很多,多达50个,其他我没有涉及的选项,还是要大家自己通过man tcpdump的方式来学习了。实在研究不懂的,可以找我探讨:) == 做过网络流量分析的同学,或许都有一个共同的需求,那就是“流量保存”和“流量回放”,这就恰好对应了今天要讲解的-w选项和-r选项。 “流量保存”就是把抓到的网络包能存储到磁盘上,保存下来,为后续使用。 “流量回放”就是把历史上的某一时间段的流量,重新模拟回放出来,用于流量分析。

IT 2012-09-03 13:48:36 / 浏览 4,720

神探tcpdump第三招

 上篇文章说过,tcpdump会分成“选项”、“过滤表达式”和“输出信息”三部分讲解。 截止到目前,我们一直在围绕tcpdump的选项部分进行讲解,已经介绍过的选项包括-i选项、-nn选项、-c选项、-X选项、-e选项、-l选项。 今天仍然不例外,我们继续有关选项的内容。

IT 2012-09-02 22:04:19 / 浏览 5,700

神探tcpdump第二招

在第一招中,我们给大家演示了用tcpdump抓包的简单方法。接下来,我们会比较系统的来介绍tcpdump工具了。 从我的理解来看,tcpdump可以分为三大部分内容,第一是“选项”,第二是“过滤表达式”,第三是“输出信息”。 下面的文章,会分别从这三个方面来重点介绍。 == tcpdump的选项,我还真是专门数了一下,总共有50个之多。在这个系列文章中,实在很难全都覆盖,我尽量挑选重要且常用的选项来讲解, 一些不常用的选项,大家抽空可以自己去了解一下。 在《第一招》中讲到了-i选项、-nn选项、-c选项、-X选项。今天,我们继续介绍另外两个重要的选项,即-e选项和-l选项。

IT 2012-09-02 21:23:47 / 浏览 9,440

神探tcpdump第一招

通俗的说,tcpdump是一个抓包工具,用于抓取互联网上传输的数据包。 形象的说,tcpdump就好比是国家海关,驻扎在出入境的咽喉要道,凡是要入境和出境的集装箱,海关人员总要打开箱子,看看里面都装了点啥。 学术的说,tcpdump是一种嗅探器(sniffer),利用以太网的特性,通过将网卡适配器(NIC)置于混杂模式(promiscuous)来获取传输在网络中的信息包。

IT 2012-08-09 23:48:15 / 浏览 6,340

Linux IO协议栈框图

今天4月份在高阳同学的IO协议栈相关的PPT里面发现了这张图,忍不住还是贴了出来。 这张图很清晰的把linux IO协议栈的层次给勾出来了,而且内容很与时俱进,特别是SCSI设备的层次对大家理解sg3这样的包非常有帮助,强烈推荐大家好好研习!

IT 2012-08-05 22:50:55 / 浏览 4,880

深入理解Linux内存管理机制(一)

通过本文,您即可以: 1. 存储器硬件结构; 2.分段以及对应的组织方式; 3.分页以及对应的组织方式。

IT 2012-07-27 14:13:22 / 浏览 4,820

我对开源的看法

有这么一种观点:程序员要想提高技术水平,多读开源代码、多参与社区讨论与开发就好了。我以前很赞同,现在发现不是这样。 panpan和xuhui对我的批评是,多看看技术以外的东西。我的理解是这样,很多东西它之所以这么做,不是因为技术上是最优的,而是因为工期、领导的旨意、需求变更留下的历史问题等等。这些原因是无法通过阅读代码而得知的,我只能看到实现细节,却不能知道作者的设计意图。像Qt、leveldb这样的项目,名为开源,但是它并没有采用开放式的开发。只是这个公司将其技术成果共享出来了而已,中间的过程完全不可得知。举个例子,Nokia和Intel说要合伙做一个叫Meego的操作系统。Intel说好啊,我对Linux熟,我来优化底层系统,Nokia你来搞QT及上层软件。结果Intel很郁闷的发现,Nokia的Meego项目组有两套BUG管理系统,一套是对内的,只有Nokia自己的员工可以访问.....

IT 2012-07-19 14:04:40 / 浏览 4,040

和netstat说再见

如果你手头有Linux系统,你直接输入man netstat,就可以得到帮助信息。man对于netstat的解释非常言简意赅,只有一句简短的描述: “netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships” 中文意思是:netstat可以用来显示网络连接、路由表、接口统计、伪连接和组播成员。

IT 2012-07-19 14:03:26 / 浏览 2,420

篡权的ss

ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

IT 2012-07-09 23:06:39 / 浏览 4,080

深入理解Linux用户空间的锁机制

 随着SMP(Symmetrical Multi-Processing)架构的流行和epoll类系统调用对非阻塞fd监视的支持,高性能服务器端的开发已经能够实现CPU计算和IO的分离。为了充分发挥CPU的计算能力,服务器端的设计必须要尽量减少线程切换。引起线程切换最重要的原因之一就是对mutex和semaphor等锁的使用。本文从计算机体系架构、操作系统的支持和mutex的实现彻底分析Linux用户空间mutex的实现,分析的源码版本是glib-2.3.4和kernel-2.6.8。 

IT 2012-06-05 22:08:58 / 浏览 4,160

bash shell - sed, awk文本捕获及替换

bash shell虽然支持正则表达式, 但是正则操作却不大给力.看以下示例case需求.stream='background-image: url (a.jpg)asdfasdfasdf ;background:url(b.jpg);background'需要将背景图片内容a.jpg及b.jpg后追加一个签名串.sed替换不给力如果用sed, 替换是不会有问题, 但是要在一句代码里进行捕获多个图, 将进行替换, 查阅了相关的sed文档, 貌似是需求处理不了.

IT 2012-05-17 23:25:53 / 浏览 2,200

Linux操作系统的LILO详解

LILO是一个在Linux环境编写的Boot Loader程序(所以安装和配置它都要在Linux下)。它的主要功能就是引导Linux操作系统的启动。但是它不仅可以引导Linux,它还可以引导其他操作系统,如DOS,WINDOWS等等。它不但可以作为Linux分区的引导扇区内的启动程序,还可以放入MRB中完全控制Boot Loadr的全过程。下面让我们看看几种典型情况下硬盘的主引导扇区和各个分区的引导扇区内程序的内容。

IT 2012-05-17 23:24:15 / 浏览 6,320

vim(gvim)支持对齐线

前段时间有朋友在微博上@ 我推荐了一款vim的插件,用来显示对齐线,感觉效果不错,就给大家推荐一下. 插件为: Indent Guides 截图如下: 一. 安装 不用多说,直接解压放到vimfiles or .vim下

IT 2012-05-14 22:36:05 / 浏览 4,700

VIM复制粘贴的那些事

说起vim的复制粘贴一直是个比较困扰我的问题,之前一直用gvim,跟系统剪贴板之间的复制粘贴都没有问题,gvim毕竟还需要再开个窗口,麻烦,而且不如vim那样快捷,但vim里面最让我头痛的是复制粘贴问题,想把vim里面的内容复制到其它的地方貌似怎么也不行,粘贴进来的话免强可以,但格式可能会很乱,折腾来折腾去,今天先是发现了个往外复制比较蹩脚的办法: :set mouse=v 这样鼠标就可以变成文本选择指针的样子,可以选择选择字体,然后点右键选复制,或者CTRL+SHIFT+C,但如果mouse=a这种模式下的话选择之后,右键的复制是灰色的,当然这种情况复制如果有行号的话行号也会被复制进去,所以在复制前先把行号关了,复制完再打开,这办法貌似也能凑合,但着实太不专业,而且太麻烦,远不如用gvim的\"+y这种来得方便,\"+y这个很多推友表示是可以的,但在我这里不可以.........

IT 2012-03-11 22:20:35 / 浏览 5,280

Vim(gVim)对排序的妙用

前段时间有博友在群里问了一个关于vim排序的问题,因为时间问题一直没帮忙解决,今天时间正好空出来,就帮忙搞了一下。

IT 2012-01-29 20:46:24 / 浏览 2,140

什么是导出(export)环境变量

1. 执行如下命令:aVar=theValueecho $aVar不会输出theValue2. 执行如下命令:export aVar=theValueecho $aVar输出: theValue说明:如果没有export, 则,只作用于当前的命令; 如果export了,则相当于修改了当前shell的环境3. 比较如下两个命令第一个命令中的aVar是当前shell中的环境变量,因为没有使用export,所以只为空;第二个命令(注意:使用的是单引号)中的$aVar是eval进程中的环境变量,而前面没有使用export,所以,只作用于eval进程,所以aVar就有值了