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.
If you have a new feature suggestion or find a bug, please get in touch via http://commandlinefu.uservoice.com/
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.
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.
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:
*** CAREFULLY READ THE NOTES **** *** THIS DOES NOT WORK "OUT OF THE BOX" ***
You'll need a few minutes of CAREFUL reading before making your own Twitter feed:
In 2010 simple command line Twitter feed requests all stopped working because Twitter upgraded to SSL security.
Https requests for a filtered Twitter stream feed now require a special header called "oauth_header".
The benefit is that your stream feed and login info is securely encrypted.
The bad news is that an "oauth_header" takes some work to build.
Fortunately, four functions, imaginatively named step1, step2, step3 and step4 can be used to build a customized oauth_header for you in a few minutes.
Now, go look at "step1" to start creating your own oauth_header!
This is the FOURTH in a set of five commands. Please see my other commands for the previous three steps.
This command builds the authorization header required by Twitter.
For this command to work, see my previous 3 commands (step1, step2 and step3) as they are required to build the environment variables used in this command.
For more information on the authorization header, go to dev.twitter.com/apps, click on any of your apps (or create a new one) and then click on the "OAuth Tool" tab.
This is the SECOND command in a set for five that are needed for a Twitter stream feed.
This command creates variable "b", the so-called "base string" required for oauth in Twitter stream feed requests. (The 256 char limit prevents giving it a better name)
We use five environment variables created by a previous step: id, k1, once, ts and k3.
The five environment variables are created in a separate command, please see my other commands.
For more information on the signature base string, see dev.twitter.com/apps, click on any app (or create a new one) and then go to the "OAuth Tool" tab.
This is the THIRD in a set of five commands. See my other commands for the previous two.
This step creates the oauth 1.0 token as explained in http://oauth.net/core/1.0/
The token is required for a Twitter filtered stream feed (and almost all Twitter API calls)
This token is simply an encrypted version of your base string. The encryption key used is your hmac.
The last part of the command scans the Base64 token string for '+', '/', and '=' characters and converts them to percentage-hex escape codes. (URI-escapeing). This is also a good example of where the $() syntax of Bash command substitution fails, while the backtick form ` works - the right parenthesis in the case statement causes a syntax error if you try to use the $() syntax here.
See my previous two commands step1 and step2 to see how the base string variable $b and hmac variable $hmac are generated.