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

Hostname tab-completion for ssh
This is meant for the bash shell. Put this function in your .profile and you'll be able to use tab-completion for sshing any host which is in your known_hosts file. This assumes that your known_hosts file is located at ~/.ssh/known_hosts. The "complete" command should go on a separate line as such: function autoCompleteHostname() { local hosts=($(awk '{print $1}' ~/.ssh/known_hosts | cut -d, -f1)); local cur=${COMP_WORDS[COMP_CWORD]}; COMPREPLY=($(compgen -W '${hosts[@]}' -- $cur )) } complete -F autoCompleteHostname ssh

Connect to google talk through ssh by setting your IM client to use the localhost 5432 port
If your firewall or proxy at your location prevents connection to a particular host or port, you can use ssh to tunnel to your home server and do it there instead.

continuously check size of files or directories

floating point operations in shell scripts
using bc is for sissies. dc is much better :-D Polish notation will rule the world...

Prepend section dates to individual entries in a summary log file
Searches for dates on lines by themselves. Uses that date to prepend all rows that contain SEARCHSTRING with the date, until it reaches another line with a date by itself. This fixed an issue with a specific log export where there would be a date, followed by all of the entries for that date.

prevents replace an existing file by mistake
Use set +o noclobber and you will be able to replace files again

Convert CSV to JSON
Replace 'csv_file.csv' with your filename.

Delete a file/directory walking subdirectories (bash4 or zsh)

find and remove old compressed backup files
remove all compressed files in /home/ folder not created in the last 10 days

Suspend an ssh session.
This must be typed before any other characters have been entered on the line. Use fg, as usual, to resume the ssh session.


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: