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 等的所有行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/613757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven 依赖管理项目构建工具 教程

Maven依赖管理项目构建工具 此文档为 尚硅谷 B站maven视频学习文档&#xff0c;由官方文档搬运而来&#xff0c;仅用来当作学习笔记用途&#xff0c;侵删。 另&#xff1a;原maven教程短而精&#xff0c;值得推荐&#xff0c;下附教程链接。 atguigu 23年Maven教程 目录 文章目…

Leetcode 1049 最后一块石头的重量II

题意理解&#xff1a; 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。 思路转化&#xff1a;我们可…

【计算机组成-指令系统体系结构】

课程链接&#xff1a;北京大学陆俊林老师的计算机组成原理课 1. 设计自己的计算机 一个简单的计算机指令系统 运算类指令&#xff1a;ADD R&#xff0c;M&#xff1b;功能&#xff1a;将R的内容和M中的内容相加后存入R传送类指令&#xff1a;LOAD R&#xff0c;M&#xff1b;…

03.C++内存管理笔记

1、C/C内存分布 ①内存分那么多区的原因&#xff1a;不同的数据&#xff0c;有不同的存储需求&#xff0c;各区域满足了不同的需求。 ②存放&#xff1a; 临时变量等临时用的变量&#xff1a;栈区&#xff1b; 动态申请的变量&#xff1a;堆区&#xff1b; 全局变量和静态变…

Python图形界面开发:Tkinter与PyQt

Python是一种非常流行的编程语言&#xff0c;它拥有丰富的图形用户界面&#xff08;GUI&#xff09;开发库。其中&#xff0c;Tkinter和PyQt是最常用的两个库。下面是对这两个库的简单介绍。 1. Tkinter Tkinter是Python的标准图形用户界面库。它提供了一组简单的工具和函数&…

人工智能:现状与未来发展

人工智能&#xff08;Artificial Intelligence, AI&#xff09;作为一门前沿科技&#xff0c;近年来取得了长足的发展&#xff0c;给我们的生活带来了巨大的改变。目前&#xff0c;人工智能已经广泛应用于各个领域&#xff0c;不论是医疗、交通、金融还是教育等&#xff0c;都能…

Python从入门到精通秘籍二

Python速成,知识点超详细,跟着这个系列边输入边学习体会吧! 一、Python的标识符 在Python中,标识符是用来命名变量、函数、类、模块等的名称。下面是一些使用代码示例来详细说明Python的标识符的具体规则和用法: 1.标识符的命名规则: 可以包含字母(大小写)、数字和下…

433. 最小基因变化(Queue使用ArrayList和LinkedList进行声明)

这道题可以看成一个24叉树。 因为基因序列长度固定为8&#xff0c;且每个位置的字母固定是AGCT&#xff0c;可以选择改变的只有3个字母&#xff0c;所以一次最多24种情况。 然后检查变化后的结果是否存在bank中&#xff08;使用hashSet来存储&#xff09;&#xff0c;同时设置…

GO语言Context的作用

文章目录 Context为什么需要Context多任务超时例子Context结构 Context各种使用方法创建contextvalueCtxvalueCtx结构体WithValue cancelCtxcancelCtx结构体withCancel timerCtxWithDeadlineWithTimeout 总结 Context 为什么需要Context Go语言需要Context主要是为了在并发环…

初识C语言·内存函数

1 memcpy的使用和模拟实现 紧接字符串函数&#xff0c;出场的是第一个内存函数memcpy。前面讲的字符串函数是专门干关于字符串的事的&#xff0c;而这个函数可以干strcpy一样的事&#xff0c;但是区别就是它碰到\0也会继续复制。 函数的头文件是string&#xff0c;返回类型是v…

如何从 Keras 中的深度学习目录加载大型数据集

一、说明 数据集读取&#xff0c;使用、在磁盘上存储和构建图像数据集有一些约定&#xff0c;以便在训练和评估深度学习模型时能够快速高效地加载。本文介绍Keras 深度学习库中的ImageDataGenerator类等工具自动加载训练、测试和验证数据集。 二、ImageDataGenerator加载数据集…

2024.1.11

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);speechnew QTextToSpeech(this);id1startTimer(1000);//设置文本到中间ui->sys_label->setAlignment(Qt:…

20240107移远的4G模块EC20在Firefly的AIO-3399J开发板的Android11下调通能上网

20240107移远的4G模块EC20在Firefly的AIO-3399J开发板的Android11下调通能上网 2024/1/7 11:17 开发板&#xff1a;Firefly的AIO-3399J【RK3399】SDK&#xff1a;rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBrick】 Android11.0.tar.bz2.ab …

Java的Netty

1.基本概念介绍 有了Netty&#xff0c;你可以实现自己的HTTP服务器&#xff0c;FTP服务器&#xff0c;UDP服务器&#xff0c;RPC服务器&#xff0c;WebSocket服务器&#xff0c;Redis的Proxy服务器&#xff0c;MySQL的Proxy服务器等等。 Netty 是一个基于 Java 的高性能网络应…

红队打靶练习:BREACH: 1

信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.110.128 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.110.1 00:50:56:c0:00:08 …

RK3568驱动指南|第十篇 热插拔-第118章 使用udev挂载U盘和T卡实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

CTF-PWN-沙箱逃脱-【seccomp和prtcl-1】

文章目录 啥是seccomp#ifndef #define #endif使用使用格式 seccomp无参数条件禁用系统调用有参数条件禁用系统调用 prctl实例 seccomp_export_bpf 啥是seccomp 就是可以禁用掉某些系统调用&#xff0c;然后只能允许某些系统调用 #ifndef #define #endif使用 #ifndef #defin…

Day4Qt

1.头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime>//时间类 #include <QTimer>//时间事件类 #include <QTimerEvent>//定时器类 #include <QTextToSpeech> namespace Ui { class Widget; }class Widget : publi…

JMeter 批量接口测试

一、背景 最近在进行某中台的接口测试准备&#xff0c;发现接口数量非常多&#xff0c;有6、70个&#xff0c;而且每个接口都有大量的参数并且需要进行各种参数验证来测试接口是否能够正确返回响应值。想了几种方案后&#xff0c;决定尝试使用JMeter的csv读取来实现批量的接口…

SFT会改善LLM性能,RLHF可能会损害性能

SFT&#xff08;Structured Fine-Tuning&#xff09;是一种模型优化技术&#xff0c;它通过在预训练的语言模型上进行有针对性的微调&#xff0c;以适应特定任务或领域。SFT可以提高性能的原因有几个&#xff1a; 领域自适应&#xff1a;预训练的语言模型通常在大规模通用语料库…