Quick Reference Guide: Difference between revisions

From Research Computing Center Wiki
Jump to navigation Jump to search
No edit summary
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Linux=
=Linux=
Below are the minimum Linux commands and shortcuts that you should know to do work on an HPC cluster.
Below are the minimum Linux definitions, commands, and shortcuts that you should know to do work on an HPC cluster. Some videos covering introductory Linux commands are available '''[https://kaltura.uga.edu/playlist/dedicated/176125031/1_uwkiealj/1_81u2kfi2  here]'''.
 
==Definitions==
1. '''Command''' - Word or letters typed into a terminal to make a computer do something.  Executed by pressing enter after typing the command.
 
2. '''Command line''' - Literally, the line on which your cursor is on in the terminal.  Sometimes used to describe the whole experience of not a graphical user interface, i.e. "Command Line Interface" or "CLI".
 
3. '''Command prompt''' - The text at the beginning of the command line, before your cursor.  Typically [''username''@''computername''].
 
4. '''Directory''' - Another word for "Folder" (just like a folder in Windows or Mac).  Often shortened to "dir" in commands, documentation, conversation, etc...
 
5. '''Terminal''' - Category of software that allows you to interact with your computer via commands, and can allow you to connect to a remote computer (via a CLI).
 
6. '''Path''' - The location of a file or directory.  A series of subsequent directories to get to some file or directory.  e.g., /home/john/file.txt
 
7. '''First /''' (in a path) - The root directory, where everything starts in the Linux file system.
 
8. '''Absolute path''' - a path that is written beginning with / (root)
 
9. '''Relative path''' - a path that is written relative to some other directory (does not begin with /)
 
10. (Command) '''Option''' - extra letter or word (-''SomeLetter'' or --''SomeWord'') put after a command to modify its behavior.
----
==Commands==
==Commands==
<big>'''Getting Help'''</big> (most important)
{| class="wikitable"
! Command !! Description !! Examples
|-
| <code>''command'' --help</code> || Print a commands help output to the terminal || <code>ls --help</code>
|-
| <code>man ''command''</code> || Read a command's manual (press q to exit) || <code>man ls</code>
|-
|}
<big>'''Directories'''</big>
<big>'''Directories'''</big>
{| class="wikitable"
{| class="wikitable"
Line 19: Line 50:
! Command !! Description !! Examples
! Command !! Description !! Examples
|-
|-
| <code>nano</code> || Create or edit a file with nano(To save and exit: ctrl + x, y, enter)|| <code>nano sub.sh</code>
| <code>nano</code> || Create or edit a file with nano (to save and exit: ctrl + x, y, enter)|| <code>nano sub.sh</code>
|-
|-
| <code>cat</code> || Print the contents of a file to the terminal (better for shorter files) || <code>cat slurm-42342.out</code>
| <code>cat</code> || Print the contents of a file to the terminal (better for shorter files) || <code>cat slurm-42342.out</code>
Line 25: Line 56:
| <code>less</code> || View the contents of a file (better for longer files) || <code>less slurm-42342.out</code>
| <code>less</code> || View the contents of a file (better for longer files) || <code>less slurm-42342.out</code>
|-
|-
| <code>cp</code> || Copy a file or files (<code>cp ''sourcepath(s) destinationpath</code>) || <code>cp /scratch/'''MyID'''/workdir/sub.sh /work/'''labgroup'''</code>
| <code>cp</code> || Copy a file or files (<code>cp ''sourcepath(s) destinationpath''</code>) || <code>cp /scratch/'''MyID'''/workdir/sub.sh /work/'''labgroup'''</code>
|-
| <code>mv</code> || Move a file or files (<code>mv ''sourcepath(s) destinationpath''</code>) || <code>mv /scratch/'''MyID'''/workdir/sub.sh /work/'''labgroup'''</code>
|-
|-
| <code>rm</code> || Remove a file or files || <code>rm oldfile.txt</code>
| <code>rm</code> || Remove a file or files || <code>rm oldfile.txt</code>
|-
|-
| <code>rm -r</code> || Remove a directory and '''all''' of its contents, recursively (starting with the last dir in the path)|| <code>rm -r /home/'''MyID'''/olddir</code>
| <code>rm -r</code> || Remove a directory and '''all''' of its contents, recursively (starting with the last dir in the path)|| <code>rm -r /home/'''MyID'''/olddir</code>
|-
| <code>dos2unix</code> || Removes DOS/Windows line endings in file || <code>dos2unix file.txt</code>
|-
| <code>mac2unix</code> || Removes Mac line endings in file. || <code>mac2unix file.txt</code>
|-
|}
|}
<big>'''Software'''</big>
{| class="wikitable"
|-
!Command!!Description!!Examples
|-
|<code>ml spider <software name></code>||See if a software is available, will also show you which versions are available||<code>ml spider Blast+</code>
|-
|<code>ml <software name></code>||Load a software module||<code>ml BLAST+/2.12.0-gompi-2020b</code>
|-
|}
Also see the [[Software]] page and [[Frequently Asked Questions#Software|Software]] section of our FAQ.
----
----
[[#top|Back to Top]]
[[#top|Back to Top]]
==Shortcuts==
==Shortcuts ==
 
'''Linux'''
 
{| class="wikitable"
|-
!Shortcut!! Description
|-
| ctrl + l (lowercase L)||Clear your terminal screen (scroll up to see previous output)
|-
|up/down arrow keys||Cycle through previously entered commands
|-
|tab||auto-complete a file or directory name when typing a path (tab tab if more than one file begins with the letters you've typed)
|-
|esc, . (escape, then period)||Cycle through previous arguments to commands
|-
|ctrl + w||Backspace typed text on the command line, one word at a time
|-
|ctrl + c|| Cancel typed text on the command line
|-
|}
 
'''less'''
 
{| class="wikitable"
{| class="wikitable"
|-
|-
! Shortcut !! Description
!Shortcut!!Description
|-
|-
| ctrl + l (lowercase L)|| Clear your terminal screen (scroll up to see previous output)
| shift + g ||Go to the end of file
|-
|-
| up/down arrow keys || Cycle through previously entered commands
|gg||Go to the beginning of file
|-
|-
| esc, . (escape, then period)|| Cycle through previous arguments to commands
| -N then enter ||Display/hide line numbers
|-
|-
| ctrl + w || Backspace typed text on the command line, one word at a time
|/''SomePattern''||Search forward through a file for ''SomePattern'' (/ then enter to keep searching forward for the same pattern)
|-
|-
| ctrl + c || Cancel typed text on the command line
|?''SomePattern''||Search backwards through a file for ''SomePattern'' (? then enter to keep searching forward for the same pattern)
|-
|q ||Exit less
|-
|-
|}
|}
----
----
[[#top|Back to Top]]
[[#top|Back to Top]]
=Slurm=
=Slurm=
Below are the minimum Slurm commands that you should know to do work on an HPC cluster.  The first table are default Slurm commands.  The next table are GACRC pre-formatted wrapper scripts of the Slurm commands to provide more information and flexibility.  
Below are the minimum Slurm commands that you should know to do work on an HPC cluster.  The first table are default Slurm commands.  The next table are GACRC pre-formatted wrapper scripts of the Slurm commands to provide more information and flexibility.  
Line 57: Line 133:
'''Default Slurm Commands'''
'''Default Slurm Commands'''
{| class="wikitable"
{| class="wikitable"
! Command !! Description !! Examples
!Command!!Description!!Examples
|-
|-
| <code>sbatch</code> || Submit a submission script to the cluster|| <code>sbatch sub.sh</code>
|<code>sbatch</code>|| Submit a submission script to the cluster||<code>sbatch sub.sh</code>
|-
|-
| <code>squeue</code> || Check status currently running jobs (--me for only your jobs) || <code>squeue --me</code>
|<code>squeue</code>||Check status currently running jobs (--me for only your jobs)||<code>squeue --me</code>
|-
|-
| <code>sacct -X</code> || Check status of your jobs started since midnight of current day (-X for one line per job)|| <code>sacct -X</code>
|<code>sacct -X</code>||Check status of your jobs started since midnight of current day (-X for one line per job)||<code>sacct -X</code>
|-
|-
| <code>sacct -X -S yyyy-mm-dd</code> || Check status of your jobs since yyyy-mm-dd || <code>sacct -X -S 2021-10-20</code>
|<code>sacct -X -S yyyy-mm-dd</code>||Check status of your jobs since yyyy-mm-dd||<code>sacct -X -S 2021-10-20</code>
|-
|-
| <code>sacct -j ''jobID'' || Check status of a particular job || <code>sacct -j 234213</code>
|<code>sacct -j ''jobID'' ||Check status of a particular job||<code>sacct -j 234213</code>
|-
|-
| <code>scancel ''jobID'' || Cancel one of your running jobs || <code>scancel 456781</code>
|<code>scancel ''jobID'' ||Cancel one of your running jobs ||<code>scancel 456781</code>
|-
|-
| <code>sinfo</code> || Check the status of partitions || <code>sinfo -p batch</code>
|<code>sinfo</code>||Check the status of partitions||<code>sinfo -p batch</code>
|-
|-
|}
|}
'''GACRC Slurm Commands'''
'''GACRC Slurm Commands'''
{| class="wikitable"
{| class="wikitable"
! Command !! Slurm Equivalent !! Examples
!Command!!Description/Slurm Equivalent!!Examples
|-
|-
| <code>interact</code> || Same as <code>qlogin</code> but with more flexibility || <code>interact -c 4 --mem 10gb --time 01:00:00</code>
|<code>interact</code>||Start an interactive job.  (Same as <code>qlogin</code> but with more flexibility)||<code>interact -c 4 --mem 10gb --time 01:00:00</code>
|-
|-
| <code>sq</code> || <code>squeue</code> || <code>sq --me</code>
|<code>sq</code>||<code>squeue</code>||<code>sq --me</code>
|-
|-
| <code>sacct-gacrc -X</code> || <code>sacct</code>|| <code>sacct-gacrc -X</code>
|<code>sacct-gacrc -X</code>||<code>sacct</code>||<code>sacct-gacrc -X</code>
|-
|-
|}
|}

Latest revision as of 12:48, 6 March 2023

Linux

Below are the minimum Linux definitions, commands, and shortcuts that you should know to do work on an HPC cluster. Some videos covering introductory Linux commands are available here.

Definitions

1. Command - Word or letters typed into a terminal to make a computer do something. Executed by pressing enter after typing the command.

2. Command line - Literally, the line on which your cursor is on in the terminal. Sometimes used to describe the whole experience of not a graphical user interface, i.e. "Command Line Interface" or "CLI".

3. Command prompt - The text at the beginning of the command line, before your cursor. Typically [username@computername].

4. Directory - Another word for "Folder" (just like a folder in Windows or Mac). Often shortened to "dir" in commands, documentation, conversation, etc...

5. Terminal - Category of software that allows you to interact with your computer via commands, and can allow you to connect to a remote computer (via a CLI).

6. Path - The location of a file or directory. A series of subsequent directories to get to some file or directory. e.g., /home/john/file.txt

7. First / (in a path) - The root directory, where everything starts in the Linux file system.

8. Absolute path - a path that is written beginning with / (root)

9. Relative path - a path that is written relative to some other directory (does not begin with /)

10. (Command) Option - extra letter or word (-SomeLetter or --SomeWord) put after a command to modify its behavior.


Commands

Getting Help (most important)

Command Description Examples
command --help Print a commands help output to the terminal ls --help
man command Read a command's manual (press q to exit) man ls

Directories

Command Description Examples
ls List the contents of a particular directory (current dir if no path specified) ls /scratch/MyID
mkdir Make a new directory at the specified path mkdir /scratch/MyID/workdir
cd Change directory to a particular directory (personal /home dir if no path specified) cd /scratch/MyID/workdir
rmdir Remove an empty directory rmdir tmpdir

Files

Command Description Examples
nano Create or edit a file with nano (to save and exit: ctrl + x, y, enter) nano sub.sh
cat Print the contents of a file to the terminal (better for shorter files) cat slurm-42342.out
less View the contents of a file (better for longer files) less slurm-42342.out
cp Copy a file or files (cp sourcepath(s) destinationpath) cp /scratch/MyID/workdir/sub.sh /work/labgroup
mv Move a file or files (mv sourcepath(s) destinationpath) mv /scratch/MyID/workdir/sub.sh /work/labgroup
rm Remove a file or files rm oldfile.txt
rm -r Remove a directory and all of its contents, recursively (starting with the last dir in the path) rm -r /home/MyID/olddir
dos2unix Removes DOS/Windows line endings in file dos2unix file.txt
mac2unix Removes Mac line endings in file. mac2unix file.txt

Software

Command Description Examples
ml spider <software name> See if a software is available, will also show you which versions are available ml spider Blast+
ml <software name> Load a software module ml BLAST+/2.12.0-gompi-2020b

Also see the Software page and Software section of our FAQ.


Back to Top

Shortcuts

Linux

Shortcut Description
ctrl + l (lowercase L) Clear your terminal screen (scroll up to see previous output)
up/down arrow keys Cycle through previously entered commands
tab auto-complete a file or directory name when typing a path (tab tab if more than one file begins with the letters you've typed)
esc, . (escape, then period) Cycle through previous arguments to commands
ctrl + w Backspace typed text on the command line, one word at a time
ctrl + c Cancel typed text on the command line

less

Shortcut Description
shift + g Go to the end of file
gg Go to the beginning of file
-N then enter Display/hide line numbers
/SomePattern Search forward through a file for SomePattern (/ then enter to keep searching forward for the same pattern)
?SomePattern Search backwards through a file for SomePattern (? then enter to keep searching forward for the same pattern)
q Exit less

Back to Top

Slurm

Below are the minimum Slurm commands that you should know to do work on an HPC cluster. The first table are default Slurm commands. The next table are GACRC pre-formatted wrapper scripts of the Slurm commands to provide more information and flexibility.

Default Slurm Commands

Command Description Examples
sbatch Submit a submission script to the cluster sbatch sub.sh
squeue Check status currently running jobs (--me for only your jobs) squeue --me
sacct -X Check status of your jobs started since midnight of current day (-X for one line per job) sacct -X
sacct -X -S yyyy-mm-dd Check status of your jobs since yyyy-mm-dd sacct -X -S 2021-10-20
sacct -j jobID Check status of a particular job sacct -j 234213
scancel jobID Cancel one of your running jobs scancel 456781
sinfo Check the status of partitions sinfo -p batch

GACRC Slurm Commands

Command Description/Slurm Equivalent Examples
interact Start an interactive job. (Same as qlogin but with more flexibility) interact -c 4 --mem 10gb --time 01:00:00
sq squeue sq --me
sacct-gacrc -X sacct sacct-gacrc -X