Unix Tip: Make ‘less’ more friendly

February 11, 2011

You probably know about less: it is a standard tool that allows scrolling up and down in documents that do not fit on a single screen. Less has a very handy feature, which can be turned on by invoking it with the -i flag. This causes less to ignore case when searching. For example, ‘udf’ will find ‘udf’, ‘UDF’, ‘UdF’, and any other combination of upper-case and lower-case. If you’re used to searching in a web browser, this is probably what you want. But less is even more clever than that. If your search pattern contains upper-case letters, the ignore-case feature will be disabled. So if you’re looking for ‘QXml’, you will not be bothered by matches for the lower-case ‘qxml’. (This is equivalent to ignorecase + smartcase in vim.)

So how do we take this useful feature and make it permanent, so that we don’t have to remember to type less -i every time? We could create an alias less='less -i'. But there are tools (such as git-log) that invoke less on their own, and they will not know about the ignore-case option. It would be better if we could tell less that we always want that feature on, regardless of startup flags. This article will teach you how to do that.

Read the rest of this entry »


pv: Progress Bar for md5sum et al.

February 4, 2009

Tools that know they will take a long time often come with a built-in progress indicator, but there are other utilities on Linux that often leave the user frustratedly tapping their fingers, wondering how much longer they will have to wait.

Luckily, there is a nifty little tool called pv that will donate a progress bar to any program that can read from standard input or a pipe. pv probably stands for pipe viewer.

1. Simple example: figure out how long an md5sum will take:

pv eternal.avi |md5sum

will display something like

96.5MB 0:00:05 [25.3MB/s] [=======>                                    ]  9% ETA 0:00:48

Read the rest of this entry »


HOWTO: Read Vista-burnt UDF DVDs on Ubuntu Linux

June 14, 2008

Recently I got my hands on a DVD which I couldn’t get to mount. The message that appeared consistently in dmesg was:

UDF-fs: No fileset found

Searching the forums I found out that this is a widespread problem. Vista uses some kind of non-standard UDF which only Windows can read. I was very tempted to run to the Windows PC in the other room and let it eat the disc, but I was curious if there was any other solution.

Many suggested mounting manually with -t udf, but that didn’t work. Another suggestion was patching and recompiling the kernel. I was obviously NOT in the mood to do that. Digging a bit deeper I found that there is actually a less greasy solution. The two relevant links are one and two. I will describe now the exact procedure I used to get my Linux box to recognize the Vista-burnt DVD. Note that, because of the rapidly changing environment, this will probably NOT work on anything OTHER than *Ubuntu Hardy with kernel version 2.6.24.

Read the rest of this entry »


Shortcut: Delete an Entire Word

May 27, 2008

Before I began using VIM I didn’t care much that my typing habits were very inefficient, but now I’m looking everywhere for possible optimizations

There are two simple shortcuts that work on KDE, Gnome and (AFAIK) even Windows, and that will probably become second nature once you start using them. Perhaps they are regarded as common knowledge, but I’ve only stumbled across them this year.

Ctrl+Backspace deletes the last word.

Ctrl+Delete deletes the next word.

And of course Ctrl+W in bash (as in VIM) is very useful when the length of your command gets out of control.


How Linux Handles Summer Time

April 3, 2008

Daylight Saving Time is a controversial policy, but if you live in a region where it’s used, there’s not much you can do about it.

Linux adjusts the clock automatically, using zoneinfo. You can find out when these changes happened / are scheduled to happen using the zdump tool:

zdump -v Europe/Chisinau

The argument should be a path relative to /usr/share/zoneinfo/. A quick hint that you got it wrong is if you only get four entries (for the limits of time ;) ), 1901 and 2038 here, for instance.

P.S. If you have other operating systems on your machine, you should only allow one of them to change the time, otherwise you’ll get your clock shifted by more than one hour.