du命令统计指定层级目录大小

    有时候我们在实际工作中,如裁剪APP包大小的时候,需要检查各个层级目录的总大小,这样可以针对占用空间较大的目录做裁剪。     在Linux中统计指定层级的目录大小可以用du命令,来个实际例子,下面的命令可以统计Linux的etc目录的第一级目录按大小升序排列前9位, [root@openresty ~]# du -m –max-depth=1  /etc/ | sort -n | tail 1    /etc/X11 1    /etc/xdg 1    /etc/xinetd.d 1    /etc/xml 1    /etc/yum 1    /etc/yum.repos.d 4    /etc/pki 9    /etc/gconf 21    /etc/selinux 40    /etc/  

Continue Reading

AWK高级用法之打印匹配行的上一行

    最近对数据处理很感兴趣,一直在研究Linux三剑客:grep AWK sed ,下面举个实际工作中遇到的一个小实例,联用三大文本处理剑客。   已知table.txt文件,cat查看文件内容如下,其实也就是我查询数据库中部分表的状态。   [pc@glusterfs-srv-01 ~]$ cat table.txt   *************************** 15. row ***************************            Name: procs_priv          Engine: MyISAM         Version: 10      Row_format: Fixed            Rows: 0  Avg_row_length: 0     Data_length: 0 Max_data_length: 239253730204057599    Index_length: 4096       Data_free: 0  Auto_increment: NULL     Create_time: 2016-09-19 01:38:11     Update_time: 2016-09-19…

Continue Reading

Shell重定向&>file、2>&1、1>&2的区别

        在UNIX/Linux系统中,每个打开的文件都有系统赋予的一个文件描述字,这是个小整数。一个文件被打开后,用户可以直接用这个描述字来引用对应的文件。系统为每个进程自动打开三个标准文件(即标准输入、标准输出和标准错误输出),其文件描述字分别为0,1和2。   shell上: 0表示标准输入 1表示标准输出 2表示标准错误输出 > 默认为标准输出重定向,与 1> 相同 2>&1 意思是把 标准错误输出 重定向到 标准输出. &>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中   用例子说话: 1. grep da * 1>&2 2. rm -f $(find / -name core) &> /dev/null 上面两例中的 & 如何理解,&不是放到后台执行吗?   牛解:   1.&>file或n>&m均是一个独立的重定向符号,不要分开来理解。   2.明确文件和文件描述符的区别。   3.&>file表示重定向标准输出和错误到文件 例如: rm -f $(find /…

Continue Reading

shell之too many arguments的解决方法

    新手在编写脚本时候,在做字符比对容易出现“too many arguments”报错,比如下面的代码: [pc@S5 Desktop]$ [ -n `ps aux | grep sshd` ] && echo test code bash: [: too many arguments 解决方法一: [pc@S5 Desktop]$ [[ -n `ps aux | grep sshd` ] ] && echo test code 解决方法二: [pc@S5 Desktop]$ [ -n ”`ps aux | grep sshd`“ ] && echo test code 我一般都用第二种方法,对变量加上双引号容错性强

Continue Reading

sed删除行首行尾的空格和Tab

在Linux下处理一些文本字符串时候,往往会遇到行首行末一些空格和tab干扰最终处理结果,现留一手供以后不时之需。   1  sed去除行首空格和tab 命令:  sed -e 's/^[ \t]*//g' file 说明:  ^号代表匹配行的开头,中括号里包含空格和tab字符集,*号代表中括号里的字符集出现0次或多次   2  sed去除行末空格和tab 命令:  sed -e 's/[ \t]*$//g' file 说明:  $号匹配在行尾出现的前面提到的字符集   此外,可以合并两个命令一次性去除行首、行末的空格和tab 命令:  sed  -e 's/^[ \t]*//g’  -e ‘s/[ \t]*$//g' file  

Continue Reading

lsof命令详解

Lsof是遵从Unix哲学的典范,它只完成一个功能,并且做的相当完美——它可以列出某个进程打开的所有文件信息。打开的文件可能是普通的文件、目录、NFS文件、块文件、字符文件、共享库、常规管道、命名管道、符号链接、Socket流、网络Socket、UNIX域Socket,以及其它更多类型。因为“一切皆文件”乃为Unix系统的重要哲学思想之一,因此可以想象lsof命令的重要地位。 lsof [options] filename lsof  /path/to/somefile:显示打开指定文件的所有进程之列表 lsof -c string:显示其COMMAND列中包含指定字符(string)的进程所有打开的文件;此选项可以重复使用,以指定多个模式; lsof -p PID:查看该进程打开了哪些文件;进程号前可以使用脱字符“^”取反; lsof -u USERNAME:显示指定用户的进程打开的文件;用户名前可以使用脱字符“^”取反,如“lsof -u ^root”则用于显示非root用户打开的所有文件; lsof -g GID:显示归属gid的进程情况 lsof +d /DIR/:显示指定目录下被进程打开的文件 lsof +D /DIR/:基本功能同上,但lsof会对指定目录进行递归查找,注意这个参数要比grep版本慢: lsof -a:按“与”组合多个条件,如lsof -a -c apache -u apache lsof -N:列出所有NFS(网络文件系统)文件 lsof -d FD:显示指定文件描述符的相关进程;也可以为描述符指定一个范围,如0-2表示0,1,2三个文件描述符;另外,-d还支持其它很多特殊值,如:     mem: 列出所有内存映射文件;     mmap:显示所有内存映射设备;     txt:列出所有加载在内存中并正在执行的进程,包含code和data;     cwd:正在访问当前目录的进程列表; lsof -n:不反解IP至HOSTNAME lsof -i:用以显示符合条件的进程情况 lsof -i[46] [protocol][@hostname|hostaddr][:service|port]    …

Continue Reading

awk命令详解

一、简介     Linux下必须掌握的三大文本处理工具: 1  grep: 文本过滤器 2  sed:流编辑器 3  awk: 报告生成器 AWK是以 a.k.a. Aho, Kernighan and Weinberger三位开发者命名,它是个强大的报告生成器,只有你没想到的,没有它做不到的。  基本用法: # awk [options] 'script' file1 file2, … # awk [options] 'PATTERN { action }' file1 file2, …     print, printf 二、具体用法 1. 模式和操作 awk脚本是由模式和操作组成的: pattern {action} 如$ awk '/root/' test,或$ awk '$3 < 100' test。 两者是可选的,如果没有模式,则action应用到全部记录,如果没有action,则输出匹配全部记录。默认情况下,每一个输入行都是一条记录,但用户可通过RS变量指定不同的分隔符进行分隔。 1.1….

Continue Reading

grep命令详解

grep三大家族:grep egrep fgrep 一、基本用法 grep [options] PATTERN [FILE…]     -i ignore case     –color     -v reverse     -o only print match string     -c  计算找到行的数目     -w  只匹配单词     -q  安静模式,不输出任何信息,即使是检测到错误,而是立即返回状态0(如果匹配到的话) TIP: alias grep='grep –color'   二、正则表达式 RegExp:  regular expression 正则表达式     ^ 表示一行的开头。如:/^#/ 以#开头的匹配。     $ 表示一行的结尾。如:/}$/ 以}结尾的匹配。     \<…

Continue Reading

sed命令详解

一、简介     sed命令是著名的Linux系统流编辑器,具有强大的文本处理功能,和grep、awk一并称为Linux下的三大文本处理工具。     二、基本用法   sed [OPTION]… {script-only-if-no-other-script} [input-file]…   option :         -r, –regexp-extended                 use extended regular expressions in the script.             -n, –quiet, –silent                 suppress automatic printing of pattern space          -e script, –expression=script                …

Continue Reading