Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1426373
  • 博文数量: 842
  • 博客积分: 12411
  • 博客等级: 上将
  • 技术积分: 5772
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-14 14:43
文章分类

全部博文(842)

文章存档

2013年(157)

2012年(685)

分类: LINUX

2012-05-16 16:16:25

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif";}

[root@sz1 root]# ps -aux

USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND

root         1  0.1  0.1  1372  472 ?        S    21:32   0:04 init

root         2  0.0  0.0     0    0 ?        SW   21:32   0:00 [keventd]

 

USER 进程的属主;

PID    进程的ID

PPID      父进程;

%CPU       进程占用的CPU百分比;

%MEM     占用内存的百分比;

NI      进程的NICE值,数值大,表示较少占用CPU时间;

VSZ       进程虚拟大小;

RSS        驻留中页的数量;

TTY       终端ID

WCHAN   正在等待的进程资源;

START  启动进程的时间;

TIME 进程消耗CPU的时间;

COMMAND 命令的名称和参数;

 

STAT 进程状态

 

D    Uninterruptible sleep (usually IO)

R    正在运行可中在队列中可运行的;

S    处于休眠状态;

T    停止或被追踪;

W    进入内存交换(从内核2.6开始无效);

X    死掉的进程;

Z    僵尸进程;

<     优先级高的进程

N    优先级较低的进程

L     有些页被锁进内存;

s     进程的领导者(在它之下有子进程);

l      is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

+     位于后台的进程组;

 

 

 

 

ps 提供了很多的选项参数,常用的有以下几个;

 

l  长格式输出;

u  按用户名和启动时间的顺序来显示进程;

j  用任务格式来显示进程;

f  用树形格式来显示进程;

a  显示所有用户的所有进程(包括其它用户);

x  显示无控制终端的进程;

r  显示运行中的进程;

ww 避免详细参数被截断;

 

 

 

 

标准输出和标准错误输出可以重定向到同一个文件,一般形式是:

      command  &>file

等价于下面形式的命令:

     command > file  2>& 1

 

 

 

 

 

 

  diff:按行比较两个文件的不同

  cmp:按字节比较两个文件的不同

  diff3:按行比较三个文件的不同

  sdiff:输出两个文件的合集。输出文件中两个文件原本的行在同一行中不同列

  comm:快速的比较两个已经排过序的文件,输出两个文件的合集,交集,或任何单独的部分

 

sort

    功能:对文件中的各行进行排序。

         sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。缺省情况下以整行为关键字按ASCII字符顺序进行排序。

          常用选项

         - m 若给定文件已排好序,合并文件。

         - c 检查给定文件是否已排好序。

         - u 对排序后认为相同的行只留其中一行。

         - d 按字典顺序排序,仅比较字母、数字、空格和制表符。

         - r 按逆序输出排序结果。

         - b 在每行中寻找排序关键字时忽略前导的空格和制表符。

         - t separator 指定字符separator作为字段分隔符。

         -k,pos1,[pos2]:pos1pos2中间的字符为键值

          使用举例

         cat words | uniq –c | sort –k 1,1 –n –r 将一批词按照出现频次有高到低排序

 

 

    cut功能:用来从标准输入或文本中剪切指定列或者域

    常用选项:

  -c:指定剪切字符数

  -f:field 指定剪切指定域数

  -d:delimit 指定除空格和tab外的域分隔符

    使用举例:

  cut d : -f 3 example.txt

  who u|cut c1-8

    paste功能:将两个文件按行粘贴在不同的列中。是cut的反向操作

 

 

     

     

    (list) list将在一个子shell中执行, 不会对当前shell产生影响,返回listexit

     { list; } 可以作组合命令用,list将在当前shell中被执行,list结尾处必须要有新行或‘;’,返回listexit,list前后必须有空格

 

  推荐使用[[ ]]进行条件测试

      if [[ x$str== xa.txt && -f b.txt ]]

then

        cmd;

fi

 

    if [ $a lt 0 ]

   then

        echo OK

   fi

 

    推荐使用(( ))

if  (( a > 0 ))

    then

        echo OK

fi

 

    for (( expr1 ; expr2 ; expr3 )) ; do list ;done

for ((i=0;i<100;i++));do echo $i;done

 

    while list; do list; done

while read line

do

        echo $line

done < a.txt

    until list; do list; done

 

 

     

    截去域名尾部

name=jx-sys-superdb.jx.baidu.com

echo ${name%%.*}                

jx-sys-superdb

 

    截取日期

str=20081011

year=${str:0:4}

 

    替换

echo ${name//jx/tc}

tc-sys-superdb.tc.baidu.com

 

 

 

    功能:查找文件。find将在目录树中查找和用户指定模式相符合的文件。locate则是通过在locate的数据库中查找,locate 的数据库由updatedb程序负责维护。

    常用选项:

  -name:指定要查找的文件名

  -perm:指定要查找文件的权限

  -size:指定要查找文件的大小范围

  -mtime:指定查找修改时间在n天以内的文件。

  exec command:find命令查找到的文件作为command命令的参数

-    使用举例:

-    find . -mtime –1:查找在最近一天内被修改的文件

-    find . -name b.cpp -exec mv \{\} a.cpp \;

 

 

 

 

dd

拷贝二进制文件,

格式:

 count=BLOCKS 只拷贝BLOCKS个数据块

 ibs=BYTES 一次读入的数据量

 if=FILE 输入文件

 obs=BYTES 一次写出的数据量

 of=FILE 输出文件

 seek=BLOCKS 输出文件跳过BLOCKS个数据块

 skip=BLOCKS  输入文件跳过BLOCKS个数据块

 

time dd if=/dev/zero of=test bs=1024k count=1024 查看系统io性能

 

 

     

     

    x=aabbaarealwwvvww
echo “${x%w*w}“         #
截去尾部最短匹配

aabbaarealwwvv
echo “${x%%w*w}“     #
截去尾部最长匹配

aabbaareal
echo “${x##a*a}“          #
截去头部最长匹配

lwwvvww
echo “${x#a*a}“           #
截去头部最短匹配

     bbaarealwwvvww

 

    x=abcdabcd
echo ${x/a/b}         #
只替换一个
bbcdabcd
echo ${x//a/b}               #
替换所有
bbcdbbcd

 

 

 

 

 

    x=abcd

    ${#x}                            # 获取字串长度

4

    expr index  $x “b“                # 获取子串所在偏移

2
expr index  $x "a“               #
获取子串所在偏移

1

    echo ${x:1}                    # 获取子串

    bcd
echo ${x:2}
cd
echo ${x:0:2}

ab

 

 

遍历数组:

    total=${#A[*]}

    for ((i = 0; i < total; i++))

    do

       echo ${A[$i]}

    done

 

     

    ${!p*}             #返回所有以p开头的变量

       echo ${!P*}

       PATH PIPESTATUS PPID PS1 PS2 PS4 PWD

    ${p:-word}            #如果变量p不存在,返回"word”

    ${p:=word}     #如果变量p不存在,返回"word",并将p的值设为"word"

    ${p:?word}     #如果变量p不存在,将"word"打入STDERR

    ${p:+word}     #如果变量p存在,返回"word"

 

   

   

  将标准错误和标准输出一起过滤

    ./shell.sh  2>&1|grep

  只过滤标准错误,标准输出不要

    ./shell.sh 2>&1 1>/dev/null

    两个重定向顺序不能改变

    ./shell.sh 1>/dev/null 2>&1的结果是抛弃所有输出和错误

阅读(499) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~