Shell
「已注销」
这个作者很懒,什么都没留下…
展开
-
精选37条强大的常用linux shell命令组合
任务命令组合1删除0字节文件find . -type f -size 0 -exec rm -rf {} \;find . type f -size 0 -delete2查看进程,按内存从大到小排列ps -e -o "%C : %p : %z : %a"|sort -k5 -nr3按cpu利用率从大转载 2013-09-24 17:24:22 · 1025 阅读 · 0 评论 -
【shell】linux shell 实现多线程
我的实例:getMachines(){ mobileOs=$1; MACHINES=""; while [ "$MACHINES" == "" ] do ####µ÷ÓÃMTC·½·¨£¬´«µÝ¹ýÈ¥OS²ÎÊý£¬·µ»Ø»úÆ÷Áбí»úÆ÷¼äÓöººÅ·Ö¸ô)转载 2013-01-17 11:24:38 · 1858 阅读 · 0 评论 -
【shell】 shell 数组
BASH只支持一维数组,但参数个数没有限制。 声明一个数组:declare -a array(其实不用声明,按数组方式直接赋值给变量即可,BASH就知道那是数组) 数组赋值:(1) array=(var1 var2 var3 ... varN)(2) array=([0]=var1 [1]=var2 [2]=var3 ... [n]=varN)(3) arr转载 2013-01-17 11:25:35 · 554 阅读 · 0 评论 -
【shell】生成日期序列
#!/bin/sh#riqizizengdatebeg=$1dateend=$2#read datebeg#read dateendbeg_s=`date -d "$datebeg" +%s`end_s=`date -d "$dateend" +%s`while [ "$beg_s" -le "$end_s" ]dodate -d @$beg_s +"%Y%转载 2013-01-10 00:06:41 · 4055 阅读 · 0 评论 -
【sed】替换的简单用法
测试数据test:===================12323434324zhourunfa male 55liudehua male 10===================1. 将文本中的zhou替换为zhoujie sed 's/zhou/zhoujie/' test2. 将文本中zhou替换为zhoujie,并且把liu替换为liuban原创 2013-01-22 22:21:32 · 963 阅读 · 0 评论 -
【linux】.bash_profile和.bashrc的什么区别
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登转载 2012-12-19 10:39:57 · 493 阅读 · 0 评论 -
【shell】/dev/null 2>&1
用 /dev/null 2>&1 这样的写法.这条命令的意思是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃. 下面就为大家来说一下, command > file 2>file 与command > file 2>&1 有什么不同的地方. 首先 command > file 2>file 的意思是将命令所产生的标准输出信息,和错误转载 2012-12-18 20:50:43 · 646 阅读 · 0 评论 -
【shell】用sed获取最后一个字符
1. 输入:echo "hello" | sed 's/\(.*\)\(.\)$/\1/' 输出:o2. 输入:echo "hello" | sed 's/\(.*\)\(.\)$/\2/' 输出:hell注:\(...\)是分组的意思原创 2012-12-18 20:45:41 · 10348 阅读 · 2 评论 -
【shell】切割字符串--cut
$testStr='hello_world'$echo $testStr | cut -d _ -f 2world-d后面的符号表示字段之间的分隔符,-f表示取分割后的哪些字段原创 2012-12-17 14:26:57 · 913 阅读 · 0 评论 -
【shell】tar 压缩时排除某个目录或文件
转载:http://blog.chinaunix.net/uid-10449864-id-2956895.html在对某个目录进行压缩的时候,有时候想排除掉某个目录,示例如下:如果test目录下有3个目录,aa, bb, ccdrwxr-xr-x 2 root root 4096 Nov 18 18:48 aadrwxr-xr-x 2 root root 409转载 2012-12-15 16:02:50 · 2264 阅读 · 0 评论 -
linux shell在一个脚本中调用其它的脚本
bash shell的命令分为两类:外部命令和内部命令。外部命令是通过系统调用或独立的程序实现的,如sed、awk等等。内部命令是由特殊的文件格式(.def)所实现,如cd、history、exec等等。fork ( /directory/script.sh)首先,我們所執行的任何程式,都是由父行程(parent process)所產生出來的一個子行程(child proces转载 2012-12-13 11:09:55 · 834 阅读 · 0 评论 -
【shell】sed命令详解
1.简介sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行转载 2013-02-01 16:22:26 · 873 阅读 · 0 评论 -
【shell】Sed学习笔记
转载:http://www.tsnc.edu.cn/default/tsnc_wgrj/doc/sed.htm#id2808439Table of Contents1. Sed简介2. 定址3. Sed命令4. 选项5. 元字符集6. 实例7. 脚本8. 小技巧1. Sed简介sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理转载 2013-02-01 16:13:33 · 623 阅读 · 0 评论 -
【shell】test , [] , [[]] 的区别
因为 shell 和我们通常编程语言不同,更多的情况是和它交互,总是调用别人。 所以有些本属于程序语言本身的概念在 shell 中会难以理解。"基本功" 不好, 更容易 "犯困" 了,我就是一个 :-) 。以 bash 为例 (其他兼容 shell 差不多):test 和 [ 是 bash 的内部命令,GNU/linux 系统的 coreutils 软件包通 常也带 /usr/bin/转载 2013-01-18 14:05:30 · 1677 阅读 · 0 评论 -
[shell/awk]按列求和
在Shell中,我们可以用awk实现按列求和的功能,非常简单。看下面的例子:1.简单的按列求和[linux@test /tmp]$ cat test123.52125.54126.36[linux@test /tmp]$ awk '{sum += $1};END {print sum}' test转载 2013-05-22 11:08:14 · 18482 阅读 · 0 评论 -
【shell】给变量赋默认值
通常shell中我们需要给变量设置默认值,可能会写出如下代码 Shell代码 #!/bin/bash if [ ! $1 ]; then $1='default' fi 显然这种方式在变量少的时候没啥问题,一旦变量多起来,我们可能就有大量的重复劳动(if判断) 有没有比转载 2013-04-08 17:29:14 · 12262 阅读 · 2 评论 -
【shell】获取当前目录名
1.basename basename `pwd`2.echoYou can use parameter substitution with the ${var##pattern} syntax, which removes from $var the longest part of $Pattern that matches the front end of转载 2013-04-02 09:53:23 · 909 阅读 · 0 评论 -
【linux】 Linux Crontab 定时任务 命令详解
一. Crontab 介绍 crontab命令的功能是在一定的时间间隔调度一些命令的执行。 1.1 /etc/crontab 文件 在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。 如:[root@dave ~]# cat /etc/crontabSHEL转载 2013-03-01 13:28:09 · 756 阅读 · 0 评论 -
【shell】切割字符串
相信编程时,字符串的处理是很频繁被处理的问题,其中大家肯定不陌生各种语言的string.split('sp')将字符串按照某个字符或子串切分成一个数组。同样,我们在用shell处理文本信息时也可以方便地实现该功能。这里主要使用了bash中关于字符串变量的处理和array初始化的能力。 如下: Shell代码 #!/bin/bas转载 2013-03-01 13:21:19 · 704 阅读 · 0 评论 -
【shell】shell代码规范
Shell代码规范前言:随着写的SHELL程序越来越多,发现自己每次写都有不同的习惯或者定义了不同的东西,变量名定义得不一样,整个程序缩进不统一,没有注释等问题,等我回过头看这些程序的时候发现很麻烦。所以想到写个自己的shell代码规范。1 概述1.1 目的定义Shell脚本命名和编码规范,统一管理Shell脚本,便于自己和别人查看,提高代码书写速度和美观,暂时只对转载 2013-03-12 16:36:37 · 1092 阅读 · 0 评论 -
【shell】 shell脚本报错:"[: =: unary operator expected"
shell脚本报错:"[: =: unary operator expected" 在匹配字符串相等时,我用了类似这样的语句:if [ $STATUS == "OK" ]; then echo "OK"fi 在运行时出现了 [: =: unary operator expected 的错误,就一直找不到原因,尝试了删除等号两侧的空格和括号转载 2013-03-12 16:35:36 · 1705 阅读 · 1 评论 -
【awk】awk逆序打印记录
已知log.txt,其内容如下:=================Beth 4.00 0Beth 4.00Dan 3.76 0Kathy 4.00 10Mark 5.00 20Mary 5.50 22Susie 4.25 18=================cat reverse_print.awk:{line[NR] =原创 2013-02-22 16:15:55 · 2016 阅读 · 0 评论 -
【shell】切分字符串
方法1:用awk切分-----------------------------------------------------dbs="idigger,idiggersem,sony,mso"dbarr=`echo $dbs | awk -F"," '{print $0}' | sed "s/,/ /g"`for db in $dbarrdo echo $dbdo原创 2013-03-04 14:37:49 · 1631 阅读 · 0 评论 -
【shell】展开运算符y
${varname:-word}如果varname存在且非null,那么返回其值;否则,返回word。例子:如果count未定义,则${count:-0}的值为0.原创 2013-01-18 14:22:09 · 645 阅读 · 0 评论 -
【shell】shell脚本的调试方式(三 )
第三种调试方式是通过变量设置来控制debug级别,类似于log4j(debug,info,warn,error,fatal),当然比它要简单得多。如下所示:#!/bin/shdebug=1test $debug -gt 0 && echo "Debug is on"echo -n "Can you write device drivers? "read answerte原创 2012-12-13 19:39:08 · 541 阅读 · 0 评论 -
【shell】shell脚本的调试方式(四 )
第四种调试shell脚本的方法是通过一个函数来控制语句的执行结果(成功或者失败)可以采用alert函数,如下所示:alert () {# usage: alert if [ "$1" -ne 0 ]thenecho "WARNING: $2 did not complete successfully." >&2exit $1elseecho "INFO: $2原创 2012-12-13 19:43:23 · 546 阅读 · 0 评论 -
shell 快捷键
表2-1 浏览命令行的击键击键全名含义Ctrl+F字符向前向前移动一个字符Ctrl+B字符向后向后移动一个字符转载 2012-11-29 09:46:57 · 625 阅读 · 0 评论 -
sed 截取文本段
…beginabcd…end…取出每一个begin和end之间的部分,每一对begin和end之间的内容是不一样的sed -n ‘/^begin/,/end$/p’ file |grep -v begin|grep -v end转载 2012-11-29 13:38:13 · 4689 阅读 · 0 评论 -
shell 单双引号
单引号和双引号都能关闭shell对特殊字符的处理。不同的是,双引号没有单引号严格,单引号关闭所有有特殊作用的字符,而双引号只要求shell忽略大多数,具体的说,就是①美元符号②反引号③反斜杠,这3种特殊字符不被忽略。转载 2012-11-15 11:15:27 · 628 阅读 · 0 评论 -
linux 命令exec,source,system
exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息。bash shell的命令分为两类:外部命令和内部命令。外部命令是通过系统调用或独立的程序实现的,如sed、awk等等。内部命令是由特殊的文件格式(.def)所实现,如cd、history、exec等等。 在说明ex转载 2012-11-15 09:23:25 · 789 阅读 · 0 评论 -
linux文件描述符
命令:make 1 > results 2 > error解释:执行make命令,并将标准输出传给results,将错误输出传给error原创 2012-11-12 11:26:38 · 590 阅读 · 0 评论 -
shell [: too many arguments
原文出自http://ywuchn.spaces.live.com/Blog/cns!2F33043850B92381!532.entry 今天发现Shell脚本中的if语句产生了如题的错误,经检查,发现是因为脚本中的命令生成的结果含有多个单词,而该结果去和一个值比较时产生了如题的错误,不仔细看让人很困惑.下面是从IBM的developerworks 上找到的部分资料:(http:转载 2012-11-12 14:54:16 · 1849 阅读 · 0 评论 -
vim 中执行shell命令
vim中执行shell命令,有以下几种形式1):!command不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容例如:!ls -l特别的可以运行:!bash来启动一个bash shell并执行命令,不需要退出vim2):r !command将s转载 2012-11-08 13:12:31 · 704 阅读 · 0 评论 -
查询linux文件格式
文件格式通常在unix使用手册的第5节1. man 5 passwd查看/etc/passwd的文件结构信息原创 2012-11-06 09:59:25 · 802 阅读 · 0 评论 -
linux下shell脚本执行方法及exec和source命令
exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息。bash shell的命令分为两类:外部命令和内部命令。外部命令是通过系统调用或独立的程序实现的,如sed、awk等等。内部命令是由特殊的文件格式(.def)所实现,如cd、history、exec等等。在说明exe和转载 2012-11-02 22:10:14 · 1118 阅读 · 0 评论 -
grep 精确匹配
锚定单词的开始,如:\'>锚定单词的结束,如\'grep>\'匹配包含以grep结尾的单词的行。b单词锁定符,如: \'bgrepb\'只匹配grep。$cat data.fm 48 nm48$grep "48\>" data.f ----->48,m48 $grep "\b48\b" data.f原创 2012-04-09 15:43:53 · 2736 阅读 · 0 评论 -
shell 1>&2
shell上:0表示标准输入1表示标准输出2表示标准错误输出> 默认为标准输出重定向,与 1> 相同2>&1 意思是把 标准错误输出 重定向到 标准输出.&>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中用例子说话:1. grep da * 1>&2 2. rm -f $(find / -name core) &>转载 2012-11-19 09:54:24 · 1132 阅读 · 0 评论 -
linux shell 测试条件
test命令就是用于测试字符串,文件状态和数字的1.测试文件状态test 命令一般有两种格式,即:test condition或[condition ]使用[ ]时,要主义在条件两边加上空格。测试文件的条件表达式很多,最常用的有:-d 目录-s 文件长度大于0、非空-f 正规文件-w 可写-L /-h符号连接-u 文件有suid位原创 2012-11-03 13:21:03 · 749 阅读 · 0 评论 -
[shell]判断一个字符串是否为数字字符串的两种方法(是否为进程号(PID))
方法一:在fc4的/etc/init.d/functions文件中,有一句是用来判断字符串是否是pid(当然全部应该是数字啦)[ -z "${p//[0-9]/}" -a -d "proc/$p" ]这句总的意思是看看$p是不是数字串,要是是的话,再看看是不是有/proc/$p这个目录。如果两个都成立,那么$p就是一个进程号了。"${p//[0-9]/" 的意思是输出一个字符串转载 2012-12-03 16:23:26 · 1754 阅读 · 0 评论 -
【shell】shell脚本的调试方式(一)
以例子的形式进行叙述,没有添加debug代码的初始脚本如下所示:#!/bin/sh#set -xecho -n "Can you write device drivers? "read answeranswer=`echo $answer | tr [a-z] [A-Z]`if [ $answer = Y ]thenecho "Wow, you must be ve原创 2012-12-13 19:25:27 · 892 阅读 · 0 评论