The following technical documents are here to help our users with the various software and hardware resources available to them. Please send an email to This email address is being protected from spambots. You need JavaScript enabled to view it. if there is something that needs additional documentation.

Linux Commands Cheat Sheet

Below are a number of commonly used commands in unix. For almost every command, there are additional flags that can be used to modify the command's behavior. For example, typing 'ls' in the terminal displays the files contained within the current working directory, but 'ls -l' displays them in a list format. Additionally, 'ls -lt' displays them in a list, but also in order of modification time. Information on what flags can be used, along with general explanations about the commands, can be found by typing 'man' before the command. Ex: 'man ls'.


Basic navigation is performed using a few commands:

cd: Short for 'change directory', changes the current working directory.

ls: Short for 'list', lists all of the files in the current working directory.

cwd: Short for 'current working directory', lists the absolute path to the directory the user is in.

clear: Clears the terminal of all text, although the previous text can still be seen by scrolling up.

In navigating a Unix file structure, a number of shorthand notations should be mentioned. Example usage of the above commands are shown here as well:

'~': The location of a user's home directory. When logging into a unix machine, you are likely going to begin in your home directory, where your personal files will be located. Typing 'ls' while in the home directory will display folders like 'Desktop', Pictures', 'Downloads', and 'Documents'. To move into one of these folders, one can type, e.g., 'cd Downloads'. Additionally, to display the contents of the 'Downloads' folder without navigating to it, type 'ls Downloads'.

'/': The machine's root directory. This is the highest level directory that contains all other files and folders in the machine. Programming libraries, system files, etc are found within the folders here. Typing 'cwd' in any directory will display the path from the root directory to the current working directory. For example, if the user's name was 'tom', typing 'cwd' while in the 'Downloads' folder will display '/home/tom/Downloads'.

'.': The current directory is represented with a simple period. Typing 'cd .' moves you to the current working directory, i.e. to where you are now.

'..': The directory above the current working directory. Ex: If you're in the directory ~/Downloads/, typing 'cd ..' will bring you to the home directory.

'-': This represents the last directory you were in. Ex: If you were in '~/Downloads' and moved to '/lib64/', typing 'cd -' would move you back to '~/Downloads' and 'ls -' would display the files within '~/Downloads'.

Creating, deleting, moving, renaming files/folders:

mkdir: Short for 'make directory', creates a directory with a given name. Ex: 'mkdir ~/Desktop/DSC' creates a folder 'DSC' in the 'Desktop' folder in your home directory.

rmdir: Short for 'remove directory', deletes a directory. Note that there are no backups, so be careful when using this command.

touch: Generally used to create a file with a given name. Ex: 'touch ~/Downloads/example.txt' creates an empty file named 'example.txt' in the Downloads folder and closes it. This command was originally used to update the time a file was accessed/modified -- 'touching' it by opening it if it exists, not modifying anything, and closing it.

cp: Short for 'copy', simply copies a file. Ex: If a file named 'example.txt' were in the Downloads folder and the Downloads folder is the current working directory, we could copy it into to the Desktop by using 'cp example.txt ~/Desktop/'. We could also rename the copy something else by using 'cp example.txt ~/Desktop/example2.txt'. To copy a folder, the '-rf' flag is required, as it needs to recursively copy all the files within the folder if they are present. 

mv: Short for 'move', moves a file from one place to another, and is often used to rename a file. This command effectively does the same thing as 'cp', only that the original file is removed. 

rm: Short for 'remove', deletes a file. Note that there are no backups of these files, so be careful when using this command. When deleting a directory, use 'rm -rf' or 'rmdir'. 

locate: Searches the entirety of the file structure for a file/directory with a given name.

Additional tips:

Tab-completion: When typing in commands, especially when trying to navigate file structures, using the tab key can auto-complete the names of files/folders if they are present. If nothing auto-completes after typing tab once, type it again to see all possible options. Similar to our example above under the 'cp' explanation, if we were to type 'ls ~/Desktop/example' and hit tab twice, it would show 'example.txt' and 'example2.txt'. Typing in '.' would then let it auto-complete the word 'example.txt' after hitting tab again.

Arrows: Use the up arrow to access previous commands that have been typed in. Using the down arrow after using the up arrow will go back down the list of commands. 

Permissions: A fundamental part of the unix file system is permissions (which cannot be fully explained here) and is generally accessed by using 'ls -l', i.e. displaying a folder's contents in list format. If you cannot read or modify a file, check the permissions. The permissions are on the left and dictate who can and cannot read (r), write (w), or execute (x) files in Unix (called access modes). Ex: If one has read access, the 'r' will be displayed. If one does not have read access, the 'r' column will be replaced with a dash '-'. Further, these are split into three sets. The first set of access modes are the permissions of the file's owner (the first name beside the permissions). The second set are the permissions of the file's group (the second name beside the permissions). The third set is the permissions for everyone else. Ex: If a file has only read access, the permissions would read '-r--r--r--'. This means that the user, the user's group, and anyone else can open and read the contents of the file. If it had read, write, and execute access for only the user, it would read '-rwxr--r--'. Here the user can open the file to read its contents, save edits to it, and execute it (if it's a program or a script), but everyone else can only read its contents. If it further had execute access for the user's group, it would read '-rwxr-xr--'. Finally, notice that all of these examples have a leading '-'. This is replaced with a 'd' only if it is a directory. In that case, the number beside the permissions would display how many files are in the folder. 

A final example for a folder named 'DSC' with 3 files in it owned by a user named 'tom' in the group 'users' with read, write, and execute permissions for the user 'tom', read and execute permissions for the group 'users', and read permissions for everyone else, with a byte size of 1000 and last modified on August 1st, 2017, would be:
  drwxr-xr-- 3 tom users 1000 Aug 1 2017 DSC

HELP! - Technical Support

Need help? If you have a technology question or other issue, then send us an email, and your request will be directed to someone who will help.

This email address is being protected from spambots. You need JavaScript enabled to view it.

VirtualBox Issues

If you have trouble accessing VMs provided, please email This email address is being protected from spambots. You need JavaScript enabled to view it. for help or search "virtualbox" from the site.
Inaccessible Disk / Existing UUID

If you should encounter an error saying that the virtual machine disk is inaccessible or that a disk with this UUID already exists, this can be fixed by removing the disk and adding it back.

  • Right click on the virtual machine in the left pane of the VirtualBox Manager and click Settings. Navigate to the Storage section.
  • Right click the .vdi image and click Remove Attachment.
  • Right click "Controller: SATA" and click "Add Hard Disk." Click "Choose existing disk."
  • Navigate to the virtual machine .vdi file and press "Open."

VirtualBox File Management

When using Windows virtual machines provided on Linux Workstations, you are strongly recommended to save data per session. All data will be lost when the virtual machine is rebuilt as needed without notice. There are several ways through which you can save files:

To save works in your home directory, you need to set it up before starting the virtual machine.

  • Start "Oralce VM VirtualBox"
  • Select VM to be used, open “Settings”, go to Shared Folders
  • Click on the icon with blue folder and plus sign
  • Folder Path: /home/username/...
    Folder Name: MyDescription
    Check "Make Permanent"
  • Click on "OK" to finish or add other shared folders if needed
Now you are ready to start Windows VM and save files in the home directory: under "Network / VBOXSVR / MyDescription", the UNC equivalent: \\VBOXSVR\MyDescription.

To save files on USB, your can use "Shared Folders" similar to home directory

Linux Modules

On our Linux systems, most software resources are made available via modules. Each modulefile contains the information needed to configure the shell for an application. Once the Modules package is initialized, the environment can be modified on a per-module basis using the module command which interprets modulefiles. Typically modulefiles instruct the module command to alter or set shell environment variables such as PATH, MANPATH, etc. modulefiles may be shared by many users on a system and users may have their own collection to supplement or replace the shared modulefiles.

This allows us to offer a large array of software to many users without the packages interfering with each other.

Using built-in modules

We provide many built-in modules for loading software packages and compilers. You can see a list of these by running ls /etc/modulefiles/* OR module avail on any Desktop, Hallway, or Classroom workstation.

Let's say, for example, you wish to use MPI. You can use the /etc/modulefiles/mpi/openmpi-x86_64 to make openmpi available to your shell.

To do this, simply run:

$ module load mpi/openmpi-x86_64

To show the current list of loaded modules, run:

$ module list

If you want to unload a module, run:

$ module unload mpi/openmpi-x86_64

Creating custom modules

You may wish to customize the Linux environment for your jobs on your own. You can create your own custom module to accomplish this.

First, create a directory for your modules:

$ mkdir ~/modules

Then, add the module path to the end of your ~/.bashrc file:


or add the following to your ~/.cshrc or ~/.tcshrc if you use the tcsh shell:


A module can be as simple as setting a few environment variables (such as PATH and LD_LIBRARY_PATH) or can be complicated Tcl scripts.

You can refer to any of our existing modules in the /etc/modulefiles directory as templates for creating your own. For example, the /etc/modulefiles/orca module includes the following directives:

Provide basic information about what the module does:

#%Module 1.0
#  Orca module
module-whatis  "Set path for orca."

Add the ORCA executable directory to the path, so that ORCA runs when the 'orca' command is typed:

prepend-path   PATH /panfs/storage.local/opt/orca_3_0_0_linux_x86-64

Set an environment variable necessary for ORCA to run:

setenv         RSH_COMMAND ssh

Running module load orca will make those alterations to the environment. running module unload orca will remove them.

For a more complex example, refer to /etc/modulefiles/gaussian09. This module file examines what architecture the module is run and adjusts its paths accordingly.

For a complete reference of module file directives, refer to the modulefile man page (man modulefile).