Linux Shell 编程基础入门(一)

😀前言
本篇博文是关于自动化工具Shell 编程的基本介绍,希望你能够喜欢

🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊

Shell 编程

引言

在大数据处理领域,Shell 编程是一项不可或缺的技能。Shell 脚本作为 Unix 和 Linux 系统中强大的自动化工具,能够简化数据处理的流程、提升工作效率,并为复杂的任务提供灵活的解决方案。本文将探讨 Shell 编程在大数据处理中的应用,帮助你掌握如何通过编写 Shell 脚本来优化和自动化大数据工作流。

什么是 Shell 编程?

Shell 是一个命令行解释器,为用户提供了与操作系统交互的界面。在 Linux 和 Unix 系统中,Shell 是与内核交互的桥梁,用户可以通过 Shell 执行命令、运行程序、管理文件系统等。

Shell 编程指的是通过编写一系列 Shell 命令的脚本,自动化执行某些任务。常用的 Shell 包括 Bash(Bourne Again Shell)、Zsh(Z Shell)和 Ksh(Korn Shell)等。由于 Bash 是最常用的 Shell,本文将主要基于 Bash 进行讲解。

image-20240821114445452

Shell 编程的基础

1. Shell 脚本的基本结构

一个简单的 Shell 脚本通常由以下几部分组成:

  • 脚本头部声明:

    #!/bin/
    

    这行代码告诉系统使用哪种 Shell 来解释脚本。

  • 注释:
    注释以 # 开头,用于解释代码,不会被执行。

    # 这是一个注释
    
  • 变量:
    变量用于存储数据,可以通过 = 进行赋值。

    Linux Shell 中的变量分为:系统变量和用户自定义变量。

    系统变量: H O M E 、 HOME、 HOMEPWD、 S H E L L 、 SHELL、 SHELLUSER 等等,比如:echo $HOME等等。

    显示当前 shell 中所有变量:set

    • 定义变量的规则

      ​ 1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头。5A=200(x)
      ​ 2)等号两侧不能有空格
      ​ 3)变量名称一般习惯为大写, 这是一个规范,我们需要遵守。

    • 将命令的返回值赋给变量
      1)A='date`反引号,运行里面的命令,并把结果返回给变量 A。
      2)A=$(date)等价于反引号

    name="Alice"
    
  • 条件语句:
    用于根据条件执行不同的代码块。

    if [ "$name" == "Alice" ]; then
        echo "Hello, Alice!"
    else
        echo "Who are you?"
    fi
    
  • 循环:
    用于重复执行某些操作。

    for i in {1..5}; do
        echo "Iteration $i"
    done
    

2. 常用 Shell 命令

在大数据处理中,以下 Shell 命令常被使用:

  • 文件操作:
    ls, cp, mv, rm, cat, touch, mkdir 等命令用于文件和目录的管理。
  • 数据处理:
    grepawksed 等命令用于搜索、过滤和处理文本数据。
  • 进程控制:
    pstopkill 用于管理系统进程。
  • 任务调度:
    crontab 用于定时执行脚本。

3. Shell 脚本中的函数

Shell 脚本中可以定义函数,用于组织和复用代码:

function greet() {
    echo "Hello, $1!"
}

greet "Alice"

4.脚本的常用执行方式

方式 1(输入脚本的绝对路径或相对路径)

说明:首先要赋予 helloworld.sh 脚本的+x权限,再执行脚本比如./hello.sh 或者使用绝对路径/root/shcode/hello.sh

方式2(sh+脚本)

说明:不用赋子脚本+x权限,直接执行即可比如 sh hello.sh,也可以使用绝对路径。

Shell 编程在大数据处理中的应用

1. 数据清洗与预处理

在大数据处理的初期,数据清洗与预处理是非常重要的一步。Shell 脚本可以自动化这些过程,例如去除重复数据、过滤无效数据、格式转换等。

示例:利用 awksed 命令清洗 CSV 数据:

#!/bin/

# 去除 CSV 文件中的空行
sed '/^$/d' data.csv > cleaned_data.csv

# 删除重复行
awk '!seen[$0]++' cleaned_data.csv > unique_data.csv

2. 自动化任务调度

在大数据项目中,定时执行某些任务(如数据备份、日志分析)是非常常见的需求。通过 crontab,可以轻松调度 Shell 脚本在指定的时间运行。

示例:每天凌晨 2 点自动备份数据:

0 2 * * * /path/to/backup_script.sh

3. 大规模数据处理

Shell 脚本还可以用于处理大规模数据集。例如,可以编写脚本分割大文件、并行处理多个数据文件,或调用 Hadoop、Spark 等大数据处理框架的命令接口。

示例:将大文件分割成小块并并行处理:

#!/bin/

# 将大文件分割为多个小文件
split -l 10000 large_data.csv part_

# 并行处理小文件
for file in part_*; do
    (process_data "$file" &)
done
wait

4. 数据分析与报告生成

通过 Shell 脚本,可以自动化运行数据分析任务,并生成定期的报告。例如,通过 Shell 脚本定期提取日志中的关键信息,并生成 HTML 或 CSV 格式的报告。

示例:生成访问日志报告:

#!/bin/

log_file="/var/log/access.log"
report_file="report_$(date +%Y%m%d).csv"

# 提取日志中的访问量信息
awk '{print $1}' $log_file | sort | uniq -c | sort -nr > $report_file

echo "Report generated: $report_file"

😄总结

Shell 编程是大数据处理中的一项基础技能,它能够帮助你自动化和优化数据处理任务,提高工作效率。通过掌握 Shell 脚本的基本语法和常用命令,可以轻松应对大数据处理中的各种挑战。从数据清洗、自动化任务调度到大规模数据处理,Shell 编程都是一个强大的工具。
img

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨犀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值