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

Linux shell编程

       Shell脚本入门

        touch helloWorld.sh            【创建脚本文件】

       vim    helloWorld.sh              【编辑文件】

             以#!/bin/bash开头

                echo  "helloWorld"

     调用脚本 方式一:bash  【绝对路径|相对路径】

                    方式二:chomd +x  helloWorld.sh

                                    绝对路径或者相对路径

                     方式三:在脚本文件路径上加上"."或者source

 变量

      系统预定义变量

               $HOME $PWD     $SHELL $USER

      自定义变量

                 变量名=变量值 【不可有空格】

                 使用输出时要加上$

      特殊变量

             $n   功能描述:n 为数字,$0 代表该脚本名称,$1-$9 代表第一到第九个参数,十以

上的参数,十以上的参数需要用大括号包含,如${10}
            $#    功能描述:获取所有输入参数个数,常用于循环,判断参数的个数是否正确以及
加强脚本的健壮性)
            $*    功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
            $@  功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待 
            $?  功能描述:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一
个命令正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明
上一个命令执行不正确了。)

运算符 

     $((运算式))    $[运算式]

 条件判断 [ ]       

         (1)两个整数之间比较
                            -eq 等于(equal)
                            -ne 不等于(not equal)
                            -lt 小于(less than)
                            -le 小于等于(less equal)
                            -gt 大于(greater than)
                            -ge 大于等于(greater equal)
                            注:如果是字符串之间的比较 ,用等号“=”判断相等;用“
                                  !=”判断不等。
          (2)按照文件权限进行判断
                            -r 有读的权限(read)
                           -w 有写的权限(write
                            -x 有执行的权限(execute)
(3)按照文件类型进行判断
                           -e 文件存在(existence)
                            -f 文件存在并且是一个常规的文件(file)
                            -d 文件存在并且是一个目录(directory)

        

流程控制     

   if判断                

          if[判断表达式] 

          then 程序

          elseif[判断表达式]

          fi 

   case语句

          case $变量名 in

          "值1") 

                    程序

            ;;

            *)

                    程序

             ;;

              esac

      for循环

          for((i=0;i<=100;i++))     【for 变量 in 值1,值2,值3】

          do

               程序

           done

      while循环

              while [条件判断]

              do

                       程序

                done

read读取控制台输入

      read -p【提示符】 -t【时间截止】 参数 读取值的参数

函数

        basename    可以理解为取路径里的文件名称  

        使用方式 basename  路径  后缀名

         dirname      理解为取文件路径的绝对路径名称

    自定义函数

             function 函数名()

            {

                可以后return语句

              }

    正则表达式

            ^   eg: ^a 匹配以a为开头

            $  eg:    a$ 匹配以a为结尾

            .     任意一个字符

            *      出现0或多个字符

            [] 字符区间                    

[ ] 表示匹配某个范围内的一个字符,例如
[6,8]------匹配 6 或者 8
[0-9]------匹配一个 0-9 的数字
[0-9]*------匹配任意长度的数字字符串
[a-z]------匹配一个 a-z 之间的字符
[a-z]* ------匹配任意长度的字母字符串
[a-c, e-f]-匹配 a-c 或者 e-f 之间的任意字符
           \ 表示转义

文本处理工具

         cut

                cut 的工作就是,具体的说就是在文件中负责剪切数据用的。cut 命令从文件的每
一行剪切字节、字符和字段并将这些字节、字符和字段输出。

                   

          awk

  

搜索 passwd 文件以 root 关键字开头的所有行,并输出该行的第 7

 awk -F : '/^root/{print $7}' passwd

 

归档文件
         

 发送消息

 

       

      

        

相关文章:

Linux shell编程

Shell脚本入门 touch helloWorld.sh 【创建脚本文件】 vim helloWorld.sh 【编辑文件】 以#!/bin/bash开头 echo "helloWorld" 调用脚本 方式一&#xff1a;bash 【绝对路径|相对路径】 方式二&#xff1a;chomd x helloWorld.sh 绝对…...

Rasa 3.x 学习系列-Rasa [3.5.4] -2023-04-05新版本发布

Rasa 3.x 学习系列-Rasa [3.5.4] -2023-04-05新版本发布 Rasa Pro 3.5 中引入的两项新功能将帮助您更好地测试和保护您的 AI 助手:端到端测试和机密管理。 端到端测试 通过全面的验收和集成测试评估 AI 助手的性能。我们易于更新的端到端测试可以设置为运行每个流程和集成,…...

进程和线程

1.实现多线程 进程&#xff1a;是正在运行的程序 是系统进行资源分配和调用的独立单位 每一个进程都有它自己的内存空间和系统资源 线程&#xff1a;是进程中的单个顺序控制流&#xff0c;是一条执行路径 单线程&#xff1a;一个进程如果只有一条执行路径&#xff0c;则称为单线…...

ps 备忘清单_开发速查表分享

ps 命令速查备忘清单 Linux我们提供了一个名为 ps 的实用程序&#xff0c;用于查看与系统上的进程相关的信息&#xff0c;它是 Process Status 的缩写这份 ps 命令备忘清单的快速参考列表&#xff0c;包含常用选项和示例。入门&#xff0c;为开发人员分享快速参考备忘单。 开…...

【ROS】基于WIFI网络实现图像消息跨机实时传输

【开发背景】 研究机器人目标检测算法的时候&#xff0c;常常需要把推理图像实时展示出来&#xff0c;以供观摩。而ROS1提供的跨机通信方法&#xff0c;要么是配置单Master&#xff0c;要么是配置多Master&#xff1b;一方面配置麻烦&#xff0c;另一方面传输效率低下&#xf…...

一次性说清楚 JAVA的 ThreadPoolExecutor 、newFixedThreadPool 和newCachedThreadPool 等

目录 1、Executors.newCachedThreadPool() 与 Executors.newFixedThreadPool(n) 的区别是什么&#xff1f; 2、Executors.newCachedThreadPool() 与 Executors.newFixedThreadPool(n) 可以调参吗&#xff0c;比如线程大小&#xff0c;线程等待时间 等等 3、newCachedThreadP…...

Android双目三维重建:Android双目摄像头实现双目测距

Android双目三维重建&#xff1a;Android双目摄像头实现双目测距 目录 Android双目三维重建&#xff1a;Android双目摄像头实现双目测距 1.开发版本 2.Android双目摄像头 3.双目相机标定 (1)双目相机标定-Python版 (2)双目相机标定-Matlab版 4.相机参数配置 5.Android 双…...

解决Avoid using non-primitive value as key, use string/number value instead.

Avoid using non-primitive value as key, use string/number value instead. 意思是&#xff1a;避免使用非基本值作为键&#xff0c;而是使用字符串/数字值。 Duplicate keys detected: [object Object]. This may cause an update error. 意思是&#xff1a;检测到重复键:[o…...

重构·改善既有代码的设计.03之重构手法(上)

1. 前言 之前的重构系列中&#xff0c;介绍了书中提到的重构基础&#xff0c;以及识别代码的坏味道。今天继续第三更&#xff0c;讲述那些重构手法&#xff08;上&#xff09;。看看哪些手法对你的项目能有所帮助… 2. 重新组织函数 对函数进行整理&#xff0c;使之更恰当的…...

闭关修炼(0.0 pytorch基础学习)1

基于官网pytorch.org pytorch 动态 比较优秀 py3.7支持是最多的啦 原来anaconda 是蟒蛇的意思 细思极恐 python 是蛇 yi Introduction to PyTorch Tensors — PyTorch Tutorials 2.0.0cu117 documentation omygaga 英语极差 哈哈哈 tensor 多维数组 矩阵二维数组 Tensor…...

个人-计算机操作系统第一章

一、章节习题 1.操作系统的目标与应用环境有关&#xff0c;如分时系统&#xff0c;希望能提供良好的&#xff08;&#xff09;能力。 A、批处理B、可靠性C、稳定性D、人-机交互 2.&#xff08;&#xff09;是应用程序取得OS所有服务的唯一途径。 A、系统调用B、作业调度C、键…...

Python-责任链模式

介绍 责任链模式是一种行为型设计模式&#xff0c;它允许多个对象以链式的形式依次处理请求&#xff0c;直到请求被处理或者无处理对象为止 实现方式 责任链模式由多个处理器组成&#xff0c;每个处理器都可以处理一种请求。如果当前处理器无法处理请求&#xff0c;它将把请…...

HIT 计统实验2 二进制炸弹(gdb破解版) 拆弹过程

CSAPP 实验2是一个很好玩的实验,网上有很多参考资源写的都很好&#xff0c;本文增加了一些具体细节。 想要我的炸弹可以私信我。 还得看形式语言 &#xff0c; 炸弹6 7 有时间再拆 第1章 实验基本信息 1.1 实验目的 熟练掌握计算机系统的ISA指令系统与寻址方式熟练掌握Linu…...

echart 半环渐变仪表盘

实现效果如图&#xff1a; op配置项代码&#xff1a; let Chart this.$echarts.init(document.getElementById(dashboard-1));let option {// backgroundColor: #040d2e,series: [// 中间灰色轴线{type: gauge,radius: 150%, // 位置center: [50%, 90%],startAngle: 180,end…...

【springboot】自动加载分析

文章目录问题SpringBootApplication注解AutoConfigurationPackages.Registrar类AutoConfigurationImportSelector类springboot如何加载其他的starter总结问题 为什么我们在使用springboot的时候&#xff0c;只需要在maven中导入starter就能够使用呢&#xff1f;这里来分析一下…...

ChatGPT批量翻译-ChatGPT批量生成多国语言

ChatGPT翻译的准吗 ChatGPT是一种基于Transformer架构的自然语言处理技术&#xff0c;其翻译准确性取决于所训练的模型和数据集的质量。在特定的语料库和训练数据下&#xff0c;ChatGPT可以实现一定程度的准确翻译。但是&#xff0c;与人工翻译相比&#xff0c;ChatGPT的翻译质…...

Symble

ES6引入了一种新的原始数据类型 Symbol&#xff0c;表示独一无二的值。它是JavaScript语言的第七种数据类型&#xff0c;是一种类似于字符串的数据类型。 Symbol特点 Symbol 的值是唯一的&#xff0c;用来解决命名冲突的问题 Symbol值不能与其他数据进行运算 Symbol定义的对…...

能在家里赚钱的工作有哪些?适合普通人的兼职项目

当下对于普通人而言&#xff0c;想在社会上找到一份舒心安逸的工作很难&#xff0c;特别是在薪酬待遇这方面&#xff0c;更是低得让人心寒。那么&#xff0c;如果能有一份在家就可以做的事情&#xff0c;而且是收入也不少&#xff0c;那将是很多普通人的最佳选择。在这里&#…...

创建SaaS产品帮助中心的关键步骤

帮助中心是一款SaaS产品必不可少的一部分&#xff0c;为了帮助用户更好的解决产品相关问题&#xff0c;提高新用户的使用体验&#xff0c;并且引导用户更好的使用产品&#xff0c;那么应该怎样制作帮助中心呢&#xff0c;每个产品帮助中心都需要有自己的风格&#xff0c;根据产…...

高频算法:Leetcode53 最大子数组和

今天讲的是Leetcode第53题&#xff0c;最大子数组和 首先观察题目&#xff0c;题目需要我们找出具有最大和的连续子数组&#xff0c;直接拿题目中的示例来做一个演示&#xff0c;找一找什么规律下的连续子数组才能得到最大的和 先从-2开始&#xff0c;-2 1 -1 此时我们的和…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

Unity3D中Gfx.WaitForPresent优化方案

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

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...

02.运算符

目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...

Python常用模块:time、os、shutil与flask初探

一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...