Linux is like air — you don’t feel it or know it even exists, but you need it all the same. From your addicting Android smartphones and all the apps you love in it, to Air traffic control stations and even the Large Hadron Collider, everything runs on Linux. For those who didn’t know, Linux is an open source operating system based on UNIX. We’ll go into the technical details later in this post.
Every engineering student would have encountered and experienced Linux at least once in the four years. Mine was at the summer break of the first year.
The technical clubs of NIT Trichy — Delta and Spider, were inducting for Web Developer and App developer positions. Getting into those clubs meant an opportunity to work with talented seniors and peers and learn from them. The inductions involved several rounds of coding tasks spaced throughout the holidays, and a hackathon and interview once we returned to college. I was naturally confounded on which role to learn and apply for as I didn’t have an inkling of either. However, I saw one more opportunity which most including myself overlooked — the system administrator position. The name had a zing to it and I decided to try out for it.
Then started my Linux journey. My summer was spent trying to dual boot my laptop and crashing it, installing virtual machines, configuring SSH, FTP, Samba servers, learning LVM, Bash scripting and most of all wondering why on earth it doesn’t work for me like it did for the dude on StackOverflow. After hours of debugging, more than my knowledge of Linux, my patience increased ( So did my eye power as I had to wear glasses the next month).
Learning Linux lead me into developing an interest in computers and how they operate. It was not long after that I was completely hooked to Linux — Working on a remote computer(through SSH) and transferring files without internet connection ( through Samba server) seemed like magic to me. I started writing scripts for automation and used to set reminders (cron jobs).
I ended up getting into Spider club. The Linux skills also helped in securing internships next year.
Whatever the motivation be, Linux is a must learn operating system for coders and electronics enthusiasts alike. It almost becomes a necessity when you start working in a technical role. Many of my classmates were asked questions on basic Linux commands and concepts in their job interviews.
Practical experience in Linux trumps hours of learning through archaic textbooks. If you wish to gain a basic understanding of Linux or you have technical interviews coming up, the following might help you.
Linux is an open source operating system based on UNIX. The operating system is the system software that manages computer hardware and software. Suppose you want to perform 25597 / 10, the OS is the one which facilitates this input to be performed by the computer processor(hardware) and displayed to the monitor screen(software). Open source means, some good people did all the work in developing the software and released the source code for free. You can add your own features and even debug the source code.
Linux comes in various flavors /distributions such as— Fedora, Ubuntu, OpenSUSE which are commercial, while Debian and Arch Linux is entirely community driven. All these have the Linux kernel in them. Linux appeals to programmers due to its versatility, power, speed and the package manager which lets them install software seamlessly.
The kernel is the heart of the operating system. Linux Kernel is a low-level system software. It provides an interface for user-level interaction. It manages the system resources such as RAM, Disk, Processor, output devices etc.
Linux shell is basically a user interface. You can enter your inputs into the shell, The shell would execute the commands and communicate with the Linux OS in doing so. There are varieties here too — BASH (Bourne Again SHell), CSH ( C Shell), KSH ( Korn Shell) and TCSH.
BASH is a short form of Bourne Again SHell. It is also a command language and has its own command syntax.
There are 3 types of permissions in Linux OS that are given below:
Directory here is similar to a folder in Windows. The chmod and chown commands are used to control access to files in UNIX and Linux systems. The chmod command stands for “change mode”, and allows changing permissions of files and folders in Linux. The chown command stands for “change owner” .
With the chmod , User U, Groups G, and Others O can be granted varying permissions such as Read, Write or Execute to files and directories. Read has a value of 4, Write of 2, Execute of 1 . Add the values of required permissions and assign it in the corresponding position for UGO.
It stands for “super user do!” .If you add “sudo” before any Linux command, it will run that command with elevated privileges. So you could now perform certain admin tasks such as the installation of servers or reboot.
It is the code that deletes everything on the computer. rm means to remove, -rf flag deletes entire folder forcefully. * stands for every file/folder on Linux system.
A text editor is a must have application for any operating system (for plain text, writing code). Linux editors can be divided into two categories,
* GUI editors — They are graphical and user-friendly . Eg- Gedit and Sublime. * Console text editors. — They work right inside the terminal and are.But they are difficult for beginners. Eg- Nano, Vi, Vim.
The software utility cron is a time-based job scheduler. Cron schedules jobs (commands or shell scripts) to run periodically at fixed times, dates, or intervals. You could set it to download a movie every Friday evening (Write a script to download the latest movie and assign it to cron).
LVM, or Logical Volume Management, is a storage device management technology. It gives users the power to pool and abstract the physical layout of component storage devices such as hard disks and external drives for easier and flexible administration.
CLI (Command Line Interface) is a text-based interface in Linux which lets users interact with the OS and applications. It is unlike the GUI(Graphical User Interface) in Microsoft which has graphical icons, links, and folders. CLI allows a user to perform tasks by entering commands manually. Its working mechanism is very easy and fast, but it is not user-friendly.
LILO (Linux Loader) is the boot loader for Linux operating system to load it into the main memory so that it can begin its operations. Bootloader here is a small program that manages a dual boot. LILO resides in MBR (Master Boot Record).
Grep, awk, and Sed are three of the most useful command-line tools.
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program .
- Linus Torvalds, creator of Linux