栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

第五章 ---- Linux 的基本 Shell 脚本

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第五章 ---- Linux 的基本 Shell 脚本

第五章 ---- Linux 的基本 Shell 脚本
  • 介绍 Shell
    • Shell 的特征
    • Shell 用作命令解释器
  • 了解 Shell 类型
    • Unix Shell
    • Linux Shell
    • 更改默认 Shell
  • 在 Linux 中创建 Shell 脚本
    • echo 命令
    • 执行 Shell 脚本
    • 创建变量
    • 引用变量
    • 将值读取到变量
    • 本地和全局 Shell 变量
    • 环境变量
    • env 命令

Shell 是用于操作系统的交互用户界面的术语。
Shell 脚本是一个文件,它包含用于执行计算机上特定任务或操作的脚本或命令序列。

介绍 Shell

Shell 是用户和内核之间的接口。

Shell 的特征

交互式处理:用户与系统之间的通信采用与 Shell 进行的交互对话形式。
后台处理:系统可以代表用户同时执行多个不同的任务。
I/O 重定向:与用户交互的程序可以容易的从其他源获取输入,然后输出发送到目的地。
管道:使用管道可以容易的连接执行简单功能的程序,用来执行复杂任务。
Shell 脚本:可以将常用的 Shell 命令序列存储到一个文件中。
Shell 变量:用户可以通过将数据存储在变量中,来控制 Shell 的行为。
编程语言构造:Shell 包含允许将其用作编程语言的功能。
命令历史记录:Shell 维护您使用的所有命令的历史记录。
命令别名:允许您为常用的命令创建可选名称,进行重命名。
作业控制:Shell 在前台和后台都可以运行作业(进程)。
cd拼写检查器:Shell 识别您的拼写错误,并提示您输入正确的名称。
文件名补全:允许文件名的自动补全。
命令补全:Shell 可以将不完整的命令自动补全。

Shell 用作命令解释器

Shell 是一个中间程序,它解释终端输入的命令,并将其转换Wie内核理解的命令。

Shell 解释命令额过程是:

  • 登录后,Shell 显示 Shell 提示符:表明可以从用户接收命令。
  • 用户发出命令:ls
  • Shell 执行以下活动:
    • 读取命令。
    • 搜索目录找到命令文件所在位置。
    • 加载实用程序到内存。
    • 执行实用程序。
  • 完成执行后,Shell 再次显示提示符,表示可以继续接收下一个命令。
  • 如果 Shell 没有找到定位到与命令相对应的文件,它会发出错误消息,然后显示提示符。

了解 Shell 类型 Unix Shell

常用的基于 UNIX 的 Shell:

  • Bourne shell
  • C shell
  • Korn shell
  • Restricted shell

Bourne Shell
Bourne Shell 是目前最快的 UNIX 命令处理器,所有的 UNIX 都提供此 Shell。

C Shell
语法上类似 C 编程语言。
首批引入命令历史记录功能的 Shell 之一。

Korn Shell
组合了 Bourne Shell 和 C Shell 的最佳功能。

Restricted Shell
通常用于访客登录。

Linux Shell

Linux 中提供的最常用的 Shell:

  • Bash
  • Ash

Bash
是 Bourne Shell 的增强,是大部分 Linux 系统默认 Shell。
能够存储命令的历史记录。

Ash
轻量级的 Bournc Shell,通常适用于具有有限内存的计算机。

各类 Shell 功能的对比

功能BourneKornCTcshBash
后台处理
命令历史记录
I/O 重定向
Shell 脚本
命令别名
文件名完成
命令完成
命令编辑
作业控制

输入 ps 命令

bash Shell 在运行

输入 sh 命令,转到 sh Shell。
在次输入 ps 命令,发现 bash Shell 和 sh Shell 都在运行。

更改默认 Shell

在 Linux 中创建 Shell 脚本

可以将一系列常用的 Linux 命令,存储到一个文件中,然后让 Shell 读取该文件并执行其中的命令,此类文件被成文脚本文件。

echo 命令

echo 命令用于在屏幕上显示消息。

echo 显示文本后自动换行,可以加上 -n 来取消换行

执行 Shell 脚本

登录 Linux 系统时,会获取一个要使用的 Shell 的副本,此 Shell 称为登录 Shell。此 Shell 是一个实用程序,如此一来就可以执行 Shell 命令了,例如对 Bash Shell 执行 sh,会创建另一个 shell,这个新的 Shell 被称为当前 Shell 的子 Shell。

执行 Shell 脚本 magic

执行上述 Shell 脚本时,当前 Shell 会创建一个新 Shell 并在新创建的 Shell 中执行脚本。
在 Bash Shell 中使用(.)命令在当前 Shell 中执行脚本

创建变量

=

声明变量时,等号两边都不能有空格
如果所赋的值包含任何定界符,例如嵌入的空格,则必须用单引号或双引号括起来

name="John Lennon"

如果不包含空格,则引号是可选的

name=Paul
ctr=1

在 Shell 中声明的变量都是字符串

引用变量

将 variable2 的值赋给 variable1
variable1=${variable2}

假设 today 为 20
x=${today}th
x 的值为20th

将值读取到变量

除了赋值以为,Shell 允许用户将输入的值,赋值给变量。
通过 read 命令完成。

read myname
执行 read 命令时,会等待用户为变量输入值,当用户输入值并按下了回车,会执行 Shell 脚本的剩余部分(如果有的话)。

本地和全局 Shell 变量

在引用变量时,只有创建变量的 Shell 才知道此变量,创建新的 Shell 时,它不知道父 Shell 的变量。这样的变量称为本地变量。

但是在有些时候,需要子 Shell 知道父 Shell 的变量,因此,Bash Shell 提供 export 命令来实现此操作,经过 export 命令指定过的变量将从本地变量变为全局变量。

环境变量

导出的所有变量都是环境变量,某些会对 Shell 发生作用,通过更改这些变量的值,用户可以制定自己的环境。

HOME 变量
Linux 系统中的每个用户都具有称为主目录的关联目录,用户主目录的位置存储在环境变量 HOME 中。
引用 HOME 变量的命令:
echo $HOME

PATH 变量
PATH 变量包含以冒号分隔的目录列表。

PS1 变量
PS1(提示符字符串)变量包含 Shell 提示符  符号。可以通过将此变量的值设置为期望的提示符来更改 Shell 提示符。
PS1="HELLO>"
将提示符更改为HELLO>

PS2 变量
PS2 是用于设置次级提示符的值的环境变量

LOGNAME 变量
LOGNAME 变量包含用户的登录名。

SHLVL 变量
SHLVL 变量包含您当前工作的 Shell 层。

SHELL 变量
SHELL 环境变量存储用户的默认 Shell。
使用以下命令查看此变量的值:

env 命令

使用 env 命令查看所有导出的环境变量及其各自值的列表

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/838865.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号