Commands by postrational (5)

  • Use this BASH trick to create a variable containing the TAB character and pass it as the argument to sort, join, cut and other commands which don't understand the \t notation. sort -t $'\t' ... join -t $'\t' ... cut -d $'\t' ... Show Sample Output

    sort -t $'\t' -k 2 input.txt
    postrational · 2010-07-11 12:58:51 0
  • There is a common command for outputting a field or list of fields from each line in a file. Why wouldn't you just use cut?

    cut -f 1 three-column.txt > first-column.txt
    postrational · 2010-07-11 10:13:45 1
  • Performs a reverse DNS lookup, variants include: nslookup or: host Show Sample Output

    dig -x
    postrational · 2009-09-28 15:13:34 0
  • Date-time format: YYYY-MM-DD HH:MM:SS Show Sample Output

    export HISTTIMEFORMAT='%F %T '
    postrational · 2009-09-26 17:13:23 0
  • Checks the Gmail ATOM feed for your account, parses it and outputs a list of unread messages. For some reason sed gets stuck on OS X, so here's a Perl version for the Mac: curl -u username:password --silent "" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | perl -pe 's/^<title>(.*)<\/title>.*<name>(.*)<\/name>.*$/$2 - $1/' If you want to see the name of the last person, who added a message to the conversation, change the greediness of the operators like this: curl -u username:password --silent "" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | perl -pe 's/^<title>(.*)<\/title>.*?<name>(.*?)<\/name>.*$/$2 - $1/' Show Sample Output

    curl -u username:password --silent "" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n "s/<title>\(.*\)<\/title.*name>\(.*\)<\/name>.*/\2 - \1/p"
    postrational · 2009-09-07 21:56:40 6

What's this? is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands

Check These Out

Collect a lot of icons from /usr/share/icons (may overwrite some, and complain a bit)
Today I needed to choose an icon for an app. My simpler way: put all of /usr/share/icons in myicons folder and brows'em with nautilus. Then rm -r 'ed the entire dir.

Server load and process monitoring
In certain cases you mighy need to monitor the server load caused by certain process. For example HTTP, while stress testing apache using ab (apache benchmark) you may want to monitor the server status,load, # of spawned HTTP processes, # of established connections, # of connections in close wait state, apache memory footprint etc.

View the current number of free/used inodes in a file system
tune2fs also provides the same information . But the information does not give the current usage , it gives the information when the file system was last mounted.

Get the size of all the directories in current directory

Manually Pause/Unpause Firefox Process with POSIX-Signals
Continue with: $killall -CONT -m firefox Suspends all Firefox Threads. Results in Zero CPU load. Useful when having 100+ Tabs open and you temporarily need the power elsewhere. Be careful - might produce RACE CONDITIONS or LOCKUPS in other processes or FF itself. matching is case sensitive.

Kill any process with one command using program name
See also: killall

A function to find the newest file of a set.
Usage example: $newest Desktop/* Replace "-nt" with "-ot" for oldest. Run $shopt -s dotglob first to include dotfiles.

list block devices
Shows all block devices in a tree with descruptions of what they are.

Get the current svn branch/tag (Good for PS1/PROMPT_COMMAND cases)
uses just one sed

Check if a command is available in your system
Usefull to detect if a commad that your script relies upon is properly installed in your box, you can use it as a function function is_program_installed() { type "$1" >/dev/null } Invoke it and check the execution code is_program_installed "dialog" if [ ! $? -eq 0 ]; then echo "dialog is not installed" exit 1 fi

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.


Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: