共计 2588 个字符,预计需要花费 7 分钟才能阅读完成。
什么是 Shell?
shell 是 类 Unix / Linux 操作系统中的解释器,它获取用户键入的命令,并调用操作系统运行这些命令。简略地说,shell 充当的是操作系统的包装器角色。例如,您能够应用 shell 输出 ls 命令来列出目录中的文件,输出 cp 命令执行复制操作。
$ ls
Desktop Documents Downloads Music Pictures playbook.yaml Public snap Templates test5 Videos
$
在本例中,当您简略地输出 ls 并按下 enter 时。$ 是 shell 提示符,它告诉您 shell 正在期待您的命令。其余行是当前目录中的文件名。
什么是 Shell 提示符?
提示符 $
被称为命令提示符,由 shell 收回。当提示符显示时,您能够输出命令。shell 在出现后读取您的输出。它通过查看输出的第一个单词来确定要执行的命令。单词是一组残缺的字符。空格和制表符分隔单词。
有哪些不同类型的 shell?
因为 shell 没有被垄断,您能够运行任何你喜爱的 shell,然而咱们有必要晓得其它代替计划是很有帮忙,以下是是一些常见的可供 UNIX / Linux 应用的 shell 列表。
Bourne Shell
最后的 Unix Shell 被称为 sh,是 Shell 或 Bourne Shell 的缩写,以 sh 的创建者 steven Bourne 命名。这在简直所有的 Unix 类操作系统上都可用。Basic bourne shell 只反对最无限的命令行编辑,您能够输出字符,用退格键删除一个字符,按回车键来执行命令。如果命令行出错,能够按 Ctrl-C 勾销整个命令。
C Shell
它是由加州大学伯克利分校的 Bill Joy 设计的,C shell 之所以如此命名,是因为它的许多语法与 C 编程语言类似。这个 shell 为 Bourne shell 增加了一些简洁的个性,特地是可能召回以前的命令以帮忙创立未来的命令。因为很可能须要执行多个命令来执行一个特定的工作,所以这个 C shell 性能十分有用。
Korn Shell
它是由 AT&T Bell 实验室的 David Korn 创立的,Korn shell 或 ksh 提供了 C shell 提供的雷同类型的加强,但有一个重要的区别:Korn shell 向后兼容较老的 Bourne shell Synatx。在 AIX 和 HP-UX 等 UNIX 零碎中,korn shell 是默认 shell。
Bash (Bourne Again Shell)
Bash 提供了像 korn shell 一样的命令行编辑性能,像 C shell 一样的文件名实现性能,以及许多其余高级个性。许多用户认为 bash 在一个 shell 中汇合了 Korn 和 C shell 的长处。在 Linux 和 Mac OS X 零碎中,bash 是默认 shell。
tcsh (TC Shell)
Linux 零碎遍及了 tc shell (tcsh),tcsh 扩大了传统的 csh,减少了命令行编辑、文件名补全等性能。例如,当您按 Tab 键 (与 bash 中应用的键雷同) 时,tcsh 将补全文件和目录名。旧的 C shell 不反对这个个性。
什么是 Shell Script ?
Shell Script 是一个蕴含一个或多个命令的文本文件。在 shell 脚本中,shell 假设文本文件的每一行都蕴含一个独自的命令。这些命令在大多数状况下看起来就像在 shell 窗口中键入的一样。
为何应用 Shell Script ?
Shell Script 用于自动化治理工作,封装简单的配置细节,并取得操作系统的全副性能。组合命令的能力容许您创立新的命令,从而为您的操作系统减少价值。此外,将 shell 与图形化桌面环境联合起来能够使您取得两方面的劣势。
在 Linux 系统管理员日常工作中,每天反复的工作能够应用 shell 脚本自动化,这节俭了工夫,并容许管理员进行高质量的工作。
创立 Shell Script
在当前目录中创立一个名为 myScript.sh 的文本文件,所有 Shell 脚本都具备 .sh 扩展名。Shell 脚本的第一行是 #!/bin/sh
或 #!/bin/bash
,它被称为 Shebang,指明命令应用 SH 或 Bash Shell 解释器执行。
#!/bin/bash
# Written by LinuxTechi
echo
echo "Current Working Directory: $(pwd)"
echo
echo "Today' Date & Time: $(date)"
DISK=$(df -Th)
echo
echo "Disk Space on System:"
echo "$DISK"
下面的 shell 脚本将显示当前工作,明天的日期和工夫以及文件系统磁盘空间。咱们应用了 echo 命令和其余 linux 命令来构建这个脚本。
应用 chmod 命令调配可执行权限
$ chmod a+x myscript.sh
当初执行脚本
$ sh myscript.sh
or
$ ./myscript.sh
留神: 要执行当前目录中 shell 脚本,请应用 ./{script-name},如下所示
在 Shell Script 中承受用户的输出
Read 命令用于获取用户通过键盘输入的值并将值赋给一个变量,Echo 命令用于查问查问内容。
让咱们批改下面的脚本,以便它开始承受输出
#!/bin/bash
# Written by LinuxTechi
read -p "Your Name:" NAME
echo
echo "Today' Date & Time: $(date)"
echo
read -p "Enter the file system:" DISK
echo "$(df -Th $DISK)"
当初,尝试执行脚本,这次应该会提醒输出详细信息。
$ ./myscript.sh
Your Name: Pradeep Kumar
Today' Date & Time: Sat 15 Oct 05:32:38 BST 2022
Enter the file system:/mnt/data
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/volgrp01-lv01 ext4 14G 24K 13G 1% /mnt/data
$
完满,下面的输入证实了脚本正在提醒输出和解决数据。
扩大浏览: How to Debug a Bash Shell Script in Linux
我的开源我的项目
- course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
- course-tencent-cloud(酷瓜云课堂 – github 仓库)