Switching to Ubuntu
Hey readers welcome, you are reading this article so I’ll assume you are using some other OS most likely Windows. But you wanna switch to Ubuntu/Linux because you have heard about many many benefits of using Ubuntu/Linux. I am gonna help you with that. We are going to see what exactly is Ubuntu and how it differs from windows.
Ubuntu or any other Linux based operating system has some important aspects you should know about, which are as follows :
Before we see each individually you need to understand the concept of shell. Lot of people confuse shell with command line interface or terminal.
Shell is an interface provided by any OS to interact with system. It may be GUI or Command line.
In general terms, Desktop environment (DE) is a graphical users interface (GUI) that enables a user to access and manage the important and frequently accessed features and services of an operating system.
A desktop environment is a default interface provided by virtually all modern operating systems, including Windows, Linux, Mac and more. This type of interface was developed to replace the command-line interface, which was used in legacy operating systems such as DOS and Unix. However, a user may still have command-line access for some system-level services that aren’t accessible through a desktop environment.
The primary desktop environment is often called simply a desktop. A desktop environment typically consists of several separate components, including a window manager (such as Mutter or KWin), a file manager (such as Files or Dolphin), a set of graphical themes, together with toolkits (such as GTK+ and Qt) and libraries for managing the desktop. All these individual modules can be exchanged and independently configured to suit users, but most desktop environments provide a default configuration that works with minimal user setup.
In case of Windows we are stuck with default desktop whether you like it or not. But in Linux you have lot of options to choose from, and installing them is as simple as click-click-click. Some of most popular desktop environments are given below :
Package manager in Linux is sort of like Play store in Android, or App store in Apple, but with more control. Packages are simply distributions of software, applications, libraries and data. Packages also contain metadata, such as the software’s name, description of its purpose, version number, vendor, checksum, and a list of dependencies necessary for the software to run properly. Dependencies are other packages that are necessary for a current package to work.
A package manager or package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing software packages for a computer’s operating system in a consistent manner. It typically maintains a database of software dependencies and version information to prevent software mismatches and missing prerequisites.
In Linux there is a concept of repositories, now don’t get afraid by the word it looks fancy but it simply means location (it may be a directory on online server or local directory) where packages are stored. Package manager looks up these repositories for newly added packages and stores all that information along with metadata to a local database. So when you want to download some package you don’t have to scout online, just check in the package manager and install that package, it will automatically download all the dependencies.
There is one more benefit of using package manager, since it keeps repository info up to date, as soon as software developer adds updated package in repository you will get notified by package manager itself. You don’t have to manually open each software and update it manually. You can update all softwares in one click.
Just like in Windows which uses EXE (.exe) and MSI (.msi) format for distribution software, there are different types of package management systems and package formats in Linux. Different Linux distributions use different formats. Some of most widely used package formats are :
- DEB used by Debian, Ubuntu
- RPM used by Fedora, Red Hat
Most Linux distributions provide CLI and GUI interfaces for their Package Management systems. In Ubuntu you can use either Software Center or APT(Advanced Packaging Tool) commands in terminal. But I will recommend Synaptic Package Manager it provides GUI interface for APT. Synaptic is more flexible than software center. Just search for “synaptic” in Ubuntu Software center and click install.
To know more about how to use Synaptic read article below :
Command Line Shell/ Terminal
Command Line is ironically the reason people use Linux and also the reason people avoid Linux. Linux is very powerful because it provides a powerful command line interface and a set of powerful commands. People who know how use Linux terminal don’t need GUI. But as beginner you don’t have to worry about terminal and commands since you can do everything you need with GUI, but some system level tasks still need working with terminal. If you want to be a power user and use Linux up to its true potential you have to learn Linux commands. Nearly all the commands are same across all Linux distributions. Each Shell may provide you with some additional commands.
Now similar to desktop environment, there are different shells available for you to choose from and every Linux distro ships with at least one default shell. Some of widely used shells are as follows :
- Bash shell
- Korn Shell
- C Shell
With these shell commands you can write shell scripts, which is repetitive sequences of commands into a single file.
Some benefits of shell scripting :
- Combine lengthy and repetitive sequences of commands into a single, simple command.
- Generalize a sequence of operations on one set of data, into a procedure that can be applied to any similar set of data.
- Create new commands using combinations of utilities in ways the original authors never thought of.
- Simple shell scripts might be written as shell aliases, but the script can be made available to all users and all processes. Shell aliases apply only to the current shell.
- Wrap programs over which you have no control inside an environment that you can control.
- Create customized datasets on the fly, and call applications (e.g. matlab, sas, idl, gnuplot) to work on them, or create customized application commands/procedures.
- Rapid prototyping (but avoid letting prototypes become production)
There are lot of other things in Linux but those are beyond the scope of this article, but I will post articles soon so subscribe to our news letter. Comment for any queries and suggestions.