Difference between revisions of "Introduction to Linux in HPC"

From HPC Wiki
Jump to navigation Jump to search
 
(19 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:Tutorials]] [[Category:Basics]]
+
{{Syllabus Introduction to Linux}}
[[Category:Tutorials | Introduction to Linux in HPC]]
+
== Introduction ==
This course has been developed within the framework of [https://hpc.dh.nrw/ HPC.NRW] project. It has been developed for users to get a good working knowledge of Linux to further use it for accessing and using High performance computing (HPC) cluster accounts.
+
 
 +
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 [mailto:tutorials@hpc.nrw tutorials@hpc.nrw].
 +
 
 +
== Who created this tutorial? ==
 +
 
 +
This tutorial has been developed within the framework of the [https://hpc.dh.nrw/ HPC.NRW] project. It is part of a [[:Category:Tutorials|series of online tutorials]] on various HPC-related topics, all of which were created by HPC.NRW members. Other topics are for example [[OpenMP_in_Small_Bites|OpenMP]] and [[Gprof_Tutorial|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.
  
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. So learning to work with Linux will certainly help you in your career path.
 
{{infobox table}}
 
 
__NOTOC__
 
__NOTOC__
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Historical_Background '''1. Historical Background'''] =
+
== Topics ==
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/The_Command_Line '''2. The Command Line'''] =
+
=== [[Introduction_to_Linux_in_HPC/Historical_Background | Background and History]] ===
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Directory_structure '''3. Directory Structure'''] =
+
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.
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Files '''4. Files'''] =
+
=== [[Introduction_to_Linux_in_HPC/The_Command_Line | The Command Line ]] ===
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Text_display_search '''5. Text display, search'''] =
+
This session discusses the command line as one of the main ways to interact with HPC platforms.
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Processes_and_permissions '''6. Processes and permissions'''] =
+
=== [[Introduction_to_Linux_in_HPC/Directory_structure | Directory Structure ]] ===
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/The_vim_text_editor '''7. The vim text editor'''] =
+
This session discusses the broad directory layout that exist on Linux to help users' orientation when interacting with the file system.
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Shell_scripting_environment_variables '''8. Shell scripting, environment variables'''] =
+
=== [[Introduction_to_Linux_in_HPC/Files | Files ]] ===
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/System_configuration_files '''9. System configuration files'''] =
+
This session covers basic handling of files on Linux platforms.
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Various_tips '''10. Various tips'''] =
+
=== [[Introduction_to_Linux_in_HPC/Text_display_search | Text Display and Search ]] ===
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Beyond_the_cluster '''11. Beyond the cluster'''] =
+
This session covers basic handling of text files and standard output/error/input streams on Linux systems.
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/Linux_in_HPC '''12. Linux in HPC'''] =
+
=== [[Introduction_to_Linux_in_HPC/Users_and_permissions | Users and Permissions ]] ===
  
= [https://hpc-wiki.info/hpc/Introduction_to_Linux_in_HPC/SSH_Einloggen '''13. SSH Einloggen'''] =
+
This session discusses the multi-user nature of Linux and how to restrict or grant access to files on the file system.
 +
 
 +
=== [[Introduction_to_Linux_in_HPC/Processes | Processes ]] ===
 +
 
 +
This session discusses the nature of processes on Linxu, including parent and child processes, and basic tools to handle and query your own processes.
 +
 
 +
=== [[Introduction_to_Linux_in_HPC/The_vim_text_editor | The vim Text Editor ]] ===
 +
 
 +
This session briefly introduces an ubiquitous and powerful, yet complex, editor on Linux: vim (i.e., VI Improved).
 +
 
 +
=== [[Introduction_to_Linux_in_HPC/Shell_scripting | Shell Scripting ]] ===
 +
 
 +
This session covers organizing multiple and recurring sets of command line commands as shell scripts.
 +
 
 +
=== [[Introduction_to_Linux_in_HPC/Environment_variables | 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.
 +
 
 +
=== [[Introduction_to_Linux_in_HPC/System_configuration_files | 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.
 +
 
 +
=== [[Introduction_to_Linux_in_HPC/SSH_Connections | SSH Connections ]] ===
 +
 
 +
This session covers how to log into Linux systems using an SSH client.
 +
 
 +
=== [[Introduction_to_Linux_in_HPC/SSH_Graphics_File_Transfer | 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.
 +
 
 +
=== [[Introduction_to_Linux_in_HPC/Various_tips | Various Tips ]] ===
 +
 
 +
This session provides concluding remarks and Ticks & Tricks when interacting with Linux system.
 +
 
 +
[[Category:Tutorials]]
 +
[[Category:Basics]]
 +
[[Category:Tutorials | Introduction to Linux in HPC]]

Latest revision as of 15:35, 21 December 2020

Tutorial
Title: Introduction to Linux in HPC
Provider: HPC.NRW

Contact: tutorials@hpc.nrw
Type: Multi-part video
Topic Area: HPC Platforms
License: CC-BY-SA
Syllabus

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

Introduction

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 tutorials@hpc.nrw.

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.


Topics

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.

Files

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.

Processes

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.