shell超基础入门(超详细)

♥️作者:小刘在C站

♥️个人主页:************************************************************************************************************************************************************************************************************************************************************小刘主页****************************************************************************************************************************************************************************************************************************************************************

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

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

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

目录

1.shell的由来

2.什么是shell

3.shell可以干什么

补充:

4.shell变量

1)常用的系统环境变量

[2) 变量中常用命令](#2) 变量中常用命令)

5.变量分类

1)自定义变量

变量定义规则:

2)全局变量与局部变量

6.特殊变量

[n](#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解析器命令:

bash 复制代码
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)本语法

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

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

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

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

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

相关推荐
瀚高PG实验室40 分钟前
连接指定数据库时提示not currently accepting connections
运维·数据库
QQ27402875640 分钟前
Soundness Gitpod 部署教程
linux·运维·服务器·前端·chrome·web3
淡忘_cx1 小时前
【frp XTCP 穿透配置教程
运维
qwfys2001 小时前
How to configure Linux mint desktop
linux·desktop·configure·mint
南方以南_1 小时前
Ubuntu操作合集
linux·运维·ubuntu
冼紫菜2 小时前
[特殊字符]CentOS 7.6 安装 JDK 11(适配国内服务器环境)
java·linux·服务器·后端·centos
Chuncheng's blog3 小时前
RedHat7 如何更换yum镜像源
linux
爱莉希雅&&&3 小时前
shell脚本之条件判断,循环控制,exit详解
linux·运维·服务器·ssh
wei_work@3 小时前
【linux】Web服务—搭建nginx+ssl的加密认证web服务器
linux·服务器·ssl
扶尔魔ocy4 小时前
【Linux C/C++开发】轻量级关系型数据库SQLite开发(包含性能测试代码)
linux·数据库·c++·sqlite