linux
文章平均质量分 63
韩王-信
无成有终含章可贞
展开
-
awk 统计各种文件的数量 以及数组
awk中的数组其实更像java中的map和python中的字典,其下标可以为字符串(key)可以用数组这样的特性统计某一个目录下各种文件的个数,或者统计一个文档中某个关键词或者所有词出现的字数;[root@hadoop ~]# ls -l |awk '{n=split($9,fs,".");if(n>1)a[fs[n]]++; else a["other"]++;}END{for( ite原创 2013-10-24 12:07:42 · 3365 阅读 · 0 评论 -
linux shell 判断命令执行状态
在shell中 变量$?保存的是上一条命令的执行结果,0 为成功,1是失败。所以在shell中如果后一个命令集依赖于前一个命令集的结果可以用这个变量判断。同时可以把标准的错误输出重定向到一个log文件,记住如果t.txt不存在则cat t.txt 2>log.log此时$?为1,虽然上面的最后的重定向是成功的但是他记住的是上面的命令中是否产生了标准错误的输出原创 2013-12-18 13:03:28 · 6060 阅读 · 0 评论 -
linux 定时器命令crontab
crontab 名称 : crontab 使用权限 : root用户和crontab文件的所有者 语法 : crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v[UserName]|File ] 说明 : crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-u转载 2013-12-18 13:10:24 · 759 阅读 · 0 评论 -
shell 把输出重定向到垃圾池
ping localhost -c2 &>/dev/null;echo $?原创 2013-12-20 10:40:09 · 1685 阅读 · 0 评论 -
AWK 使用与或匹配
[root@hadoop usr]# awk '/AIR/&&$3=="4403"{print $0}' business.txtAIR 2013-09-01 4403 1348662.0[root@hadoop usr]# awk '/AIR/||$3=="4403"{print $0}' business.txtAIR 2013-09-01原创 2013-12-20 15:26:12 · 4569 阅读 · 0 评论 -
linux 后台执行命令
[root@hadoop usr]# du -s &[1] 31337[root@hadoop usr]# ps PID TTY TIME CMD27136 pts/1 00:00:04 bash31337 pts/1 00:00:01 du31338 pts/1 00:00:00 ps后台的命令执行完成之后会吧输出原创 2013-12-20 17:20:40 · 794 阅读 · 0 评论 -
linux find 10分钟内创建的文件以及awk引用外部变量
由于shell不能进行单独的小数点运算所以借助awk来运算 find . -maxdepth 1 -ctime -$(awk 'BEGIN{print 30/60/24}') -print当然也可以引用外面的变量[root@hadoop usr]# times=40[root@hadoop usr]# find . -maxdepth 1 -ctime原创 2013-12-23 17:19:45 · 2727 阅读 · 0 评论 -
awk 引用外部变量
这里提到awk,相信写shell的朋友都会接触到。AWK 是一种用于处理文本的编程语言工具。AWK 提供了极其强大的功能:可以进行正则表达式的匹配样式装入流控制数学运算符进程控制语句内置的变量和函数可以把awk看作一门完全的程序设计语言,它处理文本的速度是快得惊人的。现在很多基于shell 日志分析工具都可以用它完成。设计简单,速度表现很好。 涉及到以上六个方面内容,我会在以后文章中加转载 2013-12-23 17:20:22 · 2032 阅读 · 1 评论 -
linux join
我用的命令:join -t $'\t' -o 1.1 1.2 1.3 1.4 file1 file2如果分隔符是tab键,不用指定-t参数的,会被当成空格处理,输出的分隔符自然也是空格了。如果想输出的分隔符是tab键,那么就使用我上面的方法,-t $'\t' 参数。 Usage: join [OPTION]... FILE1 FILE2For each pair of i转载 2013-12-23 22:17:54 · 1278 阅读 · 0 评论 -
Linux Shell Bash 带有特殊含义的退出码
SYSTEM ADMINISTRATIONLinux Shell Bash 带有特殊含义的退出码表格 D-1. "保留的"退出码退出码的值含义例子注释1通用错误let "var1 = 1/0"各种各样的错误都可能使用这个退出码, 比如"除0错误"2shel转载 2014-01-14 11:26:32 · 1186 阅读 · 0 评论 -
linux 浮点数计算
在linux中不能在shell中直接计算浮点数,可以用bc或者awk来达到同样效果1. 用bc来实现,bc中设置scale的参数值来设定保留小数点的位数[root@hadoop ~]# n1=6[root@hadoop ~]# n2=5[root@hadoop ~]# echo "scale=2;${n1}/${n2}"|bc1.20[root@hadoop ~]# ech原创 2013-12-24 08:49:01 · 3598 阅读 · 0 评论 -
sed 命令简录
注意:sed的操作是以行为单位的,据实际操作来看如果文件是空的情况下,使用“$a” 等进行插入都会失败但是不提示任何标准错误,所以如果插入一个空文件使用echo而不是使用sed ,目前尚未找到其他的解释1. sed 之后重写回文件 -i[root@localhost ~]# cat sedtestthis is my firstsed edit testsed ed原创 2013-08-28 17:15:29 · 882 阅读 · 0 评论 -
AWK详细用法
原文:http://blog.sina.com.cn/s/blog_5d22d9b40100jer4.html awk非常的优秀,运行效率高,而且代码简单,对格式化的文本处理能力超强。基本上grep和sed能干的活awk全部都能干,而且干得更好。先来一个很爽的例子:文件a,统计文件a的第一列中是浮点数的行的浮点数的平均值。用awk来实现只需要一句话就可以搞定(当然,这个转载 2013-10-24 11:01:51 · 3684 阅读 · 0 评论 -
AWK详细用法
原文:http://blog.sina.com.cn/s/blog_5d22d9b40100jer4.html awk非常的优秀,运行效率高,而且代码简单,对格式化的文本处理能力超强。基本上grep和sed能干的活awk全部都能干,而且干得更好。先来一个很爽的例子:文件a,统计文件a的第一列中是浮点数的行的浮点数的平均值。用awk来实现只需要一句话就可以搞定(当然,这个转载 2013-10-24 11:02:10 · 1484 阅读 · 0 评论 -
linux 下统计文件个数
[root@hadoop ~]# find . -name '*txt' -print |wc -l26[root@hadoop ~]# ls -l |wc -l58原创 2013-10-23 16:32:25 · 668 阅读 · 0 评论 -
awk 合并文件
a文件hadoop@hadoop:~/Desktop$ cat a.txtwhoamib文件hadoop@hadoop:~/Desktop$ cat b.txtweihongrao先看这样的结果hadoop@hadoop:~/Desktop$ awk '{while("cat a.txt"|getline line){print原创 2013-10-23 22:55:32 · 1011 阅读 · 0 评论 -
linux ps命令介绍
http://www.cnblogs.com/allen8807/archive/2010/11/10/1873843.htmlps:将某个时间点的程序运作情况撷取下来[root@linux~]# ps aux[root@linux~]# ps -lA[root@linux~]# ps axjf参数:-A:转载 2013-11-27 10:42:49 · 660 阅读 · 0 评论 -
shell 判断文件、目录是否存在
hell判断文件是否存在 1.shell判断文件,目录是否存在或者具有权限 2. #!/bin/sh 3. 4. myPath="/var/log/httpd/" 5. myFile="/var /log/httpd/access.log" 6. 7. # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 8. if [ ! -x "$myPa转载 2013-11-28 17:10:14 · 800 阅读 · 0 评论 -
shell中的各种括号
在编写shell scripts时,经常会用到括号,各种括号,各种用法。一、括号、圆括号() 1、单小括号。 ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 ②命令替换。等同于`cmd`,shell扫描一遍命令行转载 2013-11-28 16:05:48 · 689 阅读 · 0 评论 -
shell判断一个变量是否为空
判断一个变量是否为空 .1. 变量通过" "引号引起来 如下所示:,可以得到结果为 IS NULL. #!/bin/sh para1= if [ ! -n "$para1" ]; then echo "IS NULL" else echo "NOT N转载 2013-11-28 16:16:15 · 804 阅读 · 0 评论 -
数组
[root@localhost ~]# cat array.sh#!/bin/basharr=(wei hong rao huang jin feng)arr1[0]=zhongguoarr1[1]=guangdongarr[2]=shenzhenecho first array is ${arr[*]}echo ${arr1[2]}echo fist arra原创 2013-08-28 17:13:25 · 538 阅读 · 0 评论 -
shell 字符串处理
在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。 一、判断读取字符串值表达式含义${var}变量var的值, 与$var相同转载 2013-11-29 13:38:08 · 794 阅读 · 0 评论 -
linux tr 命令详解
linux tr 命令详解http://blog.chinaunix.net/u2/66903/showart_1902477.html 1、关于tr 通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有转载 2014-01-14 16:37:58 · 640 阅读 · 0 评论 -
linux shell 变量的名称来源于另一个变量的值
[root@hadoop ~]# name=me[root@hadoop ~]# name="me"[root@hadoop ~]# me="hongrao"第一种方法[root@hadoop ~]# eval echo \$$namehongrao第二种方法,bash2.0[root@hadoop ~]# echo ${!name}hongrao原创 2014-01-26 15:35:56 · 1553 阅读 · 0 评论 -
read 数组
hadoop@hadoop:~$ IFS=$tmpIFShadoop@hadoop:~$ IFS='#'hadoop@hadoop:~$ echo "${IFS}"#hadoop@hadoop:~$ echo "wei#hon#rao"|while read -a names;do echo "the len of the array is ${#names[*]}";done原创 2014-02-16 15:42:56 · 1027 阅读 · 0 评论 -
linux 显示控制符号和制表符号
测试文件[root@hadoop ~]# cat t.txtwei hong rao#这里用tab分割wei hong rao#这里用空格分割raog#这里用^M(CTRL+V+M)分割weihongrao#这里用^^(CTRL+V+^)分割weihongrao#这里用^T(CTRL+V+T)分割wei hong rao#这里用TAB键分原创 2014-02-17 11:03:17 · 1974 阅读 · 0 评论 -
linux 根据文件路径自动创建文件夹
[root@hadoop henhao]# file="hongrao/expedia/egencia/accountdim.txt"[root@hadoop henhao]# path=${file%/*} #这里获取文件的路径[root@hadoop henhao]# mkdir -p $path #mkfir -p 在目录不存在的情况下自动创建路径[root@hadoop he原创 2014-02-17 14:14:13 · 7506 阅读 · 0 评论 -
bash shell中expr命令下几种的使用
expr在linux中是一个功能非常强大的命令。通过学习做一个小小的总结。1、计算字符串的长度。我们可以用awk中的length(s)进行计算。我们也可以用echo中的echo ${#string}进行计算,当然也可以expr中的expr length $string 求出字符串的长度。举例[plain] view plaincopy转载 2014-08-29 09:08:34 · 4871 阅读 · 0 评论 -
shell 正则截取字符串
shell 正则截取字符串用sed替换功能 echo 'weihongrao' |sed 's/wei\(hong\)rao/\1/g'比如我有如下文件 test.txt12344554534543232534sdfhosnfsdfwueorhalfsafsdfse1231231823918231247391274921djflajsdfasff原创 2014-09-23 11:30:37 · 15819 阅读 · 0 评论 -
linux 下查看和转换文件字符集
可以使用file 查看编码 用iconv 更改iconv -f GBK -t utf8 query.txt>query2.txt原创 2014-10-28 13:39:12 · 934 阅读 · 0 评论 -
linux shell join命令一定要把文件先sort,而且不能有空行否则后果很严重
如题原创 2014-10-30 12:09:01 · 2773 阅读 · 0 评论 -
linux环境变量设置错误后,如何恢复解决方案:
linux环境变量设置错误后,如何恢复解决方案:在命令行中输入:export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin转载 2015-08-01 11:12:48 · 2272 阅读 · 0 评论 -
linux中双括号和双中括号,括号和中括号
linux中中括号和小括号都是命令,中括号是test命令,小括号是将命令放入子shell执行双小括号1.扩展for[root@hadoop Desktop]# for((i=0;iweihongraoweihongraoweihongraoweihongrao2.扩展while[root@hadoop Desktop]# i=0[root原创 2013-11-28 16:04:22 · 6628 阅读 · 1 评论 -
linux 管道产生子shell
linux中使用管道,下一个命令会放在子shell中执行,子shell中是不能访问主shell的变量hadoop@hadoop:~$ cat file.txthanxinhadoop@hadoop:~$ me=weihongraohadoop@hadoop:~$ cat file.txt | while read line;do me=$line;echo "inner me is原创 2014-02-16 15:42:42 · 1870 阅读 · 0 评论 -
linux 字符串转换成数组
linux中数组用小括号定义,所以转换的时候只需要吧变量放在小括号中即可1. 直接创建数组[root@hadoop ~]# names=(wei hong rao)[root@hadoop ~]# echo ${#names[@]}32.通过命令结果获取数组[root@hadoop ~]# names=($(echo 'wei hong rao') )[root@h原创 2014-02-17 11:21:49 · 7008 阅读 · 0 评论 -
linux less
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的转载 2014-02-01 16:30:03 · 569 阅读 · 0 评论 -
linux vi 命令大全
进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filen转载 2014-02-01 21:03:22 · 855 阅读 · 0 评论 -
IO重定向
1. 文件输入重定向[root@localhost ~]# echo "my name is weihongrao" >name.txt[root@localhost ~]# echo my name is weihongrao 2. 用户输入重定向当遇到“end” 输入时将停止输入,这里可以是其他的字符,一旦输入遇到这个字符就会终止输入[root@localhost ~]原创 2013-08-29 08:59:54 · 636 阅读 · 0 评论 -
日期操作
日期相减##获取几天的零时[leo@hadoop ~]$ date +%Y-%m-%d2013-08-18###今天得秒数[leo@hadoop ~]$ date -d$(date +%Y-%m-%d) +%s1376798400[leo@hadoop ~]$ m=$(date -d$(date +%Y-%m-%d) +%s)[leo@hadoop ~]$ echo原创 2013-08-28 17:09:54 · 941 阅读 · 0 评论 -
检索文本例子结合sed,head,tail,cut
有如下文本[root@hadoop ~]# cat s.txthead testhead test againweihongrao startthis is goingweihongrao is stupyweihongrao is the rulerendweihongrao but still goingendweihongrao this is true原创 2014-02-11 18:29:24 · 839 阅读 · 0 评论