Two dumb tips that could save you a lot of time.

With a given directory/path, know in which device the data is stored

Sometimes you are in a machine with different block devices. Each one mounted in different mount points like /var/log /var/lib/mysql /mnt/backups, etc, etc.... For knowing where a file is stored you just execute something like:

$ df -h                                                              
Filesystem                      Size  Used Avail Use% Mounted on  
/dev/mapper/group-volume_crypt  118G   85G   30G  75% /  
udev                             10M     0   10M   0% /dev  
tmpfs                           579M  852K  578M   1% /run  
tmpfs                           5.0M     0  5.0M   0% /run/lock  
tmpfs                           1.2G  776K  1.2G   1% /run/shm  
/dev/sda1                       232M   91M  126M  42% /boot

And then you try to match your directory with the entries. This is fucking WRONG!!!

If you want to know where the file /boot/grub/locale/ is stored just ask for that:

$ df /boot/grub/locale/                                         
Filesystem     1K-blocks  Used Available Use% Mounted on  
/dev/sda1         236876 92186    128153  42% /boot

Easy, right? You probably didn't know that one. I didn't either until I found a machine with like 12 mount points in similar paths and it was driving me crazy.

With a given IP, know which route will be used

This is another one I would loved to know years ago. When you have an IP and you want to know which route will use (or which interface, or which gateway, or which you-name-it) you probably are doing:

$ ip route  
default via dev wlan0  proto static  
default dev eth0  scope link  metric 1002 dev eth0  proto kernel  scope link  src dev wlan0  scope link  metric 1000 dev wlan0  proto kernel  scope link  src

(Because you are using the "ip" command and not the old "/sbin/route -n", right?)

Anyway, if you have 8 routes, or 10, or 100 with different masks, etc, and you want to know which route is being used... you know... you can do it by your own trying to match the correct rule. This is good for you, for your brain cells and for remembering all the networking stuff you learned and  suddenly realize you don't remember anymore. Instead of doing all this fucking calculations by yourself, what about letting the computer to do the hard job for you? Lets say you want to reach the host.

ip route get dev wlan0  src cache

And here we go!!! A beautiful line with the network interface and source IP  we would use, too. Pretty awesome and time saving, isn't it?

Extra bonus track. Sorting human-friendly-like.

When you are trying to know which file/directory is using more space you probably are executing:

$ du -shc music/*

69M     !!!  
14M     00 - Rain Storm - 15min.mp3  
849M    16bit Discography  
361M    2manydys  
48M     A.C. Newman  
340M    Air  
120M    Amon Tobin - Foley Room  
52M     Ana Tur Summer Memories.mp3  
29G    total

But this is not useful since we are trying to find the biggest file. We could use this command for sorting the output numerically:

$ du -sc music/*  | sort -n  # --numeric-sort


832500    music/ST GERMAIN - From Detroit to St Germain 2CD 1999  
868964    music/16bit Discography  
1104460    music/radio  
1288768    music/seleccion34  
1819876    music/ibiza  
1899444    music/MusicSessions  
3745492    music/joanmarti  
30337056    total

But with this one you must convert the numbers to KB/MB/GB, etc... and it's kind of annoying. We can use this other one instead and we'll sort the output using human-friendly sort:

$ du -shc music/* | sort -h    # --human-numeric-sort[...]

813M    music/ST GERMAIN - From Detroit to St Germain 2CD 1999  
849M    music/16bit Discography  
1.1G    music/radio  
1.3G    music/seleccion34  
1.8G    music/ibiza  
1.9G    music/MusicSessions  
3.6G    music/joanmarti  
29G    tota

And this is it for today. Take care.