Display Command Output or File Contents in Column Format

Are you fed up of viewing congested command output or file content on the terminal. This short article will demonstrate how to display command output or a file content in a much clear “columnated” format.

We can use the column utility to transform standard input or a file content into tabular form of multiple columns, for a much clear output.

Read Also: 12 Useful Commands For Filtering Text for Effective File Operations in Linux

To understand more clearly, we have created a following file “tecmint-authors.txt” which contains a list of top 10 authors names, number of articles written and number of comments they received on the article till now.


To demonstrate this, run the cat command below to view the tecmint-authors.txt file.

$ cat tecmint-authors.txt
Sample Output
pos|author|articles|comments
1|ravisaive|431|9785
2|aaronkili|369|7894
3|avishek|194|2349
4|cezarmatei|172|3256
5|gacanepa|165|2378
6|marintodorov|44|144
7|babin lonston|40|457
8|hannyhelal|30|367
9|gunjit kher|20|156
10|jesseafolabi|12|89

Using the column command, we can display a much clear output as follows, where the -t helps to determine the number of columns the input contains and creates a table and the -s specifies a delimiter character.

$ cat tecmint-authors.txt | column -t -s "|"
Sample Output
pos author articles comments
1 ravisaive 431 9785
2 aaronkili 369 7894
3 avishek 194 2349
4 cezarmatei 172 3256
5 gacanepa 165 2378
6 marintodorov 44 144
7 babin lonston 40 457
8 hannyhelal 30 367
9 gunjit kher 20 156
10 jesseafolabi 12 89

By default, rows are filled before columns, to fill columns before filling rows use the -x switch and to instruct column command consider empty lines (which are ignored by default), include the -e flag.

Here is another practical example, run the two commands below and see difference to further understand the magic column can do

$ mount
$ mount | column -t
Sample Output
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=4013172k,nr_inodes=1003293,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=806904k,mode=755)
/dev/sda10 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (rw,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/
....

To save the nicely formatted output in a file, use the output redirection as shown.

$ mount | column -t >mount.out

For more information, see the columns man page:

$ man column 

You might also like to read these following related articles.

  1. How to Use Awk and Regular Expressions to Filter Text or String in Files
  2. How to Find and Sort Files Based on Modification Date and Time in Linux
  3. 11 Advanced Linux ‘Grep’ Commands on Character Classes and Bracket Expressions

If you have any question, use the comment form below to write to us. You can as well share with us any useful command line tips and tricks in Linux.

Learn Difference Between “su” and “su -” Commands in Linux

In an earlier article, we have explained to you the difference between sudo and su commands in Linux. These are two important commands used to implement security in Linux, in regards to user management policy and user permissions.

The su command is used to switch to another user, in other words change user ID during a normal login session (that is why it is sometimes referred to as switch (-) user by a number of Linux users). If executed without a username, for example su -, it will login as root user by default.

A common challenge faced by new Linux users is understanding the difference between “su” and “su -“. This article will help you briefly understand the difference between “su” and “su -“ in Linux systems.

Usually, to become another user or login to other user, you can invoke the following command, then you will be prompted for the password of the user you’re switching to.

$ su tecmint
Switch Users in Linux

Switch Users in Linux


Considering the scenario in the screenshot above, it is significant to note that the user tecmint keeps the environment from user aaronkilik’s original login session, the current working directory and the path to executable files also remain the same.

As a result, when user tecmint tries to list the working directory (which is still user aaronkilik’s working directory), the error: “ls: cannot open directory .: Permission denied” is displayed.

But at the end, user tecmint can list his home directory after running cd command without any options.

Secondly, when you invoke su with a -, or -l or --login flags, it offers you a login interface similar to when you are logging on normally. All the commands below are equivalent to each other.

$ su - tecmint
OR
$ su -l tecmint
OR
$ su --login tecmint

In this case, the user tecmint is provided his own default login environment, including path to executable files; he also lands into his default home directory.

Login as Different User

Login as Different User

Importantly, when you run su without a username, you will automatically become the superuser. You will be given root’s default environment, including path to executable files changes. You will also land into root’s home directory:

$ su

Also check out: How to Show Asterisks While Typing Sudo Password in Linux

We hope you find this article informative. You can ask any questions or share your thoughts via the comment section below.

We Apologize: A Mistake With Our Third-Party Email Marketing Service

February 5th Update: We are going to temporarily move our communications back to our mail server, which uses Mailman to manage all of our internal communication. If you were previously signed up for notifications through our mailing lists, you will receive the next notification from our server, rather than from the marketing software we have been using.

====================

Greetings…

This past Thursday, February 1, 2018, our third-party email marketing provider experienced some technical difficulties. Unfortunately, this situation affected many of our community members. We sincerely apologize to everyone who received duplicate copies of any email and would like to inform you that we are currently taking steps to ensure this situation never happens again.

Our goal is to provide our mailing list subscribers with important, ongoing information that is both transparent and necessary, about our company. We fully empathize with all frustrations and have currently ceased all emails until we have an alternative solution in place.

cPanel is committed to the integrity of customer information. Other than information we routinely use to send email communications of this type, no customer information was disclosed as a result of this incident. We encourage you to explore our Privacy Policy to better understand the measures we take to protect customer data. If you continue to receive any duplicate messages from cPanel, Inc., please contact us at community@cpanel.net and we’ll address them as quickly as possible.

If you no longer wish to receive emails from cPanel, Inc., feel free to unsubscribe from future messaging. You can always opt in at a later date by heading to cPanel Mailing Lists.

Sincerely,
cPanel

How to Delete Root Mails (Mailbox) File in Linux

‘,
enableHover: false,
enableTracking: true,
buttons: { twitter: {via: ‘tecmint’}},
click: function(api, options){
api.simulateClick();
api.openPopup(‘twitter’);
}
});
jQuery(‘#facebook’).sharrre({
share: {
facebook: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
click: function(api, options){
api.simulateClick();
api.openPopup(‘facebook’);
}
});
jQuery(‘#googleplus’).sharrre({
share: {
googlePlus: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
urlCurl: ‘https://www.tecmint.com/wp-content/themes/tecmint/js/sharrre.php’,
click: function(api, options){
api.simulateClick();
api.openPopup(‘googlePlus’);
}
});
jQuery(‘#linkedin’).sharrre({
share: {
linkedin: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
buttons: {
linkedin: {
description: ‘How to Delete Root Mails (Mailbox) File in Linux’,media: ‘https://www.tecmint.com/wp-content/uploads/2018/02/Delete-Root-User-Emails-in-Linux.png’ }
},
click: function(api, options){
api.simulateClick();
api.openPopup(‘linkedin’);
}
});
// Scrollable sharrre bar, contributed by Erik Frye. Awesome!
var shareContainer = jQuery(“.sharrre-container”),
header = jQuery(‘#header’),
postEntry = jQuery(‘.entry’),
$window = jQuery(window),
distanceFromTop = 20,
startSharePosition = shareContainer.offset(),
contentBottom = postEntry.offset().top + postEntry.outerHeight(),
topOfTemplate = header.offset().top;
getTopSpacing();
shareScroll = function(){
if($window.width() > 719){ var scrollTop = $window.scrollTop() + topOfTemplate,
stopLocation = contentBottom – (shareContainer.outerHeight() + topSpacing);
if(scrollTop > stopLocation){
shareContainer.offset({top: contentBottom – shareContainer.outerHeight(),left: startSharePosition.left});
}
else if(scrollTop >= postEntry.offset().top-topSpacing){
shareContainer.offset({top: scrollTop + topSpacing, left: startSharePosition.left});
}else if(scrollTop 1024)
topSpacing = distanceFromTop + jQuery(‘.nav-wrap’).outerHeight();
else
topSpacing = distanceFromTop;
}
});
]]>

LibreOffice 6.0 Released – Install on RHEL/CentOS/Fedora and Debian/Ubuntu/Linux Mint

LibreOffice is an open source and much powerful personal productivity office suit for Linux, Windows & Mac, that provides feature rich functions for word document, data processing, spreadsheets, presentation, drawing, Calc, Math and much more. LibreOffice has large number of satisfied users across the globe with almost 120 million downloads as of now. It supports more than 110 languages and runs on all major operating systems.

The Document Foundation team proudly announced the first major release of LibreOffice 6.0 on January 31, 2018, is now available for all major platforms including Linux, Windows and Mac OS.

This new update features a large number of exciting new features, performance and improvements and is targeted to all kinds of users, but especially appealing for enterprise, early adopters and power users.

There are many other changes and features included in the newest LibreOffice 6.0 – for a complete list of new features, see the release announcement page.

LibreOffice 6.0 Requirements

  1. Kernel 2.6.18 or higher version
  2. glibc2 version 2.5 or higher version
  3. gtk version 2.10.4 or higher version
  4. Minimum 256MB and recommended 512MB RAM
  5. 1.55GB available Hard disk space
  6. Desktop (Gnome or KDE)

Install LibreOffice 6.0 on Linux


The installation instructions provided here are for LibreOffice 6.0 using language US English on a 64-Bit system. For 32-Bit systems, there will be minor differences in directory names, but the installation process is same and hope the installation instructions provide here are not so difficult.

Step 1: Downloading LibreOffice 6.0

Select the package for download based on your system bit (i.e. for a 32-bit or 64-bit) using Wget command.

For RHEL/CentOS/Fedora
# cd /tmp
---------------------------- On 32-bit Systems ---------------------------- # wget http://download.documentfoundation.org/libreoffice/stable/6.0.0/rpm/x86/LibreOffice_6.0.0_Linux_x86_rpm.tar.gz
---------------------------- On 64-bit Systems ---------------------------- # wget http://download.documentfoundation.org/libreoffice/stable/6.0.0/rpm/x86_64/LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz

Download LibreOffice 6.0 on CentOS 7

[[email protected] ~]# wget http://download.documentfoundation.org/libreoffice/stable/6.0.0/rpm/x86_64/LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz
--2018-02-01 01:11:08-- http://download.documentfoundation.org/libreoffice/stable/6.0.0/rpm/x86_64/LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz
Resolving download.documentfoundation.org (download.documentfoundation.org)... 89.238.68.185, 2a00:1828:a012:185::1
Connecting to download.documentfoundation.org (download.documentfoundation.org)|89.238.68.185|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://ftp.gwdg.de/pub/tdf/libreoffice/stable/6.0.0/rpm/x86_64/LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz [following]
--2018-02-01 01:11:09-- https://ftp.gwdg.de/pub/tdf/libreoffice/stable/6.0.0/rpm/x86_64/LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz
Resolving ftp.gwdg.de (ftp.gwdg.de)... 134.76.12.6, 2001:638:60f:110::1:2
Connecting to ftp.gwdg.de (ftp.gwdg.de)|134.76.12.6|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 213537364 (204M) [application/octet-stream]
Saving to: ‘LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz’
100%[=================================================================================================================================>] 21,35,37,364 310KB/s in 15m 35s
2018-02-01 01:26:46 (223 KB/s) - ‘LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz’ saved [213537364/213537364]
For Debian/Ubuntu/LinuxMint
---------------------------- On 32-bit Systems ---------------------------- $ wget http://download.documentfoundation.org/libreoffice/stable/6.0.0/deb/x86/LibreOffice_6.0.0_Linux_x86_deb.tar.gz
---------------------------- On 64-bit Systems ---------------------------- $ wget http://download.documentfoundation.org/libreoffice/stable/6.0.0/deb/x86_64/LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz

Download LibreOffice 6.0 on Ubuntu

tecmint ~ wget http://download.documentfoundation.org/libreoffice/stable/6.0.0/deb/x86_64/LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz
--2018-02-01 11:57:23-- http://download.documentfoundation.org/libreoffice/stable/6.0.0/deb/x86_64/LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz
Resolving download.documentfoundation.org (download.documentfoundation.org)... 89.238.68.185
Connecting to download.documentfoundation.org (download.documentfoundation.org)|89.238.68.185|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://ftp.gwdg.de/pub/tdf/libreoffice/stable/6.0.0/deb/x86_64/LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz [following]
--2018-02-01 11:57:23-- https://ftp.gwdg.de/pub/tdf/libreoffice/stable/6.0.0/deb/x86_64/LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz
Resolving ftp.gwdg.de (ftp.gwdg.de)... 134.76.12.6
Connecting to ftp.gwdg.de (ftp.gwdg.de)|134.76.12.6|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 213964181 (204M) [application/octet-stream]
Saving to: ‘LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz’
LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz 100%[========================================================================================>] 204.05M 319KB/s in 15m 17s 2018-02-01 12:12:41 (228 KB/s) - ‘LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz’ saved [213964181/213964181]

Step 2: Removing Old LibreOffice or OpenOffice Versions

If any previously installed LibreOffice or OpenOffice versions you have, remove it using following command.

# yum remove openoffice* libreoffice* [on RedHat based Systems]
Remove Old LibreOffice 4 on CentOS

Remove Old LibreOffice 4 on CentOS

$ sudo apt-get remove openoffice* libreoffice* [On Debian based Systems]
Remove LibreOffice 4 on Ubuntu

Remove LibreOffice 4 on Ubuntu

Step 3: Extracting LibreOffice 6.0 Package

After downloading the LibreOffice 6.0 package, use tar command to extract it under /tmp directory or in a directory of your choice.

On RHEL/CentOS/Fedora
# tar -xvf LibreOffice_6.0.0_Linux_x86_rpm.tar.gz [On 32-Bit Systems] # tar -xvf LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz [On 64-Bit Systems] 
On Debian/Ubuntu/Linux Mint
$ tar -xvf LibreOffice_6.0.0_Linux_x86_deb.tar.gz [On 32-Bit Systems] $ tar -xvf LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz [On 64-Bit Systems] 

Step 4: Installing LibreOffice 6.0 Package

After extracting the package, you will get a directory and under this there will be a sub-directory called RPMS. Now, run the following command to install it.

On RHEL/CentOS/Fedora
## For 32 Bit OS ##
# cd /tmp/LibreOffice_6.0.0.3_Linux_x86_rpm/RPMS/
# yum localinstall *.rpm
OR
# dnf install *.rpm [On Fedora 23+ versions]
## For 64 Bit OS ##
# cd /tmp/LibreOffice_6.0.0.3_Linux_x86-64_rpm/RPMS/
# yum localinstall *.rpm
OR
# dnf install *.rpm [On Fedora 23+ versions]

Installing LibreOffice 6.0 on CentOS 7

[[email protected] RPMS]# yum localinstall *.rpm
Dependencies Resolved
============================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================
Installing:
libobasis6.0-base x86_64 6.0.0.3-3 /libobasis6.0-base-6.0.0.3-3.x86_64 7.6 M
libobasis6.0-calc x86_64 6.0.0.3-3 /libobasis6.0-calc-6.0.0.3-3.x86_64 29 M
libobasis6.0-core x86_64 6.0.0.3-3 /libobasis6.0-core-6.0.0.3-3.x86_64 267 M
libobasis6.0-draw x86_64 6.0.0.3-3 /libobasis6.0-draw-6.0.0.3-3.x86_64 48 k
libobasis6.0-en-US x86_64 6.0.0.3-3 /libobasis6.0-en-US-6.0.0.3-3.x86_64 164 k
libobasis6.0-extension-beanshell-script-provider x86_64 6.0.0.3-3 /libobasis6.0-extension-beanshell-script-provider-6.0.0.3-3.x86_64 398 k
libobasis6.0-extension-javascript-script-provider x86_64 6.0.0.3-3 /libobasis6.0-extension-javascript-script-provider-6.0.0.3-3.x86_64 626 k
libobasis6.0-extension-mediawiki-publisher x86_64 6.0.0.3-3 /libobasis6.0-extension-mediawiki-publisher-6.0.0.3-3.x86_64 4.3 M
libobasis6.0-extension-nlpsolver x86_64 6.0.0.3-3 /libobasis6.0-extension-nlpsolver-6.0.0.3-3.x86_64 2.1 M
libobasis6.0-extension-pdf-import x86_64 6.0.0.3-3 /libobasis6.0-extension-pdf-import-6.0.0.3-3.x86_64 2.2 M
libobasis6.0-extension-report-builder x86_64 6.0.0.3-3 /libobasis6.0-extension-report-builder-6.0.0.3-3.x86_64 6.0 M
libobasis6.0-firebird x86_64 6.0.0.3-3 /libobasis6.0-firebird-6.0.0.3-3.x86_64 11 M
libobasis6.0-gnome-integration x86_64 6.0.0.3-3 /libobasis6.0-gnome-integration-6.0.0.3-3.x86_64 1.2 M
libobasis6.0-graphicfilter x86_64 6.0.0.3-3 /libobasis6.0-graphicfilter-6.0.0.3-3.x86_64 4.2 M
libobasis6.0-images x86_64 6.0.0.3-3 /libobasis6.0-images-6.0.0.3-3.x86_64 18 M
libobasis6.0-impress x86_64 6.0.0.3-3 /libobasis6.0-impress-6.0.0.3-3.x86_64 2.2 M
libobasis6.0-kde-integration x86_64 6.0.0.3-3 /libobasis6.0-kde-integration-6.0.0.3-3.x86_64 238 k
libobasis6.0-librelogo x86_64 6.0.0.3-3 /libobasis6.0-librelogo-6.0.0.3-3.x86_64 741 k
libobasis6.0-math x86_64 6.0.0.3-3 /libobasis6.0-math-6.0.0.3-3.x86_64 1.6 M
libobasis6.0-ogltrans x86_64 6.0.0.3-3 /libobasis6.0-ogltrans-6.0.0.3-3.x86_64 298 k
libobasis6.0-onlineupdate x86_64 6.0.0.3-3 /libobasis6.0-onlineupdate-6.0.0.3-3.x86_64 433 k
libobasis6.0-ooofonts x86_64 6.0.0.3-3 /libobasis6.0-ooofonts-6.0.0.3-3.x86_64 67 M
libobasis6.0-ooolinguistic x86_64 6.0.0.3-3 /libobasis6.0-ooolinguistic-6.0.0.3-3.x86_64 1.4 k
libobasis6.0-postgresql-sdbc x86_64 6.0.0.3-3 /libobasis6.0-postgresql-sdbc-6.0.0.3-3.x86_64 3.5 M
libobasis6.0-python-script-provider x86_64 6.0.0.3-3 /libobasis6.0-python-script-provider-6.0.0.3-3.x86_64 41 k
libobasis6.0-pyuno x86_64 6.0.0.3-3 /libobasis6.0-pyuno-6.0.0.3-3.x86_64 22 M
libobasis6.0-writer x86_64 6.0.0.3-3 /libobasis6.0-writer-6.0.0.3-3.x86_64 16 M
libobasis6.0-xsltfilter x86_64 6.0.0.3-3 /libobasis6.0-xsltfilter-6.0.0.3-3.x86_64 4.3 M
libreoffice6.0 x86_64 6.0.0.3-3 /libreoffice6.0-6.0.0.3-3.x86_64 4.5 M
libreoffice6.0-base x86_64 6.0.0.3-3 /libreoffice6.0-base-6.0.0.3-3.x86_64 63 libreoffice6.0-calc x86_64 6.0.0.3-3 /libreoffice6.0-calc-6.0.0.3-3.x86_64 63 libreoffice6.0-dict-en x86_64 6.0.0.3-3 /libreoffice6.0-dict-en-6.0.0.3-3.x86_64 24 M
libreoffice6.0-dict-es x86_64 6.0.0.3-3 /libreoffice6.0-dict-es-6.0.0.3-3.x86_64 4.1 M
libreoffice6.0-dict-fr x86_64 6.0.0.3-3 /libreoffice6.0-dict-fr-6.0.0.3-3.x86_64 6.4 M
libreoffice6.0-draw x86_64 6.0.0.3-3 /libreoffice6.0-draw-6.0.0.3-3.x86_64 63 libreoffice6.0-en-US x86_64 6.0.0.3-3 /libreoffice6.0-en-US-6.0.0.3-3.x86_64 16 k
libreoffice6.0-freedesktop-menus noarch 6.0.0-3 /libreoffice6.0-freedesktop-menus-6.0.0-3.noarch 30 M
libreoffice6.0-impress x86_64 6.0.0.3-3 /libreoffice6.0-impress-6.0.0.3-3.x86_64 66 libreoffice6.0-math x86_64 6.0.0.3-3 /libreoffice6.0-math-6.0.0.3-3.x86_64 63 libreoffice6.0-ure x86_64 6.0.0.3-3 /libreoffice6.0-ure-6.0.0.3-3.x86_64 38 M
libreoffice6.0-writer x86_64 6.0.0.3-3 /libreoffice6.0-writer-6.0.0.3-3.x86_64 65 Transaction Summary
============================================================================================================================================================================
Install 41 Packages
Total size: 579 M
Installed size: 579 M
Is this ok [y/d/N]: y
On Debian/Ubuntu/Linux Mint
## For 32 Bit OS ##
$ cd /tmp/LibreOffice_6.0.0.3_Linux_x86_deb/DEBS/
$ sudo dpkg -i *.deb
## For 64 Bit OS ##
$ cd /tmp/LibreOffice_6.0.0.3_Linux_x86-64_deb/DEBS/
$ sudo dpkg -i *.deb

Installing LibreOffice 6.0 on Ubuntu

[email protected] /tmp/LibreOffice_6.0.0.3_Linux_x86-64_deb/DEBS $ sudo dpkg -i *.deb
Selecting previously unselected package libobasis6.0-base.
(Reading database ... 263169 files and directories currently installed.)
Preparing to unpack libobasis6.0-base_6.0.0.3-3_amd64.deb ...
Unpacking libobasis6.0-base (6.0.0.3-3) ...
Selecting previously unselected package libobasis6.0-calc.
Preparing to unpack libobasis6.0-calc_6.0.0.3-3_amd64.deb ...
Unpacking libobasis6.0-calc (6.0.0.3-3) ...
Selecting previously unselected package libobasis6.0-core.
Preparing to unpack libobasis6.0-core_6.0.0.3-3_amd64.deb ...
Unpacking libobasis6.0-core (6.0.0.3-3) ...
...

Step 5: Starting LibreOffice 6.0

Once the installation process completes you will have LibreOffice icons in your desktop under Applications –> Office menu or start the application by executing the following command on the terminal.

# libreoffice6.0

Step 6: Screenshot of LibreOffice 6.0

Please see the attached screenshot of LibreOffice 6.0 application under my CentOS 7.0.

LibreOffice 6.0 Running on CentOS 7

LibreOffice 6.0 Running on CentOS 7

Step 7: Installing a Language Pack

If you would like to install LibreOffice in your preferred language, you should select your language pack for installation. The installation instructions can be fount at Language Pack section.

Enable Debugging Mode in SSH to Troubleshoot Connectivity Issues

In this article, we will show you how to turn on debugging mode while running SSH in Linux. This will enable you to see what actually unfolds when you execute an ssh command to connect to a remote Linux server using the verbose mode or debugging mode.

Read Also: 4 Ways to Speed Up SSH Connections in Linux

The ssh client’s -v switch allows you to run ssh in verbose mode, that prints debugging information about SSH connection progress, which is really useful for debugging connections, authentication, and any configuration problems. There are different levels of verbosity; using multiple -v flags increases the verbosity (maximum verbosity level is 3).

The following command will run SSH in first level of verbosity, which gives us lots of debugging information as shown.

[email protected] ~ $ ssh -v [email protected]
Sample Output
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g-fips 1 Mar 2016
debug1: Reading configuration data /home/aaronkilik/.ssh/config
debug1: /home/aaronkilik/.ssh/config line 18: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.56.10 [192.168.56.10] port 22.
debug1: Connection established.
debug1: identity file /home/aaronkilik/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4
debug1: match: OpenSSH_7.4 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 192.168.56.10:22 as 'tecmint'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: compression: [email protected]
debug1: kex: client->server cipher: [email protected] MAC: compression: [email protected]
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:1778erqyug4tHJa7D6y/Ep4UWsUtNEOBSMaj32k9oO8
debug1: Host '192.168.56.10' is known and matches the ECDSA host key.
debug1: Found key in /home/aaronkilik/.ssh/known_hosts:8
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/aaronkilik/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug1: Enabling compression at level 6.
debug1: Authentication succeeded (publickey).
Authenticated to 192.168.56.10 ([192.168.56.10]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug1: Sending environment.
debug1: Sending env LC_PAPER = lg_UG.UTF-8
debug1: Sending env LC_ADDRESS = lg_UG.UTF-8
debug1: Sending env LC_MONETARY = lg_UG.UTF-8
debug1: Sending env LC_NUMERIC = lg_UG.UTF-8
debug1: Sending env LC_TELEPHONE = lg_UG.UTF-8
debug1: Sending env LC_IDENTIFICATION = lg_UG.UTF-8
debug1: Sending env LANG = en_US.UTF-8
debug1: Sending env LC_MEASUREMENT = lg_UG.UTF-8
debug1: Sending env LC_NAME = lg_UG.UTF-8
Last login: Sat Jan 6 16:20:11 2018 from 192.168.56.1

When try to logout or exit the session, you will also see debugging messages as shown.

[[email protected] ~]$ exit
logout
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to 192.168.56.10 closed.
Transferred: sent 3392, received 3120 bytes, in 118.1 seconds
Bytes per second: sent 28.7, received 26.4
debug1: Exit status 0
debug1: compress outgoing: raw data 1159, compressed 573, factor 0.49
debug1: compress incoming: raw data 573, compressed 1159, factor 2.02

Next, you can enable additional (level 2 and 3) verbosity for even more debugging messages as shown.

$ ssh -vv [email protected]
$ ssh -vvv [email protected]

That’s It! For more usage of SSH, read these following related articles.

  1. How to Find All Failed SSH login Attempts in Linux
  2. How to Disable SSH Root Login in Linux
  3. SSH Passwordless Login Using SSH Keygen in 5 Easy Steps
  4. How to Disconnect Inactive or Idle SSH Connections in Linux

We hope you find this article helpful. You can ask any questions or share thoughts via the comment form below.

Become a Professional Python Programmer

‘,
enableHover: false,
enableTracking: true,
buttons: { twitter: {via: ‘tecmint’}},
click: function(api, options){
api.simulateClick();
api.openPopup(‘twitter’);
}
});
jQuery(‘#facebook’).sharrre({
share: {
facebook: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
click: function(api, options){
api.simulateClick();
api.openPopup(‘facebook’);
}
});
jQuery(‘#googleplus’).sharrre({
share: {
googlePlus: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
urlCurl: ‘https://www.tecmint.com/wp-content/themes/tecmint/js/sharrre.php’,
click: function(api, options){
api.simulateClick();
api.openPopup(‘googlePlus’);
}
});
jQuery(‘#linkedin’).sharrre({
share: {
linkedin: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
buttons: {
linkedin: {
description: ‘Become a Professional Python Programmer’,media: ‘https://www.tecmint.com/wp-content/uploads/2018/01/Professional-Python-Programming.jpg’ }
},
click: function(api, options){
api.simulateClick();
api.openPopup(‘linkedin’);
}
});
// Scrollable sharrre bar, contributed by Erik Frye. Awesome!
var shareContainer = jQuery(“.sharrre-container”),
header = jQuery(‘#header’),
postEntry = jQuery(‘.entry’),
$window = jQuery(window),
distanceFromTop = 20,
startSharePosition = shareContainer.offset(),
contentBottom = postEntry.offset().top + postEntry.outerHeight(),
topOfTemplate = header.offset().top;
getTopSpacing();
shareScroll = function(){
if($window.width() > 719){ var scrollTop = $window.scrollTop() + topOfTemplate,
stopLocation = contentBottom – (shareContainer.outerHeight() + topSpacing);
if(scrollTop > stopLocation){
shareContainer.offset({top: contentBottom – shareContainer.outerHeight(),left: startSharePosition.left});
}
else if(scrollTop >= postEntry.offset().top-topSpacing){
shareContainer.offset({top: scrollTop + topSpacing, left: startSharePosition.left});
}else if(scrollTop 1024)
topSpacing = distanceFromTop + jQuery(‘.nav-wrap’).outerHeight();
else
topSpacing = distanceFromTop;
}
});
]]>

6 Online Tools for Generating and Testing Cron Jobs for Linux

As a Linux system administrator, you can perform time-based scheduling of jobs/tasks using online cron job services or Cron, a powerful utility available in Unix/Linux systems.

In Linux, cron runs as a daemon and can be used to schedule tasks such as commands or shell scripts to perform various kinds of backups, system updates and much more, that run periodically and automatically in the background at specific times, dates, or intervals.

Scheduling a cronjob with the correct syntax can be confusing sometimes, wrong expressions can cause cronjobs to fail or not even run at all. In this article, we will list 6 useful online (web based) utilities for creating and testing cronjob scheduling syntax in Linux.

1. Crontab Generator

Crontab Generator is a useful online utility for generating a crontab entry to help schedule a job. It offers a simple, descriptive generator that can help you to produce a crontab syntax that you can copy and paste to your crontab file.

Crontab Generator

Crontab Generator

2. Cron Maker


Cron Maker is a web based utility which helps you to build cron expressions; it employs the Quartz open source library and all expressions are based on Quartz cron format. It also enables you to view next scheduled dates (simply enter a cronjob expression and calculate the next dates).

Cron Maker

Cron Maker

3. Crontab GUI

Crontab GUI is a great and the original online crontab editor. It works well (fully optimized) on mobile devices (you can generate cron syntax on your smart phone or tablet PC’s web browser).

Crontab GUI Tool

Crontab GUI Tool

4. CRON Tester

CRON Tester is a useful cron tester that allows you to test your cron time definitions. All you need to do is copy and paste your cron syntax in the cron definition field, then choose the number of iterations and click on “Test” to see the various dates on which it will run.

Cron Tester

Cron Tester

5. Crontab Guru

Crontab Guru is a simple online cron schedule expression editor. In addition, it provides a useful means of monitoring your cronjob. All you need to do is copy a command snippet provided and append at the end of the crontab definition. In case your cron job fails or doesn’t even start, you will receive an alert email.

Crontab Guru

Crontab Guru

6. Easycron

Easycron is a great web based cron scheduler for corntab.com cron editor. You can create a cron job by specifying a “URL to call”, set when it should be executed, specify a cron expression or add it manually from a descriptive form. Importantly, you can optionally use basic HTTP authentication for a small layer of security.

EasyCron

EasyCron

You might also like to read these following related articles on Cron scheduler utility.

  1. 11 Cron Job Scheduling Examples in Linux
  2. Cron Vs Anacron: How to Schedule Jobs Using Anacron on Linux
  3. How to Run PHP Script as Normal User with Cron

That’s all! If you know of any other useful web based cronjob expression generator or testers missing in the list above, let us know via the comment section below.

cPanel | 2017 At-a-Glance

Each year, amazing, inventive, and needless to say, eventful things happen behind the walls of cPanel, Inc — and 2017 was no different. We’ve had more than a few milestones and moments over the past 12 months. Here are a just a few of the ones we felt were worth sharing….

cPanel & WHM v62

We optimized the email account creation process, made improvements to page load times, and enhanced MySQL backups.

Elastic Sites Fireside Chat

We teamed up with our friends at CloudLinux and Patchman
for a webinar on Elastic Sites.

WHD.Global

The biggest industry event of the year happens in Rust, Germany and once again our team jetted across the Atlantic to spend time with our customers and partners at WHD.Global.

cPanel & WHM v64

We introduced the cPanel Light and Dark styles and also made it possible for you to purchase Extended Validation (EV) certificates through the SSL/TLS Wizard.

cPanel Gets Fit

In April, the cPanel HQ opened its first employee-exclusive gym on site. While the state of the art facility may not necessarily deter us from having second helpings at lunch, it’s good to know we have the option to undo some of the damage of our daily catered lunches.

GoDaddy Tech Fest

We hopped over to Phoenix, Arizona to sponsor and exhibit at GoDaddy Techfest.

Battle for the Net: Net Neutrality

On July 11, we banded together with GitHub, Vimeo, Reddit, and a slew of other companies in the battle to maintain net neutrality and a truly open internet.

cPanel & WHM v66

This release gave way to the Application Manager and the ability to backup your information to remote servers incrementally.

Solar Eclipse

We took a break from our terminal windows and gathered as a team to take a gander at our tiny little moon upstaging the Sun.

Hurricane Harvey

After being pummeled by one of the greatest natural disasters to make landfall in the US, the cPanel team weathered it out and raised $21,850.16 money for the Hurricane Harvey relief effort.

20 Years of cPanel

This year we celebrated 20 years of cPanel at our annual conference and had the pleasure of hanging out with some of our favorite customers in sunny South Florida.

Transparency Report

In a commitment to best protect the confidentiality and trust of our customers around the globe, we released our first comprehensive law enforcement transparency report.

We Love Our Customers

On this day we randomly felt the urge to let our customers know how much we appreciated them.

cPanel & WHM v68

We made AutoSSL faster than ever before and gave site owners the ability to restore individual files from backups.

I Saw the Sign

We don’t necessarily try to keep a low profile and certainly not after we erected our impressive logo atop our Houston HQ.

Battle for the Net, the Sequel

In the second week of December, we once again teamed up with internet companies around the world in the Battle for the Net…. Despite FCC rulings, we’re happy to inform you that we’re still in the battle.

We survived a natural disaster, got in better shape, battled for the internet and still managed to release four new iterations of cPanel & WHM. All in all, we’d say it was a pretty successful year.

And if 2018 happens to throw even more our way, we’ll gladly take it on because we do it for you — our customer.

Thank you for making us your hosting platform of choice.

How to Use Continuous Release (CR) Repository in CentOS

‘,
enableHover: false,
enableTracking: true,
buttons: { twitter: {via: ‘tecmint’}},
click: function(api, options){
api.simulateClick();
api.openPopup(‘twitter’);
}
});
jQuery(‘#facebook’).sharrre({
share: {
facebook: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
click: function(api, options){
api.simulateClick();
api.openPopup(‘facebook’);
}
});
jQuery(‘#googleplus’).sharrre({
share: {
googlePlus: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
urlCurl: ‘https://www.tecmint.com/wp-content/themes/tecmint/js/sharrre.php’,
click: function(api, options){
api.simulateClick();
api.openPopup(‘googlePlus’);
}
});
jQuery(‘#linkedin’).sharrre({
share: {
linkedin: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
buttons: {
linkedin: {
description: ‘How to Use Continuous Release (CR) Repository in CentOS’,media: ‘https://www.tecmint.com/wp-content/uploads/2018/01/Enable-CentOS-CR-Repository.png’ }
},
click: function(api, options){
api.simulateClick();
api.openPopup(‘linkedin’);
}
});
// Scrollable sharrre bar, contributed by Erik Frye. Awesome!
var shareContainer = jQuery(“.sharrre-container”),
header = jQuery(‘#header’),
postEntry = jQuery(‘.entry’),
$window = jQuery(window),
distanceFromTop = 20,
startSharePosition = shareContainer.offset(),
contentBottom = postEntry.offset().top + postEntry.outerHeight(),
topOfTemplate = header.offset().top;
getTopSpacing();
shareScroll = function(){
if($window.width() > 719){ var scrollTop = $window.scrollTop() + topOfTemplate,
stopLocation = contentBottom – (shareContainer.outerHeight() + topSpacing);
if(scrollTop > stopLocation){
shareContainer.offset({top: contentBottom – shareContainer.outerHeight(),left: startSharePosition.left});
}
else if(scrollTop >= postEntry.offset().top-topSpacing){
shareContainer.offset({top: scrollTop + topSpacing, left: startSharePosition.left});
}else if(scrollTop 1024)
topSpacing = distanceFromTop + jQuery(‘.nav-wrap’).outerHeight();
else
topSpacing = distanceFromTop;
}
});
]]>