Bash to Rust: From Zero
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Bash to Rust: From Zero
This course is part of Rust for Data Engineering Specialization
Instructor: Noah Gift
Included with
Learn more
Skills you'll gain
Details to know
May 2026
6 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
There are 5 modules in this course
Bash to Rust: From Zero is a hands-on conversion course for engineers, sysadmins, and data engineers who already write shell scripts and want to graduate to Rust for production-grade automation. You will learn how to translate common Bash idioms (pipes, redirects, glob expansion, process substitution, exit codes, signal handling, environment variables) into idiomatic Rust using crates like std::process::Command, clap for argument parsing, anyhow and thiserror for error handling, and tokio for async I/O. The course walks through real migration scenarios: replacing fragile shell pipelines with reliable Rust CLIs, building cross-platform automation that no longer depends on coreutils versions, packaging a single static binary for distribution, and structuring projects so that they can be tested, profiled, and maintained by a team. You will also learn when to keep using Bash (one-off glue) and when to invest in Rust (anything that gets re-run, shared, or shipped to production). By the end of the course, you will be able to migrate a non-trivial shell script to Rust, replace it in production, and reason about correctness, performance, and portability trade-offs.
Shell is where data pipelines silently rot β $RANDOM session ids collide on retry and bare mkdir fails the second time, but ShellCheck stays silent because those bugs live in the script's relationship with time and disk, not its syntax. This module installs bashrs with one cargo install, then teaches you to read a bashrs lint finding (SEC013/REL005) and the five-dimension bashrs score gate (β₯ 8.0/10 overall).
What's included
2 videos5 readings1 assignment
2 videosβ’Total 4 minutes
- Why Shell Is the Weakest Linkβ’2 minutes
- Reading a bashrs score Reportβ’2 minutes
5 readingsβ’Total 41 minutes
- About This Courseβ’1 minute
- Key Terms: Why Shell Is the Weakest Linkβ’10 minutes
- Reflection: Why Shell Is the Weakest Linkβ’10 minutes
- Key Terms: Reading a bashrs score Reportβ’10 minutes
- Reflection: Reading a bashrs score Reportβ’10 minutes
1 assignmentβ’Total 30 minutes
- Practice Quiz: Shell as the Weakest Linkβ’30 minutes
Linting alone is necessary but not sufficient. This module pairs ShellCheck with bashrs lint to expose the determinism and idempotency findings ShellCheck silently approves, then teaches you to read bashrs audit grade summaries and apply the five-dimension score gate to Dockerfile RUN steps so container images stay reproducible.
What's included
3 videos6 readings1 assignment
3 videosβ’Total 4 minutes
- bashrs lint vs ShellCheckβ’1 minute
- bashrs audit for Grade-Level Summariesβ’1 minute
- Linting Dockerfiles and Dev Containersβ’2 minutes
6 readingsβ’Total 60 minutes
- Key Terms: bashrs lint vs ShellCheckβ’10 minutes
- Reflection: bashrs lint Deeperβ’10 minutes
- Key Terms: bashrs audit for Grade-Level Summariesβ’10 minutes
- Reflection: bashrs audit for Grade-Level Summariesβ’10 minutes
- Key Terms: Linting Dockerfiles and Dev Containersβ’10 minutes
- Reflection: Linting Dockerfiles and Dev Containersβ’10 minutes
1 assignmentβ’Total 30 minutes
- Practice Quiz: Linting and Auditingβ’30 minutes
Move from messy shell to deterministic, idempotent layers using bashrs purify. You will rewrite scripts so they can be run twice without surprises, push idempotency to the right layer (script, container, or config tool), and learn to verify safe re-execution end to end.
What's included
2 videos4 readings1 assignment
2 videosβ’Total 3 minutes
- bashrs purify Workflowβ’2 minutes
- Idempotency at the Right Layerβ’1 minute
4 readingsβ’Total 40 minutes
- Key Terms: bashrs purify Workflowβ’10 minutes
- Reflection: bashrs purify Workflowβ’10 minutes
- Key Terms: Idempotency at the Right Layerβ’10 minutes
- Reflection: Idempotency at the Right Layerβ’10 minutes
1 assignmentβ’Total 30 minutes
- Practice Quiz: Purification and Idempotencyβ’30 minutes
Use bashrs build to author install and bootstrap scripts in a constrained Rust subset and emit POSIX shell that runs identically across sh, dash, ash, and bash. Master the intrinsics, the determinism contract, and the cross-shell CI matrix that proves portability.
What's included
2 videos4 readings1 assignment
2 videosβ’Total 3 minutes
- Transpiler Subset β bashrs buildβ’2 minutes
- Cross-shell Test β One Source, Four Shellsβ’1 minute
4 readingsβ’Total 40 minutes
- Key Terms: Transpiler Subset β bashrs buildβ’10 minutes
- Reflection: Transpiler Subset β bashrs buildβ’10 minutes
- Key Terms: Cross-shell Test β One Source, Four Shellsβ’10 minutes
- Reflection: Cross-shell Test β env_var_or / format!() / mkdir(p)β’10 minutes
1 assignmentβ’Total 30 minutes
- Practice Quiz: Transpiling and Cross-shellβ’30 minutes
Move from spot-check tests to property-based testing and deterministic simulation. Use bashrs test to fuzz inputs and exercise idempotency invariants, then run the same script under a deterministic clock/PRNG harness to reproduce flakes. Lock in safe re-execution proofs before shipping.
What's included
2 videos5 readings2 assignments
2 videosβ’Total 3 minutes
- bashrs in GitHub Actions β the Gate Aggregatorβ’1 minute
- Mutation Testing + Deterministic Simulationβ’2 minutes
5 readingsβ’Total 50 minutes
- Key Terms: bashrs in GitHub Actions β the Gate Aggregatorβ’10 minutes
- Reflection: bashrs in GitHub Actions β the gate Aggregatorβ’10 minutes
- Key Terms: Mutation Testing + Deterministic Simulationβ’10 minutes
- Reflection: Mutation Testing and Deterministic Simulationβ’10 minutes
- Before You Goβ’10 minutes
2 assignmentsβ’Total 60 minutes
- Final Graded Quizβ’30 minutes
- Practice Quiz: CI Gates, Mutation Testing, Reproducible Deploysβ’30 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructor
Offered by
Explore more from Software Development
- Status: Free TrialP
Pragmatic AI Labs
Course
- Status: Free TrialP
Pragmatic AI Labs
Course
- Status: Free TrialP
Pragmatic AI Labs
Course
- Status: Free TrialD
Duke University
Course
Why people choose Coursera for their career
Frequently asked questions
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you canβt afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, youβll find a link to apply on the description page.
More questions
Financial aid available,
