Language Selection

English French German Italian Portuguese Spanish


Syndicate content FOSS Linux
Enhance your Linux experience.
Updated: 3 hours 28 min ago

How to change Hostname on Ubuntu

Thursday 6th of August 2020 08:51:04 PM

Generally, a hostname is just an assigned name to a computer, laptop, or any other connected device to a network. You can say a hostname is a computer’s nickname, and it is used to identify the machine over the network uniquely.

Sometimes you need to name your computer with a new hostname so it would be easy to recognize it. It is highly recommended not to name two computers on the same network with the same hostname because this would result in a conflict in the network causing issues. The hostname is used to uniquely identify your computer over a network.

In this tutorial, we are going to walk you through changing your Ubuntu machine’s hostname. There are several ways to do it, and we are going to discuss all of them.

Changing your Ubuntu System’s Hostname

We shall look at the command line as well as GUI methods.

Check Computer’s Current Hostname

Before we can start, you can check the current hostname using the following command in the terminal.

hostname Display Current Hostname

As you can notice, my computer’s current hostname is FOSSLinux. In the next few steps, we are going to change this to a new one.

Change Hostname via Command Line

In this section, you will learn how to change your machine hostname using the command line method using the terminal. There are multiple commands you can use, such as:

  • hostname command
  • hostnamectl command
Change Computer’s Hostname Using hostname Command

Using this method, you will be able to change your computer hostname permanently without even needing to reboot the system.

Step 1. Launch the terminal using this shortcut keys Ctrl + ALT+ T.

Step 2. Use the following hostname command with your the new hostname you need:

sudo hostname FossLinux1 Change Hostname

Step 3. Open the hostname configuration file using your favorite editor.

sudo vi /etc/hostname Configuration File

Step 4. Edit the hostname configuration file and add the new hostname:

FossLinux1 New Hostname

Step 5. Open the “hosts” configuration file using your favorite editor.

sudo vi /etc/hosts Open Hosts Configuration File

Now you need to ensure that you have commented on all the old hostnames using the “#” symbol. Then add the new hostname as follows:  FossLinux1 Edit Hosts Configuration File

Step 6. Go and check your hostname now.

Hostname Changed To FossLinux1 Change Computer’s Hostname Using hostnamectl Command

Step 1. Check the current computer hostname using the command:

hostnamectl Display Current Hostname Using hostnamectl

As you can observe, the current computer’s name is FossLinux1, and we are going to change this.

Step 2. Use the hostnamectl to set your computer’s name.

sudo hostnamectl set-hostname FossLinux2 Change Hostname to FossLinux2

Step3. Edit the /etc/hosts file using your favorite editor.

sudo vi /etc/hosts Edit Hosts Configuration File and Add FossLinux2

Ensure you have commented out the old hostname and add your new hostname as follows:

After Editing Hosts Configuration File and Add FossLinux2

Step 4. Check your current hostname.

hostname Check Current Hostname Change Hostname Via Graphical User Interface

The easiest method for changing your computer hostname is through the system graphical settings menu.

Step 1. Open the drop-down arrow from the top of the screen.

Open the Arrow

Step 2. Select the settings button.

Open System Settings

Step 3. From the left menu, select the Details menu.

Open Details Menu

Step 4. Next, open the About option.

Select The About

Step 5. From the right side, you will find your computer’s information. The hostname can be found under the device name.

Device Hostname

Step 6. Easily you can change the device hostname to a new one.

Change Hostname

Step 7. Reboot your system.

Step 8. Check your current hostname.

Check Hostname

Congratulations; you have just learned how to change your computer’s hostname using various methods. That’s it!

Manjaro vs. Ubuntu – which is better for you?

Thursday 6th of August 2020 06:44:10 PM

If you are a person associated with Computer technology and spend most of the time in the open-source arena, you must have heard or worked with some of the popular Linux distributions we have in the market. Some of the names that you will never miss are; Ubuntu, Arch Linux, Debian, and Mint.

Despite Linux having more than 600 distros available today, I tend to believe there is that one distribution that everyone has a soft spot for. That could be because of its performance, stability, software availability, or a specific feature not available in other distribution.

In this article, we will put our focus on two Linux distributions. The first is Ubuntu, one of the most popular distributions with its first release made on October 20, 2004. The other is Manjaro, which is regarded as a much smaller and emerging distribution with its first release on July 10, 2011. We will compare these two distros across a few key areas and give a brief review of both distributions.

Welcome to Manjaro Linux

Manjaro Linux is an emerging Linux distribution based on Arch Linux, made professionally to provide all Arch Linux features with a lot more emphasis on stability, security, accessibility, and overall user-friendliness for newbies getting started with Linux systems. Manjaro users get to benefit from cutting-edge software and automated tools that require less manual intervention. However, I wouldn’t recommend Manjaro for use as a server to host services; it is best used for personal use.

Manjaro Linux Welcome to Ubuntu

Ubuntu is a popular Debian based Linux distribution that is free and opensource. Ubuntu comes in three different editions; Ubuntu Desktop for use in PCs, Ubuntu Server, and Ubuntu Core used in IoT (Internet Of Things) devices and robots. It is a popular operating system used in Cloud computing and offers support for OpenStack (Wikipedia). If you are looking for a good Linux Desktop distro to get started with, then Ubuntu is definitely for you. It has quite a large community where you can get solutions to any arising issues.

Ubuntu 20.04 Comparing Manjaro and Ubuntu FeatureUbuntuManjaro Based onDebianArch Linux Package ManagerUses APT Package ManagerUses Pacman Package Managers and others such as pacaur Desktop Environment – DefaultGNOMEXFCE, KDE, GNOME, i3, Cinnamon etc Supported ArchitecturesAmd64, i386X86-64 Init SystemSystemdSystemd Platform agnostic packagingSupports Snap, Flatpak and AppImageSupports Snap and Flatpak Support for 32-bit systemsNo supportStill supports 32-bit systems. DocumentationDue to its popularity and many users, Ubuntu has quite a large community.A good documentation backed by Arch’s User friendlinessHighly user friendlyDesigned to make it easy to use Arch Linux Package Managers

Package managers in Linux enable users to manage installed software, allow easy installation of new software, and apply updates and upgrades to previously installed packages.

Ubuntu makes use of the APT package manager derived from Debian. Manjaro, on the other hand, makes use of the Pacman package manager derived from Arch Linux. The syntax of these two package managers might be different, but the overall functionality is the same. Both can install new packages, apply updates and upgrades, and search for particular packages.

The main difference between these two package managers lies in the repositories they use to obtain software. Ubuntu has a lot of software available by default. Users can also install packages from independent developers via PPAs. Even though it is a great feature, it doesn’t hold weight against Manajaro, which also has access to the Arch User Repository (AUR).

If you are looking for a package that is not present in the Manjaro official repository, there is a high probability it is available in AUR. AUR packages are much easier to maintain than Personal Package Archives (PPA) in Ubuntu, where you can easily find errors like “Broken PPAs.”

Additionally, both operating systems make use of Distribution independent package formats like Snap and Flatpak.

Release Cycles

The way these two distributions release their upgrades is very different. Manjaro is a rolling release, which means updates are continuous, and users don’t necessarily need to download a new version of Manjaro every time. All you have to do is ensure the system is up to date using the Pacman package manager, and you will always have the latest Manjaro version running on your PC.

Ubuntu, on the other hand, is different. The Canonical team makes new LTS (long term support) releases after every two years. LTS releases are privileged of support and updates for the next five years.

Ubuntu Release Cycle (Courtesy: Canonical)

Additionally, Canonical issues an interim releases every six months supported for only nine months. These interim releases feature the latest updates and features of Ubuntu.

There are pros and cons to these two release models. A rolling release ensures you have access to the latest and greatest tech. Additionally, it is much easier to deal with as you don’t require any ‘Full upgrades.’ However, there is a catch. With all these latest tech and software, is everything tested and stable compared to the LTS releases in Ubuntu?

The process of upgrading Ubuntu can be quite lengthy than that of Manjaro but painless. With their documented release schedules, users are aware of when to expect the next upgrade. Additionally, users are assured of tested, stable, and reliable LTS releases.

Customization and Convenience

When you install any of these two distributions for the first time, you will see several default applications like a word processor, internet browser, email client, etc. However, Manjaro borrows another great feature from Arch Linux and comes with much less pre-installed software. That encourages users to install only the software they need and apply their customizations.

Like most of the other Debian distributions, Ubuntu provides users with an extra layer of convenience by having a lot more of pre-installed applications. That might be great for first time users who are still getting started, but for Linux gurus, this is unnecessary.

When it comes to user-friendliness, Ubuntu is much easier to use and highly recommended for beginners. However, Manjaro offers a much faster system and much more granular control.

Desktop Environments

About Desktop environments, there is no clear winner. Ubuntu comes with GNOME by default, but you can add other Desktop Environments along the way and easily switch between them. Manjaro Linux, on the other hand, is quite impressive. You get to decide which Desktop Environment you want when downloading the ISO setup file. They include XFCE, KDE, GNOME, i3, Cinnamon, and more.

Final Thoughts

To sum up everything, these two distributions address the needs of different groups of people. If you crave for granular customization and access to AUR packages, Manjaro is a great choice. If you want a more convenient and stable distribution, go for Ubuntu. Ubuntu will also be a great choice if you are just getting started with Linux systems. However, both are highly praised distros, and you won’t make a mistake in choosing any of them.

What are your thoughts on these two amazing distros? Which one is your favorite and why? Let us know in the comments below.

9 Useful Tips Working with Operating System using Python

Wednesday 5th of August 2020 09:21:19 PM

There are several situations when we want to work with the operating system using Python. We may want to see the user details or wish to do some tasks with the files and directories. If you are a system administrator, you will find it useful to work with Operating System as one can easily automate some repeating tasks of the Operating System using Python.

Although the same tasks can be performed using basic shell scripting, it has limited capabilities and will not give you so much power as in Python. Additionally, the same python script can be used anywhere and also integrate the codes to other python projects. There are a vast number of modules to work with the Operating System in Python. Some of the modules which are included in Python’s standard library and work well with Operating Systems are os/path, pwd, glob, shutil, and subprocess.

Before getting started with this tutorial, you need to have Python installed. If you don’t have it installed already, refer our step by step guide to install Python on Linux.

Fetching OS Information using Python

At times you may want to fetch necessary information of the operating system like the username, user id, or merely the name of the operating system. Besides, the program may need to know which Operating System is running on so that it can tweak the tasks for different OSes.

1. Getting the operating system details

We can get operating system details like platform, name of Linux distribution (if using Linux), system OS name, etc. using Python. To get the name of the Operating System, we can use the modules os or sys. These modules are included in Python’s standard library, so we don’t need to install them for use in our projects. You can open the python shell by typing Python or python3 in the system terminal.




You can get the type of OS using the os library by running the following code in the python shell.

>>> import os >>> 'posix'

As you can see, the above code had display posix for Linux Operating System. If you are using Windows, it will show ‘nt.’ You can also get the Operating System name by using the sys module. You can run the following code to see how it works.

>>> import sys >>> sys.platform 'linux'

As you can see, the result of the platform function of the sys module has shown the name Linux as I am using it. You will get “win 32” for windows.

You can use the uname function of the os module to get a detailed description, see the following code to see how it works.

>>> import os >>> os.uname() posix.uname_result(sysname='Linux', nodename='kali', release='5.6.0-kali2-amd64', version='#1 SMP Debian 5.6.14-2kali1 (2020-06-10)', machine='x86_64')

This code has shown that I am using the Kali Linux. This code is only available for Linux OS. It does not apply to Windows.

2. Getting the username using Python

You can get the name of the current user login in the system using Python by typing the following code in the python shell :

>>> import os >>> os.getlogin() 'roshan' 3. Getting the size of the terminal

You can also get the size of the terminal using Python. Run the following code in the python shell.

>>> import os >>> os.get_terminal_size() os.terminal_size(columns=80, lines=23)

This will print the size of the current terminal. This will write two values the number of columns and the number of lines. Individual columns or lines can be accessed using the following code. Copy the following program in a file name it and run it using python3

import os col, lines = os.get_terminal_size() print("Number of columns :",col) print("Number of lines :",lines)

You may see the output of the program as shown below:-

Output Performing basic operations with Files and Directories

Let’s now check out how to work with the files and directories using Python. Python has become a mature programming language, and it can now do tasks for which we need to learn different programming languages. Python is also good at automating several task-related to files and folders, and by using the following codes in an automated manner. You can perform automation like folder cleaning, moving files with specific formats from one place to another, etc.

4. Getting the Current Directory path

To get the current directory path, we can use the getcwd() function of the os module; it is much like the pwd command of Linux shell.

>>> import os >>> os.getcwd() '/home/roshan/Documents/fosslinux'

As you can see, the code had output the path of the directory in which I am using the python shell.

5. List all files and folders present in a directory

You can also list all the files and subdirectories present in a directory. To list the files and folders in the current directory, run the following code:

>>>import os >>>os.listdir()

The output resembles something like the below image. The above code is displaying a python list of all the files and directories present in the current working directory.

You can also list the files and sub-directory present in another directory by giving the path of the directory in the parenthesis. See the following code to understand how it works.

>>>import os >>>os.listdir("/root/Desktop")

You may see the output of the above code as shown in the following image

The output given by the listdir("D:/python") method is a python list of all the files and directories present in the directory "D:/python". If the directory path which you provide in the parenthesis does not exist in the system, then it will raise a FileNotFoundError.

6. Creating a Directory

To create a directory using Python, you need to use the mkdir function of Python’s os module. Let’s see how to create a directory using Python. Run the following code in the python shell.

>>>import os >>>os.mkdir("os")

This will create a directory os in the current directory. If the directory already exists then you will get a FileExistError; It may look something like this:

Traceback (most recent call last): File "<stdin>", line 1, in <module> FileExistsError: [Errno 17] File exists: 'os'

For better error handling using try and except. You need to simply copy the code and paste it into a file named and run the python program using the command python3 in your terminal ;

import os path = "os" try: os.mkdir(path) print("The Directory has been created successfully") except FileExistsError: print("The Directory named " + path + " already exists")

You may see the output something like in the following image:

The difference in the first code and the above code is that the second program uses a try/except method for error handling. The role of the try/except method in the above code is that the python interpreter will try to run the code under the try block first and if it got a FileExistError, than it will execute the code under the except block. This is a good practice to use try/except block in a python program so you can easily detect error and can run the code block present in the except part if there is an error.

7. Rename a File

You can also rename a file using Python. To rename a file, use the rename function of the os module. The rename function accepts two important arguments, the first argument is the path to the file you want to rename, and the other file is the name to which you want to rename the original file. See the code presented below to see how it works, type the code in the python shell, and see its working.

>>>import os >>>os.rename("file1.txt,file2.txt")

The above code will rename the file file1.txt with the name file2.txt. This will show an error if the file file1.txt is not present in the given path, so provide the correct path.

8. Delete a file

To delete a file, you need to use the remove() function of the os module. Look at the following code to see how to do this –

>>>import os >>>os.remove("sample.txt")

This will delete the file sample.txt present in the current directory; you can also give the path of the file if it is present in other directories. If the file does not exist in the given path, you will get a FileNotFoundError. Use the exception handling method outlined in the previous sub-topic to deal with errors.

9. Delete a directory

If the provided path is a directory, you will get OSError because this function can’t be used to remove a directory. Use rmdir()method to remove the directories. See the following code for better illustration-

>>>import os >>>os.rmdir("sample_dir")

The above code will remove the directory named sample_dir. Give the path of the folders if present in other directories to remove them.


That’s all about various useful tips for effectively fetching the operating system and other info that you need while using Python. What other tips you have that you are willing to share? Do let us know in the comments below. Before leaving, you may also like to see the tutorial on how to execute shell command with Python, which shows you how to use the Linux shell commands easily under python programs.

System76 Lemur Pro Review

Wednesday 5th of August 2020 03:03:21 AM

Buyers who wish to go for a machine that is based on Linux often show interest in Chromebooks due to the form factor and extended battery life capabilities. Although ChromeOS power these machines, users can still miss out on a more genuine Linux experience. For those who happen to agree, the new Lemur Pro by System76 might get some heads turning.

Lemur Pro Laptop review

System76’s Lemur Pro is a laptop that fully supports Ubuntu and Pop!_OS and comes with high-end hardware that can even give Windows or macOS-based machines a tough time. Unlike other Linux-based devices in the market that are labeled as ‘developer edition,’ Lemur Pro has been solely made to cater to the requirements of Linux fans and programmers.

System76 Lemur Pro Laptop Review

Like all the reviews we publish at FOSSLinux, there is no what-so-ever influence of the manufacturer on this review. The opinions described here are solely that of FOSS Linux Reviewer.

Configuration Options

The makers have also given buyers the complete freedom to choose the specs for their machine. So, before we delve deeper into Lemur Pro, let’s see the specifications that are able as of when this article is written, and the configuration FOSSLinux bought for review.

Pop!_OS Pop!_OS desktop

First of all, buyers would have to choose the operating system of their liking from two options: Pop!_OS 20.04 LTS (64-bit) with full disk encryption, and Ubuntu 20.04 LTS (64-bit). Although you can’t go wrong by opting for any of these operating systems, we decided to go with Pop!_OS, as full disk encryption caught our interest. Pop!_OS was reviewed in-detail earlier.


Now, you will have to choose your preferred processor. The options you have include an i5-10210U processor with four cores and eight threads and 4.2 GHz max processing power and an i7-10510U processor with the same number of threads and cores, but 4.9 GHz max processing power. We went with the i7 processor, and we’d recommend you do the same if you aren’t running low on cash, and performance is the crucial factor.


We maxed out the RAM by going for 40GB of DDR4, because its finally the RAM that matters the most for multi-tasking needs. However, there’s no stopping you from choosing any of the other options, which include 8 GB, 16 GB, and 24 GB of RAM. As for the OS drive, buyers can opt for either a solid-state drive or NVMe with different storage spaces and read/write speeds. We went with a 500 GB NVMe (with Seq Read @3,500 MB/s and Seq Write @3200 MB/s) as this is a mid-range option. If you have high storage demands, you can also opt for an additional M.2 NVMe drive. We don’t, so we didn’t choose one.

Other Hardware

For just a few bucks, you can also make the upgrade to WiFi 6 + Bluetooth. Nonetheless, we consider the ordinary WiFi + Bluetooth to be just enough, which also happens to be free of charge. Then comes warranty where buyers can opt for either 1-year, 2-year, or 3-year Limited Parts and Labor warranty. If you don’t make rough use of your device, you should go with a 1-year warranty—just like we did.

When it comes to assembly service, buyers have the option of the 3-Day Rush Assembly service, which makes sure that the in-stock items are assembled and delivered to you within three business days. Since we can wait, it made sense to go for regular assembly service.


Other than these options, System76 also offers additional displays, accessories, and laptop bags to go with your Lemur Pro system. If you plan on opting for the same configuration as ours, the laptop is going to cost you $1,692, or $105 per month (in the form of installments).


Although you could expect to get the same performance as the current MacBook Pro from this laptop, what’s truly surprising is that Lemur Pro still weighs less. The weight of this laptop is so little that even the new MacBook Pro or the Pixelbook Go would seem heavy. More specifically, this laptop by System76 weighs less than 2.2 lbs, which becomes even more impressive when you consider the high-end hardware it accompanies.

Another thing that might catch your attention is the clean design as you open the laptop. Despite the computer using an Intel processor, the company’s logo is nowhere to be found. The makers didn’t go overboard with the branding either since you’ll only be seeing one System76 logo on the device’s lid. Absolutely zero labels inside.

Clean Inside

What might bug die-hard Linux fans would be to see a Windows logo on the keyboard of their Linux machine. However, Lemur Pro is not your ordinary ‘developer edition’ of an essentially Windows-based device. So, there’s good news in that System76 has ditched the Windows key, and its place is taken by the “Overview” key.

The makers have also attempted to make you step out of your comfort zone by placing the power button on the right side of the laptop. Considering this, it might take a while for you to retrain your brain into making your hands always reach for the laptop’s right side when switching it on.

Plus, instead of increasing the bezel size, the makers added the webcam and microphone in a small bump that you can find right above the screen—the bump doubles as an edge to open the lid with only one hand – smart design.

Lemur Pro Camera Bump

The bottom of the laptop has raised rubber pads for venting off heat. However, there are no vents on the base; hence I had no problems in having the computer directly on my lap. Together with how light this laptop is, I’m impressed at its portability.

Lemur Pro – No vents Design Build Quality

The laptop isn’t just a treat to look at as its magnesium (with a dash of aluminum) body also makes for one sturdy cover in case you ever happen to drop the laptop on the floor. Besides, we didn’t catch any visible gaps or imperfections in the device either, which makes it apparent that makers have put extra attention into its build quality.

Lemur Pro’s excellent Fit & Finish

Another noteworthy feature of Lemur Pro is its 14.1-inch 1920×1080 FHD display that comes with a matte finish. Although the screen size is impressive, to say the least, what makes this display even better is it offers the right colors and brightness even when outdoors, which seems to be lacking in a significant number of laptop displays out there.

If you plan on using this device for programming or writing purposes, its backlit keyboard could be quite a draw. Sporting a chiclet-style layout, Lemur Pro’s keyboard can be fun to type on all thanks to its design, which makes it easier for you to travel and return. Plus, if you’re making the shift from a Dell or Lenovo device, you’ll love how its keys can be pressed with just a light touch. This is not targetted as a multimedia laptop, and so you won’t find the multimedia keys. Accordingly, if you don’t set up custom keybindings, it would be impossible for you to use your keyboard for playing or pausing media.

As for the trackpad, Lemur Pro features one which has no buttons and feels like Precision glass; however, we’re not genuinely sure since the website has no mention of it. Apart from being multi-touch, its trackpad provides top-notch performance that can be compared to that of the likes of MacBook or Pixelbook. I felt the trackpad is better than the Pixelbook Go.


You’re going to have a hard time if you look for pure Linux-based laptops in the market that also accompany top-notch hardware. However, one such machine is right in front of you in the form of Lemur Pro by System76.

If you’re not on a budget, the best possible thing to do would be to max out the configurations of this device. Accordingly, you’d be able to get one of the best processors out there right now in addition to plenty of RAM and storage space. In terms of its graphics card, there’s only the built-in graphic card in the form of Intel UHD Graphics, which can get the job done—unless you’re planning on doing some heavy-duty gaming or video editing.

When it comes to the ports of this device, Lemur Pro offers two USB 3.0 Type-A, USB 3.1 Type-C Gen 2, and a microSD card reader as well.

Lemur Pro Side View Lemur Pro Left Side Ports

For connecting external monitors, the sported HDMI and USB 3.1 Type-C with DisplayPort 1.2 should do the trick. Also, buyers can choose to go for WiFi 6 for even better connectivity.

In terms of its shortcomings, I felt the audio is slightly on the muddy side due to its average stereo speakers. The mic is excellent; my friend had no trouble what-so-ever listening to me in a Zoom test meeting. The 720p webcam of this device is mediocre to the point that you’ll have to get an external webcam if you can’t do with low quality in low-light conditions.


If you’ve opted for the same configurations as we did, you are bound to get optimal performance from Lemur Pro. Courtesy of its 10th Generation i7 processor coupled with 40 GB of RAM and 500 GB of NVMe storage, you are going to be left amazed by how fast your machine will run.

I experienced this right from the start as your computer takes almost no time to boot. That’s due to the CoreBoot feature. For those new to CoreBoot, it is a replacement for your BIOS / UEFI with a focus on boot speed, security, and flexibility.

Besides, programming would seem a lot more comfortable since you’ll be able to work with multiple tools at the same time and that too, without having to worry about the system experiencing lags.

With this machine, the makers have attempted to build the ultimate Linux-based laptop, which can be seen from its open-source firmware. Accordingly, Lemur Pro features CoreBoot open source firmware which not only enhances the device security but also contributes to faster booting time.

Battery Life

Another critical aspect of any laptop would be its battery timing. When it comes to this machine by System76, its battery lasted for 13 hrs on a full charge, which makes it the perfect laptop for those who like carrying out their tasks without having their computer be attached to a charging cable at all times. My testing involved using the Chrome browser for the entire period along with the GIMP image editing tool that I use every day for making images for my articles.

There is a power saver setting as well that can give you additional battery life; however, that will come at the cost of processing power. Accordingly, this setting would be a better fit for those who just want to do simple tasks without going too hard on the battery.

Pop_OS Power Settings

I noticed that the fan was a bit brash at times, and the bottom got a tad hot. However, System 76 was apparently working on it, and they rolled out a firmware update to the fan, and this immediately fixed the issue. So, if you are facing abrupt fan speed increase, just do a system update, and you should be fine.

Final Thoughts Lemur Pro (Left) besides Pixelbook Go (Right)

Let’s face it: there aren’t that many Linux-based laptops out there that feature high-end hardware on top of an advanced Linux experience. System76 has taken advantage of this market gap by releasing Lemur Pro. Apart from being a trustworthy competitor to Linux-based machines, this laptop by System76 also gives a tough time to devices powered by other operating systems. There’s no doubting the performance of this machine and the all-day Battery life with ultimate portability. Lemur Pro comes with onboard graphics, so the message is clear that it is targetted towards programmers and for lighter multimedia editing needs. So, if this laptop has impressed you enough, you can get Lemur Pro with your preferred specs from its official store.

Top 10 New Features in Linux Kernel 5.8

Wednesday 5th of August 2020 01:16:40 AM

Linus Torvalds recently announced the release of Linux Kernel 5.8, and he seems delighted with it. He has pointed it out as the most significant release of all time. To developers, this new kernel comes with an addition of 800,000 new code lines and more than 14,000 changed files. To the average user, you might not see many eye-candy changes, as seen in the earlier releases.

Overall, the Linux Kernel 5.8 releases include a bunch of driver support, optimizations, processor improvements, and a variety of security enhancements. In the Linux Kernel mailing lists, Linus Torvalds wrote, “So I didn’t expect this, but 5.8 looks to be one of our biggest releases of all time.”

Given the release timeline for Linux 5.8, it may be available for testing in distributions like Ubuntu 20.10 and Fedora 33 soon. Let’s take a look at some of the features you can expect in Linux Kernel 5.8.

Linux Kernel 5.8: Key Features & Changes

Considering Linux Kernel 5.8 is one of the biggest releases, you should expect quite a tonne of technical changes and improvements. We will focus on some of the features which have an impact on the overall end-user.

1. AMD Energy Driver

If your computer runs a Zen/Zen2 AMD CPU, then it’s great news to know that the new Linux Kernel 5.8 release supports the AMD Energy Driver.

In case you don’t know what this means, users running Zen/Zen2 AMD CPU will now be able to get energy reports on per-socket/per-core. It is more useful to persons interested in knowing their CPU power consumption.

2. AMD Renoir CPU temperature monitoring

Another feature you should expect with Linux Kernel 5.8 is CPU temperature monitoring for PCs running Renoir processors.

On the earlier Kernel releases, the Linux k10temp driver for Zen/Zen2 CPU core required for temperature reporting doesn’t work. With the addition of PCI IDs in Linux 5.8, Renoir CPU temperature monitoring will now be possible on Linux systems.

3. AMD Renoir ACP audio support

Linux kernel 5.8 also features a new hardware support for the sound subsystem with the AMD Renoir (Ryzen 4000 mobile) Audio Co-Processor (ACP) support.

4. AMDGPU Trusted Memory Zone (TMZ) Support

It is a new feature that comes with Linux 5.8. It targets open-source graphics drivers that work with the device’s graphic hardware enabling encryption for portions of the video memory.

Even though Trusted Memory Zone (TMZ) support dates back to the original Vega graphics processors, it is the first time that we will see this feature in Linux. The AMD Trusted Memory Zone (TMZ) offers secure buffer object support on Linux by hindering the contents of TMZ’ed pages from being read by the CPU, a non-GPU client.

5. Kernel Concurrency Sanitizer (KCSAN)

The Kernel Concurrency Sanitizer feature, which adds up to ‘4K + Lines of code’ to Linux 5.8, is a dynamic race detector necessary for detecting any arising flaws in the Kernel code. To detect kernel races, KCSAN relies heavily on compile-time instrumentation and applies a watchpoint-based sampling approach.

6. Boost support in the CPPC CPUFreq driver

The ACPI-defined Collaborative Processor Performance Control (CPPC) CPUFreq driver is a feature presented by Linux Kernel 5.8 to enable “boost” for optimal CPU level performance.

Collaborative Processor Performance Control ACPI specification is a normalized mechanism for depicting abstract performance scales. It is a method for having the option to request higher/lower performance levels and estimating per-CPU performance.

7. Open Source Adreno 405 / 640 / 650 GPU support

With Linux 5.8 release, users can expect updates on the open-source MSM drivers (Freedreno). That brings forth the support for Qualcomm’s Adreno 405, 640, and 650 GPUs.

Adreno 405 is quite old and has been in the market since the days of snapdragon 415/615/616/617. Adreno 640/650 is still quite relevant for the current-generation hardware. Adreno 640 enables the provision of graphics for Snapdragon 855/855+, while Adreno 650 is focused on Snapdragon 865.

8. Shadow Call Stack and Branch Target Identification for ARM64

Some of the ARM architectural changes supported by Linux Kernel 5.8 revolve around two security features: Branch Target Identification and Shadow Call Stack.

Branch Target Identification (BTI) support as a significant aspect of the ARMv8.5 specification. Branch Target Identification marks legitimate targets of indirect branches. The CPU will trap an instruction in a secured page that is attempting to perform an indirect branch to an instruction other than a stamped BTI.

Shadow Call Stack is a compiler-level element when working with LLVM/Clang. Shadow Call Stack is intended to prevent against return address overwrites.

9. More exFAT driver improvements

Linux Kernel 5.7 also included an exFAT driver with its release, but Samsung has sent several improvements, optimizations, and fixes for it.

10. Thunderbolt ARM (i.e. USB 4.0) support

With Linux Kernel 5.8, you should expect Thunderbolt support for non-x86 systems and ARM support. Additionally, Linux 5.8 provides Thunderbolt support for Intel Tiger Lake and several USB improvements and updates.

Other Features in Linux Kernel 5.8

Some of the additional features you should expect in Linux Kernel 5.8 include:

Improved DAX support

If you like speeding up your system with Intel’s Optane memory, the Improved DAX support will allow direct access to files by the persistent memory without the need to use the page cache.

What are your thoughts about Linux Kernel 5.8? Is it an exciting release, given that it is the biggest release of all time? Feel free to share your thoughts and any other information with our readers below.

How to install Flutter on Linux

Monday 3rd of August 2020 05:49:06 PM

Do you want to install Flutter and start creating awesome Android and iOS applications? Then you have come to the right place. Here is a comprehensive tutorial on how to install Flutter on Linux. If you are new to Flutter, don’t worry, we got that covered too as we shall go in-depth understanding of Flutter and what it brings to the table.

What is Flutter?

Flutter is a UI toolkit from Google that can help you create beautifully-designed, natively-compiled applications for the web, desktop, and mobile (both Android and iOS).

The best part of Flutter is that it uses a single codebase. As such, with the same effort, you will be able to develop apps for multiple platforms, Android as well as iOS.

Install and Configure Flutter on Linux

For the sake of this tutorial, we will be focusing on installing Flutter to help us create Android applications. To do this, we first need to download and install Flutter on our Linux PC. Once that’s done, we will need to install an editor. In this case, we will be installing Android Studio to create our Android apps. Also, we are using Ubuntu 20.04 (Focal Fossa) for this guide. If you are on any other distro, the installation process should be similar, with minor distro-specific differences.

So without further ado, let’s get started:

Download and Install the Flutter SDK

Before you download and install the Flutter SDK, make sure your Linux PC meets the minimum system requirements:

  • Operating system: Linux (64-bit)
  • Disk Space: 600 MB (excluding the disk space required by the IDE/tools)

If your system checks out with the minimum system requirement, you can get started with installing Flutter. There are two ways to do this.

Installing Flutter using the Snap Store

This is a more comfortable option. If you have Snap Store enabled, all you have to do is enter the following command in your terminal and Flutter will be installed on your system:

$ sudo snap install flutter --classic

To learn more about snap packages and how to enable it on your Linux PC, read this guide.

Let’s say you don’t have snapd, or for some reason, you can’t use it. In that case, you will need to install the Flutter SDK manually. Here is a comprehensive step-by-step guide to help you out with the process.

Note: Flutter uses Google Analytics to anonymously collect and report feature usage statistics as well as bash crash reports. By downloading the Flutter SDK, you automatically agree to Google Terms of Service.

Installing Flutter SDK manually, without Snap Store Step 1: Download the Flutter Installation Bundle.

You need to head on over to their official website and download this installation bundle, as shown in the image below. The button in the below picture is only for your reference. It’s not clickable!

Download Flutter Installation Bundle Step 2: Extract the archive file.

After downloading the archive file, you will need to extract it to your desired location. Using the following command, we have extracted it to our Documents folder.

$ cd ~/Documents $ tar xf ~/Downloads/flutter_linux_v1.17.5-stable.tar.xz Extracting Flutter Step 3: Update Path to add the Flutter SDK

To do this, you will need to open the rc file for your shell. Since our system and most other Linux distros use Bash shell by default, we will be editing $HOME/ .bashrc. To do this, open your terminal and enter the following command:

$ cd /home/{current-user} gedit .bashrc

Note: replace {current-user} with the actual user name.

This is going to open up the following file for editing.

Update PATH for Flutter SDK

Caution: Be careful about making any accidental changes to the file as it contains all your system configurations.

Just scroll down to the bottom of the file and add the PATH as shown in the image:

export PATH="$PATH:{Path-To-Flutter-Git-Directory}/flutter/bin"

Note: Replace {Path-To-Flutter-Git-Directory} with the actual path. Since our Flutter SDK is located in /home/Documents, we have entered this line (119), as shown in the above image: export PATH=”$PATH:/home/Documents/flutter/bin.”

After entering the PATH, Save and Close the file. After that, Close the terminal.

Step 4: Check If Everything is Working Properly

Next, you will need to open a new terminal and check to see if the updated path to the Flutter SDK is showing. To do this, enter the following command:

$ echo $PATH

Next, enter the following command to see if Flutter is working correctly:

flutter doctor Running Flutter Doctor Command

As you can see, the PATH has been successfully updated and is showing in the echo command. The Flutter Doctor command is also running properly. However, there are still some issues that need to be resolved:

Flutter Doctor Issues Found

To run and develop Android applications, we need to have Android Studio installed on our system, which is what the messaging is referring to. That being said, it’s time to install Android Studio on your Linux PC.

Download and Install Android Studio

Similar to before, you first need to check whether your system supports the minimum requirements for Android Studio.

  • Operating System: Linux (64-bit), capable of running 32-bit apps
  • Memory: Minimum 3 GB of RAM and an extra 1 GB for Android Emulator
  • Disk Space: 4 GB (including 500 MB for the IDE and 1.5 GB for Android SDK and emulator system image)
  • Display: 1280 x 800 screen resolution

Once you make sure your system checks out for the minimum requirements, it is time to download and install Android Studio on your system.

Step 1: Download Android Studio

You will need to head over to the Android Studio download page and download it by hitting the big green button, as shown in the image.

Download Android Studio Step 2: Extract it

After the download finishes, extract it to your directed location. For the sake of this tutorial, we have extracted it straight onto the home directory.

Extract the Android Studio Package Step 3: Execute

Next, open your terminal, go to the android-studio/bin/ directory, and execute the file. To do this, enter the following command:

$ cd android-studio/bin $ ./

Note: The command cd android-studio/bin only works because we have extracted it on the home directory. If you have extracted it elsewhere, adjust your directory path accordingly.

Launching Android Studio

As you can see from the image, after executing the command, a pop-up prompt will appear, asking whether you want to import any previous Android Studio settings or not. After selecting your preferred option, click on OK, and the installation process will commence.

Note: The Android Studio installation process will force you to download the latest Android SDK, so you have to download that.

Step 4: Android Studio Setup Wizard

Android Studio comes with a dedicated setup wizard to help you install the application properly.

Android Studio Setup Wizard

Just follow the given steps, and Android Studio will begin to install on your system.

Android Studio Installation Process Step 5: Launch Android Studio

Once the installation process is completed, Android Studio will automatically launch.

Android Studio Successfully installed

Click on ‘Start a new Android Studio Project’ to create a sample Android project and see if everything is working correctly.

Step 6: Create a Desktop Entry

If you want to set up a desktop entry for Android Studio, all you need to do is click on Tools > Create Desktop Entry, as shown in the image below.

Creating Desktop Entry for Android Studio

You should be able to open Android Studio directly from the launcher as well as pin it to your Favorites.

Step 7: Install the Flutter Plugin

All that’s remaining is to install the Flutter plugin in Android Studio. To do this, navigate to File > Settings > Plugin. Next, search for Flutter in the provided search field.

Installing Flutter Plugin

Install it, and you are ready to start developing apps with Flutter using Android Studio on Linux.

Wrapping Up

So this was our comprehensive guide on how to install Flutter on Linux. As you can see, installing Flutter is a pretty simple and straightforward process, albeit a long one. The best less-error-prone approach would be to install it via the Snap Store instead of taking the manual route, as it involves editing .bashrc, which can cause problems if you are not careful.

That being said, if you do come across any errors or issues during the installation process, don’t hesitate to let us know down in the comments below. Our community of readers and we will try our best to solve your issue asap.

Updating MX Linux: Command-line & All You Need to Know

Sunday 2nd of August 2020 03:05:33 PM

MX Linux is a popular Linux distribution based on Debian stable. Hence as Debian shifts from one Stable release to the next, so does MX Linux come out with a new version based on the latest Debian release. Also, just like Debian, each MX release is supported for 4 – 5 years. From a technical standpoint, you don’t need to update to the latest MX version as soon as it’s out.

However, if your version of MX Linux has reached end-of-life support, or if you want to try out the latest MX release, then you have come to the right place. Here we have put together a comprehensive guide on how to update your MX Linux system. But first, let’s get a more in-depth understanding of the MX Linux release cycle.

Understanding The MX Linux Release Cycle

MX Linux has three kinds of releases:

1. Annual Release

First, you have the official version which comes out once a year, typically during the year-end. The current Official release of MX Linux is MX-19, which came out on October 21, 2019, and is based on Debian 10 (released on July 6, 2019). Note that the release number – ’19’ of MX-19 comes from the year of release. Since the first version of MX Linux came out in 2014, it was called MX-14. There are no prior versions like MX-1 or MX-2.

2. Point Releases

Secondly, you have the point releases. These releases don’t follow a particular schedule and deliver new version updates as required. At the time of writing, the current point release for MX Linux is MX 19.2, which came out on June 1, 2020. The point releases are done when a significant software change like kernel upgrades or vulnerability fixes are required.

3. Snapshot Releases

And finally, we have snapshot releases. These come out monthly and are designed to update all your software. The primary purpose of snapshot releases is to keep all your software and packages up to date so you can avoid lengthy downloads later.

MX Linux’s Semi-Rolling Release model

What does do it mean that MX-Linux follows a semi-Rolling Release Model? Conventionally, Linux distros follow two major release models – Fixed and Rolling.

Fixed Release

Under the fixed release model, the Linux Distro only receives security updates on a timely basis. Other things, such as new software packages and software updates, are held back and only released as a bundle with the latest version of the Distro, after a fixed period.

Rolling Release

In the case of a rolling release model, the Linux Distro receives updates in all areas of the operating systems as soon as they are available. This includes updates for everything, starting from the applications, desktop environment, and even the Linux Kernel.

Now, MX-Linux is often called a Semi-Rolling release because it has traits of both rolling and fixed release models. Similar to Fixed releases, the official version-updates happen every year. But at the same time, you get frequent updates for software packages and dependencies, just like with Rolling release Distros. However, according to the MX Linux forum, the developers don’t identify MX Linux as a Rolling Distro.

How to Update MX Linux

Now that you have a good enough understanding of the different MX Linux releases let’s talk about how you can update your MX Linux system to the latest version.

Updating to a New Official Release

MX Linux completely changes its base from one official release to the next. For example, MX-18 runs on Debian 9 (Stretch) whereas, MX-19 runs on Debian 10 (Buster) and also switches to the new Xfce 4.14. Because of all these changes, there is no dedicated update/upgrade option from one official release to the next one. If you want to update from MX-18 to MX-19, you will need to perform a clean install of MX-19 over the existing version.

However, even though you are performing a clean installation over your previous OS, it doesn’t necessarily mean that you will lose all your previous settings and configurations.

When installing MX Linux, you have the option to preserve data in the /home directory of the previous MX Linux version (if any) that was installed. You will find this setting under the custom disk setup option of the MX Linux Installer.

Preserve data in /home directory

Now, the programs that were installed on MX-18 stored all their settings and customization files under the /home directory. Since the installer is preserving this data, you will find almost everything intact, even after a clean install to MX-19.

Another thing to point out is that the clean install of MX-19 might not have all the programs you had on MX-18. But even still, all the settings and configuration files of those uninstalled programs are always on your /home directory. All you need to do is reinstall those programs, and they behave similarly as they did before the clean installation. This is where Aptik can be beneficial. It is essentially a tool that can help you backup/restore your favorite PPAs and Apps in Ubuntu and other Debian-based OSes.

Here is a comprehensive guide to show you how to use Aptik and reinstall all your old applications on your newly upgraded MX Linux system.

Updating to a New Point Release

Updating from one point release to the next is pretty straightforward and will take place automatically through the standard upgrade process. That being said, there are two ways to update your MX Linux system to the next point release. You can either use the GUI or update it using the command-line in the terminal. For the sake of this tutorial, we will be showing you both methods. So, without further ado, let’s get started:

Updating MX Linux Using Command-Line in the Terminal

Before starting, let’s check the version of MX Linux installed on our system. To do this, type in the following command in your terminal.

$ inxi -F

This should create a similar output, as shown in the image below.

MX Linux version in the terminal

As you can see, we are running on MX-19 Patito Feo that was released back on October 21, 2019. It’s time to update our system to the latest version. To do this, enter the following command in the terminal:

$ sudo apt-get dist-upgrade

This is going to start installing all the newest versions of all the packages installed on the system. It should also intelligently handle all the dependencies that are changing with new versions of the packages.

While updating all the packages and dependencies, you will get the following message on the terminal, asking whether you want to install the updated version shipped by your package distributor.

MX Linux version

Type in ‘Y’ and wait until the process is over. And voila! You have successfully upgraded from MX-19 to MX-19.2.

Updating MX Linux Using GUI

Updating MX Linux using GUI is much more straightforward and as simple as pressing a button. But first, open MX Welcome to check the version of your MX Linux that you are running.

MX Welcome screen

As you can see, we are running MX-19 Patito Feo. Now, it’s time to update it to MX-19.2. To do this, go to MX Updater, as shown in the image below.

MX Updater tool

This is going to open the MX Updater, which will look like this:

The MX Updater tool

As you can see, you get a display showing all the packages and dependencies that are going to get installed on your system. Furthermore, there are two checkboxes. The first one is asking you whether you want the updater to automatically answer ‘yes’ to all the prompts during the upgrade. You should keep this unchecked if you want to know and control what packages and dependencies are getting installed on your system. However, if you are not interested in these details, then you can “check” it. It will make the update process much faster, and you won’t have to monitor everything actively.

Once you have checked everything, click on the upgrade button with the green box. This is going to start updating your MX-19 to the latest version. Similar to before, you will get a prompt in the installer asking you whether you want to install the updated version shipped by your package distributor. Type ‘Y’ for yes, as before, and wait for the installation to finish.

Once done, recheck MX Welcome, and you should see your system updated to the latest version, i.e., MX-19.2.

Successfully updated to MX-19.2 Wrapping Up

So this was our full comprehensive guide on everything you need to know to update your MX Linux PC. I hope you found this useful and that it has helped you to upgrade from your older MX Linux system to the latest MX-19.2. Do let us know if you still have some confusion or stumbled into any issues during the update process. We would be happy to clear out any of your problems, and our discourse might even help out other readers with their questions and issues.

How to install Microsoft TrueType Fonts on Fedora

Friday 31st of July 2020 07:12:48 PM

When it comes to typography, Microsoft True Type fonts have entirely dominated the market. Although we have more than a thousand fonts available, the extensive use of the Windows operating system has altogether led to the increase in popularity of Microsoft True Type fonts.

These fonts are not only visually appealing but also aesthetically pleasing. Some of them like the “Times New Roman (Bold, Italic, Bold Italic)” are recommended in most documents and many writing formats like APA, MLA, Harvard, etc. and regarded as standard fonts. Microsoft True Type fonts are also in most webpages, and you can find this declared in the style sheets.

The Microsoft True Type font package includes:

  • Andale Mono
  • Arial Black
  • Arial (Bold, Italic, Bold Italic)
  • Comic Sans MS (Bold)
  • Georgia (Bold, Italic, Bold Italic)
  • Impact
  • Times New Roman (Bold, Italic, Bold Italic)
  • Trebuchet (Bold, Italic, Bold Italic)
  • Verdana (Bold, Italic, Bold Italic)
  • Webdings
Installing Microsoft TrueType Fonts on Fedora

Luckily for Linux users, you can install and use Microsoft True fonts on your Linux systems. This article will show you three methods on how you can install Microsoft True fonts on Fedora.

Method 1: Use the Classic Installer

Launch your Terminal and switch to the root user by typing the command below. It will prompt you for the admin password.

sudo su Root User

Execute the commands below.

sudo dnf install curl cabextract xorg-x11-font-utils fontconfig Microsoft True Fonts sudo rpm -i Microsoft True Fonts

That’s it! We now have Microsoft True fonts installed in our Fedora system.

Method 2: Copy Fonts from a Windows Installation.

Another universal way to install Microsoft True fonts in Linux systems is to copy the fonts from a Windows installation. You don’t need an internet connection, only a partition holding a windows system.

Navigate to the Local disk C, which holds your Windows files. It might be different depending on your installation path. Look for a folder with the name “Windows”. Open the “Fonts” folder and copy the contents.

Tip: You can access the “Fonts” folder and clicking at the address bar at the top and type the path: “C:\Windows\Fonts.”

Window Fonts

Navigate to the home directory in your Fedora system. Paste the copied fonts in the “.fonts” folder. If this folder is not present, create it. Also, note the dot [.] at the beginning of the folder name. That shows it is a hidden folder.

Fedora Fonts Folder Method 3: Copy and Install fonts from a Windows 10 ISO

Another method to have Microsoft True fonts on your Fedora system is copying them from a Windows ISO file. It is quite technical than the other two, but also interesting if you love getting savvy with the Terminal.

First, we will need a Windows 10 ISO file. If you don’t have one, navigate to Microsoft’s official website and download it. Select your edition and click confirm. Ensure you don’t select the “Update” version.

Download Windows

You will be prompted to put your Language of choice. Select “English,” even though the choice of Language doesn’t seem to have an impact on the fonts.

Download Windows 10 ISO

Once you have downloaded the ISO file, we now need to extract it. We will use p7zip for this process. To download p7zip in Fedora, run the commands below:

sudo dnf install snapd sudo ln -s /var/lib/snapd/snap /snap sudo snap install p7zip-desktop P7zip-desktop

Launch the Terminal and navigate to the directory where you have downloaded Windows 10 ISO file. Now run the command below to extract various Windows files, including the fonts folder.

7z e 'Windows 10 64-bit.ISO' sources/install.wim

Remember to replace ‘Windows 10 64-bit.ISO‘ with the name of your ISO file.

Extract Files

Once the process is complete, we now need to extract the fonts from the “install.wim” archive. Run the command below in the Terminal.

7z e install.wim 1/Windows/{Fonts/"*".{ttf,ttc},System32/Licenses/neutral/"*"/"*"/license.rtf} -ofonts/ Extract Fonts

By running the ‘ls‘ command, you should see the fonts folder below.

Extract fonts

To install the fonts, move the extracted ‘fonts‘ folder to the home directory ‘.fonts.‘ directory. You can do this graphically through Copy and Paste or by running the simple command below.

mv fonts ~/.fonts

To update your system applications with these newly installed fonts, we need to update the installation’s fonts cache. Run the command below.

fc-cache -f

To test these newly fonts, open your Libre Office program, and you will find your newly-installed fonts among the default fonts that come preinstalled. That’s it! Let us know which method works best for you. If you also have any additional information or comment, feel free to share with our readers below.

Install and Configure Redmine on CentOS 7

Thursday 30th of July 2020 06:51:00 PM

Redmine is an open-source free to use web-based tool for project management and issue tracking. Built on top of the Ruby on Rails framework, it offers a cross-platform and cross-database solution that comes with support for multiple projects, wikis, forums, calendars, email notification, and much more.

Here is a detailed guide on how to install and configure Redmine on CentOS 7 server.


First of all, you need a domain name pointed at your public server IP. For this tutorial, we will be referring to Also, you will need to be logged in as a user with sudo privileges.

Other than this, you will also need a database backend. In our case, we will be using MariaDB. However, you can also use Microsoft SQL Server, SQLite 3, and PostgreSQL, as Redmine supports all of them.

Finally, you will need a Ruby application server for which we will be using Passenger with Nginx. In case you don’t have any of these installed on your system, there is no need to worry. We will also show you how to install and configure them as well.

Preparing Your System Before Installing Redmine

As we discussed, there are several things you need on your CentOS system before you can install and run Redmine. In case you don’t have them installed, here is a step by step walkthrough showing you how to set things up.

Note: It goes without saying that if you already have a database backend or a Ruby application server installed, then you can skip those steps and move to the next one.

Step 1: Installing the Necessary Packages

Before installing Redmine, you need to prepare your system by installing the necessary Redmine and Ruby packages from the source.

To do this, type in the following commands in your terminal:

$ sudo yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool $ sudo yum install readline-devel sqlite-devel zlib-devel openssl-develh readline glibc-headers glibc-devel $ sudo yum install mariadb-devel zlib libyaml-devel bzip2 iconv-devel ImageMagick ImageMagick-devel

Once that’s done, it’s time to create a MySQL database.

Step 2: Install MariaDB on CentOS 7

You are free to use any database backend you like. However, for this tutorial, since we will be using MariaDB/MySQL, here is a quick tutorial showing you how to install it on your system.

Since MariaDB version 5.5 is provided with the CentOS repository, we will be installing that solely because of convenience. It is not the latest version, but it is exceptionally stable, and you shouldn’t run into any issues. 

Type in the following command in your terminal to install the MariaDB packages:

$ sudo yum install mariadb-server

Once it completes installing, type in the following command to enable it to start during system boot-up.

$ sudo systemctl start mariadb $ sudo systemctl enable mariadb

Next, check whether the installation was successful or not by entering the following command:

$ sudo systemctl status mariadb

The output should tell you that the service is active and running. Once that is taken care of, run the following script to perform several security-related tasks to make sure everything is working correctly and as intended.

$ sudo mysql_secure_installation

This is going to bring up the following prompts:

Do you want to set up the root user password? Do you want to remove anonymous user accounts? Do you want to restrict root user access to the local machine? Do you want to remove the test database?

Answer with Y (yes) to all these questions.

And voila, you have successfully installed MariaDB on your CentOS system. Now its time to move on to the next step.

Step 3: Create a MySQL Database

With MariaDB installed on your CentOS system, follow these steps to create a MySQL Database. First, you will need to login to your MySQL shell. To do this, enter the following command in the terminal:

$ sudo mysql

Next, you will need to create a new database. To do this, enter the following command from inside your MySQL shell:


Once that’s done, you will need to create a MySQL user account and provide it access to the newly created database. This is done using the following command:

mysql> GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'EnterPasswordHere';

Replace EnterPasswordHere with a strong password of your choice.

You have successfully created a MySQL database. Now exit the shell using the following command and move on to the next step:

mysql> EXIT; Step 4: Install Passenger and Nginx

Passenger is a web-application server designed for Ruby, Node.js, and Python. It is super-fast, lightweight and can be integrated with Apache and Nginx. For this tutorial, we will be installing the Passenger module for Nginx.

To do this, we will first need to install some necessary packages, including the EPEL repository. To do this, enter the following command in your terminal:

$ sudo yum install epel-release yum-utils pygpgme $ sudo yum-config-manager --enable epel

Next, you will need to enable the Phusionpassenger repository. This can be done using this command:

$ sudo yum-config-manager --add-repo

Finally, update the packages list and install both Nginx and Passenger using this command:

$ sudo yum install nginx passenger passenger-devel Step 5: Create a New System User

We are almost done setting up everything to install Redmine. The next thing we need to do is creating a new system user and group that will run the Redmine instance. We first create a new user by entering the following command in the terminal:

$ sudo useradd -m -U -r -d /opt/redmine redmine

For the sake of simplicity, we have kept the user name as redmine; however, you are free to use any user name you like.

Next, add the ngnix user to the new user group using this command:

$ sudo usermod -a -G redmine nginx

And finally, change the /opt/redmine directory permissions such that it can be accessible by Nginx. To do this, enter this command:

$ sudo chmod 750 /opt/redmine Step 6: Install Ruby

And now, for the final step to getting everything ready, we will need to install Ruby on our CentOS system.

Now, the tricky part is that the Ruby version that comes with the CentOS repository is outdated and isn’t supported by Redmine. This is why we will need to install it by using RVM.

First, switch to the Redmine user by typing the following command:

$ sudo su - redmine

You will need to import the GPG key using this command:

$ gpg --keyserver hkp:// --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

Once that’s done, install RVM with this command:

$ curl -sSL | bash -s stable

Now, to use RVM, you will need to source the RVM file using this command:

$ source /opt/redmine/.rvm/scripts/rvm

Finally, it’s time to install Ruby on our system. To do this, enter the following command in your terminal.

$ rvm install 2.7 $ rvm --default use 2.7

Note: Here, 2.7 refers to Ruby version 2.7, which is the latest version of Ruby at the time of writing. If there is an updated version of Ruby when you are reading this, then download it instead. You can always use version 2.7 as long as Redmine supports it.

And that’s it! You have successfully configured your CentOS system, and it is now ready to install Redmine.

Install Redmine on CentOS 7

When installing Redmine, you should always check the Redmine Download Page to see the latest version and download that. For the sake of this tutorial, we will be installing Redmine version 4.1.1 since it is the current stable release at the time of writing.

Now with that out of the way, here is a step-by-step guide on installing Redmine 4.1.1 on CentOS 7.

Step 1: Download Redmine

Before getting started, make sure that you are running all the commands by logging in as the Redmine user.

Once you have done that, download the Redmine archive on to your system. You can do that using the following curl command:

$ curl -L -o redmine.tar.gz

After downloading the archive, extract it using the following command:

$ tar -xvf redmine.tar.gz Step 2: Configure the Redmine Database

Next, you will need to configure the Redmine database. Start by copying the Redmine example database configuration file using the following command:

$ cp /opt/redmine/redmine-4.1.1/config/database.yml.example /opt/redmine/redmine-4.1.1/config/database.yml

Next, open the file using the text editor of your choice. We will be using nano editor.

nano /opt/redmine/redmine-4.1.1/config/database.yml

Now, search under the production section and enter the previously created MySQL database information, including username and password, as shown below.

production: adapter: mysql2 database: redmine host: localhost username: redmine password: "EnterPasswordHere" encoding: utf8

Replace EnterPasswordHere with a strong password of your choice.

Once done, save and exit the file to move on to the next step.

Step 3: Install Ruby Dependencies

Next, you will need to install all the ruby dependencies and bundler.

To do this, head on over to the redmine-4.1.1 directory, open the terminal, and enter the following commands:

$ cd ~/redmine-4.1.1 $ gem install bundler --no-rdoc --no-ri $ bundle install --without development test postgresql sqlite Step 4: Generating Keys and Migrating Database

Enter the following commands in your terminal to generate keys and migrate the database:

$ bundle exec rake generate_secret_token $ RAILS_ENV=production bundle exec rake db:migrate Step 5: Configure Nginx

Now, before we can access Redmine, you will need to set up Nginx. To do this, first switch back to your sudo user by entering the following command:

$ exit

Now, open the text editor and create the Nginx server block file. To do this, enter the following command:

$ sudo nano /etc/nginx/conf.d/

Next, copy and paste the following content inside the file:

Note: Remember to switch with your Redmine domain.

passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini; passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby; passenger_instance_registry_dir /var/run/passenger-instreg; server { listen 80; server_name; root /opt/redmine/redmine-4.1.1/public; # log files access_log /var/log/nginx/; error_log /var/log/nginx/; passenger_enabled on; passenger_min_instances 1; client_max_body_size 10m; }

Once that’s done, run a test to make sure there are no system errors by entering the following command:

$ sudo nginx -t

A clean output with no errors should look like this:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Once you get the green light, you can restart the Nginx server by entering this command:

sudo systemctl restart nginx Step 6: Encrypt Nginx with SSL

You will need to configure Nginx with an SSL certification. In case your domain isn’t already protected by a trusted SSL certificate, you can generate a free one using Let’s Encrypt.

Once you have the certificate in hand, you will again need to edit the Nginx configuration file. To do this, first, you need to open it in your text editor using the following command:

$ sudo nano /etc/nginx/conf.d/

Now edit the file, as shown below:

passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini; passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby; passenger_instance_registry_dir /var/run/passenger-instreg; # Redirect HTTP -> HTTPS server { listen 80; server_name; include snippets/letsencrypt.conf; return 301$request_uri; } # Redirect WWW -> NON WWW server { listen 443 ssl http2; server_name; ssl_certificate /etc/letsencrypt/live/; ssl_certificate_key /etc/letsencrypt/live/; ssl_trusted_certificate /etc/letsencrypt/live/; include snippets/ssl.conf; return 301$request_uri; } server { listen 443 ssl http2; server_name; root /opt/redmine/redmine-4.1.1/public; # SSL parameters ssl_certificate /etc/letsencrypt/live/; ssl_certificate_key /etc/letsencrypt/live/; ssl_trusted_certificate /etc/letsencrypt/live/; include snippets/ssl.conf; include snippets/letsencrypt.conf; # log files access_log /var/log/nginx/; error_log /var/log/nginx/; passenger_enabled on; passenger_min_instances 1; client_max_body_size 10m; }

Note: Remember to switch with your Redmine domain.

And that’s it! You are now ready to access Redmine.

Accessing Redmine

You have now successfully installed and configured Redmine on CentOS. It’s finally time to access it and see if everything is working correctly.

To access Redmine, first, you need to open your browser and type in your domain. If the installation was successful, you should see the following screen asking you for your username and password.

Accessing Redmine

By default, the login credentials are as follows:

Username: admin Password: admin

After logging in for the first time, you will be prompted by the system to change your password to a more secure one.

change Redmine password

After changing your password, you will be redirected to your main user account page from where you can start using Redmine.

The 6 Best Free phpMyAdmin Themes (and How to install)

Wednesday 29th of July 2020 02:37:33 PM

In case you are not aware, phpMyAdmin is one of the most popular free and open-source tools for the administration of MySQL and MariaDB. It supports a wide range of database operations like managing your indexes, tables, columns, relations, and so on. You also get the option to execute any SQL statement as well directly.

To help you manage all of these settings and options, phpMyAdmin gives you access to an intuitive web interface. And while in terms of functionality, it gives you an extremely user-friendly layout, in terms of design, it might feel a bit outdated and boring.

This is where phpMyAdmin themes come into the picture. Since version 2.6.0, users had the option to install a custom theme to change the color scheme and font style. All the navigation options and overall usability of the tool is left intact, which means changing themes won’t affect your workflow.

We have put together a list of the six best free phpMyAdmin themes that are free for download and use. You will also find a detailed guide on how to install these themes and try them yourself.

6 Best Free phpMyAdmin Themes

Before we highlight the six best free phpMyAdmin themes, it is worth noting that you should only install a theme that is compatible with your phpMyAdmin version.

Installing an incompatible version might cause viewing issues, which can be a big problem when managing your database. This is why we have included which phpMyAdmin versions each theme is compatible with so you don’t run into any sort of issue while using it.

CAUTIONDon’t Download phpMyAdmin Themes from Unknown Sources

It is important to note that most phpMyAdmin themes contain PHP code, and thus, it is important only to download them from trusted servers. The phpMyAdmin team has checked all the themes we have listed here.

With all the disclaimers out of the way, here are our picks for the six best free phpMyAdmin Themes.

1. Fallen phpMyAdmin Theme Fallen phpMyAdmin theme

The Fallen gives you a super clean UI for your phpMyAdmin that makes everything look more sophisticated and organized. The icons used here are also really high quality and bring more character to the admin dashboard.

Download Links

For phpMyAdmin versions 4.8 & 4.9

For phpMyAdmin version 4.7

For phpMyAdmin version 4.6

2. Metro phpMyAdmin Theme Metro phpMyadmin Theme

The Metro theme, as the name suggests, is inspired by the metro design style reminiscent of Windows 8. The font style, icons, and the squarish design style with the use of squared corners will make you feel like you are using a Microsoft product.

You also get multiple color schemes that give you some more customization potential.

Download Links

For phpMyAdmin versions 4.8 & 4.9

For phpMyAdmin version 4.7

For phpMyAdmin version 4.6

For phpMyAdmin version 4.5

For phpMyAdmin version 4.4

For phpMyAdmin version 3.5

3. MHN phpMyAdmin Theme MHN phpMyAdmin Theme

The MHN theme brings the modern flat design style to your phpMyAdmin dashboard. It also follows a minimalistic design philosophy, so you don’t have to worry about flashy graphical styles distracting you from your work.

Design-wise, everything looks clean and straightforward. You can even argue that the theme helps make things more organized, which can also help you boost your productivity.

Download Links

For phpMyAdmin versions 4.8 & 4.9

For phpMyAdmin version 4.7

For phpMyAdmin version 4.6

4. PMaterial phpMyAdmin Theme PMaterial phpMyAdmin Theme

As you can guess by the name, with PMaterial, you are getting a faithful adoption of the material design style for your phpMyAdmin interface. It turns all individual sections into cards, which can help you compartmentalize different parts of your dashboard.

Overall, it gives you a clean and modern looking UI that feels simple and refreshing to use.

Download Links

For phpMyAdmin version 4.7

For phpMyAdmin version 4.6

5. DarkBlue_Orange phpMyAdmin Theme Darkblue_orange phpMyAdmin Theme

DarkBlue_Orange, as the name suggests, uses two colors to decorate your phpMyAdmin dashboard – dark blue or purple, and orange. As a result, the contrasting colors just pop out on your face.

It’s a fresh looking design if you are a fan of flashy colors and want to go a full-180 from the boring greyish dashboards.

Download Links

For phpMyAdmin version 3.4

#6.  Paradice phpMyAdmin Theme Paradice phpMyAdmin Theme

The first version of Paradice was released way back in 2015, and you can see that with its design style. If you try hard enough, you might know that it somewhat resembles the Windows 7 Aero theme.

As such, if you want a design style that reminds you of the good old days, then this is an excellent option to try out.

Download Links

For phpMyAdmin version 3.4

For phpMyAdmin versions 3.0 – 3.3

What Next?

Ever since 2015, all the phpMyAdmin releases are cryptographically signed by their releasing developer. As such, it is a good security practice to always check if the signature matches your downloaded archive. Here is the official document containing the verification instructions to help you out.

How to Install phpMyAdmin Themes?

Once you have picked a custom theme you want to try out, it is time to install it for the phpMyAdmin interface. Here is a step-by-step guide to walk you through the installations process.

So without further ado, let’s get started:

Step 1: Check the phpMyAdmin Version

As we discussed earlier, to avoid version compatibility issues, you need to make sure that you are installing a theme that works with your phpMyAdmin version.

Now to check which version of phpMyAdmin you are running, go to your homepage and check the bottom right corner of the screen. You should see the version information displayed over there. Our server is running on phpMyAdmin version 4.9. For the sake of this tutorial, we will be using the Fallen theme, which is compatible with this version.

Step 2: Download a Version Appropriate Theme

You can use the provided links to download a compatible version. Or, you can visit the official phpMyAdmin website where they have listed all the themes along with their version compatibility.

Downloading Fallen custom phpMyAdmin theme

You can also download the theme archive file from this link as well. Clicking on the link will download the archive file on our system from where we move on to the next step.

Step 3: Install and Enable the Custom Theme

To install the theme, all you have to do is extract the content of the zip file into the themes directory of the phpMyAdmin installation.

Depending on the installation path for phpMyAdmin, the location of the themes directory might vary. However, for basic installations on Linux based OS, you should find it located here:


After extracting the contents of the zip file inside the themes directory, it will automatically add a new theme into your phpMyAdmin themes collection. You should be able to see it immediately by heading over to the phpMyAdmin Theme Selector.

Installing phpMyAdmin theme

Just select the Fallen theme – or whichever theme you have chosen to install, and you are good to go. A fresh new UI will be applied to your phpMyAdmin.


That’s all about how to download and install a new phpMyAdmin theme on your Linux server. I hope you liked this tutorial and equally enjoying the refreshed look of the dash! Do you have any cool customization ideas relevant to the topic in the discussion that you want to share with our readers? Feel free to use the comment section below.

Top 10 Cheap Linux Laptops [2020 Edition]

Tuesday 28th of July 2020 07:19:59 PM

One of the most beautiful things about Linux is that it can deliver fluid performance even on low-tier hardware. You don’t need 16GB of RAM or a quad-core processor just to browse the web. In fact, Ubuntu – one of the most popular Linux Distro can run perfectly well with a simple 2GHz dual-core system racking no more than 4GB of RAM and just needs a minimum of 25GB storage space.

This opens up a whole new world for budget computing. By using Linux, you can get way more performance out on a low-spec system giving you a better bang-for-buck performance. With this in mind, we have put together a list of going over the best cheap laptops for Linux.

Top 10 Budget Linux Laptops

To keep the list diverse and useful for everybody, we have included laptops that fall between the $200 to $1000 price bracket. This makes sure there is something for everybody.

Also, only some of the systems discussed here come with Linux pre-installed. Since most manufacturers prefer to ship with Windows, you might need to install Linux manually or set up a dual-boot configuration. We will tell you which laptops come with Linux out of the box and which don’t.

So with that being said, here is our list of the ten best cheap Linux laptops.

1. Pine64 PineBook Pro Pinebook Pro

Starting off our list, we have a fully functional laptop at just $199 – say hello to the Pine64 Pinebook Pro. Despite the price, the laptop is well built and looks good with its premium magnesium alloy chassis. Whereas in terms of performance, it can go toe-to-toe with many of the popular midrange Chromebooks.

Note: There is an even cheaper version, simply known as the Pinebook. You can get that at just $99. However, on the performance front, it is very lacking and won’t be able to keep up with your day to day activities, which is why we went with its bigger brother.

Quick Specs:
  • Display: 14.1″ IPS LCD with 1920 x 1080 FHD resolution
  • CPU: Rockchip RL3399 – A Dual-Core ARM CPU clocked at 1.8GHz
  • GPU: Mali T860 MP4
  • Storage: 64GB of eMMC. Supports PCIe x4 to m.2 NVMe SSD slots but requires an optional adapter.
  • Battery: 10000mAH Li-Po
  • OS: KDE Neon Linux Desktop out of the box. Supports other flavors of Linux as well as Android
  • Price: $199
2. HP Chromebook 14A G5 HP Chromebook 14A G5

Next up, we have the HP Chromebook 14A G5. There are a lot of variations for the 14-inch HP Chromebooks, but this one provides the most bang for the buck. Powered by AMD’s A-4 series of processors along with AMD Radeon R4 graphics, the device offers excellent day-to-day performance.

Needless to say, the laptop ships with Chrome OS. But, to use as a Linux laptop, you will need to install Linux onto it manually. Thankfully, the hardware is more than capable of running almost all flavors of Linux without any issue.

Quick Specs:
  • Display: 14 Inch IPS WLED with 1366 x 768 HD+ resolution
  • CPU: The Dual-Core AMD A4-9120C APU with 1.6GHz base clock speed and 2.4 GHz max boost speed
  • GPU: Built-in Radeon R4 Graphics
  • RAM: 4 GB DDR4-1866 SDRAM
  • Storage: 32 GB eMMC
  • Battery: 47.36 WH Li-ion
  • OS: Chrome OS, all Linux Distros
  • Price: $249
3. Acer Aspire 1 Acer Aspire 1

With the Acer Aspire 1, we finally list the first Windows laptop on the list. For the price, the laptop brings in pretty decent internals. It ships with Intel Celeron Processor that still isn’t powerful enough to run full-fledged Windows; the manufacturers ship it with Windows 10 Home in S Mode.

But that is not a problem if you are running any Linux OS. The hardware is more than adequate in giving you a smooth day to day experience while using the laptop with a light-weight Linux distro installed.

Quick Specs:
  • Display: 14″ LED-Backlit with 1920 x 1080 FHD display
  • CPU: Intel Celeron N4000 Dual-Core Processor
  • GPU: Integrated Intel UHD Graphics 600
  • RAM: 4GB DDR4
  • Storage: 64GB eMMC
  • Battery: 2-cell Li-ion Battery – 4810 mAh
  • OS: Windows 10 Home. Option to install any Linux Distro. You shouldn’t consider dual-booting because of the limited storage space.
  • Price: $349
4. HP Chromebook X360 HP Chromebook X360

If you are looking for some style to go with your budget laptop, then the HP Chromebook X360 is your pick. It comes with a Ceramic body and a touch screen display, which makes the laptop a delight to use. You also get access to a 360-degree hinge, which allows you to fold the laptop in various positions like tent-mode, presentation-mode, or just lay flat on the table. The internal hardware, however, is on par with the Acer Aspire 1 we discussed earlier.

Quick Specs:
  • Display: 14-Inch 1366 x 768 HD+ Touchscreen display
  • CPU: Intel Celeron N4000 Dual-Core Processor
  • GPU: Integrated Intel UHD Graphics 600
  • RAM: 4GB DDR4
  • Storage: 32GB eMMC
  • Battery: 60 Wh Li-ion
  • OS: Chrome OS. Option to install any Linux Distro – preferably Ubuntu as it comes with support for touchscreen displays.
  • Price: $379
5. Lenovo Flex 5 15 Lenovo Flex 5 15

If you think the spec sheet on the HP Chromebook X360 was a bit disappointing, then you can go for the Lenovo Flex 5 15. It is $200 more expensive, but you are upgrading to the latest generation of Intel i3 processor along with 4GB of RAM, 128GB of SSD storage. This configuration allows it to run full-fledged Windows. However, we still don’t recommend dual-booting the system without at least 250GB of storage.

Quick Specs:
  • Display: 15-inch IPS touchscreen with 1920 x 1080 FHD resolution
  • CPU: Dual-Core Intel i3-1005G1 Processor with clock speeds up to 3.4GHz
  • GPU: Integrated Intel UHD Graphics
  • Storage: 128GB PCIe SSD
  • Battery: 52.5 Wh Li-ion
  • OS: Windows 10 Home. Option to install any Linux Distro you like.
  • Price: $579.99
6. Entroware Orion 14 Entroware Orion 14

Entroware is a popular Laptop Manufacturer that specializes in manufacturing stylish Linux based ultrabooks. This holds for Orion 14, where you get a slim laptop boasting an aluminum chassis and a sleek design that can put its competitions to shame.

Other than this, you get access to a powerful variant of the Intel i3 processor along with 8GB of RAM and 240GB of SSD storage. Performance-wise, you will see a significant boost over the Lenovo Flex.

Quick Specs:
  • Display: 14-Inch Matte IPS LED with 1920 x 1080 FHD resolution
  • CPU: The Dual-Core Intel i3-10110U Processor with ClockSpeeds up to 4.1 GHz
  • GPU: Integrated Intel UHD Graphics
  • RAM: 8GB DDR4
  • Storage: 240GB SSD
  • Battery: 36 Wh Li-ion
  • OS: Comes with Ubuntu 20.04 LTS Pre-Installed
  • Price: $620 before taxes
7. Asus Vivobook S15 S512 Asus Vivobook S15 S512

As we climb up in price and enter the $700 price bracket, we have the Asus Vivobook S15 S512. At this price point, this Windows laptop offers the best run-for-money, both in terms of design and performance.

Sporting an Intel Core i5 processor and a discrete graphics card, the S15 S512 is a powerhouse that will breeze through most productivity workloads – albeit, we won’t recommend 4K video editing.

Quick Specs:
  • Display: 15.6-Inch with 1920 x 1080 FHD display
  • CPU: Intel Core i5-8265U CPU clocked at up to 3.9GHz
  • GPU: NVIDIA GeForce MX250
  • RAM: 8GB DDR4
  • Storage: 256GB NVMe SSD
  • Battery: 37 Wh Li-ion
  • OS: Windows 10 Home
  • Price: $749
8. System76 Galago Pro System76 Galago Pro

System76 is by far one of the most popular OEM in the world when it comes to manufacturing Linux based laptops and offers some of the best PCs in the market. The Galago Pro is one of their low-to-mid-tier models that will hook you up with a latest-gen Intel Core i5 processor, 8GB of RAM, and 250GB of SSD storage.

In direct comparison to the Asus Vivobook, yes, you are losing access to the dedicated graphics card and paying $100 more. But this is easily compensated with the top-notch manufacturing quality you are getting with the laptop.

Quick Specs:
  • Display: 14.1″ Matte IPS display with 1920 x 1080 FHD Resolution
  • CPU: The Quad-Core Intel i5-10210U clocked at 4.2 GHz
  • GPU: Integrated Intel UHD Graphics
  • RAM: 8GB of LPDDR4
  • Storage: 250GB M.2 SSD
  • Battery: 35.3 Wh Li-ion
  • OS: Comes with Pop!_OS 20.04 LTS pre-installed
  • Price: $849
9. Penguin J3 GNU/Linux Laptop Penguin J3 GNU/Linux Laptop

ThinkPenguin is another well known Linux Laptop Manufacturer, and here we have their Penguin J3 GNU/Linux Laptop. The best thing about them is that you get tons of options to customize the laptop to fit your requirements. This includes control over the hardware as well as dedicated support to help you set up or even troubleshoot the system.

Quick Specs:
  • Display: 14-Inch LED LCD with 1920 x 1080 FHD resolution
  • CPU: The Quad-Core Intel i5-10210U clocked at up to 4.2GHz
  • GPU: Integrated Intel UHD Graphics
  • RAM: 8GB of LPDDR4
  • Storage: 250GB SSD
  • Battery: 36 Wh Li-ion
  • OS: Comes with Linux Mint 20.04 LTS
  • Price: $899
10. Entroware Hubris 17 Entroware Hubris 17

For the final entry in our list of the best cheap Linux laptops, we have yet another computer from Entroware – the Hubris 17. Now granted, a $1000 price tag is pushing it when talking about budget laptops. However, when you consider the specifications, it offers excellent value for money.

For starters, you are getting a beautiful 17″ display giving you ample screen real-estate to manage all your work. Whereas under the hood, the system is powered by an Intel Core i7 processor which, when used with power-efficient OS like Ubuntu, ensures stellar performance.

Quick Specs:
  • Display: 17.3-inch Matte IPS LED with 1920 x 1080 FHD resolution
  • CPU: The 6-Core Intel i7-9750H clocked at up to 4.5GHz
  • GPU: Intel® UHD Graphics
  • RAM: 8GB DDR4
  • Storage: 240GB SSD
  • Battery: 48 WH Li-ion
  • OS: Comes with Ubuntu 20.04 LTS pre-installed
  • Price: $1020
Wrapping Up

So these were our picks for the best budget laptops for Linux. We hope you found the read useful and that it helped you in your search for the best Linux laptops. As you can see, we have kept the list as diverse as possible by including laptops from different price points covering various features and functionalities.

So let us know which laptop you are planning on getting for installing Linux. Also, if you have some other favorite budget laptop that we left out from the list, then don’t forget to share it in the comments section. It will help us improve the scope of this post, and also provide your fellow readers with some more options.

A Beginner’s Guide to Vim Text Editor

Monday 27th of July 2020 03:42:18 PM

Vim is one of the most popular and celebrated text editors in the history of Linux. For those of you who don’t know, Vim is a command-line based text editor that has been around for a very long time. People who use Vim often swear by it, and there are justifiable reasons as to why Vim is such a legendary editor. First, a little introduction:


The name ‘Vim’ is a combination of the words ‘Vi Improved.’ Vi was a text editor in the original Unix system. Vim is known to be one of the most reliable text editors, and while it was originally written for Amiga, it has been made cross-platform to every operating system. Some distinct and well-implemented features of Vim are:

Keyboard Shortcuts

This is the unique feature of Vim. There are a lot of keyboard shortcuts for almost everything that you would have to do, and it makes your productivity go to a uniquely higher level. Since Vim is command-line based, there is no involvement of a mouse, and getting familiar with the key bindings is the essence of Vim. We will discuss some of these shortcuts is much more detail later on.


Thanks to its so many years of existence, the Vim user community has developed a lot of plugins for it to make the workflow even smoother. Plugins are intended to make the work more comfortable, no matter what language you are working with. For example, I was recently working on a LaTeX document, and using the Vim-LaTeX plugin helped a lot. Vim has a plethora of plugins for many different purposes. Might be a fancy tree-structured file browser, or some more productivity hacks.


Vim has been the editor of the preference of a lot of users for long years. Due to this, Vim has support for almost every language that you could think of. The highlighting and indentation of most common languages are built-in. It is an editor that was built in the ’80s, so I need not say that it performs well no matter what hardware you have, or on what device you are, as long as it supports Vim.

VIM Installation and Everything You Need to Know

There is a chance that your system may not have Vim installed. To check, enter:

vim --version

If you see information about Vim in the terminal, you have it on your system.

Vim Version information

If you don’t, you can install it with the following commands:

Ubuntu/Debian and their derivatives sudo apt install vim Fedora sudo dnf install vim Usage

Now, to explain how to use Vim, we are going to work through a text file that we need to create. Along the way, I will tell you how to get various things done so that we can learn how to work with Vim efficiently. An important thing to remember is that everything is done through the terminal. Whatever I mention here, I probably mean to do it in the terminal. Off we go, then.

Creating/Opening a file

The first part of a text file is opening/creating it. For creating a file, all you have to do is go to the location where you want the data to be and enter this command.

vim <Filename>

If a file with the same name already exists, it will be opened. This means that you can open files in the same way. There is one more way of opening a file. First, just open Vim in the terminal:


Now, enter:

:e <Filename>

As you start typing, you will notice that whatever you are writing starts to appear on the bottom of the window. What you just wrote is a command! Almost all the commands that don’t have to do with a specific character, word, or line begin with the ‘:’ character.

We have successfully opened a file. Let’s go on to write something in it.

Starting Writing

After opening the file, if you start typing in random characters, you will notice that they are not getting written. Why is that? The reason is that you are still in what is called the ‘Normal’ mode. Vim starts in this mode by default. In the Normal mode, you can enter various commands to the file. You can still navigate through the data, however. To start writing, just press the I key. This will make Vim go into the Insert mode. You will see that it is in insert mode, as a string of “– INSERT –” will appear at the bottom of the window. Now you can start typing away. This is important to note:

To exit NORMAL mode and enter INSERT mode, press I.
To exit INSERT mode and enter NORMAL mode, press ESC.

Insert Mode Reference Methods

The following tasks that are writing and editing text require the knowledge of reference to the text. You have to know how to select the text that you desire to change. There are four of them:


Apply from the position of the cursor to the end of the current word.


Apply from the location of the cursor to the beginning of the next word.


Apply from the position of the cursor to the beginning of the line.


Apply from the position of the cursor to the end of the line.

You can also apply this to multiple words/lines. For example, if you want to implement something till the end of two words, type in 2e. These methods will have different applications combined with other commands, as we will see later.


Vim has numerous ways of navigation. These majorly are:

  • Arrow keys: These will help you go around the file in obvious fashion (towards the directions the keys are pointing).
  • Vim traditionally uses H, J, K, and L for navigation, instead of the arrow keys. The sequence is:
    • H: Left
    • J: Down
    • K: UP
    • L: Right
  • From any given position in a line of the file, the reference methods mentioned above will work. For example, if you press 0 from any point, the cursor will move to the beginning of the line. Similarly, $ will bring you to the end of the line, e to the end of the current word and w to the beginning of the next word.
  • Pressing Shift+G brings you to the end of the file while pressing GG brings you to the beginning of the file.
  • You can also move to a specific line in Vim. In Normal mode, just enter the line number, and press Shift+G. For example, if I want to go to line 17, I have to type in 17 and then press Shift+G.

These were some basic navigation methods in Vim.

Text Insertion

The text insertion is nothing much to explain after you have entered the Insert mode, but here are a few tricks that you will find it useful.

If you are at a line and want to append to it (as in continue writing at the end of the line), just press Shift+A from any position in that line, and the cursor will be moved there in Insert mode.

Suppose you want to write in a new line just below the line that you are in, press O at any position in the current line. If you’re going to write in a new line just above the current line, press Shift+O from any position. In both cases, you will be taken to a new line in Insert mode.

Text Replacement

The next useful thing in Vim is the commands to replace text. Here, we are also going to use the reference methods that we talked about. The basic command is:

  • To replace one character, move the cursor to that character and press r. Whatever character you type next will replace that character.
  • To replace text from the cursor position to the end of the word that you are on, press ce. Start typing in the required text after that.
  • To replace text from the cursor position to the end of the line, press c$.
  • To replace text, the cursor position to the end of the line, press c0.
  • There is also a “Replace Mode”. From the position you want to begin in, press Shift+R and all the text that you type in after that will replace whatever text is next, as far as you type. Replace Mode

You can also use cw if you want to replace the gap after the word as well, but one gap or not doesn’t make much of a difference.

Text Deletion

Now that you have had a basic understanding of the usage of reference methods, text deletion commands are going to be a piece of cake. Alright:

  • For simple one character deletion, go to that character and press x.
  • To delete from the cursor position to the end of the word that you are in, press de.
  • To delete from the cursor position to the end of the line, press d$.
  • To delete from the cursor position to the beginning of the line, press d0.
  • To delete the whole line from any position in the line, press dd.

Just a reminder, if you want to delete two words at once, as mentioned earlier, you can use d2w. Okay, this is a milestone; you are through the basic editing part. Now we move on to the more advanced things.


Text selection can be done pretty quickly. Go to the position you want to start selecting from and press the V key. As you move the cursor using the navigation keys, the content will be selected.

After selecting the text, you can do anything with it. For example, if you want to delete it, just press d after the required selection. To start replacing the text, press c after selecting the required text.

Selected Text

There is also one more exciting thing you can do with selected text in Vim, which is exporting it to an external new file. After selecting the text, press the ‘:’ key, and you will see a prompt like this:


After this, the command to export this to a new file will make the prompt look like:

;'<,'>w [Filename] [enter example] Yank

To ‘yank’ means to copy text. To yank text, first, select text using v as mentioned before, and then press y to yank it.


The put command is sort of like the paste command but has more extensive usage. It can not only be used to paste yanked text but also put in the last deleted text. For example, if you just deleted a word with de, go to a location and press p, and you will see that text appear there.

As for yanked text, after selecting and copying the required text, go to the desired location, and press p to paste it there.


To search for text in Vim, press / and type in what you want to search. After pressing enter, you will see the search results. The command, therefore, looks like this:

/[Search Term]

To move to the next search result, press the N key and to move to the previous result, press Shift+N.


Substitution commands have various options. The first part of it includes only making changes in the active line. The basic command to replace the first instant of the word looks like:

:s/[Old word]/[New word]

For example, if I want to replace the first instance of Ubuntu with Fedora in this line, the command would be:


If you’re going to replace all the instances of the word from the active line, enter the command:

:s/[Old Word]/[New Word]/g

If you want to replace a word’s all instances in the whole file, the command is:

:%s/[Old Word]/[New Word]/g

You can also get a prompt to replace the word at its every instance:

:%s/[Old Word]/[New Word]/gc Replacing Text File Status

To get basic file and location status in Vim, press Ctrl+G. The information that you will get is:

  • Filename
  • Written [Modified] if the file has been modified in some way
  • The line that you are in, with the total number of lines.
  • The location of your cursor in the form of percentage compared to the content of the whole file.
  • Column number
Vim Status External Commands

That’s right; you can run Bash commands from Vim. Doing this is fairly simple:


This comes in particularly useful if you want to check whether a file already exists or not, or if you want to create a new file and open it from within Vim. Example:

:!ls Running ls in Vim Undo/Redo

Any of the things that you just learned doing can be undone with the simple strike of the U key. To return the line that you are into its original state, press Shift+U.

For redo, press Ctrl+R.


Finally, there are multiple ways to exit/save your file.

  • If you want just to save the file and not exit it, enter this command: :w

    And press enter.

  • If you want to exit without saving: :q!
  • If you want to save and exit: :wq

So, you see, exiting Vim is not as difficult as people make you believe.


Vim is a handy editor, which frankly, is just a step away from being a full operating system. As you have seen, it has many useful commands and shortcuts that will make you a peak in productivity in most of the cases. Due to such features, it has become the editor of choice for many people spanning across a significant number of use cases. Sure, it takes some getting used to, but it is impressive once you get the hang of it. To get a more interactive tutorial, consider running the vimtutor command. We hope this article helped. Cheers!

Snap vs. Flatpak vs. AppImage: Know The Differences, Which is Better

Monday 27th of July 2020 04:41:10 AM

In recent years, three different distribution independent package formats have become more prevalent in the Linux systems. These new package formats are Snap, Flatpak, and App image. And there are few others who chose an entirely different route. Linux distributions like Endless OS and Fedora entirely depend on independent package formats to run applications.

Package managers enable developers to package, distribute, install, and maintain applications in Linux systems. Distribution independent package managers are different from the traditional package managers like ‘.deb’ and ‘.rpm.’ which are platform dependent.

Distribution independent package formats vs. Traditional package formats

Unlike traditional package formats, distribution independent package formats bundle applications with all the dependencies to install and run the app as a single package. Therefore, any software distributed by these package formats will run on any Linux system, which has supported the framework for that particular package format.

With traditional package managers, we have applications built for a specific platform, and users will need to install the required dependencies for the package to run on the system. That might seem to be a significant drawback in traditional package managers, but there is also an issue to note for the distribution dependent package managers.

When a developer makes use of distribution independent package managers to distribute his work, he has the full responsibility of ensuring the dependencies are up to date with the latest security measures. If ignored, the package will pose a security threat to the system. On the contrary, traditional software packages are maintained by the Linux distribution developers, ensuring that dependencies are updated with the latest security updates.

Snap vs. Flakpak vs. AppImage

In this article, we shall explore three distribution independent package formats – Snap, Flatpak, and AppImage, know their differences and summarize a few key findings.

1. Snap

Snap is a distribution independent package format developed by Canonical and first released in 2014. It was initially developed for Ubuntu but has been adopted by other Linux distributions like Arch, Linux Mint, CentOS, Gentoo, and Fedora, and also included support for the Snap framework.

The main aim behind this package format development was to come up with a single unified format for software packages to run in a wide range of devices. That includes IoT (IoT), embedded devices running Ubuntu Core (a minimalistic version of Ubuntu), and computer systems that ran some Ubuntu version.

Snap also offers an online app store – Snapcraft, where users can find and install the software packages. It creates a large pool where users can find all available a snap package. Snapcraft is itself controlled and maintained by the Canonical team.


Other than app users, Snapcraft provides application developers with guidelines on publishing Snap packages. Additionally, Snapcraft comes with both open and proprietary software.

2. Flatpak

Like Snap, Flatpak is another distribution independent package format aimed to simplify overall app distribution and usage in Linux systems. Previously known as xdg-app, the framework was based on the concept of running applications in a secure virtual sandbox without requiring root privileges or posing a security threat to the system.

Flatpak was officially released in 2015 with a reliable backup from Red Hat, Endless Computers, and Collabora. It targeted primarily three Desktop Environments. That is FreeDesktop, KDE, and GNOME. The Linux distributions currently having this framework are arch Linux, Debian, Fedora, Mageia, Solus, and Ubuntu.

The Flatpak framework itself is developed in C programming and released under the LGPL license. The lead developer is Alexander Larsson – a Red Hat employee.

Like Snapcraft for Snap, Flatpak also has the Flathub app store where users can find and install all Flatpak packages. Initially, Flathub only allowed open-source publishing applications on the website but has recently approved the publishing of proprietary apps.

Additionally, unlike Snap, where we have a single repository controlled by Canonical to install and update software packages, Flatpak supports the use of multiple repos. The one significant disadvantage with this package is the lack of support for Servers.

3. AppImage

AppImage is another widespread distribution independent package format first released in 2004 with the name Kik. Regarded as a portable package format, this follows the “One app = one file” concept. That means, it is a regular independent file containing a single app and everything it needs to work. To run the application, the user only needs to make it executable and double-click on it to start.

Users can find the packages on the AppImage website. Another feature to note is that it does not use repositories to install package updates like Snap and Flatpak. Instead, the AppImage package comes with additional information on how to install updates. Packages without this update information can be updated with a tool like AppImageUpdate.

The table below gives a detailed summary of the key differences between Snap, Flatpak, and AppImage. Although most of the features are self-explanatory, we have elaborated some of them below the comparison table.

FeaturesSnapFlatpakAppImage Permission Controls Toggles (GUI and CLI) like in Android devicesYesYesNo Sandboxing SupportYesYesYes Sandboxing MandatoryYesYesNo App PortabilityYesYes No Native Theme SupportYes (with caveats)Yes (with caveats)Yes (with caveats) Support for Bundled LibrariesYesYesYes Fully Contained Single Executable Support . Like an exe file for Windows systemsNoNoYes Online App StoreYesYesYes Multi-version Parallel Apps SupportYesYesYes Automatic UpdatesYesYesYes(with caveats) Support for Chrome OS (through Crostini containers)YesYesYes App SizeCan vary but higher than AppImageCan vary but higher than AppImageLowest Number of Applications Available in the App StoreHighestLowestSomewhere in between Plugins for Desktop App Store SoftwareYesYesNo Permission Controls

Most applications need to access different system features to run smoothly. Luckily some of these package formats provide users with a simple way to control some of these permissions.

Snap provides both a graphical and a command-line interface for user-controlled permissions. You can use the Ubuntu Software to manage permissions of applications with Snap.

Leafpad permissions

From the above image, you can see the different permission for Leafpad. You can either enable or disable each permission by clicking on the toggle button.

To access permissions of a snap application via command-line run the command-line below:

snap connections leafpad

Replace ‘leafpad’ with your snap name.

Snap CLI permissions

To see all the installed snap applications, run the command below:

snap list Snap List

To grant network permission to Leafpad snap, execute the command below:

snap connect leafpad:network

To revoke network permission, execute the command below:

snap disconnect leafpad:network Snap CLI permissions

Flatpak also provides users with a permission control interface. You can use GNOME Software to manage Flatpak apps permissions graphically.

To see all permissions in a Flatpak app, run the command below:

flatpak info --show-permissions com.spotify.Client

Be sure to replace ‘com.spotify.Client’ with the name of your Flatpak app.

To view all Flatpak applications installed in your system, run the command below:

flatpak list

AppImage doesn’t provide user permission controls as of now. However, developers have hinted that this feature may be implemented in the future.


Sandboxing is the process where an application runs in an environment (a sandbox/container/filesystem/archive) fully isolated from the host system. Any interaction with the system is done through APIs and user permissions. Snap, Flatpak, and AppImage offer support for Sandboxed environments.

A Sandboxed application enhances overall system security compared to an app with full system access. A good example would be android applications. They run in a sandboxed environment and have access to the system only via user permissions.

Native Theme Support

Both Snap, Flatpak, and AppImage package formats support the native look and feel for GTK and QT applications, though with some limitations. For example, Snap and Flatpak require the system themes packaged in their specific formats. If you are running third party themes and icon packs, you might not get the correct system theme, cursor, and app icons. Even though this has improved over time, there is still some notable difference from apps installed from the official package manager of distribution.

App Portability

An AppImage application is similar to the Windows system single executable’ .exe.’ file. An AppImage contains one app with everything it needs to work. To run the application, the user only needs to make it executable and double-click on it to start.

That is not the case with Snap and Flatpak applications. However, they can be made portable by packaging the app itself, and the child repositories it depends on. This whole process is not as easy as AppImage and requires running multiple Terminal commands.


Each of the three distribution independent package formats discussed above has its advantage and disadvantages. I think there are still some improvements by each of them to make any of them the main package format for Linux distributions. Luckily, all these package formats can co-exist. You don’t have to stick to a particular package format when you can enjoy software from different package formats.

How to install DEB packages on Ubuntu & Linux Mint

Friday 24th of July 2020 03:40:36 AM

If you found a software setup file ending with the format (.deb) then this means the file is a Debian package that is designed especially for Debian based machines. If you are a newbie to Linux this may seem a little bit annoying because you may need some extra steps to install those Debian packages. But do not worry we are here to help you do so.

Installing DEB packages on Ubuntu and Linux Mint

During this tutorial, we are going to show you step by step how to install a Debian package on Ubuntu. We shall discuss two basic methods:

  • Installing Debian Packages via Command-Line (Terminal)
  • Installing Debian Packages via Graphical User Interface (Software Center Application and GDebi Application)

But before we start our guide let’s first ensure that you have an updated Ubuntu system using the following two commands:

sudo apt update sudo apt upgrade Method I: Installing the Debian Packages via Command-line

In the command line method, we are going to use the terminal to install a Debian package. Basically, you can use the terminal using one of the two methods:

  • via dpkg command
  • via GDebi command

In general, if you are using the dpkg command  you can use the following command format:

sudo dpkg -i "path_to_Debian_Package"

Where you need to replace the “path_to_Debian_Package” with the path of your Debian package. Therefore, for example, to install ASC Music Debian package you would use a command like the below one:

sudo dpkg -i Downloads/asc-music_1.3-4_all.deb dpkg Command GDebi

Our second command-line method is to use the GDebi command. In case you have not installed the GDebi on your system then use the following command to install it:

sudo apt install gdebi Install Gdebi Package

Next, let’s use the GDebi command to install a Debian package by using the following command:

sudo gdebi Downloads/asc-music_1.3-4_all.deb GDebi Command

When the installation completes successfully you should get a message like the below one:

Asc Music Package Installed Method 2: Installing Debian Packages via Graphical User Interface

The easiest method to install a Debian package is to use the graphical user interface way. Again, you can choose between one of the two methods:

  1. Using Software Center
  2. Using GDebi Application
Installing the Debian Package using Software Center

During this method, we will be using the default Software Center that comes with Ubuntu. Luckily, there are not many steps, you just double-click on the package you need to install. Then install it via Software Center application. Let’s have a closer look at the steps as following:

Step 1. Check the Debian package in your Downloads directory.

Asc Music Debian Package

Double click on the Debian package.

Step 2. As you can notice the Software Center will open. Now you can press the Install button to start the installation.

Install Asc Music Debian Package Using Software Installer

Step 3. You may be required to provide the sudo password for authentication. As you can see, the installation of the Debian package is in progress.

Installation Progress

When the installation completes successfully you can get a screen like the below one with a Remove button instead. The Remove button can be used to uninstall the Debian package from your system.

Asc Installed

Now you should have installed the Debian package successfully.

Installing Debian Package Using GDebi Application

In the second graphical method, we can use the GDebi application. In this method, you should have the GDebi package installed. If it is not installed then you can use the following command to install it:

sudo apt install gdebi

Now let’s use the GDebi application.

Step 1. First, move to the directory where the Debian package is located. Then right-click on the Debian package and choose “Open with Another Application”.

Context Menu

Step 2. From the recommended applications menu choose the GDebi Package Installer. Then click the “Select” button.

GDebi Package Installer

Step 3. The GDebi application will open and load the Debian package.

Asc Music Package Loading in GDebi

Step 4. After the Debian package loads, you can click the Install Package to start the installation.

Asc Music Package Installed

Step 5. As you can notice, the installation bar at the below of the GDebi installer.

Asc Music Package Installed

Step 6. After the installation finishes successfully you should get a message like the below one.

Asc Music Package Installed Successfully Via GDebi

Congratulations, you have just learned multiple methods for installation the Debian package on your Ubuntu Linux system. The tutorial should work on Ubuntu-based Linux distributions including Linux Mint, elementary OS, Pop!_OS, and more.

The 6 Best Network Scanners for Linux

Wednesday 22nd of July 2020 11:37:58 PM

Computer Networks facilitate the sharing of information and resources between multiple nodes linked together. It is regarded as the backbone of telecommunication in the field of technology.

The other crucial term under networks is Computer Network security. It refers to the set of rules and configurations adopted to prevent and monitor network misuse, data modification (integrity), and denial of network access and resources.

Having understood these two terms, now we can look at Network Scanning. Network scanning mainly deals with security in computer networks. It is a procedure used to identify nodes on a network, services offered by different devices, identify network security systems in place, the operating systems, protect networks from attacks, and check the overall network health.

Best Network Scanners for Linux

In this post, we have handpicked the six best Network Scanners for Linux systems. When choosing a network scanning tool, a network administrator must understand the scanning capabilities of a particular utility and the functional areas it covers.

1. Nessus Nessus Dashboard

At the top of our list is Nessus. It is a popular tool used by network administrators to scan for issues in a network. Initially, Nessus was distributed as a freeware utility. That quickly changed with time; currently, it’s available as a commercial utility. However, there is still a free package of Nessus that only comes with limited features and capabilities.

Nessus comes in 3 packages, each having different capabilities. They include Nessus Home, Nessus Professional, and Nessus Manager or Nessus Cloud. Nessus has been designed to make the whole process of networking, scanning simple and straightforward.

Key Features
  • Support for a wide range of systems, including cloud, OT (Operational Technology) devices, and traditional IT assets
  • It is available with 70,000 plugins offering various vulnerability scanning services on a network.
  • It offers support for network inventory with the available advanced features, e.g., automated scans, multiple network scans, and asset discovery.
  • Offers accurate visibility into a network
  • Support for both IPv4 and Ipv6 network scans.
  • It offers support for automated scheduling of scans and analysis.
  • Generate customized reports and notifications

Download Nessus

2. Nikto Nikto

Nikto is an open-source web server scanner distributed under the General Public Licence (GPL). Nikto analyses and performs rapid tests on web servers for up to 7000, potentially malicious applications and files. It also checks for outdated server versions and checks for server configurations objects like HTTP options, index files, etc.

Key Features
  • It provides HTTP proxy support.
  • Nikto supports report generation in several file formats, including XML, HTML, NBE, or CSV.
  • Offers support scanning for multiple servers and ports via input file, which can include Nmap output.
  • Enhances security by authenticating hosts with Basic and NTLM.
  • Enables users to tune scans and include/exclude various vulnerability checks.
  • Nikto provides a platform for report customization.

Download Nikto

3. OpenVAS OpenVAS

OpenVAS is a free and open-source network security scanning utility distributed under the General Public Licence (GPL). Regarded as a vulnerability assessment tool, OpenVAS scans a network for connected servers, firewalls while listening for any configuration errors in the services running on these devices.

It comes with a unique feature that enables the assessment of solutions and reveals the false negatives and false positives. For any false positive, OpenVAS provides a report of why a particular vulnerability was flagged.

The tool supports three types of scans. They include a Full Scan, Web Server Scan, and WordPress Scan.

A full scan tests the network and all connected devices like servers and web applications for any vulnerabilities. A web server scan is used to test networks for any web servers and web application vulnerabilities. The WordPress scan, like the name suggests, examines a system for WordPress and web server vulnerabilities.

Key Features
  • OpenVAS is an excellent vulnerability scanning utility with solution management.
  • Provision of reports for risk assessments and mitigation.
  • Support for intelligent custom scans.

Download OpenVAS

4. Angry IP scanner Angry IP Scanner

Angry IP scanner is a free and open-source network scanning tool used to perform IP addresses and Port scans. Every single scan provides information about nodes on the network like hostnames, MAC addresses, NetBIOS information, frequently used IP ranges, web servers presence, etc.

To speed up the network scanning process, Angry IP Scanner implements a multi-threaded approach with each thread scanning a different range of IP addresses. You can save the results in various file formats like CSV, TXT, and XML.

Key Features
  • It supports the scanning of rapid IP addresses and ports.
  • Implements multi-threaded scanning.
  • Support for several file formats – CSV, TXT and XML.

Download Angry IP Scanner

5. Nmap Nmap

Nmap is another popular tool available for both Network administrators and penetration testers. As the name suggests, Network Mapper (NMAP) maps a network and checks for vulnerabilities. It identifies nodes on a network, available hosts and services offered, discover open and closed ports, etc. The Nmap Scripting Engine helps in detecting network security issues and configuration errors.

Nmap is available as a Command-line (CLI) utility but has a GUI client known as Zenmap. Nmap can be used on small networks, scanning a single host and vast networks with thousands of nodes and subnets.

Key Features
  • Ease of use
  • Nmap Serves as a network inventory and mapping utility.
  • Support for port scanning and auditing.

Download Nmap

6. Qualys FreeScan Qualys Freescan

Qualys Freescan is a free and open-source network scanning utility that helps businesses streamline their security and compliance solutions. It scans the network for URLs, IP addresses, and local servers for vulnerabilities.

It performs three primary checks on a network;

  • Vulnerability checks: Tests a network for malware attacks and SSL issues.
  • OWASP: Checks for security issues in web applications.
  • SCAP checks: (Security Content Automation Protocol) checks computer configurations against security contents, i.e., SCAP.
Key Features
  • Qualys performs detailed network vulnerability checks.
  • Support for web application auditing.
  • Qualys responds to threats in realtime.
  • It supports only up to 10 free scans.

Download Qualys Freescan


Every network has its weakness in terms of bugs, loopholes, and even misconfigurations. All these can lure an attacker into exploiting the vulnerabilities. Network monitoring is, therefore, a critical activity that every network administrator should carry out from time to time to prevent intrusions. Network scanning tools make such a task much more comfortable and straightforward.

As an administrator, you will need to make a tough decision on which tool is best for your network. I would suggest you go for a utility that provides advanced exploit detections, comprehensive port scanning, and web vulnerability assessments.

In this article, we have looked at some of the best Linux network scanning tools, and luckily, most of them are freeware. Go through each of them and pick one which is best suited for your network.

Linux tmp Directory: Everything You Need to Know

Monday 20th of July 2020 02:18:53 PM

Are you looking to expand your knowledge base on how temporary files are handled in Linux? Well, to help you out, here is a quick and comprehensive read on everything you need to know about the Linux /tmp directory.

What is the Linux /tmp Directory?

The /tmp directory in Linux based systems contains necessary files that are temporarily required by the system as well as other software and applications running on the machine.

tmp directory on Pop!_OS (example)

For example, when you are writing a document, all the content inside that document is saved as a temporary file inside the /tmp directory. After you have saved it, it gets stored in your preferred location, and the temporary file gets removed once you exit the document.

What is the difference between the /tmp directory and the /var/tmp Directory?

Both /tmp and /var/tmp are used by programs as well as the system itself to store data temporarily. However, the key difference is for how long the data is stored inside these filesystems. The data retention period for /var/tmp is much more extended than that of the /tmp directory.

By default, all the files and data that gets stored in /var/tmp live for up to 30 days. Whereas in /tmp, the data gets automatically deleted after ten days.

Furthermore, any temporary files that are stored in the /tmp directory get removed immediately on system reboot. As such, the /var/tmp directory is used by programs to store data that needs to be preserved between reboots temporarily.

Can the Linux /tmp directory fill up?

The files and data that are stored inside the /tmp directory are only a few KB in size. It is doubtful, albeit possible, for the /tmp directory to fill up.

For an average system, there needs to be millions of temporary files stored in the /tmp directory to fill it up. This shouldn’t be something you should worry about if you run a single-user system that gets frequently shut down, as the rebooting system removes all the stored files in the /tmp directory.

However, if you are a system admin running a server that rarely gets rebooted and hosts thousands of users, then the /tmp directory filling up is a practical problem.

With more temporary files piling up in the directory, it is going to slowly eat up all the storage space, which is terrible news for the overall system health.

How to delete the files stored inside the /tmp directory?

Unless you know what you are doing, it isn’t recommended that you go around deleting the files inside the /tmp directory. These are important and required by the software running on your system. Removing them can potentially cause a system crash. Since the files and data stored in the /tmp directory get automatically deleted upon system reboot, it isn’t something you need to worry about actively.

However, as discussed earlier, for servers that run for months on end, it is necessary to clean up the temporary files from time to time before it floods the /tmp directory. To do this, we encourage you to take a more systematic approach instead of just deleting all the /tmp files by the bunch.

Here we have put together a detailed read on how to properly manage the Linux /tmp directory to help out system admins.

The correct way to delete Temporary Files and Manage the Linux /tmp directory

There are two things you need to consider when trying to manage the Linux /tmp directory. First, you need to know how to determine which files to remove from the /tmp directory, as randomly deleting the files will disrupt users’ activities.

Secondly, you need a way to automate the /tmp directory clean up process as it is going to be impossible to search and routinely delete the temporary files manually.

Considering these two points, the perfect solution would be periodically deploying user file housekeeping scripts using crontab. For example, let’s suppose that you want to routinely delete all user files stored in the /tmp directory that has not been used for the last three days.

Well, you can put this to action by first informing the users on your server about your new temporary file deletion policy, so that they can modify their usage activities accordingly. Next, you will need to write a script that will help you find all these files.

Here is an example that you can try:

find /tmp -type f \( ! -user root \) -atime +3

The above script will find all the /tmp files that haven’t been accessed in the last three days but will exclude all the files owned by the root user. To delete all these files, you will just to do a slight edit to the above script:

find /tmp -type f \( ! -user root \) -atime +3 -delete

To run this script periodically, you will need to copy the above text in a file and make it executable. For this tutorial, we will be creating the file

Script for deleting /tmp files

Next, we will set up a crontab command that will execute the script every 6 hours. To do this, first enter the following command in the terminal:

$ crontab -e

This is going to open the crontab file in the editor. Next, you will need to copy and paste the given command in the editor and then save & exit.

0**/6** /opt/scripts/ Creating a /tmp file deletion crontab

This is going to run the script in /opt/scripts/, every 6 hours, so you don’t have to worry about the /tmp directory getting flooded and eating up your system storage.

Of course, you are free to program the crontab to execute the script in any periodic interval you want. Here is an in-depth guide on how to create a crontab command to help you out.

I accidentally deleted the /tmp directory. Now what?

In the course of manually deleting the /tmp files, some users accidentally end up deleting the /tmp directory itself. Mess ups like this can and do happen. However, you can quickly restore the deleted /tmp directory using the discussed method.

All you need to do is enter the following commands in your terminal:

$ sudo mkdir /tmp $ sudo chmod 1777 /tmp

The first line creates a new /tmp directory. The second line gives all users (owner, group, and other) access and permission to read, write, and run files in the /tmp directory.

Next, you can enter this command to check all the permissions of the /tmp directory to make sure all your users will be able to use it.

$ ls -ld /tmp

Once you have checked everything is a-okay, you will need to reboot your system. This will ensure that the programs start using the newly created /tmp directory.

Wrapping Up

So that covers everything you need to know about the Linux /tmp directory. However, if you still have some burning questions that we left out from this read, then feel free to ask them down in the comments section. We will happily resolve it to help you develop a better understanding and appreciation for Linux.

Top 10 Tips using the Ubuntu Software & Updates

Sunday 19th of July 2020 06:28:44 PM

Since its release, the Ubuntu Software Center has proved to be a reliable utility for users who want to install applications graphically without the hassle of executing multiple Terminal commands. It’s an easy to use tool that provides users even with search functionality enabling them to look up for any application they need and install it with a single click. Additionally, most of these applications available are entirely free for use.

Ubuntu Software in Focal Fossa

Let’s get into details and learn how to effectively use the Ubuntu Software Center for installing and managing the applications.

Using the Ubuntu Software Center

Even with all these fantastic features, we can still tweak the Software Center to make it even more efficient. Below are five great tips you can apply while using Ubuntu Software Center.

1. Set the fastest downloading server

By default, the Software Center uses the primary server for your country and region to download packages and updates for your system. That is done to increase download speeds. However, we can improve the download speed even more by using a local server like that of a university that often hosts many repositories.

Follow the steps below to see how you can change your download server.

i) Launch the “Software & Updates” application from the applications menu.

Ubuntu Application Menu

ii) Navigate to the Ubuntu Software menu. It should probably be the first from the left. From the image below, you can see my default server is set to the United States.

Default download server

iii) Click on the drop-down list, and you should see the “Other” option. Click on it. You will be surprised by the number of servers that will be listed. Select the server closest to you.

Download Server Setting

iv) If you have no idea which to select, click on the “select best server” option on the top right of the winLaunch Software & Updatesdow.

Best Server Setting

This option will test all the servers available and closest to you for the fastest server. That will give your software and updates download speeds an amazing boost. It is even more useful when Ubuntu servers are slow, especially when a new edition of Ubuntu is released.

2. Clickable Installation links

This feature is mainly implemented by blogs and websites, providing tutorials on how to carry out various tasks on Ubuntu. They provide users with a single-click link that will take them directly to the Ubuntu Software Center to download the particular package.

Unfortunately, not all bloggers use this method. Some still use the command-line instructions using the “apt” package manager. For example, “sudo apt-get install.” However, there is a solution to this for you as a reader.

With the Apt-Linker chrome extension, any “sudo apt-get install” command will automatically convert to a clickable link. Installing this extension is as simple as clicking any installation link.

3. Installing DEB packages

With the introduction of the Software Center in Ubuntu systems, software installation was made even more straightforward. Users don’t have to execute multiple commands on the Terminal to install commonly used software like Skype or VLC media player.

With the search feature, users can look up for any application they need to install. For example, to install Android Studio IDE, I can search for it on the Software center.

Ubuntu Software Center

The Ubuntu Software Center can also be used to install “DEB” packages. Instead of using the command-line, which will need you to execute several commands, you can use the Software Center. To do so, Right-click on the “deb” package and select the option “Open with Software Install.”

4. Installing Software Updates

Updating and upgrading the Ubuntu system is pretty straightforward. All you have to do is run the commands “sudo apt update” and “sudo apt upgrade.” Even though this method is very efficient, you might need to upgrade only particular applications in the system. That is where the Ubuntu Software Center comes in handy.

Launch the Software Center. You should see three tabs at the top – “Explore,” “Installed,” and “Updates.” Click on the “Updates” tab. If you have any applications that need to be updated, they will be listed here. You can decide to update all of them or update a specific application.

Ubuntu Software Center Updates 5. Managing Native packages, Snap packages, and Flatpak applications

You can use the Ubuntu Software Center to remove and update native applications and apps installed using snap and flatpak. To do so, launch the Software center and lookup for the specific application. You should see a “Remove” next to it. Click on it to uninstall.

Alternatively, you can click on the “Update” tab to see which applications require updates. This method is very efficient for new users who are just getting into Linux and find the whole Terminal thing overwhelming.

Software Center Installed Applications 6. Use Snap Store Account

Ubuntu has two leading Software apps where users can download applications. The Ubuntu Software and Snap Store. The default software app is the Ubuntu Software, but it is the Snap store under the hood. All apps available in the Snap store are snap packages while the Ubuntu Software can contain both Snaps and apt packages.

These available snaps on Ubuntu Software are regarded as free, and you can download them without the need for a snap store account. However, to download and install private snaps, you will need a snap store account. Follow the steps below to create a snap store account if you don’t have one.

i) Launch Ubuntu Software application.

ii) Click on the “hamburger menu drawer” icon at the top-right.

Hamburger Menu Icon

iii) Click on the “Sign in” button.
iv) If you already have a snap store account, select the option “I have a Snap Store or Ubuntu One account.” If not, choose “I want to register” to get started with creating a new account.

Snap Store account 7. Uninstalling Software

Not only did the Ubuntu Software simplify the overall process of installing software, but also uninstalling applications. If you are getting into Linux systems, the Ubuntu Software can be a reliable utility before you get a good understanding of the Terminal package management commands. You can use it to remove Native apps, snap packages, and Flatpak applications.

Uninstall Applications 8. Additional Drivers

Just like any other operating system, Ubuntu uses drivers to manage most of the hardware components. However, unlike Windows operating systems where users need to search for drivers and install them manually, Ubuntu identifies and installs the required drivers for your order automatically.

However, there is a catch. Most of these hardware components have both open-source drivers and proprietary drivers. By default, Ubuntu will install the open-source ones. In some cases, that might cause some problems since the open-source driver might not work as well as that provided by the hardware manufacturer. I faced these issues, mostly with wireless adapters and graphic cards.

To install additional drivers, follow the steps below;

i) Launch the “Software & Updates” app.

Ubuntu Software & Updates

ii) Click on the “Additional Drivers” tab. You will see a list of devices together with their additional drivers, which you can install. You can decide to install the driver by selecting it and clicking on “Apply Changes.”

Ubuntu Additional drivers

If you ever want to go back to using open-source drivers, click on the “Do not use” option. Note, your PC will need to restart after switching the drivers.

9. What is Live Patch, and should I use it?

Canonical publicly launched the Canonical live patch service, enabling you to apply kernel security updates without rebooting the system. It directly patches the running kernel. It, however, doesn’t affect the regular kernel updates. You will have to install those the proper way and reboot to apply changes.

If you are running a server or having some dedicated computer, it would be best to set this up. As soon as a security update is rolled out, you want to have it running on your system as quickly as possible. Follow the steps below to setup Ubuntu Livepatch.

i) launch the “Software & Updates” application.
ii). Click on the Livepatch tab. To enable Ubuntu Livepatch, you need to sign in with your Ubuntu one account. If you don’t have it, you can create one here.

Ubuntu Livepatch 10. Setting Frequency of Updates

If you wish to have your system updated more frequently, you can change the update settings on the Update and Software application. Launch the “Software & Updates” app and navigate to the “Updates” tab.

Ubuntu Updates

Here, you will be presented with several options for how you want to receive your updates. For example, in my system, I want it to check for updates daily and automatically download and install security updates.


The Ubuntu Software Center is a handy application and is getting even better with time. We have more and more packages and features being introduced. Currently, there is a rating and review feature that shows customer feedback about the application and Livepatch being the latest. If you found this article useful, feel free to share the link with friends.

How to install Google Chrome on CentOS

Saturday 18th of July 2020 12:31:11 PM

Google Chrome is the most popular web browser for desktop computers for a good reason. It comes with a lot of cool features and functionalities that appeal to casual users as well as tech-savvy professionals.

With that being said, CentOS already ships with the much loved and equally feature-rich Mozilla Firefox. However, if you have a long history with Google Chrome and want to use it on your CentOS system as well, then we are here to help.

The problem is that since Google Chrome isn’t an open-source application, it isn’t available in the official CentOS repository. As such, we have put together a step-by-step workaround to help you add Google Chrome to your YUM repository and then install it.

Installing Chrome on CentOS NOTEGoogle Chrome has dropped support for 32-bit Linux distros since March 2016. As such, if you are running on CentOS 6.X or older, you need to upgrade to a recent version to Download and Install Google Chrome on your system. For this tutorial, we will be using CentOS 8.2. Step 1: Enabling Google Chrome YUM Repository

First, we will need to create this file: /etc/yum.repos.d/google-chrome.repo. You can do this by entering the following command in the terminal:

$ sudo touch /etc/yum.repos.d/google-chrome.repo

Once the file is created, you will need to open it using your favorite editor. We will be using the nano editor for this tutorial. After opening the file, you will need to enter the following text and then save the file.

[google-chrome] name=google-chrome baseurl=$basearch enabled=1 gpgcheck=1 gpgkey= Enabling Google Chrome Yum Repository

Following these steps, you have successfully enabled the Google Chrome YUM Repository. Its time to install the Chrome web browser.

Step 2: Download and install Chrome

Next, we will be using the yum command to install the browser and make sure to pull all of its dependencies onto your system. To do this, first enter the following command in the terminal:

$ sudo yum info google-chrome-stable

This is going to give us the following output.

Checking Chrome Version

As you can see, the repository should show the latest version of Google Chrome i.e., version 84. Now that we are sure we are getting the newest version, it is time to install the browser using the following command:

$ sudo yum install google-chrome-stable

This is going to install the browser along with all its dependencies on your system.

Installing Google Chrome Updating Google Chrome on CentOS

After installing any new software or application, it is a good practice to check for any updates. You can do this by entering the following command in the terminal:

$ sudo yum update google-chrome-stable

This should give you a similar output screen, as shown below:

Updating Google Chrome

On our system, it is showing that everything is up to date, and all the necessary dependencies are installed. That’s great news! It’s time to start the browser.

Starting Google Chrome on CentOS

To start Google Chrome, you can enter the following command. As you can see, there is no need for you to enter sudo, as you can access it as a regular user.

google-chrome &

This is going to bring up the following output screen as well as the pop-up box asking you to make Google Chrome your default browser, and whether you want to send usage stats to Google.

Starting Google Chrome

You can keep the options checked or uncheck them if you like. Once done, hit Ok, and the Google Chrome browser should open up. You can start browsing the web using it.

Google Chrome Installed

With Google Chrome successfully installed, you will also be able to run it using the GUI as well with the option to pin it to your Favorites.

Wrapping Up

So this is how you can install Google Chrome on CentOS. As you can see, it is relatively simple and doesn’t involve too many complicated steps. The same steps and commands will apply when trying to install Chrome on Fedora as well as on CentOS/RHEL 7.X.

The most important and crucial part would be enabling the Google Chrome YUM repository, as we showed earlier. Make sure to copy the text exactly as shown here, and you should be good to go.

However, if you do end up facing some errors during the installation procedure, then leave a comment explaining your problem. We would happily help you to troubleshoot the issue.

The 6 Best Linux File Recovery Software

Thursday 16th of July 2020 02:34:42 PM

It’s fair to say that most of us lose essential data in our computers either through accidental deletion, virus attacks, permanent removal of files, etc. at some point. Some of these files contain critical information that cannot be assumed and needs recovery. In this post, we will discuss some of the best data recovery available for Linux systems. The fantastic part is that most of them are opensource and freely available for use.

What is Data Recovery?

The process of Data recovery is the retrieving of either lost, damaged, inaccessible, or corrupted data from storage devices. They can range from storage media like Hard drives, SSD, USB drives, DVD/CD, and other electronic storage devices.

How is it possible to recover the data after deletion?

As strange it may sound, the data is not ‘actually’ deleted from the hard disk after you remove the file from your Linux system (or any OS if it matters) using the delete key. The operating system just marks the memory sector of the deleted file location as available space for the next write sequence. It means anyone can use a special tool to get access to that memory sector and recover the data before other data overwrites it. The special tool I’m talking about is the File Recovery tool.

Best File Recovery Tools For Linux

Currently, there are many Linux data recovery software in the market, giving users a large pool to choose the right one. In this article, we will focus on the six best recovery tools available for Linux, and also show you how to install them on the most common Linux distributions.

1. TestDisk TestDIsk on Ubuntu

TestDisk is an opensource Data recovery tool mainly used to retrieve damaged partitions. It is also useful in recovering a non-booting disk if an error was caused by harmful software, virus, or even accidental file deletion. It is a powerful command-line utility that is easy to use and fast to understand.


Installing this highly reliable utility is fast and easy. You can download the TesDisk setup file from the link below or use the command-line to install it.

Download TestDisk

Install TestDisk on Ubuntu and Debian

sudo apt update sudo apt install testdisk

Install TestDisk on Red Hat and CentOS 7

yum install epel-release yum update yum install testdisk

Install TestDisk on Fedora

sudo dnf install tesdisk

Install TestDisk on Arch Linux

sudo pacman -S testdisk Features
  • TestDisk enables you to gather necessary information about a corrupted drive.
  • Recover deleted partitions.
  • It’s a cross-platform application that runs Linux, Windows Operating Systems, MacOS, and many more Operating System.
  • TestDisk can be used to re-build broken partition tables.
  • It is used to rewrite the corrupted MBR (Master Boot Record).
  • It can be used to backup partitions EFI GPT partitions.
2. Ddrescue Ddrescue

Ddrescue is a free and open-source command-line utility distributed under the GNU license. Ddrescue is used in retrieving data when a read error occurs. You can download the Ddrecue setup file from the link below or use the Terminal commands.

Download Ddrescue

Install Ddrescue on Ubuntu

sudo add-apt-repository ppa:hamishmb/myppa sudo apt update sudo apt-get install ddrescue-gui -y Features
  • Rescues data easily and fast by reading only the specified blocks.
  • Enables users to stop/pause an ongoing activity and resuming at any time.
  • Can recover necessary data efficiently in spit of disk errors and bad sectors.
  • It highlights the bad sector on a drive.
  • Ddrescues keeps track of logs about its advancement; therefore, reducing redundant scanning.
3. SafeCopy SafeCopy

It is one of the most reliable tools when all others fail. Written in C programming language, SafeCopy performs data recovery from bad sectors on a storage drive. You can download the SafeCopy setup file from the link below or use the command-line to install it.

Download SafeCopy

Install SafeCopy on Ubuntu

sudo apt-get update sudo apt-get install -y safecopy Features
  • Since it’s written in C language, SafeCopy can execute low-level I/O operations.
  • SafeCopy works in the background without slowing or bringing the computer to a deadlock.
  • It’s available for use in 16 different languages.
  • It can continue from the exact position of recovery in case a storage drive disconnects. (For example, a USB drive could disconnect either accidentally or due to faulty storage).
  • SafeCopy can be used to fix errors in several storage media like DVD/CDs, Floppy drives, Hard drives, USB drives, etc.
4. Redo Backup and Recovery redo-backup-and-recovery

Redo Backup and Recovery is one of the available data recovery utilities with a Graphical User Interface (GUI) and released under the GNU GPL3. It is regarded as an easy-to-use tool even for newbies getting into Linux systems and have less knowledge about the Terminal commands.

Redo Backup and Recovery is available as an ISO file which can be used to create a bootable USB/CD to boot your PC. Since this tool is platform-independent, users can retrieve a lot more data from different partitions. Download Redo Backup and Recovery tool from the link below.

Download Redo Backup and Recovery

  • Redo Backup and recovery come with a few essential applications enabling you to carry out other tasks while recovering data. They include a text editor, browser, file manager, and Terminal.
  • Available for use as a bootable USB/CD.
  • It’s one of the few recovery utilities that make use of Partclone to clone disk partitions.
5. PhotoRec PhotoRec

PhotoRec is another amazing data recovery utility from CGsecurity. The other is TestDisk. PhotoRec was developed to accurately recover deleted images/photos and other graphic media files. It’s a free and open-source utility distributed under the GNU General Public Licence.

You can download the PhotoRec setup file from the link below or use the command-line install it.

Download PhotoRec

Install PhotoRec on Ubuntu

PhotoRec comes along with the TestDisk Data Recovery utility. Therefore, to work with PhotoRec, we will install TestDisk.

sudo apt update sudo apt install testdisk

Launch Photorec with the command below.

sudo photorec Features
  • Comes with an intuitive and interactive interface
  • PhotoRec supports a wide range of file formats
  • Can recover damaged or lost photos from CD drives, Hard drives, and even digital cameras
  • PhotoRec can discover unseen or unexplored data to recover photos even when the media storage is severely damaged.
6. Mondo Rescue MondoRescue

Mondo is a free and highly reliable command-line data recovery utility available for most Linux distributions. It comes with several unique features and has been in the market for a long time used by large and tiny companies to recover/backup/restore data extensively. Mondo works with a wide range of storage media devices.

Download Mongo Rescue

  • Used to verify the reliability of your system
  • Can be used to perform several partition management features like resizing, formatting and partitioning
  • It works with both RAID and Non-Raid devices
  • Mondo is available for both Linux and Windows and can be used to recover the Master Boot Record (MBR).
  • Can be used to verify the integrity of recovered data

I hope this article has given you enough information on the best Linux file recovery software available to download, and you can now make a choice on which tool best fits your needs. If you are a primary user, any of the tools above will be of great help. However, for advanced users with special needs on file recovery, they will need to go for one with the required features.

It’s important to note that most of the data recovery tools available, retrieve lost data using the metadata left in the drive. That is not a hundred percent guarantee you will recover every single byte of the data. At times, some of the files might be overwritten so much until the metadata itself is no longer useful. Therefore, it’s best always to have a backup of any critical data in your system.

Which tool do you use for data recovery in your Linux System? Feel free to share with our readers in the comment section below.

How to set up NFS Server on CentOS

Wednesday 15th of July 2020 01:27:06 PM

NFS or Network File System is a distributed file protocol that allows you to share a file or even an entire directory with others over a network. It establishes a server-client environment, where a client machine can access data shared by the NFS server as if they were locally mounted.

In this tutorial, we will go over detailed installation instructions for setting up NFS Server on CentOS. The step-by-step guide will cover how to set up the NFS server on the server-side as well as the client-side. Let’s get started.

Setting up NFS Server on CentOS Our Testing Environment NFS Server IP address:  NFS Client IP address:

To start, here is a step-by-step guide on setting up the NFS server on your CentOS 8 system.

Step 1: Install the NFS Server

First, we will need to install nfs-utils on our system. It is the NFS server package that functions as the NFS daemon. To install it, you need to enter the following command in the terminal:

$ sudo dnf install nfs-utils -y Installing NFS server

We are running a clean install of CentOS 8 and nfs-utils is already installed on our system. It might be the same on your machine as well. If not, then the package will get installed, following which we move on to the next step.

Now that you have nfs-utils installed on your system, you will need to start the nfs-server service, configure it to start automatically at system boot, and finally verify its status to check if everything is working as intended.

To do this, you will need to enter the following commands in your terminal:

$ sudo systemctl start nfs-server.service $ sudo systemctl enable nfs-server.service $ sudo systemctl status nfs-server.service

The output should be similar to, as shown in the image below:

Checking NFS server Status

The active sign means that the NFS server is working perfectly. You should note that all the associated services that are necessary to run an NFS server or mounting NFS shares are also activated via the above command. These services include nfsd, nfs-idmapd, rpcbind, rpc.mountd, locked, rpc.statd, rpc.rquotad, and rpc.idmapd.

Also, in case you are interested, here is the address for the NFS server configuration files:

  • /etc/nfs.conf – This is the main configuration file for the NFS daemon and tools.
  • /etc/nfsmount.conf – This is the NFS mount configuration file.
Step 2: Create and Export an NFS File System

Now that you have set up your NFS server, it is time to create a shared file system on the server that is going to be accessible from the client system. For this tutorial, we will create the directory /mnt/nfs_share/docs by using the following command:

$ sudo mkdir -p /mnt/nfs_share/docs

Next, to avoid any file restrictions on the NFS shared directory, we will configure the directory ownership using the following command:

$ sudo chown -R nobody: /mnt/nfs_share/docs

This allows the client system to create any files in the shared directory without facing any permission issues. Also, if you wish to enable all permissions – read, write, and execute to the NFS shared folder, then you can do so using the following command:

$ sudo chmod -R 777 /mnt/nfs_share/docs NFS shared folder

For the changes to take place, you will need to restart the NFS daemon using this command:

$ sudo systemctl restart nfs-utils.service

It is time to export it so that the client system can have access to it. To do this, we will need to edit the /etc/exports file. While editing the file, you can grant access to a single client only, or multiple clients, as well as the entire subnet.

If you wish to grant access to the entire subnet, then you will need to use the following syntax:

/mnt/nfs_share/docs subnet (rw,sync,no_all_squash,root_squash)

Here “subnet” needs to be replaced with the system’s subnet. Otherwise, you can specify multiple clients one at a time, on a separate line using this syntax:

/mnt/nfs_share/docs client_IP_1 (rw,sync,no_all_squash,root_squash) /mnt/nfs_share/docs client_IP_1 (rw,sync,no_all_squash,root_squash)

Here is a look at the other parameters using in the command and what they mean:

  • rw – This parameter gives read and write permissions to the NFS shared file/folder.
  • sync – This parameter requires the changes on the disk to be made first before they are applied.
  • no_all_squash – This parameter will map all the UIDs & GIDs from the client requests that are identical to the UIDS and GIDs on the NFS server.
  • root_squash – The parameter will map requests from the root user on the client-side to an anonymous UID / GID.

Using our setup, we will grant access to our client machine with the IP To do this, you will first need to open the /etc/exports file using this command.

$ sudo vi /etc/exports

Next, you will need to add the following line inside the file:

/mnt/nfs_share/docs,sync,no_all_squash,root_squash) Modifying the /etc/exports file

Once done, save and exit the file. Now, using the cat command, confirm that the entry was registered. To do this, enter the following command in your terminal:

cat /etc/exports

You should see something similar to the following image:

Confirming changes

Now it is time that we export the above-created folder, so it becomes available to client systems. To do this, we will need to use the following command:

$ sudo exportfs -arv

Here, the -a option means that all the directories will be exported. The -r option will re-export all the directories. And finally, the -v option will display a verbose output.

However, just to be sure that the export list is a-okay, we will run this command as well:

$ sudo exportfs -s

And that’s it! We have successfully created and exported our NFS shared files. Now its time to move on to the next step.

Step 3: Set Up Firewall Rules for the NFS Server

Our NFS server set-up is complete. The only thing left to do is to configure the firewall rules such that it allows the NFS services.

This includes the following three services – nfs, rpc-bind, and mountd. And to allow these services through the firewall, we need to enter the following commands in the terminal:

$ sudo firewall-cmd --permanent --add-service=nfs $ sudo firewall-cmd --permanent --add-service=rpc-bind $ sudo firewall-cmd --permanent --add-service=mountd

Once done, make sure to reload the firewall for the changes to take effect. To reload the firewall, use this command:

$ sudo firewall-cmd --reload Configuring CentOS firewall

With the firewall configured, it is time to set up the NFS client system.

How to Set Up the NFS Client System on CentOS 8

Here is a step by step procedure on how to set up the NFS client system on CentOS 8.

Step 1: Install the NFS Client Packages

First, we will need to install the necessary packages for accessing the NFS share folder that’s in the NFS server. To do this, enter the following command in the terminal:

$ sudo dnf install nfs-utils nfs4-acl-tools -y

Next, we will display the mounted NFS shared folder on the server using this command:

$ showmount -e The mounted NFS shared folder Step 2: Mount the remote NFS share on the server

We will need to create a directory that we will use to mount the NFS share. To do this, use the following command:

$ sudo mkdir p /mnt/client_share

To mount the remote NFS shared directory that’s on the local client system, we will need to use the following command.

$ sudo mount -t nfs :/mnt/nfs_shares/docs /mnt/client_share

Where is the IP address of the NFS server. To verify that the remote NFS share has been mounted, you can use the following command:

$ sudo mount | grep -i nfs

Finally, to make the mount share stable even after a reboot, we will need to edit the /etc/fstab file and then add the following entry: /mnt/client_share nfs defaults 0 0

Once done, save and close the file, and you are good to go.

Step 3: Test the NFS Server & Client Setup

After going through all the above steps, we have successfully configured a client-server connection using NFS. However, we need to check if the setup is working before we can call it a day.

To do this, we will first need to create a test file in the NFS server share directory and then check to see if it’s present in the client NFS mounted directory. So first, let’s create the test file in the NFS server directory using the following command:

$ sudo touch /mnt/nfs_shares/docs/server_nfs_file.txt

Head on to the client-side and enter this command in the terminal to check if the test file is available.

$ ls -l /mnt/client_share/

If you see the file, then it means that the NFS connection is working correctly.


That was our in-depth guide on how to set up the NFS server on CentOS 8. We hope you found this tutorial to be useful and that it helped you in sharing files and directories with your client systems. You may be interested in setting up an FTP server on your CentOS machine.

More in Tux Machines

Stable Kernels: 5.7.14, 5.4.57, 4.19.138, and 4.14.193

  • Linux 5.7.14
    I'm announcing the release of the 5.7.14 kernel. All users of the 5.7 kernel series must upgrade. The updated 5.7.y git tree can be found at: git:// linux-5.7.y and can be browsed at the normal git web browser:

  • Linux 5.4.57
  • Linux 4.19.138
  • Linux 4.14.193

Ubuntu Kylin Point Release Boosts Desktop Performance by 46%

More than 418 updates, tweaks, and other improvements have been made to the uniquely styled desktop environment and distro since the release of Ubuntu Kylin 20.04 back in April. And as with the Ubuntu 20.04 point release Ubuntu Kylin’s refreshed installer image comes with all of those enhancements wrapped up, ready to go, out of the box — no lengthy post-install upgrades required. Read more

Open source is more than code: Developing Red Hat Satellite documentation upstream

The code base for Satellite begins upstream and moves downstream. Until recently, the Satellite documentation did not follow the same journey. In this post, I will outline what has been happening with Satellite documentation over the last year and how this benefits both the Foreman community and Red Hat Satellite users. The Foreman and Katello projects are the upstreams of Red Hat Satellite. The discussions and contributions that take place in the vibrant upstream community help shape the Red Hat Satellite code base. Red Hat’s open source and community strategy has made Red Hat Satellite a robust and flexible product that can manage complex management workflows. Read more

Android Mirroring App ‘Scrcpy’ Improves Shortcuts, Clipboard Support

Scrcpy v1.15 picks up the ability to forward ctrl and shift keys to your handset. Why is that useful? Because it means you can now use familiar keyboard shortcuts on your device in apps that support them, e.g., ctrl + t to open a new browser tab in a browser. This nifty addition is also able to pass ctrl + c and ctrl + v to Termux, if you use it. It also supports text selection easier using shift + → and similar. With the ctrl key now in use for shortcuts Scrcpy now uses the left alt or left super key as its shortcut modifier. Don’t like this? It can be changed. Read more