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 是一种用于加速神经网络训练并提高稳定性的技术。它通过在每一层网络的激活值上进行归一化处理,使得每一层的输入分布更加稳定,从而加速训练过程,并且减轻了对参数初始化的依赖。 公式 …...
为什么92%的Polars新手在join时OOM?揭秘2.0新版streaming引擎的5个关键启用条件
第一章:Polars 2.0 大规模数据清洗技巧 面试题汇总Polars 2.0 引入了更严格的惰性执行模型、增强的字符串/时间解析能力,以及对空值传播行为的统一语义,使其在高频面试场景中成为考察候选人工程化数据处理能力的关键工具。以下为高频面试题及…...
【stm32_2.1】【快速入门】自举模式、Flash闪存、LED点灯——对二极管PN结解析
目录 当前MCU概述 固化程序到单片机 自举模式 自举配置 Flash闪存 二极管的原理 当前MCU概述 MCU名称stm32F407ZET6处理器主频168MHz 闪存容量 512KB静态随机访问存储器SRAM192KBMCU引脚数量144pin 固化程序到单片机 写好的程序要固化到单片机,就必须学习怎…...
DDR5信号完整性解析:JESD79-5标准下的AC/DC输入测量关键指标
1. DDR5信号完整性的核心挑战 DDR5作为新一代内存标准,将数据传输速率推向了前所未有的高度。但随之而来的信号完整性问题,却让不少硬件工程师头疼不已。想象一下,当数据速率突破6400MT/s时,信号在传输线上就像是在走钢丝…...
Stable Diffusion Lora训练避坑指南:为什么你的模型总是‘丑’?
Stable Diffusion LoRA训练实战:从“翻车”到精通的避坑手册 每次看到别人分享的精致LoRA模型,再看看自己训练出的"克苏鲁风格"作品,是不是有种砸键盘的冲动?别急着放弃——这可能是你训练流程中几个关键环节出了问题。…...
Windows下OpenClaw安装指南:一键对接nanobot超轻量镜像
Windows下OpenClaw安装指南:一键对接nanobot超轻量镜像 1. 为什么选择OpenClaw nanobot组合 作为一个长期在Windows环境下折腾自动化工具的技术爱好者,我一直在寻找一个既轻量又强大的本地AI助手方案。直到遇到OpenClaw和nanobot的组合,才…...
避坑指南:用conda一键搞定gymnasium[box2d]安装(附常见错误解决方案)
Conda环境下的gymnasium[box2d]高效安装与疑难排解全攻略 强化学习实践者常会遇到一个令人头疼的问题:在Windows系统上安装gymnasium[box2d]时,总是遭遇各种编译错误和依赖问题。本文将带你彻底解决这个痛点,通过conda环境管理工具࿰…...
Windows下用C语言实现控制台鼠标交互:从获取坐标到点击响应全流程
Windows控制台鼠标交互开发实战:C语言实现精准坐标捕获与事件响应 引言:当命令行遇上图形交互 在大多数开发者印象中,控制台程序总是与键盘输入绑定在一起——那个闪烁的光标等待着用户键入命令,然后返回几行单调的文字输出。但Wi…...
CentOS7系统维护终止后YUM源失效的解决方案
1. CentOS7维护终止带来的YUM源危机 去年夏天我给客户部署的CentOS7服务器突然无法安装新软件,屏幕上不断弹出"无法解析主机"的错误。这才意识到官方已经停止维护,默认的YUM源就像突然关门的超市,所有货架都空了。对于仍在使用Cent…...
【技术演进】从GPT-1到GPT-4:大语言模型的核心突破与演进图谱
1. 从GPT-1到GPT-4:技术演进的起点与飞跃 2018年诞生的GPT-1就像刚学会走路的孩子——它能理解简单的文本指令,但经常答非所问。当时这个仅有1.17亿参数的模型,采用了最基础的Transformer解码器架构,通过"预测下一个词"…...
5大维度解析Mac Mouse Fix:从工具到体验的蜕变之旅
5大维度解析Mac Mouse Fix:从工具到体验的蜕变之旅 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix Mac Mouse Fix是一款让普通鼠标在macOS系统上…...
