shell超基础入门(超详细)

news2024/11/21 2:32:27

♥️作者:小刘在C站

♥️个人主页: 小刘主页 

♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生!

♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术

♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSDN让你我相遇!

目录

1.shell的由来

2.什么是shell

3.shell可以干什么

补充:

4.shell变量

1)常用的系统环境变量

2) 变量中常用命令

5.变量分类

1)自定义变量

变量定义规则:

2)全局变量与局部变量

6.特殊变量

$n

$#

$*、$@


哈喽好久不见!大家好我是小刘,因为一些缘故我没有更新博文,也有一个月了,分享我在学习shell的有趣问题,谢谢大家一路陪伴!

1.shell的由来

在 AT&T 的 Dennis Ritchie 和 Ken Thompson 设计 UNIX™ 的时候,他们想要为用户创建一种与他们的新系统交流的方法。

那时的操作系统带有命令解释器。命令解释器接受用户的命令,然后解释它们,因而计算机可以使用这些命令。

但是 Ritchie 和 Thompson 想要的不只是这些功能,他们想提供比当时的命令解释器具备更优异功能的工具。这导致了 Bourne shell(通称为 sh)的开发,由 S.R. Bourne 创建。自从 Bourne shell 的创建,其它 shell 也被一一开发,如 C shell(csh)和 Korn shell(ksh)。

当自由软件基金会想寻求一种免费的 shell,开发者们开始致力于 Bourne shell 以及当时其它 shell 中某些很受欢迎的功能背后的语言。

2.什么是shell

shell是一个命令解释器,它在接受应用程序/用户命令时候调用操作系统内核进行解释,从而达到执行我们所输入的命令,获得结果。另外shell还是一个功能强大的编程语言,易编写,易调试,灵活性高。

shell在硬件与用户之间充当翻译官,这就是他的作用

3.shell可以干什么

shell是可以在我们生活或办公中实现自动化运维,自动化办公,编写脚本,等等

补充:

(1)在Linux中我们所输入命令的地方为bash终端控制台如以下:.

(2)shell脚本格式

shell脚本开头#!/bin/bash                  //指定shell脚本中解析器

查看Linux提供的shell解析器命令:

cat /etc/shellsd

(3)shell脚本的执行方法

bash    shell脚本路径

sh        shell脚本路径

以上为要启动bash子程序中进行运行脚本

source   shell脚本路径

.             shell脚本路径

以上为不用启动子bash程序进行运行脚本

4.shell变量

1)常用的系统环境变量

$HOME  $PWD   $SHELL  $VSER

2) 变量中常用命令

echo    $变量               //查看系统变量的值

env                        //查看系统所有的全局变量

set                     //查看当前所有定义的变量

5.变量分类

变量中可分为系统变量和用户自定义变量

1)自定义变量

基本语法:

                1.定义变量:变量=变量值           //注意=前后不可以有空格

                2.撤销变量:unset 变量名                

                3.声明静态变量:read  only  变量      //注意不能unset

变量定义规则:

(1)变量名称可以由字母,数字和下划线组成,但是不能以数字开头,环境变量名建议大写

(2)等号两侧不可以有空格

(3)在bash中.变量默认类型都是字符串类型,无法直接进行数值运算

(4)变量的值如果有空格,需要使用双引号或单引号括起来

2)全局变量与局部变量

变量又分全局变量与局部变量

全局变量:在子bash进程中也可以查看到

局部变量:在脱离创建变量的本控制台以后就无法查找到此变量

注意:在父bash中提升全局为全局可见,在子bash中改变量只在bash中生效退出子bash以后还原

exprot   局部变量             //局部变量前无需加$开头

unset:

unset     变量                 //将赋予变量的值撤销

readonly:

readonly                  //变量及赋值+

6.特殊变量

$n

1)语法
(功能描述:n 为数字,$0 代表该脚本名称,$1-$9 代表第一到第九个参数,十以$n上的参数,十以上的参数需要用大括号包含,如S$10

$#

2)语法
(功能描述:获取所有输入参数个数,常用于循环.判断参数的个数是否正确以及加强脚本的健壮性)。

$*、$@

1)本语法
$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)

$@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)

♥️关注,就是我创作的动力

♥️点赞,就是对我最大的认可

♥️这里是小刘,励志用心做好每一篇文章,谢谢大家

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

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

相关文章

财报解读:“百亿生态”成效初显,拼多多跨越S型曲线?

电商江湖再起变化,掀起浪潮者仍然是拼多多。 在这充满挑战与机遇的商业环境中,企业的发展轨迹正如S型曲线般,充满起伏和曲折,而拼多多的最新财报数据无疑已经展现出了与S曲线理论相契合的发展轨迹。它不仅在发展中不断进行战略调…

c++:QT day2 信号和槽

1.多态: 静态多态:函数的重载 动态多态:程序运行 多态的实现:父类的指针或引用,指向或初始化子类的对象,调用子类对父类重写的函数,进而展开子类的功能 2.虚函数:用virtua关键字修饰的函数是虚函…

信息技术04--初/高中--教学设计知识点梳理

文章目录 第一章 信息技术基础1.1 信息概念与特征1.1.1 信息的概念1.1.2 信息的特征 1.2 信息技术概述1.2.1 信息技术概念1.2.2 信息技术五次革命 1.3 信息的获取1.3.1 信息获取的过程:1.3.2 搜索引擎1.3.3 引擎符号 1.4 信息的表示和编码1.4.1 进制分类1.4.2 二进制…

字符函数和字符串函数(1)

C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组 中。字符串常量适用于那些对它不做修改的字符串函数。 目录 函数介绍 strlen strcpy strcat strcmp strncpy strncat strncmp s…

LINQ详解(查询表达式)

什么是LINQ? LINQ(语言集成查询)是将查询功能直接集成到C#中。数据查询表示简单的字符串,在编译时不会进行类型检查和IntelliSense(代码补全辅助工具)支持。 在开发中,通常需要对不同类型的数据源了解不同的查询语句,如SQL数据库…

⚠️ WinRAR 中的趋势漏洞 CVE-2023-38831

在漏洞区域 WinRAR 是一种流行的数据压缩程序。网络犯罪分子已经利用 CVE-2023-38831攻击交易者。 经纪账户面临风险 利用 CVE-2023-38831 漏洞,攻击者会创建 ZIP 压缩文件来传播各种恶意软件系列,如 DarkMe、GuLoader、Remcos RAT,并将其…

Zabbix --- Snmp Trap监控详细教程

一、zabbix服务器安装snmptrapd服务 1、安装服务 yum -y install net-snmp net-snmp-agent-libs net-snmp-devel net-snmp-libs net-snmp-perl net-snmp-utils 注:使用perl脚本解析trap信息并进行格式化,net-snmp-perl 2、zabbix启用snmptrap进程&…

react轮播图

这里 我用的是组件: 网址:Collapse 折叠面板 - Ant Design Mobile 1.首先 先声明一个变量 2、把需要的数据存存进去 3、组件内容复制过来(这里用到的是map循环) 然后图片就出来了 就是这个简单 哈哈哈哈!&#xff01…

【Unity-Cinemachine相机】虚拟相机(Virtual Camera)的本质与基本属性

我们可以在游戏进行时修改各个属性,但在概念上,最好将Virtual Camera 当作一种相机行为的“配置文件”,而不是一个组件。 我们的相机有几种行为就为它准备几种虚拟相机,比如角色移动就为它第三人称相机,瞄准就准备一个…

Linux——守护进程

简述 不受用户登录、注销影响的进程称为守护进程 特点 后台运行:守护进程在后台默默地执行任务,不与用户交互。它不会向终端输出信息,也不会从终端接收输入。 无终端关联:守护进程通常与任何终端会话(比如SSH会话&…

【c++5道练习题】①

目录 一、有限制的累加 二、计算日期到天数转换 三、仅仅反转字母 四、 字符串的第一个唯一字符 五、字符串最后一个单词的长度 一、有限制的累加 题述: 求123...n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句…

基于SpringBoot使用MyBatisPlus,MyBatisPlus标准数据层开发(CRUD)、MyBatisPlus分页功能的使用

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 MyBatisPlus基础 一、入门案例1.1 创建新模块&…

深入理解Python中的多进程和多线程

前言 此篇文章将深入的讲解Python中的多进程和多线程 📝个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列: ☄️爬虫JS逆向系列专栏 - 爬虫逆向教学 ☄️python系列专栏 - 从零开始学python 第一部分:多进程 多进程是指在操作系统中…

STL stack,queue,deque以及适配器

目录 stackstack的使用stack模拟实现 queuequeue的使用queue模拟实现 适配器deque stack stack的使用 下面是stack库中的接口函数,有了前面的基础,我们可以根据函数名得知函数的作用 函数说明stack()构造空栈empty()判断栈是否为空size()返回栈中元素…

keil5 快捷下载STM32系列芯片器件包的方法

以STM32H7系列的器件包为例,官网的下载网址为 https://sadevicepacksprodus.blob.core.windows.net/pack/Keil.STM32H7xx_DFP.3.1.1.pack 其中STM32H7xx为芯片系列编号,3.1.1为器件包的版本 如需下载其他系列和版本的器件包,只需把网址中的编号和版本换成对应的即可(前提是输入…

Websocket、SessionCookie、前端基础知识

目录 1.Websocket Websocket与HTTP的介绍 不同使用场景 Websocket链接过程 2.Session&Cookie Cookie的工作原理 Session的工作原理 区别 3.前端基础知识 1.Websocket Websocket与HTTP的介绍 HTTP: 1.HTTP是单向的,客户端发送请求&#xff0…

OWS.infg应用程序隐私政策

本软件尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本软件目前不会使用和披露您的个人信息。但本软件会不时更新本隐私权政策。您在同意本软件服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策…

OJ练习第154题——到家的最少跳跃次数

到家的最少跳跃次数 力扣链接:1654. 到家的最少跳跃次数 题目描述 有一只跳蚤的家在数轴上的位置 x 处。请你帮助它从位置 0 出发,到达它的家。 跳蚤跳跃的规则如下: 它可以 往前 跳恰好 a 个位置(即往右跳)。 它…

【数据结构】——查找、散列表的相关习题

目录 一、选择填空判断题题型一(顺序、二分查找的概念)题型二(分块查找的概念)题型三(关键字比较次数) 二、应用题题型一(二分查找判定树) 一、选择填空判断题 题型一(顺…

1、英飞凌-AURIX-TC297简介

目录 TC297简介TC297特点:系统优势最具创新性的安全应用场景 printf("欢迎关注公众号:Kevin的学习站/车载嵌入式探索者,博主建立了一个车规级开发交流群, 感兴趣的朋友可以关注公众号,加个人WX:_kevin…