Bash Scripting and System Configuration

Brought by: Coursera

Overview

Code and run your first Bash script in minutes without installing anything!

This course is designed for learners with no scripting experience. Learners will gain hands-on practice on an Ubuntu system that can be easily transferred to other Unix-based operating systems. The modules in this course cover scripting basics (e.g. control structures), advanced scripting (e.g. regular expressions), git version control, and system configuration (e.g. installing and updating).

To allow for a truly hands-on, self-paced learning experience, this course is video-free. Assignments contain short explanations with images and runnable script examples with suggested edits to explore script examples further, building a deeper understanding by doing. You'll benefit from instant feedback from a variety of assessment items along the way, gently progressing from quick understanding checks (multiple choice, fill in the blank, and un-scrambling code blocks) to small, approachable exercises that take minutes instead of hours.

Syllabus

  • Scripting
    • Learn how to write basic scripts including how to specify files, perform arithmetic, format and output data, and use control structures such as loops and conditionals to repeat commands and make decisions.
  • Advanced Scripting
    • Learn how to locate and perform actions on files with globbing, use regular expressions to filter and search within file contents, and schedule scripts.
  • Version Control and Git
    • Learn how to use git locally and with a remote Github repository, including common actions (add, commit, branch, merge, push, pull, clone), and how to automate tasks with Github Actions.
  • Installation and Updates
    • Learn how to use package management systems to install and update packages, and manage configuration files and kernel options.

Taught by

Chalece DeLaCoudray

Bash Scripting and System Configuration
Go to course

Bash Scripting and System Configuration

Brought by: Coursera

  • Coursera
  • Free
  • English
  • Certificate Available
  • Available at any time
  • beginner
  • English
8.1.2PHP Version1.01sRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (646ms)
    • Application (360ms)
    • 1 x Booting (64.07%)
      646.03ms
      1 x Application (35.71%)
      360.08ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed9.25ms
      • select * from `courses` where `slug_en` = 'bash-scripting-and-system-configuration' limit 1
        7.56ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. bash-scripting-and-system-configuration
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-07-25 10:04:13' where `id` = 280
        760μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-25 10:04:13
        • 1. 280
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (44)
        230μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        200μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 274 limit 1
        280μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 274
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        IiPn9aTtkrU7BQO9SYfl9k23PsndgRCGjADcfwTb
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/bash-scripting-and-system-configuration" ...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/bash-scripting-and-system-configuration
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.214" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.214" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "964ad4f0faadebbc-YYZ" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.214" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.214" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "964ad4f0faadebbc-YYZ" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "17470" "REMOTE_ADDR" => "172.70.80.17" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/bash-scripting-and-system-configuration" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1753437852.5553 "REQUEST_TIME" => 1753437852 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Fri, 25 Jul 2025 10:04:13 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InZwOXNXTnNVR1k0UE9tSHFvM3RkUHc9PSIsInZhbHVlIjoiZE9QNERtaHFNZXUwTlZ5MG5JWCt2eVErcHJOaG5sQy9LdU5NczdPc0lNZ3NmT3RVaDk1YzI1SXpUZyswZFpRNjBzbXZZNGJxQlJnb1orUElOdVREVmg1VTlYMTVLZHFBdmxOckczUThEMWF0QWs5UzVBc0JCK29yZTVWRlF4MTIiLCJtYWMiOiI5MmEwOWViNGEwMWY2Zjg5ZGNhODFmMjY0ODhhMjdmZTQ1YmViNjRhNzI3MzBmMDFkOGMwMDUyNTQ4MDhlOGE1IiwidGFnIjoiIn0%3D; expires=Fri, 25 Jul 2025 12:04:13 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6InZwOXNXTnNVR1k0UE9tSHFvM3RkUHc9PSIsInZhbHVlIjoiZE9QNERtaHFNZXUwTlZ5MG5JWCt2eVErcHJOaG5sQy9LdU5NczdPc0lNZ3NmT3RVaDk1YzI1SXpUZyswZFpRNjBzbXZZN" 1 => "laravel_session=eyJpdiI6IkwyTVB6V2NVTitTS1VHdE4zdVVvcUE9PSIsInZhbHVlIjoiNHB4bjNNa3dzYXdRUlpHU01hNmR3Q2JQWm5zZTJ6VmNlN013UXM0bzFYRDRDeWQ5V3dMRUxrR0hYUkpmVkNPdW1iZ2hsS0w4MmkvOEw1c3E5cUd2MHFoNmpUZTRNWVJ2dW5oSzVzTWVKTStmTFBTZDJ2RHJLcklaZTJVOGc0Z1kiLCJtYWMiOiI3ZTQwZmViZTc3MjRmYjk5YTcxYWY0N2YxMDBiYzY1ZWZlZmM1NTM4NmZhYWRmODNkMTQyNWE4OWY5NzM3YWNkIiwidGFnIjoiIn0%3D; expires=Fri, 25 Jul 2025 12:04:13 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IkwyTVB6V2NVTitTS1VHdE4zdVVvcUE9PSIsInZhbHVlIjoiNHB4bjNNa3dzYXdRUlpHU01hNmR3Q2JQWm5zZTJ6VmNlN013UXM0bzFYRDRDeWQ5V3dMRUxrR0hYUkpmVkNPdW1i" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InZwOXNXTnNVR1k0UE9tSHFvM3RkUHc9PSIsInZhbHVlIjoiZE9QNERtaHFNZXUwTlZ5MG5JWCt2eVErcHJOaG5sQy9LdU5NczdPc0lNZ3NmT3RVaDk1YzI1SXpUZyswZFpRNjBzbXZZNGJxQlJnb1orUElOdVREVmg1VTlYMTVLZHFBdmxOckczUThEMWF0QWs5UzVBc0JCK29yZTVWRlF4MTIiLCJtYWMiOiI5MmEwOWViNGEwMWY2Zjg5ZGNhODFmMjY0ODhhMjdmZTQ1YmViNjRhNzI3MzBmMDFkOGMwMDUyNTQ4MDhlOGE1IiwidGFnIjoiIn0%3D; expires=Fri, 25-Jul-2025 12:04:13 GMT; path=/XSRF-TOKEN=eyJpdiI6InZwOXNXTnNVR1k0UE9tSHFvM3RkUHc9PSIsInZhbHVlIjoiZE9QNERtaHFNZXUwTlZ5MG5JWCt2eVErcHJOaG5sQy9LdU5NczdPc0lNZ3NmT3RVaDk1YzI1SXpUZyswZFpRNjBzbXZZN" 1 => "laravel_session=eyJpdiI6IkwyTVB6V2NVTitTS1VHdE4zdVVvcUE9PSIsInZhbHVlIjoiNHB4bjNNa3dzYXdRUlpHU01hNmR3Q2JQWm5zZTJ6VmNlN013UXM0bzFYRDRDeWQ5V3dMRUxrR0hYUkpmVkNPdW1iZ2hsS0w4MmkvOEw1c3E5cUd2MHFoNmpUZTRNWVJ2dW5oSzVzTWVKTStmTFBTZDJ2RHJLcklaZTJVOGc0Z1kiLCJtYWMiOiI3ZTQwZmViZTc3MjRmYjk5YTcxYWY0N2YxMDBiYzY1ZWZlZmM1NTM4NmZhYWRmODNkMTQyNWE4OWY5NzM3YWNkIiwidGFnIjoiIn0%3D; expires=Fri, 25-Jul-2025 12:04:13 GMT; path=/; httponlylaravel_session=eyJpdiI6IkwyTVB6V2NVTitTS1VHdE4zdVVvcUE9PSIsInZhbHVlIjoiNHB4bjNNa3dzYXdRUlpHU01hNmR3Q2JQWm5zZTJ6VmNlN013UXM0bzFYRDRDeWQ5V3dMRUxrR0hYUkpmVkNPdW1i" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "IiPn9aTtkrU7BQO9SYfl9k23PsndgRCGjADcfwTb" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/bash-scripting-and-system-configuration" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]