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的话
注:这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。