SHELL
常见问题
河 静
天道酬勤
展开
-
shell之函数表示方法
【代码】shell之函数表示方法。原创 2022-10-17 10:37:12 · 280 阅读 · 0 评论 -
linux下格式化硬盘脚本
【代码】linux下格式化硬盘脚本。原创 2022-09-01 10:57:59 · 557 阅读 · 0 评论 -
shell脚本判断ip地址是否合法
#!/bin/bashif ! echo ${ip} | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}.[0-9]\{1,3\}\.[0-9]\{1,3\}' &> /dev/null;then echo "ERROR:${ip}不合法!!!" && exit 1fi原创 2022-04-14 10:34:48 · 1925 阅读 · 0 评论 -
shell脚本之自动挂载硬盘并设置开机自启
#!/bin/bash#Date:2022/4/12#Author:hejing#Func:识别新添加的外接硬盘,并自动挂载if [ `whoami` != 'root' ];then echo -e "\033[31m 请以root用户执行,Please run as root!\033[0m" exit 1ficlearfunction auto_add(){ #获取新添加磁盘的大小 DISK_SIZE=$(lsblk | awk '{print原创 2022-04-13 09:09:27 · 1404 阅读 · 0 评论 -
shell脚本之二进制安装docker
#!/bin/bash#Author:haodong#Date:2022-3-31#Func:quickly install docker-19.03.3.tar.gz#set -eset -xclear. /etc/init.d/functionsfunction check_network (){ local timeout=1 local target=www.baidu.com local return_code=$(curl -I原创 2022-04-01 11:18:12 · 267 阅读 · 0 评论 -
shell脚本里变量引用 数组引用 遍历数组
shell脚本里变量引用 数组引用 遍历数组1.定义的变量—引用变量方式name=zhangecho $name或echo ${name}2.命令执行结果—引用变量方式两种方式$()和``$()---适合用于shell``----适合用于所有,反向单引号time=`date`或time=$(date)3.数组引用shell数组用括号表示,元素下标由0开始,元素用空格分开my_array=(A B "C" D)或者使用下标定义数组my_array[0]=Amy_原创 2022-03-23 15:41:29 · 1308 阅读 · 0 评论 -
Linux下万能巡检脚本 获取远程主机内存 cpu磁盘等信息
脚本内容如下,可无偿定制,留言即可#!/bin/bash#DATE: 2022/3/11#FUNC: collect remote machine info#AUTHOR:hejing# 1.获取每张网卡ipv4/ipv6/mac地址# 2.获取内核版本/系统安装方式# 3.获取磁盘/内存/CPU使用率TIME=$(date "+%Y-%m-%d %H:%M:%S")TIME_INTERVAL=5NIC_NAME=(`ip a s | grep -E '原创 2022-03-14 09:34:42 · 1439 阅读 · 4 评论 -
Linux系统安全加固脚本
#!/bin/bash##***********************************************************************#Author:ZHANGhaodong#Date:2021-12-09#FileName:kylin_security_force_20211209.sh#Installation:Mini#SystemOS(适用os): 1.Kylin Linux Advanced Server release V10 (SP2) /(Sw原创 2021-12-15 16:31:00 · 3768 阅读 · 0 评论 -
k8s拉取镜像脚本
#!/bin/bash#Author:Hejing#Date:2021-11-26#Function:拉取指定版本的k8s所需镜像url=registry.cn-hangzhou.aliyuncs.com/google_containersversion=v1.17.17images=(`kubeadm config images list --kubernetes-version=v1.17.17 | awk -F "/" '{print $2}'`)for imagename in $原创 2021-11-26 10:38:36 · 933 阅读 · 0 评论 -
shell脚本制作docker镜像 制作国产麒麟系统docker镜像
#!/bin/bash#Author:Haodong Zhang#Date:11/09/2021#Function:打包系统镜像为docker imageVERSION=$(nkvers | sed -n '10p' | awk -F "/" '{print $3}')clear#${FUNCNAME[1]}表示调用该函数的函数#$LINENO表示当前代码行号Log(){ local log_level=$1 local log_info=$2原创 2021-11-09 14:48:10 · 2035 阅读 · 2 评论 -
shell脚本打印报错信息行
#${FUNCNAME[1]}表示调用该函数的函数#$LINENO表示当前代码行号Log(){ local log_level=$1 local log_info=$2 local line=$3 local script_name=$(basename $0) case ${log_level} in "INFO") echo -e "\033[32m$(date "+%Y原创 2021-11-09 14:36:53 · 2190 阅读 · 0 评论 -
shell脚本之石头剪刀布小游戏
#!/bin/bash#Author:hejing#Date:2021-7-22#Description:石头剪刀布小游戏#1-石头 2-剪刀 3-布 (随机数对3求模后再加1,结果就是1 2 3)computer=$[RANDOM%3+1]clearecho -e "\e[32m1-石头,2-剪刀,3-布\e[0m"read -p "请输入石头、剪刀、布的代号:" personcase $person in1) if [ $computer -eq 1 ];then原创 2021-07-22 17:55:54 · 943 阅读 · 1 评论 -
shell之多分支if语句
shell之多分支if语句1.语法格式if 条件测试1;then 命令序列1elif 条件测试2;then 命令序列2elif 条件测试3;then 命令序列3else 命令序列nfi2.吃鸡排行段位排行#!/bin/bash#Author:hejing#Date:2021-7-22#Description:吃鸡结束后输入自己的分数,判断是什么段位#得分<=30:热血青铜#得分31-40:不屈白银#得分41-60:英勇黄金#得分61-70:坚韧铂金#得分7原创 2021-07-22 14:39:48 · 996 阅读 · 0 评论 -
shell脚本之检测nginx网站状态
shell脚本之检测nginx网站状态curl常用有效名称名称含义说明http_codeHTTP状态码local_ip本地ip地址local_port本地端口号remote_ip远程ip地址remote_port远程端口size_download下载数据的总字节数speed_download平均每秒下载速度time_total完成一次连接请求的时间使用%{}调用使用%{}调用#!/bin/bash#Author原创 2021-07-22 13:33:28 · 756 阅读 · 1 评论 -
shell脚本之一键源码安装nginx软件包
使用环境:redhat/centos 7系,可复制粘贴使用,此脚本是在外网环境下使用如无外网需下载nginx源码包、gcc、pcre-devel、zlib-devel、openssl-devel等安装包。#!/bin/bash#Author:hejing#Date:2021-7-21#Description:一键源码安装nginx#定义不同颜色属性setcolor_failure="echo -en \\033[91m" #echo选项 -n 回显数据后不按回车即可换行;-e转义setc原创 2021-07-21 17:28:27 · 1230 阅读 · 2 评论 -
shell之单分支if语句
shell之单分支if语句单分支if语句语法格式if 条件测试then 命令序列fiif和then可以写在同一行,如下:if 条件测试;then 命令序列fi单括号用-a 双括号用&& 单括号中间连接用&&1.测试脚本,在[]中不允许有&&和||的使用出现#!/bin/bashread -p "请输入用户名:" userread -s -p "请输入密码:" passif [ ! -z "$user" ];then原创 2021-07-21 15:28:48 · 752 阅读 · 0 评论 -
shell脚本之文件属性的判断与比较
shell脚本之文件属性的判断与比较话不所少,直接上表操作符功能描述-f file判断存在且为普通文件-d file判断存在且为目录-b file判断存在且为设备文件(磁盘、u盘)-c file判断存在且为字符设备文件(键鼠)-L file判断存在且为软连接文件-p file判断存在且为命名管道-r file判断存在且当前用户对改文件是否有读权限-w file判断存在且当前用户对改文件是否有写权限-x file判断存在原创 2021-07-21 14:36:47 · 296 阅读 · 0 评论 -
shell之各式各样的算数运算
shell之各式各样的算数运算shell支持各种算数运算,可以使用$((表达式))、$[表达式]、let表达式进行整数的算数运算,这些命令不能计算小数,但是可以用bc进行计算小数1.常用运算符号运算符号含义描述++自加1–自减1+加法-减法*乘法/除法**求幂%取余+=自加任意数-=自减任意数*=自乘任意数/=自除任意数%=对任意数取余&&逻辑与||逻辑原创 2021-07-21 10:54:53 · 264 阅读 · 0 评论 -
shell之常用变量
shell之常用变量1.常见系统预设变量变量名描述UID当前账户的账户IDUSER当前账户的用户名HISTSIZE当前终端最大记录历史命令数量(最多可以记录多少条历史命令)HOME当前账户的根目录LANG当前环境使用的语言PATH命令搜索路径PWD返回当前工作目录RANDOM随机返回0-32767的整数$0返回当前命令的名称$n返回位置参数,如$1、2等,数字大于9时必须使用2等,数字大于9时必须使用2等,数字原创 2021-07-20 17:24:40 · 379 阅读 · 0 评论 -
shell脚本之输入输出重定向
shell脚本之输入输出重定向1.标准输入输出标准输出的文件描述符是1(可忽略不写,默认就是1)标准错误输出的文件描述符是2标准输入的文件描述符是01>&2 #标准输出重定向到标准错误输出2>&1 #标准错误输出重定向到标准错误输出1> #标准输出重定向到2> #错误输出重定向到2.自动发邮件脚本cat automail.sh#!/bin/bash#Author:hejing#Date:2021-7-20#Description原创 2021-07-20 15:28:06 · 372 阅读 · 0 评论 -
shell脚本之echo用法
shell脚本之echo用法1.echo常见转义符号符号功能描述\b退格键(backspace)\f换行但光标仍停留在原来的位置\n换行且光标移至行首\r光标移至行首但不换行\t插入tab键\\打印\\033或\e设置终端属性,如字体颜色、背景颜色、定位光标等2.常见echo用法#echo -e "\033[1mok]" #加粗显示ok后没关闭属性#echo -e "\e[1mok\e[0m" #这里使用\e和\033效果相原创 2021-07-20 14:35:26 · 4677 阅读 · 0 评论 -
shell脚本之执行方式区别
shell脚本之执行方式区别执行方式有bash、sh、./、source、绝对路径示例:cat test.sh#!/bin/bashsleep 10001.bash和sh执行将会开启一个子进程(bash)来执行,如下图:2../、source、绝对路径会直接在当前bash进程下执行,如下图:3.测试脚本中写入exit,会有什么结果???cat test.sh#!/bin/bashexit用bash/sh执行的结果:执行完毕回到终端用./、source、绝对路径执行结果:执行完原创 2021-07-20 11:48:39 · 290 阅读 · 0 评论 -
Linux下免密登录脚本expect使用
#!/bin/bash#date:2021/7/14#function:配置免密ssh登录#autuor:hejing#mail:1585615244@qq.comssh-keygen -t rsa -q -P "" -f ~/.ssh/id_rsafor i in {131,133}do expect << EOF spawn ssh-copy-id root@172.16.248.$i expec原创 2021-07-14 10:56:49 · 406 阅读 · 0 评论 -
Linux下免密登录实施脚本
###############################################!/bin/bash#Function:免密登录对方机器#Date:2021-04-12#Filename:MM_mianmi.sh#Author:Hejing############################################user=rootfunction mianmi {#免交互生成秘钥对ssh-keygen -t rsa -q -P "" -f ~/.ssh/原创 2021-04-12 17:06:32 · 430 阅读 · 0 评论 -
Linuxx下ssh-keygen免密生成秘钥,非交互式
适合脚本中写入# ssh-keygen -t rsa -q -P "" -f ~/.ssh/id_rsa-t 秘钥类型-q 安静输出-P 提供密语-f 生成路径原创 2021-04-12 16:34:24 · 902 阅读 · 0 评论 -
linux下grep用法
linux下grep用法[root@kylin10 ~]# nl test.txt 1 I love china 2 I love chinese 3 My lover is flower1.grep -w只匹配单词,第三行的lover就不会匹配了[root@kylin10 ~]# nl test.txt 1 I love china 2 I love chinese 3 My lover is flower#######原创 2021-04-08 14:40:16 · 2236 阅读 · 0 评论 -
[python]比较文件内容脚本
案例要求:1.现在有a.log和b.log两个文件2.两个文件里有大量的重复的数据3.取出只有在b.log中存在的行编写python脚本,实现如上功能with open('a.log') as f1: aset = set(f1)with open('b.log') as f2: bset = set(f2)with open('/tmp/result.txt',...原创 2019-07-06 17:34:13 · 438 阅读 · 0 评论 -
rpm安装包制作脚本(仅限内部适用)
#!/bin/bash#Author:Haodong Zhang#Date:06/30/2020#Function:快速制作SMJ安装包(内部适用)clearfunction cecho { echo -e "\033[$1m$2\033[0m"#fonts color:31-red;32-green;36-deepgreen;34-blue;}##################################脚本说明#########################原创 2020-06-30 11:10:48 · 6318 阅读 · 0 评论 -
我的shell模板
#!/bin/bash#Author: #Date: #Function: #Version:clearset +xset +nset -efunction cecho { echo -ne "\033[$1m$2\033[0m"#fonts color:31-red;32-green;36-deepgreen;34-blue;}function ch...原创 2020-03-06 16:28:07 · 293 阅读 · 0 评论 -
Linux下expect、case格式
expect expect << EOF spawn virsh console $virname #spawn执行命令或程序 expect " 换码符为 ^]" {send "\r"} expect "login:" {send "root\r"} expect "Password:" {send "a\r"} e...原创 2020-03-05 17:29:05 · 567 阅读 · 0 评论 -
Linux下判断执行的命令或脚本是否是交互式
Linux下判断执行的命令或脚本是否是交互式Linux下/etc/profile脚本解释for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then #判断是否可读 if [ "${-#*i}" != "$-" ]; then #判断脚本是否是交互式脚本 . "$i" ...原创 2020-03-05 16:59:23 · 600 阅读 · 0 评论 -
linux下shell脚本执行方式与区别
1、source作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限"2、sh或bash作用:在当前bash环境下新建一个子shell来执行脚本中的命令,该filename可以无执行权限3、./作用:打开一个子shell执行shell脚本中的命令注意:每个shell脚本有效的运行在父shell的一个子进程里,这个父shell是指在一个控制...原创 2020-03-05 10:57:58 · 386 阅读 · 0 评论 -
[SHELL]自动生成8位随机密码脚本
[root@node3 ~]# cat test.sh #!/bin/bashStr="abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"pass=""for i in {1..8}do num=$[RANDOM%${#Str}] tmp=${Str:num:1} pass+=$tmpdoneecho ...原创 2019-06-24 08:41:29 · 1903 阅读 · 0 评论 -
实用脚本(一)
1.编写SHELL脚本,将文件系统使用率超过80%的目录输出#!/bin/bashdf | sed 's/%//' | awk '$5>=80'2.使用sed命令在文件file中第一行和第三行之后添加字符串"hello world"(1)sed '1s/$/hello world/;3s/$/hello world/' x.txt(2)sed '1a hello world;3a...原创 2019-06-04 00:06:56 · 1090 阅读 · 0 评论 -
[Linux](脚本)创建虚拟机及修改相关参数
#!/bin/bash#AUTHOR:ZHD#DATE:2019-06-05#FUNCTION:快速创建虚拟机及修改相关参数#VERSION:1.0clearfunction menu {cat<<EOF********************menu******************** (1)快速创建虚拟机 (2)现有虚拟机的硬盘扩容 (3)现...原创 2019-06-06 09:03:23 · 619 阅读 · 0 评论 -
【脚本】判断用户输入的密码,如果连续三次输入错误则退出。
#!/bin/bash#AUTHOR:ZHD#DATE:2019-05-28#FUNCTION:判断用户输入的密码,如果连续三次输入则退出。#VERSION:1.0 NUMBER=3PASSWORD=123456SUM=0while truedoread -p "请输入密码:" PASSSUM=$((SUM+1))if [ $PASS == $PASSWORD ];t...原创 2019-05-28 15:17:57 · 3790 阅读 · 0 评论 -
搭建Mongodb服务
#!/bin/bash#AUTHOR:ZHD#DATE:2019-05-24#FUNCTION:快速搭建Mogondb服务#VERSION:1.0#DESCRIBE:由于我的mogodb是个tar包,免安装直接解压即可,存放在/root/soft/mongodb/下clear #清屏cat <<EOF**********************************...原创 2019-05-27 16:19:34 · 484 阅读 · 0 评论 -
我的函数库
我的脚本调用的函数库#!/bin/bash#AUTHOR:ZHD#DATE:2019-05-20#FUNCTION:构建不同功能的函数,方便操作。#VERSION:1.0#DESCRIBE: #1.CECHO(输出颜色函数)#2.PROGRESS(显示软件包安装进度函数)#3.CHECK_YUM(检测yum源是否存在)#4.YUM(使用yum安装)#输出颜色函数functio...原创 2019-05-27 10:44:49 · 376 阅读 · 0 评论