Intro to Linux Shell Scripting (Free course)

بواسطة: Udemy

Overview

Get up to speed with Linux shell scripting quickly

What you'll learn:
  • After you complete this course you will understand the basics of writing a shell script.

In this mini-course, you'll learn the essentials of writing your own Linux shell scripts, including:

  • How to avoid the most common mistakes made by inexperienced shell scripters.
  • Understanding and using best practices and standard conventions. (If you don't follow these guidelines you'll look like a rank amateur.)
  • A simple technique that can make amazingly complex scripts easy to write.

I've used shell scripts to save myself countless hours of tedious work. More importantly, having the ability to write shell scripts has helped me enormously in my career.

Not only did I get to take on some very interesting projects because I had the ability to shell script, I was also able to jump right to the front of the line when it came time for promotions.

I want that same thing for you, too!

Even if you're not interested in furthering your career, you can write shell scripts that organize your vacation photos, track your stock portfolio, and more...

I can't wait to see what shell scripts you create!

Jason

Taught by

Jason Cannon

Intro to Linux Shell Scripting (Free course)
الذهاب الي الدورة

Intro to Linux Shell Scripting (Free course)

بواسطة: Udemy

  • Udemy
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • beginner
  • English
8.1.2PHP Version1.2sRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (782ms)
    • Application (419ms)
    • 1 x Booting (64.93%)
      781.51ms
      1 x Application (34.85%)
      419.41ms
      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 ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed17.9ms
      • select * from `courses` where `slug_ar` = 'intro-to-linux-shell-scripting-(free-course)' limit 1
        15.72ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. intro-to-linux-shell-scripting-(free-course)
        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-29 10:19:28' where `id` = 3047
        1.25ms/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-29 10:19:28
        • 1. 3047
        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)
        240μ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 (51) and `providers`.`deleted_at` is null
        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 * from `html_files` where `html_files`.`id` = 3038 limit 1
        260μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 3038
        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
        jBNSl3o6GqqfRm5AW59bfmZ6BrGiKwLzCkMnLaaS
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/intro-...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/intro-to-linux-shell-scripting-%28free-course%29
        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.251" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.251" ] "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 => "966be0c869aba24d-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.251" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.251" "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" => "966be0c869aba24d-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" => "31868" "REMOTE_ADDR" => "108.162.241.168" "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" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/intro-to-linux-shell-scripting-%28free-course%29" "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" => 1753784367.6804 "REQUEST_TIME" => 1753784367 ]
        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 => "Tue, 29 Jul 2025 10:19:28 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Im1SeGhhY2hKRG1VS0hJQS93YVUrWnc9PSIsInZhbHVlIjoiR3JjYmVpQ3A0d2JpQk56RlAyQ244NUxrKzdUSjg5Z1VqVXQ0c0pNVHpJeGtyN0FCZnE2cXQxZTBCQzVvYU1MUHljUHlIdXF3R3RmbEk5Y1dFVDVUZTVtdWdFN3lXYXJLTUdPeTdXMU01Z1FNd2RVZ09vUjhJOVB0dDlJT0N4SjEiLCJtYWMiOiJkNDc2Yjc1MTA4ZWU2NTgxNjc2MDMyNjEzOWUyMTc1OGI3MmIzYTU2NTQ3OGQ0NmIxMzU3ODc1NjI2MmZiMzEwIiwidGFnIjoiIn0%3D; expires=Tue, 29 Jul 2025 12:19:28 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Im1SeGhhY2hKRG1VS0hJQS93YVUrWnc9PSIsInZhbHVlIjoiR3JjYmVpQ3A0d2JpQk56RlAyQ244NUxrKzdUSjg5Z1VqVXQ0c0pNVHpJeGtyN0FCZnE2cXQxZTBCQzVvYU1MUHljUHlId" 1 => "laravel_session=eyJpdiI6Iks2cXU5Ylc2aDBFZi96b0JZRURUWkE9PSIsInZhbHVlIjoicHplYTc1S1hXeFlRWUdoaDY4WEFKNzU3SjBuQ1dPQVNkRnVqZjlCSzYvNWpaakFqUUJQdFc5TzN6YVNTdlcxdW5qSmp4Mi80N1Fnb1NCbG1oaTk4WHlOTXZUcHR3ZzZSS3NwOUxxYVI4MFh5MmdQWTZxdGwwVEx5Z1oxdmxxRmEiLCJtYWMiOiIzMmE4MjRlMmNhODRlODc2MTc2NTNlMjc1NjhmYWE0MzYyMjA3Y2JiYmI5NDI1NDY2NTIyMzUzMjY0ZjYxNjY4IiwidGFnIjoiIn0%3D; expires=Tue, 29 Jul 2025 12:19:28 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Iks2cXU5Ylc2aDBFZi96b0JZRURUWkE9PSIsInZhbHVlIjoicHplYTc1S1hXeFlRWUdoaDY4WEFKNzU3SjBuQ1dPQVNkRnVqZjlCSzYvNWpaakFqUUJQdFc5TzN6YVNTdlcxdW5q" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Im1SeGhhY2hKRG1VS0hJQS93YVUrWnc9PSIsInZhbHVlIjoiR3JjYmVpQ3A0d2JpQk56RlAyQ244NUxrKzdUSjg5Z1VqVXQ0c0pNVHpJeGtyN0FCZnE2cXQxZTBCQzVvYU1MUHljUHlIdXF3R3RmbEk5Y1dFVDVUZTVtdWdFN3lXYXJLTUdPeTdXMU01Z1FNd2RVZ09vUjhJOVB0dDlJT0N4SjEiLCJtYWMiOiJkNDc2Yjc1MTA4ZWU2NTgxNjc2MDMyNjEzOWUyMTc1OGI3MmIzYTU2NTQ3OGQ0NmIxMzU3ODc1NjI2MmZiMzEwIiwidGFnIjoiIn0%3D; expires=Tue, 29-Jul-2025 12:19:28 GMT; path=/XSRF-TOKEN=eyJpdiI6Im1SeGhhY2hKRG1VS0hJQS93YVUrWnc9PSIsInZhbHVlIjoiR3JjYmVpQ3A0d2JpQk56RlAyQ244NUxrKzdUSjg5Z1VqVXQ0c0pNVHpJeGtyN0FCZnE2cXQxZTBCQzVvYU1MUHljUHlId" 1 => "laravel_session=eyJpdiI6Iks2cXU5Ylc2aDBFZi96b0JZRURUWkE9PSIsInZhbHVlIjoicHplYTc1S1hXeFlRWUdoaDY4WEFKNzU3SjBuQ1dPQVNkRnVqZjlCSzYvNWpaakFqUUJQdFc5TzN6YVNTdlcxdW5qSmp4Mi80N1Fnb1NCbG1oaTk4WHlOTXZUcHR3ZzZSS3NwOUxxYVI4MFh5MmdQWTZxdGwwVEx5Z1oxdmxxRmEiLCJtYWMiOiIzMmE4MjRlMmNhODRlODc2MTc2NTNlMjc1NjhmYWE0MzYyMjA3Y2JiYmI5NDI1NDY2NTIyMzUzMjY0ZjYxNjY4IiwidGFnIjoiIn0%3D; expires=Tue, 29-Jul-2025 12:19:28 GMT; path=/; httponlylaravel_session=eyJpdiI6Iks2cXU5Ylc2aDBFZi96b0JZRURUWkE9PSIsInZhbHVlIjoicHplYTc1S1hXeFlRWUdoaDY4WEFKNzU3SjBuQ1dPQVNkRnVqZjlCSzYvNWpaakFqUUJQdFc5TzN6YVNTdlcxdW5q" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "jBNSl3o6GqqfRm5AW59bfmZ6BrGiKwLzCkMnLaaS" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/intro-to-linux-shell-scripting-%28free-course%29" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]