当前位置: 首页 > 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 此时我们的和…...

Leather Dress Collection 模型Java后端集成指南:SpringBoot微服务开发

Leather Dress Collection 模型Java后端集成指南&#xff1a;SpringBoot微服务开发 最近在做一个电商相关的项目&#xff0c;需要集成一个能生成皮革服饰设计图的AI模型&#xff0c;正好接触到了Leather Dress Collection。作为后端开发&#xff0c;我的第一反应就是&#xff…...

暗黑破坏神2终极单机优化:PlugY生存工具包完整指南

暗黑破坏神2终极单机优化&#xff1a;PlugY生存工具包完整指南 【免费下载链接】PlugY PlugY, The Survival Kit - Plug-in for Diablo II Lord of Destruction 项目地址: https://gitcode.com/gh_mirrors/pl/PlugY 厌倦了暗黑破坏神2单机模式的储物空间限制&#xff1f…...

深度学习项目训练环境多场景落地:自动驾驶小车图像识别项目快速启动

深度学习项目训练环境多场景落地&#xff1a;自动驾驶小车图像识别项目快速启动 你是不是也遇到过这样的问题&#xff1f;想跑一个深度学习项目&#xff0c;光是配环境就花了大半天&#xff0c;各种版本冲突、依赖报错&#xff0c;好不容易装好了&#xff0c;一运行又提示缺这…...

避坑指南:STM32磁编码器校准常见的5个错误及解决方案

STM32磁编码器校准实战&#xff1a;5个典型错误分析与高阶解决方案 磁编码器在步进电机控制系统中扮演着关键角色&#xff0c;而MT6816作为国产AMR技术代表芯片&#xff0c;其14位高精度输出为位置检测提供了可靠保障。但在实际校准过程中&#xff0c;开发者常会遇到CALI_Error…...

ReflectiveDLLInjection实战:从源码编译到进程注入完整流程

ReflectiveDLLInjection实战&#xff1a;从源码编译到进程注入完整流程 【免费下载链接】ReflectiveDLLInjection Reflective DLL injection is a library injection technique in which the concept of reflective programming is employed to perform the loading of a libra…...

别再折腾CUDA了!用Anaconda在Windows上一键搞定TensorFlow 2.5 GPU环境(附清华源配置)

告别CUDA版本地狱&#xff1a;Anaconda三分钟部署TensorFlow GPU全攻略 刚接触深度学习的开发者们&#xff0c;往往在第一步就被GPU环境配置劝退。CUDA与cuDNN的版本匹配问题像一道高墙&#xff0c;让无数Windows用户在TensorFlow门前徘徊。我曾见过同事花三天时间反复卸载重装…...

VisualVM JMX监控实战:MBean管理与应用指标收集

VisualVM JMX监控实战&#xff1a;MBean管理与应用指标收集 【免费下载链接】visualvm VisualVM is an All-in-One Java Troubleshooting Tool 项目地址: https://gitcode.com/gh_mirrors/vi/visualvm VisualVM是一款功能强大的Java故障排除工具&#xff0c;它集成了JMX…...

Chord - Ink Shadow 一键部署与测试:从零开始的完整链路验证

Chord - Ink & Shadow 一键部署与测试&#xff1a;从零开始的完整链路验证 最近在折腾大模型本地部署&#xff0c;发现了一个挺有意思的镜像&#xff0c;叫 Chord - Ink & Shadow。名字听起来有点神秘&#xff0c;其实它是一个集成了多种功能的智能模型镜像。网上关于…...

突破百度网盘限速限制:baidu-wangpan-parse工具的技术实现与应用指南

突破百度网盘限速限制&#xff1a;baidu-wangpan-parse工具的技术实现与应用指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 在数字资源获取日益频繁的今天&#xff0c;许…...

03-CAPL 常用函数大全

专栏&#xff1a;《CAPL 脚本编写实战指南》第 3 篇 作者&#xff1a;一线汽车电子测试工程师 适合人群&#xff1a;已掌握 CAPL 基础的测试人员、想系统学习 CAPL 函数的工程师开篇&#xff1a;为什么要学 CAPL 函数&#xff1f; 这是我刚学 CAPL 时的真实经历。 当时的情况&a…...