> 文档中心 > Shell

Shell


前言:

命令行和shell这两个概念常常使人困惑,今天我们就来讲讲命令行和shell是什么?

命令行是指:提供用户输入命令的界面,其本身只接受输入,然后把命令传递给命令解释器。后者就是shell

shell:本质上是一个程序,它在用户和操作系统之间提供了一个面向行的可交互接口。

Linux下常见的shell环境有

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)
  • ……

不同的shell提供不尽相同的语法和特性,用户可以使用任何一种shell。本篇文章的所有命令都在bash(Bourne Again Shell(/bin/bash))下测试通过。

补充:Linux命令行界面有一个输入行,用于输入命令。在bash中,命令行以一个美元符号$作为提示符,表示用户可以输入命令。

如果正在以root身份执行命令,那么提示符将会成#

注:在bash的美元提示符之前,一般还会有一段信息,包括用户名、主机名和当前目录才完整。

 

shell脚本

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。shell 和 shell script 是两个不同的概念。

1、新建一个shell脚本:

打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 后缀.sh,扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚本,扩展名就用 php 好了。

输入一些代码,第一行一般是这样:

#!/bin/bashecho "Hello World !"

注1:shell程序的第一行总是以#!开头,指定脚本的运行环境/bin/bash即指定bash环境。

注2:echo命令把参数传递给标准输出

注3:shell脚本会忽略空行。用空行分割一个程序中不同的任务代码是一个良好的编程习惯。

注4:以#号开头的行是注释

2、运行脚本的两种方式:

1、作为可执行程序(注:要进入你创建的当前目录中或者添加完整路径才行,这点大家应该都知道的吧。)

chmod +x test.sh  #使脚本具有执行权限./test.sh  #执行脚本

2、作为解释器参数

/bin/sh test.sh/bin/php test.php #如果是php的话

注:这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。