分类:Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux

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

每个打开的文件都会被分配一个文件描述符.stdin (键盘), stdout (屏幕), 和 stderr (错误消息输出到屏幕上)的文件描述符分别是0, 1, 和 2. 对于正在打开的额外文件, 保留了描述符3到9. 文件描述符是文件系统为了跟踪这个打开的文件而分配给它的一个数字。 下面以实例说明 1,>的用法 [zhangy@localhost ~]$ echo "11111" >… 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 sys    0m0.003s… 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 .ssh]$ pwd… 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 v<size>[k,b]  Create… 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的内建变量和运算符 1,变量 变… Read More

sed很强大的文本操作命令

sed对文本的处理很强大,并且sed非常小,参数少,容易掌握,他的操作方式根awk有点像。sed按顺序逐行读取文件。然后,它执行为 该行指定的所有操作,并在完成请求的修改之后的内容显示出来,也可以存放到文件中。完成了一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到 它完成该文件。在这里要注意一点,源文件(默认地)保持不被修改。sed 默认读取整个文件并对其中的每一行进行修改。说白了就是一行一行的操作。我用sed主要就是用里面的替换功能,真的很强大。下面以实例,详细的说一下,先 从替换开始,最常用的。   一,测试文件test,讲awk时用的一样 sed -h -n, --quiet, --silent 取消自动打印模式空间 -e 脚本, --expression=脚本 添加“脚本”到程序的运行列表 -f 脚本文件, --file=脚本文件… Read More

Linux umask限制导致php的mkdir 0777无效

这两天在写一个缓存模块,需要把生成的缓存目录和文件设置成777权限,好让ftp用户可以直接登录删除缓存,蛋疼的事也就这么发生了,明明用了mkdir($path, 0777);用ftp用户登录却删除不了,为什么呢?   查看了一下建立的目录的权限,发现mkdir建立的目录权限都是755的,我明明用的是777,立马google了一下,才知道原来是受Linux 系统的 umask限制了,Linux的umask默认值是0022,所以php 的 mkdir 函数只能建立出755权限的文件夹出来。   小Tips:查看Linux的umask值直接在终端输入命令umask就可以看到   解决方法: $oldmask = umask(0); mkdir("test", 0777); umask($oldmask); 原文:http://stackoverflow.com/a/3997671/4009148… Read More