Shell快速入门

image-20241006175846497

Shell概述

Shell(也称为壳层)在计算机科学中指“为用户提供用户界面”的软件,通常指的是命令行界面解析器。一般来说,这个词是指操作系统中提供访问内核所提供之服务的程序。Shell也用于泛指所有为用户提供操作界面的程序,也就是程序和用户交互的层面。因此与之相对的是内核(英语:Kernel),内核不提供和用户的交互功能。

image-20240513181021976

Shell还是一个功能强大的编程语言,易编写、易调试、灵活性强

  • Linux提供的Shell解释器
cat /etc/shells  # 查看Shell的解释器
echo $SHELL  # 查看Ubuntu默认使用的解释器

image-20240513181455972

Shell脚本入门

  1. 脚本格式
  • 脚本以#!/bin/bash开头(指定解释器)
  1. 第一个Shell脚本:hello.sh
# 创建bin目录,用来存放脚本
cd ~
mkdir bin
cd bin
# 创建hello.sh文件,输出hello
vim hello.sh  # 写入下列两行
#!/bin/bash
echo "hello world"
  1. 脚本的常用执行方式
  • 采用bash 或 sh 加脚本的相对路径或绝对路径(不用赋予脚本 +x权限)
    • sh + 脚本相对路径/绝对路径
    • bash + 脚本相对路径/绝对路径
  • 采用输入脚本的决定路径或相对路径执行脚本(需要可执行权限 +x)
    • 首先赋予脚本权限:chmod +x hello.sh
    • 执行脚本:./hello.sh/home/qingxuly/bin/hello.sh
  • 注意
    • 第一种执行方式:本质是bash解释器帮你执行脚本,所以脚本本身不需要执行权限。
    • 第二章执行方式:本质是脚本需要自己执行,所有需要执行权限。
sh ./hello.sh
bash hello.sh
sh /home/qingxuly/bin/hello.sh
chmod +x hello.sh
./hello.sh
/home/qingxuly/bin/hello.sh

image-20240513182553785

变量

系统预定义变量

  1. 常用系统变量:HOME、PWD、SHELL、USER
  2. 获取变量的值
$变量名  # $和变量名之间不能有空格
  1. 案例实操
echo $HOME  # 查看系统变量的值
set  # 查看当前Shell中所有的变量

image-20240513184050191

自定义变量

  1. 基本语法:

    1. 定义变量:变量名=变量值注意:=号前面不能有空格。
    2. 撤销变量:unset 变量名
    3. 声明静态变量:readonly 变量注意:不能unset。
  2. 变量定义规则

    1. 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
    2. 等号两侧不能有空格。
    3. 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
    4. 变量的值如果有空格,需要使用双引号或单引号括起来。
  3. 案例实操

A=5  # 定义变量a
echo $A
unset A  # 撤销变量a
echo $A
readonly A=10  # 声明静态变量a
unset A  # 静态变量不能unset
C=1+2  # bash中,变量默认类型都是字符串类型,无法直接进行数值运算
echo $C
D="hello world"  # 变量的值如果有空格,需要使用单引号或双引号括起来
F=ma
export F  # 变量提升为全局环境变量,可供其它Shell程序使用
vim niu.sh  # 编辑脚本,输入下列两行,:wq保存退出
echo $F
echo $D

sh niu.sh  # 执行脚本,$f全局变量可以打印值

image-20240514121630435

特殊变量

1、$n

  1. 基本语法

$n :n为数字,$0代表该脚本名称,$1- 9 代表第一到第九个参数,十以上的参数需要用大括号包含,如 9代表第一到第九个参数,十以上的参数需要用大括号包含,如 9代表第一到第九个参数,十以上的参数需要用大括号包含,如{10}。

  1. 案例实操
vim parameter.sh  # 编辑脚本,输入下列四行,:wq保存退出
#!/bin/bash
echo $0
echo $1
echo $2
echo ${10}

bash parameter.sh hello world 3 4 5 6 7 8 9 10

image-20240514124322536

2、$#

  1. 基本语法

获取所有输入参数个数,常用于循环,判断参数的个数是否正确以及加强加班的健壮性

  1. 案例实操
vim parameter.sh  # 编辑脚本,输入下列八行,:wq保存退出
#!/bin/bash
echo '=====$n====='
echo $0
echo $1
echo $2
echo ${10}
echo '=====$#====='
echo $#

# 打印输入参数的个数
bash parameter.sh  1
bash parameter.sh  1 2

image-20240514124925302

3、 ∗ 、 *、 @

  1. 基本语法

∗ :代表命令中所有的参数, * : 代表命令中所有的参数, :代表命令中所有的参数,*把所有的参数看成一个整体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五月行秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值