Shell

什么是Shell

shell是壳的意思,好像嵌入在Linux这样的操作系统中的一个微型编程语言,Shell不像C语言,C++,Java等编程语言那么完整,但是Shell语言可以帮我们完成很多自动化任务,例如保存数据,监测系统的负载等

Shell相比C语言的优势在于它是完全嵌入在Linux中的,不需要安装,不需要编译,而且不需要学习太多新的东西

Shell脚本

脚本(Script)是批处理文件,是一种纯文本的程序

计算机脚本程序是确定的一系列控制计算机进行运行操作动作的组合,在其中可以实现一定的逻辑分支

不同的终端命令环境称为不同的Shell

几种主流的Shell

Sh:Bourne Shell的缩写,可以说是目前所有Shell的祖先

Bash:Bourne Again Shell,是Sh的进阶版本,比Sh更优秀,Bash是目前大多是Linux发行版和macOS操作系统的默认Shell

Ksh:Korn Shell,一般在收费的Unix版本上比较常见,但也有免费版本

Csh:C Shell,此Shell的语法优点类似C语言

Tcsh:Tenex C Shell,Csh的优化版本

Zsh:Z shell的,比较新近的一个Shell,集Bash,Ksh,Tcsh各家之大成,Github上有一个Zsh的配置程序叫oh-my-zsh

Shell可以做什么

Shell是管理命令行的程序,其实是Shell这个程序等待你输入那个命令

Shell可以做的事情

记住你前在终端里输入过的命令,用组合键Ctrl+R在终端的历史记录中搜索执行过的命令,用Tab键自动补全要输入的命令

image-20200319214822884

以rc结尾的文件,里面包含了软件运行前会去读取并运行那些初始化命令

创建脚本文件

vim test.sh

sh就是shell的缩写,后缀名.sh已经成为一种约定俗成的命名惯例

指定脚本要使用的Shell

在写一个Shell脚本时,第一个要做的事就是指定要使用哪种Shell来解析和运行它,因为Sh、Ksh、Bash等等Shell的语法不尽相同

指定脚本要使用的Shell

#!/bin/bash,此语句并不是必不可少的,但是它可以保证此脚本会被指定的Shell执行

#!被称作Sha-bang,或者Shebang

运行命令

原则很简单,只需要写入你想要执行的命令

给脚本文件添加可执行的权限

加上可执行权限chmod +x test.sh

运行脚本

运行脚本文件./test.sh

以调试模式运行

电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题的统称

调试一个脚本程序bash -x test.sh

参数-x表示以调试模式运行,Shell就会把我们的脚本文件运行时的细节打印出来

PATH环境变量

PATH是Linux的一个系统变量,这个变量包含了你系统里所有可以被直接执行的程序的路径

打印输出PATH变量的值:echo $PATH

Shell中的变量

Shell语言中也有变量,variable,可以用变量在内存中暂时存储信息

文章目录
  1. 1. Shell
    1. 1.1. 什么是Shell
      1. 1.1.1. 几种主流的Shell
    2. 1.2. Shell可以做什么
    3. 1.3. Shell可以做的事情
      1. 1.3.1. 创建脚本文件
      2. 1.3.2. 指定脚本要使用的Shell
      3. 1.3.3. 运行命令
      4. 1.3.4. 给脚本文件添加可执行的权限
      5. 1.3.5. 运行脚本
      6. 1.3.6. 以调试模式运行
      7. 1.3.7. PATH环境变量
      8. 1.3.8. Shell中的变量
|