Sage-Code Laboratory

External Commands

The external commands are specific to a particular operating system. However, most UNIX based operating system implements at least top 50 most popular commands.

Top 50 Commands

Let's check the description for top 50 commands. If you know all these commands you can say that you know Linux. Of course every command has numerous options and parameters. Read the list below, but do not try to memorise the list. You will learn each command one by one later by practicing:

Command Description
ls The most frequently used command in Linux to list directories
pwd Print working directory command in Linux
cd Linux command to navigate through directories
mkdir Command used to create directories in Linux
mv Move or rename files in Linux
cp Similar usage as mv but for copying files in Linux
rm Delete files or directories
touch Create blank/empty files
ln Create symbolic links (shortcuts) to other files
cat Display file contents on the terminal
clear Clear the terminal display
echo Print any text that follows the command
less Linux command to display paged outputs in the terminal
man Access manual pages for all Linux commands
uname Linux command to get basic information about the OS
whoami Get the active username
tar Command to extract and compress files in Linux
grep Search for a string within an output
head Return the specified number of lines from the top
tail Return the specified number of lines from the bottom
diff Find the difference between two files
cmp Allows you to check if two files are identical
comm Combines the functionality of diff and cmp
sort Linux command to sort the content of a file while outputting
export Export environment variables in Linux
zip Zip files in Linux
unzip Unzip files in Linux
ssh Secure Shell command in Linux
service Linux command to start and stop services
ps Display active processes
kill and killall Kill active processes by process ID or name
df Display disk filesystem information
mount Mount file systems in Linux
chmod Command to change file permissions
chown Command for granting ownership of files or folders
ifconfig Display network interfaces and IP addresses
traceroute Trace all the network hops to reach the destination
wget Direct download files from the internet
ufw Firewall command
iptables Base firewall for all other firewall utilities to interface with
apt, pacman, yum, rpm Package managers depending on the distro
sudo Command to escalate privileges in Linux
cal View a command-line calendar
alias Create custom shortcuts for your regularly used commands
dd Majorly used for creating bootable USB sticks
whereis Locate the binary, source, and manual pages for a command
whatis Find what a command is used for
top View active processes live with their system usage
useradd and usermod Add new user or change existing users data
passwd Create or update passwords for existing users

Command History

External commands can be used in command line but also in scripts. Typing commands is a skill. In shell console, after you edit one command you press enter and command is executed. You can press upp-arrow key to call one of previous commands, edit the command then press enter and execute the command a second time.

Practice Time

Congratulations for reading this tutorial. Now you know fundamental concepts about Bash shell scripting and shell commands. You are ready to start practicing. Open the command prompt and type commands. If you dont remeber anything, try starting with "man" command.

bash-3.2$ man --help
man, version 1.6g

usage: man [-adfhktwW] [section] [-M path] [-P pager] [-S list]
    [-m system] [-p string] name ...

  a : find all matching entries
  c : do not use cat file
  d : print gobs of debugging information
  D : as for -d, but also display the pages
  f : same as whatis(1)
  h : print this help message
  k : same as apropos(1)
  K : search for a string in all pages
  t : use troff to format pages for printing
  w : print location of man page(s) that would be displayed
      (if no name given: print directories that would be searched)
  W : as for -w, but display filenames only

  C file   : use `file' as configuration file
  M path   : set search path for manual pages to `path'
  P pager  : use program `pager' to display pages
  S list   : colon separated section list
  m system : search for alternate system's man pages
  p string : string tells which preprocessors to run
               e - [n]eqn(1)   p - pic(1)    t - tbl(1)
               g - grap(1)     r - refer(1)  v - vgrind(1)

You can produce documentation for yourself using the mand page for specific command. You can type the command name followed by option --help or -h sometimes works too.

man help

The manual is using vim sytem to display the text. You can use fn + up arrow, fn + down arrow to scroll pages up or down and :Q to exit. If you wish you can produce a text file using file redirectation.

$ man man
$ man man > man-help.txt

ls help

Command ls is used to list folders. This command is very frequently used and you should start learning it as soon as possible. If you research "ls" command this is what you can do.

$ ls --help
$ man ls > ls-help.txt


TODO: Add details and examples for each command. Please open the project on GitHub and start your contribution. For each command we need full specification. It may be stored on GitHub as txt files produced with the menthod mentioned above.

Continue: Bash Index