实例说明shell i/o常用重定向

每个打开的文件都会被分配一个文件描述符.stdin (键盘), stdout (屏幕), 和 stderr (错误消息输出到屏幕上)的文件描述符分别是0, 1, 和 2. 对于正在打开的额外文件, 保留了描述符3到9. 文件描述符是文件系统为了跟踪这个打开的文件而分配给它的一个数字。 下面以实例说明 1,>的用法 [zhangy@localhost ~]$ echo… Read More

php执行linux命令的6个函数

一般情况下,很少会用php去执行linux命令,不过特殊情况下,你也许会用到这些函数。以前我知道有二个函数可以执行linux命令,一个是exec,一个是shell_exec。其实有很多的,结合手册内容,介绍以下6个函数。 1,exec函数 <?php $test = "ls /tmp/test"; //ls是linux下的查目录,文件的命令 exec($test,$array); //执行命令 print_r($array); ?> 返回结果如下: [root@krlcgcms01 shell]# php ./exec.php Array… Read More

shell编程必须要掌握的命令,xargs

一,说xargs命令前,说一下什么是shell编程 什么是shell编程呢,说白了就是按一定的规则把各种命令组织起来,完成一定的事情。纯属个人理解,哈哈。不管是交互式的shell,还是非交互的shell,它都是由一些命令组成的。 所以命令很重要。xargs就是其中之一,并且还是相当重要的一个命令,为什么说它重要 呢,因为他和能其他命令结合使用,把一个命令的输出,当作参数传给另一个命令。这个根find命令参数中的exec很像,但是不同:以下4点在网上找的, 第一点,是亲身体验过,家里我用的是archlinux,当你通过exec传很多数据给后面的命令时,会卡在哪儿,其他的三没试过,如果有兴趣的朋友可以 自己比较一下他们速度, [zhangy@BlackGhost music]$ time find /home/zhangy/download/ -name “.gz” -print real    0m0.053s user    0m0.003s… Read More

3种权限管理方案

浏览网站时,有的时候,会告诉你,无权进入一些页面。例如:一些技术性的论坛,刚进去的时候,只能看看贴子,并且只能在一定的区域看,不能 发贴等。做电子商务时,电子商务的后台是一个比较大的系统,不同的人进去会看到不同的页面,如果能看到同一个页面,也许允许的操作也不一样,这些机制是怎 么实现的呢。下面就个人愚见分析几种情况 一,简单session控制 实现原理和方法: 用户登录后台,输入用户名和密码,对用户的用户名和密码进行验证,验证通过后,可以把用户的一些基本信息放到session里面当用户访问后台的其他页面时,去判断一下session是否存在,并且没有过期。不过,后台管理员权限一样,没有区分 1,后台页面共用的基本类,我们可以在基本类的里加以判断,或者在基本类外面在extends一层,加以判断,去check一下session。 2,直接重写一个check_login.php每个后台页面都包涵这个页面,通过这个页面加以判断,check一下session。 二,菜单控制 实现原理和方法: 菜单控制比简单session控制要高级一点,不光判断用户是否登录,还对用户的权限进行了控制,不同的人看到不同的东西。 1,在显示菜单的地方加以判断,不同的用户显示不同的菜单。这种方法用户虽然看不到菜单,但是可以通过输入url,进入没有显示的菜单页面,前提是用户用户知道url才行。 2,建立一个用户和菜单内容的关系表,把用户所能看到的内容,放到数据库内,当要显示菜 单的地方,用数据库进行读取,如果用户是通过输入url进入的话,我们也可以根据用户和url,到关系表中进行查找,如果没有找到的话,就不准许进入,这 种方法可以避免上面一种方法的弊端了。 三,页面元素控制 上面说的菜单控制,可以设置权限到页面的级别,但是如果我有这样的需求又怎么办呢,所有 的人都可以访问一个页面,一部分可以进行添加操作,一部分人可以进行删除操作,一部分可以进行审核工作。这样的需求,菜单控制很难实现的。现在的权限管理… Read More

linux git 客户端 smartgit

本机装了双系统centos6.5,在centos下装了一套开发环境,发现linux下的git图形客户端好少,能用的更少。本想装一下gitg 的,发现gitg要求的依赖包好新,centos基本上不能满足,如果非要用的话,要手动更新好多包,太麻烦。在centos下,推荐使用 smartgit。 一,下载linux版smartgit 下载地址:http://www.syntevo.com/smartgithg/download 二,安装git # yum install git 三,生成公钥和私钥 # ssh-keygen -t rsa -C "你的邮箱" [zhangying@localhost… Read More

linux下分卷压缩,合并解压的3种方法

我们上传东西的时候,由于文件过大而不能上传,或者不给上传,最明显的就是发邮件了,附件最大5M,有的10M。如果超过了就郁闷了。这个时候,如 果能把压缩的东西,分割开来就比较爽了,windows下面我想大家知道怎么分割,利用winrar,winzip图型化设置压缩出来的块的大小。但是在 linux下面有没有这样的方法了,linux下面有rar命令,有zip命令,windows下面这二种方式可以分割压缩,我想linux下面绝对也是 可以的。下面是我尝试过程的记录: 一,rar分卷压缩和合并解压 rar -h 我们会发现以下参数,要创建多大的卷。 v             Create volumes with size autodetection or list all volumes… Read More

awk是命令还是编程语言

一,什么是awk awk是linux下的一个命令,他对其他命令的输出,对文件的处理都十分强大,其实他 更像一门编程语言,他可以自定义变量,有条件语句,有循环,有数组,有正则,有函数等。他读取输出,或者文件的方式是一行,一行的读,根据你给出的条件进 行查找,并在找出来的行中进行操作,感觉他的设计思想,真的很简单,但是结合实际情况,具体操作起来就没有那么简单了。他有三种形 势,awk,gawk,nawk,平时所说的awk其实就是gawk。 二,awk中的记录,域,分割符 当我们读取输出时,或者读取文件时,读取一行就是一个记录。记录分割符是默认是回车符,保存在RS,ORS中。 我们从记录中分割出我们要单词,或者是词组等,我们称他为域,域分割符,默认的是空格和TAB銉,保存在内建变 量ORS中。举个例子: aaaa:bbbb:ccccccc 1111:2343:5t43343 上面有二行,这二行就是二个记录,每行后面的回车呢,就是记录分割符,里面冒号呢,就是域分割符,分割出来的,aaaa,1111这类东西就是域了。 awk -F: ‘{print $1}’ testfile 三,awk的内建变量和运算符… Read More

何为第三方支付平台

何为第三方支付平台     我们把时间往前推15年,1999年的时候国内的电子商务开始起步,一些电商网站开始运行。理论上人们可以通过网络进行支付、购物。用户在网上下单,支 付,然后商家收到钱后发货,用户收到货物感觉非常嗨皮,一次美好的网购旅程结束了。但有时并不那么嗨皮,这种流程因为在支付和收货之间存在时间和空间上的 距离,那么问题就来了,不是挖掘技术哪家强,而是用户和商家难以在彼此信任的问题上达成一致,用户担心我给了钱,商家不发货;商家担心如果先发货,用户不 付钱。为了解决这种尴尬,第三方支付平台诞生了。 第三方支付平台通俗的讲就是作为一个中介,用户先把钱划给第三方平台,第三方平台暂时保管,并通知商家发货,商家将货物发送给用户,用户收货满意后,通知 支付平台,第三方支付平台把钱划给商家,如果用户收货后不满意,就将货物退回,第三方平台将钱返还给用。就这样后来陆续产生了很多第三方支付平台,支付 宝、财付通、快钱等是经过洗牌之后(支付牌照的颁发),目前规模比较大的第三方支付平台,顺便说一下,建设第三方支付平台门槛高、风险大、竞争激烈,首先 公司要获得国家颁发的第三方支付支付牌照、因为涉及巨额的资金交易会承担巨大的风险,而且现在几家大支付平台都在实行免费策略,就这对于刚入门的中小企业 来说有巨大的压力。 资金流     正如上述所说第三方支付平台原理: 1:浏览商品、下单; 2:支付,用户将货款划到支付平台; 3:支付平台通知商家支付成功; 4:卖家收到支付通知,进行发货; 5:用户收到货物,验货完成,通知支付平台; 6:支付平台将货款划到商家账户。… Read More

重磅资料!Github上的PHP资源汇总大全

福利来了,PHP爱好者们!国外程序员ziadoz 在Github上收集整理了PHP的各种资源,内容包括模板、框架、数据库、安全等方面的库和工具。这篇文章,PHP100汇总了这些PHP资源,供各位 PHP学习者和程序员参考。废话不多说,下面就是详细的资料列表。 依赖管理 ——用于依赖管理的包和框架 Composer/Packagist : 一个包和依赖管理器 Composer Installers:  一个多框架Composer库安装器 Pickle: 可以在任意平台上安装PHP扩展包 依赖管理的附加部分 ——其它依赖管理的相关工具 Satis : 静态的Composer库生成器… Read More

国外PHP学习网站书籍资料汇总

这篇文章汇总了全面多样的PHP学习资源,包括书籍、网站、文章等,帮助你提高PHP开发能力,巩固PHP知识。结合上一篇《重磅资料!Github上的PHP资源汇总大全》,一定可以让你的PHP技术上一台阶。欢迎广大PHP爱好者收藏和学习。 PHP网站 ——PHP相关的有帮助的网站 PHP The Right Way: 一个PHP实践的快速参考指导 PHP Best Practices: PHP最佳实践指导 PHP Weekly: 一个PHP新闻周刊 PHP Security: PHP安全方面的指导… Read More

优化MySQL,还是使用缓存?

今天我想对一个Greenfield项目上可以采用的各种性能优化策略作个对比。换言之,该项目没有之前决策强加给它的各种约束限制,也还没有被优化过。 具体来说,我想比较的两种优化策略是优化MySQL和缓存。提前指出,这些优化是正交的,唯一让你选择其中一者而不是另一者的原因是他们都耗费了资源,即开发时间。 优化MySQL 优化MySQL时,一般会先查看发送给mysql的查询语句,然后运行explain命令。稍加审查后很常见的做法是增加索引或者对模式做一些调整。 优点 1、一个经过优化的查询对于所有使用应用的用户来说都是快速的。因为索引通过对数复杂度的速度来检索数据(又名分制,正如你搜索一个电话簿一样,逐步缩小 搜索范围),而且随着数据量的递增也能维持良好的性能。对一个未经索引化的查询的结果做缓存随着数据的增长有时候则可能会表现得更差。随着数据的增长,那 些未命中缓存的用户可能会得到很糟糕的体验,这样的应用是不可用的。 2、优化MySQL不需要担心缓存失效或者缓存数据过期的问题。 3、优化MySQL可以简化技术架构,在开发环境下复制和工作会更加容易。 缺点 1、有一些查询不能光通过索引得到性能上的改善,可能还需要改变模式,在某些情况下这对于一些应用可能会很麻烦。 2、有些模式的更改可能用于反规范化(数据备份)。尽管对于DBA来说,这是一项常用的技术,它需要所有权以确保所有的地方都是由应用程序更新,或需要安装触发器来保证这种变化。 3、一些优化手段可能是MySQL所特有的。也就是说,如果底层软件被移植到多个数据库上工作,那么很难确保除了增加索引外一些更复杂的优化技术可以通用。 使用缓存 这种优化需要人来分析应用的实际情况,然后将处理代价昂贵的部分从MySQL中剥离出来用第三方缓存替代,比如memcached或Redis。 优点 1、缓存对于一些MySql自身很难优化的查询来说会工作地很好,比如大规模的聚合或者分组的查询。… Read More

大型网站的灵魂——性能

前言     在前一篇随笔《大型网站系统架构的演化》中, 介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去 研究实践。所以我打算写一个系列,从理论到实践讲述大型网站的点滴,这也是一个共同学习的过程,希望自己能坚持下去。系列大概会分为两部分,理论和实践, 理论部分尽量通俗易懂,也要讲一些细节。实践部分会抽取一些技术做实践,将方法、解决问题过程分享出来。 本文将讲述大型网站中一个重要的要素,性能。 什么是性能     有人说性能就是访问速度快慢,这是最直观的说法,也是用户的真实体验。一个用户从输入网址到按下回车键,看到网页的快慢,这就是性能。对于我们来说,需要去挖掘这个过程,因为这决定我们怎么去做性能优化。 这中间发生了什么? 用户访问网站的整个流程:用户输入网站域名,通过DNS解析,找到目标服务器IP,请求数据经互联网达到目标服务器,目标服务器收到请求数据,进行处理 (执行程序、访问数据库、文件服务器等)。处理完成,将响应数据又经互联网返回给用户浏览器,浏览器得到结果进行计算渲染显示给用户。 我们把整个过程,分为三段路径: 1、第一段在用户和浏览器端,主要负责发出用户请求,以及接受响应数据进行计算渲染显示给用户; 2、第二段在网络上,负责对请求数据、响应数据的传输; 3、第三段在网站服务器端,负责对请求数据进行处理(执行程序、访问数据库、文件等),并将结果返回; 第一路径     第一路径花费的时间包括输入域名发起请求的时间和浏览器收到响应后计算渲染的时间。 输入域名发起请求,实质过程是:… Read More