一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Linux

整理时下流行的浏览器User-Agent大全

总结整理时下流行的浏览器User-Agent大全 此文章转至:http://www.360doc.com/content/12/1012/21/7662927_241124973.shtml 用于学习   一、基础知识篇: Http Header之User-Agent User Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通过这个标 识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计;例如用手机访问谷歌和电脑访问是不一样的,这些是谷歌根据访问者的 UA来判断的。UA可以进行伪装。 浏览器的UA字串的标准格式:浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识版本信息。但各个浏览器有所不同。   字串说明:   1、浏览器标识 出于兼容及推广等目的,很多浏览器的标识相同,因此浏览器标识并不能说明浏览器的真实版本,真实版本信息在 UA 字串尾部可以找到。   2、操作系统标识 3、加密等级标识   N: 表示无安全加密 I: 表示弱安全加密 U: 表示强安全加密   4、浏览器语言 在首选项 > 常规 > 语言中指定的语言   5、渲染引擎 显示浏览器使用的主流渲染引擎有:Gecko、WebKit、KHTML、Presto、Trident、Tasman等,格式为:渲染引擎/版本信息   6、版本信息 显示浏览器的真实版本信息,格式为:浏览器/版本信息   浏览器User-Agent的详细信息   PC端:   safari 5.1 – MAC User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50   safari 5.1 – Windows User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 […]

龙生   29 Jul 2016
View Details

缓存Redis与Memcached的比较

Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度.      Memcached基于一个存储键/值对的hashmap。         Redis是一个key-value存储系统,和Memcached类似。但是它支持存储的value类型相对更多,包括string(字符串)、 list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都 是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期 性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。     Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便.         下面主要介绍一下Redis与Memcached的不同。 1.网络IO模型     Memcached是多线程,非阻塞IO复用的网络模型,分为监听主线程和worker子线程,监听线程监听网络连接,接受请求后,将连接描述字pipe 传递给worker线程,进行读写IO, 网络层使用libevent封装的事件库,多线程模型可以发挥多核作用,但是引入了cache coherency和锁的问题,比如,Memcached最常用的stats 命令,实际Memcached所有操作都要对这个全局变量加锁,进行计数等工作,带来了性能损耗。     Redis使用单线程的IO复用模型,自己封装了一个简单的AeEvent事件处理框架,主要实现了epoll、kqueue和select,对于单纯只 有IO操作来说,单线程可以将速度优势发挥到最大,但是Redis也提供了一些简单的计算功能,比如排序、聚合等,对于这些操作,单线程模型实际会严重影 响整体吞吐量,CPU计算过程中,整个IO调度都是被阻塞住的。 2.内存管理方面     Memcached使用预分配的内存池的方式,使用slab和大小不同的chunk来管理内存,Item根据大小选择合适的chunk存储,内存池的方式可以省去申请/释放内存的开销,并且能 减小内存碎片产生,但这种方式也会带来一定程度上的空间浪费,并且在内存仍然有很大空间时,新的数据也可能会被剔除,原因可以参考Timyang的文 章:http://timyang.net/data/Memcached-lru-evictions/     Redis使用现场申请内存的方式来存储数据,并且很少使用free-list等方式来优化内存分配,会在一定程度上存在内存碎片,Redis跟据存储命 令参数,会把带过期时间的数据单独存放在一起,并把它们称为临时数据,非临时数据是永远不会被剔除的,即便物理内存不够,导致swap也不会剔除任何非临 时数据(但会尝试剔除部分临时数据),这点上Redis更适合作为存储而不是cache。 3.数据一致性问题     Memcached提供了cas命令,可以保证多个并发访问操作同一份数据的一致性问题。 Redis没有提供cas 命令,并不能保证这点,不过Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断。 4.存储方式及其它方面     Memcached基本只支持简单的key-value存储,不支持枚举,不支持持久化和复制等功能     Redis除key/value之外,还支持list,set,sorted set,hash等众多数据结构,提供了KEYS 进行枚举操作,但不能在线上使用,如果需要枚举线上数据,Redis提供了工具可以直接扫描其dump文件,枚举出所有数据,Redis还同时提供了持久化和复制等功能。 5.关于不同语言的客户端支持 在不同语言的客户端方面,Memcached和Redis都有丰富的第三方客户端可供选择,不过因为Memcached发展的时间更久一些,目前看在 客户端支持方面,Memcached的很多客户端更加成熟稳定,而Redis由于其协议本身就比Memcached复杂,加上作者不断增加新的功能等,对 应第三方客户端跟进速度可能会赶不上,有时可能需要自己在第三方客户端基础上做些修改才能更好的使用。 根据以上比较不难看出,当我们不希望数据被踢出,或者需要除key/value之外的更多数据类型时,或者需要落地功能时,使用Redis比使用Memcached更合适。 关于Redis的一些周边功能     Redis除了作为存储之外还提供了一些其它方面的功能,比如聚合计算、pubsub、scripting等,对于此类功能需要了解其实现原理,清楚地了解到它的局限 性后,才能正确的使用,比如pubsub功能,这个实际是没有任何持久化支持的,消费方连接闪断或重连之间过来的消息是会全部丢失的,又比如聚合计算和 scripting等功能受Redis单线程模型所限,是不可能达到很高的吞吐量的,需要谨慎使用。 总的来说Redis作者是一位非常勤奋的开发者,可以经常看到作者在尝试着各种不同的新鲜想法和思路,针对这些方面的功能就要求我们需要深入了解后再使用。 总结: 1.Redis使用最佳方式是全部数据in-memory。 2.Redis更多场景是作为Memcached的替代者来使用。 3.当需要除key/value之外的更多数据类型支持时,使用Redis更合适。 4.当存储的数据不能被剔除时,使用Redis更合适。 from:http://bluenemo.iteye.com/blog/2157736

龙生   07 Apr 2016
View Details

ubuntu配置nginx+php

1.安装 sudo apt-get install nginx php5-fpm

龙生   21 Feb 2016
View Details

Ubuntu 更改文件夹权限及chmod详细用法

Ubuntu 更改文件夹权限 Ubuntu的许多操作是在终端中进行的,通过sudo命令管理的文件是由root持有权限的,一般用户是无法改变的。在图形界面上,我们可以通过属性中的权限选项夹进行操作。但是一旦文件的属性显示当前用户没有读写权力时,无法在图形界面上修改权限。 M6JLinux联盟 常用方法如下: M6JLinux联盟 sudo chmod 600 ××× (只有所有者有读和写的权限) sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限) sudo chmod 700 ××× (只有所有者有读和写以及执行的权限) sudo chmod 666 ××× (每个人都有读和写的权限) sudo chmod 777 ××× (每个人都有读和写以及执行的权限) M6JLinux联盟 其中×××指文件名(也可以是文件夹名,不过要在chmod后加-ld)。 M6JLinux联盟 解释一下,其实整个命令的形式是 sudo chmod -(代表类型)×××(所有者)×××(组用户)×××(其他用户) M6JLinux联盟 三位数的每一位都表示一个用户类型的权限设置。取值是0~7,即二进制的[000]~[111]。 M6JLinux联盟 这个三位的二进制数的每一位分别表示读、写、执行权限。 M6JLinux联盟 如000表示三项权限均无,而100表示只读。这样,我们就有了下面的对应: 0 [000] 无任何权限 4 [100] 只读权限 6 [110] 读写权限 7 [111] 读写执行权限 M6JLinux联盟 现在看上面的几个常用用法就非常清楚了。试着自己来修改权限吧 M6JLinux联盟 最后同时附上查询文件(或文件夹)权限的命令 ls -l 文件名称 (文件夹将-l改为-ld)。  原文地址:http://liufeng2008.blogspot.com/2008/08/ubuntu.html     chmod命令详细用法   指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file… 说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。 参数 : mode : 权限设定字串,格式如下 : [ugoa…][[+-=][rwxX]…][,…],其中 u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。 -c : 若该档案权限确实已经更改,才显示其更改动作 -f : 若该档案权限无法被更改也不要显示错误讯息 -v : 显示权限变更的详细资料 -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) --help : 显示辅助说明 --version : 显示版本 范例 :将档案 file1.txt 设为所有人皆可读取 : chmod ugo+r file1.txt  将档案 file1.txt 设为所有人皆可读取 : chmod a+r file1.txt  […]

龙生   21 Feb 2016
View Details

linux重启和关闭系统命令

重启命令: 1、reboot 2、shutdown -r now 立刻重启(root用户使用) 3、shutdown -r 10 过10分钟自动重启(root用户使用) 4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用) 关机命令: 1、halt   立刻关机 2、poweroff  立刻关机 3、shutdown -h now 立刻关机(root用户使用) 4、shutdown -h 10 10分钟后自动关机

龙生   13 Nov 2015
View Details

Windows下的Linux开发环境 Cygwin

Cygwin是许多自由软件的集合,最初由Cygnus Solutions开发,用于各种版本的Microsoft Windows上,运行UNIX类系统。Cygwin的主要目的是通过重新编译,将POSIX系统(例如Linux、BSD,以及其他Unix系统)上的软件移植到Windows上。Cygwin移植工作在Windows NT、Windows 2000、Windows XP以及Windows Server 2003上比较好,在Windows 95和Windows 98上,相对差劲一些。目前Cygwin由Red Hat等负责维护。 Cygwin包括了一套库,该库在Win32系统下实现了POSIX系统调用的API;还有一套GNU开发工具集(比如GCC、GDB),这样可以进行简单的软件开发;还有一些UNIX系统下的常见程序。2001年,新增了X Window System。 另外还有一个名为MinGW的库,可以跟Windows本地的MSVCRT库(Windows API)一起工作。MinGW占用内存、硬盘空间都比较少,能够链接到任意软件,但它对POSIX规范的实现没有Cygwin库完备。 但糟糕的是,Cygwin不支持Unicode。实际上,除了当前Windows系统以及OEM codepages(例如,一个俄语用户,他的codepages是CP1251和CP866,而不能是KOI8-R、ISO/IEC 8859-5、UTF-8等),Cygwin对其他字符集都不支持。 Red Hat规定,Cygwin库遵守GNU General Public License,但也可以跟符合开源定义的自由软件链接。Red Hat另有价格不菲的许可协议,这样使用Cygwin库的专属软件,就可以进行再发布。 授权协议: GPL 开发语言: C/C++ 操作系统: Windows 收录时间: 2008年10月30日 软件首页 软件文档 软件下载 from:http://www.oschina.net/p/cygwin

龙生   21 Apr 2015
View Details

Linux 容器引擎 Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。 授权协议: Apache 开发语言: Google Go 查看源码» 操作系统: Linux 收录时间: 2013年07月19日 软件首页 软件文档 软件下载 from:http://www.oschina.net/p/docker

龙生   21 Apr 2015
View Details

Linux 安装VMware Tools

为什么要装 VMware Tools? 因为它可以改善 Virtual Machine 的执行效能,而且可以让 Host OS 和 Guest OS 互通有无,这样我们就不用伤脑筋,要架设什么服务器,来沟通两个 OS,现在就让我们开始吧! 1,安装环境检查 #观看 kernel 版本 uname -r #安装 gcc、make、kernel-headers apt-get install gcc make kernel-headers-2.6.9-42-686 or rpm -ivh package_name 注意: 1. kernel-headers 的版本一定要和 kernel 的版本一样才可以,否则 VMware Tools 无法成功安装 2. 随着时间的移易,画面上的 kernel 版本可能会有所差异,请依照自己的版本操作 2,开始安装 在vmware 的“VM”菜单--“setting”中,点选光驱,选取「Use physical drive」 在[VM」→「Install VMware Tools」--〔Install〕 当我们装了 VMware Toools 之后,要的档案就会在光驱内了,不过要先挂载才可以使用, #挂载光驱 mount /dev/cdrom /mnt #看一下 ls /mnt #将 vmware-linux-tools.tar.gz 复制到 /tmp 数据夹 cp /cdrom/vmware-linux-tools.tar.gz /tmp #进入 /tmp 数据夹 cd /tmp #解压缩 tar zxvf vmware-linux-tools.tar.gz #进入 vmware-tools-distrib 数据夹 cd vmware-tools-distrib #开始安装 ./vmware-install.pl 安装过程的画面,全部使用默认值,一直按 […]

龙生   18 Jan 2014
View Details

Linux软件安装常用方法

1、软件安装卸载,分几种情况: A:RPM包,这种软件包就像windows的EXE安装文件一样,各种文件已经编译好,并打了包,哪个文件该放到哪个文件夹,都指定好了,安装非常方便,在图形界面里你只需要双击就能自动安装。 ==如何卸载: 1、打开一个SHELL终端 2、因为Linux下的软件名都包括版本号,所以卸载前最好先确定这个软件的完整名称。 查找RPM包软件:rpm -qa ×××* 注意:×××指软件名称开头的几个字母,不要求写全,但别错,*就是通配符号“*”,即星号,如你想查找机子里安装的REALPLAYER软件,可以输入:rpm -qa realplay* 3、找到软件后,显示出来的是软件完整名称,如firefox-1.0.1-1.3.2 执行卸载命令:rpm -e firefox-1.0.1-1.3.2 ===安装目录,执行命令查找:rpm -ql firefox-1.0.1-1.3.2 ===参考文章:http://blog.chinaunix.net/article.p…178&blogId=1438 B:tar.gz(bz或bz2等)结尾的源代码包,这种软件包里面都是源程序,没有编译过,需要编译后才能安装,安装方法为: 1、打开一个SHELL,即终端 2、用CD 命令进入源代码压缩包所在的目录 3、根据压缩包类型解压缩文件(*代表压缩包名称) tar -zxvf ****.tar.gz tar -jxvf ****.tar.bz(或bz2) 4、用CD命令进入解压缩后的目录 5、输入编译文件命令:./configure(有的压缩包已经编译过,这一步可以省去) 6、然后是命令:make 7、再是安装文件命令:make install 8、安装完毕 ===如何卸载: 1、打开一个SHELL,即终端 2、用CD 命令进入编译后的软件目录,即安装时的目录 3、执行反安装命令:make uninstall ====安装目录:注意make install命令过程中的安装目录,或者阅读安装目录里面的readme文件,当然最好的办法是在安装的过程中指定安装目录,即在./configure命令后面加参数--prefix=/**, 如:./configure --prefix=/usr/local/aaaa,即把软件装在/usr/local/路径的aaaa这个目录里。一般的软件的默认安装目录在/usr/local或者/opt里,可以到那里去找找 C:以bin结尾的安装包,这种包类似于RPM包,安装也比较简单 1、打开一个SHELL,即终端 2、用CD 命令进入源代码压缩包所在的目录 3、给文件加上可执行属性:chmod +x ******.bin(中间是字母x,小写) 3、执行命令:./******.bin(realplayer for Linux就是这样的安装包) ===如何卸载:把安装时中选择的安装目录删除就OK ===执行安装过程中可以指定,类似于windows下安装。 2、安装完软件后如何执行。 安装完软件后可以有好多种方法执行软件: A、有些软件安装后会自动在应用程序列表里加上快捷键,和windows一样,到那里找就行了。 B、如果在应用程序列表里找不到的话,可以直接在/开始/运行命令里输入命令:启动命令一般就是软件名,如firefox,realplay,xmms等 C、也可以打开一个shell终端,输入软件名,和在“运行命令”里一样。如果不知道命令全程的话,可以输入开头的字母,然后按tab键查找,系统会自动显示以输入字母开头的所有命令/ D、你也可以直接到安装目录下运行启动文件,Linux下的可执行图标和shell终端图标很像 E、到/usr/bin目录里找安装的软件启动文件执行命令。Linux系统把所有可执行的文件命令在/usr/bin目录里都作了启动连接,你可以去那个目录寻找你安装的文件的启动命令,双击启动。 转自:http://soft.zdnet.com.cn/software_zone/2008/0513/858582.shtml

龙生   18 Jan 2014
View Details
1 19 20 21 23