HPC Linux Tutorial: Difference between revisions

From HPC Docs
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
==The Linux Command Line==
==The Linux Command Line==
The Linux command line provides a way to type commands in a text terminal to perform actions on the system you are connected to, either locally or remotely. Linux supports multiple "shells" which are command interpreters. While each shell has its own special features, they tend to have a lot of overlap so it is fairly easy to become acclimated with a new shell.  The ELSA HPC cluster uses the '''bash''' shell [[Wikipedia:Bash_(Unix_shell)|(<u>B</u>ourne <u>A</u>gain <u>Sh</u>ell)]] with is currently the very command and popular shell. Other shells include the original [[Wikipedia:Bourne_shell|Bourne Shell]], [[Wikipedia:Tcsh|Tcsh]], [[Wikipedia:KornShell|KornShell]] and [[Wikipedia:Z_shell|Z Shell]].


===Command Structure===
===Command Structure===
Line 7: Line 8:
Let's look at some real-life examples:
Let's look at some real-life examples:


: <p><code>ls -l</code><br>
* <p><code>ls -l</code>
This command <code>ls</code> lists files while the optional <code>-l</code> (that's a small "L") argument tells the command to do a long listing. A long listing includes the file permissions, owners, group and other info.</p>
: This command <code>ls</code> lists files while the optional <code>-l</code> (that's a small "L") argument tells the command to do a long listing. A long listing includes the file permissions, owners, group and other info.</p>
<br>


: <p><code>ls myfile</code><br>
* <p><code>ls myfile</code>
This <code>ls</code> doesn't include any options but does include an argument <code>myfile</code>.  This will list the file <code>myfile</code> to the terminal if it exists in the current directory. If not, you'll get a message such as <code>ls: cannot access myfile: No such file or directory</code> instead.</p>
: This <code>ls</code> doesn't include any options but does include an argument <code>myfile</code>.  This will list the file <code>myfile</code> to the terminal if it exists in the current directory. If not, you'll get a message such as <code>ls: cannot access myfile: No such file or directory</code> instead.</p>
<br>


: <p><code>ls -l myfile</code><br>
* <p><code>ls -l myfile</code>
In this next example, we combine command, options and arguments. This will list the file to the terminal with the file permissions, owners, etc. if it exists in the current directory.</p>
: In this next example, we combine command, options and arguments. This will list the file to the terminal with the file permissions, owners, etc. if it exists in the current directory.</p>
<br>


: <p><code>ls -lh myfile yourfile</code><br>
* <p><code>ls -lh myfile yourfile</code>
In this final example, multiple options and arguments are specified. Not all commands have multiple options or allow multiple arguments, but the <code>ls</code> command does. The <code>-lh</code> combined options tell the <code>ls</code> command to not only show all the additional information about the files but convert any the output (e.g. the file size) to "human readable" format. If multiple arguments are permitted, the command applies to all that are specified.  This command could also have been specified with the options listed separately as <code>ls -l -h myfile yourfile</code>.</p>
: In this final example, multiple options and arguments are specified. Not all commands have multiple options or allow multiple arguments, but the <code>ls</code> command does. The <code>-lh</code> combined options tell the <code>ls</code> command to not only show all the additional information about the files but convert any the output (e.g. the file size) to "human readable" format. If multiple arguments are permitted, the command applies to all that are specified.  This command could also have been specified with the options listed separately as <code>ls -l -h myfile yourfile</code>.</p>
<br>


===Orthogonality===
===Orthogonality===


==Manipulating Files==
==Manipulating Files==

Revision as of 15:17, 15 May 2019

The Linux Command Line

The Linux command line provides a way to type commands in a text terminal to perform actions on the system you are connected to, either locally or remotely. Linux supports multiple "shells" which are command interpreters. While each shell has its own special features, they tend to have a lot of overlap so it is fairly easy to become acclimated with a new shell. The ELSA HPC cluster uses the bash shell (Bourne Again Shell) with is currently the very command and popular shell. Other shells include the original Bourne Shell, Tcsh, KornShell and Z Shell.

Command Structure

The basic format of the is command options arguments where options and arguments may either be optional or required depending on the command being run. Command options begin with a - or -- to indicate they are options, not arguments.

Let's look at some real-life examples:

  • ls -l

This command ls lists files while the optional -l (that's a small "L") argument tells the command to do a long listing. A long listing includes the file permissions, owners, group and other info.


  • ls myfile

This ls doesn't include any options but does include an argument myfile. This will list the file myfile to the terminal if it exists in the current directory. If not, you'll get a message such as ls: cannot access myfile: No such file or directory instead.


  • ls -l myfile

In this next example, we combine command, options and arguments. This will list the file to the terminal with the file permissions, owners, etc. if it exists in the current directory.


  • ls -lh myfile yourfile

In this final example, multiple options and arguments are specified. Not all commands have multiple options or allow multiple arguments, but the ls command does. The -lh combined options tell the ls command to not only show all the additional information about the files but convert any the output (e.g. the file size) to "human readable" format. If multiple arguments are permitted, the command applies to all that are specified. This command could also have been specified with the options listed separately as ls -l -h myfile yourfile.


Orthogonality

Manipulating Files