目录
前言
相信不少伙伴在招聘网寻找大数据开发相关工作或者面试的时候,80%的岗位都需要我们懂shell编程,所以shell对于我们的工作重要性不言而喻。
一、shell简介
1、Shell是一种编程语言,该语言底层是C语言
2、Shell是一种解释型语言,和python类似
3、shell以后主要用于脚本编写,通过脚本实现自动化部署和调度
4、Shell是语言的统称,在Shell下面又细分了很多不同的Shell语言,默认用的Base Shell
5、Shell脚本文件的后缀是.sh,不过也可以不写
个人体会:shell是一种解释型语言,目前大多数的Linux版本都使用Bash作为默认的Shell程序,是一种面向过程的语言,逐行解释运行。
二、入门案例
1.编写shell脚本
mkdir /export/shell #创建存放shell脚本的文件夹,所有的自定义脚本都放在这个文件夹下面
vim hello.sh #创建名为hello的shell脚本
#!/bin/bash #表示我们当前Shell使用的解释器是/bin/bash
echo "Hello World" #向控制台输出Hello World
2.shell的运行方式
#方式1-脚本可以没有执行权限
sh hello.sh
#方式2-脚本必须有执行权限
chmod +x hello.sh
./hello.sh #相对路径-指定脚本在当前目录
hello.sh #同上
#方式3-脚本必须有执行权限
chmod +x hello.sh
/export/shell/hello.sh #使用绝对路径指定脚本位置
------结论--------
#个人测试使用方式1
#生产环境中使用方式3
3.shell的数据类型
1、shell是弱类型语言,在定义变量时不需要指定类型
2、shell的数据类型只有两种
字符串类型 : hello 'hello' "hello"
整数型 : 123
4.shell的变量
1.用户自定义变量
——————定义变量——————
语法: 变量名=变量值
定义变量案例:
a=123 #"="左右两侧不能有空格。
s='hello'
注意:用户定义的变量只能在当前脚本中使用,或者在调用脚本中使用
——————使用变量——————
----正常赋值-------------
str1='hello'
str2='I Love China' #这里必须加引号,因为字符串中间有空格
echo $str1
echo ${str1}tom #这里必须要加{}
----特殊赋值1-------------
#!/bin/bash
echo "who are you?"
read name #从键盘获取变量的值
pwd_string=$(pwd) #将pwd命令的执行结果赋值给pwd_string变量
date_string=`date` #将date命令的执行结果赋值给date_string变量
echo "hello, $name"
echo $pwd_string
echo $date_string
----特殊赋值2-------------
#!/bin/bash
pwd #单独使用,可以指定pwd命令
str=$(pwd) #只能用于将pwd命令直接结果赋值给另外一变量
str=`pwd` #同上
echo $str
----只读变量-------------
#!/bin/bash
myUrl="http://www.google.com"
readonly myUrl #将变量声明为只读,以后不能修改
myUrl="http://www.runoob.com" #这里修改就会报错
----删除变量-------------
#!/bin/sh
myUrl="http://www.runoob.com"
unset myUrl #默认情况下,定义变量之后,直到shell脚本结束空间才会释放,加上该关键字,则立刻释放
echo $myUrl #报错
2.环境变量
——————特点——————
1、Linux的环境变量一般都是系统提前定义好的变量
2、Linux的环境变量用户也可以定义
3、Linux的环境变量可以在整个系统起作用
4、Linux的环境变量一般都是大写字母
5、Linux的环境变量一般在/etc/profile文件定义
——————环境量的查看——————
env
——————自定义环境变量——————
1、打开/etc/profile
2、在/etc/profile中定义变量,注意变量前边加上一个export关键字
export MY_ENV=helloxxx