Since you are reading this I bet you want to use Linux or just wants to find additional information about your new Operating System.

  • The Basic reason for this article is to unveil the most common misunderstanding that Linux Newbies often make about GNU/Linux. And also it is within my intention to introduce some commonly use commands that are very important and useful, since Linux and all other Nix systems are normally manage through CLI.
  • For starter, there are some common terms that you should be clear of, some of which are base on the tailoring of the GNU/Linux itself while others are not official but mostly used by Nerds.

Kernel - the core functionality of an operating system, it translates commands from other software directly to the standard hardware interfaces and extended hardwares. Think of it as a string that hold soul and body together of a full working computer system.

Linux is kernel and it is official name is GNU/Linux, because most if not almost all softwares of full Linux distribution is provide since from the very first by GNU and it is developers.

Hardware – all the physical components of the system is what considered to be the hardware, if and only if, it can be touch and be seen.

Software - the part that is responsible for the logics, calculations, pretty designs and all the good and dirty task that your box delivered. Lets say it is the soul of the computer system.

Distributions - operating systems based on the Linux kernel.

CLI/Terminal - stands for Command Line Interface, a method of interaction with the computer

based on text commands entered at the prompt.

GUI - stands for Graphical User Interface, a method of interaction with the computer that makes use of visual representations of elements: files, folders and actions. It is the standard environment for modern consumer oriented operating systems.

DE – this is a short form of saying Desktop Environment. There are many DE's including Gnome, KDE, XFCE etc.

FLOSS - Free/Libre/Open Source Software community. The community of developers around the globe that work base on the philosophy of free and open source software.

Since GNU/Linux is free and open source, I wonder why some one would spend his days and night building, and coding millions of line of codes and just to distribute it free?

There are many answers for this, well from what I understand it is just because the love and like to do so, it is a philosophy they believe in.

There are many definition of free and open source softwares, you may had one from your computer tutor, but as I do not formally study computers I say let find out what is the actual meaning from members of FLOSS. Richard Stallman is a legend in open source community and the founder of GNU.

The word "free" in our name does not refer to price; it refers to freedom. First, the freedom to copy a program and redistribute it to your neighbors, so that they can use it as well as you.

Second, the freedom to change a program, so that you can control it instead of it controlling you; for this, the source code must be made available to you.”

–Free Software Definition by Richard Stallman


  • Working on any computer platform, one must deal with data, But how are this data arrange, response and so have you.

Working with Linux system you must have encounter the following directories or files, knowingly or not.

  • a partition for user programs (/usr)
  • a partition containing the users' personal data (/home)
  • a partition to store temporary data like print- and mail-queues (/var)
  • a partition for third party and extra software (/opt)

On GNU/Linux system and other Nix Everything is a file, if not a file then it is a process.

  • This is to say Nix systems make no difference between file and directory, yet it make some exception with some of the files it handles and treat them specially, for now the files are :-
  • Directories: files that are lists of other files or rather contain other files.
  • Special files: the mechanism used for input and output. Most special files are in /dev.
  • Links: a system to make a file or directory visible in multiple parts of the system's file tree.
  • (Domain) sockets: a special file type, similar to TCP/IP sockets, providing inter-process networking protected by the file system's access control.
  • Named pipes: act more or less like sockets and form a way for processes to communicate with each other, without using network socket semantics.
  • Think of Nix systems (Unix and Unix like systems, such as Linux & Mac) file system as a tree-like structure, from root down (or may be up, as you imaging it) to branches.

Branches have other branches and more branches follows as far as possible.

Let us take a step and analysis Linux file system, orderly or may be not orderly, and see what each of these branches is possibly holding.

Linux Directories and Their contains

/bin :- Common programs, shared by the system, the system administrator and the users.

/boot :- contain the boot loader information and files.

/dev :- Contains references to all the CPU peripheral hardware, which are represented as files with special properties.

/etc :- Most important system configuration files are in /etc, this directory contains data similar to those in the Control Panel in Windows

/home :- Home directories of the common users.

/initrd :- (on some distributions) Information for booting. Do not remove!

/lib :- Library files, includes files for all kinds of programs needed by the system and the users.

/lost+found :- Files were saved here during failures and every directory have one.

/misc :- For miscellaneous purposes.

/mnt :- Standard mount point for external file systems, like memory card, external hard disk drive.

/net :- Standard mount point for entire remote file systems

/opt :- Typically contains extra and third party software., like adobe files.

/proc :- A virtual file system containing information about system resource.

/root :- The administrative user's home directory. It is totally different from' / ', the root directory and /root, the home directory of the root user.

/sbin :- Programs for use by the system and the system administrator.

/tmp :- Temporary space for use by the system,just temporary it losses contains during reboot.

/usr :- Programs, libraries, documentation etc. for all user-related programs.

/var :- Storage for all variable files and temporary files created by users, like log files, the print spooler area, and even themes and system-wide design files.


  • Which ever distro or DE your are using, I thought by now you know how to open up terminal. People don't usually use terminal but if I wants to understand something and why this and that happen terminal is what I use. I recommend using terminal because it gives you clue about what is going on and you will understand things better. It also helps a lot in accomplishing complex task that are either hard or impossible with GUI. Besides it is the geeky way to do task and administer task or overall system.

Always remember Linux terminal is case-sensitive environment, PWD is not the same as pwd. All Linux command use lower case except sometimes their option or argument, so if I mistakenly write in uppercase I actually intend lowercase unless other wise stated.

Pwd – one of Linux users favorite command, it means 'print working directory' where ever you are you can use pwd to find out.

Ls – it is use to find out available files on your current working directory or any other directory within the tree. It means 'list' There are many option to be use with ls command. For instance:-

ls -a ; do not ignore entries starting with '.' i.e hidden files.

ls -a ; list long listing.

ls –author ; print each file author name.

There are many options to use, you better check the manual page.

Man * – manual page for * command, meaning if you want manual about particular command, you use man space and the command, Example ' man ls ' this command will give you manual page for the command ls.

Cd – change working directory, it change your directory to the directory you point at. Example ' cd Documents ' this will change your directory to Documents under the current directory. If you wants to change to other directory not under your current directory you should use full pathname. Example ' cd /var/caches/ ' this will change your working directory to caches under var under root, (root here means / not the root folder under /). You can also use ' .. ' to change to parent directory of you current, meaning the folder above your working directory. For instance let say you are working in a directory called phy in your Documents directory under your home folder and the path is “/home/$USER/Document/phy” ($USER is a placeholder of your username ) and you wants to change to your downloads directory under your home directory you may use ' cd ../downloads ' simple you jump directly to downloads directory from another sub-directory.

Sudo – get a temporary root permission, most people interpreted it as “ super-user do” be careful with any command that runs with sudo.

Date : 01/26/16 10:58:30 PM

About Author  
Ahmad Abdulnasir Shuaib

Hope is the bedrock of this nation. The belief that our destiny will not be written for us, but by us, by all those men and women who are not content to settle for the world as it is, who have the courage to remake the world as it should be.
---Barack Obama

Do you want to get informed about new articles?