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”.ls
ls -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)cd
home
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