Shell脚本编程01:基础知识
Shell脚本与Windows/Dos下的批处理相似,就是将各类命令预先放入到一个文件中,然后执行该文件,便可以达到与批处理类似的功能,主要是方便管理员进行设置或者管理用的。
换句话来说,shell脚本是利用shell的功能所写的一个程序,这个程序使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管线命令以及数据流重导向等功能,以达到我们所想要的处理目的。
这里有必要说一下shell和shell脚本的区别。
Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。
Shell既是一种命令语言,又是一种程序设计语言(shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。
1.语法基础
1.1开头
Shell脚本程序必须以如下的语句行开始(必须方在文件的第一行):
#!/bin/sh
“#!/bin/sh"是对shell的声明,说明你所用的是那种类型的shell及其路径所在。如果没有该语句声明,则脚本将在默认的shell中执行。
1.2注释
在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。
备注:“#!/bin/sh"不是注释。
1.3变量
在shell编程中,所有的变量都由字符串组成,并且不需要对变量进行声明。对变量赋值,可以使用如下语句:
var="hello world"
备注:“=”前后不能有空格,句尾不能有“;”。
2.常用指令
echo "some text": 将文字内容打印在屏幕上
ls: 文件列表
wc –l filename:计算文件行数
wc -w filename:计算文件中的单词数
wc -c filename: 计算文件中的字符数
cp sourcefile destfile: 文件拷贝
mv oldname newname : 重命名文件或移动文件
rm filename: 删除文件
grep 'string' filename: 在文件内搜索字符串
cat filename: 输出文件内容到屏幕上
file filename: 得到文件类型
read var: 提示用户输入,并将输入赋值给变量
find: 搜索文件
tee: 将数据输出到标准输出设备(屏幕) 和文件比如:somecommand | tee outfile
basename filename: 返回不包含路径的文件名
dirname filename: 返回文件所在路径
sed: 查找替换