Introduction to Linux in HPC

From HPC Wiki
Revision as of 16:35, 21 December 2020 by (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Title: Introduction to Linux in HPC
Provider: HPC.NRW

Type: Multi-part video
Topic Area: HPC Platforms
License: CC-BY-SA

1. Background and History
2. The Command Line
3. Linux Directory Structure
4. Files
5. Text display and search
6. Users and permissions
7. Processes
8. The vim text editor
9. Shell scripting
10. Environment variables
11. System configuration
12. SSH Connections
13. SSH: Graphics and File Transfer
14. Various tips


Welcome to the HPC.NRW Linux Online Tutorial!

Linux powers 100% of the world's top 500 supercomputers, the majority of financial trades worldwide, most of the servers powering the Internet, and over two billion Android devices. In short, Linux is everywhere. It appears in many different architectures, from mainframes to server to desktop to mobile and on a staggeringly wide variety of hardware. Understanding Linux better can help you in many ways.

This tutorial is intended for beginners who are just starting to use a supercomputer, or are otherwise interested in learning the Linux command line.

How to proceed through this tutorial?

The tutorial is made up of 14 sections. Each covers a separate stand-alone topic, but they are designed to be worked through in order.

Each tutorial consists of a short video, followed by a couple of quiz questions, and some practical exercises. You should have a Linux console ready for the latter, this can be either on your own PC or on a cluster. Everything in the tutorial is distribution-independent. We recommend using a bash shell, as this shell was used for the demonstrations (bash is often the default shell, e.g. in Ubuntu, Mint and Red Hat Linux). Most, but not all, topics in this tutorial are shell-independent.

If you have any questions or encounter problems, you can contact us via e-mail at

Who created this tutorial?

This tutorial has been developed within the framework of the HPC.NRW project. It is part of a series of online tutorials on various HPC-related topics, all of which were created by HPC.NRW members. Other topics are for example OpenMP and Gprof, and new tutorials continue to be developed.

The speaker is Jan Steiner of the University of Siegen. Jan works at the university's center for information and media technologies (ZIMT) and has been giving Linux introduction and other courses at Uni Siegen for several years. Video editing was done primarily by Marc-André Hermanns and Martin Errenst of RWTH Aachen and Uni Wuppertal, respectively. The quiz section was primarily developed by Xin Wu and Mukund Pondkule at the University of Paderborn. Other contributions came from practically all HPC.NRW members.


Background and History

This session provides a brief background on where Linux and UNIX come from, what different Linux distributions are, and why it is important to have a basic understanding of Linux concepts when interacting with HPC platforms.

The Command Line

This session discusses the command line as one of the main ways to interact with HPC platforms.

Directory Structure

This session discusses the broad directory layout that exist on Linux to help users' orientation when interacting with the file system.


This session covers basic handling of files on Linux platforms.

Text Display and Search

This session covers basic handling of text files and standard output/error/input streams on Linux systems.

Users and Permissions

This session discusses the multi-user nature of Linux and how to restrict or grant access to files on the file system.


This session discusses the nature of processes on Linxu, including parent and child processes, and basic tools to handle and query your own processes.

The vim Text Editor

This session briefly introduces an ubiquitous and powerful, yet complex, editor on Linux: vim (i.e., VI Improved).

Shell Scripting

This session covers organizing multiple and recurring sets of command line commands as shell scripts.

Environment Variables

This session covers the shell environment and how to set, unset, or modify variables to influence commands and/or shell scripts run in the shell.

System Configuration Files

This session covers the basic files that are used by the system to configure and adapt the user environment with so-call RC files.

SSH Connections

This session covers how to log into Linux systems using an SSH client.

SSH Graphics and File Transfer

This session covers how to handle X Window connections and transfer files to and from a Linux system via SSH connections.

Various Tips

This session provides concluding remarks and Ticks & Tricks when interacting with Linux system.