Shell

一.Shell概述

Shell 是一个命令行解释器,他接受应用程序/用户命令,然后调用操作系统内核

Shell 还是一个功能相当强大的编程语言,易编写,易调试,灵活性强

  1. 为什么要学习Shell

    • 能够编写简单的Shell脚本用于大数据集群的管理(启动和停止)
    • 能够看懂运维编写的脚本
  2. 查看linux提供的解析器内核

    cat /etc/shells

    主要用: /bin/sh /bin/bash

二.Shell脚本入门

  1. 脚本编写

    • 格式: 必须以 #!bin/bash 开头(指定解析器)
    • 文件名以 sh 结尾
  2. 脚本运行的方式

    bash hello.sh

    sh hello.sh

    ./hello.sh (自行运行 注意赋予执行权限 chmod u+x hello.sh)

    . hello.sh

    区别: . hello.sh 相当于在全局窗口中运行,另外三种 相当于在 子窗口中运行

三.变量

  1. 系统预定义变量

    常用系统变量: $HOME $PWD $SHELL $USER

    查看当前shell 所有变量 :set

  2. 自定义变量

    定义变量: A=5

    撤销变量: unset 变量

    声明静态变量: readonly 变量 注意,不能unset

    规则: 环境变量名建议大写;等号两侧不能有空格;定义的变量默认的都是字符串;如果值有空格,用括号括起来

    提升为全局变量: export A

  3. 特殊变量

    • $n

      基本语法:n 位数字,$0 表示该脚本名称,$1- 9 代 表 1 − 9 个 参 数 , 十 以 上 参 数 用 大 括 号 包 含 使 用 9代表1-9个参数,十以上参数用大括号包含使用 919使{10}

    • $#

      基本语法: 获取所有输入参数的个数,常用于循环

    • ∗ 、 * 、 @

      基本语法:代表命令行所有的参数, ∗ 把 所 有 的 参 数 看 成 一 个 整 体 , * 把所有的参数看成一个整体, @把每个参数区分对待

    • $?

      基本语法:用于查看上一次命令的执行结果(如果为 0 说明上一次命令正确执行)

四.运算符

基本语法: $[运算式]

五.条件判断

基本语法:[ condition ] (注意 condition 前后要有空格)

注意: 条件非空即为true

  • 字符串比较 :==

  • 整数比较:

    -lt -le -eq -ne -gt -ge

  • 文件权限判断: -r -x -w

  • 文件类型判断:

    -f: 文件存在并且是一个常规文件

    -d:文件存在并且是一个目录

    -e: 判断文件是否存在

  • 多条件判断: && ||

六.if基本语法

if [ condition ] # 注意空格

then

​ 执行程序

elif [ conditioin ]

then

​ 执行程序

else

​ 执行程序

fi

注意: if 后要有空格; condition两侧要有空格

七.case语句

case 表达式 in

值)

执行程序

;;

值)

执行程序

;;

*)

默认执行程序

;;

esac

八.for语句

  • 语法一

    for (( i=0; i<10; i++))

    do

    执行程序

    done

  • 语法二

    for i in v1 v2 v3

    do

    执行程序

    done

九While语句

sum=0
i=0
while [ i − l e 100 ] d o s u m = i -le 100 ] do sum= ile100]dosum=[ s u m + sum+ sum+i]
i= [ [ [i+1]
done
echo $sum

十控制台输入

read [-t value] [-p ‘请输入’] 变量

十一系统函数

basename: 获取文件或目录名称

dirname: 获取当前文件或目录的路径

十二自定义函数

function funname(){

return int;

}

function add()
{
        return $[ $1+$2 ]
}
add 1 2
echo $?

注意:

  • 在调用前声明 方可使用
  • 函数返回值只能通过 $? 获取。如果不加,返回最后一条语句的执行结果

十三.工具

1.cut

cut 的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut命令从文件的每一个行剪切字节、字符和字段并将这些字节、字段输出

**基本用法:**cut[选项参数] filename

选项参数功能
-f列号
-d分隔符(默认为tab键)

例如:切ip地址

ifconfig|grep netmask|cut -d “t” -f 2|cut -d “n” -f 1

2.awk

一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分在进行分析处理

**基本语法:**awk[选项参数] ‘pattern{action} pattern{action} …’ filename

pattern 为匹配模式

action 为一系列命令

选项参数功能
-F分隔符
-v定义变量

例如:切ip地址

ifconfig|grep netmask|awk -F “inet " ‘{print $2}’|awk -F " net” ‘{print $1}’

内置函数:

BEGIN,END,FILENAME,NR,NF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值