shell - 1

shell解析器 Linux提供shell解析器 六种 命令: $ cat /etc/shells 1. /bin/sh 2. /bin/bash 3. /sbin/nologin 4. /bin/dash 5. /bin/tcsh 6. /bin/csh | 注:Centos默认的解析器是bash ... »

Linux基础之Shell与变量

一、提出问题 在平时的工作中,我们经常会碰到设置环境的问题,例如将应用的执行路径添加到PATH中,方便程序的执行;在Linux中更多的时候是跟shell打交道,很多通过shell启动的应用或者服务都需要设置环境变量,例如启动es需要设置一些环境变量,那么Shell到底是什么?Shell又跟环境变量有 ... »

Shell:如何写一个多选菜单的脚本

有很多方法可以读取Bash脚本中的用户输入。 但是,允许用户键入输入会带来一些问题。 主要问题是输入验证,您必须在其中考虑所有可能的输入。 解决此问题的一种简单方法是为Bash脚本创建一个多选菜单。 使用此方法,您可以定义用户可以选择的一组简单的预定选项。 ... »

Shell编程中变量用法

1. 变量替换 语法 说明 ${变量名#匹配规则} 从变量开头进行规则匹配,将符合最短的数据删除 ${变量名##匹配规则} 从变量开头进行规则匹配,将符合最长的数据删除,贪婪匹配 ${变量名%匹配规则} 从变量尾部进行规则匹配,将符合最短的数据删除 ${变量名%%匹配规则} 从变量尾部进行规则匹配, ... »

该死的端口占用!教你用 Shell 脚本一键干掉它!

1. 前言 大家好,我是安果! 在 Web 开发中,经常会遇到「端口被占用」的场景 常规解决方案是: 使用 lsof -i 命令查询占用端口的进程 PID 利用 kill -9 PID 干掉目标进程 虽然只有 2 步,我也觉得很繁琐,即:既要记住命令,又要输入两次 本篇文章将编写 Shell 脚本, ... »

Shell脚本控制docker容器启动顺序

1.遇到的问题 在分布式项目部署的过程中,经常要求服务器重启之后,应用(包括数据库)能够自动恢复使用.虽然使用docker update --restart=always containerid能够让容器自动随docker启动,但是并不能保证是在数据库启动之后启动,如果数据库未启动,那么将导致应用启 ... »

小公举comm,快速比较两个排序文件

前言 我们经常会有需求比较一个文件里的内容是否在另一个文件存在。假如我有一份监控列表的IP写入在了file1,我所有的机器IP写入在了file2,我要找出还有哪些机器没有在监控列表。以前的做法是写个两层循环,或者用diff命令。打印出来也没那么直观,直到最近找打了comm,以前也知道这个小工具,可能 ... »

Linux下最常用的10个文件压缩工具

作者简介 李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷。喜欢钻研底层技术,认为底层基础才是王道。一切新技术都离不开操作系统(CPU、内存、磁盘)、网络等。坚持输入输出,记录自己学习的点滴,在平凡中坚持前行,总有一天会遇见不一样的自己。公众号:运维汪(ID ... »

使用shell发送邮件,方便快捷

前言 很多时候我们需要发送邮件,比如定时任务,比如邮件验证码等等。 各大编程语言都可以实现发送邮件功能,但还是太麻烦了,所以通过tcpdump抓包发现smtp发送邮件原理还是很简单嘛。 所以就想着能不能通过shell搞定,这样在Linux平台下就很通用,不必准备各种安装环境啥的。 鉴赏代码 该脚本需 ... »

shell百宝箱(部署服务)

什么是ssh? SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露. 互联网通信早期都是明文通信,一旦被截获,内容就暴露无疑. 1995年,芬兰学者Tatu Ylonen设计 ... »

使用邮箱验证登录后台ssh,再也不怕被人攻击服务器了!

前言 之前写过使用用户名密码,以及扫描二维码方式验证后台登录ssh的文章:【点击跳转】。 但是这样还是不太保险,也存在被人利用的情况,因为别人破解你的后台你压根不知道。因此想到使用邮件验证码来提高验证服务器登录ssh的安全性。 如果有人破解了你ssh的用户名和密码,那么就会发送一个验证码邮件,当你在 ... »

java 执行shell命令及日志收集避坑指南

有时候我们需要调用系统命令执行一些东西,可能是为了方便,也可能是没有办法必须要调用。涉及执行系统命令的东西,则就不能做跨平台了,这和java语言的初衷是相背的。 废话不多说,java如何执行shell命令?自然是调用java语言类库提供的接口API了。 1. java执行shell的api 执行sh ... »

进程单例运行,文件加锁

前言 很多时候我们都需要进程单例运行,当再次运行程序时检查到已有程序在运行可以做特别的操作,比如置顶已运行的程序,比如当前程序提示一下就退出。 最简单方案是打开进程创建一个文件,程序结束时删除文件,当第二个程序运行时判断该文件存在则认为已有程序运行。问题是程序异常退出没有删除那个文件就GG了。 还有 ... »

Shell Scripting 笔记

Shell Scripting Tutorial Variables in the Bourne shell do not have to be declared, as they do in languages like C.But if you try to read an undeclared ... »

crontab极简教程

crontab简介 Linux crontab是用来定期执行程序的命令。 当安装完成操作系统之后,默认便会启动此任务调度命令。 crontab常用命令 crontab -e 打开vi编辑器,编写一个定时任务,退出vi后,若vi内容不为空,则会创建一个任务。 crontab -l 查看当前已经创建的定 ... »

逆向工具脚本:命令行使用轮子

前言 轮子脚本,本质为使用subprocess替代大量无谓的交互command,内部方法自由扩展 呃我是有用AndroidKiller,但耐不住常用到adb自定义的臭长命令,例如经常取httpcanary的hcy回本地分析 代码 usage 通常 路径为apk绝对地址,则解包 路径为目录地址,则尝试 ... »

大文件排序优化实践

在很多应用场景中,我们都会面临着排序需求,可以说是见怪不怪。我们也看过许多的排序算法:从最简单的冒泡排序、选择排序,到稍微好点的插入排序、希尔排序,再到有点理论的堆排序、快速排序,再到高级的归并排序、桶排序、基数排序。 而实际工作中我们可能用到的排序有哪些呢?而且,大部分时序,相信大家都是使用一个现 ... »

解Bug之路-记一次线上请求偶尔变慢的排查

解Bug之路-记一次线上请求偶尔变慢的排查 前言 最近解决了个比较棘手的问题,由于排查过程挺有意思,于是就以此为素材写出了本篇文章。 Bug现场 这是一个偶发的性能问题。在每天几百万比交易请求中,平均耗时大约为300ms,但总有那么100多笔会超过1s,让我们业务耗时监控的99.99线变得很尴尬。如 ... »