shell
匿_名_用_户
这个作者很懒,什么都没留下…
展开
-
SHELL: 使用 dirname 和 basename 命令获取文件的目录名和文件名
dirname : 输入一个文件名(绝对路径),输出文件所在目录basename : 输入一个文件名(绝对路径),输出除去目录之后的文件名示例:#dirname /tmp/vmware-root/vmware-2692.log/tmp/vmware-root#basename /tmp/vmware-root/vmware-2692.logvmware-2692.logbasename命令如果不想要文件名后缀:AIX 可以最后一个参数指定后缀名/# basename /tmp/.原创 2021-10-14 22:57:30 · 511 阅读 · 0 评论 -
Linux shell:按行读取文件,有变量操作时,避免使用管道符?
Linux的Shell程序时,如果需要按行读取,常见的有两种办法,但是如果涉及到变量的赋值操作,则两种方法是有区别的。以下两面的wc1.sh和wc2.sh为例子,两个程序都试图统计文件的行数:wc1.sh#!/bin/shlet i=0cat /etc/passwd | while read linedo let i=i+1doneecho "$i"wc2.sh#!/bin/shlet i=0while read linedo let i=i+1don原创 2020-07-28 20:00:54 · 520 阅读 · 0 评论 -
linux shell:使用trap来处理信号
linux shell:使用trap来处理信号shell脚本可以使用trap来处理信号命令语法如下: trap 'signal_handler_function_name' SIGNAL LISTSIGNAL LIST以空格分隔,它可以是信号编号或者信号名称。下面的例子中,三个函数分别处理信号SIGINT、SIGTSTP和SIGTERM,qingsong@原创 2017-08-27 23:06:13 · 2956 阅读 · 0 评论 -
linux: 找到磁盘/目录中最大的n个文件
linux: 找到磁盘/目录中最大的n个文件du加上了-a选项,可以看到所有的目录和文件大小,按照大小排序,就可以得到最大的n个文件了:下面的例子中du的-k选项表示文件大小显示为KB,之后按照大小排序,显示前n行:root@db2a:~# du -ak /tmp | sort -nrk 1 | head -n 10275210 /tmp53060 /tmp/test2原创 2017-08-27 23:08:43 · 3859 阅读 · 0 评论 -
linux:使用shell读写MySQL数据库
linux:使用shell读写MySQL数据库本文用一个示例,简单演示了如何使用shell脚本读写MySQL数据库。主要工作如下:1. 创建数据库samplecreate database sample;2. 创建表employeedrop table if exists employee;create table employee(EMPNO char(6原创 2017-08-27 23:12:34 · 1501 阅读 · 0 评论 -
Linux:awk常用语法介绍
Linux:awk常用语法介绍awk脚本的结构基本如下所示,awk脚本通常由3部分组成。BEGIN,END和带模式匹配选项的常见语句块。这3个部分都是可选项,在脚本中可省略任意部分:awk ' BEGIN{ print "start" } pattern { commands } END{ print "end" } ' fileawk命令的工作方式(1) 执行BEGIN原创 2017-08-26 23:37:02 · 547 阅读 · 0 评论 -
基准测试工具sysbench简介
基准测试工具sysbench简介sysbench是一个跨平台的基准测试工具,可以测试CPU、文件I/O、线程、内存、数据库性能等。简要说明$ man sysbench SYSBENCH(1) sysbench User Manual SYSBE原创 2017-09-16 22:41:01 · 706 阅读 · 0 评论 -
awk内置变量之FNR/NR、FS/OFS、NF、ORS/RS
awk有一些内置的变量,本文主要讲述与 行分割符、列分割符、行号、列号有关的变量本文用到的测试文件如下:qingsong@db2a:~$ cat ipa.txt inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0inet addr:192.168.16.128 Bcast:192.168.16.255 Mask:255.2原创 2017-11-03 21:33:57 · 2104 阅读 · 0 评论 -
awk中变量的作用域
说明awk中变量作用域之前,先看几个测试测试1:fun1()没有参数,里面的变量x和BEGIN里的x是同一个变量qingsong@db2a:~$ cat test1.awk BEGIN { x = "Good" fun1() print "X in BEGIN is", x}function fun1() {原创 2017-11-13 21:13:53 · 957 阅读 · 1 评论 -
awk内置变量之FILENAME、ARGC、ARGV、ENVIRON
本篇文章主要简述以下环境变量:ARGC number of command line arguments.ARGV array of command line arguments, 0..ARGC-1.ENVIRON array indexed by environment variables. An environment string, var=value is sto原创 2017-11-03 22:38:44 · 4703 阅读 · 0 评论 -
awk内置变量之OFMT、CONVFMT、RLENGTH、RSTART
本篇文章主要简述以下awk内置变量:OFMT format for printing numbers; initially = "%.6g".CONVFMT format for internal conversion of numbers to string, initially ="%.6g".RLENGTH length set by the last call to t原创 2017-11-03 22:49:36 · 2705 阅读 · 0 评论 -
awk内置变量之SUBSEP
本篇文章主要简述以下内置变量:SUBSEP used to build multiple array subscripts, initially = "\034".介绍SUBSEP之前,需要先知道awk中的“二维数组”,awk中没有二维数组,所以只能使用一维数组来模拟,下面的例子模拟了一个二维数组,并打印每个数组的下标和值。其实是创建了一维数组,下标分别为1SUBSEP1, 1原创 2017-11-04 12:30:47 · 2409 阅读 · 0 评论 -
Linux文本处理:从不规则列/非固定列中截取关键字-方法2
之前的一篇文章中提到了使用grep -o来从不规则列/非固定列中截取关键字的方法,链接如下http://blog.csdn.net/qingsong3333/article/details/77342085在学习了awk之后,发现awk可以使用内置变量+内置函数实现相同的功能,还是以之前的那个log为例子:某数据库的log.txt中,每访问一次表,就会记录一条信息"TableId原创 2017-11-04 16:17:34 · 1057 阅读 · 0 评论 -
Linux: 文本查找包含某个关键字的段落(awk实现)
Linux: 文本查找包含某个关键字的段落(awk实现)AIX中的grep命令的"-p"选项可以查找包含某个关键字的段落(我们这里把段落定义为由空行分开的记录,段与段之间有至少一个空行),比如下面的文本中有两段:$ cat test.txtHello,worldThis is a file with two paragraph.下面的命令可以查找db2dia原创 2017-09-22 23:04:24 · 13975 阅读 · 0 评论 -
Linux shell:使用AWK产生随机数/随机字符串
有时候做测试,需要一些随机数,awk中的rand()函数就可以产生随机数rand()说明如下:rand()函数返回[0,1)之间的浮点数int( n * rand() ),返回[0,n)之间的整数,也就是0~n-1之间的随机数int( n * rand() ) + 1,返回1-n之间的随机数注意,这里的int()是一个函数,不是表示整形,所以一定要加上括号,它的作用是取原创 2017-11-05 13:47:53 · 6256 阅读 · 0 评论 -
使用awk数组功能实现类似SQL语句中的group by功能
使用awk数组功能实现类似SQL语句中的group by功能文本处理中,有时需要实现类似SQL语句中的group by功能。在关系数据库中,实现很容易,比如下面的group by SQL语句可以查询每个月的总收入inst105@db2a:~$ db2 "select * from test"MONTH INCOME ---------- -----------Jan ...原创 2018-03-21 23:38:02 · 934 阅读 · 0 评论 -
Linux shell 中的关联数组
Linux shell中的关联数组关联数组是这样的数组,它的每个数据元素与一个键相对配对,该键用于识别数据元素。由于散列函数用来创建关联数组中的指定元素,并在关联数组中查找指定元素,因此关联数组通常称为散列。比如想设置一个数组,名为age,根据人名可以查找对应的年龄LiLei 28HanMeimei 27Lily 26Lucy 26声明qingsong@原创 2017-08-27 23:03:43 · 729 阅读 · 0 评论 -
Linux shell:文本的按行逆序和字符串逆序
Linux shell:文本的按行逆序和字符串逆序假定有以下文件:qingsong@db2a:/tmp$ cat file.txt abcde hello,world12345!按行逆序即第一行和最后一行交换、第2行和倒数第2行交换,以些类推。方法1,使用tactac命令是cat命令的反写,效果也正好相反,从最后一行开始打印文件qingsong@db2a原创 2017-08-27 22:55:52 · 12347 阅读 · 4 评论 -
设置Linux命令或者shell脚本的运行时间限制
有些shell脚本或者命令,只有在规定时间内运行完成才有意义,这时可以设置脚本/命令的时间限制,如果在设定时间内,还没有完成,则终止命令/脚本。可以使用timeout命令来做到,先看一下它的用法:$ man timeoutTIMEOUT(1) User Commands原创 2017-08-17 22:16:39 · 23633 阅读 · 0 评论 -
shell脚本: 查看linux用户组,以及每个组中有哪些用户
下面的脚本可以用来查看linux中每个组中的用户,它依次读取/etc/group每一行,对于其中每一行,都去遍历一遍/etc/passwd,如果group id匹配,打打印出组名和用户名。#!/bin/sh#! This script will print all groups and all users in each group.while read glinedo groupn原创 2017-08-20 22:50:53 · 5154 阅读 · 4 评论 -
shell脚本:不显示输入的密码
shell脚本:不显示输入的密码在linux shell脚本中,如果想要不显示输入的内容,比如“密码”,可以使用stty的-echo选项,表示禁止将输出发送到终端。最后的stty echo一定要加,否则即使执行完shell之后,什么输入也都看不到。#!/bin/bashecho -n "Please enter your password:"stty -echoread pa原创 2017-08-24 22:29:52 · 7773 阅读 · 0 评论 -
shell中的算术运算
linux: bash shell中的算术运算1. letlet可以执行基本的操作,变量前不用加$。仅支持整数qingsong@db2a:/tmp$ nb1=4qingsong@db2a:/tmp$ nb2=5qingsong@db2a:/tmp$ let result=nb1+nb2 qingsong@db2a:/tmp$ let result++qingso原创 2017-08-24 22:36:41 · 2016 阅读 · 0 评论 -
UNIX/Linux中的文件描述符 && 为何删除DB2的容器之后表空间仍然可以访问
大多数UNIX文件I/O只需用到5个函数open,read,write,lseek,close。当使用open或者create函数打开或创建一个新文件时,内核向进程返回一个文件描述符,文件描述符是一个非负整数(也就是open/create函数的返回值,如果小于0,则出错)。当读、写文件时,read/write函数使用参数的是文件描述符,而非文件名。UNIX/LINUX shell中,文件描述符0代原创 2017-08-24 22:59:26 · 1034 阅读 · 0 评论 -
shell:当你运行while true的时候,你实际在做什么?
shell当你运行while true的时候,你在做什么?在写shell死循环时,可能会经常用到下面的方式while truedodo something heredone其实,这里的true是一个/bin下面的可执行文件,同样的,false也是。 true什么也不做,返回一个表示成功的值。false什么也不做,返回一个表示错误的值:qingsong@db2原创 2017-08-25 22:08:49 · 43284 阅读 · 4 评论 -
linux用shell脚本模拟时钟 && 脚本录制
下面的脚本可以模拟一个时钟,“实时”显示系统的当前时间:#!/bin/bash# This is a clock, it will display time once a second, in the same position# File name: clock.shtput scwhile truedo echo -n `date` sleep原创 2017-08-25 22:13:47 · 1933 阅读 · 0 评论 -
Linux:使用xargs为其他命令提供参数
Linux:使用xargs为其他命令提供参数xargs命令的作用就是从stdin接收到的数据重新格式化,再将其作为参数提供给其他命令(xargs - build and execute command lines from standard input)。说直接一点,就是为其他命令提供参数的。多个参数时,默认的分割符是空格。如果不指定命令,则默认的命令是echo最简单的一个例子原创 2017-08-25 22:19:51 · 10799 阅读 · 0 评论 -
Linux:使用mktemp创建临时文件/目录
mktemp的作用是创建临时文件/目录,并返回文件名,简单的语法如下:NAME mktemp - create a temporary file or directorySYNOPSIS mktemp [OPTION]... [TEMPLATE]DESCRIPTION Create a temporary file or director原创 2017-08-26 13:53:29 · 7731 阅读 · 0 评论 -
linux:使用comm命令比较两个文件:交集、差
comm命令可以按行比较两个排序好的文件,输出有3列:第一列是file1独有的、第二列是file2独有的,第三列是两者都有的,简单语法如下:NAME comm - compare two sorted files line by lineSYNOPSIS comm [OPTION]... FILE1 FILE2DESCRIPTION Compa原创 2017-08-26 14:00:12 · 7793 阅读 · 0 评论 -
Linux: shell拆分浮点数的整数和小数部分 && 拆分文件的文件名和扩展名
Linux: shell拆分浮点数的整数和小数部分 && 拆分文件的文件名和扩展名目地:分别获取一个浮点数的整数和小数部分,或者将一个文件的文件名和扩展名拆分开。可以考虑使用cut或者awkcutqingsong@db2a:/tmp$ num1=3.1415qingsong@db2a:/tmp$ echo $num1 | cut -d '.' -f13qings原创 2017-08-26 14:15:06 · 5578 阅读 · 0 评论 -
linux shell, 三行命令:查找并删除重复的文件
需求:查找并删除某个目录下重复的文件(如果md5sum相同,则认为是相同的文件)。思路如下:1. 先计算所有文件的md5sum,并按照md5sum排序,结果放到文件allfiles里2. 使用uniq命令,去掉allfiles里md5sum相同的记录,结果放到文件uniqfiles里,这样uniqfiles里就是所有不重复的文件列表3. 比较allfiles和uniqfiles原创 2017-08-26 14:20:55 · 8097 阅读 · 3 评论 -
linux: xargs处理参数时,文件名中包含空格的解决方法
xargs处理参数时,文件名中包含空格的解决方法xargs之前已经讲过。处理参数时,文件名中如果有空格,则需要单独处理。如果参数是find命令的结果,那么可以在find命令加上print0选项,xargs命令加上-0选项。参考:http://blog.csdn.net/qingsong3333/article/details/77587400如果参数是从文件中读取的呢?比如原创 2017-08-26 13:50:10 · 5824 阅读 · 0 评论 -
linux:使用seq命令产生数字序列
有些场景下,需要一个数字的序列,这时可以使得seq命令来产生NAME seq - print a sequence of numbersSYNOPSIS seq [OPTION]... LAST seq [OPTION]... FIRST LAST seq [OPTION]... FIRST INCREMENT LASTDESCR原创 2017-08-26 23:20:51 · 2973 阅读 · 0 评论 -
linux,使用ping和fping找出网络上的活动主机
linux,使用ping和fping找出网络上的活动主机网络中有多个主机时,有时需要检查所有不活动的主机,或者活动的主机。这时候可以使用ping或者fping命令1. ping命令使用ping命令编写脚本,挨个检查qingsong@db2a:/tmp$ cat ping.sh #!/bin/bashfor i in 192.168.16.{1..255}do原创 2017-08-27 22:45:55 · 4902 阅读 · 0 评论 -
linux上使用ftp,sftp,rsync,scp,套接字 来通过网络传输文件
linux上使用ftp,sftp,rsync,scp,套接字 来通过网络传输文件计算机联网的主要目的就是资源共享。在资源共享方面,使用最多的是文件共享。有多种方法可以用来在网络中传输文件,本文介绍了ftp,sftp,rsync,scp,套接字这5种方法:假设目标是把db2a主机上的/tmp/db2a.filea拷贝到db2b主机的/tmp目录里,或者把db2b主机的/tmp/db2原创 2017-08-27 22:51:45 · 1789 阅读 · 0 评论 -
Linux文本处理:从不规则列/非固定列中截取关键字
Linux处理文本时,有些文本是有固定的列,可以很方便地使用awk或者cut获取某一列,但在某些情况下,文本可能没有规律可言。比如某数据库的log.txt中,每访问一次表,就会记录一条信息"TableId = x",其中x为1-99999之间的数字,但其他部分的文本没有任何规律。我们需要统计出每个表访问的次数,并按照访问次数排序:下面是一段文本示例:qingsong@db2a:~$ c原创 2017-08-17 22:08:03 · 1012 阅读 · 0 评论