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.
» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10
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:
Useful when upgrading my Linux distro and trying to copy only "settings" from the old home folder to the new one.
*** 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!
"That's it. Not much to see here. The first command writes any cache data that hasn't been written to the disk out to the disk. The second command tells the kernel to drop what's cached. Not much to it. This invalidates the write cache as well as the read cache, which is why we have the sync command first. Supposedly, it is possible to have some cached write data never make it to disk, so use it with caution, and NEVER do it on a production server. You could ... but why take the risk?
As long as you are running a post 2.6.16 kernel,..."
Source: http://ubuntuforums.org/showpost.php?p=3621283&postcount=1
Creates a 4GB ramdisk on OSX. Use when you need high speed operations and have plenty of RAM
I can't find the lid command on my system, there is also another complied program: http://xyne.archlinux.ca/projects/lsgrp/
Prints top 5 twitter topics. Not very well written at all but none of the others worked.
These are my favourite switches on pwgen:
-B Don't include ambiguous characters in the password
-n Include at least one number in the password
-y Include at least one special symbol in the password
-c Include at least one capital letter in the password
It just works!
Add a number to set password length, add another to set how many password to output. Example:
pwgen -Bnyc 12 20
this will output 20 password of 12 chars length.
Take a file and ,."()?!;: give a list of all the words in order of increasing length.
First of all use tr to map all alphabetic characters to lower case and also strip out any puntuation.
A-Z become a-z
,."()?!;: all become \n (newline)
I've ignored - (hyphen) and ' (apostrophe) because they occur in words.
Next use bash to print the length ${#w} and the word
Finally sort the list numerically (sort -n) and remove any duplicates (sort -u).
Note: sort -nu performs strangely on this list. It outputs one word per length.
optionally you can add
|cut -d' ' -f2|uniq
to the end of the command line.
The script gets the dimensions and position of a window and calls ffmpeg to record audio and video of that window. It saves it to a file named output.mkv
Does not output the word "shared" so you can easily store this number in a variable.
Produces a CSV file containing fronts/backs of cards with specified tag ("mytag" above). This command pulls these cards from different card databases, and allows them to be merged into one (by importing the resulting CSV file).
The CSV file is not directly produced; instead of commas, "||" are inserted. In your editor of choice, modify the resulting file to put quotes around the text before || and after ||, then change || to a comma (for every line).
Here's an annotated version of the command, using full-names instead of aliases. It is exactly equivalent to the short-hand version.
# Recursively list all the files in the current directory.
Get-ChildItem -Recurse |
# Filter out the sub-directories themselves.
Where-Object { return -not $_.PsIsContainer; } |
# Group the resulting files by their extensions.
Group-Object Extension |
# Pluck the Name and Count properties of each group and define
# a custom expression that calculates the average of the sizes
# of the files in that group.
# The back-tick is a line-continuation character.
Select-Object `
Name,
Count,
@{
Name = 'Average';
Expression = {
# Average the Length (sizes) of the files in the current group.
return ($_.Group | Measure-Object -Average Length).Average;
}
} |
# Format the results in a tabular view, automatically adjusted to
# widths of the values in the columns.
Format-Table -AutoSize `
@{
# Rename the Name property to something more sensible.
Name = 'Extension';
Expression = { return $_.Name; }
},
Count,
@{
# Format the Average property to display KB instead of bytes
# and use a formatting string to show it rounded to two decimals.
Name = 'Average Size (KB)';
# The "1KB" is a built-in constant which is equal to 1024.
Expression = { return $_.Average / 1KB };
FormatString = '{0:N2}'
}
Bash only, no sed, no awk. Multiple spaces/tabs if exists INSIDE the line will be preserved. Empty lines stay intact, except they will be cleaned from spaces and tabs if any available.
Allows system to be halted and session closed by KDE. Very useful to save applications states, especially with the KDE apps that behave correctly.