Shell
General
The Shell or commandline is program to interact with a given computer (or supercomputer). Contrary to the graphical user interface most desktop machines use, the shell is very basic and requires the user to have a certain knowledge on what commands there are and how to use them. However, even with a few basic commands, the shell can be a very powerful tool. Combining this power with the fact that the shell itself uses almost uses no resources, is the reason, why it is still in use on (nearly) every (super)computer.
A common shell is the bash (Bourne Again SHell), which comes with nearly every unix-based operating system. Others unix shells include the sh, csh, tcsh, zsh, ksh. All these have very similar commands/syntax, which will be described below.
Windows has the DOS commands (available with cmd) or the PowerShell (ps), which is different syntaxwise and will not be covered in too much detail, since most supercomputers run unix systems.
Usage
Enter a command, hit return and read/wait for the answer :-P
You can abort most commands with Ctrl + C
You can also write a bunch of commands together in a text file, save it as 'name.sh' and then run that to call all the commands in sequence and repeatable. This is called an sh-file or bash script.
Furthermore you can get help for most commands by attaching an '-h' or '--h' argument to show the corresponding help information.
The following commands tell you, where you are, take you somewhere else and show you what is there:
Linux Command | DOS Command | Description |
pwd | cd | “Print Working Directory”. Shows the current location in the directory tree. |
cd directory | cd directory | Change into the specified directory name. Example: cd /usr/src/linux |
cd ~ | “~” is an alias for your home directory. It can be used as a shortcut to your “home”, or other directories relative to your home. | |
cd .. | cd.. | Move up one directory. For example, if you are in /home/vic and you type “cd ..”, you will end up in /home. |
ls | dir /w | List all files in the current directory, in column format. |
ls -l | dir | List files in “long” format, one file per line. This also shows you additional info about the file, such as ownership, permissions, date, and size. |
ls -a | dir /a | List all files, including “hidden” files. Hidden files are those files that begin with a “.”, e.g. The .bash_history file in your home directory. |
Doing Stuff with Files and Directories
The following commands lets you manipulate and interact with files:
Linux Command | DOS Command | Description |
file | Find out what kind of file it is. For example, “file /bin/ls” tells us that it is a Linux executable file. | |
cat | type | Display the contents of a text file on the screen. For example: cat mp3files.txt would display the file we created in the previous section. |
head | Display the first few lines of a text file. Example: head /etc/services | |
tail | Display the last few lines of a text file. Example: tail /etc/services | |
tail -f | Display the last few lines of a text file, and then output appended data as the file grows (very useful for following log files!). Example: tail -f /var/log/messages | |
cp | copy | Copies a file from one location to another. Example: cp mp3files.txt /tmp (copies the mp3files.txt file to the /tmp directory) |
mv | rename, ren, move | Moves a file to a new location, or renames it. For example: mv mp3files.txt /tmp (copy the file to /tmp, and delete it from the original location) |
rm | del | Delete a file. Example: rm /tmp/mp3files.txt |
mkdir | md | Make Directory. Example: mkdir /tmp/myfiles/ |
rmdir | rd, rmdir | Remove Directory. Example: rmdir /tmp/myfiles/ |
Getting System Info
The following commands will give you information about the system or users:
Linux Command | Description |
ps | Lists currently running process (programs). |
w | Show who is logged on and what they are doing. |
id | Print your user-id and group id's |
du | Disk Usage in a particular directory. “du -s” provides a summary for the current directory. |
top | Displays CPU processes in a full-screen GUI. A great way to see the activity on your computer in real-time. Type “Q” to quit. |
free | Displays amount of free and used memory in the system. |
cat /proc/cpuinfo | Displays information about your CPU. |
cat /proc/meminfo | Display lots of information about current memory usage. |
uname -a | Prints system information to the screen (kernel version, machine type, etc.) |
Utilities
Following is a list of a few useful commands:
Linux Command | Description |
clear | Clear the screen |
echo | Display text on the screen. Mostly useful when writing shell scripts. For example: echo “Hello World” |
less | An improved replacement for the “more” command. Allows you to scroll backwards as well as forwards. |
grep | Search for a pattern in a file or program output. For example, to find out which TCP network port is used by the “nfs” service, you can do this: grep "nfs" /etc/services This looks for any line that contains the string “nfs” in the file “/etc/services” and displays only those lines. |
sort | Sort a file or program output. Example: sort mp3files.txt |
su | “Switch User”. Allows you to switch to another user's account temporarily. |