导入与回顾

Bash 脚本入门

Alex Scriven

Data Scientist

课程简介

本课程将涵盖:

  • 从命令行过渡到 Bash 脚本
  • Bash 脚本中的变量与数据类型
  • 控制语句
  • 函数与脚本自动化
Bash 脚本入门

为什么用 Bash 脚本?(Bash)

先思考:为什么选 Bash?

  • Bash 代表 "Bourne Again Shell"(双关语)

  • 诞生于 80 年代,但至今很流行;是许多 Unix 系统与 Mac 的默认 shell

  • Unix 是互联网的基石!(运行 ML 模型、数据管道)

    • AWS、Google、Microsoft 都提供其产品的 CLI
Bash 脚本入门

为什么用 Bash 脚本?(脚本)

那么,为什么写 Bash 脚本?

  • 便于执行 shell 命令(无需每次复制粘贴)
  • 提供强大的编程结构
Bash 脚本入门

预备知识

 

本课程预期您具备一些基础知识。

  • 了解命令行(终端、shell)是什么
  • 使用过 catgrepsed 等基本命令

若有些生疏也不必担心——我们现在就来复习!

Bash 脚本入门

Shell 命令速览

一些重要的 shell 命令:

  • (e)grep 基于正则匹配过滤输入
  • cat 按行连接并输出文件内容
  • tail / head 返回最后/最前的 -n 行(通过标志)
  • wc 统计词或行(标志 -w-l
  • sed 基于模式替换字符串
Bash 脚本入门

REGEX 回顾

"Regex"或正则表达式是 Bash 脚本的重要技能。

您常需过滤文件、文件内数据、匹配参数等多种场景。值得重温。

可用 regex101.com 等网站测试正则。

Bash 脚本入门

Shell 实操练习

我们通过示例复习一些 shell 命令。

有一个文本文件 fruits.txt,包含 3 行:

banana
apple
carrot

运行 grep 'a' fruits.txt 将返回:

banana
apple
carrot
Bash 脚本入门

Shell 实操练习

但若运行 grep 'p' fruits.txt 将返回:

apple

回顾:方括号是匹配集合,如 [eyfv]。加 ^ 变为取反集合(排除这些字符)。

因此运行 grep '[pc]' fruits.txt 将返回:

apple
carrot
Bash 脚本入门

Shell 实操练习

您可能用过终端中的"管道"。若文件里有很多水果,可用 sort | uniq -c

  • 第一个按字母排序,第二个统计次数
  • 若想取前 n 个,可再接 wc -l 并用 head
cat new_fruits.txt | sort | uniq -c | head -n 3
  14 apple
  13 bannana
  12 carrot
Bash 脚本入门

¡Vamos a practicar!

Bash 脚本入门

Preparing Video For Download...