Linux学习笔记--高级
Shell概述
1,shell概述
是一个c语言编写的脚本语言,是linux和用户的桥梁,用户输入命令交给shell处理。shell,将相应的操作传递给内核(kernel),内核把处理的结果输出给用户
1.1Shell解释器有哪些?
(1)sh:全称是Bourne shell,由AT&T公司的Steve Bourne开发,为了纪念 他,就用他的名字命名了。 sh是UNIX上的标准shell,很多 UNIX版本都配有sh。sh是第一个流行的Shell。
(2)csh: 全称是C shell,它是sh之后另一个广为流传的shell是由柏克莱大学的 Bill Joy设计的。 这个shell的语法有点类似C语言,所以才得名为C shell ,简称为csh。
(3)Bash:全称是bash shell,它是Linux的默认shell。由GNU组织开发,是各种 Linux发行版默认配置的shell。 bash兼容了sh,针对sh编写的Shell代码可以不加修改地在bash中运行。
注意:目前,在Linux系统中,默认的shell程序是bash shell。
2.Shell开发
Shell程序文件通常以.sh结尾。类似于Kettle的Mac OS启动执行的文件
语法:sh ./spoon.sh
2.1开发步骤
(1)新建一个.sh文件
(2)在.sh文件中编写程序代码
(3)给.sh文件添加可执行权限x
(4)执行程序
例如:
①touch a.sh
②vim ./a.sh
③chmod u+x a.sh
④sh .ash或者./a.sh或者绝对路径下输出a.sh
3.变量
shell变量是一种很"弱"的变量,默认情况下,一个变量保存一个字符串。
虽然变量可以直接存储一个字符串,但仍然建议把值使用双引号表示,即"内容值"。
3.1定义变量
①定义变量名语法:变量名=变量值
(变量名一定要记得全大写)
注意规则:
1)变量名可以由字母、数字和下划线组成,但是不能以数字开头, 不能使用关键字;
2)在bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必须使用特殊 命令;
3)变量用等号"=“连接值,”=“左右两侧不能有空格; 4)变量值中如果有空格,则需要使用单引号或双引号包含,如test=“hello world!”;
5)在变量值中,可以使用”"转义符。
②访问变量的语法: 变量名或 变量名 或 变量名或{变量名}
建议提取变量时,推荐使用{ }标识变量的边界范围。
③删除变量
删除变量的语法:unset 变量名
只读变量无法通过这个删除,需要下载专门的删除工具
④定义只读变量
readonly 变量名
readonly 变量名=变量值
Shell程序
#!/bin/bash
# 定义变量name="Jerry" # 访问变量 echo $name gender=male echo ${gender}
4,环境变量(environment variable)
环境变量是操作系统(Windows、Linux、Mac)在运行时,记录的一些关键信息,
用以辅助系统运行。
当shell程序启动时,都自动设置了一组变量,这组变量就是环境变量。在Linux中查
看环境变量命令:env
4.1环境变量设置的两种方式
1,临时设置
语法:
export 变量名=变量值
2,永久生效设置
①仅针对当前用户生效,配置在当前用户的:
~/.bashrc文件中
②针对所有用户生效,配置在系统的:
/etc/profile文件中
若要让环境变量立刻生效,可以进行重新登录账号。也可以通过语法:
source 配置文件
过程例如:
步骤①使用vim /etc/profile进入到配置文件中
②将要配置的变量放入文件中
③source /etc/profile刷新配置文件
设置环境变量的作用,为了能够在任何目录下执行
特殊变量
特殊变量,指的是:在执行Shell脚本时,向脚本传递参数,这时可以使用特殊变量来获取参数值。
在执行Shell程序脚本时,可以向shell脚本动态传递参数。
这样做的好处是某些配置属性不用写死在脚本中。动态传递参数的语法:
sh shell脚本文件 参数1 参数2…………
解释:Shell常用的特殊变量有:
$0:当前程序的名称(shell文件名称)
$n:$1表示第一个参数,$2表示第二个参数,依次类推
$#:命令行参数的个数
$*:以参数1,参数2……形式保存所有参数
定义Shell文件:
#!/bin/bash
echo "程序脚本文件名:"$0
echo "参数1:"$1
echo "参数2:"$2
echo "个数:"$#
echo "参数列表:"$*
执行的shell脚本文件为sh ./04_special_value.sh 100 22 308 4090
可以根据脚本文件的内容输出内容
Shell脚本执行方式
(1)shell命令倾向于在Linux命令行中使用,适合简单逻辑场景;
(2)shell脚本倾向于在文件中编写,适合复杂的逻辑处理场景。[if、while等]
(1)sh执行 ,sh 脚本程序名
(2)相对路径执行,./脚本程序名
(3)绝对路径执行,/绝对路径/脚本程序名
相关文章:

Linux学习笔记--高级
Shell概述 1,shell概述 是一个c语言编写的脚本语言,是linux和用户的桥梁,用户输入命令交给shell处理。shell,将相应的操作传递给内核(kernel),内核把处理的结果输出给用户 1.1Shell解释器有哪…...

在Java中操作Redis
Redis中如何的去存放一个Java对象? 直接存放Json类型即可,因为我们Json类型最终就是一个String类型。 Redis的Java客户端 Redis的常用命令是我们操作Redis的基础,那么我们在Java程序当中如何来操作Redis呢? 要想基于Java语言…...
【服务器】fiber协程模块
fiber协程模块 以下是从sylar服务器中学的,对其的复习; sylar的fiber协程模块是基于ucontext_t实现非对称协程 函数只有两个行为:调用与返回。一旦函数返回后,它在栈上所拥有的状态将被销毁。协程相比函数多了两个动作…...
SparkML
SparkML SparkML_lr_train :读取py处理后的train表用于训练,将训练模型保存好。 SparkML_lr_predict :读取训练好的模型,读取py处理后的test表用于预测。将预测结果写入normal_data中,根据id修改stream_is_normal的值。…...

实时定位与路径优化:跑腿App系统开发中的地理信息技术
本文将介绍如何使用地理信息技术实现实时定位和路径优化功能,以提高跑腿服务的效率。 实时定位 用户位置获取 # 示例:获取用户的实时位置 def get_user_location(user_id):# 使用GPS或网络定位技术获取用户的地理坐标# 返回经度和纬度信息return lon…...
Tomcat的HTTP Connector
https://tomcat.apache.org/tomcat-10.1-doc/config/http.html 一个Connector代表一个接收请求、返回响应的端点(endpoint)。 HTTP Connector 元素代表一个支持HTTP/1.1的Connector组件。一个这样的组件在服务端一个指定的TCP端口上监听连接。一个Serv…...
将Pytorch搭建的ViT模型转为onnx模型
本文尝试将pytorch搭建的ViT模型转为onnx模型。 首先将博主上一篇文章中搭建的模型ViT Vision Transformer超详细解析,网络构建,可视化,数据预处理,全流程实例教程-CSDN博客转存为.pth torch.save(model, my_vit_model.pth) 然…...

图神经网络(GNN)性能优化方案汇总,附37个配套算法模型和代码
图神经网络的表达能力对其性能和应用范围有着重要的影响,是GNN研究的核心问题和发展方向。增强表达能力是扩展GNN应用范围、提高性能的关键所在。 目前GNN的表达能力受特征表示和拓扑结构这两个因素的影响,其中GNN在学习和保持图拓扑方面的缺陷是限制表…...
国科大移动互联网考试资料(2023+2020+2018真题+答案)
老师王文杰。真题附加2022部分...
ModStart系统安全规范建议
1 不要使用弱密码 很多人为了系统管理方便(或者是懒),经常会设置类似 123456、admin 这样的管理密码,这样的密码很容易被暴力软件扫描出来。 2 不要使用默认配置 默认的软件系统设置、默认的系统端口、默认的网站设置在发生漏洞…...

【漏洞复现】Django_debug page_XSS漏洞(CVE-2017-12794)
感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞分析3、漏洞验证 说明内容漏洞编号CVE-2017-12794漏洞名称Django_debug page_XSS漏洞漏洞评级影响范…...
Redis性能调优:深度剖析与示例解析
标题:Redis性能调优:深度剖析与示例解析 引言 Redis是一款强大的开源内存数据库,广泛应用于高性能系统。然而,为了充分发挥Redis的性能,需要进行合理的性能调优。本博客将深入介绍Redis性能调优的策略和示例…...
oracle查询前几条数据的方法
在Oralce中实现select top N:由于Oracle不支持select top 语句,所以在oracle中经常是用order by 跟rownum的组合来实现select top n的查询。 方法1: SELECT * FROM (SELECT * FROM EMP ORDER BY SAL DESC) WHERE ROWNUM < 5 --抽取处记录…...
c#弹性和瞬态故障处理库Polly
1. 重试(Retry) Policy .Handle<Exception>() //指定需要重试的异常类型 .Retry(2,(ex,count,context)> { //指定发生异常重试的次数Console.WriteLine($ "重试次数{count},异常{ex.Message}" ); }) …...

20231107-前端学习炫酷菜单效果和折叠侧边栏
炫酷菜单效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>炫酷菜单效果</title><…...

基于CLIP的图像分类、语义分割和目标检测
OpenAI CLIP模型是一个创造性的突破; 它以与文本相同的方式处理图像。 令人惊讶的是,如果进行大规模训练,效果非常好。 在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 3D…...

python爬虫(数据获取——selenium)
环境测试 from selenium import webdriverchromedriver_path r"C:\Program Files\Google\Chrome\Application\chromedriver.exe" driver webdriver.Chrome()url "https://www.xinpianchang.com/discover/article?fromnavigator" driver.get(url)drive…...

[wp]NewStarCTF 2023 WEEK5|WEB
前言:比赛是结束了,但我的学习还未结束,看看自己能复习几道题吧,第四周实在太难 Final 考点: ThinkPHP 5.0.23 RCE一句话木马上传SUID提权(find) 解题: 首先页面就给了ThinkPHP V5, 那无非考…...
未将对象引用设置到对象实例
环境 vs 2017 qt 5.13.0 qt-vs-addin 2.10 qt 项目打开的vs 2010 的项目 配置完成之后可以编译执行,但是新建qt 类提示 未将对象引用设置到对象实例 问题 插件的版本太高了使用低版本的,到qt 官网下载Index of /official_releases/vsaddin 下载q…...

网络的地址簿:Linux DNS服务的全面指南
1 dns 1.1 dns(域名解析服务)介绍 当访问 www.baidu.com 首先查询/etc/hosts,如果没有再去查询/etc/resolv.conf,还是没有就去查询域名服务器 关于客户端: /etc/resolv.conf ##dns指向文件 nameserver 172.25.254.20测试&…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...