Linux中的shell基础入门

一、Shell 编程

今天学习shell的基础知识入门

大数据中需要学习的编程语言:

java 、scala 、python、sql

还有一些小语种:html、js、linux shell 、lua 脚本等等

 shell是什么,为什么要学习shell

Shell编程,编写Shell脚本,并且该脚本可以运行,一般用于Linux运维(云计算)
Shell是一个用C语言编写的程序,可以通过shell进行操作系统的服务。
Shell Script 是一个脚本语言,跟java、php、python、scala一样,都有变量、方法、循环、数组,IO流都有。
a.sh 脚本
Linux中有多个shell解释器(类似于java JRE),可以通过一些命令查看有哪些解释器。
解释器中比较有名的是Bash,简单易用,免费,经常使用这个,Bash也是大多数Linux厂商使用的解释器。

 1、查看电脑上支持的解释器

cat  /etc/shells   查看当前电脑上支持的解释器有哪些?

 

sh 和 bash 是一回事,sh 是 bash 的超链接

 2、shell的入门编程

touch  01.sh    //创建一个文件
vi  01.sh       //进行编辑
通过输入i  进行编辑
编辑的内容是:
#!/bin/bash
echo 'Hello Shell'
echo 'Hello Shell'
echo 'Hello Shell'
echo 'Hello Shell'
echo 'Hello Shell'
echo 'Hello Shell'

esc退出编辑,:wq!  进行保存
接着运行:
/bin/bash  01.sh   执行该脚本文集  以后,在linux中看到 xxx.sh  就是可执行文件,类似于windows 中的bat

我们也可以这样运行:/bin/sh 01.sh

在linux中脚本后缀名是 sh  ,windows 叫做 .bat 
在windows中cmd 黑窗口的命令粘贴到 bat文件中,叫做windows脚本

3、Shell编程语法

(1)变量

变量命名规则

写法:
your_name="laoyan"   这个中间不能有空格,变量名和等号之间不能有空格
命名规则:
1、只能是英文字母,数字,和下划线,首个字符不能是数字开头的。
2、中间不能有空格,可以有下划线    错误演示: user name="张三"
3、不能使用标点符号
4、不能使用关键字 bash中的关键字

 

(2)字符串

skill='java' 
skill="python"  //如果你声明一个变量,变量后面是字符串,那么使用
单引号和双引号都是没有任何区别的

[root@bigdata01 ~]# echo '$skill'
$skill
[root@bigdata01 ~]# echo "$skill"
python           //但是单引号中不能使用变量,双引号可以使用变

skill="java"
echo ${#skill}  打印该字符串的长度

(3)参数

$0 表示当前运行的文件名字
$n  表示第n个参数
一定要写在双引号里面

示例:
#!/bin/bash
echo "查看shell脚本中的参数"
echo "目前正在执行的脚本的名字是:$0"
echo "获取到的第一个参数是:$1"
echo "获取到的第二个参数是:$2"
echo "获取到的第三个参数是:$3"
echo "获取到的第四个参数是:$4"


#!/bin/bash
echo "第一个参数是$1"
echo "总共有几个参数:$#"
echo "这些参数分别是什么:$*"

 (4)运算符

shell和其他的编程一样,是支持运算的,但是我们的bash 不支持。
我们可以借助 expr 这个表达式工具完成,数据之间的加减乘除运算。

bash中也可以不使用expr 进行运算
可以使用(())  $(())  $[] 进行算数运算
((a++))  可以执行类似于这样的运算
将两个值进行运算 $((3 + 5))
a=2
b=3
$((a + b)) // 可以
$(($a + $b)) //也可以
$[ a + b ]    //最常用

(5)流程控制 (if else)用法

if语句的语法:
if 条件表达式; then
    符合后执行的内容
fi


if else 的语法

if 条件表达式; then
    符合后执行的内容
else
    不符合执行的内容
fi


示例:
#!/bin/bash
a=$1
b=$2
if [ $a -gt $b ];then
 echo "a大于b"
fi
if [ $a -lt $b ];then
 echo "a 小于 b"
fi
if [ $a -eq $b ];then
 echo "a等于b"
fi

(6)读取控制台数据(类似与键盘录入)

read -p "给用户的提示"  name(自定义)
echo $name(同上)

示例:
#!/bin/bash
read -p "请输入用户名:" name
read -p "请输入密码:" password
if [[ $name = 'root' && $password = '123456' ]]; then
 echo "登录成功"
else
 echo "登录失败"
fi

比较数字,使用 -eq 
比较字符串  使用 = 或者 ==
假如有多个条件,使用 [[   ]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值