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测试&…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
