User Tools

Site Tools


skill-tree:use:1:1:b

USE1.1 Command Line Interface

HPC systems are usually accessed via a Linux-based Command Line Interface (CLI) that is provided by a shell.

At its core, a shell is simply a convenient tool that you can use to execute commands on a Linux computer. The shell provides a textual interface allowing to interact with the operating system and performing all possible operations, i.e., accessing and manipulating files, and running programs. However, there are various misconceptions that new users typically face when handling a shell such as the Bash. Particularly, dealing with control characters and the format expected when executing programs with arguments can be error-prone.

Part of this skill is the general principles of the interaction with a shell, to execute and to stop programs.

Requirements

Learning objectives

  • Utilize the bash shell to execute individual programs with arguments.
  • Describe the meaning of the exit code of a program.
  • Run multiple programs after another depending on the exit code ;, &&, ||.
  • List the set of basic programs and their tasks:
    • pwd
    • whoami
    • sleep
    • kill
    • echo
    • clear
    • man
    • vi, vim, emacs, nano
    • exit
  • Utilize the available help of a program (–help argument and the man pages).
  • Interrupt or abort a program execution:
    • CTRL-C
    • CTRL-Z
    • using kill -9
  • Use the shell history to search and execute previously executed commands.
  • Set and print shell variables.
  • Print all currently set variables
  • Identify potential special characters that must be handled with care.
    • List strings that could refer to files/directories
  • Utilize escaping to ensure correct handling of arguments.
  • Understand wildcard characters to select a group of files/directories:
    • *
    • ?
    • [-,]
  • How to close popular command line text editors with/or without saving changes:
    • nano
    • vi
    • emacs

Subskills

skill-tree/use/1/1/b.txt · Last modified: 2024/09/11 12:30 by 127.0.0.1