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

LInux脚本学习

1.注释

#单行注释

以 # 字符开头就是单行注释

当然第一行除外,比较特殊

2.多行注释

3.Shell文件的作用

Shell文件就是linux命令集

4.sh脚本的执行方式

bash xxx.sh

5.新建的文件会没有执行权限

#为文件赋予执行权限

chmod u+x xxx.sh

6.编写规范

#!/bin/bash   #指定告知当前系统要执行shell解释器

shell指令集

7.shell脚本的文件命名规范

文件后缀为 .sh

.sh是linux下bash shell 的默认后缀

Bash 常用快捷键
快捷键作用
ctrl+A把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移动到命令行开头时使用。
ctrl+E把光标移动到命令行结尾。
ctrl+C强制终止当前的命令。
ctrl+L清屏,相当于clear命令。
ctrl+U删除或剪切光标之前的命令。我输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快捷键会更加方便
ctrl+K删除或剪切光标之后的内容。
ctrl+Y粘贴ctrl+U或ctul+K剪切的内容。
ctrl+R在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。
ctrl+D退出当前终端。
ctrl+Z暂停,并放入后台。这个快捷键牵扯工作管理的内容,我们在系统管理章节详细介绍。
ctrl+S暂停屏幕输出。
ctrl+Q恢复屏幕输出。

输入输出重定向
linux 的标准输入与输出
设备设备名文件描述符类型
键盘/dev/stdin0标准输入
显示器/dev/stdout1标准输出
显示器/dev/stderr2标准错误输出
输入重定向

输入重定向:是指不使用系统提供的标准输入端口,而进行重新的指定。换言之,输入重定向就是不使用标准输入端口输入文件,而是使用指定的文件作为标准输入设备。(重定向简单理解就是使用 “<”符来修改标准输入设备)

类型符号(语法)功能
标准输入命令<文件1命令把文件1的内容作为标准输入设备
标识符限定输入命令<<标识符命令把标准输入中读入内容,直到遇到“标识符”分解符为止

输入输出重定向(同时使用)

命令< 文件1 >文件2命令把文件1的内容作为标准输入,把文件2作为标准输出。

8.输出

echo

9.变量

#变量的命名规范

        只能是数字字母下划线,但是不能以数字开头

        等号两边不能直接接空格符,若变量中本身就包含了空格,则整个字符串都要用双引号、或单引号括起来

num=10

        双引号:可以解析变量的值(echo "num=$num",$num会解析为变量)输出num=10
        单引号:不能解析变量的值 (echo 'num=$num',$num会解析为字符串)输出num=$num

1

如果需要在PATH下面追加一个路径,需要执行如下命令:

export PATH=$PATH:/添加路径

#变量的声明

name

#变量的赋值(= 前后不能有空格,否则会报错 line 3: name: command not found)

name="test"

#变量的使用

$name

#清除变量

unset name

#!/bin/bash
name = "test"
echo $name
unset name
echo $name

预设变量

#参数的数量

$#

#参数的内容

$*

#第一个参数内容

$1

#命令执行后返回状态(用于检查命令是否执行正确,返回0表示执行成功,任何非0表示失败)

$?

#当前进程的进程名

$0

#当前进程的进程号(主要用于临时文件的名称,保证临时文件不会重复)

$$

10.输入-从键盘中获取值

read name

name
echo name
echo "请输入name的值"
read name
echo name

在同一行上添加提示信息和输入:-p

read -p "请输入name的值:" name

#!/bin/bash
#注释
name
echo $name
echo "请输入name的值"
read name
echo $nameread -p "请输入name的值:" name
echo $name

 读取多个值

read name1 name2

11.只读变量

声明只读变量

readonly num=10

当为只读变量重新赋值时,会报错

readonly num=10

echo $num

num=100

echo $num

[test@localhost test]$ sh test.sh
10
test.sh: line 15: num: readonly variable

12.查看系统环境变量命令

env

 13.脚本变量的特殊用法

"双引号"  包含的变量会被解释

'单引号'    包含的变量被当作字符串

相关文章:

LInux脚本学习

1.注释 #单行注释 以 # 字符开头就是单行注释 当然第一行除外&#xff0c;比较特殊 2.多行注释 3.Shell文件的作用 Shell文件就是linux命令集 4.sh脚本的执行方式 bash xxx.sh 5.新建的文件会没有执行权限 #为文件赋予执行权限 chmod ux xxx.sh 6.编写规范 #!/bin/bash #…...

JavaWeb基础(计网 socket 数据库 JDBC lombok Mybatis JUnit Maven)

本文用于检验学习效果&#xff0c;忘记知识就去文末的链接复习 1. 网络基础 1.1 计网基础 区分设备&#xff1a;IP地址 区分网络&#xff1a;网络地址 网络互联&#xff1a;路由器 主机上进程间通信&#xff1a;端口 http是常用的协议&#xff0c;基于TCP协议 TCP VS U…...

【HBase】

什么是HBase HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据。 访问层次&#xff08;数据…...

Vue3:使用Pinia存储、读取、修改数据

一、存储数据 Pinia插件中&#xff0c;存储数据的配置项是state count.ts import {defineStore} from piniaexport const useCountStore defineStore(count,{// 真正存储数据的地方state(){return {sum:6}} })loveTalk.ts import {defineStore} from piniaexport const use…...

基于 Quartz.NET 可视化任务调度平台 QuartzUI

一、简介 QuartzUI 是基于 Quartz.NET3.0 的定时任务 Web 可视化管理&#xff0c;Docker 打包开箱即用、内置 SQLite 持久化、语言无关、业务代码零污染、支持 RESTful 风格接口、傻瓜式配置、异常请求邮件通知等。 二、部署 QuartzUI 从 2022 年到现在没有提交记录&#xf…...

前端三剑客 —— CSS (第三节)

目录 上节回顾&#xff1a; 1.CSS使用有以下几种样式; 2.选择器 1.基本选择器 2.包含选择器 3.属性选择器 [] 4.伪类选择器 &#xff1a; 5.伪元素选择器 ::before :after 3.常见样式的使用 常见样式参考表 一些特殊样式 媒体查询 自定义字体 变换效果 translate&…...

C# 系统学习(异步编程)

在C#中&#xff0c;异步编程是一种优化程序性能的关键技术&#xff0c;特别是在处理I/O密集型操作&#xff08;如网络请求、数据库查询、文件读写等&#xff09;时&#xff0c;能够有效避免由于长时间等待而导致的线程阻塞&#xff0c;从而提高应用的响应速度和资源利用率。asy…...

前端工程师————CSS学习

选择器分类 选择器分为基础选择器和复合选择器 基础选择器包括&#xff1a;标签选择器&#xff0c;类选择器&#xff0c;id选择器&#xff0c;通配符选择器标签选择器 类选择器 语法&#xff1a;.类名{属性1&#xff1a; 属性值&#xff1b;} 类名可以随便起 多类名使用方式&am…...

C# 登录界面代码

背景 MVVM 是一种软件架构模式&#xff0c;用于创建用户界面。它将用户界面&#xff08;View&#xff09;、业务逻辑&#xff08;ViewModel&#xff09;和数据模型&#xff08;Model&#xff09;分离开来&#xff0c;以提高代码的可维护性和可测试性。 MainWindow 类是 View&a…...

点云的Python均值采样

一、代码 Python import numpy as np import open3d as o3ddef mean_sampling(point_cloud, num_samples=None, depth=None, method=knn, k=10):"""对点云进行均值下采样。:param point_cloud: Open3D PointCloud对象:param num_samples: (仅当method=knn时使…...

xss-labs 11-13通关记录

前言 最近复习xss知识&#xff0c;整理一下xss的绕过思路。 level11 观察测试: 1.四个隐藏参数标签 2.全部get传参一遍发现t_sort可赋值&#xff0c;使用的是get传参 3.针对t_sort测试过滤的字符 t_sort< > & ; " 检测到他除了<>,别的全部过滤。 因为…...

Unity类银河恶魔城学习记录12-2 p124 Character Stats UI源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI_Statslot.cs using System.Collections; using System.Collections.Gen…...

技术揭秘:如何打造完美互动的充电桩硬件与服务平台?

充电桩平台全套源码地址 https://gitee.com/chouleng/cdzkjjh.git 这张图像是一个系统或服务的架构图。以下是对图中各个部分的描述&#xff1a; 前端&#xff1a; 位于图像的顶部&#xff0c;颜色为浅绿色。用户服务端&#xff1a; 紧邻前端&#xff0c;颜色为淡黄色。设备服…...

【Django学习笔记(四)】JavaScript 语言介绍

JavaScript 语言介绍 前言正文1、JavaScript 小案例2、代码位置2.1 在当前 HTML 文件中2.2 在其他 js 文件中 3、代码注释3.1 HTML的注释3.2 CSS的注释3.3 Javascript的注释 4、变量 & 输出4.1 字符串4.2 数组4.3 对象(python里的字典) 5、条件语句6、函数7、DOM7.1 根据 I…...

IO和NIO的主要区别在哪里?

Java 中的 IO&#xff08;输入/输出&#xff09;和 NIO&#xff08;新输入/输出&#xff09;都是处理输入和输出操作的方式&#xff0c;它们的主要区别在于如何处理数据的读写。 阻塞与非阻塞: IO是阻塞的&#xff0c;这意味着当一个线程调用read()或write()时&#xff0c;该线…...

爬虫部署平台crawlab使用说明

Crawlab 是一个基于 Go 语言的分布式网络爬虫管理平台&#xff0c;它支持 Python、Node.js、Jar、EXE 等多种类型的爬虫。 Crawlab 提供了一个可视化的界面&#xff0c;并且可以通过简单的配置来管理和监控爬虫程序。 以下是 Crawlab 的一些主要优点&#xff1a; 集中管理&am…...

uniapp uni.scss中使用@mixin混入,在文件引入@include 样式不生效 Error: Undefined mixin.(踩坑记录一)

问题&#xff1a; 在uni.scss文件定义mixin 2. 在vue文件引入: 3. 出现报错信息: 4. 问题思考&#xff1a; 是不是需要引入uni.scss &#xff1f; 答案不需要 uni.scss是一个特殊文件&#xff0c;在代码中无需 import 这个文件即可在scss代码中使用这里的样式变量。uni-app的…...

Redis的5大常见数据类型的用法

上一篇文章我们讲了Redis的10大应用场景&#xff0c;这一篇文章就针对Redis的常用数据结构进行一个说明&#xff0c;通过示例的形式演示每一种数据结构如何使用。 当涉及Redis的数据操作时&#xff0c;不同数据类型对应的不同数据结构&#xff0c;如下就对5大常用的数据类型进行…...

刘小光本就疑心赵本山与他媳妇李琳有染,赵本山为证实清白便想起蛋糕上的字,结果呢?

刘小光本就疑心赵本山与他媳妇李琳有染&#xff0c;赵本山为证实清白便想起蛋糕上的字&#xff0c;结果呢&#xff1f; ——小品《生日快乐》&#xff08;中5&#xff09;的台词 &#xff08;接上&#xff09; 赵本山&#xff1a;噢!对对!那谁&#xff0c;老四&#xff0c;是…...

Unity之PUN实现多人联机射击游戏的优化(Section 2)

目录 &#x1f3ae;一、准备工作 &#x1f3ae;二、实现手雷投掷动作 &#x1f3ae;三、手雷投掷同步 &#x1f4a4;3.1 photonView.RPC &#x1f3ae;四、同步手雷伤害 这几周都给我布置任务了&#xff0c;最近可忙。现在终于有机会更新了&#xff0c;也谢谢大家的阅读&a…...

AI 入门 30 天挑战 - Day 28 - 前沿技术概览

&#x1f31f; 完整项目和代码 本教程是 AI 入门 30 天挑战 系列的一部分&#xff01; &#x1f4bb; GitHub 仓库: https://github.com/Lee985-cmd/AI-30-Day-Challenge&#x1f4d6; CSDN 专栏: https://blog.csdn.net/m0_67081842?typeblog⭐ 欢迎 Star 支持&#xff01;…...

Blender 3MF插件:终极3D打印工作流解决方案

Blender 3MF插件&#xff1a;终极3D打印工作流解决方案 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 在3D打印的世界里&#xff0c;你是否曾为文件格式转换而头疼&…...

Hotkey Detective:Windows热键冲突终极解决方案与实战指南

Hotkey Detective&#xff1a;Windows热键冲突终极解决方案与实战指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是…...

别再傻傻分不清!舵机、步进、无刷、永磁同步,这四种电机到底怎么选?

电机选型实战指南&#xff1a;舵机、步进、无刷与永磁同步的黄金法则 在机器人关节调试现场&#xff0c;一位工程师盯着反复抖动的机械臂摇头&#xff1a;"早知道该用无刷电机..."&#xff1b;创客空间里&#xff0c;几个学生围着一台失控的3D打印机争论&#xff1a…...

5G上行免调度传输:开启无线通信新篇章

5G上行免调度传输&#xff1a;开启无线通信新篇章 在无线通信技术不断演进的浪潮中&#xff0c;5G以其高速率、低时延和大连接等特性&#xff0c;成为推动社会数字化转型的关键力量。其中&#xff0c;上行免调度传输作为5G技术体系中的一个重要环节&#xff0c;正逐步展现出其独…...

HelmWave实战:声明式编排Kubernetes多Chart部署与GitOps集成

1. 项目概述&#xff1a;HelmWave&#xff0c;一个被低估的Helm编排利器如果你和我一样&#xff0c;长期在Kubernetes环境中管理着几十甚至上百个Helm Chart&#xff0c;那你一定对“Helm依赖地狱”和“多环境部署同步”这两个词深有感触。每次更新&#xff0c;手动执行一堆hel…...

crawdad-openclaw:构建高韧性智能爬虫的模块化框架实战

1. 项目概述&#xff1a;一个为数据抓取而生的开源“机械爪”如果你和我一样&#xff0c;在数据工程或网络爬虫领域摸爬滚打过几年&#xff0c;那你一定经历过这样的时刻&#xff1a;面对一个结构复杂、反爬机制严密的网站&#xff0c;你精心编写的爬虫脚本在运行了几个小时后&…...

鸿蒙一气总论(八)

第八卷 古今气运历史兴衰天道规律卷首引天地有气运&#xff0c;一气有盈亏&#xff1b; 万象有消长&#xff0c;人世有兴衰。天运为纲&#xff0c;地运为基&#xff0c;人运为果。 朝代更迭、世道治乱、民心淳漓、文明起落&#xff0c; 从来不是偶然人事&#xff0c;不是强弱输…...

CANN/ops-nn 去量化SwiGLU量化算子

DequantSwigluQuant 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库&#xff0c;实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系…...

【信息科学与工程学】【通信工程】第二篇 网络的主要算法03 主要函数(1)L1物理层函数<3>

L1物理层函数全集:数字调制与解调函数 2.1 基本调制函数 (200+函数) 2.1.1 幅度键控(ASK)函数族 (30+函数) 二进制ASK(2-ASK/BASK) 函数名称 数学表达式/算法 调制参数 信号波形 应用场景 ask_modulate_binary() s(t)={Acos(2πfc​t)0​bit=1bit=0​ 幅度A, 载频f…...