Linux 15个常用脚本练习(初级)

(1)用户猜数字

#!/bin/bash

# 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了,
# 猜小了或猜大了,直至用户猜对脚本结束。

# RANDOM 为系统自带的系统变量,值为 0‐32767的随机数
# 使用取余算法将随机数变为 1‐100 的随机数
num=$[RANDOM%100+1]
echo "$num"

# 使用 read 提示用户猜数字
# 使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于),
# ‐lt(小于),‐le(小于等于)

while :
do read -p "计算机生成了一个 1‐100 的随机数,你猜: " cai  if [ $cai -eq $num ]   then     echo "恭喜,猜对了"     exit  elif [ $cai -gt $num ]  then       echo "Oops,猜大了"    else      echo "Oops,猜小了" fi
done


(2)查看有多少远程的 IP 在连接本机

#!/bin/bash

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

# 使用 netstat ‐atn 可以查看本机所有连接的状态,‐a 查看所有,
# -t仅显示 tcp 连接的信息,‐n 数字格式显示
# Local Address(第四列是本机的 IP 和端口信息)
# Foreign Address(第五列是远程主机的 IP 和端口信息)
# 使用 awk 命令仅显示第 5 列数据,再显示第 1 列 IP 地址的信息
# sort 可以按数字大小排序,最后使用 uniq 将多余重复的删除,并统计重复的次数

netstat -atn  |  awk  '{print $5}'  | awk  '{print $1}' | sort -nr  |  uniq -c


(3)helloworld

#!/bin/bash

function example {
echo "Hello world!"
}
example
(4)打印 tomcat 的pid

#!/bin/sh`v1="Hello"
v2="world"
v3=${v1}${v2}
echo $v3pidlist=`ps -ef|grep apache-tomcat-7.0.75|grep -v "grep"|awk '{print $2}'`
echo $pidlist
echo "tomcat Id list :$pidlist"  //显示pid


(5)脚本编写 剪刀 、 石头、布游戏

#!/bin/bashgame=(石头 剪刀 布)
num=$[RANDOM%3]
computer=${game[$sum]}echo "请根据下列提示选择您的出拳手势"
echo " 1. 石头"
echo " 2. 剪刀"
echo " 3. 布 "read -p "请选择 1-3 :" person
case $person in
1)if [ $num -eq 0 ]then echo "平局"elif [ $num -eq 1 ]thenecho "你赢"else echo "计算机赢"
fi;;
2)if [ $num -eq 0 ]thenecho "计算机赢"elif [ $num -eq 1 ] thenecho "平局"else echo "你赢"
fi;;
3)if [ $num -eq 0 ]then  echo "你赢"elif [ $num -eq 1 ]then echo "计算机赢"else echo "平局"
fi;;
*)echo "必须输入1-3 的数字"
esac


(6)九九乘法表

#!/bin/bashfor i in `seq 9`
do for j in `seq $i`do echo -n "$j*$i=$[i*j] "doneecho
done


(7)脚本用源码来安装 memcached 服务器

#!/bin/bash
# 一键部署 memcached # 脚本用源码来安装 memcached 服务器
# 注意:如果软件的下载链接过期了,请更新 memcached 的下载链接
wget http://www.memcached.org/files/memcached-1.5.1.tar.gz
yum -y install gcc
tar -xf  memcached‐1.5.1.tar.gz
cd memcached‐1.5.1
./configure
make
make install


(8)检测本机当前用户是否为超级管理员

#!/bin/bash# 检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不
# 是,则提示您非管理员(使用字串对比版本) 
if [ $USER == "root" ] 
then yum -y install vsftpd
else echo "您不是管理员,没有权限安装软件"
fi


(9)if 运算表达式

#!/bin/bash -xvif [ $1 -eq 2 ] ;thenecho "wo ai wenmin"
elif [ $1 -eq 3 ] ;then echo "wo ai wenxing "
elif [ $1 -eq 4 ] ;then echo "wo de xin "
elif [ $1 -eq 5 ] ;thenecho "wo de ai "
fi


(10)脚本 杀掉 tomcat 进程并重新启动

#!/bin/bash#kill tomcat pidpidlist=`ps -ef|grep apache-tomcat-7.0.75|grep -v "grep"|awk '{print $2}'`  #找到tomcat的PID号echo "tomcat Id list :$pidlist"  //显示pidkill -9 $pidlist  #杀掉改进程echo "KILL $pidlist:" //提示进程以及被杀掉echo "service stop success"echo "start tomcat"cd /opt/apache-tomcat-7.0.75pwd rm -rf work/*cd bin./startup.sh #;tail -f ../logs/catalina.out


(11)打印国际象棋棋盘

#!/bin/bash
# 打印国际象棋棋盘
# 设置两个变量,i 和 j,一个代表行,一个代表列,国际象棋为 8*8 棋盘
# i=1 是代表准备打印第一行棋盘,第 1 行棋盘有灰色和蓝色间隔输出,总共为 8 列
# i=1,j=1 代表第 1 行的第 1 列;i=2,j=3 代表第 2 行的第 3 列
# 棋盘的规律是 i+j 如果是偶数,就打印蓝色色块,如果是奇数就打印灰色色块
# 使用 echo ‐ne 打印色块,并且打印完成色块后不自动换行,在同一行继续输出其他色块
for i in {1..8}
dofor j in {1..8}dosum=$[i+j]if [  $[sum%2] -eq 0 ];thenecho -ne "\033[46m  \033[0m"elseecho -ne "\033[47m  \033[0m"fidoneecho
done

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

#!/bin/bash# 统计当前 Linux 系统中可以登录计算机的账户有多少个
#方法 1:
grep "bash$" /etc/passwd | wc -l
#方法 2:
awk -f : '/bash$/{x++}end{print x}' /etc/passwd


(13)备份 MySQL 表数据

#!/bin/shsource /etc/profile
dbName=mysql
tableName=db
echo [`date +'%Y-%m-%d %H:%M:%S'`]' start loading data...'
mysql -uroot -proot -P3306 ${dbName} -e "LOAD DATA LOCAL INFILE '# /home/wenmin/wenxing.txt' INTO TABLE ${tableName} FIELDS TERMINATED BY ';'"
echo [`date +'%Y-%m-%d %H:%M:%S'`]' end loading data...'
exit
EOF


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

#!/bin/bash# 使用死循环实时显示 eth0 网卡发送的数据包流量 while :
do echo '本地网卡 ens33 流量信息如下:'ifconfig ens33 | grep "RX pack" | awk '{print $5}'ifconfig ens33 | grep "TX pack" | awk '{print $5}'sleep 1
done


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

#!/bin/bash# 编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机
# 状态(for 版本)
for i in {1..254}
do # 每隔0.3秒ping一次,一共ping2次,并以1毫秒为单位设置ping的超时时间ping -c 2 -i 0.3 -W 1 192.168.1.$i &>/dev/nullif [ $? -eq 0 ];thenecho "192.168.1.$i is up"else echo "192.168.1.$i is down"fi
done

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js中函数参数的归一化处理

在 JavaScript 中,函数参数的归一化处理是一种将不同类型或格式的参数转换为统一的标准或格式的过程。这样做的目的是为了提高代码的灵活性、可维护性和可重用性。 以下是一些常见的函数参数归一化处理的方式: 数据类型转换:将不同类型的参数…

软考高级,高项和架构哪个更容易?

软考高级共有5个科目,考试难度都是偏大的。相对而言,信息系统项目管理师的考试难度小于系统架构设计师,不过目前高项是1年1考,架构是1年2考,从这个层面来说,通过架构考试的机会要多一些。 架构&高项考…

RabbitMq——direct交换器和fanout交换器 扇形交换器

direct交换器: Configuration 发送 Bean protected Queue queue(){ Queue queue new Queue(“myQueue”) return queue; } amqpTemplate.convertAndSend("myQueue","这是发送的内…

pytorch_fid计算fid

pip install pytorch-fid from pytorch_fid import fid_score# 准备真实数据分布和生成模型的图像数据 real_images_folder xxx generated_images_folder xxx# 计算FID距离值 fid_value fid_score.calculate_fid_given_paths([real_images_folder, generated_images_folder]…

【测试开发】自动化测试 selenium 篇

目录 一. 什么是自动化测试 二. selenium 1. selenium的工作原理 2. seleniumJava的环境搭建(Chrome浏览器) 三. selenium中常用的API 1. 定位元素 findElement 1.1 css选择语法 1.2 xpath 2. 操作测试对象 2.1 sendKeys-在对象上模拟按键输入 2.2 click-点击对象…

mmap访问内存方式

mmap访问内存方式 请看下面的Java代码,这段程序是取自1brc竞赛的第一名的代码。 public static void main(String[] args) throws IOException, InterruptedException {... ...try (var fileChannel FileChannel.open(java.nio.file.Path.of(FILE), java.nio.fil…

elasticsearch8.12 分词器安装

分词器的主要作用将用户输入的一段文本,按照一定逻辑,分析成多个词语的一种工具 分词器下载地址 analysis-ik Releases infinilabs/analysis-ik GitHub 一个简便 安装方式 安装完成之后 会提示重启,重启es即可 ./bin/elasticsearch-pl…

配置LVS NAT模式

配置LVS NAT模式 环境准备 client1:eth0->192.168.88.10,网关192.168.88.5lvs1: eth0 -> 192.168.88.5;eth1->192.168.99.5web1:eth1->192.168.99.100;网关192.168.99.5web2:eth1->192.168…

基于C语言的“贪吃蛇”游戏设计理念

3.功能描述:本游戏主要实现以下几种功能 图1.游戏功能模块 3.1. 贪吃蛇的控制功能:通过各种条件的判断,实现对游戏蛇的左移、右移、下移、上移、自由移动,贪吃蛇的加长功能。 3.2. 游戏显示更新功能:当贪吃蛇左右移动、…

容器只适用于微服务吗?

容器是一种技术,它将应用及其依赖项打包成一个可移植的单元,以便在不同的计算环境中一致地运行。这种技术确实在微服务架构中得到了广泛应用,因为容器可以帮助实现微服务的快速部署、水平扩展和管理。 然而,容器并不仅限于用于微…

操作系统笔记之进程调用API中的getpid、fork、wait、exec补充

操作系统笔记之进程调用API中的getpid、fork、wait、exec补充 code review! —— 杭州 2024-03-17 夜 文章目录 操作系统笔记之进程调用API中的getpid、fork、wait、exec补充1.getpid()2.fork()3.wait()4.exec()5.通常,exec() 调用与 fork() 调用一起使用&#xff…

Leetcode 3080. Mark Elements on Array by Performing Queries

Leetcode 3080. Mark Elements on Array by Performing Queries 1. 解题思路2. 代码实现 题目链接:3080. Mark Elements on Array by Performing Queries 1. 解题思路 这一题我们只需要按照题意进行一下实现就行了。具体来说的话,我们只需要依序遍历一…

算法笔记p154最大公约数和最小公倍数

目录 最大公约数辗转相除法证明例子代码实现 最小公倍数代码实现 最大公约数 正整数a与b的最大公约数是指a与b的所有公约数中最大的那个公约数,一般用gcd(a, b)表示a和b的最大公约数。 辗转相除法 设a、b均为正整数,则gcd(a, b) gcd(b, a % b)。即被…

【C语言_字符函数和字符串函数_复习篇】

目录 一、字符函数 1.1 字符分类函数 1.2 字符转换函数 二、字符串函数 2.1 strlen函数 2.1.1 strlen函数的使用 2.1.2 strlen函数的模拟实现 2.2 strcpy函数 2.2.1 strcpy函数的使用 2.2.2 strcpy函数的模拟实现 2.3 strcat函数 2.3.1 strcat函数的使用 2.3.2 strcat函数的…

hololens2发布unity设置

生成vs工程再向hololens发布时, Architecture选X64或ARM64都可以成功发布

es索引操作命令

索引操作 index 创建索引 put 方法创建索引 使用 put 创建索引时必须指明文档id,否则报错 # PUT 创建命令 # test1 索引名称 # type1 类型名称,默认为_doc,已经被废弃 # 1 文档id PUT /test1/type1/1 {"name":"zhangsan&…

能不能绕过c去学c++?

目前做工程开发,基本都是c/c混着用的,c/c是同源的,c/是在c的基础上发展起来的,它们之间有些联系和区别: 区别: 1.可用库不同 c基本是系统底层语言,一般系统底层开发用c(例如&…

【leetcode】二叉树的前序遍历➕中序遍历➕后序遍历

大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 1. 二叉树的前序遍历2. 二叉树的中序遍历3. 二叉树的后序遍历 1. 二叉树的前序遍历 点击查看题目 根…

lv17 安防监控项目实战 3

代码目录 框架 our_storage 编译最终生成的目标文件obj 编译生成中间的.o文件 data_global.c 公共资源定义(使用在外extern即可)定义了锁定义了条件变量消息队列id、共享内存id、信号量id及key值发送短信、接收短信的号码向消息队列发送消息的函数&am…

Ollama部署本地大模型

ollama run gemma:2b "菊花为什么是红色的?" 如今 LLM 早已不再等同于昂贵的 GPU,而是可以在大部分消费级计算机上运行推理的应用了——俗称本地大模型。 Ollama 安装十分简单,macOS 直接在官网下载安装包打开运行;Wi…