shell编程
小狼_百度
百度,web系统,分布式系统,大数据,机器学习,人工智能等爱好者
展开
-
AWK与SHELL之间的变量传递方法
我认为在linux下awk是个好东东啊,处理一些文本文件会非常方便。而在Linux下嘛,经常会和shell打交道,所以awk和shell之间的变量相互传递,有时还是很有必要的,所以简单总结一下吧。 awk中使用shell中的变量一: "'$var'"这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如:var="test"awk 'BEGIN{print "'$var'"}'这种写法...转载 2018-04-10 17:27:21 · 8442 阅读 · 1 评论 -
rsync使用笔记
rsync的试用方法一、设置Rsync Server端Rsync server需要设定四个方面:1.规划建立备份目录区2.设定: /etc/xinetd.d/rsync3.设定: /etc/rsyncd.conf4.设定: 密码文件。说明如下:1.规划建立备份目录区:建议你在rsync server上开一个较大的磁盘分割区,并在其下建立好备份用的目录。比如:转载 2013-04-09 17:25:47 · 6887 阅读 · 0 评论 -
sed 大小写转换
大写转小写: echo "ABCDS" | sed 's/[A-Z]/\l&/g'小写转大写: echo "abcds" | sed 's/[a-z]/\u&/g'原创 2013-03-26 14:25:27 · 8555 阅读 · 0 评论 -
Shell 统计PV, UV ,独立IP
每天分析日志的哥们实在伤不起,经常需要给出PV,UV,独立IP等一些统计值,使用C/C++,java都可以写,过程是这样的,先读取文件,逐行扫描,把能标记的值放入数据结构中,排重得出最终结果,其实Linux本身有很强大的文本处理功能,完全可以用shell + 一些文本小工具得出结果。 Nngix输出的access log文件如下: 日志文件代码 192.转载 2013-04-07 12:02:21 · 2248 阅读 · 1 评论 -
Linux下rz,sz与ssh的配合使用
一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地; 与ssh有关的两个命令可以提供很方便的操作: sz:将选定的文件发送(send)到本地机器 rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)rz,s转载 2013-03-15 18:30:13 · 798 阅读 · 0 评论 -
shell编程学习之xargs
xargs命令是在管道操作符之后,并通过提供命令行参数执行其他命令。 1、多行变成单行-bash-3.2# cat test.txt a b c d e fg o p q-bash-3.2# cat test.txt |xargsa b c d e f g o p q 2、单行变成多行-bash-3.2# cat test.转载 2013-02-02 15:21:21 · 530 阅读 · 0 评论 -
Linux Shell常用技巧(四)
九. awk实用功能: 和sed一样,awk也是逐行扫描文件的,从第一行到最后一行,寻找匹配特定模板的行,并在这些行上运行“选择”动作。如果一个模板没有指定动作,这些匹配的行就被显示在屏幕上。如果一个动作没有模板,所有被动作指定的行都被处理。 1. awk的基本格式: /> awk 'pattern' filename /> awk '{a转载 2013-01-31 14:57:47 · 417 阅读 · 0 评论 -
Linux Shell常用技巧(五)
十一. awk编程: 1. 变量: 在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义。变量的类型可以是数字、字符串。根据使用的不同,未初始化变量的值为0或空白字符串" ",这主要取决于变量应用的上下文。下面为变量的赋值负号列表:符号含义等价形式=a = 5a = 5+=a = a + 5a +=转载 2013-01-31 14:56:48 · 518 阅读 · 0 评论 -
Linux Shell常用技巧(七)
十六. 文件查找命令find: 下面给出find命令的主要应用示例: /> ls -l #列出当前目录下所包含的测试文件 -rw-r--r--. 1 root root 48217 Nov 12 00:57 install.log -rw-r--r--. 1 root root 37 Nov 12 00:56 testfile.dat转载 2013-01-31 14:51:50 · 347 阅读 · 0 评论 -
rsync 错误报告及解决方法
Rsync configure:配置一:ignore errors说明:这个选项最好加上,否则再很多crontab的时候往往发生错误你也未可知,因为你不可能天天去看每时每刻去看log,不加上这个出现错误的几率相对会很高,因为任何大点的项目和系统,磁盘IO都是一个瓶颈 Rsync error: 错误一: @ERROR: auth failed on module xxxx转载 2013-03-28 18:45:23 · 8896 阅读 · 0 评论 -
linux查看某进程内存、CPU占用
ps -aux | sort -k4,4nps auxw --sort=rssps auxw --sort=%cpulinux 下的ps命令%CPU 进程的cpu占用率%MEM 进程的内存占用率VSZ 进程所使用的虚存的大小RSS 进程使用的驻留集大小或者是实际内存的大小TTY 与进程关联的终端(tty)STAT 检查的状态:进程状态使用字符表示的,如R(run转载 2013-05-23 12:30:59 · 16320 阅读 · 0 评论 -
AWK中,NR和FNR的区别
awk可以使用自身变量NR和FNR来处理多个文件。NR:表示awk开始执行程序后所读取的数据行数。FNR:awk当前读取的记录数,其变量值小于等于NR(比如当读取第二个文件时,FNR是从0开始重新计数,而NR不会)。NR==FNR:用于在读取两个或两个以上的文件时,判断是不是在读取第一个文件。awk处理多个文件的基本语法是:awk -F分隔符 'BEGIN {转载 2015-07-13 16:14:46 · 700 阅读 · 0 评论 -
Linux 中 crontab 详解及示例(收藏)
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin转载 2014-02-26 16:51:38 · 676 阅读 · 0 评论 -
如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或在里面搜索,或其它操作——一些无法并行的操作。数据专家们,我是在对你们说。你可能有一个4核或更多核的CPU,但我们合适的工具,例如 grep, bzip2, wc, awk, sed等等,都是单线程的,只能使用一个CPU内核。借用卡通人物Cartman的话,“如何我能使用这些内核”?要想让Linux命令使用所有的CPU内核,我们需要转载 2013-10-30 16:49:06 · 1084 阅读 · 0 评论 -
shell的一些问题
1、bc中的scaleecho "scale=0;13 * 0.6 "|bcecho "scale=0;13 * 0.6 / 1"|bc -lJared Liu: bc做乘法是不受scale变量影响的,想解决这个问题就是第二种trick吧2、bc的小数运算和四舍五入echo "scale=2;2/3"|bcawk BEGIN'{printf "%.2f\n", 2/3}'转载 2013-09-14 11:20:35 · 822 阅读 · 0 评论 -
shell中用bc进行浮点运算
Bash 不能处理浮点运算, 并且缺乏特定的一些操作,这些操作都是一些重要的计算功能.幸运的是, bc 可以解决这个问题.bc 不仅仅是个多功能灵活的精确的工具, 而且它还提供许多编程语言才具备的一些方便的功能. 因为它是一个完整的 UNIX 工具, 所以它可以用在管道中, bc 在脚本中也是很常用的. 这里有一个简单的使用 bc 命令的模版可以用来在计算脚本中的变量. 用在命令替换 中.转载 2013-09-14 10:51:16 · 1009 阅读 · 0 评论 -
awk调用shell命令与getline和system函数
如下内容fromhttp://blog.sina.com.cn/s/blog_3ef3b17a0100dzw0.html有颜色的内容为自己添加的。awk可以用getline或system来调用shell的命令1getline通过在awk内使用管道,可以把shell命令的输出传送给awk$ awk'BEGIN{ "date" | getline date;转载 2013-08-22 11:06:19 · 1324 阅读 · 0 评论 -
awk时间处理
awk -v s="2013-08-19" -v t="2013-08-20" 'BEGIN{"date +%s -d "s|getline a;"date +%s -d "t|getline b;print (b/3600-a/3600)/24}'awk 'BEGIN{"date +%s -d " "22:28:24"|getline a;"date +%s -d " "22原创 2013-08-21 18:42:47 · 4090 阅读 · 0 评论 -
linux下查看最消耗CPU、内存的进程
linux下查看最消耗CPU、内存的进程 1.CPU占用最多的前10个进程:ps auxw|head -1;ps auxw|sort -rn -k3|head -102.内存消耗最多的前10个进程ps auxw|head -1;ps auxw|sort -rn -k4|head -103.虚拟内存使用最多的前10个进程ps auxw|head -1;ps auxw|so转载 2013-05-29 12:12:07 · 888 阅读 · 0 评论 -
Linux Shell常用命令总结
1. find find pathname -options [-print -exec -ok] 让我们来看看该命令的参数: pathname find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 -print find命令将匹配的文件输出到标准输出。 -exec find命令对匹配的文件转载 2013-01-31 15:10:27 · 1625 阅读 · 0 评论 -
Linux Shell常用技巧(二)
七. grep家族: 1. grep退出状态: 0: 表示成功; 1: 表示在所提供的文件无法找到匹配的pattern; 2: 表示参数中提供的文件不存在。 见如下示例: /> grep 'root' /etc/passwd root:x:0:0:root:/root:/bin/bash operator:转载 2013-01-31 15:04:33 · 425 阅读 · 0 评论 -
Linux Shell常用技巧(三)
八. 流编辑器sed: sed一次处理一行文件并把输出送往屏幕。sed把当前处理的行存储在临时缓冲区中,称为模式空间(pattern space)。一旦sed完成对模式空间中的行的处理,模式空间中的行就被送往屏幕。行被处理完成之后,就被移出模式空间,程序接着读入下一行,处理,显示,移出......文件输入的最后一行被处理完以后sed结束。通过存储每一行在临时缓冲区,然后在缓冲区中操作转载 2013-01-31 14:59:44 · 382 阅读 · 0 评论 -
shell函数和awk函数总结
shell 函数、awk函数、以及awk调用shell中的函数,下面统一总结一下。昨晚写脚本函数,然后就把函数在shell中的各种使用方法都实验了一篇,下面直接贴代码吧。1、 普通shell函数:#!/bin/shfunction fun_test4(){ _message=$1 if [ "$_message" -ge "0转载 2013-01-27 18:19:11 · 2021 阅读 · 0 评论 -
shell——tr的用法
tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换。语法:tr [–c/d/s/t] [SET1] [SET2]SET1: 字符集1SET2:字符集2-c:complement,用SET2替换SET1中没有包含的字符-d:delete,删除SET1中所有的字符,不转换-s: squeeze-repeats,压缩SET1中重复的字符-t: trun转载 2013-01-27 16:12:19 · 400 阅读 · 0 评论 -
Awk学习笔记
Table of Contents1. awk简介2. awk命令格式和选项2.1. awk的语法有两种形式2.2. 命令选项3. 模式和操作3.1. 模式3.2. 操作4. awk的环境变量5. awk运算符6. 记录和域6.1. 记录6.2. 域6.3. 域分隔符7. gawk专用正则表达式元字符8. POSIX字符集9. 匹配操作符(~)10. 比较表达式11.转载 2012-12-20 15:06:12 · 426 阅读 · 0 评论 -
记录一linux命令:xargs
原贴:http://www.sudu.cn/info/html/edu/linux/20080102/290238.htmlxargs大多数 Linux 命令都会产生输出:文件列表、字符串列表等。但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件、ascii 文本等);你能处理输出,使其仅显示文件名,目前你希望将这些名称传递给 l转载 2012-10-15 15:43:07 · 604 阅读 · 0 评论 -
CRONTAB格式,命令
crontab格式:第1列分钟1~59第2列小时1~23(0表示子夜)第3列日1~31第4列月1~12第5列星期0~6(0表示星期天)第6列要运行的命令下面是crontab的格式:分 时 日 月 星期 要运行的命令这里有crontab文件条目的一些例子:30 21 * * * /usr/local/apache/bin/apachectl res转载 2012-09-17 11:15:58 · 821 阅读 · 0 评论 -
shell中if做比较大全
比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个转载 2012-09-07 16:13:06 · 1724 阅读 · 0 评论 -
shell中的内建命令, 函数和外部命令
Shell识别三种基本命令:内建命令、Shell函数以及外部命令:(1)内建命令就是由Shell本身所执行的命令。 有些命令是由于其必要性才内建的,例如cd用来改变目录,read会将来自用户(和文件)的输入数据传给Shell外亮。 另一种内建命令的存在则是为了效率,其中最典型的就是test命令,编写脚本时经常会用到它。另外还有I/O命令,例如echo于printf.(2)S转载 2012-08-17 11:35:54 · 583 阅读 · 0 评论 -
Shell 的source命令
http://www.xxlinux.com/linux/article/development/shell/2006-09-22/4499.htmlhttp://www.diybl.com/course/6_system/linux/Linuxjs/20071027/80454.htmlhttp://linux.chinaunix.net/techdoc/system/2008/09/0转载 2012-08-13 18:14:15 · 38637 阅读 · 5 评论 -
linux下echo命令详解
linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。该命令的一般格式为: echo [ -n ] 字符串其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo转载 2013-01-28 11:29:02 · 714 阅读 · 0 评论 -
linux上ln命令详细说明
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln –s转载 2013-01-28 11:20:27 · 432 阅读 · 0 评论 -
十八. 和系统运行状况相关的Shell命令:
1. Linux的实时监测命令(watch): watch 是一个非常实用的命令,可以帮你实时监测一个命令的运行结果,省得一遍又一遍的手动运行。该命令最为常用的两个选项是-d和-n,其中-n表示间隔多少秒执行一次"command",-d表示高亮发生变化的位置。下面列举几个在watch中常用的实时监视命令: /> watch -d -n 1 'who' #每隔一秒执行一次w转载 2013-01-31 14:43:41 · 417 阅读 · 0 评论 -
Linux Shell常用技巧(一)
一. 特殊文件: /dev/null和/dev/tty Linux系统提供了两个对Shell编程非常有用的特殊文件,/dev/null和/dev/tty。其中/dev/null将会丢掉所有写入它的数据,换句换说,当程序将数据写入到此文件时,会认为它已经成功完成写入数据的操作,但实际上什么事都没有做。如果你需要的是命令的退出状态,而非它的输出,此功能会非常有用,见如下Shell代转载 2013-01-31 15:06:56 · 517 阅读 · 0 评论 -
Linux Shell常用技巧(六)
十二. 行的排序命令sort: 1. sort命令行选项:选项描述-t字段之间的分隔符-f基于字符排序时忽略大小写-k定义排序的域字段,或者是基于域字段的部分数据进行排序-m将已排序的输入文件,合并为一个排序后的输出数据流-n以整数类型比较字段-o outfile将输转载 2013-01-31 14:55:08 · 395 阅读 · 0 评论 -
Shell中脚本变量和函数变量的作用域
在shell中定义函数可以使代码模块化,便于复用代码。不过脚本本身的变量和函数的变量的作用域问题可能令你费解,在这里梳理一下这个问题。(1)Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止。例1:脚本变量的作用域#!/bin/bash#define the function ltx_funcltx_func(转载 2013-01-30 14:42:18 · 440 阅读 · 0 评论 -
declare命令
declare peset选项-r 只读 1 declare -r var1 (declare -r var1与readonly var1是完全一样的) 这和C语言中的const关键字一样, 都用来指定变量为只读. 如果你尝试修改一个只读变量的值, 那么会产生错误信息. -i 整型 1 declare -i number 2 #转载 2013-01-29 16:28:48 · 3228 阅读 · 0 评论 -
linux:Shell中exec、source和shell script的区别
exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息。bash shell的命令分为两类:外部命令和内部命令。外部命令是通过系统调用或独立的程序实现的,如sed、awk等等。内部命令是由特殊的文件格式(.def)所实现,如cd、history、exec等等。在说明exe和sour转载 2013-01-29 15:22:06 · 582 阅读 · 0 评论 -
linux shell编程 trap命令
trap命令用于指定在接收到信号后将要采取的行 动,我们将在本书后面的内容中详细介绍信号。trap命令的一种常见用途是在脚本程序被中断时完成清理工作。历史上,shell总是用数字来代表信号,而 新的脚本程序应该使用信号的名字,它们保存在用#include命令包含进来的signal.h头文件中,在使用信号名时需要省略SIG前缀。你可以在命 令提示符下输入命令trap -l来查看信号编号及其关联的名称转载 2013-01-29 16:55:22 · 667 阅读 · 0 评论 -
shell脚本中数组array常用技巧学习实践
shell中数组的下标默认是从0开始的1。将字符串放在数组中,获取其长度#!/bin/bashstr="a b --n d"array=($str)length=${#array[@]}echo $lengthfor ((i=0; ido echo ${array[$i]}done执行结果:[oracle@99bill-as9 array]$转载 2013-01-27 16:14:48 · 666 阅读 · 0 评论