青春纸盒子

文: 芦苇

你喜欢我笑的样子

我靠上了落寞的窗子

晚风吹起了我的袖子

明月沾湿了你的眸子


转身,你走出了两个人的圈子

树影婆娑,整座院子


挽起袖子

回头,把揽你忧伤一地的影子

装进,青春,这纸盒子


更多代码请关注我的微信小程序: "ecoder"

luwei0915

导航

2019年3月12日

081_使用 awk 编写的 wc 程序

摘要: #!/bin/bash#自定义变量 chars 变量存储字符个数,自定义变量 words 变量存储单词个数#awk 内置变量 NR 存储行数#length()为 awk 内置函数,用来统计每行的字符数量,因为每行都会有一个隐藏的$,所以每次统计后都+1#wc 程序会把文件结尾符$也统计在内,可以使用 阅读全文

posted @ 2019-03-12 19:31 芦苇の 阅读(629) 评论(0) 推荐(0)

080_生成自签名私钥和证书

摘要: #!/bin/bashread -p "请输入存放证书的目录:" dirif [ ! -d $dir ];then echo "该目录不存在" exitfiread -p "请输入密钥名称:" name#使用 openssl 生成私钥openssl genrsa -out ${dir}/${name 阅读全文

posted @ 2019-03-12 19:26 芦苇の 阅读(340) 评论(0) 推荐(0)

079_统计双色球各个数字的中奖概率

摘要: #!/bin/bash #往期双色球中奖号码如下:#01 04 11 28 31 32 16#04 07 08 18 23 24 02#02 05 06 16 28 29 04#04 19 22 27 30 33 01#05 10 18 19 30 31 03#02 06 11 12 19 29 0 阅读全文

posted @ 2019-03-12 19:24 芦苇の 阅读(949) 评论(0) 推荐(0)

078_使用 egrep 过滤 MAC 地址

摘要: #!/bin/bash#MAC 地址由 16 进制组成,如 AA:BB:CC:DD:EE:FF#[0-9a-fA-F]{2}表示一段十六进制数值,{5}表示连续出现 5 组前置:的十六进制egrep "[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}" $1 # 关于MAC地址M 阅读全文

posted @ 2019-03-12 19:17 芦苇の 阅读(397) 评论(0) 推荐(0)

077_打印各种时间格式

摘要: #!/bin/bashecho "显示星期简称(如:Sun)"date +%a # 二echo "显示星期全称(如:Sunday)"date +%A # 星期二echo "显示月份简称(如:Jan)"date +%b # 3月echo "显示月份全称(如:January)"date +%B # 三月 阅读全文

posted @ 2019-03-12 19:03 芦苇の 阅读(295) 评论(0) 推荐(0)

076_判断文件或目录是否存在

摘要: #!/bin/bashif [ $# -eq 0 ] ;then echo "未输入任何参数,请输入参数" echo "用法:$0 [文件名|目录名]"fi if [ -f $1 ];then echo "该文件,存在" ls -l $1else echo "没有该文件"fi if [ -d $1 阅读全文

posted @ 2019-03-12 18:57 芦苇の 阅读(397) 评论(0) 推荐(0)

075_读取用户输入的账户名称,将账户名写入到数组保存

摘要: #!/bin/bash#定义数组名称为 name,数组的下标为 i,小标从 0 开始,每输入一个账户名,下标加 1,继续存下一个账户#最后,输入 over,脚本输出总结性信息后脚本退出 i=0while :do read -p "请输入账户名,输入 over 结束:" key if [ $key = 阅读全文

posted @ 2019-03-12 18:54 芦苇の 阅读(426) 评论(0) 推荐(0)

074_根据计算机当前时间,返回问候语,可以将该脚本设置为开机启动

摘要: #!/bin/bash#00-12 点为早晨,12-18 点为下午,18-24 点为晚上#使用 date 命令获取时间后,if 判断时间的区间,确定问候语内容 tm=$(date +%H)if [ $tm -le 12 ];then msg="Good Morning $USER"elif [ $t 阅读全文

posted @ 2019-03-12 18:51 芦苇の 阅读(383) 评论(0) 推荐(0)

073_使用 shell 脚本打印如下图形

摘要: #!/bin/bash#打印第一组图片#for(())为类 C 语言的语法格式,也可以使用 for i in;do;done 的格式替换#for((i=1;i<=9;i++))循环会执行 9 次,i 从 1 开始到 9,每循环一次 i 自加 1clearfor (( i=1; i<=9; i++ ) 阅读全文

posted @ 2019-03-12 18:46 芦苇の 阅读(1556) 评论(0) 推荐(0)

072_查看所有虚拟机磁盘使用量以及 CPU 使用量信息

摘要: #!/bin/bashvirt-df #虚拟机磁盘使用量read -n1 "按任意键继续" keyvirt-top # CPU 使用量 阅读全文

posted @ 2019-03-12 18:30 芦苇の 阅读(1211) 评论(0) 推荐(0)

071_关闭 SELinux

摘要: #!/bin/bashsed -i '/^SELINUX/s/=.*/=disabled/' /etc/selinux/configsetenforce 0 阅读全文

posted @ 2019-03-12 18:28 芦苇の 阅读(181) 评论(0) 推荐(0)

070_Shell 脚本对信号的处理,执行脚本后,按键盘 Ctrl+C 无法终止的脚本

摘要: #!/bin/bash#使用 trap 命令可以拦截用户通过键盘或 kill 命令发送过来的信号#使用 kill -l 可以查看 Linux 系统中所有的信号列表,其中 2 代表 Ctrl+C#trap 当发现有用户 ctrl+C 希望终端脚本时,就执行 echo "暂停 10s";sleep 10 阅读全文

posted @ 2019-03-12 18:25 芦苇の 阅读(1486) 评论(0) 推荐(0)

069_破解虚拟机密码,无密码登陆虚拟机系统

摘要: #!/bin/bash#该脚本使用 guestmount 工具,Centos7.2 中安装 libguestfs-tools-c 可以获得 guestmount 工具 read -p "请输入虚拟机名称:" nameif virsh domstate $name | grep -q running 阅读全文

posted @ 2019-03-12 18:16 芦苇の 阅读(605) 评论(0) 推荐(0)

068_不登陆虚拟机,修改虚拟机网卡 IP 地址

摘要: #!/bin/bash #该脚本使用 guestmount 工具,Centos7.2 中安装 libguestfs-tools-c 可以获得 guestmount 工具#脚本在不登陆虚拟机的情况下,修改虚拟机的 IP 地址信息#在某些环境下,虚拟机没有 IP 或 IP 地址与真实主机不在一个网段#真 阅读全文

posted @ 2019-03-12 18:08 芦苇の 阅读(525) 评论(0) 推荐(0)

067_查看 KVM 虚拟机中的网卡信息(不需要进入启动或进入虚拟机)

摘要: #!/bin/bash #该脚本使用 guestmount 工具,可以将虚拟机的磁盘系统挂载到真实机文件系统中#Centos7.2 中安装 libguestfs-tools-c 可以获得 guestmount 工具#虚拟机可以启动或者不启动都不影响该脚本的使用#将虚拟机磁盘文件挂载到文件系统后,就可 阅读全文

posted @ 2019-03-12 17:45 芦苇の 阅读(972) 评论(0) 推荐(0)

066_调整虚拟机内存参数的 shell 脚本

摘要: #!/bin/bash#脚本通过调用 virsh 命令实现对虚拟机的管理,如果没有该命令,需要安装 libvirt-client 软件包 cat << EOF1.调整虚拟机最大内存数值2.调整实际分配给虚拟机的内存数值EOF read -p "请选择[1-2]:" selectcase $selec 阅读全文

posted @ 2019-03-12 17:21 芦苇の 阅读(276) 评论(0) 推荐(0)

065_使用脚本开启关闭虚拟机

摘要: #!/bin/bash #脚本通过调用 virsh 命令实现对虚拟机的管理,如果没有该命令,需要安装 libvirt-client 软件包#$1 是脚本的第 1 个参数,$2 是脚本的第 2 个参数#第 1 个参数是你希望对虚拟机进行的操作指令,第 2 个参数是虚拟机名称 case $1 inlis 阅读全文

posted @ 2019-03-12 17:18 芦苇の 阅读(566) 评论(0) 推荐(0)

064_将 Linux 系统中 UID 大于等于 1000 的普通用户都删除

摘要: #!/bin/bash#先用 awk 提取所有 uid 大于等于 1000 的普通用户名称#再使用 for 循环逐个将每个用户删除即可 user=$(awk -F: '$3>=1000{print $1}' /etc/passwd)for i in $userdo userdel -r $idone 阅读全文

posted @ 2019-03-12 17:09 芦苇の 阅读(1752) 评论(0) 推荐(0)

063_显示本机 Linux 系统上所有开放的端口列表

摘要: #!/bin/bash#从端口列表中观测有没有没用的端口,有的话可以将该端口对应的服务关闭,防止意外的攻击可能性 ss -nutlp |awk '{print $1,$5}' | awk -F"[: ]" '{print "协议:"$1,"端口号:"$NF}' | grep "[0-9]" | un 阅读全文

posted @ 2019-03-12 17:06 芦苇の 阅读(522) 评论(0) 推荐(0)

062_判断用户输入的是 Yes 或 NO

摘要: #!/bin/bashread -p "Are you sure?[y/n]:" surecase $sure iny|Y|Yes|YES) echo "you enter Yes";;n|N|NO|no) echo "you enter No";;*) echo "error";;esac 阅读全文

posted @ 2019-03-12 16:56 芦苇の 阅读(296) 评论(0) 推荐(0)

061_打印斐波那契数列(100以内)

摘要: #!/bin/bash #斐波那契数列后一个数字永远是前 2 个数字之和#如:0 1 1 2 3 5 8 13 ... ... list=(0 1)for i in `seq 2 11`do list[$i]=`expr ${list[-1]} + ${list[-2]}` doneecho ${l 阅读全文

posted @ 2019-03-12 16:51 芦苇の 阅读(474) 评论(0) 推荐(0)

060_显示进度条(数字版)

摘要: #!/bin/bash#echo 使用-e 选项后,在打印参数中可以指定 H,设置需要打印内容的 x,y 轴的定位坐标#设置需要打印内容在第几行,第几列for i in {1..100}do echo -e "\033[6;8H[" echo -e "\033[6;9H$i%" echo -e "\ 阅读全文

posted @ 2019-03-12 16:12 芦苇の 阅读(265) 评论(0) 推荐(0)

59_判断用户输入的数据类型(字母、数字或其他)

摘要: #!/bin/bashread -p "请输入一个字符:" KEYcase "$KEY" in[a-z]|[A-Z]) echo "字母" ;;[0-9]) echo "数字" ;;*) echo "空格、功能键或其他控制字符"esac #一个字符... 阅读全文

posted @ 2019-03-12 15:56 芦苇の 阅读(536) 评论(0) 推荐(0)

058_从键盘读取一个论坛积分,判断论坛用户等级

摘要: #!/bin/bash #等级分类如下:# 大于等于 90 神功绝世# 大于等于 80,小于 90 登峰造极# 大于等于 70,小于 80 炉火纯青# 大于等于 60,小于 70 略有小成# 小于 60 初学乍练 read -p "请输入积分(0-100):" JFif [ $JF -ge 90 ] 阅读全文

posted @ 2019-03-12 15:53 芦苇の 阅读(188) 评论(0) 推荐(0)

057_统计 Linux 进程相关数量信息

摘要: #!/bin/bashrunning=0sleeping=0stoped=0zombie=0 #在 proc 目录下所有以数字开始的都是当前计算机正在运行的进程的进程 PID#每个 PID 编号的目录下记录有该进程相关的信息 for pid in /proc/[1-9]*do procs=$[pro 阅读全文

posted @ 2019-03-12 15:51 芦苇の 阅读(366) 评论(0) 推荐(0)

056_统计/etc/passwd 中 root 出现的次数

摘要: #!/bin/bash#每读取一行文件内容,即从第 1 列循环到最后 1 列,依次判断是否包含 root 关键词,如果包含则 x++awk -F: '{i=1;while(i<=NF){if($i~/root/){x++};i++}} END{print "root 出现次数为"x}' /etc/p 阅读全文

posted @ 2019-03-12 15:44 芦苇の 阅读(515) 评论(0) 推荐(0)

055_使用脚本循环创建三位数字的文本文件(111-999 的所有文件)

摘要: #!/bin/bash#Author:丁丁历险(Jacob)for i in {1..9}do for j in {1..9} do for k in {1..9} do touch /tmp/$i$j$k.txt done donedone 阅读全文

posted @ 2019-03-12 15:25 芦苇の 阅读(372) 评论(0) 推荐(0)

054_自动修改计划任务配置文件

摘要: #!/bin/bashread -p "请输入分钟信息(00-59):" minread -p "请输入小时信息(00-24):" hourread -p "请输入日期信息(01-31):" dateread -p "请输入月份信息(01-12):" monthread -p "请输入星期信息(00 阅读全文

posted @ 2019-03-12 15:22 芦苇の 阅读(240) 评论(0) 推荐(0)

053_修改 Linux 系统的最大打开文件数量

摘要: #!/bin/bash#往/etc/security/limits.conf 文件的末尾追加两行配置参数,修改最大打开文件数量为 65536 cat >> /etc/security/limits.conf <<EOF* soft nofile 65536* hard nofile 65536EOF 阅读全文

posted @ 2019-03-12 15:21 芦苇の 阅读(302) 评论(0) 推荐(0)

052_获取本机 MAC 地址

摘要: #!/bin/baship a s | awk 'BEGIN{print "本机 MAC 地址信息如下:"}/^[0-9]/{print $2;getline;if($0~/link\/ether/){print $2}}' | grep -v lo: #awk 读取 ip 命令的输出,输出结果中如 阅读全文

posted @ 2019-03-12 15:18 芦苇の 阅读(240) 评论(0) 推荐(0)

051_循环关闭局域网中所有主机

摘要: #!/bin/bash#假设本机为 192.168.4.100,编写脚本关闭除自己外的其他所有主机#脚本执行,需要提前给所有其他主机传递 ssh 密钥,满足无密码连接 for i in {1..254}do [ $i -eq 100 ] && continue echo "正在关闭 192.168. 阅读全文

posted @ 2019-03-12 15:11 芦苇の 阅读(228) 评论(0) 推荐(0)

050_显示进度条(回旋镖版)

摘要: #!/bin/bashwhile :do clear for i in {1..20} do echo -e "\033[3;${i}H*" sleep 0.1 done clear for i in {20..1} do echo -e "\033[3;${i}H*" sleep 0.1 done 阅读全文

posted @ 2019-03-12 15:08 芦苇の 阅读(206) 评论(0) 推荐(0)

049_指定目录路径,脚本自动将该目录使用 tar 命令打包备份到/data 目录

摘要: #!/bin/bash[ ! -d /data ] && mkdir /data #确保有此目录[ -z $1 ] && exit #为空不需要打包if [ -d $1 ];then #是目录 tar -czf /data/$1.-`date +%Y%m%d`.tar.gz $1else echo 阅读全文

posted @ 2019-03-12 15:01 芦苇の 阅读(624) 评论(0) 推荐(0)

048_显示当前计算机中所有账户的用户名称

摘要: #!/bin/bash#下面使用3种不同的方式列出计算机中所有账户的用户名 #指定以:为分隔符,打印/etc/passwd 文件的第 1 列awk -F: '{print $1}' /etc/passwd #指定以:为分隔符,打印/etc/passwd 文件的第 1 列cut -d: -f1 /et 阅读全文

posted @ 2019-03-12 14:57 芦苇の 阅读(368) 评论(0) 推荐(0)

047_批量下载有序文件(pdf、图片、视频等等)

摘要: #!/bin/bash#本脚本准备有序的网络资料进行批量下载操作(如 01.jpg,02.jpg,03.jpg)#设置资源来源的域名连接 url="http://www.test.com/"echo "开始下载..."sleep 2type=jpg for i in `seq 100` echo " 阅读全文

posted @ 2019-03-12 14:54 芦苇の 阅读(400) 评论(1) 推荐(0)

046_Shell 脚本的 fork 炸弹

摘要: #!/bin/bash#快速消耗计算机资源,致使计算机死机#定义函数名为.(点), 函数中递归调用自己并放入后台执行.() {.|.& };. 阅读全文

posted @ 2019-03-12 14:52 芦苇の 阅读(191) 评论(0) 推荐(0)

045_循环测试用户名与密码是否正确

摘要: #!/bin/bash#循环测试用户的账户名和密码,最大测试 3 次,输入正确提示登录成功,否则提示登录失败#用户名为 tom 并且密码为 123456for i in {1..3}do read -p "请输入用户名:" user read -p "请输入密码:" pass if [ "$user 阅读全文

posted @ 2019-03-12 14:48 芦苇の 阅读(491) 评论(0) 推荐(0)

044_测试用户名与密码是否正确

摘要: #!/bin/bash#用户名为 tom 并且密码为 123456,则提示登录成功,否则提示登录失败 read -p "请输入用户名:" userread -p "请输入密码:" passif [ "$user" == 'tom' -a "$pass" == '123456' ];then echo 阅读全文

posted @ 2019-03-12 14:46 芦苇の 阅读(416) 评论(0) 推荐(0)

043_生成随机密码

摘要: 1.生成随机密码(urandom 版本)#!/bin/bash#/dev/urandom 文件是 Linux 内置的随机设备文件#cat /dev/urandom 可以看看里面的内容,ctrl+c 退出查看#查看该文件内容后,发现内容有些太随机,包括很多特殊符号,我们需要的密码不希望使用这些符号#t 阅读全文

posted @ 2019-03-12 14:44 芦苇の 阅读(249) 评论(0) 推荐(0)

042_提示用户输入年份后测试判断是否为闰年

摘要: #!/bin/bash#能被 4 整除并且并 100 整除的年是闰年#能被 400 整除的年也是闰年 read -p "请输入一个年份:" yearif [ "$year" = "" ];then echo "没有输入年份" exitfi #使用正则测试变量 year 中是否包含大小写字母if [[ 阅读全文

posted @ 2019-03-12 14:33 芦苇の 阅读(695) 评论(0) 推荐(0)

041_查找 Linux 系统中的僵尸进程

摘要: #!/bin/bash#awk 判断 ps 命令输出的第 8 列为 Z 是僵尸进程,显示该进程的 PID 和进程命令 ps aux |awk '{if($8 == "Z"){print $2,$11} }' 阅读全文

posted @ 2019-03-12 14:29 芦苇の 阅读(233) 评论(0) 推荐(0)

040_删除某个目录下大小为 0 的文件

摘要: #!/bin/bash#/var/www/html 为测试目录,脚本会清空该目录下所有 0 字节的文件 dir="/var/www/html"find $dir -type f -size 0 -exec rm-rf {} \; 阅读全文

posted @ 2019-03-12 14:25 芦苇の 阅读(711) 评论(0) 推荐(0)

039_显示 CPU 厂商信息

摘要: #!/bin/bash# 找到包含vendor_id的行打印第3列去重显示 awk '/vendor_id/{print $3}' /proc/cpuinfo | uniq 阅读全文

posted @ 2019-03-12 14:23 芦苇の 阅读(212) 评论(0) 推荐(0)

038_使用脚本自动创建逻辑卷

摘要: #!/bin/bash#清屏,显示警告信息,创建将磁盘转换为逻辑卷会删除数据clearecho -e "\033[32m!!!!!!警告(Warning)!!!!!!\033[0m"echoecho "+++++++++++++++++++++++++++++++++++++++++++++++++ 阅读全文

posted @ 2019-03-12 14:18 芦苇の 阅读(250) 评论(0) 推荐(0)

037_自动添加防火墙规则,开启某些服务或端口(适用于 RHEL7)

摘要: #!/bin/bash#设置变量定义需要添加到防火墙规则的服务和端口号#使用 firewall-cmd --get-services 可以查看 firewall 支持哪些服务 service="nfs http ssh"port="80 22 8080" #循环将每个服务添加到防火墙规则中for i 阅读全文

posted @ 2019-03-12 14:12 芦苇の 阅读(378) 评论(0) 推荐(0)

036_监控 HTTP 服务器的状态(测试返回码)

摘要: #!/bin/bash #设置变量,url 为你需要检测的目标网站的网址(IP 或域名)url=http://192.168.4.5/index.html #定义函数 check_http:#使用 curl 命令检查 http 服务器的状态#-m 设置 curl 不管访问成功或失败,最大消耗的时间为 阅读全文

posted @ 2019-03-12 14:07 芦苇の 阅读(339) 评论(0) 推荐(0)

035_检查特定的软件包是否已经安装

摘要: #!/bin/bashif [ $# -eq 0 ];then echo "你需要制定一个软件包名称作为脚本参数" echo "用法:$0 软件包名称 ..."fi #$@提取所有的位置变量的值,相当于$*for package in "$@"do if rpm -q ${package} &>/d 阅读全文

posted @ 2019-03-12 13:54 芦苇の 阅读(215) 评论(0) 推荐(0)

034_非交互自动生成 SSH 密钥文件

摘要: #!/bin/bash#-t 指定 SSH 密钥的算法为 RSA 算法;-N 设置密钥的密码为空;-f 指定生成的密钥文件存放在哪里 rm -rf ~/.ssh/{known_hosts,id_rsa*}ssh-keygen -t RSA -N '' -f ~/.ssh/id_rsa 阅读全文

posted @ 2019-03-12 13:50 芦苇の 阅读(362) 评论(0) 推荐(0)

033_将文件中所有的小写字母转换为大写字母

摘要: #!/bin/bash#$1 是位置参数,是你需要转换大小写字母的文件名称#执行脚本,给定一个文件名作为参数,脚本就会将该文件中所有的小写字母转换为大写字母 tr "[a-z]" "[A-Z]" < $1 阅读全文

posted @ 2019-03-12 11:54 芦苇の 阅读(610) 评论(0) 推荐(0)

032_备份 MySQL 的 shell 脚本(mysqldump 版本)

摘要: #!/bin/bash#定义变量 user(数据库用户名),passwd(数据库密码),date(备份的时间标签)#dbname(需要备份的数据库名称,根据实际需求需要修改该变量的值,默认备份 mysql 数据库) user=rootpasswd=123456dbname=mysqldate=$(d 阅读全文

posted @ 2019-03-12 11:52 芦苇の 阅读(393) 评论(0) 推荐(0)

031_检测 MySQL 服务是否存活

摘要: #!/bin/bash#host 为你需要检测的 MySQL 主机的 IP 地址,user 为 MySQL 账户名,passwd 为密码#这些信息需要根据实际情况修改后方可使用 host=127.0.0.1user=rootpasswd=123456 mysqladmin -h 127.0.0.1 阅读全文

posted @ 2019-03-12 11:45 芦苇の 阅读(575) 评论(0) 推荐(0)

030_根据 md5 校验码,检测文件是否被修改

摘要: #!/bin/bash#本示例脚本检测的是/etc 目录下所有的 conf 结尾的文件,根据实际情况,可以修改为其他目录或文件#本脚本在目标数据没有被修改时执行一次,当怀疑数据被人篡改,再执行一次#将两次执行的结果做对比,MD5 码发生改变的文件,就是被人篡改的文件 for i in $(ls /e 阅读全文

posted @ 2019-03-12 11:43 芦苇の 阅读(476) 评论(0) 推荐(0)

029_检测 MySQL 数据库连接数量

摘要: #!/bin/bash#本脚本每 2 秒检测一次 MySQL 并发连接数,可以将本脚本设置为开机启动脚本,或在特定时间段执行#以满足对 MySQL 数据库的监控需求,查看 MySQL 连接是否正常#本案例中的用户名和密码需要根据实际情况修改后方可使用 log_file=/var/log/mysql_ 阅读全文

posted @ 2019-03-12 11:39 芦苇の 阅读(266) 评论(0) 推荐(0)

028_切割 Nginx 日志文件(防止单个文件过大,后期处理很困难)

摘要: mkdir /data/scriptsvim /data/scripts/nginx_log.sh #!/bin/bashlogs_path="/usr/local/nginx/logs/"mv ${logs_path}access.log ${logs_path}access_$(date -d 阅读全文

posted @ 2019-03-12 11:35 芦苇の 阅读(1118) 评论(0) 推荐(0)

027_自动对磁盘分区、格式化、挂载

摘要: #!/bin/bash#对虚拟机的 vdb 磁盘进行分区格式化,使用<<将需要的分区指令导入给程序 fdisk#n(新建分区)#p(创建主分区)#1(分区编号为 1),两个空白行(两个回车,相当于将整个磁盘分一个区)#注意:1 后面的两个回车(空白行)是必须的! fdisk /dev/vdb << 阅读全文

posted @ 2019-03-12 11:01 芦苇の 阅读(295) 评论(0) 推荐(0)

026_编写 nginx 启动脚本

摘要: #!/bin/bash#本脚本编写完成后,放置在/etc/init.d/目录下,就可以被 Linux 系统自动识别到该脚本#如果本脚本名为/etc/init.d/nginx,则 #service nginx start 就可以启动该服务#service nginx stop 就可以关闭服务#serv 阅读全文

posted @ 2019-03-12 10:45 芦苇の 阅读(383) 评论(0) 推荐(0)

025_自动为其他脚本添加解释器信息#!/bin/bash

摘要: #!/bin/bash#先使用 grep 判断对象脚本是否已经有解释器信息,如果没有则使用 sed 添加解释器以及描述信息if ! grep -q "^#!" $1; then #带参数 sed -i '1i #!/bin/bash' $1fi 阅读全文

posted @ 2019-03-12 10:33 芦苇の 阅读(276) 评论(0) 推荐(0)

024_统计/var/log 有多少个文件,并显示这些文件名

摘要: #!/bin/bash#使用 ls 递归显示所有,再判断是否为文件,如果是文件则计数器加 1cd /var/logsum=0for i in `ls -r *`do if [ -f $i ];then let sum++ echo "文件名:$i" fidoneecho "总文件数量为:$sum" 阅读全文

posted @ 2019-03-12 10:22 芦苇の 阅读(716) 评论(0) 推荐(0)

023_统计当前 Linux 系统中可以登录计算机的账户有多少个

摘要: #!/bin/bash #方法 1: grep "bash$" /etc/passwd | wc -l #方法 2: #-F END都要大写! awk -F: '/bash$/{x++}END{print x}' /etc/passwd 阅读全文

posted @ 2019-03-12 10:18 芦苇の 阅读(962) 评论(0) 推荐(0)

022_统计每个远程 IP 访问了本机 apache 几次?

摘要: #$1为IP#i为不同的IP#print ip[i],i 输出不同IP出现的次数总和以及它们是谁#ip[$1]++ 未定义则从0开始,IP出现则自增 #!/bin/bashawk '{ip[$1]++}END{for(i in ip){print ip[i],i}}' /var/log/httpd/ 阅读全文

posted @ 2019-03-12 10:07 芦苇の 阅读(217) 评论(0) 推荐(0)

021_打印国际象棋棋盘

摘要: #!/bin/bash#设置两个变量,i 和 j,一个代表行,一个代表列,国际象棋为 8*8 棋盘#i=1 是代表准备打印第一行棋盘,第 1 行棋盘有灰色和蓝色间隔输出,总共为 8 列#i=1,j=1 代表第 1 行的第 1 列;i=2,j=3 代表第 2 行的第 3 列#棋盘的规律是 i+j 如果 阅读全文

posted @ 2019-03-12 10:03 芦苇の 阅读(453) 评论(0) 推荐(0)

020_统计 13:30 到 14:30 所有访问 apache 服务器的请求有多少个

摘要: 统计 13:30 到 14:30 所有访问 apache 服务器的请求有多少个 #!/bin/bash#awk 使用-F 选项指定文件内容的分隔符是/或者:#条件判断$7:$8 大于等于 13:30,并且要求,$7:$8 小于等于 14:30#最后使用 wc -l 统计这样的数据有多少行,即多少个 阅读全文

posted @ 2019-03-12 09:55 芦苇の 阅读(184) 评论(0) 推荐(0)

019_对 100 以内的所有正整数相加求和(1+2+3+4...+100)

摘要: #!/bin/bash#seq 100 可以快速自动生成 100 个整数sum=0for i in `seq 100`do sum=$[sum+i]doneecho "总和是:$sum" 阅读全文

posted @ 2019-03-12 09:48 芦苇の 阅读(695) 评论(0) 推荐(0)

018_查看有多少远程的 IP 在连接本机(不管是通过 ssh 还是 web 还是 ftp 都统计)

摘要: #!/bin/bash#使用 netstat -atn 可以查看本机所有连接的状态,-a 查看所有,-t 仅显示 tcp 连接的信息,-n 数字格式显示# Local Address(第四列是本机的 IP 和端口信息)#Foreign Address(第五列是远程主机的 IP 和端口信息)#使用 a 阅读全文

posted @ 2019-03-12 09:40 芦苇の 阅读(475) 评论(0) 推荐(0)

016_编写脚本快速克隆 KVM 虚拟机

摘要: #!/bin/bash#本脚本针对 RHEL7.2 或 Centos7.2#本脚本需要提前准备一个 qcow2 格式的虚拟机模板,名称为/var/lib/libvirt/images/.rh7_template 的虚拟机模板#该脚本使用 qemu-img 命令快速创建快照虚拟机#脚本使用 sed 修 阅读全文

posted @ 2019-03-12 09:28 芦苇の 阅读(339) 评论(0) 推荐(0)

015_配置免密登录

摘要: #!/usr/bin/expect vms=( 192.168.0.170 192.168.0.171 192.168.0.172 192.168.0.173 192.168.0.174 ) server="192.168.0.175" server_pwd="123456" client_pwd= 阅读全文

posted @ 2019-03-12 09:07 芦苇の 阅读(377) 评论(0) 推荐(0)

014_编写批量修改扩展名脚本,如批量将 txt 文件修改为 doc 文件

摘要: #!/bin/bash#执行脚本时,需要给脚本添加位置参数 带参for i in "ls *.$1"do #去尾 mv $i ${i%.*}.$2done 阅读全文

posted @ 2019-03-12 09:04 芦苇の 阅读(1035) 评论(0) 推荐(0)

013_使用 user.txt 文件中的人员名单,在计算机中自动创建对应的账户并配置初始密码

摘要: for i in `cat user.txt`do useradd $i echo "123456" | passwd --stdin $idone 阅读全文

posted @ 2019-03-12 08:58 芦苇の 阅读(727) 评论(0) 推荐(0)

012_使用死循环实时显示 eth0 网卡发送的数据包流量

摘要: #!/bin/bash while : do echo '本地网卡 eth0 流量信息如下: ' #grep输出所找整行,awk直接输出第5列 ifconfig eth0 | grep "RX pack" | awk '{print $5}' ifconfig eth0 | grep "TX pac 阅读全文

posted @ 2019-03-12 08:53 芦苇の 阅读(495) 评论(0) 推荐(0)

011_9*9 乘法表(编写 shell 脚本,打印 9*9 乘法表)

摘要: #!/bin/bashfor i in `seq 9`do for j in `seq $i` do echo -n "$i*$j=$[i*j] " done echodone 阅读全文

posted @ 2019-03-12 08:41 芦苇の 阅读(380) 评论(0) 推荐(0)

010_编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态

摘要: 010:编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态(for 版本)#!/bin/bashfor i in {1..254}do ping -c2 -i0.3 -W1 192.168.4.$i &>/dev/null if [ $? –eq 0 ] 阅读全文

posted @ 2019-03-12 08:32 芦苇の 阅读(707) 评论(0) 推荐(0)

09_编写脚本,实现人机<石头,剪刀,布>游戏

摘要: #!/bin/bashgame=(石头 剪刀 布)num=$[RANDOM%3]computer=${game[$num]}#通过随机数获取计算机的出拳#出拳的可能性保存在一个数组中,game[0],game[1],game[2]分别是 3 中不同的可能 echo "请根据下列提示选择您的出拳手势" 阅读全文

posted @ 2019-03-12 08:25 芦苇の 阅读(725) 评论(0) 推荐(0)