当前位置: 首页 > news >正文

git 、shell脚本

git

文件版本控制

 安装git

yum -y install git

创建仓库

将文件提交到暂存

git add .

#将暂存区域的文件提交仓库

git commit -m "说明"

#推送到远程仓库

git push

#获取远程仓库的更新

git pull

#克隆远程仓库

git clone

#分支,提高代码的灵活性

#检查分支

git branch

#*所在的行为当前分支

#创建新分支

git branch 新分支名称

#跳转分支

git checkout 分支名称

#在跳转分支的同时建立新分支

git checkout -b 新分支名称

#删除分支

git checkout -d|D 分支名称

#合并分支

#跳转到主合并分支

git checkout a

git merge  a

#合并冲突

手动解决

shell

概念

可以用过shell命令来操作和控制操作系统(是操作系统的外壳)

shell脚本是由shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理

编写一个简单的脚本,并运行

[root@a1 ~]# vim helloworld.sh
[root@a1 ~]# bash helloworld.sh 
hello world!
执行方式

也可以通过以下方式来执行脚本:

安装nginx脚本的编写
vim  nginx.sh

在里面写入内容,复制相应的文件路径

判断是否安装的脚本
#!/bin/bash
rpm -qa|grep nginx
echo $?

文件/目录操作符

[root@shell ~]# touch abc[root@shell ~]# ls -lh abc-rw-r--r--. 1 root root 0 7月  26 11:26 abc[root@shell ~]# [ -e "abc" ][root@shell ~]# echo $?0[root@shell ~]# [ -e "lllll" ][root@shell ~]# echo $?1[root@shell ~]# [ -w "lllll" ][root@shell ~]# echo $?1[root@shell ~]# [ -w "abc" ][root@shell ~]# echo $?0[root@shell ~]# [ -x "abc" ][root@shell ~]# echo $?1[root@shell ~]# ls -l abc-rw-r--r--. 1 root root 0 7月  26 11:26 abc[root@shell ~]# chmod +x abc[root@shell ~]# [ -x "abc" ][root@shell ~]# echo $?0[root@shell ~]# [ -z "abc" ][root@shell ~]# echo $?1[root@shell ~]# 

变量

环境变量

由系统维护,用于设置工作环境

$PWD

$SHELL

$USER

脚本案例
[root@a1 ~]# vim test001.sh
[root@a1 ~]# bash test001.sh 1 2 3 4 5
1
2
3
4
5
[root@a1 ~]# bash test001.sh ni yao gan ma
ni
yao
gan
ma[root@a1 ~]# cat test001.sh 
#!/bin/bashecho $1
echo $2
echo $3
echo $4
echo $5

脚本案例
[root@a1 ~]# vim created.sh
[root@a1 ~]# bash created.sh xx yy
更改用户 xx 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@a1 ~]# cat created.sh 
#!/bin/bashuseradd $1
echo $2|passwd --stdin $1

if条件 ,脚本
[root@a1 ~]# vim munu.sh
[root@a1 ~]# bash munu.sh 
1新增文件 2删除文件 3查找文件 4修改文件
请输入序号选择:3
其他功能正在开发
[root@a1 ~]# bash munu.sh 
1新增文件 2删除文件 3查找文件 4修改文件
请输入序号选择:1
[root@a1 ~]# cat munu.sh 
#!/bin/bashecho "1新增文件 2删除文件 3查找文件 4修改文件"
read -p "请输入序号选择:"  m
if [ $m == 1 ];thentouch aaaaa.txt
elif [ $m == 2 ];thenrm -rf aaaaa.txt
elseecho "其他功能正在开发"
fi

用户输入

read命令

read用来从标准输入中读取数据并赋值给变量

格式

read [-选项] [变量赋值]

[root@a1 ~]# read -p "输入一个数据" s
输入一个数据aabbcc
[root@a1 ~]# echo $s
aabbcc
[root@a1 ~]# read -p "输入一个数据" -s s
输入一个数据[root@a1 ~]# echo $s
weishenm

可以给多个变量赋值
[root@a1 ~]# read -p "3个变量" a b c
3个变量12 18 20
[root@a1 ~]# echo $a
12
[root@a1 ~]# echo $b
18
[root@a1 ~]# echo $c
20

输入密码
[root@a1 ~]# vim register.sh
[root@a1 ~]# bash register.sh 
username:abc
password:abc
更改用户 abc 的密码 。
passwd:所有的身份验证令牌已经成功更新。
账户abc注册成功
[root@a1 ~]# su abc
[abc@a1 root]$ su
密码:
[root@a1 ~]# cat register.sh 
#!/bin/bashread -p "username:" username
read -p "password:" password
useradd $username
echo $password|passwd --stdin $username
if [ $? -eq 0 ];thenecho "账户$username注册成功"
fi

循环语法

[root@a1 ~]# mkdir /abc
[root@a1 ~]# nohup inotifywait -mr /abc/
nohup: 忽略输入并把输出追加到"nohup.out"

脚本案例
[root@a1 ~]# vim city.sh
[root@a1 ~]# bash city.sh 
青岛这是个好地方
上海这是个好地方
泉州这是个好地方
[root@a1 ~]# cat city.sh 
#!/bin/bash
for city in 青岛 上海 泉州
do  echo "$city这是个好地方"
done
脚本案例
[root@a1 ~]# vim ping.sh
[root@a1 ~]# cat ping.sh 
#!/bin/bash
for IP in $(echo 192.168.1.{10..254})
doping -c 2 -i 0.1 $ip &> /dev/nullif [ $? -eq 0 ];thenecho "$ipisup"
fi
done
脚本案例
vim  gushi.sh
床前明月光
疑是地上霜
举头望明月
低头思故乡

awk的使用

[root@shell ~]# awk -F ":" '{print $1}' /etc/passwdrootbindaemonadmlpsyncshutdownhaltmailoperatorgamesftpnobodysystemd-networkdbuspolkitdsshdpostfixchronyuser3user4mysqlhahahaabc

sed

概念

一次处理一行,处理时把待处理的行放到缓冲区,成为”模式空间“。接着sed命令处理缓冲区的

数据,处理完之后把缓冲区的内容送往屏幕展示,这样不断重复直到文件末尾,文件内容并没有

被改变,除非使用重定向存储文件,文件内容会被修改。

语法格式

sed  选项  (定位符) 指令  文件名  (定位符) 指令 --想对文件的哪一步进行操作

选项

-n   屏蔽默认输出

-r   支持扩展正则

练习

   配置一个自动设置静态IP以及关闭seliux服务 关闭防火墙服务 关闭networkmanager,

修改主机名称的脚本,ip和主机名称使用read输入,这个操作只能在root下执行

脚本如下:

[root@shell ~]#vim net.sh# !/bin/bash# 备份cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bakread -p "请输入指定ip地址:" ip# 替换dhcp 为 nonesed -i '/dhcp/s/dhcp/none/g' /etc/sysconfig/network-scripts/ifcfg-ens33# 在文档最后添加5行# IPADDRsed -i '$aIPADDR='"$ip"'' /etc/sysconfig/network-scripts/ifcfg-ens33# NETMASTsed -i '$aNETMASK=255.255.255.0' /etc/sysconfig/network-scripts/ifcfg-ens33# GATEWAYsed -i '$aGATEWAY=10.1.1.2' /etc/sysconfig/network-scripts/ifcfg-ens33# DNS1sed -i '$aDNS1=8.8.8.8' /etc/sysconfig/network-scripts/ifcfg-ens33# DNS2sed -i '$aDNS2=114.114.114.114' /etc/sysconfig/network-scripts/ifcfg-ens33# 修改uuid# 修该主机名称read -p "请输入主机名称" hn
hostnamectl set-hostname $hn# 停用selinuxsetenforce 0
sed -i '/SELINUX=enforcing/cSELINUX=disabled'  /etc/selinux/config# 停用防火墙systemctl stop firewalld
systemctl disable firewalld# 停用NetworkManagesystemctl stop NetworkManager
systemctl disable NetworkManager# 重启网络服务systemctl restart netword

相关文章:

git 、shell脚本

git 文件版本控制 安装git yum -y install git 创建仓库 将文件提交到暂存 git add . #将暂存区域的文件提交仓库 git commit -m "说明" #推送到远程仓库 git push #获取远程仓库的更新 git pull #克隆远程仓库 git clone #分支,提高代码的灵活性 #检查分…...

阿里云服务器 篇六:GitHub镜像网站

文章目录 系列文章搭建镜像网站的2种方式使用 Web 抓取工具 (Spider 技术)使用 Web 代理服务器使用 nginx 搭建GitHub镜像网站基础环境搭建添加对 github.com 的转发配置添加对 raw.githubusercontent.com 的转发配置配置更改注意事项(可选)缓存优化为新增设的二级域名配置DN…...

强化学习学习(三)收敛性证明与DDPG

文章目录 证明收敛? Deep RL with Q-FunctionsDouble Q-Learning理论上的解法实际上的解法 DDPG: Q-Learning with continuous actionsAdvanced tips for Q-Learning 证明收敛? 对于Value迭代:不动点证明的思路 首先定义一个算子 B : B V ma…...

培养前端工程化思维,不要让一行代码毁了整个程序

看《阿丽亚娜 5 号(Ariane 5)火箭爆炸》有感。 1、动手写项目之前,先进行全局性代码逻辑思考,将该做的事情,一些细节,统一建立标准,避免为以后埋雷。 2、避免使用不必要或无意义的代码、注释。…...

电子文件怎么盖章?

电子文件怎么盖章?电子文件盖章是数字化办公中常见的操作,包括盖电子公章和电子骑缝章。以下是针对这两种情况的详细步骤: 一、盖电子公章 方法一:使用专业软件 选择软件:选择一款专业的电子签名或PDF编辑软件&…...

IDEA在编译的时候报Error: java: 找不到符号符号: 变量 log lombok失效问题

错误描述 idea因为lombok的报错: java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled.Your processor is: com.sun.proxy.$Proxy8Lombok supports: sun/apple javac 1.6, ECJ 原因:这是由于Lombok的版本过低的…...

【Python】如何修改元组的值?

一、题目 We have seen that lists are mutable (they can be changed), and tuples are immutable (they cannot be changed). Lets try to understand this with an example. You are given an immutable string, and you want to make chaneges to it. Example >>…...

【安卓】Android Studio简易计算器(实现加减乘除,整数小数运算,正数负数运算)

目录 前言 运算效果 一、创建一个新的项目 二、编写xml文件(计算器显示页面) 三、实现Java运算逻辑 ​编辑 完整代码 xml文件代码: Java文件代码: 注: 前言 随着移动互联网的普及,手机应用程序已…...

一个vue mixin 小案例,实现等比例缩放

mixin.js /** Author: jinjianwei* Date: 2024-07-24 16:17:16* Description: 等比例缩放,屏幕适配 mixin 函数*/// * 默认缩放值 const scale {width: 1,height: 1, } // * 设计稿尺寸(px) const baseWidth 1920 const baseHeight 1080 …...

【数据结构初阶】单链表经典算法题十二道——得道飞升(中篇)

hi,bro—— 目录 5、 链表分割 6、 链表的回文结构 7、 相交链表 8、 环形链表 【思考】 —————————————— DEAD POOL —————————————— 5、 链表分割 /* struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), …...

CTF ssrf 基础入门 (一)

0x01 引言 我发现我其实并不是很明白这个东西,有些微妙,而且记忆中也就记得Gopherus这个工具了,所以重新学习了一下,顺便记录一下吧 0x02 辨别 我们拿到一个题目,他的名字可能就是题目类型,但是也有可能…...

IP地址在后端怎么存才好?

目录 一、地址的区别 二、字符串存取 2.1 IPV4空间大小 2.2 IPV6空间大小 三、整数存取 四、总结 4.1 字符串存取优缺点 4.2 整数存取的优缺点 一、地址的区别 在网络中,IP地址分为IPV4和IPV6,IPV4是一共占32位的,每8位小数点分隔&…...

《通讯世界》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《通讯世界》是不是核心期刊? 答:不是,是知网收录的第一批认定学术期刊。 问:《通讯世界》级别? 答:国家级。主管单位:科学技术部 主办单位:中国科学技…...

go get的原理

1、GOPROXY 可以写在os的环境变量中,也可以写在go的环境变量中 GOPROXYhttps://goproxy.cn,direct 表示先去第一个网址下载,下载不到,就直接下载 也可以配置GOPRIVATE私有仓库,遇到私有仓库中的包,就直接下载 2、go…...

jenkins替换配置文件

1.点击首页的【Manage Jenkins】-【Manage Plugins】,在选项【Available plugins】安装 Config File Provider Plugin ,安装后重启jenkins 2.安装完成后会有这个图标,点进去 3.点击新建,选择自定义,填入要替换的文件…...

C# Web控件与数据感应之 填充 HtmlTable

C# Web控件与数据感应之 填充 HtmlTable 在C#中,特别是在ASP.NET Web Forms应用中,你可能会遇到需要将数据动态填充到HTML表格(HtmlTable)中的场景。这通常涉及到遍历数据源(如数据库查询结果、集合等)&am…...

HAL库源码移植与使用之SPI驱动VS1053音频解码

你可以理解为带着dac adc芯片功能的集成芯片,声音的高低音形成由频率决定,大小声由波峰决定,所以采集时记录时间和电压值就可以确定高低音色和大小声,形成声音波形,再把波形用dac输出给喇叭,让喇叭在对应时…...

RK3568 Linux 平台开发系列讲解(内核入门篇):从内核的角度看外设芯片的驱动

在嵌入式 Linux 开发中,外设芯片的驱动是实现操作系统与硬件之间交互的关键环节。对于 RK3568 这样的处理器平台,理解如何从内核的角度构建和管理外设芯片的驱动程序至关重要。 1. 外设驱动的基础概念 外设驱动(Device Driver)是操作系统与硬件设备之间的桥梁。它负责控…...

初识C++ · AVL树(2)

目录 前言: 1 左右旋 2 右左旋 3 部分细节补充 3.1 单旋和插入 3.2 部分小函数 前言: AVL树作为一种结构,理解树的本身是不大难的,难的在于,树旋转之后的连接问题,写AVL树的代码大部分都是在旋转部分…...

LLM:归一化 总结

一、Batch Normalization 原理 Batch Normalization 是一种用于加速神经网络训练并提高稳定性的技术。它通过在每一层网络的激活值上进行归一化处理,使得每一层的输入分布更加稳定,从而加速训练过程,并且减轻了对参数初始化的依赖。 公式 …...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...