HPC Linux Tutorial
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 argumentmyfile
. This will list the filemyfile
to the terminal if it exists in the current directory. If not, you'll get a message such asls: 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 thels
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 asls -l -h myfile yourfile
.