All commands (14,187)

What's this?

commandlinefu.com 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

Access to specific man page section
You can view the man pages from section five by passing the section number as an argument to the man command

Get your external IP address

ignore hidden directory in bash completion (e.g. .svn)
add it in ~/.bashrc install bash-completion

Colorful man
That command installs "most" and make this command as the default man reader. The "most" works like "less" (the current man reader), but it render colors for manpages and may do more things. Read "man most". You can see a preview here: http://www.dicas-l.com.br/dicas-l/20090718.php

Set name of windows in tmux/byobu to hostnames of servers you're connected to
*I run this with byobu as as a custom status bar entry that runs every 10 seconds by putting it in a script here: $ .byobu/bin/10_update_windows There's no output to stdout, so nothing is displayed on the status bar. *Presumes that #{pane_title} is set to the hostname or prompt containing the host name. In my case, it's in this format: $ $USER@$HOSTNAME:$PWD The sed commands may need to be modified if your pane_title is different. *If you want to strip out a common part of a hostname, add the following before '| uniq' $ -e 's/[COMMON PART]//' I use that to strip out the domain of the servers I connect to, leaving the subdomain.

Your name backwards

apt-get via sudo
An apt-get wrapper function which will run the command via sudo, but will run it normally if you're only downloading source files. This was a bit of an excuse to show off the framework of $ cmd && echo true || echo false ...but as you can see, you must be careful about what is in the "true" block to make sure it executes without error, otherwise the "false" block will be executed. To allow the apt-get return code to pass through, you need to use a more normal if/else block: $ apt-get () { if [ "$1" = source ]; then command apt-get "$@"; else sudo apt-get "$@"; fi }

create a progress bar...
A simple way yo do a progress bar like wget.

Real time duplication of Apache app traffic to a second server
This takes the stream created by apache requests containing jsp and funnels them to another server. I'm using this for simulating real time traffic. The nice command gives ssh maximum CPU cycles, awk & grep strip out everything served by apache. Putting parallel on curl is important because curl is synchronous and waits for the response. Yes, I thought about using wget but it didn't seem any easier. Also, if you figure out how to run this in the background let me know. Every time I background it it stops. If you have multiple front end servers just run multiple instances of this.

Which processes are listening on a specific port (e.g. port 80)
swap out "80" for your port of interest. Can use port number or named ports e.g. "http"


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: