• Length:
    6 Weeks
  • Effort:
    4–6 hours per week
  • Price:

    FREE
    Add a Verified Certificate for $50 USD

  • Institution
  • Subject:
  • Level:
    Intermediate
  • Language:
    English
  • Video Transcript:
    English

Prerequisites

  • An understanding of basic programming structures, such as conditions and loops
  • An appreciation of variables and their use in simple expressions
  • The ability to create a text file using an editor
  • An understanding of the concepts of files, directories and the file system’s tree structure
  • Access to a computer running Windows, macOS, or a Unix/Linux distribution

About this course

Skip About this course

Processing information is the hallmark of all modern organizations, which are increasingly digital: absorbing, processing and generating information is a key element of their business.
Being able to interact flexibly and efficiently with the underlying data and software systems is an indispensable skill. Knowledge of the Unix shell and its command-line tools boosts the effectiveness and productivity of software developers, IT professionals, and data analysts.

The Unix tools were designed, written, actively used and refined by the team that defined the modern computing landscape. They allow the performance of almost any imaginable computing task quickly and efficiently by judiciously combining key powerful concepts. The power of Unix tools for exploring, prototyping and implementing big data processing workflows, and software engineering tasks remains unmatched. Unix tools, running on hardware ranging from tiny IoT platforms to supercomputers, uniquely allow an interactive, explorative programming style, which is ideal for the efficient solution of many of the engineering and business analytics problems that we face every day.

Through the use of Unix tools:

  • Software developers can quickly explore and modify code, data, and tests.
  • IT professionals can scrutinize log files, network traces, performance figures, filesystems and the behavior of processes.
  • Data analysts can extract, transform, filter, process, load, and summarize huge data sets.

The course is uniquely based on carefully-selected, interactive walk-through examples that demonstrate how each command operates in practice. The examples that we use involve problems that engineers and analysts face every day.

What you'll learn

Skip What you'll learn

After completing the course you’ll be able to

  • Enter and combine commands in the Unix command line
  • Use files, data pipelines, variables and control structures
  • Select the most useful tools and commands for fetching, selecting, generating, processing, summarizing and reporting data
  • Obtain data from databases, cloud-based hosts, version control systems, object files, archives and your desktop files
  • Accomplish diverse processing tasks by putting together suitable commands and configuring their execution parameters

We start by introducing the key ideas and advantages of Unix tools. We then build many one-liners around the tools that follow a sequence of fetching, selection, processing, summarization and reporting. We demonstrate the tools for each phase: the plumbing that joins the parts into a whole, more specialized commands for handling software development and system administration tasks, sound and images and even graph-structures. We end with a discussion of common use patterns to follow and anti-patterns to avoid.

Week 1 Introduction — Getting to the Command Line; The command-line interface; Input and output redirection; Files and directories; Command-line arguments; Command grouping; Scripting
Week 2 Execution control; Data processing flow; Data fetching: Remote services, archives, remote hosts, and the file system
Week 3 Data fetching: Version control systems, compiled code, graphical desktop systems, and system administration; Data generation; Regular expressions and data selection with grep, egrep, and fgrep
Week 4 Other data selection tools; Processing: Sorting, working with sorted data, sed, awk
Week 5 Processing: File differences, testing, and expressions dealing with characters, lines, and graphs
Week 6 Processing images and sound; Summarizing; Reporting: Email and text formatting; Good shell practices; Improving your shell style

Throughout the course you’ll be monitoring your progress through more than 110 knowledge checks. Furthermore, five progress assessments interspersed throughout the course will allow you to demonstrate in practice how you deploy your newly acquired skills by completing about 20 carefully selected tasks modeled after real-life scenarios. Many of the questions will set you off on a virtual treasure hunt, providing you with the opportunity to experiment with what you’ve learned in order to derive the right answer.

Meet your instructors

Diomidis Spinellis
Professor
TU Delft

Pursue a Verified Certificate to highlight the knowledge and skills you gain
$50.00

View a PDF of a sample edX certificate
  • Official and Verified

    Receive an instructor-signed certificate with the institution's logo to verify your achievement and increase your job prospects

  • Easily Shareable

    Add the certificate to your CV or resume, or post it directly on LinkedIn

  • Proven Motivator

    Give yourself an additional incentive to complete the course

  • Support our Mission

    EdX, a non-profit, relies on verified certificates to help fund free education for everyone globally