首页 > 系统相关 >git 、shell脚本

git 、shell脚本

时间:2024-07-29 19:54:49浏览次数:16  
标签:脚本 git abc sh echo a1 shell root

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/bash

echo $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/bash
 useradd $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/bash

echo "1新增文件 2删除文件 3查找文件 4修改文件"
read -p "请输入序号选择:"  m
if [ $m == 1 ];then
     touch aaaaa.txt
elif [ $m == 2 ];then
  rm -rf aaaaa.txt
else
    echo "其他功能正在开发"
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/bash
 
read -p "username:" username
read -p "password:" password
useradd $username
echo $password|passwd --stdin $username
if [ $? -eq 0 ];then
  echo "账户$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})
do
        ping -c 2 -i 0.1 $ip &> /dev/null
   if [ $? -eq 0 ];then
      echo "$ipisup"
fi
done
脚本案例
vim  gushi.sh
床前明月光
疑是地上霜
举头望明月
低头思故乡

awk的使用

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

root

bin

daemon

adm

lp

sync

shutdown

halt

mail

operator

games

ftp

nobody

systemd-network

dbus

polkitd

sshd

postfix

chrony

user3

user4

mysql

hahaha

abc

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.bak

read -p "请输入指定ip地址:" ip

# 替换dhcp 为 none

sed -i '/dhcp/s/dhcp/none/g' /etc/sysconfig/network-scripts/ifcfg-ens33

# 在文档最后添加5行

# IPADDR

sed -i '$aIPADDR='"$ip"'' /etc/sysconfig/network-scripts/ifcfg-ens33

# NETMAST

sed -i '$aNETMASK=255.255.255.0' /etc/sysconfig/network-scripts/ifcfg-ens33

# GATEWAY

sed -i '$aGATEWAY=10.1.1.2' /etc/sysconfig/network-scripts/ifcfg-ens33

# DNS1

sed -i '$aDNS1=8.8.8.8' /etc/sysconfig/network-scripts/ifcfg-ens33

# DNS2

sed -i '$aDNS2=114.114.114.114' /etc/sysconfig/network-scripts/ifcfg-ens33

# 修改uuid



# 修该主机名称

read -p "请输入主机名称" hn
hostnamectl set-hostname $hn

# 停用selinux

setenforce 0
sed -i '/SELINUX=enforcing/cSELINUX=disabled'  /etc/selinux/config

# 停用防火墙

systemctl stop firewalld
systemctl disable firewalld

# 停用NetworkManage

systemctl stop NetworkManager
systemctl disable NetworkManager

# 重启网络服务

systemctl restart netword

标签:脚本,git,abc,sh,echo,a1,shell,root
From: https://blog.csdn.net/weixin_70754025/article/details/140706053

相关文章

  • 【Linux中Shell的功能】
    一、Shell概念Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell编程跟JavaScript、php编程一样,只要有一个......
  • linux shell read 按列读取txt文本
    前言全局说明一、说明通常情况下,如果文本里有多列数据,会先读入,然后用grep和awk先拆分成行,在拆分成列。这样费时费力,遇到特殊字符行,还不好处理。在解决别的问题时候,无意发现read有直接按列读取的功能。二、文件2.1存放两列数据的文件文件名:list.txt1libCommonA......
  • 脚本-字体woff做映射表
    fromfontTools.ttLibimportTTFontimportddddocrfromioimportBytesIOfromPILimportImage,ImageDraw,ImageFontdefconvert_cmap_to_image(cmap_code,font_path):img_size=1024img=Image.new("1",(img_size,img_size),255)#创建......
  • Linux shell mktemp -d命令生成临时文件
    前言全局说明一、说明二、mktemp命令2.1创建临时文件mktemp2.1创建临时目录mktemp-d三、命令行示例mktempll/tmp/tmp.fvi5gFbDgr四、sh脚本使用4.1创建tmpfile=$(mktemp)4.2删除rm"$tmpfile"免责声明:本号所涉及内容仅供安全研究与教学使用......
  • shell执行脚本的方法
    执行脚本的方法(1)bash./filename.sh(产生子进程,再运行,使用当前指定的bashshell去运行)(2)./filename.sh(产生子进程,再运行,使用脚本里面指定的shell去运行。使用该种方式执行需要x权限)(3)source./filename.sh(source命令是一个shell内部命令,其......
  • shell
    1、写一个shell脚本,计算1+2+……+n共n个值的和,n值由用户输入2、让用户输入一个文件名,分别输出该文件的所在目录和该文件的扩展名3、判断用户输入的数值是几位数4、统计用户输入的目录文件中文件的个数[root@localhost~]#catsum......
  • 自动数据抓取、GitHub 提交、通知和部署的最佳实践
    我正在计划一个项目来自动执行以下任务:从网站上抓取数据。检查数据是否是新的或更新的。将新数据推送到GitHub存储库。检测到新数据时发送电子邮件通知或其他类型的通知(例如Slack、FCM)。将更新的数据部署到Web应用程序或其他应用程序。鉴于可用的工具和库范围广泛,......
  • 常用Git 管理工具
    图形界面工具GitHubDesktopGitHub开发的一款跨平台的图形化Git工具,支持Windows、macOS和Linux。特点包括简洁的用户界面、易于创建和管理仓库、提交变更、分支管理等。SourceTreeAtlassian提供的一款免费的跨平台Git和Mercurial客户端。支持Windows和......
  • 使用 powershell 或 python 从网页列出公司名称
    我希望使用PowerShell或python仅列出URL中的公司名称:https://www.moneycontrol.com/markets/earnings/results-calendar/?activeDate=2024-07-29下面是我的python脚本用于获取网页的结构:importrequestsfrombs4importBeautifulSoup#URLo......
  • git篇-- Git在项目实操中常见的使用命令--02
    Git是现代软件开发中不可或缺的版本控制工具。它能帮助开发者跟踪项目的所有变更,并与团队成员高效协作。本文将介绍一些在项目实操中常见的Git命令,帮助你更好地管理代码。1.初始化和配置初始化仓库在一个新的项目目录中,初始化Git仓库:gitinit配置用户信息在提交代码......