![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
bash shell
文章平均质量分 82
低调小一
Ubuntu重度患者,曾经的服务器开发工程师,如今正在深入学习到Android Framework
展开
-
bash shell 遍历指定目录下文件 iconv 编码转换
前言最近一直在写php和c代码,好久没动bash脚本,一些命令有些生疏了,今天有个需求要对指定目录下的文件进行字符编码转换,写了个脚本实现了一下目录结构/home/wzy/Downloads/execl/ |__科学/{1.csv,2.csv,3.csv,4.csv}原创 2012-11-30 21:15:07 · 6278 阅读 · 6 评论 -
bash shell实现并发多进程操作
前言目前我掌握的基本语言,php(最为熟悉,项目里代码都是用其实现),bash shell(运维利器),c(acm专用),这里面能实现多线程的貌似只有c,但是我c只是用来学习和实现算法和数据结构,因此工作中我想要模拟多进程并发操作,就只能依靠bash shell脚本了技能点shell脚本里实现并发操作,需要用到for循环&后台运行符wait等待所有子进程结束原创 2013-04-16 22:01:43 · 42217 阅读 · 3 评论 -
bash shell 学习 —— 数组
定义方式下标数组直接赋值#!/bin/basharr[0]="one"arr[1]="two"arr[2]="three"for num in ${arr[*]}do echo $numdone圆括号顺序赋值arr=("four" "five" "six")for num in ${arr[*]}do echo $numdon执行结原创 2013-03-15 15:16:29 · 2286 阅读 · 2 评论 -
shell中输出重定向
概述Linux Shell环境中支持输入输出重定向,用符号“”来表示0表示标准输入1表示标准输出2表示标准错误信息输出0、1、2可以用来指定需要重定向的标准输入或输出,例如 2 > /tmp/error.txt表示将错误信息输出到文件/tmp/error.txt中/dev/nulllinux下有个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都原创 2013-04-18 16:34:57 · 1895 阅读 · 1 评论 -
shell脚本里相互调用的方法
前言shell写脚本通常可以模块化,也可以功能化,例如test1.sh完成一个独立功能,test2.sh也完成一个独立的功能,但是需要test1.sh作为前提,因此为了节省执行时间,不是用crontab傻瓜似的等待,我们可以在test1.sh里调用test2.sh执行,效率会更高,这里仅仅介绍两种在一个脚本里调用另外一个脚本的方法脚本间调用首先,简单的写两个测试脚本原创 2013-05-10 10:10:07 · 5767 阅读 · 0 评论 -
shell脚本检测网络是否畅通
前言shell脚本上传数据时,通常需要先检测网络的畅通性,今天导师指导了一个检测网络畅通性的脚本,记录一下,时间紧迫,不做多余解释代码#检测网络链接&&ftp上传数据function networkAndFtp(){ #超时时间 timeout=5 #目标网站 target=www.baidu.com #获取响应状态码 ret_code=`curl -原创 2013-09-13 11:20:50 · 6549 阅读 · 0 评论 -
find命令——linux日志定期迁移脚本
find命令格式find pathname --options [-exec -print -ok ..]find命令参数pathname:find命令查找的目录路径-print:find命令将匹配的文件输出到标准输出-exec:find命令对匹配的文件执行该参数给出的shell命令.格式为: command {} \;-ok:类似与exec的作用find命令选项原创 2012-12-24 22:08:21 · 4561 阅读 · 1 评论 -
Bash Shell 流程控制 —— select
前言今天刚好写了一个自动化打包脚本,再次使用到了bash shell,好幸福的感觉。这里主要是想介绍一下select命令,这个命令可以帮助我们完成菜单选择功能。格式我今天也是第一次使用select流程控制,在php、Java、C这些语言中并没有实现select功能。Bash Shell中,select格式如下:select $var in ${list[@]}do原创 2014-10-29 18:15:46 · 2586 阅读 · 0 评论 -
Bash Shell 解析路径获取文件名和目录名
前言还是今天再写一个自动化打包脚本,用到了从路径名中获取最后的文件名。这里记录一下实现过程。当然,最后我也会给出官方的做法。(ps:很囧,实现完了才发现原来Bash Shell有现成的函数)获取文件名假设给定的路径名为:/tmp/csdn/zhengyi/test/zhengyi.txtawk解法用“/”做分隔符,然后打印出最后的那一部分。实现代码如下:resFil原创 2014-10-29 20:33:28 · 23161 阅读 · 1 评论 -
经典面试题目——250M内存处理10G大小的log文件
前言周末逛知乎的时候,看到的一个经典面试题目:http://www.zhihu.com/question/26435483,很经典的一道分而治之的题目。题目描述如下:有次面试遇到一个问题,10G的log里面每一行都保存着一个url,内存只有250M,当输入一个url时,如果快速查出日志里是否有这条记录,如果有,有多少条?要求不能使用数据库,只能使用文本处理。思路之前我的原创 2014-11-03 14:35:44 · 10781 阅读 · 2 评论 -
Bash Shell 递归实现目录中文件拷贝
前言 今天工作中遇到了一个问题,如果将目录A中的文件拷贝到目录B中(前提目录B没有该文件),并保持文件在目录A的结构。项目重点如下:需要在目录B中保持文件在目录A中的结构。假设A目录文件 A/test/1.txt,转移到目录B中应该是B/test/1.txt。同时还需要考虑目录B中是否存在test目录,多级目录就要考虑递归了。(还好,bash shell里写个目录递归遍历还是原创 2014-12-17 22:39:26 · 5881 阅读 · 2 评论 -
shell脚本随机输出一个文件的25行
前言好久没写shell脚本了,今天看到群里有这么一个需求,截图如下:我也是复习一下shell脚本,就顺手写了个程序测试了一下,基本上通过了思路首先,用shell脚本按行读取文本,将每一行存入一个数组中每次选择一个随机数,来从数组中取数据注意,不能是重复的行,所以随机数有标记字段Shell脚本#!/bin/bash#文件原创 2013-04-02 14:14:44 · 7569 阅读 · 2 评论 -
bash shell关联数组提高查找效率
前言数组中判断元素是否存在的时间复杂度一般为O(n),是因为大家一般的做法都是遍历一遍数组看看所要找的数据是否存在。这里介绍一种利用key的唯一性来实现的时间复杂度为O(1)的判断元素是否存在的方法在c语言里这种方法经常使用,这里介绍在shell的语法中我们如何利用关联数组和key值唯一性来提高脚本的执行效率需求&&解决方法构建关键字数组和查找数组#构建原创 2013-03-14 21:09:02 · 7206 阅读 · 1 评论 -
bash shell for循环1到100
前言用bash shell写程序时,经常会用到for循环,特别是从1到100这种需求,这里记录几种shell中从1到100的循环方法方法类c语言for ((i=1; i<=100; i ++))do echo $idonein使用for i in {1..100}do echo $idoneseq使用作用seq - print原创 2013-03-14 18:42:44 · 175343 阅读 · 5 评论 -
linux的shell脚本判断当前是否为root用户
root标识whoami(显示当前用户的用户名)if [ `whoami` = "root" ];then echo "root用户!"else echo "非root用户!"fiid -u (显示当前用户的uid)if [ `id -u` -eq 0 ];then echo "root用户!"else echo "非root用户!"fi后记今天在原创 2013-01-05 21:43:02 · 21800 阅读 · 1 评论 -
ssh执行远程服务器需要sudo提权的脚本
前言运维是件很神奇的工作,牛逼的运维很轻松可以搞定很复杂的任务,sb的运维天天时间都耗上可能也解决不了问题(ps:因为他把时间都花在了可以重复执行的事情上)在写这篇博客之前,我google了一堆相关文章,大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,ubuntu10.04 server 亲测!!原创 2013-01-23 16:42:33 · 12269 阅读 · 1 评论 -
Update-rc.d && rc.local管理Ubuntu的开机启动
前言虽然是原创,毕竟自己对ubuntu的开机启动研究了整整两天,期间看鸟哥linux私房菜、研究/etc/init.d/下shell源码等等,但是不可否认看了很多国内国外的文章,最终搞定也是基于一篇不错的博客文章,这里首先进行推荐:通过update-rc.d管理ubuntu开机启动接下来,我会按照参考博客内容记录一些自己的收获(测试环境ubuntu10.04 && ubuntu12.04)原创 2013-01-07 17:38:02 · 20932 阅读 · 1 评论 -
php脚本解析nginx日志
nginx日志格式access_log日志格式log_format main '$server_name$remote_addr$remote_user[$time_local]"$request"' '$status$body_bytes_sent"$http_referer"' '"$ht原创 2013-01-30 15:05:29 · 3395 阅读 · 0 评论 -
shell脚本删除目录下的指定文件
需求今天做日志备份的时候,由于昨晚替换了备份脚本没有完全测试通过,导致了我的备份目录遭到污染,如果所示:我的需求是test1、test2、test3仅存在nginx、coreseek、apche,删除掉所有其他的文件。我可以选择手动的一个个删除,但是身为程序员,各位懂得,写了一个shell脚本,用了for+case,大家有更好的方法欢迎跟帖,肯定是有的,我提示一个find命原创 2013-02-01 13:47:23 · 10800 阅读 · 1 评论 -
shell脚本获取当前ip地址
需求shell脚本里我需要根据不同的ip地址做出不同的操作,因此我需要在shell脚本里获取当前主机的ip地址我需要获取到192.168.1.111这个ip地址方法1ifconfig |grep 'inet 地址'|grep '192.168.1' | grep -v 'grep' | awk '{print $2}'| tr -d "地址:原创 2013-02-01 20:26:01 · 7409 阅读 · 0 评论 -
shell脚本备份mysql数据库
需求临近年关整理一些脚本程序,发现一个mysql数据库备份的脚本可以和大家分享一下,基于环境是ubuntu10.04server思路获取mysql服务器所有数据库名称,过滤掉不需要备份的数据库通过mysqldump来for循环导出所有的数据库的sql文件用zip加密压缩所有的sql文件定期进行数据清理工作shell代码数据库导出代码#!/bi原创 2013-02-01 19:16:39 · 9684 阅读 · 5 评论 -
shell脚本中导入mysql数据&&执行mysql语句
前言在线下做mysql数据分析的时候,会遇到执行shell脚本里导入sql文件到mysql数据库里或者连接mysql执行指定sql语句的情况,这里介绍一下我采用的方法导入sql文件到mysql数据库示例代码#变量定义sqlname="test.sql"dir="/sdb2/backup/mysql_db_backup/backup/databases"原创 2013-02-08 14:31:48 · 12865 阅读 · 0 评论 -
shell脚本查找指定目录下所有子目录中的同名文件
前言今天qq群里有位挺厉害的大神提出了一个问题:“上海-redis-蛋疼(137795882) 17:39:37 有没有查找一个目录下面 有没有重名文件的 工具 啊”大家都知道,同一个目录下是不存在同名文件的,因此肯定要遍历子目录查找同名文件思路find命令查找所有的子目录find命令循环遍历子目录,获取所有的文件对所有的文件做去重因为是shell脚本,所以用好s原创 2013-02-19 19:51:23 · 10039 阅读 · 2 评论 -
按文件大小列出指定目录下文件(du,sort)
需求做系统移植的过程中,经常会遇到需要查看指定目录下所有文件大小的需求,然后根据文件的大小进行暴力的删除操作。方案列出所有文件的具体大小。du -s *sort命令对其进行排序。du -s * | sort -t " " -k 1 -nru原创 2015-08-04 12:12:18 · 3720 阅读 · 0 评论