Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Delft University of Technology

Unix Tools: Data, Software and Production Engineering

Delft University of Technology via edX


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.

_ ___ Class Central: Best Online Courses of the Year (2021 edition)


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.

Taught by

Diomidis Spinellis


4.9 rating, based on 13 Class Central reviews

Start your review of Unix Tools: Data, Software and Production Engineering

  • This edX course was a game-changer for me. The content is clear and to the point. I learned how powerful the Unix shell can be. The professor covered essential tools like awk, sed, sort, and grep with useful examples. Couldn't practice everything, but I still got a lot out of it. Highly recommend!
  • I took this class maybe a year or so ago but forgot to write the review.

    Overall, I found this class to be great! The videos were concise, well edited, and packed with information. No hours and hours of professors droning on repeating content until you understand it.

    I highly recommend paying to get to do the exercises. They are quite challenging and definitely the best part of the class.
  • Anonymous
    The course was very well put together giving an overview of the tools that was easy to grasp, before proceeding to examples that were scaling in complexity

    Only improvement I would suggest would be to setup some more examples that the attendee can follow through, especially when it comes to the last few chapters.
  • Anonymous
    One of the best course i was enrrolled in. It really give you foundations on unix tool that are needded on your daily tasks at work. I attend the course before get my job as sysadmin and i can assure you that this course will help you a lot. Very practical course with several examples and reference.
  • Anonymous
    Very well put together. Practical with good examples and exercises. Highly recommended if you want to quickly develop skills. As a bonus the examples introduced many possibilities and techniques that were not obvious to me - remote data access, GitHub logs, etc
  • Ratheeshanan Manimannnan
    As a Software Engineering, I always wanted to have a strong knowledge of Bash and to use my shell better, and this course helped me a lot to write some scripts and tools for my day-to-day work and be more efficient. Thank you!
  • Anonymous
    Honestly, this is the best course you can find about Unix tools and the way they might be geared to improve your programmatic skills and knowledge. I come from business branch in terms of knowledge fields and I have been training myself with many on…
  • Anonymous
    The course was very helpful in advancing my understanding of the tools that are present to me on my Linux system. I was able to use a lot of what I learnt almost immediately, and have been using it since, in my day to day to solve a variety of problems in my daily programming tasks.

    The trainer was kind, and thorough in their tackling of the subject matter. The tutors were also helpful, and accounting for timezone differences, were very responsive. This was a course well worth the cost.
  • I have really enjoyed this course! All those years I was promising my self to read in-depth bash scripting, git, awk and never really doing it! With this course I finally found a clear, concise and thorough review of all things a console user usually needs but never reads!

    I strongly urge you to enroll in this course if you have ever, even for a short little glimpse, laid your eyes and finger on a bash terminal...happy learning!
  • Anonymous
    Professor Spinellis is giving a wonderful intermediate course on how to use the terminal pipeline to perform from simple to more complicated. His clear approach of fetch-process-save works great for most any task. I can't recommend this course enough!
  • Profile image for Hugo Voisin
    Hugo Voisin
    As a front-end developer, I always wanted to have a strong knowledge on Bash and to use my shell better, and this course helped me a lot to write some scripts and tools for my day-to-day work and be more efficient. Thank you!
  • Nestor Stavrakoudis
    Wonderful course, it teaches you Unix like no other book or lesson. I suggest it as a beginning to Unix and computer programming.
  • Anonymous
    Prof Spinellis has a great format for the course and it moves along quickly through Unix fundamentals and shell examples

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.