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

shell脚本命令(一)

shell脚本命令(一)

一、Shell 基础知识

Shell的基本概念

定义: Shell 是操作系统中的命令解释器,位于用户与操作系统内核之间。它接收并解释用户输入的命令,将任务传递给操作系统内核执行,然后将执行结果返回给用户。Shell 使得用户能够通过命令行与操作系统交互,控制和管理计算机的各种资源和应用。Shell 是系统与用户之间的桥梁,通过 Shell,用户可以直接控制操作系统进行文件操作、程序执行、系统配置等。

Shell 脚本:

Shell 脚本是由一系列 Shell 命令组成的文件,可以自动执行任务,通常用于简化和自动化操作。Shell 脚本是一种解释型语言,不需要编译,它会逐行解释并执行脚本中的命令。通过编写 Shell 脚本,用户可以在多个操作系统中执行相同的任务,而无需手动输入每一条命令。

Shell 脚本的主要用途:

自动化任务:通过编写 Shell 脚本,用户可以自动执行重复性的任务,如文件备份、日志分析、定时任务等。 批量文件管理:Shell 脚本可以处理大量文件的管理任务,如批量重命名、移动、删除或修改文件内容等。 系统命令执行:系统管理员常常使用 Shell 脚本执行操作系统命令,如安装软件包、配置系统设置、管理用户权限等。 程序调度:Shell 脚本可与任务调度程序(如 cron)结合,定期执行特定任务,例如定时备份、数据清理等。 网络服务管理:Shell 脚本广泛用于配置和管理网络服务,例如启动和停止 Web 服务器、数据库服务器等。 常见Shell类型

/bin/sh:传统的Shell,最早由Steve Bourne在1970年代开发,因此也称为 Bourne Shell。许多脚本使用 /bin/sh 作为默认的Shell解释器。在现代Linux系统中,/bin/sh 通常是指向其他Shell(如 bash 或 dash)的符号链接。

/bin/bash:Bash(Bourne Again Shell)是Linux中最常用的Shell,它是Bourne Shell的增强版本,增加了更多的功能和灵活性,比如命令补全、历史命令、数组支持等。几乎所有Linux用户都在使用Bash作为默认Shell。

/bin/dash:Dash(Debian Almquist Shell)是一个轻量级、高效的Shell,常用于需要快速启动和执行脚本的场景,特别是在Debian及其衍生发行版中。与 bash 相比,dash 提供的功能较少,但它遵循POSIX标准并执行速度更快,因此被许多系统(如Ubuntu)选择作为 /bin/sh 的实现。dash 适用于那些没有依赖 bash 特有功能的脚本,并且在执行效率上有优势。

/sbin/nologin 和 /usr/sbin/nologin:这两者并不是Shell,而是一个特殊的程序,用于阻止某些用户通过Shell登录系统。通常,系统管理员或受限账户(例如服务账户)会被配置为使用这类Shell,以防止他们直接访问系统。这些Shell会向用户显示一条“登录已禁用”的消息,并拒绝任何登录尝试。

Shell脚本的特点

解释型语言:Shell 脚本属于解释型语言,不需要事先编译。Shell 解释器会逐行解析并执行脚本中的命令,适合快速开发和调试,尤其是在系统管理和自动化任务中。 交互性:Shell 提供了交互式命令行界面,支持用户在运行脚本时与其交互。用户可以在脚本执行过程中提供输入,根据输入的内容,脚本可以执行不同的操作。 灵活性:Shell脚本支持多种命令类型,包括内置命令、外部命令、以及通过脚本自定义的命令。通过控制结构(如条件语句、循环语句等),Shell脚本能够执行复杂的逻辑和任务。 可移植性:大多数 Shell 脚本可以在不同的操作系统和Shell解释器上运行。虽然有些Shell具有特定的功能,Shell脚本在不同系统上的兼容性通常较好,可以帮助开发人员实现跨平台自动化任务。

sh和source

sh和source的区别在于颜色,更加醒目,其他没区别

简单变量创建

name="xiaoyu"echo $name
age="18"echo $ageecho my name is $name, my age is $age

单引号与双引号的区别

  • 单引号:所见即所得,即将单引号内的内容原样输出,任何字符都只会当成普通字符,除了单引号本身。

  • 双引号:把双引号内的内容输出出来,如果内容中有命令、变量等,会先把变量、命令解析出结果,然后再输出最终内容。

指定删除某个变量

unset name

查找某个指定变量

set | grep name

运行shell脚本

  • ./:表示当前目录。如果没有 ./,Shell 会在系统的 PATH 环境变量中查找该脚本,而不会默认查找当前目录。使用 ./ 使脚本能够在当前目录下执行。

source 1.sh
sh 1.sh
./1.sh

相关文章:

shell脚本命令(一)

shell脚本命令(一) 一、Shell 基础知识 Shell的基本概念 定义: Shell 是操作系统中的命令解释器,位于用户与操作系统内核之间。它接收并解释用户输入的命令,将任务传递给操作系统内核执行,然后将执行结果…...

一文理解多模态大语言模型——上

作者:Sebastian Raschka 博士, 翻译:张晶,Linux Fundation APAC Open Source Evangelist 编者按:本文并不是逐字逐句翻译,而是以更有利于中文读者理解的目标,做了删减、重构和意译&#xff0c…...

[代码随想录Day24打卡] 93.复原IP地址 78.子集 90.子集II

93.复原IP地址 一个合法的IP地址是什么样的: 有3个’.分割得到4个数,每个数第一个数不能是0,不能含有非法字符,不能大于255。 这个是否属于合法IP相当于一个分割问题,把一串字符串分割成4部分,分别判断每…...

去哪儿大数据面试题及参考答案

Hadoop 工作原理是什么? Hadoop 是一个开源的分布式计算框架,主要由 HDFS(Hadoop 分布式文件系统)和 MapReduce 计算模型两部分组成 。 HDFS 工作原理 HDFS 采用主从架构,有一个 NameNode 和多个 DataNode。NameNode 负责管理文件系统的命名空间,维护文件和目录的元数据信…...

controller中的参数注解@Param @RequestParam和@RequestBody的不同

现在controller中有个方法:(LoginUserRequest是一个用户类对象) PostMapping("/test/phone")public Result validPhone(LoginUserRequest loginUserRequest) {return Result.success(loginUserRequest);}现在讨论Param("login…...

排序算法思维导图

冒泡排序 def bubble_sort(alist):j 0while j < len(alist):i 0while i < len(alist) - 1:if alist[i] > alist[i1]:alist[i], alist[i1] alist[i1], alist[i]i 1j 1li [34,556,235,7,56,45,63,35,23,4,875] bubble_sort(li) print(li) 选择排序 def select_s…...

ZYNQ试用于哪些场景

ZYNQ系列SoC&#xff08;System on Chip&#xff09;由于其独特的处理器与FPGA&#xff08;可编程逻辑&#xff09;集成设计&#xff0c;非常适合应用于多种需要高性能、灵活性和低功耗的场景。 以下是一些ZYNQ特别适用的场景&#xff1a; 嵌入式系统&#xff1a;ZYNQ的ARM处理…...

【03】Selenium+Python 八种定位元素方法

操作元素&#xff0c;需要先查找定位到对应的元素。 查找单个元素&#xff1a;driver.find_element() 返回是一个web element 对象 查找多个元素&#xff1a;driver.find_elements() 返回是一个list对象 By 是 Selenium 中一个非常重要的类&#xff0c;用于定位网页元素。 使…...

Java 自动资源管理(Auto Resource Management)详解

Java 自动资源管理&#xff08;Auto Resource Management&#xff09;详解 在Java编程中&#xff0c;资源的正确管理是开发过程中一个非常重要的环节。如果资源&#xff08;如文件、数据库连接、网络连接等&#xff09;未被正确释放&#xff0c;可能会导致资源泄漏&#xff0c…...

IT运维专家给年轻人一些职业上的建议

运维工作在现代企业中是非常重要的一环,保证系统的稳定性、可用性以及安全性对企业的正常运营至关重要。以下是我给年轻人的一些职业发展建议,希望能够帮助你们在运维领域找到方向并取得成功。 1. 夯实基础,扎实技术功底 精通操作系统与网络:运维工作需要深入理解操作系统…...

视图查询中投影裁剪规则的原理和解析 | OceanBase 查询优化

背景 在SQL查询中使用视图查询时&#xff0c;执行中可能会产生的较多的中间结果集。为了优化这类查询的执行&#xff0c;OceanBase 引入了投影裁剪规则。能够识别出父查询中未实际使用的列&#xff0c;并将这些列从视图查询的select列表中剔除&#xff0c;进而提升整体查询的性…...

利用Nginx在服务器上部署你的第一个静态页面

文章目录 序言Nginx常用功能1. 反向代理2.负载均衡轮询加权轮询IP_Hash Nginx配置文件结构安装并部署你的静态网页1. 安装(懒人直接看3)2.查看配置文件3.编写或放入自己的静态页面文件 序言 首先我们先来认识一下什么是Nginx源码 官网 Nginx (engine x) 是一个高性能的HTTP和…...

【拥抱AI】RAG如何通过分析反馈、识别问题来提高命中率

分析用户反馈并识别问题是持续优化RAG系统的重要步骤。这不仅可以帮助你了解系统的当前表现&#xff0c;还可以指导未来的改进方向。直接进入正题&#xff0c; 1. 收集用户反馈 方法 问卷调查&#xff1a;设计问卷&#xff0c;让用户填写他们对系统输出的满意度、易用性等方…...

内核模块签名验证

安装内核模块报错 今天在调试地平线 J6 板子时&#xff0c;安装自己编译的内核模块报错 roothobot:/tmp# insmod hobot_eth_j6.ko insmod: ERROR: could not insert module hobot_eth_j6.ko: Key was rejected by service前两天刚在 x86 电脑上解决过这个问题&#xff0c;参…...

C++模板(入门)

文章目录 泛型编程函数模板函数模板的概念函数模板格式函数模板的原理函数模板的实例化隐式实例化显示实例化模板参数的匹配 类模板为什么有类模板类模板的定义格式类模板的实例化Stack模板类的简单实现&#xff08;不涉及深拷贝&#xff09; 模板的注意问题模板不支持分离编译…...

如何在Python中进行数学建模?

数学建模是数据科学中使用的强大工具&#xff0c;通过数学方程和算法来表示真实世界的系统和现象。Python拥有丰富的库生态系统&#xff0c;为开发和实现数学模型提供了一个很好的平台。本文将指导您完成Python中的数学建模过程&#xff0c;重点关注数据科学中的应用。 数学建…...

C++优质学习资源汇总

1 学懂C语言-C核心编程精讲 学懂C语言-C核心编程精讲 该课程基本把面试所需要的C常用的网络等教程均进行讲解&#xff0c;满足基本需求...

心情追忆:构建支付模块的五个基本接口设计

之前&#xff0c;我独自一人开发了一个名为“心情追忆”的小程序&#xff0c;旨在帮助用户记录日常的心情变化及重要时刻。我从项目的构思、设计、前端&#xff08;小程序&#xff09;开发、后端搭建到最终部署。经过一个月的努力&#xff0c;通过群聊分享等方式&#xff0c;用…...

数据库导论

data 数据是数据库中存储的基本数据&#xff0c;描述事物的符号称为数据。 DB 数据库是长期存储在计算机内&#xff0c;有组织&#xff0c;可共享的大量数据的集合。数据库中的数据按照一定的数据模型组织&#xff0c;描述和存储&#xff0c;具有较小的冗余度&#xff0c;较…...

echarts使用示例

柱状图折线图 折柱混合&#xff1a;https://echarts.apache.org/examples/zh/editor.html?cmix-line-bar option {title:{show: true},tooltip: {trigger: axis,axisPointer: {type: cross,crossStyle: {color: #999}}},toolbox: {feature: {dataView: { show: true, readOnl…...

选修课(Java Python JS C++ C )

题目描述 现有两门选修课,每门选修课都有一部分学生选修,每个学生都有选修课的成绩,需要你找出同时选修了两门选修课的学生,先按照班级进行划分,班级编号小的先输出,每个班级按照两门选修课成绩和的降序排序,成绩相同时按照学生的学号升序排序。 输入描述 第一行为第…...

《解锁 C++数据读写秘籍:赋能人工智能训练》

在人工智能蓬勃发展的时代&#xff0c;数据无疑是驱动模型学习与成长的核心燃料。而 C作为一门高性能编程语言&#xff0c;在处理人工智能训练所需数据集的读取与写入时&#xff0c;有着独特的优势与关键作用。高效地运用 C进行数据操作&#xff0c;能够显著加速训练进程&#…...

23种设计模式-外观(Facade)设计模式

文章目录 一.什么是外观设计模式&#xff1f;二.外观设计模式的特点三.外观设计模式的结构四.外观设计模式的优缺点五.外观设计模式的 C 实现六.外观设计模式的 JAVA 实现七.代码解析八.总结 类图&#xff1a; 外观设计模式类图 一.什么是外观设计模式&#xff1f; 外观设计模…...

ReactPress(阮一峰推荐工具):一款基于Next.js的免费开源博客CMS系统

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎Star。 此项目是用于构建博客网站的&#xff0c;包含前台展示、管理后台和后端。 此项目是基于 React antd NestJS NextJS MySQL 的&#xff0c;项目已经开源&#xff0c;项目地址在 …...

什么是缓存击穿?如何避免之布隆过滤器

缓存击穿&#xff08;Cache Penetration&#xff09;是分布式系统和缓存使用中的一个常见问题&#xff0c;布隆过滤器在解决缓存击穿问题时非常有用。接下来我会介绍缓存击穿的概念以及布隆过滤器在解决该问题中的应用。 什么是缓存击穿&#xff1f; 缓存击穿是指当大量的客户…...

React 第八节组件生命周期钩子-类式组件,函数式组件模拟生命周期用法

概述 React组件的生命周期可以分为三个主要阶段&#xff1a; 挂载阶段&#xff08;Mounting&#xff09;&#xff1a;组件被创建&#xff0c;插入到DOM 树的过程&#xff1b; 更新阶段&#xff08;Updating&#xff09;&#xff1a;是组件中 props 以及state 发生变化时&#…...

java虚拟机——如何排查jvm问题

在项目中排查JVM问题是一个系统性的过程&#xff0c;涉及到多个工具和方法。以下是一些常见的步骤和工具&#xff0c;可以帮助你有效地诊断和解决JVM相关的问题&#xff1a; 1. 监控和日志 日志分析 JVM日志&#xff1a;启用JVM的日志记录功能&#xff0c;查看垃圾收集日志、…...

Altium Designer PCB设计检查工具1

此工具最大的特点是不需要联网&#xff0c;完全使用本地的计算资源即可实现检查统计操作&#xff0c;可用于不能联网的应用场景中。此工具支持多种计算加速方法&#xff0c;支持调用CUDA显卡进行数据处理&#xff0c;此功能需要计算机安装Matlab 2016以上版本&#xff0c;并需要…...

统计词频

目标&#xff1a;统计词频 从文件1.txt &#xff0c;读取内容&#xff0c;保存在一个字符串中统计字符串中&#xff0c;每个单词出现的频率对结果进行排序把最后的结果写入一个新的文件 import java.io.PrintWriter import scala.io.Source//知识点&#xff1a; //1.字符串&a…...

串,数组,广义表相关知识点

串 一.串的储存 1.基本概念 2.顺序储存 3.链式储存 二. 串的模式匹配算法 1.BF算法 将主串的第pos个字符和模式的第一个字符比较&#xff0c; 若相等&#xff0c;继续逐个比较后续字符&#xff1b; 若相等&#xff0c;继续逐个比较后续字符&#xff1b; 若不等&#xff0c…...

Leetcode 131 Palindrome Partition

题意 把一个字符串分割成多个回文字符串的partition&#xff0c;返回所有的可能partion 链接 https://leetcode.com/problems/palindrome-partitioning/description/ 思考 这只是dfs套了一个回文问题 题解 dfs每次截取一段字符串&#xff0c;判断是否是回文 退出条件是遍…...

git使用文档手册

创建一个本地代码工作空间&#xff0c;比如这里使用test目录作为工作目录 针对仓库地址 http://192.168.31.125:9557/poxiaoai-crm/project-crm.git。 1. 安装 Git 确保您的系统已经安装了 Git。如果未安装&#xff0c;请根据操作系统访问 Git 官网 下载并安装。 验证安装 …...

开发需求总结19-vue 根据后端返回一年的数据,过滤出符合条件数据

需求描述&#xff1a; 定义时间分界点&#xff1a;每月26号8点&#xff0c;过了26号8点则过滤出data数组中符合条件数据下个月的数据&#xff0c;否则过滤出当月数据 1.假如现在是2024年11月14日&#xff0c;那么过滤出data数组中日期都是2024-11月的数据&#xff1b; 2.假如…...

android 安全sdk相关

前述 在网上有看到许多android安全sdk相关的内容&#xff0c;有重复的也有比较新鲜的内容&#xff0c;这里做一个整体的合集&#xff0c;以及后续又看到一些比较新的东西会一起放在这里。 android内sdk目前可以分为以下几个部分&#xff08;有一些部分可能会存在一些重合&#…...

ChemBench—— 探索大语言模型在化学领域的新基准框架是否胜过化学专家

概述 大规模语言模型是一种机器学习模型&#xff0c;通过学习大量文本来生成文本。这些模型的能力正在迅速提高&#xff0c;现在已经可以通过美国国家医学考试。它们还可以与网络搜索和合成规划器等工具结合使用&#xff0c;自主设计化学反应和进行实验。 一些人认为这些模型…...

[SWPUCTF 2021 新生赛]Do_you_know_http

访问告诉我们要用WLLM 浏览器模式访问 import requestsurl http://node7.anna.nssctf.cn:23148/hello.php # 替换为题目提供的URL headers {User-Agent: WLLM } response requests.get(url, headersheaders) print(response.text)import requestsurl http://node7.anna.n…...

Flink--API 之 Source 使用解析

目录 一、Flink Data Sources 分类概览 &#xff08;一&#xff09;预定义 Source &#xff08;二&#xff09;自定义 Source 二、代码实战演示 &#xff08;一&#xff09;预定义 Source 示例 基于本地集合 基于本地文件 基于网络套接字&#xff08;socketTextStream&…...

vscode可以编译通过c++项目,但头文件有红色波浪线的问题

1、打开 VSCode 的设置&#xff0c;可以通过快捷键 Ctrl Shift P 打开命令面板&#xff0c;然后搜索并选择 “C/C: Edit Configurations (JSON)” 命令&#xff0c;这将在 .vscode 文件夹中创建或修改 c_cpp_properties.json 文件 {"configurations": [{"name…...

CTF之密码学(培根密码)

培根密码&#xff0c;又名倍康尼密码&#xff08;Bacons cipher&#xff09;&#xff0c;是由法兰西斯培根发明的一种隐写术&#xff0c;属于密码学领域的一种替换密码。以下是关于培根密码的详细介绍&#xff1a; 一、原理 培根密码本质上是一种二进制密码&#xff0c;但它没…...

摄像头原始数据读取——V4L2(mmap模式,V4L2_MEMORY_MMAP)

摄像头原始数据读取——V4L2(mmap模式,V4L2_MEMORY_MMAP) 内存映射模式&#xff0c;是将设备在内核态申请的用于存储视频数据的物理内存映射到用户空间&#xff0c;使得用户应用程序可以直接访问和操作设备数据物理内存&#xff0c;避免了数据的拷贝。因此采集速度较快&#x…...

Ubuntu20.04下安装Matlab2018

Ubuntu20.04下安装Matlab2018 首先需要下载三个文件 挂载第一个镜像文件 先进入到终端&#xff0c;在空白处点击在终端打开 然后输入以下两个命令&#xff1a; mkdir ~/matlab //用户主目录下新建文件夹 matlab sudo mount -o loop Matlab911R2021b_Lin64.iso ~/matlab //将…...

如何做好一份技术文档?

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于技术文档写作的相关内容&#xff01; 关…...

GitHub上如何创建文件夹及上传文件

GitHub上如何创建文件夹_github如何添加文件夹-CSDN博客 然后在对应的文件夹下上传文件即可 可以一个一个添加或一次性拖进去&#xff0c;但一次不能超过100个文件。...

GESP C++等级考试 二级真题(2024年9月)

若需要在线模拟考试&#xff0c;可进入题库中心&#xff0c;在线备考&#xff0c;检验掌握程度&#xff1a; https://www.hixinao.com/tidan/exam-157.html?time1732669362&sid172&index1...

Web 表单开发全解析:从基础到高级掌握 HTML 表单设计

文章目录 前言一、什么是 Web 表单?二、表单元素详解总结前言 在现代 Web 开发中,表单 是用户与后端服务交互的重要桥梁。无论是用户登录、注册、搜索,还是提交反馈,表单都无处不在。在本文中,我们将从基础入手,全面解析表单的核心知识点,并通过示例带你轻松掌握表单开…...

SpringBoot生成顺序规则编号-查询数据库方式实现

先说编号规则&#xff1a; 前缀yyyyMMdd5位序号&#xff08;00001,00002.......&#xff09; 首先说说思路&#xff1a; 首先是查询数据库中编号的最大值是多少----->没有数据直接生成一个新的从00001开始----->存在编号就直接截取编号的后5位----->序号1 为了可以…...

【大数据学习 | Spark-Core】RDD的五大特性(包含宽窄依赖)

分析一下rdd的特性和执行流程 A list of partitions 存在一系列的分区列表A function for computing each split 每个rdd上面都存在compute方法进行计算A list of dependencies on other RDDs 每个rdd上面都存在一系列的依赖关系Optionally, a Partitioner for key-value RDDs…...

docker离线安装linux部分问题整理

0:离线安装docker过程命令 echo $PATH tar -zxvf docker-26.1.4.tgz chmod 755 -R docker cp docker/* /usr/bin/ root 权限 vim /etc/systemd/system/docker.service --------- [Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.do…...

shell(5)字符串运算符和逻辑运算符

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…...

容器和它的隔离机制

什么是容器和它的隔离机制&#xff1f; 容器 是一种轻量化的虚拟化技术&#xff0c;它允许多个应用程序共享同一个操作系统&#xff08;OS&#xff09;内核&#xff0c;同时为每个应用程序提供自己的运行环境。容器通过利用 Linux 的内核功能&#xff08;如 Namespaces 和 Cgr…...