一、shell环境
首先应该清楚,shell是用户与操作系统交互的一个程序界面。交互的方式可以是用户直接通过
键盘等等键入命令,也可以是从某个文件中读入命令,然后它将读入的命令经过解析为系统可识别的指令
送入系统中执行。简单的说shell就是一个命令解析器。shell脚本是各种命令的组合。
1》bash的主要功能
命令行编辑功能
命令和文件名补全功能(Tab键)
命令历史功能(history)
命令别名功能(alias)
提供作业控制功能
自定义功能键的功能
灵活的Shell脚本编程
以上功能记住第二个就行了,其它作为了解。
2》shell变量
1)定义:直接赋值,一般变量定义为大写,如 WO=“hao ren”。注意这里字符串中若是有空格,则必须使用“”
括起来,当然为了出现错误,一致使用引号。
2)引用:$变量名 对变量的引用操作需加上$符号
3)查看:echo “$变量名”
4)删除:unset 变量
5)显示所有变量:set
6)环境变量:
对在当前环境下定义的变量,欲在其它shell环境下使用,必须在当前shell下使用export导出,格式:
export 变量 另外使用 env 指令可以查看所有的环境变量,当然可用管道筛选特定变量。
常用环境变量USER PWD SHELL HOME PATHHOSTNAME
其中PATH记录指令或程序所在文件夹,shell会在记录中查找核对指令。例如,当想直接使用程序名运行某个
程序时,须将改程序所在目录添加到PATH变量中,格式为
$PATH=$PATH:/程序所在目录
7)位置变量,见截图
8)预定义变量,见截图
二、管道与重定向
1)< 重定向输入,如 wc < ./home/file wc为统计输入的字符及行数等信息,将输入
重定向为home下的file文件
2)> 重定向输出,如 ls /home/ > /home/file 重定向ls的输出为file文件中,而不再是终端
3)2> 重定向错误输出,如 ls nofile/ 2> /home/file 重定向输出的错误到file中
4)&> 重定向标准输出及错误输出,及无论上面2)、3)是否正确,均输出到指定文件
5)| 管道符号表示前面的结果作为后面的输入,如 ps -ef | grep bash
三、shell脚本编程
脚本是一些列指令的集合文件,可在特定环境下直接执行,不需编译。同理,shell脚本在shell下
执行。
1)shell脚本的创建
vi file.sh 创建一个shell脚本,并编程。
或touch file.sh 只创建,不编程
2)shell脚本的编程
使用vi(m)编辑,如下格式:
/********************************************\
#!/bin/bash 或#!/bin/sh 此行指定执行环境
#注释行 注释行以#号开头
命令 命令行包括系统指令与
... shell指令
...
命令
\*********************************************/
3)shell脚本的三种执行方式
* shell file.sh 其中shell为该file脚本编程内定义的环境,
可能为bash、sh等等
* . file.sh
* 路径/file.sh 此条指令的前提为file用户权限为可执行
4)条件判断语句
条件判断结果为真时,返回0,为假时返回1
* test 表达式
* [ 表达式 ] 注意[ ]两端均具有空格
* echo $? $?为预定义变量,储存上一个进程的结果
5)if then elif else fi
略,见图
6)for语句
略,见图
7)until
略,见图
8)while
略,见图
9)case
略,见图
10)函数
函数()
{
函数体
}
函数被调用时,直接使用函数名即可,参数即位置变量。可以通过 . file.sh 导入函数到shell,从而
可以直接在shell里面使用函数名进行调用函数。