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 |
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.
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
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)
bash-3.2$
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.
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.
>bash
$ man man
$ man man > man-help.txt
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.
>bash
$ 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