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

【Linux】Shell编程

Shell编程

目录

  • Shell编程
    • 1.shell基础
      • 1.输入重定向 & 输出重定向
      • 2.管道
      • 3.特殊字符
        • (3.1)通配符
        • (3.2)引号
        • (3.3)注释符(#)
      • 4.别名
      • 5.命令历史`history`
    • 2.Shell脚本
      • Shell脚本的执行方式
        • (1)为脚本文件加上可执行权限,然后在命令行直接输入shell脚本文件名执行。
        • (2)sh shell脚本名
        • (3). shell脚本名
    • 3.shell变量
      • 1.用户自定义变量
        • (1.1)定义
        • (1.2)清除变量
      • 2. 环境变量
        • (2.1)常用环境变量
        • (2.2)查看环境变量
      • 3. 位置变量
      • 4.特殊变量
    • 4.shell编程基础
      • 1.shell脚本的输入/输出
        • (4.1)输入命令
        • (4.2)输出命令
        • (4.3)export命令
          • export的语法:
      • 2.shell的逻辑运算
        • (2.1)条件测试
        • (2.2)逻辑运算
      • 3.shell的算术运算
      • (1)使用expr命令
      • (2)使用shell扩展$((expression))
      • (3) let命令
    • 5.shell的控制结构
      • 1.if语句
      • 2.elif语句
      • 3.case语句
      • 4.for语句
      • 5.while语句 & until语句
      • 6.break和continue语句
        • (1) break命令
        • (2) continue命令
    • 6.shell函数
      • 1.函数定义
      • 2 函数调用
      • 3.带参数的shell函数如何实现
  • 参考

1.shell基础

1.输入重定向 & 输出重定向

输入重定向 : command [参数] < 文件名
输出重定向 : command [参数] > 文件名

输出重定向追加 : command [参数] >> 文件名
在源文件的内容后面追加

2.管道

Shell使用管道将一个命令的输出直接作为另一个命令的输入
通过使用管道符 ‘|’ 来建立一个管道:
command_a [参数] | command_b [参数]

3.特殊字符

(3.1)通配符

通配符用于模式匹配,如文件名匹配、路径名搜索、字符串查找等。

  • *代表任何字符串(包括0个)
  • ?代表任何单个字符
  • [] 代表指定的一个字符范围,只要文件名中 [] 位置处打字符在 [] 中指定的范围之内,那么这个文件名就与这个模式串匹配。
(3.2)引号
  • 单引号('): 由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后也会失去原有意义,而只作为普通字符解释。
  • 双引号("): 由双引号括起来的字符,除“$”、“\”、“’”、和“””这几个字符仍是特殊字符并保留其特殊功能外,其余字符作为普通字符对待。
  • 反引号(`): 反引号(`)括起来的字符串被shell解释为命令,在执行时,shell首先执行该命令,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。
string = "current directory is `pwd`"
(3.3)注释符(#)

4.别名

(4.1)命令别名通常是其他命令缩写,用来减少键盘输入。命令格式为:
alias new-name = 'original-command'

(4.2)取消别名:
unalias new-name

(4.3)不加参数的alias命令执行结果将显示当前系统中定义的所有命令别名

5.命令历史history

(5.1)通过history命令可以对当前系统中执行过的所有shell命令进行显示

(5.2)若想重复执行命令历史中指定的命令,可使用如下格式:

!命令编号

(5.3)环境变量HISTSIZE的值保存历史命令记录的总行数,该值的范围正常情况下是100~1000,当从shell中退出时,最近执行的命令将保存在HISTFILE变量指定的文件中。

HISTSIZE和HISTFILESIZE的区别:

  • HISTFILESIZE: 定义了在 .bash_history 中保存命令的记录总数.
  • HISTSIZE: 定义了 history 命令输出的记录数.

2.Shell脚本

Shell脚本是用shell命令编写的文件,也称为shell script。与结构化程序不同,shell不需要编译成目标程序,也不需要链接成可执行的目标码,shell是按行一条接着一条地解释并执行shell脚本中的命令。

Shell脚本的执行方式

  • (1)为脚本文件加上可执行权限,然后在命令行直接输入shell脚本文件名执行。
chomd u+x file_name
./filename
  • (2)sh shell脚本名
sh filename
  • (3). shell脚本名
. filename

3.shell变量

在shell脚本中也可以使用变量,一个变量就是内存中被命名的一块存储空间。

  • 一个Shell变量的名字可以包含数字,字母和下划线,变量名的开头只准许是字母和下划线。变量名中的字母是大小
    写敏感的
  • 变量名在理论上的长度没有限制。
  • 在shell编程中可以使用四种变量:用户自定义变量、环境变量、位置变量和特殊变量。

1.用户自定义变量

(1.1)定义

注意:如果字符串里包含空格,就必须用引号把它们括起来。还要注意在等号两边不能有空格。
无论何时想要获取变量内容,必须在它前面加$字符。

var_name=hello
echo $var_name
(1.2)清除变量

设置的变量不需要时可以清除,清除变量格式如下:

unset variable-name

2. 环境变量

  • 当一个shell脚本程序开始执行时,一些变量会根据环境设置中的值进行初始化,这就是环境变量
  • 它决定了用户的工作环境,通常用大写字母作为变量名,以便把它们和用户在脚本程序里定义的变量区分开来。
  • 环境变量的值在系统的配置文件中设置,用户可对其进行修改
(2.1)常用环境变量

在这里插入图片描述

(2.2)查看环境变量
env

3. 位置变量

如果脚本程序在执行时带有参数,就会创建一些额外的变量,这些额外的变量因跟变量所在命令行位置有关,因此被称为位置变量或位置参数。

  • shell提供的位置变量有$0、​$1、​$2、$3、$4、$5、$6、$7、$8、
    $9。

  • 这10个位置变量在shell脚本执行时用于存放shell脚本名及参数。
    其中位置变量**$0存放脚本名**,$1、$2、$3、$4、$5、$6、$7、$8、$9存放从左至右的命令行上的参数。

  • 当命令行上命令参数超过9个时,shell提供了shift命令可以把所有
    参数变量左移一个位置,使$2变成$1,$3变成$2,依此类推。

    • 使用格式如下:shift [n]
    • 其中n表示向左移动参数的个数,默认值为1。

4.特殊变量

shell中有一些变量是系统定义的,有特殊的含义,变量值由系统指定,被称之为特殊变量:

  • $#:表示传递给脚本的实际参数个数
  • $$:当前shell脚本的进程号
  • $*:位置参数的值,各个参数之间用环境变量IFS中定义的字
    符分隔开。
  • $@:也表示位置参数的值,它不使用IFS环境变量,所以当IFS为空时,参数值不会结合在一起。
  • $!:上一个后台命令的进程号。
  • $?:执行最后一条命令的退出状态。

4.shell编程基础

1.shell脚本的输入/输出

(4.1)输入命令
read var
输入的内容...
echo $var
输出 输入的内容
(4.2)输出命令
  • echo默认情况下是换行标准输出语句。
  • echo输出多个空格时必须用单引号括起
(4.3)export命令

export命令可将在shell脚本中定义的变量导出到子shell中,并使之在子shell中有效。

export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。

  • export命令可用于显示或设置环境变量。
  • export命令的效果仅限于当前登录终端。
export的语法:
export [-fnp] [变量名]=[变量设置值]

参数说明:

  • -f:代表[变量名称]中为函数名称。
  • -n:删除指定的变量;实际未删除,只是不会输出到后续指令的执行环境中。
  • -p:显示所有的shell赋予子程序的环境变量。

实例1:显示当前所有的环境变量

$ export -p

实例2:设置环境变量

$ export PATH=$PATH:/home/dabai/test/bin

2.shell的逻辑运算

所有程序设计语言的基础是对条件进行测试判断,并根据测试结果采取不同的操作

(2.1)条件测试

两种条件测试命令,语法格式如下:

  • test 条件表达式
  • [ 条件表达式 ]

注意:使用第二种方法进行条件测试时,必须在[ ]前后保留空格,否则shell提示error。

三种测试类型:

  • 字符串比较

在这里插入图片描述

  • 算术比较
    在这里插入图片描述

  • 文件条件测试
    在这里插入图片描述

(2.2)逻辑运算

在进行条件判断时,shell提供了复杂的逻辑运算,分别是:AND运算和OR运算

  • AND运算,运算符为$$,语法格式为:statement1 && statement2 && statement3
  • OR运算,OR允许持续执行一系列命令直到有一条命令成功为止,其后的命令将不再被执行。运算符为:||

3.shell的算术运算

bash提供了3种方法对数值数据进行算术运算:

  • (1)使用expr命令
  • (2)使用shell扩展$((expression))
  • (3)使用let命令

(1)使用expr命令

expr命令将它的参数当作一个表达式来求值。语法格式:

expr experssion

注意:在使用expr时,运算符前后要有空格,且乘法要用
“\”转义,即“*”的形式。

(2)使用shell扩展$((expression))

该命令用于计算一个expression并返回它的值。

a=2 b=3
echo "the result of a+b is $((a+b))"

(3) let命令

用来求算术表达式的值,如果最后表达式的值为0,let命令返回1;否则返回0。语法格式为:

let experssion

注意:使用let命令时,变量前的$不是必须的,乘法也
不需转义使用

5.shell的控制结构

1.if语句

if condition
thenstatements
elsestatements
fi
if condition ; thenif condition ; thenif condition ; thenstatementsfifi
fi
if condition1 ; thenstatements
elif condition2 ; thenstatements
elif condition3 ; thenstatements……
elsestatements
fi

2.elif语句

if condition1
thenstatements
elif condition2
thenstatements
elif condition3
thenstatements……
elsestatements
fi

3.case语句

case variable inpattern1) statements;;pattern2) statements;;……patternn) statements;;*) statements;;
esac

实例(根据数字输出星期几):

#!/bin/bash
echo "please enter the number of the week:"
read number
case $number in
1) echo "Monday";;
2) echo "Tuesday";;
3) echo "Wednsday";;
4) echo "Thursday";;
5) echo "Friday";;
6) echo "saturday";;
7) echo "Sunday";;
*) echo "your enter must be in 1-7.";;
esac
  • case支持合并匹配模式,即在每一个模式中,可以使用通配符逻辑符号
#!/bin/bash
echo " abc is the user's name? please answer yes or no"
read name
case "$name" in
y|Y|yes|YES) echo "hello abc!";;
n*|N*) echo "abc isn't the user's name?";;
*) echo "sorry,your input isn't recognized.";;
esac
exit 0
  • 在case结构中,每个分支模式可以执行多条命令
#!/bin/bash
echo " abc is the user's name? please answer yes or no"
read name
case "$name" iny|Y|yes|YES)echo "hello abc!"echo "yes!";;n*|N*)echo "abc isn't the user's name?"echo "no!";;*) echo "sorry,your input isn't recognized."echo "please answer yes or no"exit 1;;
esac
exit 0

4.for语句

for variable in values
dostatements
done

5.while语句 & until语句

while condition 
dostatements
done

until语句与while语句一样,都是循环语句,但处理方式正好相反,即当判断条件为真时,循环停止:

until condition
dostatements
done

6.break和continue语句

和C语言基本一致。

(1) break命令

break命令的功能是在控制条件未满足之前,跳出for、while或until循环。

(2) continue命令

使for、while或until循环跳到下一次循环继续执行,循环变量取循环列表中的下一个值。

6.shell函数

1.函数定义

语法格式:

function_name ( ) {statements
}

2 函数调用

通常将函数看成是脚本中的一段代码,在使用函数前必须先定义该函数,使用时利用函数名直接调用。调用也和编程语言类似。

3.带参数的shell函数如何实现

  • 1.在shell中,向函数传递参数是使用位置参数来实现的。
  • 2.指定位置参数的值除了在脚本运行时传入位置参数外,还可通过内置命令set命令给脚本指定位置参数,一旦使用set设置了传入参数的值,脚本将忽略运行时传入的位置参数,实际上是被set命令重置了位置参数的值。

使用 set 命令修改位置参数(即脚本参数 $1$2 等)。例如:

set -- arg1 arg2 arg3
或者
set arg1 arg2 arg3

$1 的值将是 “arg1″,$2 的值将是 “arg2″,依此类推。

参考

  1. 【export】Linux中export命令介绍,三种方法设置环境变量
  2. shell编程之带参数的函数
  3. Linux set命令详解(Linux修改变量值的set命令)

相关文章:

【Linux】Shell编程

Shell编程 目录 Shell编程1.shell基础1.输入重定向 & 输出重定向2.管道3.特殊字符(3.1)通配符(3.2)引号(3.3)注释符(#) 4.别名5.命令历史history 2.Shell脚本Shell脚本的执行方式(1)为脚本文件加上可执行权限,然后在命令行直接输入shell脚本文件名执行。(2)sh shell脚本名(…...

斯巴鲁Subaru EDI需求分析

斯巴鲁Subaru是日本运输集团斯巴鲁公司&#xff08;前身为富士重工&#xff09;的汽车制造部门&#xff0c;以性能而闻名&#xff0c;曾赢得 3 次世界拉力锦标赛和 10 次澳大利亚拉力锦标赛。 斯巴鲁Subaru EDI 需求分析 企业与斯巴鲁Subaru建立EDI连接&#xff0c;首先需要确…...

golang 集成sentry:PostgreSQL

本文介绍通过 pgx库集成sentry&#xff0c; pgx 特点是速度快&#xff0c;可以完全控制&#xff0c;并且支持所有 postgres 数据类型。 pgx地址&#xff1a; https://github.com/jackc/pgx 最简单的接入方式是自定义一个logger&#xff0c; 然后注入到pgx&#xff0c; 完整示…...

ubuntu20.04 安装mysql(8.x)

安装mysql命令 sudo apt-get install mysql-server安装完毕后&#xff0c;立即初始化密码 sudo mysql -u root # 初次进入终端无需密码ALTER USER rootlocalhost IDENTIFIED WITH caching_sha2_password BY yourpasswd; # 设置本地root密码设置mysql远程登录 设置远程登录账…...

ChatGPT升级至GPT-4 Turbo:性能升级同时更为经济

ChatGPT升级至GPT-4 Turbo&#xff1a;性能升级同时更为经济 随着技术的进步&#xff0c;ChatGPT迎来了其最新的迭代版本——GPT-4 Turbo。这一最新版本不仅在性能上得到了显著提升&#xff0c;而且在成本效益上也更加引人注目。 性能提升 GPT-4 Turbo带来了诸多改进&#x…...

Android 粒子喷泉动效

一、前言&#xff1a; 在学习open gl es实现动效的时候&#xff0c;打算回顾了一下用普通的2D坐标系实现粒子效果和 open gl 3d 坐标系的区别&#xff0c;以及难易程度&#xff0c;因此本篇以Canvas 2D坐标系实现了一个简单的demo。 粒子动效原理&#xff1a; 粒子动效本质上…...

fast.ai 深度学习笔记(一)

深度学习 2&#xff1a;第 1 部分第 1 课 原文&#xff1a;medium.com/hiromi_suenaga/deep-learning-2-part-1-lesson-1-602f73869197 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 来自 fast.ai 课程的个人笔记。随着我继续复习课程以“真正”理解它&#xff0c;这…...

【机器学习】Ubuntu系统下CUDA驱动卸载及重装

目录 背景 驱动卸载 驱动安装 CUDA驱动安装 安装nvidia-smi 背景 这里包含显卡驱动和CUDA驱动&#xff0c;在如下场景下&#xff0c;我们需要卸载显卡驱动并重新安装。 在某些情况下需要对显卡驱动进行升级某些情况下&#xff08;如重启&#xff0c;或者调整系统配置等&a…...

相机图像质量研究(8)常见问题总结:光学结构对成像的影响--工厂调焦

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…...

【MySQL】数据库基础 -- 详解

一、什么是数据库 存储数据用文件就可以了&#xff0c;为什么还要弄个数据库? 一般的文件确实提供了数据的存储功能&#xff0c;但是文件并没有提供非常好的数据&#xff08;内容&#xff09;的管理能力&#xff08;用户角度&#xff09;。 文件保存数据有以下几个缺点&…...

零基础学Python之整合MySQL

Python 标准数据库接口为 Python DB-API&#xff0c;Python DB-API为开发人员提供了数据库应用编程接口。 不同的数据库你需要下载不同的DB API模块&#xff0c;例如你需要访问Oracle数据库和Mysql数据&#xff0c;你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范. 它…...

股票均线的使用方法和实战技术,看涨看空的均线形态与案例教学

一、教程描述 本套教程讲解了14种均线的特殊形态&#xff0c;通过直观图形以及大量案例的教学&#xff0c;将深奥、繁琐的均线变得生动与具体&#xff0c;广大投资者在认真学习以后&#xff0c;可以学会均线的使用方法&#xff0c;掌握最强的均线应用实战技术。本套教程不仅适…...

服务器被黑,安装Linux RootKit木马

前言 疫情还没有结束&#xff0c;放假只能猫家里继续分析和研究最新的攻击技术和样本了&#xff0c;正好前段时间群里有人说服务器被黑&#xff0c;然后扔了个样本在群里&#xff0c;今天咱就拿这个样本开刀&#xff0c;给大家研究一下这个样本究竟是个啥&#xff0c;顺便也给…...

【数据结构与算法】【腾讯阿里链表面试题】算法题--链表易懂版讲解

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《Spring 狂野之旅&#xff1a;底层原理高级进阶》 &#x1f680…...

3d渲染100农场如何使用?渲染100邀请码1a12

3d渲染农场通常用于电影、动画或视觉效果的渲染&#xff0c;本文以广受好评的渲染100农场为例&#xff0c;来讲解它的使用方法。 1、注册账号 前往渲染100官网(http://www.xuanran100.com/?ycode1a12)注册账号&#xff0c; 新用户注册记得填邀请码1a12&#xff0c;有30元大礼…...

【数据结构和算法】--- 基于c语言排序算法的实现(2)

目录 一、交换排序1.1 冒泡排序1.2 快速排序1.2.1 hoare法1.2.2 挖坑法1.2.3 前后指针法 1.3 快速排序优化1.3.1 三数取中法选key1.3.2 递归到小的子区间使用插入排序 1.4 快排非递归版 二、归并排序2.1 归并排序2.1.1 递归版2.1.2 非递归版 一、交换排序 基本思想&#xff1a…...

ORACLE的 软 软 软 解析!

在海鲨数据库架构师精英群里,有位朋友说ORACLE 有 软软软解析. 就是把执行计划缓存在客户端里,从而避免去服务端找执行计划. 他给了个设置方法, Weblogic console->datasource->connectionPool Statement Cache Type >LRU Statement Cache Size100 CURSOR_NUMBER …...

【模板】k 短路 / [SDOI2010] 魔法猪学院

题目背景 注&#xff1a;对于 k k k 短路问题&#xff0c;A* 算法的最坏时间复杂度是 O ( n k log ⁡ n ) O(nk \log n) O(nklogn) 的。虽然 A* 算法可以通过本题原版数据&#xff0c;但可以构造数据&#xff0c;使得 A* 算法在原题的数据范围内无法通过。事实上&#xff0c…...

【Make编译控制 08】CMake动静态库

目录 一、编译动静态库 二、链接静态库 三、链接动态库 前情提示&#xff1a;【Make编译控制 07】CMake常用命令-CSDN博客 有些时候我们编写的源代码并不需要将他们编译生成可执行程序&#xff0c;而是生成一些静态库或动态库提供给第三方使用&#xff0c;所以我们需要用到…...

05 06 Verilog基础语法与应用讲解

05. 1. 位操作 计数器实验升级&#xff0c;设计8个LED灯以每个0.5s的速率循环闪烁&#xff08;跑马灯&#xff09; 1.1 方法1&#xff1a;使用移位操作符<<来控制led灯的循环亮灭 设计代码 Verilog中&#xff0c;判断操作的时候不加位宽限定是可以的&#xff0c;比如i…...

css2复合选择器

一.后代&#xff08;包含&#xff09;选择器&#xff08;一样的标签可以用class命名以分别&#xff09; 空格表示 全部后代 应用 二.子类选择器 >表示 只要子不要孙 应用 三.并集选择器 &#xff0c;表示 代表和 一般竖着写 应用 四.伪类选择器&#xff08;包括伪链接…...

新版MQL语言程序设计:键盘快捷键交易的设计与实现

文章目录 一、什么是快捷键交易二、使用快捷键交易的好处三、键盘快捷键交易程序设计思路四、键盘快捷键交易程序具体实现1.界面设计2.键盘交易事件机制的代码实现 一、什么是快捷键交易 操盘中按快捷键交易是指在股票或期货交易中&#xff0c;通过使用快捷键来进行交易操作的…...

数据结构之基数排序

基数排序的思想是按组成关键字的各个数位的值进行排序&#xff0c;它是分配排序的一种。在该排序方法中把一个关键字 Ki看成一个 d 元组&#xff0c;即       K1i,K2i,,Kdi 其中&#xff0c;0≤ Kji<r&#xff0c;i1~ n&#xff0c;j1~d。这里的r 称为基数。若关键字是…...

区间dp 笔记

区间dp一般是先枚举区间长度&#xff0c;再枚举左端点&#xff0c;再枚举分界点&#xff0c;时间复杂度为 环形石子合并 将 n 堆石子绕圆形操场排放&#xff0c;现要将石子有序地合并成一堆。 规定每次只能选相邻的两堆合并成新的一堆&#xff0c;并将新的一堆的石子数记做该…...

MySQL-SQL优化

文章目录 1. SQL性能分析1.1 SQL执行频率1.2 慢查询日志1.3 profile详情1.4 explain 2. SQL优化2.1 Insert 优化2.2 Group By 优化2.3 Order By 优化2.4 Limit 优化2.5 Count() 优化2.6 Update 优化 3. 拓展3.1 请你说一下MySQL中的性能调优的方法&#xff1f;3.2 执行 SQL 响应…...

详细了解ref和reactive.

这几天看到好多文章标题都是类似于&#xff1a; 不用 ref 的 xx 个理由不用 reactive 的 xx 个理由历数 ref 的 xx 宗罪 我就很不解&#xff0c;到底是什么原因导致有这两批人&#xff1a; 抵触 ref 的人抵触 reactive 的人 看了这些文章&#xff0c;我可以总结出他们的想法…...

使用Linux docker方式快速安装Plik并结合内网穿透实现公网访问

文章目录 1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问&#xff0c;实现随时随地在任意设备上传或者…...

Redis Centos7 安装到启动

文章目录 安装Redis启动redis查看redis状况连接redis服务端 安装Redis 1.下载scl源 yum install centos-release-scl-rh2.下载redis yum install rh-redis5-redis 3. 创建软连接 1.cd /usr/bin 2. In -s /opt/rh/rh-redis5/root/usr/bin/redis-server ./redis-server 3. …...

「数据结构」二叉搜索树1:实现BST

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;Java数据结构 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 实现BST &#x1f349;二叉搜索树的性质&#x1f349;实现二叉搜索树&#x1f34c;插入&#x1f34c;查找&#x1f34c;删除 &am…...

可达鸭二月月赛——基础赛第六场(周五)题解,这次四个题的题解都在这一篇文章内,满满干货,含有位运算的详细用法介绍。

姓名 王胤皓 T1 题解 T1 题面 T1 思路 样例输入就是骗人的&#xff0c;其实直接输出就可以了&#xff0c;输出 Hello 2024&#xff0c;注意&#xff0c;中间有一个空格&#xff01; T1 代码 #include<bits/stdc.h> using namespace std; #define ll long long int …...

ELFK日志采 - QuickStart

文章目录 架构选型ELKEFLK ElasticsearchES集群搭建常用命令 Filebeat功能介绍安装步骤Filebeat配置详解filebeat常用命令 Logstash功能介绍安装步骤Input插件Filter插件Grok Filter 插件Mutate Filter 插件常见的插件配置选项&#xff1a;Mutate Filter配置案例&#xff1a; O…...

微信小程序的图片色彩分析,窃取网络图片的主色调

1、安装 Mini App Color Thief 包 包括下载包&#xff0c;简单使用都有&#xff0c;之前写了&#xff0c;这里就不写了 网址&#xff1a;微信小程序的图片色彩分析&#xff0c;窃取主色调&#xff0c;调色板-CSDN博客 2、 问题和解决方案 问题&#xff1a;由于我们的窃取图片的…...

Leetcode 121 买卖股票的最佳时机

题意理解&#xff1a; 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交…...

SQL语言复习-----1

1&#xff0c;前言 SQL是计算机的一门基础语言&#xff0c;无论在开发还是数据库管理上都是非常重要&#xff0c;最近总结归纳了一下相关知识&#xff0c;记录如下。 2&#xff0c;归纳 SQL是结构化查询语言。 关系数据库有三级模式结构。 基本表和视图一样都是关系。 举例…...

爬虫2—用爬虫爬取壁纸(想爬多少张爬多少张)

先看效果图&#xff1a; 我这个是爬了三页的壁纸60张。 上代码了。 import requests import re import os from bs4 import BeautifulSoupcount0 img_path "./壁纸图片/"#指定保存地址 if not os.path.exists(img_path):os.mkdir(img_path) headers{ "User-Ag…...

学习Android的第九天

目录 Android Button 按钮 基本的按钮 StateListDrawable 范例 使用颜色值绘制圆角按钮 自制水波纹效果 Android ImageButton 图片按钮 ImageButton 不同状态下的 ImageButton Android RadioButton 单选按钮 RadioButton 获得选中的值 Android Button 按钮 在 And…...

课时21:内置变量_脚本相关

2.4.1 脚本相关 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 脚本相关的变量解析 序号变量名解析1$0获取当前执行的shell脚本文件名2$n获取当前执行的shell脚本的第n个参数值&#xff0c;n1…9&#xff0c;当n为0时表示脚本的文…...

ubuntu22.04@laptop OpenCV Get Started: 006_annotating_images

ubuntu22.04laptop OpenCV Get Started: 006_annotating_images 1. 源由2. line/circle/rectangle/ellipse/text 应用Demo3 image_annotation3.1 C应用Demo3.2 Python应用Demo3.3 重点过程分析3.3.1 划线3.3.2 画圆3.3.3 矩形3.3.4 椭圆3.3.5 文字 4. 总结5. 参考资料 1. 源由 …...

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏10(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言快捷栏绘制UI代码控制快捷列表信息 源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列&#xff01;本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中&#xff0c;我们将探索如何制作…...

uniapp vue3怎么调用uni-popup组件的this.$refs.message.open() ?

vue2代码 <!-- 提示信息弹窗 --><uni-popup ref"message" type"message"><uni-popup-message :type"msgType" :message"messageText" :duration"2000"></uni-popup-message></uni-popup>typ…...

【深度学习:语义分割】语义分割简介

【深度学习&#xff1a;语义分割】语义分割简介 什么是图像分割&#xff1f;了解语义分割数据采集语义分割的深度学习实现全卷积网络上采样跳跃连接U-NetDeepLab多尺度物体检测金字塔场景解析网络&#xff08;PSPNet&#xff09; 语义分割的应用医学影像自动驾驶汽车农业图片处…...

前端开发_AJAX基本使用

AJAX概念 AJAX是异步的JavaScript和XML(Asynchronous JavaScript And XML)。 简单点说&#xff0c;就是使用XMLHttpRequest对象与服务器通信。 它可以使用JSON&#xff0c;XML&#xff0c;HTML和text文本等格式发送和接收数据。 AJAX最吸引人的就是它的“异步"特性&am…...

OnlyOffice-8.0版本深度测评

OnlyOffice 是一套全面的开源办公协作软件&#xff0c;不断演进的 OnlyOffice 8.0 版本为用户带来了一系列引人瞩目的新特性和功能改进。OnlyOffice 8.0 版本在功能丰富性、安全性和用户友好性上都有显著提升&#xff0c;为用户提供了更为强大、便捷和安全的文档处理和协作环境…...

【Go】一、Go语言基本语法与常用方法容器

GO基础 Go语言是由Google于2006年开源的静态语言 1972&#xff1a;&#xff08;C语言&#xff09; — 1983&#xff08;C&#xff09;—1991&#xff08;python&#xff09;—1995&#xff08;java、PHP、js&#xff09;—2005&#xff08;amd双核技术 web端新技术飞速发展&…...

杨中科 ASP.NETCORE 高级14 SignalR

1、什么是websocket、SignalR 服务器向客户端发送数据 1、需求&#xff1a;Web聊天;站内沟通。 2、传统HTTP&#xff1a;只能客户端主动发送请求 3、传统方案&#xff1a;长轮询&#xff08;Long Polling&#xff09;。缺点是&#xff1f;&#xff08;1.客户端发送请求后&…...

哪家洗地机比较好用?性能好的洗地机推荐

在众多功能中&#xff0c;我坚信洗地机的核心依旧是卓越的清洁能力以及易于维护的便捷性&#xff0c;其他的附加功能可以看作是锦上添花&#xff0c;那么如何找到性能好的洗地机呢&#xff1f;我们一起看看哪些洗地机既能确保卫生效果还能使用便利。 洗地机工作原理&#xff1…...

学习与非学习

学习与非学习是人类和动物行为表现中的两种基本形式&#xff0c;它们在认知过程和行为适应上有着根本的区别。理解这两者之间的差异对于把握认知发展、心理学以及教育学等领域的核心概念至关重要。 学习 学习是一个获取新知识、技能、态度或价值观的过程&#xff0c;它导致行为…...

牛客网SQL进阶127: 月总刷题数和日均刷题数

官网链接&#xff1a; 月总刷题数和日均刷题数_牛客题霸_牛客网现有一张题目练习记录表practice_record&#xff0c;示例内容如下&#xff1a;。题目来自【牛客题霸】https://www.nowcoder.com/practice/f6b4770f453d4163acc419e3d19e6746?tpId240 0 问题描述 基于练习记录表…...

19:Web开发模式与MVC设计模式-Java Web

目录 19.1 Java Web开发模式19.2 MVC设计模式详解19.3 MVC与其他Java Web开发模式的区别总结19.4 应用场景总结 在Java Web应用程序开发领域&#xff0c;有效的架构模式和设计模式对提高代码可维护性、模块化以及团队协作至关重要。本文将探讨Java Web开发中的常见模式——模型…...

Z字形变换

问题&#xff1a; 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R 之后&#xff0c;你…...