跳转至

shell的基本知识

Linux 系统中 shell 的基本知识

1 什么是 shell

Shell 是一种命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序。用户可以用 shell 来启动、挂起、停止甚至是编写一些程序。

2 Linux 启动过程

Linux 系统的启动过程可以概括为以下几个步骤:

  1. BIOS 自检
  2. MBR 加载 BootLoader
  3. BootLoader 加载内核
  4. 内核初始化
  5. 系统初始化
  6. 登录 shell

shell 位于系统初始化阶段,由 init 进程调用。shell 接收用户的命令,并将其送入内核去执行。

3 shell 编程

shell 也是一个功能相当强大的编程语言,它易编写、易调试、灵活性较强。shell 是解释执行的脚本语言,在 shell 中可以直接调用 Linux 系统命令。

shell 脚本的格式如下:

Text Only
#!/bin/bash

# 脚本内容

第一行是注释行,用于指定 shell 解释器。

4 实验示例

1 列出当前目录下的所有文件

Text Only
#!/bin/bash

ls

2 打印当前目录的绝对路径

Text Only
#!/bin/bash

pwd

3 查看当前目录下的文件大小

Text Only
#!/bin/bash

du -sh *

5 扩展知识

内置命令和外部命令

内置命令是 shell 内置的命令,不需要通过其他程序来执行。外部命令是需要通过其他程序来执行的命令。

内置命令和外部命令的区别如下:

区别 内置命令 外部命令
是否需要其他程序 不需要 需要
是否产生子进程 不会产生 会产生
是否对当前 shell 生效 会生效 不会生效

变量

变量是 shell 中用来存储数据的一种特殊标识符。变量可以用来保存用户输入的值,也可以用来保存计算结果。

变量的格式如下:

Text Only
变量名=值

变量的命名规则如下:

  • 变量名可以由字母、数字、下划线组成。
  • 变量名不能以数字开头。
  • 变量名不能是关键字。

运算符

shell 中支持的运算符如下:

运算符 描述
+
-
*
/
% 取余
= 赋值
== 等于
!= 不等于
>= 大于等于
<= 小于等于
&& 逻辑与

流程控制

shell 中支持的流程控制语句如下:

语句 描述
if 条件判断
for 循环
while 循环
until 循环
case 条件判断
break 跳出循环
continue 跳过本次循环
return 返回

函数

shell 中可以使用函数来组织代码。函数的定义格式如下:

Text Only
function 函数名() {
    # 函数体
}

函数的调用格式如下:

Text Only
函数名()

如何编写一个脚本

  • shell 脚本的命名规范,能够快速定位到需要执行的脚本。
  • shell脚本中填写"脚本信息",方便后续修改,联系等。
Text Only
# Author:
# Created Time:
# Version:
# Script Description:
//以上分别对应中文
# 作者信息
# 创建时间
# 版本
# 脚本描述

下面是一个完美脚本的内容:

Text Only
#!/bin/bash
# 定义脚本执行环境
##脚本信息##
# Author: Josh
# Created Time: 2023/11/21
# Version: v1
# Script Description: create file
read -p "输入需要创建的文件名:" file
touch $file
if [ $? -ne 0 ];then
echo "文件创建错误"
else
echo "成功创建 $file 文件"
fi

运行脚本

第一种方式:脚本赋予执行权限运行,那上面的脚本举例:

Text Only
root@shell shells]# chmod +x test.sh
[root@shell shells]# ./test.sh

结语

shell 是 Linux 系统中非常重要的一个工具,它可以用来完成各种任务,包括系统管理、软件开发、脚本编写等。掌握 shell 的基本知识,可以帮助我们更好地使用 Linux 系统。