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

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实现非对称协程 函数只有两个行为:调用与返回。一旦函数返回后,它在栈上所拥有的状态将被销毁。协程相比函数多了两个动作&#xf…...

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性能调优的策略和示例&#xf…...

oracle查询前几条数据的方法

在Oralce中实现select top N&#xff1a;由于Oracle不支持select top 语句&#xff0c;所以在oracle中经常是用order by 跟rownum的组合来实现select top n的查询。 方法1&#xff1a; SELECT * FROM (SELECT * FROM EMP ORDER BY SAL DESC) WHERE ROWNUM < 5 --抽取处记录…...

c#弹性和瞬态故障处理库Polly

1. 重试&#xff08;Retry&#xff09; 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模型是一个创造性的突破&#xff1b; 它以与文本相同的方式处理图像。 令人惊讶的是&#xff0c;如果进行大规模训练&#xff0c;效果非常好。 在线工具推荐&#xff1a; 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

前言:比赛是结束了&#xff0c;但我的学习还未结束&#xff0c;看看自己能复习几道题吧&#xff0c;第四周实在太难 Final 考点&#xff1a; ThinkPHP 5.0.23 RCE一句话木马上传SUID提权&#xff08;find&#xff09; 解题: 首先页面就给了ThinkPHP V5&#xff0c; 那无非考…...

未将对象引用设置到对象实例

环境 vs 2017 qt 5.13.0 qt-vs-addin 2.10 qt 项目打开的vs 2010 的项目 配置完成之后可以编译执行&#xff0c;但是新建qt 类提示 未将对象引用设置到对象实例 问题 插件的版本太高了使用低版本的&#xff0c;到qt 官网下载Index of /official_releases/vsaddin 下载q…...

网络的地址簿:Linux DNS服务的全面指南

1 dns 1.1 dns&#xff08;域名解析服务&#xff09;介绍 当访问 www.baidu.com 首先查询/etc/hosts&#xff0c;如果没有再去查询/etc/resolv.conf&#xff0c;还是没有就去查询域名服务器 关于客户端: /etc/resolv.conf ##dns指向文件 nameserver 172.25.254.20测试&…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

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

Unity3D中Gfx.WaitForPresent优化方案

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

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; 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)

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

Map相关知识

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

如何理解 IP 数据报中的 TTL?

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