The Unix Workbench

بواسطة: Coursera

Overview

Unix forms a foundation that is often very helpful for accomplishing other goals you might have for you and your computer, whether that goal is running a business, writing a book, curing disease, or creating the next great app. The means to these goals are sometimes carried out by writing software. Software can’t be mined out of the ground, nor can software seeds be planted in spring to harvest by autumn. Software isn’t produced in factories on an assembly line. Software is a hand-made, often bespoke good. If a software developer is an artisan, then Unix is their workbench. Unix provides an essential and simple set of tools in a distraction-free environment. Even if you’re not a software developer learning Unix can open you up to new methods of thinking and novel ways to scale your ideas.

This course is intended for folks who are new to programming and new to Unix-like operating systems like macOS and Linux distributions like Ubuntu. Most of the technologies discussed in this course will be accessed via a command line interface. Command line interfaces can seem alien at first, so this course attempts to draw parallels between using the command line and actions that you would normally take while using your mouse and keyboard. You’ll also learn how to write little pieces of software in a programming language called Bash, which allows you to connect together the tools we’ll discuss. My hope is that by the end of this course you be able to use different Unix tools as if they’re interconnecting Lego bricks.

Syllabus

  • Unix and Command Line Basics
    • This week we'll help you get access to Unix (you may already be using it), and you'll start using the command line. We'll draw parallels between using your mouse and keyboard with your computer's graphics versus only using the command line.
  • Working with Unix
    • Now we'll get into the power of different Unix tools. We'll walk through several scenarios where you could use Unix to perform tasks at a much faster speed than you would be able to normally.
  • Bash Programming
    • During this week we'll unleash the command line's usefulness as a programming language. By the end of this week you'll be writing your own little computer programs that you can use on the command line.
  • Git and GitHub
    • First you'll learn how to use Git, which is like "track changes" for your code and plain text files, but much more powerful. We'll then explore how to use Git with GitHub, a social coding network where you can publish you projects and explore other's code.
  • Nephology
    • Finally we'll set up a cloud computing environment so we can explore how computers communicate with each other using the internet.

Taught by

Sean Kross, Jeff Leek, PhD, Brian Caffo, PhD and Roger D. Peng, PhD

The Unix Workbench
الذهاب الي الدورة

The Unix Workbench

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • beginner
  • Arabic, French, Bengali, Portuguese, Chinese, Italian, Dutch, German, Russian, Turkish, English, Spanish, Hindi, Farsi, Greek, Ukrainian, Indonesian, Kazakh, Swedish, Korean, Thai, Japanese, Polish
8.1.2PHP Version186msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (111ms)
    • Application (74.46ms)
    • 1 x Booting (59.81%)
      111.48ms
      1 x Application (39.95%)
      74.46ms
      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
      7 statements were executed4.36ms
      • select * from `courses` where `slug_ar` = 'the-unix-workbench' limit 1
        2.7ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. the-unix-workbench
        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-04-13 15:37:32' where `id` = 552
        570μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-13 15:37:32
        • 1. 552
        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 (42)
        210μ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)
        140μ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 `institutions` where `institutions`.`id` in (18) and `institutions`.`deleted_at` is null
        260μ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 `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        180μ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` = 546 limit 1
        300μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 546
        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\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        85R6XTQyvX2beZksD2dHG759dsXxuAZK7JARk3Vb
        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/the-un...
        _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/the-unix-workbench
        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 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "priority" => array:1 [ 0 => "u=0, i" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.142.201.19" ] "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" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "3.142.201.19" ] "cf-ray" => array:1 [ 0 => "92fc0b955cfb7e6b-ORD" ] "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_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_PRIORITY" => "u=0, i" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.142.201.19" "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_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.142.201.19" "HTTP_CF_RAY" => "92fc0b955cfb7e6b-ORD" "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" => "43418" "REMOTE_ADDR" => "172.69.17.93" "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/the-unix-workbench" "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" => 1744558651.9894 "REQUEST_TIME" => 1744558651 ]
        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 => "Sun, 13 Apr 2025 15:37:32 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ik90RG16aUVGTFNrRzJIeFNCTjZUQnc9PSIsInZhbHVlIjoiT1pweUYwRlg0Y3NVUmp0NXY3bzhXQXVJYVZrVGswcHB0UkRlTkFraU9kU3FZa1lyb2w1MGVPdmxMR09LYW1RcjVnMGNmNHVGckVkaUZZNSs4alB4WExsMXdzSWRYVEJmTHovd0RhSGpEcmlWUmYyMVk4LzFyMWtYOU9sd2xIVEIiLCJtYWMiOiI2OTk2NWIwOGU2MzExODhmNjNjMDY0NmUyYWRlYTYzNDQxY2Y4ZGJlMmJiZjc3ZjdkNGRhM2YyZjhhZTAwY2IyIiwidGFnIjoiIn0%3D; expires=Sun, 13 Apr 2025 17:37:32 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Ik90RG16aUVGTFNrRzJIeFNCTjZUQnc9PSIsInZhbHVlIjoiT1pweUYwRlg0Y3NVUmp0NXY3bzhXQXVJYVZrVGswcHB0UkRlTkFraU9kU3FZa1lyb2w1MGVPdmxMR09LYW1RcjVnMGNmN" 1 => "laravel_session=eyJpdiI6IklBUWoxR3I2OUdNQmp4VXZNRkl5dWc9PSIsInZhbHVlIjoiblhySDhmQlF3OXd2bzJrTUtJOEdFTm9jd05jKzlDeFJZL0tyN3VMMGVvZ0RvOThyZVFhazBYelpHKzY1RFBnRkFjMEFRcjdwQm1jbG1GZzhjeHl2S1ljS2RNcHpVMTVxVUpSSHdXeThqOEVOcW1qT0FXL0c3NmdGQkNvZ2lPOW0iLCJtYWMiOiI0YzlkZDRkNDM0ZjQwYjlkOTM5OGFmNDQyNTNjOTE5YmJjYjY0MDFmZDZhYmZmN2FhYzExZGIwZTlhZWRjZWEyIiwidGFnIjoiIn0%3D; expires=Sun, 13 Apr 2025 17:37:32 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IklBUWoxR3I2OUdNQmp4VXZNRkl5dWc9PSIsInZhbHVlIjoiblhySDhmQlF3OXd2bzJrTUtJOEdFTm9jd05jKzlDeFJZL0tyN3VMMGVvZ0RvOThyZVFhazBYelpHKzY1RFBnRkFj" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ik90RG16aUVGTFNrRzJIeFNCTjZUQnc9PSIsInZhbHVlIjoiT1pweUYwRlg0Y3NVUmp0NXY3bzhXQXVJYVZrVGswcHB0UkRlTkFraU9kU3FZa1lyb2w1MGVPdmxMR09LYW1RcjVnMGNmNHVGckVkaUZZNSs4alB4WExsMXdzSWRYVEJmTHovd0RhSGpEcmlWUmYyMVk4LzFyMWtYOU9sd2xIVEIiLCJtYWMiOiI2OTk2NWIwOGU2MzExODhmNjNjMDY0NmUyYWRlYTYzNDQxY2Y4ZGJlMmJiZjc3ZjdkNGRhM2YyZjhhZTAwY2IyIiwidGFnIjoiIn0%3D; expires=Sun, 13-Apr-2025 17:37:32 GMT; path=/XSRF-TOKEN=eyJpdiI6Ik90RG16aUVGTFNrRzJIeFNCTjZUQnc9PSIsInZhbHVlIjoiT1pweUYwRlg0Y3NVUmp0NXY3bzhXQXVJYVZrVGswcHB0UkRlTkFraU9kU3FZa1lyb2w1MGVPdmxMR09LYW1RcjVnMGNmN" 1 => "laravel_session=eyJpdiI6IklBUWoxR3I2OUdNQmp4VXZNRkl5dWc9PSIsInZhbHVlIjoiblhySDhmQlF3OXd2bzJrTUtJOEdFTm9jd05jKzlDeFJZL0tyN3VMMGVvZ0RvOThyZVFhazBYelpHKzY1RFBnRkFjMEFRcjdwQm1jbG1GZzhjeHl2S1ljS2RNcHpVMTVxVUpSSHdXeThqOEVOcW1qT0FXL0c3NmdGQkNvZ2lPOW0iLCJtYWMiOiI0YzlkZDRkNDM0ZjQwYjlkOTM5OGFmNDQyNTNjOTE5YmJjYjY0MDFmZDZhYmZmN2FhYzExZGIwZTlhZWRjZWEyIiwidGFnIjoiIn0%3D; expires=Sun, 13-Apr-2025 17:37:32 GMT; path=/; httponlylaravel_session=eyJpdiI6IklBUWoxR3I2OUdNQmp4VXZNRkl5dWc9PSIsInZhbHVlIjoiblhySDhmQlF3OXd2bzJrTUtJOEdFTm9jd05jKzlDeFJZL0tyN3VMMGVvZ0RvOThyZVFhazBYelpHKzY1RFBnRkFj" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "85R6XTQyvX2beZksD2dHG759dsXxuAZK7JARk3Vb" "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/the-unix-workbench" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]