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

Linux-shell简单学习

我是南城余!阿里云开发者平台专家博士证书获得者!

欢迎关注我的博客!一同成长!

一名从事运维开发的worker,记录分享学习。

专注于AI,运维开发,windows Linux 系统领域的分享!
其他中间件安装可参考下方知识库!

本章节对应知识库

shell · 语雀


#变量声明 不能有空格
my_var="hello nanchengyu" #双引号 单引号均可
echo $my_var #输出声明变量export $my_var #将变量提示为全局变量#撤销变量 unset 变量名 
#声明静态变量 readonly 变量 注意不能使用 unset#特殊变量 $n(n为数字,$0表示该脚本名称,$1-9代表第一到第九个参数,十以上的参数需要使用大括号包含,例如${110})
#./hello.sh xiaoming #后面直接跟参数即可
# $# (获取所有的输入参数的个数,常用于循环,判断参数的个数是否正确,以及加强脚本的健壮性)
# $*(这个命令就是相当于写入脚本中,把所有的脚本中的参数输出,把所有的参数看成一个整体相当于 字符串)
# $@ (同上,不过把每个参数区别对待 想等于数组)
#$? (最后一次执行的命令返回的状态,如果变量的值为0,代表上一次命令正确执行,如果非0,则相反,命令执行错误)#编写脚本 第一行默认带上 #!/bin/bash#运算
$((运算符)) 或者 $[运算符]#条件判断 [ condition ](注意 condition 前后要有空格) 返回0 代表true 返回1 代表false 与其他编程语言相反
#不能使用 > < 因为在Linux中 > 表示输出覆盖 
#-eq 表示等于 -ne表示 不等于(not equal) -lt(less then)小于
#-le 小于等于 (less equal) -gt 大于 (greater than) -ge 大于等于 (greater equal)#if判断
if [ 条件判断式 ];then 程序
fi
#或者
if [条件判断式] 
then 程序
fiif [条件判断式]
then程序
elif [条件判断式]
then 程序
else程序
fi#函数

 

条件分支

 

#!/bim/bashif [ "$1"x = "nanchengyu"x ] #x没含义,只是一种分隔符,防止程序报错
thenecho "hello , nanchengyu"
fi#输入第二个参数
if [ $2 -lt 18 ]
then echo "问成年人"
elif [ $2 -lt 35 ]
then echo "青年人"
elif [ $2 -lt 60 ]
then echo "中年人"
elifecho "老年人"
fi#执行该脚本并传入两个参数 ./test.sh nanchengyu 20

正则表达式

#特殊字符
#1.^ 匹配一行的开头 例如 cat /etc/passwd | grep ^a 会匹配所有以a开头的行

#2.$ 匹配一行的结束 例如 cat /etc/passwd | grep t$ 

#3. . 匹配一个任意的字符  一个点代表一个字符 例如 cat /etc/passwd | grep r..t 会匹配包含rabt rbbt root 等的所有行

相关文章:

Linux-shell简单学习

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 其他…...

CMake入门教程【高级篇】qmake转cmake

&#x1f608;「CSDN主页」&#xff1a;传送门 &#x1f608;「Bilibil首页」&#xff1a;传送门 &#x1f608;「动动你的小手」&#xff1a;点赞&#x1f44d;收藏⭐️评论&#x1f4dd; 文章目录 1. 概述2.qmake与cmake的差异3. qmake示例4.qmake转cmake示例5.MOC、UIC和RCC…...

c#图片作为鼠标光标

图片转换为鼠标光标代码如下&#xff1a; private void Form1_Load(object sender, EventArgs e) {//button1.Cursor System.Windows.Forms.Cursors.Hand;Bitmap bmp new Bitmap("780.jpg");Cursor cursor new Cursor(bmp.GetHicon());button1.Cursor cursor;} …...

微信小程序swiper实现层叠轮播图

在微信小程序中,需要实现展示5个&#xff0c;横向层叠的轮播图效果&#xff0c;轮播图由中间到2侧的依次缩小.如下图 使用原生小程序进行开发,没有使用Skyline模式&#xff0c;所以layout-type配置项也无效。所以基于swiper组件进行调整。 主要思路就是设置不同的样式&#xff…...

揭露欧拉骗局第二篇:逼近公式“Σ1/n=lnn+C”。

Σ1/nlnnC是欧拉为调和级数创造(注意是创造、而不是发现)的“逼近公式”&#xff0c;它在欧系大名鼎鼎&#xff0c;因为它解决了欧洲人百筹莫展的“调和级数求和问题”。 “lnnC”是欧拉的发明&#xff0c;欧拉认为n→∞时&#xff0c;Σ1/nlnn常数&#xff0c;这个常数就是欧…...

MYSQL的学习——单行函数详解

目录 1. 数值函数 1) 基本函数 2) 角度与弧度互换函数 3) 三角函数 4) 指数与对数函数 5) 进制间的转换 2. 字符串函数 3. 日期和时间函数 1) 获取日期、时间 2) 日期与时间戳的转换 3) 获取月份、星期、星期数、天数等函数 4) 日期的操作函数 5) 时间和秒钟转换的…...

深度解析Cron表达式:精确控制任务调度的艺术

深度解析Cron表达式&#xff1a;精确控制任务调度的艺术 希望我们都可以满怀期待的路过每一个转角 去遇见 那个属于自己故事的开始 去追寻那个最真实的自己 去放下 去拿起 安然&#xff0c;自得&#xff0c;不受世俗牵绊… 导言 在计算机科学领域&#xff0c;任务调度是一项关…...

java实现AES256对称加解密工具类

一、引入依赖包 引入相关依赖包 <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.70</version> </dependency> <!--lombok用于简化实体类开发--> <dependency&g…...

其他排序(基数排序,希尔排序和桶排序)(数据结构课设篇3,python版)(排序综合)

本篇博客主要详细讲解一下其他排序&#xff08;基数排序&#xff0c;希尔排序和桶排序&#xff09;也是排序综合系列里最后一篇博客。第一篇博客讲解的是LowB三人组&#xff08;冒泡排序&#xff0c;插入排序&#xff0c;选择排序&#xff09;&#xff08;数据结构课设篇1&…...

【复现】DiffTalk

code&#xff1a;GitHub - sstzal/DiffTalk: [CVPR2023] The implementation for "DiffTalk: Crafting Diffusion Models for Generalized Audio-Driven Portraits Animation" 问题1. ERROR: Failed building wheel for pysptk Cython.Compiler.Errors.CompileError:…...

SQLServer 系统概述

目录 1.SQL语言的发展和特点 2.SQL语言的特点 1.SQL语言的发展和特点 SQL是利用一些简单的语句构成的基本语法&#xff0c;来存储数据库的内容。目前已经成为关系型数据库系统中使用最广泛的语言。 1974年SQL语言由Boyce和Chamberlin提出来。 1975~1979年研制了著名的关系数…...

Vue3 + TS + Element-Plus —— 项目系统中封装表格+搜索表单 十分钟写五个UI不在是问题

前期回顾 纯前端 —— 200行JS代码、实现导出Excel、支持DIY样式&#xff0c;纵横合并-CSDN博客https://blog.csdn.net/m0_57904695/article/details/135537511?spm1001.2014.3001.5501 目录 一、&#x1f6e0;️ newTable.vue 封装Table 二、&#x1f6a9; newForm.vue …...

Linux系统——测试端口连通性方法

目录 一、TCP端口连通性测试 1、ssh 2、telnet&#xff08;可能需要安装&#xff09; 3、curl 4、tcping&#xff08;需要安装&#xff09; 5、nc&#xff08;需要安装&#xff09; 6、nmap&#xff08;需要安装&#xff09; 二、UDP端口连通性测试 1、nc&#xff08;…...

Python虚拟环境轻松配置:Jupyter Notebook中的内核管理指南

问题 在Python开发中&#xff0c;一些人在服务器上使用Jupyter Notebook中进行开发。一般是创建虚拟环境后&#xff0c;向Jupyter notebook中添加虚拟环境中的Kernel&#xff0c;后续新建Notebook中在该Kernel中进行开发&#xff0c;这里记录一下如何创建Python虚拟环境以及添…...

大数据-hive函数与mysql函数的辨析及练习-将多行聚合成一行

目录 1. &#x1f959;collect_list: 聚合-不去重 2. &#x1f959;collect_set(col): 聚合-去重 3. &#x1f959;mysql的聚合函数-group_concat 4. leetcode练习题 1. &#x1f959;collect_list: 聚合-不去重 将组内的元素收集成数组 不会去重 2. &#x1f959;collec…...

【AI视野·今日NLP 自然语言处理论文速览 第七十三期】Tue, 9 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Tue, 9 Jan 2024 Totally 80 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers FFSplit: Split Feed-Forward Network For Optimizing Accuracy-Efficiency Trade-off in Language Model Infe…...

vue知识-03

购物车案例 要实现的功能&#xff1a; 1、计算商品总价格 2、全选框和取消全选框 3、商品数量的增加和减少 <body> <div id"app"><div class"row"><div class"col-md-6 col-md-offset-3"><h1 class"text-center…...

关于httpClient 使用的注意事项

关于httpClient 使用的注意事项 用例 PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager();// 最大连接数-不设置默认20connectionManager.setMaxTotal(200);// 每个路由最大连接数-不设置默认2connectionManager.setDefaultMax…...

Docker 发布自定义镜像到公共仓库

Docker 发布自定义镜像到公共仓库 引言 Docker 是一种轻量级、便携式的容器化技术&#xff0c;可以使应用程序在不同环境中更加可移植。在本文中&#xff0c;我们将学习如何使用 Docker 从公共仓库拉取 Nginx 镜像&#xff0c;定制该镜像&#xff0c;添加自定义配置文件&…...

程序员有哪些接单的渠道?

这题我会&#xff01;程序员接单的渠道那可太多了&#xff0c;想要接到合适的单子&#xff0c;筛选一个合适的平台很重要。如果你也在寻找一个合适的接单渠道&#xff0c;可以参考以下这些方向。 首先&#xff0c;程序员要对接单有一个基本的概念&#xff1a;接单渠道可以先粗略…...

避开这5个坑,你的癫痫脑电AI模型准确率能翻倍:从数据标注到特征工程实战

避开这5个坑&#xff0c;你的癫痫脑电AI模型准确率能翻倍&#xff1a;从数据标注到特征工程实战 在医疗AI领域&#xff0c;癫痫脑电信号分析一直是个充满挑战的课题。许多开发者满怀信心地构建模型&#xff0c;却在验证阶段遭遇性能瓶颈——准确率停滞不前&#xff0c;误报率居…...

个人自动化技能库构建指南:从Python脚本到Cron定时任务

1. 项目概述&#xff1a;一个为“摸鱼”场景设计的自动化技能库最近在GitHub上看到一个挺有意思的项目&#xff0c;叫my-copaw-skill。光看这个名字&#xff0c;就透着一股子“打工人”的幽默感——“copaw”这个词&#xff0c;我琢磨着应该是“copilot”&#xff08;副驾驶/助…...

ADXL335模拟传感器读数不稳?手把手教你用Arduino进行软件滤波与校准

ADXL335模拟传感器读数不稳&#xff1f;手把手教你用Arduino进行软件滤波与校准 当你把ADXL335加速度计接入Arduino&#xff0c;兴奋地跑起第一个测试程序时&#xff0c;那些跳动的数字可能很快会浇灭你的热情。原始读数像得了疟疾般颤抖&#xff0c;静止时本该稳定的1g重力加速…...

Linuxbonding链路稳定性治理方法

Linuxbonding链路稳定性治理方法这是一篇面向中级 Linux 使用者的技术文章&#xff0c;主题聚焦在bonding链路&#xff0c;重点讨论链路聚合、冗余切换和接口状态。在真实生产环境中&#xff0c;bonding链路相关问题往往不会以单一错误形式出现&#xff0c;而是混杂在日志、权限…...

基于GitHub Pages与Jekyll的静态博客搭建与深度定制指南

1. 项目概述&#xff1a;一个静态博客的诞生与演进如果你对搭建个人博客感兴趣&#xff0c;或者正在寻找一个轻量、高效、完全可控的线上空间&#xff0c;那么“RyansGhost/RyansGhost.github.io”这个项目仓库&#xff0c;很可能就是你一直在寻找的答案。这不仅仅是一个托管在…...

基于Stable Diffusion与LoRA技术打造个人AI头像:从原理到实战

1. 项目概述&#xff1a;当AI开始“自拍”——SelfyAI的定位与核心价值最近在AI图像生成领域&#xff0c;一个名为SelfyAI的项目引起了我的注意。它不是一个简单的文生图工具&#xff0c;而是瞄准了一个非常具体且高频的需求&#xff1a;生成高质量、风格一致的个人AI头像。简单…...

Cursor-Tap插件:一键AI代码重构与文档生成实战指南

1. 项目概述&#xff1a;一个为 Cursor 编辑器注入灵魂的插件如果你和我一样&#xff0c;日常重度依赖 Cursor 这款 AI 驱动的代码编辑器&#xff0c;那你一定体会过那种“就差一点”的微妙感受。Cursor 的 AI 能力确实强大&#xff0c;但它的交互方式有时会让人感觉像是在和一…...

开源AI应用开发平台TaskingAI:从RAG智能体到工作流编排实战

1. 项目概述&#xff1a;一个开源的AI应用开发平台最近在折腾AI应用开发的朋友&#xff0c;估计都绕不开一个核心痛点&#xff1a;想法很丰满&#xff0c;落地很骨感。你想做个智能客服、一个文档分析助手&#xff0c;或者一个个性化的内容生成工具&#xff0c;从模型调用、流程…...

从零构建Next.js全栈应用:实战解析服务端渲染与API路由

1. 项目概述与核心价值最近在社区里看到不少朋友在讨论一个叫“panaverse/learn-nextjs”的项目&#xff0c;作为一个在Web开发领域摸爬滚打了十多年的老码农&#xff0c;我立刻来了兴趣。这个项目名直译过来就是“Panaverse的Next.js学习项目”&#xff0c;听起来像是一个学习…...

从Awesome List到个人知识库:开发者如何高效筛选与组织技术资源

1. 项目概述&#xff1a;一份面向开发者的“Awesome List”清单 如果你在GitHub上混迹过一段时间&#xff0c;尤其是热衷于探索前沿技术、寻找优质学习资源或开源项目&#xff0c;那么你大概率见过或者使用过一种特殊的仓库—— Awesome List 。简单来说&#xff0c;这是一个…...