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.
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.
pwd - print working directoryls - prints a list of files and folders in the current
directoryls <path to folder> - will list files and folders
in whatever you list in the “path to folder”.lsls -a shows all including hidden filesls -l long format with lots of detaills -R recursively list subdirectories (careful!)ls -1 list one item per line (useful for
programming)ls -G list files and directories in colorls -F use symbols for different file types
/ = a directory* = an executable shell scriptcd commandcd <directory name> only works
for directories that are “below” your current directory
(subdirectories)cdhome directorycd ~ always returns you to home in one jumpcd also takes you home with one less symbol to
type/ takes you to top level root of your computer (rarely
needed)cd .. moves you up to the next highest directorycd ../.. moves you up two directoriestouch path/to/<filename> creates a file in the
specified directorymkdir makes a directory within the current
directoryrm <filename> removes a filermdir <directoryname> removes a directory
(directory must be empty)rm -r <directoryname> removes directory and
recursively removes all of its subdirectories and files!cp sourceFile destinationFile copies file, folder or
directory from source location to somewhere elsemv sourceFile destinationFile moves file, folder or
directory from source location to somewhere elsemv oldName newName in same location renames filecp oldName newName in same location saves a copy of the
file to a new namerm *.pdf removes all .pdf filesrm F*.pdf removes all .pdf files that begin with the
letter F