Shell 脚本和编程 | 青训营笔记

121 阅读2分钟

1.定义

Shell是一个由c语言编写的应用程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言

它连接了用户和Linux内核,让用户能够更加高效、安全、低成本地使用 Linux 内核

其本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序,它和 QQ、微信等其它软件没有什么区别,特殊的地方就是开机立马启动,并呈现在用户面前

主要作用是接收用户输入的命令,并对命令进行处理,处理完毕后再将结果反馈给用户,比如输出到显示器、写入到文件等,同样能够调用和组织其他的应用程序,相当于一个领导者的身份。

2.种类

Linux 的 Shell 种类众多,只要能给用户提供命令行环境的程序,常见的有:

  • Bourne Shell(sh),是目前所有 Shell 的祖先,被安装在几乎所有发源于 Unix 的操作系统上
  • Bourne Again shell(bash) ,是 sh 的一个进阶版本,比 sh 更优秀, bash 是目前大多数 Linux 发行版以及 macOS 操作系统的默认 Shell
  • C Shell(csh) ,它的语法类似 C 语言
  • TENEX C Shell(tcsh) ,它是 csh 的优化版本
  • Korn shell(ksh) ,一般在收费的 Unix 版本上比较多见
  • Z Shell(zsh) ,它是一种比较新近的 Shell ,集 bash 、 ksh 和 tcsh 各家之大成

3.常见命令

  • ls:查看文件
  • cd:切换工作目录
  • pwd:显示用户当前目录
  • mkdir:创建目录
  • cp:拷贝
  • rm:删除
  • mv:移动
  • du:显示目录所占用的磁盘空间

4.复杂命令

Shell 并不是简单的堆砌命令,我们还可以在 Shell 中编程,这和使用 C++C#JavaPython 等常见的编程语言并没有什么两样。

Shell 虽然没有 C++、Java、Python 等强大,但也支持了基本的编程元素,例如:

  • if...else 选择结构,case...in 开关语句,for、while、until 循环;
  • 变量、数组、字符串、注释、加减乘除、逻辑运算等概念;
  • 函数,包括用户自定义的函数和内置函数(例如 printf、export、eval 等)

例如:跟其他语言一样,使用if...else进行表达,如果中括号里的表达式为真,那么thenfi之间的代码会被执行,如果则elsefi之间的代码会被执行

image.png fi标志着条件代码块的结束