What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again.

Delete that bloated snippets file you've been using and share your personal repository with the world. 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.

Get involved!

You can sign-in using OpenID credentials, or register a traditional username and password.

First-time OpenID users will be automatically assigned a username which can be changed after signing in.

UpGuard checks and validates configurations for every major OS, network device, and cloud provider.

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.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

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:



May 19, 2015 - A Look At The New Commandlinefu
I've put together a short writeup on what kind of newness you can expect from the next iteration of clfu. Check it out here.
March 2, 2015 - New Management
I'm Jon, I'll be maintaining and improving clfu. Thanks to David for building such a great resource!

Top Tags



Commands tagged man from sorted by
Terminal - Commands tagged man - 34 results
alias bman='man --html=x-www-browser'
2016-10-23 17:59:47
User: lordtoran
Functions: alias
Tags: man groff

An easy alias for opening a manpage, nicely HTML formatted, in your set internet browser.

If you get a "command exited with status 3" error you need to install groff.

rtfm() { help $@ || man $@ || xdg-open "http://www.google.com/search?q=$@"; }
2014-04-25 04:17:03
User: KlfJoat
Functions: man

Same as the other rtfm's, but using the more correct xdg-open instead of $BROWSER.

I can't find a way to open info only if the term exists, so it stays out of my version.

2013-10-09 08:40:06
User: knoppix5
Tags: man search

Will highlight search term i.e. "foo" across entire man page (scroll up or down to see)


That is how to find things ;)


(slash+empty string+Enter) will jump to the next occurence of previous searched item.

alias man='man -S 2:3:1'
MANWIDTH=70 man 7 man
2012-01-13 19:42:30
User: escondida
Functions: man
Tags: man bashrc

Typographically speaking, it's generally the [accepted wisdom][1] that about 60 characters per line makes for optimal reading (would that more Web pages followed this convention!). I know I got tired of reading manpages with text as wide as my screen! However, the command above sets manwidth to 70 rather than 60 because paragraphs in manpages are generally indented.

I recommend the following snippet for your .${SHELL}rc, which sets manwidth to 70 unless your terminal is smaller than 70 characters:

function man () {

if [[ $COLUMNS -gt 70 ]]; then

MANWIDTH=70 command man $*


command man $*



[1]: https://en.wikipedia.org/wiki/Column_(typography)

echo "export LESS_TERMCAP_mb=$'\E[01;31m'" >> ~/.bashrc
2011-10-20 17:34:14
User: totti
Functions: echo
Tags: man less color

Add the followin to ~/.bashrc


export LESS_TERMCAP_mb=$'\E[01;31m'

export LESS_TERMCAP_md=$'\E[01;37m'

export LESS_TERMCAP_me=$'\E[0m'

export LESS_TERMCAP_se=$'\E[0m'

export LESS_TERMCAP_so=$'\E[01;44;33m'

export LESS_TERMCAP_ue=$'\E[0m'

export LESS_TERMCAP_us=$'\E[01;32m'

man <command> then type h
2011-10-16 09:49:56
User: stanix
Functions: man type

Read all chapters up to 'Jumping', improve your effectiveness of wirking in terminal.

Most useful are the Moving and Searching commands

zcat /usr/share/man/man1/man.1.gz | nroff -man | less
2011-09-07 01:13:57
User: atoponce
Functions: zcat
Tags: man less zcat nroff

As odd as this may be, I know of servers where the man(1) command is not installed, and there is not enough room on / to install it. However, zcat(1), nroff(1) and less(1) are. This is a way to read those documents without the proper tool to do so, as sad as this may seem. :)

manswitch() { man $1 | grep -A5 "^ *\-$2"; }
2011-08-19 08:36:54
User: totti
Functions: grep man
Tags: man grep switch

Find the usage of a switch with out searching through the entire man page.

Usage: manswitch [cmd] [switch]


manswitch grep silent


In simple words

man <cmd> | grep "\-<switch>"


man grep | grep "\-o"

This is not a standard method but works.

rtfm() { help $@ || man $@ || open "http://www.google.com/search?q=$@"; }
2011-01-26 06:23:42
User: vaporub
Functions: man
Tags: man google

Simple edit to work for OSX.

Now just add this to your ~/.profile and `source ~/.profile`

rtfm() { help $@ || info $@ || man $@ || $BROWSER "http://www.google.com/search?q=$@"; }
2011-01-05 21:26:51
Functions: info man
Tags: man info google

Some commands have more information on 'info' than in the man pages

rtfm() { help $@ || $@ -h || $@ --help || man $@ || $BROWSER "http://www.google.com/search?q=$@"; }
2011-01-05 17:36:26
User: karol
Functions: man
Tags: man google

Sometimes you don't have man pages only '-h' or '--help'.

rtfm() { help $@ || man $@ || $BROWSER "http://www.google.com/search?q=$@"; }
man -t manpage | ps2pdf - filename.pdf
2010-12-19 22:40:18
User: TetsuyO
Functions: man

Quick and dirty version. I made a version that checks if a manpage exists (but it's not a oneliner). You must have ps2pdf and of course Ghostscript installed in your box.

Enhancements appreciated :-)

/usr/bin/man $* || w3m -dump http://google.com/search?q="$*"\&btnI | less
2010-10-05 13:51:39
User: d1337r
Tags: man google

This microscript looks up a man page for each word possible, and if the correct page is not found, uses w3m and Google's "I'm feeling lucky" to output a first possible result. This script was made as a result of an idea on a popular Linux forum, where users often send other people to RTFM by saying something like "man backup" or "man ubuntu one". To make this script replace the usual man command, save it as ".man.sh" in your home folder and add the following string to the end of your .bashrc file:

alias man='~/.man.sh'

man !!
2010-09-24 13:38:17
User: pahnin
Functions: man

when we work with terminal often we open man pages for help if we did some mistakes

and when we want to open the man page for command we are working with this one helps

as many people may be knowing that '!!' performs the last command action

we use it in sudo !! to perform the last action with root previleages

man !! will also be helpful and handy


man $(ls -1 /usr/share/man/man?/ | shuf -n1 | cut -d. -f1)
2010-08-20 23:36:10
User: dooblem
Functions: cut ls man
Tags: man sort shuf

Another one.

Maybe not the quicker because of the sort command, but it will also look in other man sections.

updated with goodevilgenius 'shuf' idea

man $(ls /bin | shuf | head -1)
2010-08-20 23:12:51
Functions: head ls man
Tags: man

I'm not sure why you would want to do this, but this seems a lot simpler (easier to understand) than the version someone submitted using awk.

man $(/bin/ls /bin | awk '{ cmd[i++] = $0 } END { srand(); print cmd[int(rand()*length(cmd))]; }')
2010-08-20 17:31:02
User: emilsit
Functions: awk man
Tags: man awk

Build an awk array with all commands and then select a random one at the end.

This avoids spawning extra processes for counting with wc or generating random numbers.

Explicitly call /bin/ls to avoid interactions with aliases.

(cd /bin; set -- *; x=$((1+($RANDOM % $#))); man ${!x})
man $(ls /bin | sed -n $((RANDOM % $(ls /bin | wc -l) + 1))p)
2010-08-20 17:15:33
User: putnamhill
Functions: ls man sed wc
Tags: man sed ls wc random

Great idea camocrazed. Another twist would be to display a different man page based on the day of the year. The following will continuously cycle through all man pages:

man $(ls /bin | sed -n $(($(date +%j) % $(ls /bin | wc -l)))p)
dir="/bin"; man $(ls $dir |sed -n "$(echo $(( $RANDOM % $(ls $dir |wc -l | awk "{ print $1; }" ) + 1 )) )p")
2010-08-20 16:31:50
User: camocrazed
Functions: dir ls man sed
Tags: man sed awk echo wc

Broaden your knowledge of the utilities available to you in no particular order whatsoever! Then use that knowledge to create more nifty one-liners that you can post here. =p

Takes a random number modulo the number of files in $dir, prints the filename corresponding to that number, and passes it as an argument to man.

for file in $(ls /usr/bin ) ; do man -w $file 2>> nomanlist.txt >/dev/null ; done
2010-07-26 19:39:53
User: camocrazed
Functions: file ls man
Tags: man

This takes quite a while on my system. You may want to test it out with /bin first, or background it and keep working.

If you want to get rid of the "No manual entry for [whatever]" and just have the [whatever], use the following sed command after this one finishes.

sed -n 's/^No manual entry for \(.*\)/\1/p' nomanlist.txt
for i in {a..z} ; do man -k $i |grep -i "^$i" |wc | awk 'BEGIN { OFS = ":"; ORS = "" }{print $1, "\t"}' && echo $i ;done
unset MANPATH; manpath >/dev/null
2010-07-02 19:45:27
Functions: manpath unset
Tags: man PATH

If I type 'man something', I want it to find the manpage in the same order as my PATH.

You can add something like this to your .bashrc


# Add my MacPorts, my personal utilities and my company utilities to my PATH.

export PATH=$PATH:/opt/local/bin:$HOME/bin:/our_company_utils/bin/

# Now set the manpath based on the PATH, after man(1) parses man.conf

# - No need to modify man.conf or manually modify MANPATH_MAP

# - Works on Linux, FreeBSD & Darwin, unlike /etc/manpaths.d/

# Must unset MANPATH first. MANPATH is set on some systems automatically (Mac),

# which causes manpath to ignore the values of PATH like /opt/local/bin (MacPorts).

# Also MANPATH may be deprecated. See "SEARCH PATH FOR MANUAL PAGES" in man(1)


# manpath acts differently on Solaris, FreeBSD, MacOSX & GNU. This works everywhere.

manpath >/dev/null


Note that MacOSX, FreeBSD & Linux have fancier ways to do some of this. (e.g. 'man --path' or 'man -q'), but this command is more universal and should work everywhere.