大数据程序员为什么要学习Shell呢?
- 需要看懂运维人员的shell程序
- 偶尔写些简单的shell来管理集群
什么是shell?
shell类似于python,是一门功能十分强大的解释类语言。
既然是解释类语言,那么解析器是什么?
系统默认解析器是bash
系统自带还有sh
可以使用cat /etc/shells查看
怎么写shell脚本呢?
脚本以#!/bin/bash
开头(指定bash解析器
)
然后按照shell的语法写
怎么执行shell脚本?
安装需不需要给shell脚本+x权限可分为两种。
1、不+x的
sh+脚本的相对路径
sh+脚本的绝对路径
bash+脚本的相对路径
bash+脚本的绝对路径
2、+x的
相对路径 ./XXX.sh
绝对路径 /…/XXX.sh
第一种是bash解释器给你帮你执行、第二种是脚本自己执行
shell的语法,也就是怎么写shell
1、shell中的变量
常见的系统变量
H
O
M
E
、
HOME、
HOME、PWD、
S
H
E
L
L
、
SHELL、
SHELL、USER
自定义变量 变量=值 如b=1
特殊变量 $n $# $* $@ $?
2、运算符
(
(
运
算
式
)
)
或
者
((运算式))或者
((运算式))或者[运算式]
expr + - * / %
3、条件判断
[condition]
判断条件
整数之间 = -lt -le -eq -gt -ge -ne
文件权限 r w x
文件类型 -f -e -d
4、流程控制
if [条件判断式] ; then
程序
fi
case $变量名 in
“值 1”)
;;
“值 2”)
;;
*)
;;
for((初始值:循环控制条件:变量变化))
do
程序
done
while[条件判断式]
do
程序
done
5、read读取控制台输入
read(选项)(参数)
选项:-p 指定读取值时的提示符
-t 指定读取值时等待的时间(秒)
参数
变量:指定读取值的变量名
6、函数
系统函数 basename [string / pathname] [ suffix]
dirname 文件绝对路径
自定义函数[ function ] funname[ ( ) ] {
Action;
[ return int ;]
}
funname
7、**shell工具**
cut、sed、awk、sort