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
lslists 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
lsdoesn't include any options but does include an argumentmyfile. This will list the filemyfileto 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 directoryinstead.
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
lscommand does. The-lhcombined options tell thelscommand 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.
On-line Manual Pages
Linux consists of thousands of commands. While the syntax is common among most of them as command options arguments, it may be daunting to remember the various options for each command. Options don't necessary represent the same thing between commands. For example, the -i option means different things in the ls command and the grep command. To eliminate the need to keep a thick Linux command "bible" next to you at all times, the system provides "manual pages" on-line that can be called up as needed. These are called man pages in Linux lingo. You use the man command to bring the manual pages for a command you provide as an argument, e.g. man ls.