Author Archives: kenno

Remove trailing whitespace with VIM

Here’s a quick tip on how to get rid of unwated trailing whitespace using vim.

Let’s say, I have the following code:

Open that file with vim. The following command deletes any trailing whitespaces.


Here’s the screenshot of the text after removing the whitespace:

In search, \s finds whitespace (a space or tab). \+ finds one or more occurences. $ matches the end of line, finally e flag means no error is displayed.

Ref: Remove unwanted spaces (warning: this reference page contains lots of ads, probably avoid opening it on a mobile device.)

RHCSA’s Prep

At the end of last year, I took a training to prepare for Red Hat Certified System Administrator (RHCSA EX200) exam. Now it’s February and I haven’t taken the exam yet. Even worse, I forgot most of the things I learned during that 3 day training. Well, since I’m being chased to get this exam done ASAP, with a passing grade of course, I think now it’s the best time to start revising the material again. As part as the exam prep, I’m going to post small challenges and solutions.

I found a task of the day posted on CertDepot website, a very good resource to learn about Red Hat exam. So, let’s see if can I even do that. Here is the challenge:

Allowed time: 5 minutes.
Create a new user account called “bob” with password “redhat” and set expiration in one week.

My solution:

# man useradd
# useradd -e 2017-02-26 bob
# passwd bob

Time taken: 2 minutes 26 seconds.

I must admit the solution is not the most elegant, as I had to manually calculate 7th day’s date from today (2017-02-19).

Here’s another alternative solution according to this:

# useradd -e `date -d "7 days" +"%Y-%m-%d"` bob
# passwd bob

Another way to set the account expiry date is using chage.

# chage -E `date -d "7 days" +"%Y-%m-%d` bob
# chage -l bob
Last password change					: Feb 19, 2017
Password expires					: May 20, 2017
Password inactive					: never
Account expires						: Feb 26, 2017
Minimum number of days between password change		: 0
Maximum number of days between password change		: 90
Number of days of warning before password expires	: 7

How to toggle between buffers in Vim with vim-airline

First if you haven’t yet heard about vim-airline plugin, and you’re a Vim user, you owe it to yourself to check it out.

By default vim-airline displays the opening buffers on the top part of the window.

So how to navigate between those buffers? Well, according to this, it seems those buffers are for visual only. To navigate between them, we can use :bp for previous buffer, and :bn for next buffer. Alternatively, we can use :ls to list all buffers, then navigate to a particular buffer by running :number (substitute number with an actual number).

However, if you know any better or more elegant ways to switch between the opening buffers, please do share!

Changing a User’s Password on FreeBSD

Before getting into how to change a user’s password on FreeBSD, let’s have a quick revision on how that can be done on a Linux system.

As a user we can change the password by typing:

$ passwd
Changing password for user kenno.
Changing password for kenno.
Current password: 

Or with a root account, we can change/set the password for another user:

# passwd kenno
Changing password for user kenno.
New password: 

How about a FreeBSD? It should be the same way as how it’s done on Linux right? Right? Well, not quite.

On a FreeBSD system, in addition to run the passwd command, we also need to generate the password databases to be “in sync” with the plain text files.

# pwd_mkdb /etc/master.passwd

You can learn more about both passwd and pwd_mkdb, by running:

$ man passwd
$ man pwd_mkdb

Ref: Can’t change user password

FreeBSD 11 Blank Screen After Login via SLiM

After rebooting my FreeBSD 11.0, I wasn’t able to login to Mate desktop manager via SLiM (Login Manager).
I spent sometimes to try to fix it, but failed. I’ll try it again later when I have a bit of free time.

Here’s a quick note of a work around, so I won’t forget what I’ve done.

1) Disable loading slim on start up by editing /etc/rc.conf and commented out the following line:


2) Run this command manually to start mate-session:

$ xinit mate-session

So, it appears SLiM is the culprit here since Mate-session can be started up manually.