网站方案组成要素/南京最新消息今天

网站方案组成要素,南京最新消息今天,哪个网站能帮助做路书,怎么免费注册公司一、什么是Shell 1、为什么要学习Shell Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。 对于JavaEE和Python程序员来说,工作的需要。Boss会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个…

一、什么是Shell

1、为什么要学习Shell

Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。

对于JavaEE和Python程序员来说,工作的需要。Boss会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。对于大数据程序员来说,需要编写Shell程序来管理集群。

2、Shell是什么

Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序

用户可以用Shell来启动、挂起、停止甚至是编写一些程序。

3、Shell脚本的执行方式

1.格式要求

以 #!/bin/bash 开头

需要可执行权限

2.常用执行方式

(1)使用脚本的绝对路径或相对路径

首先要赋予想运行的helloword.sh 脚本的+x权限,再执行脚本

(2)sh 脚本

不用赋予脚本+x权限,直接执行即可

二、Shell的变量

1、变量介绍

Linux Shell中的变量分为:系统变量和用户自定义变量。

系统变量:$HOME、$PWD、$SHELL、$USER等等,比如:echo $HOME

显示当前shell中所有变量:set

2、Shell变量的定义

1.基本语法

定义变量 : 变量=值

撤销变量:unset 变量

声明静态变量:readonly 变量。不可unset

2.示例

创建脚本 var.sh

1)定义变量A

2)撤销变量A

3)声明静态的变量B=2,不能unset

4)可把变量提升为全局环境变量,可供其他Shell程序使用

3.Shell变量的定义规则

变量名称可以由字母、数字和下划线组成,但是不能以数字开头。5A=200(x)

等号两侧不能有空格

变量名称一般习惯为大写 ,这是规范

4.将命令的返回值赋给变量

A=`date`,反引号,运行里面的命令,并把结果返回给变量A

A=$(date),等价于反引号

3、设置环境变量

1.基本语法

export 变量名=变量值:将shell变量输出为环境变量/全局变量

source 配置文件:让修改后的配置信息立即生效

echo $变量名:查询环境变量的值

2.示例

1)在/etc/profile文件中定义TOMCAT HOME环境变量

2)查看环境变量TOMCAT HOME的值

3)在另外一个shell程序中使用 TOMCAT HOME

4、设置位置参数变量

1.介绍

当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量

比如 :./myshell.sh 100 200,这个就是一个执行shell的命令行,可以在myshell 脚本中获取到参数信息

2.基本语法

$n:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}

$*:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体

$@:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待

$#:这个变量代表命令行中所有参数的个数

3.示例

编写一个Shell脚本 position.sh ,在脚本中获取到命令行的各个参数信息

5、设置预定义变量

1.基本介绍

Shell设计者预先定义好的变量,可以直接在Shell脚本中使用

2.基本语法

$$:当前进程的进程号(PID)

$!:后台运行的最后一个进程的进程号(PID)

$?:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。

3.示例

在Shell脚本 preVar.sh 中简单使用一个预定义变量

三、运算符

1、基本语法

$((运算式)) 或 $[运算式] 或者 expr m + n

expr m - n

expr \*,/ ,% :乘,除,取余

注:expr运算符间要有空格。如果希望将expr的结果赋给某个变量,使用反引号(``)

2、示例

计算(2+3)*4的值

请求出命令行的两个参数[整数]的和 20 50

四、条件判断

1、基本语法

[ condition ]

注:condition 和中括号之间有空格

非空返回true,可使用$? 验证(0为true,>1 为false)

示例:

[ goose ] :返回true

[ ] :返回false

[ condition ] && echo OK || echo 不OK:条件满足,执行后面的语句

2、常用判断

1.=字符串比较

2.两个整数的比较

  • -lt 小于
  • -le 小于等于 little equal
  • -eq 等于
  • -gt 大于
  • -ge 大于等于
  • -ne 不等于

3.按照文件权限进行判断

  • -r 有读的权限
  • -w 有写的权限
  • -x 有执行的权限

4.按照文件类型进行判断

  • -f 文件存在并且是一个常规的文件
  • -e 文件存在
  • -d 文件存在并是一个目录

3、示例

1."ok" 是否等于 "ok"

#!/bin/bashif [ "ok" = "ok" ]
then	echo "equal"
fi

2.23是否大于等于22

#!/bin/bashif [ "ok" = "ok" ]
then	echo "equal"
fiif [ 23 -ge 22 ] 
then echo "Yes"
fi

3./root/aaa.txt 是否存在

#!/bin/bashif [ "ok" = "ok" ]
then	echo "equal"
fiif [ 23 -ge 22 ] 
then echo "Yes"
fiif [ -f /root/aaa.txt ]
thenecho "存在"
fi

五、流程控制

1、 if语句

1.单分支

#!/bin/bashif [ condition ]
then	echo "输出"
fi

2.多分支

#!/bin/bashif [ condition ]
then	操作elif [ condition ]then 操作
fi

3.示例

输入的参数大于等于60,则输出“及格了”,否则输出“明年再见”

#!/bin/bashif [ $1 -ge 60 ]
then echo "及格了"
elif [ $1 -le 60 ]
then echo "明年见"
fi

2、case语句

1.基本语法

case $变量名 in
"值1")
操作
;;
"值2")
操作
;;
*)
操作 #上述值都不满足,执行这块操作
;;
esac

2.示例

命令参数是1时输出“周一”,2输出“周二”,其他输出”other"

#!/bin/bashcase $1 in
"1")
echo "周一"
;;
"2")
echo "周二"
;;
*)
echo "other"
;;
esac

3、for语句

1.基本语法

语法1

for 变量 in 值1 值2 值3...
do
操作
done

语法2

2.示例

示例1:打印命令行输入的参数

#!/bin/bashfor i in "$*"
do echo "num is $i"
donefor j in "$@"
do echo "num is $j"
done

示例2:从1加到100的值输出显示

#!/bin/bashSUM=0
for(( i=1; i<=100; i++))
doSUM=$[$SUM+$i]
done
echo SUM=$SUM

4、while 循环

1.基本语法

while [ 条件判断式 ] 
do操作
done

注意:while 和 条件判断式的 [ 之间有空格

2.示例

从命令行输入一个数n,统计从1 累加到 n 的值是多少

#!/bin/bash
i=1
SUM=0
while [ $i -le $1 ]
doSUM=$[$SUM+$i]i=$[$i+1]
done
echo SUM=$SUM 

5、read读取控制台输入

1.基本语法

read [选项] [参数]

2.常用选项

-p :指定读取值时的提示符

-t :指定读取值时的等待时间(秒),如果没有在指定的时间内输入,就不再等待

3.参数

变量:指定读取值的变量名

4.示例

(1)读取控制台输入的一个NUM1值

(2)读取控制台输入的一个NUM2值,在10秒内输入

超过10秒后自动退出

六、函数

1、函数介绍

Shell编程和其它编程语言一样,有系统函数,也可以自定义函数。系统函数中,我们这里就介绍两个。

1.系统函数

(1)basename

功能: 返回完整路径最后 / 的部分,常用于获取文件名

基本语法:basename [pathname] [suffix]

basename [string] [suffix]

basename命令会删掉所有的前缀,包括最后一个 “ / ” 字符,然后将字符串显示出来

选项 [suffix]:如果suffix被指定了,basename会将pathname或string中的suffix去掉

示例:返回/home/aaa/test.txt 的 “ test.txt ” 部分

(2)dirname

功能:返回完整路径最后 / 的前面的部分,常用于返回路径部分

基本语法:dirname 文件绝对路径

从给定的包含绝对路径文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录部分)

示例:返回 /home/aaa/test.txt 的 /home/aaa 部分

2.自定义函数

(1)基本语法

[function] funname[()]
{Action;[return int;]
}

调用直接写函数名 : funname [值]

示例:

自定义函数getSum,计算输入两个参数的和

七、综合案例——定时备份数据库

1、要求

每天凌晨 2:30 备份 数据库 goose 到 /data/backup/db

备份开始和备份结束能够给出相应的提示信息

备份后的文件要求以备份时间为文件名,并打包成.tar.gz 的形式,比如:2021-0312 230201.tar.gz

在备份的同时,检查是否有10天前备份的数据库文件,如果有就将其删除。

#!/bin/bash
# 备份目录
BACKUP=/data/backup/db
# 当前时间
DATETIME=$(date +%Y-%m-%d_%H%M%S)
echo $DATETIME# 数据库的地址
HOST=localhost
DB_USR=root
DB_PASSWD=goose000
DATABASE=goose
# 创建备份目录
# 如果不存在就创建,如果存在就直接使用
[ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"# 备份数据库
mysqldump -u${DB_USR} -p${DB_PASSWD} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz# 将文件处理成tar.gz
cd ${BACKUP}
tar -zcvf $DATETIME.tar.gz ${DATETIME}
# 删除对应的备份目录
rm -rf ${BACKUP}/${DATETIME}
# 删除10天前的备份文件
find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "备份数据库 ${DATABASE} 成功"

接着使用crontab -e命令,输入

30 2 * * * /usr/sbin/mysql_db_backup.sh

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

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

相关文章

论文阅读笔记:Deep Unsupervised Learning using Nonequilibrium Thermodynamics

1、来源 论文连接1&#xff1a;http://ganguli-gang.stanford.edu/pdf/DeepUnsupDiffusion.pdf 论文连接2(带appendix)&#xff1a;https://arxiv.org/pdf/1503.03585v7 代码链接&#xff1a;https://github.com/Sohl-Dickstein/Diffusion-Probabilistic-Models 代码的环境配置…

Linux 查看及测试网络命令

使用 ifconfig 命令查看网络接口地址 查看指定的网络接口信息 执行 ifconfig ens33 命令可以只查看网卡 ens33 的配置信息

ABAP语言的动态编程(4) - 综合案例:管理费用明细表

本篇来实现一个综合案例&#xff1a;管理费用明细表。报表在实际项目中&#xff0c;也有一定的参考意义&#xff0c;一方面展示类似的报表&#xff0c;比如管理费用、研发费用等费用的明细&#xff0c;使用业务比较习惯的展示格式&#xff1b;另一方面正好综合运用前面学习的动…

【Redis】Redis的数据删除(过期)策略,数据淘汰策略。

如果问到&#xff1a;假如Redis的key过期之后&#xff0c;会立即删除吗&#xff1f; 其实就是想问数据删除(过期)策略。 如果面试官问到&#xff1a;如果缓存过多&#xff0c;内存是有限的&#xff0c;内存被占满了怎么办&#xff1f; 其实就是问&#xff1a;数据的淘汰策略。…

Linux配置yum仓库,服务控制,防火墙

一、yum仓库 1.在安装软件时&#xff0c;首先第一步就是要考虑软件的版本的问题&#xff01; 2.软件的安装&#xff1a;最安全可靠的方法就是去软件对应的官网上查看安装手册&#xff08;包括的软件的下载&#xff09; 红帽系软件安装的常见的3种方式 &#xff08;1&#x…

设计模式(创建型)-抽象工厂模式

摘要 在软件开发的复杂世界中,设计模式作为解决常见问题的最佳实践方案,一直扮演着至关重要的角色。抽象工厂模式,作为一种强大的创建型设计模式,在处理创建一系列或相关依赖对象的场景时,展现出了独特的优势和灵活性。它通过提供一个创建对象的接口,让开发者能够在不指定…

【JavaEE】-- SpringBoot快速上手

文章目录 1. Maven1.1 什么是Maven1.2 为什么要学Maven1.3 创建一个Maven项目1.4 Maven核心功能1.4.1 项目创建1.4.2 依赖管理1.4.3 Maven Help插件 1.5 Maven仓库1.5.1 本地仓库1.5.2 中央仓库1.5.3 私有服务器&#xff08;私服&#xff09; 1.6 Maven设置国内源1.6.1 配置当前…

TCP/IP 协议精讲-精华总结版本

序言 本文旨在介绍一下TCP/IP涉及得所有基础知识&#xff0c;为大家从宏观上俯瞰TCP/IP提供一个基石&#xff0c;文档属于《TCP/IP图解&#xff08;第五版&#xff09;》的精简版本。 专业术语 缩写 全称 WAN Wide area network广域网 LAN Local area network局域网 TC…

C语言——结构体、联合、枚举

C语言中自定义类型 结构体结构体变量的创建和初始化结构体传参结构体内存对齐(如何存储) 联合体(共用体)联合体创建和初始化联合体大小(如何存储) 枚举类型枚举类型创建枚举类型初始化枚举的优点(相较于define) 前言 C语言中有内置类型和自定义类型&#xff0c;内置类型就像int…

【Linux操作系统——学习笔记二】Linux简单导航命令操作

一、前言 学习Linux&#xff0c;本质上是学习在命令行下熟练使用Linux的各类命令。 命令行&#xff1a;是一种通过输入命令和参数与计算机系统进行交互的方式&#xff0c;可以使用各种字符化命令对系统发出操作指令&#xff0c;打开Linux终端&#xff0c;进入命令行界面。 …

新安装的cursor安装不了插件

我安装的cursor版本0.47.5 直接说解决办法 找到安装路径cursor\resources\app下的product.json 修改https://marketplace.cursorapi.com为https://marketplace.visualstudio.com

HTML5扫雷游戏开发实战

HTML5扫雷游戏开发实战 这里写目录标题 HTML5扫雷游戏开发实战项目介绍技术栈项目架构1. 游戏界面设计2. 核心类设计 核心功能实现1. 游戏初始化2. 地雷布置算法3. 数字计算逻辑4. 扫雷功能实现 性能优化1. DOM操作优化2. 算法优化 项目亮点技术难点突破1. 首次点击保护2. 连锁…

Qt之自定义界面组件 一

通过qt中的painter绘图事件绘制一个电池电量图的变化。效果如下图 创建一个基于界面widget工程&#xff0c;在wdiget界面添加一个widget界面,将添加的widget界面的类提升为Tbattery.在Tbattery类中重写painEvent电池电量代码 文件目录结构 主要部分代码 //Tbattery.cpp #inc…

LeRobot源码剖析——对机器人各个动作策略的统一封装:包含ALOHA ACT、Diffusion Policy、VLA模型π0

前言 过去2年多的深入超过此前7年&#xff0c;全靠夜以继日的勤奋&#xff0c;一天当两天用&#xff0c;抠论文 抠代码 和大模型及具身同事讨论&#xff0c;是目前日常 而具身库里&#xff0c;idp3、π0、lerobot值得反复研究&#xff0c;故&#xff0c;近期我一直在抠π0及l…

数据结构篇——线索二叉树

一、引入 遍历二叉树是按一定规则将二叉树结点排成线性序列&#xff0c;得到先序、中序或后序序列&#xff0c;本质是对非线性结构线性化&#xff0c;使结点&#xff08;除首尾&#xff09;在线性序列中有唯一前驱和后继&#xff1b;但以二叉链表作存储结构时&#xff0c;只能获…

汽车保养记录用什么软件记录,汽车维修记录查询系统,佳易王汽车保养维护服务记录查询管理系统操作教程

一、概述 本实例以佳易王汽车保养维护服务记录查询管理系统为例说明&#xff0c;其他版本可参考本实例。试用版软件资源可到文章最后了解&#xff0c;下载的文件为压缩包文件&#xff0c;请使用免费版的解压工具解压即可试用。 软件特点&#xff1a;1、功能实用&#xff0c;操…

Python IP解析器 ip2region使用

说明&#xff1a;最近需要在python项目内使用IP定位所在城市的需求&#xff0c;没有采用向外部ISP服务商API请求获取信息的方案&#xff0c;则翻了翻&#xff0c;在搞Java时很多的方案&#xff0c;在Python端反而可选择范围很小。 # 示例查询 ips ["106.38.188.214"…

python开发订单查询功能(flask+orm bee)

1. 搭建python环境。 可以参考其它文档。 此处python使用 3.12 IDE随意&#xff0c;PyCharm 或 Eclipse PyDev也可以。 2. Flask 2.1 安装Flask pip install Flask 2.2 一个最简单的flask实例 创建一个工程&#xff0c; 新建一个 main.py文件&#xff0c; 输入以下内容…

哈尔滨服务器租用托管流程

哈尔滨服务器租用托管流程可分为三个阶段实施&#xff0c;具体操作如下&#xff1a; 一、前期准备阶段 业务需求评估 明确计算资源需求&#xff1a;CPU核心数/线程数、内存容量、存储类型(HDD/SSD/NVMe)及容量、带宽标准(独享/共享) 确定网络架构要求&#xff1a;多线接入、国际…

音频大语言模型可作为描述性语音质量评价器

论文《AUDIO LARGE LANGUAGE MODELS CAN BE DESCRIPTIVE SPEECH QUALITY EVALUATORS》学习 推动多模态代理从"能听"到"懂好坏"的进化 摘要&#xff1a; . 研究背景与问题 核心内容&#xff1a;现有音频大语言模型缺乏对输入语音质量的感知能力&#xff…