初步认识 Shell | 青训营笔记

147 阅读2分钟

什么是 Shell

Shell 既是命令行解释器,又是一门编程语言

作为命令行解释器的 Shell

  1. 用途:处理来自终端模拟器的输入,解释执行之后输出结果给终端
    • 终端:获取用户输入,展示运算结果的硬件设备
    • 终端模拟器:是关联虚拟终端的软件
  2. shell 中有哪些命令:
    • GNU 核心工具集
      • 比如ls mv cat
      • 可以通过type命令查看某个命令安装的路径:type mv => /bin/mv
    • 第三方库
      • node、python 等封装的模块
    • 某一种具体shell内置的命令
      • 比如 bash 内置命令

什么是 Bash

  • bash 是 shell 的一种具体实现(可以理解为“类”和“实例”的关系)
  • bash 中有一些内置的命令
    • 比如 . [ echo let read

作为编程语言的 Shell

  • 具有比较常见的变量运算符语句(判断、分支、循环)、函数模块化
  • 和一些比较特殊的管道重定向

(具体内容将在其它笔记中展开:变量和运算符

什么是 Shell 脚本

  • 将一系列命令通过特定的编程语法组织后就得到了一个 shell 脚本
    • 可以将 shell 脚本保存为一个文件,文件通常以 .sh 结尾(也可以没有,因为 linux 不是根据后缀名判断文件类型的)
    • 脚本第一行需要指定用什么命令解释器来执行
      • 比如,#! /bin/bash 或者 #! /usr/bin/env bash
      • #! 是内核识别并选择合适的解释器之后,将文本文件再交给解释器执行

如何在 Shell 中启动脚本

  1. 直接输入文件名来运行(需要有可执行权限)
    • 比如,./filename.sh
  2. 指定某个解释器来运行脚本
    • 比如,bash ./filename.sh
  3. 使用 source 命令运行
    • 比如,source ./filename.sh
  • 注意!前两种启动方式能使脚本不仅在当前 shell 运行,也在子 shell 中运行,但是第三种启动方式只能使脚本在当前 shell 运行