Shell 命令行,实现一个获取任意位数的随机密码的脚本 每次我们想要获得一个密码的时候都很头疼,于是我之前自己用nodejs写了一个 Shell 脚本.这两天在学习 bash Shell 所以,想用同样的逻辑实现一个获取任意位数随机密码的脚本. 我成功了 :) 分析问题 我们假设我们需要的密码是大小写字母以及数字的组合,并且剔除掉 1,l,0,O,o 这些不便于认知的字符. 然后随机的读取其中的字符,组合成一个我们需要的密码,最后输出. 理顺了逻辑之后,我想到有下面的知识点是我之前不是很熟悉的…
Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件的脚本 在 mac 或者 linux 系统中,我们的浏览器或者其他下载软件下载的文件全部都下载再 ~/Downloads/ 文件夹下面.日积月累,我们的文件会越来越多.手工整理这些文件是比较繁琐的工作,于是,我就思考,我能不能用 shell 来自动整理这些下载的文件. 说干就干. 为了避免破坏我本地的文件,我自己搞了一个虚拟机跑了一个 centos 然后写下了如下的脚本. 第一版代码(处理文件名带空格的文件会出错) #!/…
Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件 前面我写了一篇博文Shell 从日志文件中选择时间段内的日志输出到另一个文件,利用循环实现了我想要实现的内容. 但是用这个脚本的同事很郁闷,因为执行时间比较长,越大的文件越长.于是找我,问我能不能实现一个更快的方案. 我想了一下,觉得之前的设计是脱裤子放屁,明明有更加简单的实现方法. 想办法获得我要截取的内容的开始的行号,然后再想办法获得我想截取的文件的结尾的行号,然后用两个行号来进行截断文件并输出.就可以实现这个效果了. 不…
Shell 命令行获取本机IP,grep的练习 在 mac 下面输入 ifconfig 或者在 linux 下面输入 ip a 就可以得到我们的网卡信息.不过通常情况下,我们需要查看的是我们的IP地址,不需要这么多的信息.所以,我想把这些信息给摘取出来. mac ifconfig 下面的实现 我们输入 ifconfig 会得到大段的信息,我们可以看到我们想要的IP地址前面的字符串是 inet 所以,我们优化一下代码如下: ifconfig | grep inet 得到如下信息: inet 127…
getopt 命令 使用getopt命令,可以解析任何命令行选项和参数,但是用法比较复杂.getopt的命令用法如下: $ getopt --help 用法: getopt optstring parameters getopt [options] [--] optstring parameters getopt [options] -o|--options optstring [options] [--] parameters 选项: -a, --alternative 允许长选项以 - 开始…
我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adblogcat输出的方法. 1.只显示需要的输出(白名单) 最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配.简单的匹配一行当中的某个字符串,例如 MyApp: adb logcat | grep MyApp adb logcat | grep -i myapp #…
Shell 命令行,实现对若干网站状态批量查询是否正常的脚本 如果你有比较多的网站,这些网站的运行状态是否正常则是一件需要关心的事情.但是逐一打开检查那简直是一件太糟心的事情了.所以,我想写一个 shell 脚本来实现对若干网站进行批量状态查询的脚本. 原理没什么要解释的,就是使用 curl -I 对网站的状态码进行查询.轮着查就是了. 文件准备 在要执行的脚本文件夹下面创建两个文件和一个文件夹,分别是 文件.文件夹 说明 ./watch.sh 我们的批量查询脚本文件 ./siteList.tx…
Shell 命令行统计 apache 网站日志访问IP以及IP归属地 我的一个站点用 apache 服务跑着,积攒了很多的日志.我想用 shell 看看有哪些人访问过我的站点,并且他来自哪里. 因为日志太长了,所以我没跑完就放弃了,因为跑起来太慢了... 分析 apache 日志 140.205.16.220 - - [26/Jun/2017:03:49:51 +0800] "GET /content_article_3.html HTTP/1.1" 200 3 日志内容如上,这个很简…
Shell 命令行求两个文件每行对比的相同内容 遇到的一个实际问题是,2017年08月01日起,所有未经实名的域名,全部停止解析.而我手上有不少域名,其中很多都是没有实名的.但我不知道哪些实名了,哪些没有实名.所以,我搞到了两个文件: 我的上级代理商的所有未实名的域名列表 我的所有域名列表 现在,我需要得到的是,我的域名在所有未实名域名列表中出现的个数. 简单来说,就是求a文件和b文件的每行对比的合集. 两层 while 循环求合集 事实上我解决这个问题是用js解决的.把两个文件构建成数组之后,…
Linux 正则表达式 你有没有想过,在 shell 命令行中的 *,?和正则表达式中的*,?是否一样? 自打好多年前接触 DOS,就知道了* 和?这两个通配符(Wildcard),象 dir *.* 这样的命令也不知道敲了多少遍. 后来,开始用 Windows 3.1 这样的图形界面操作系统,命令行就就得越来越少了. 再后来,开始学习正则表达式,又开始接触 * 和 ? 这样的东西.在正则中它们被称为元字符(Meta Character). 再再后来,开始使用 Linux,于是又开始使用命令行,…