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



execute your commands and avoid history records

Terminal - execute your commands and avoid history records
cat | bash
2010-08-18 13:47:46
User: glaudiston
Functions: cat
execute your commands and avoid history records

Sometimes you don't want to leave history, because of passwords use or somethink like.

I think it help.


There are 4 alternatives - vote for the best!

Terminal - Alternatives
read -e -s -p "Password: " password
2010-08-18 17:53:27
User: freiheit
Functions: read
wget --user=username --password="$password" http://example.org/

Instead of hiding commands entirely from history, I prefer to use "read" to put the password into a variable, and then use that variable in the commands instead of the password. Without the "-e" and "-s" it should work in any bourne-type shell, but the -s is what makes sure the password doesn't get echoed to the screen at all. (-e makes editing work a bit better)

export HISTCONTROL=ignorespace
2013-07-25 08:31:10
User: gorynka
Functions: export
<space>secret_command;export HISTCONTROL=

This will make "secret_command" not appear in "history" list.

<space> secret -p password
2011-09-16 12:41:16
User: pcholt

Put a space in front of your command on the command line and it will not be logged as part of your command line history.

HISTFILE= ; your_secret_command
2012-01-26 21:08:57
User: titan2x

Yes, by correctly setting the HIST* variables you can make certain commands not saved in history. But that's complicated and easy to make a mistake. If you set HISTFILE= to blank, nothing in your current shell session will be saved in history. Although this is not a precise answer to the subject, but it's very simple.

Know a better way?

If you can do better, submit your command here.

What others think

Interesting, but a space before a command is a better way of running something and not saving it in the history.

Keep in mind though that passwords on the command line may still show up in a process list and if you're on another sysadmin's system, they might have turned on exec logging to keep track of what users are running.

Comment by deltaray 401 weeks and 1 day ago

Putting a password in to a variable in the environment of a shell is an *incredibly* bad idea. First, the value will stay in memory until it is changed. Secondly, shell expansion will have it one the command line -- leaving it in another shell environment variable, and third (as pointed out above) it can end up in the process list on the system.

And, even if the memory is freed up by the shell, and the variable is reset, the value of the password is still in memory...you have no way of controlling when the memory page will be reused and therefore no way to avoid someone dumping pages of memory from the system looking for items that could be passwords.

Comment by unixmonkey11428 401 weeks and 1 day ago

This hack is truth. The space command thing is crap. Another way to not right your entire session history (If auto-append to history is not on) is to run kill -9 $$. The $$ is your user session pid.

Comment by somaddict 284 weeks ago

Your point of view

You must be signed in to comment.