The shell is a very old (~50 years) command line interface for UNIX systems that you will likely encounter if you interact with high performance computing clusters or are implementing bespoke bioinformatics software packages. This interface is very different from modern GUI interfaces and can be disorienting if you are unfamiliar will the underlie organization of the system. Despite its rudimentary appearance, the shell is a powerful and efficient way to interact with large data files.

System problems

The shell is part of the UNIX-based operating systems. Therefore you can easily access the shell from the terminal of iOS and linux devices.

Windows uses a different underlying architecture and therefore the shell must be emulated. There are a variety of ways to do this. For our purposes, it will be sufficient to access the shell emulation that is installed with Git. Note however that this is a relatively limited implementation and you may want to consider something like Cygwin for a more fully featured emulation.

The organization of the computer

Where am I?

What is here?

Useful options with ls

  • ls -a shows all including hidden files
  • ls -l long format with lots of detail
  • ls -R recursively list subdirectories (careful!)
  • ls -1 list one item per line (useful for programming)
  • ls -G list files and directories in color
  • ls -F use symbols for different file types
    • no symbol = file
    • / = a directory
    • * = an executable shell script

EXERCISE: Open shell, do a listing with ls -GF

The cd command

short-cuts with cd

Creating files and directories

Removing a file or a directory

Copying or moving files, folders, or directories

Renaming or save as… files, folders, or directories

These commands will recognize wildcareds