Introduction to Linux in HPC
|Title:||Introduction to Linux in HPC|
|Topic Area:||HPC Platforms|
|1. Background and History|
|2. The Command Line|
|3. Linux Directory Structure|
|5. Text display and search|
|6. Users and permissions|
|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 firstname.lastname@example.org.
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.
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.
This session discusses the command line as one of the main ways to interact with HPC platforms.
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.
This session covers basic handling of text files and standard output/error/input streams on Linux systems.
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.
This session briefly introduces an ubiquitous and powerful, yet complex, editor on Linux: vim (i.e., VI Improved).
This session covers organizing multiple and recurring sets of command line commands as shell scripts.
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.
This session covers the basic files that are used by the system to configure and adapt the user environment with so-call RC files.
This session covers how to log into Linux systems using an SSH client.
This session covers how to handle X Window connections and transfer files to and from a Linux system via SSH connections.
This session provides concluding remarks and Ticks & Tricks when interacting with Linux system.