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:
Should work even when very large files exist.
I always forget this one and find all kinds of complex solutions on google. Also works great while piping data. ex. 'cat data | process-data | tr -d "\"" > processed-data-without-quotes'
Useful to identify the field number in big CSV files with large number of fields. The index is the reference to use in processing with commands like 'cut' or 'awk' involved.
pyt 'Stairway to heaven - Led Zeppelin'
pyt 'brain damage - Pink Floyd'
No web browser or even X needed. Just a cli and internet connection!
mplayer is pauseable and can skip ahead
This may break if youtube changes their search html.
A great command to assign to an alias, allowing you to git diff the last two commits in git.
seems a useless command ...
In the field, I needed to script a process to scan a specific vendor devices in the network. With the help of nmap, I got all the devices of that particular vendor, and started a scripted netcat session to download configuration files from a tftp server.
This is the nmap loop (part of the script). You can however, add another pipe with grep to filter the vendor/manufacturer devices only. If want to check the whole script, check in http://pastebin.com/ju7h4Xf4
This command is similar to the alternate, except with head(1), you can pick as many passwords as you wish to generate by changing the number of lines you wish to preview.
I'm sure there's a more elegant sed version for the tr + grep section.
Thx Mass1 for the sharing
Print the IP address and the Mac address in the same line
This command allows to follow up a trace on SDP (CS5.2), at the same time as the trace records are stored in the file with "raw" format.
Trace files in native format are useful to filter the records before to translation from '|' to '\n'.
grep -v OP_GET <raw-records>.trace | tr '|' '\n'
Filter entries in OpenSuse /var/log/messages like:
timestamp servername kernel: [83242.108090] btrfs: checksum error at logical 1592344576 on dev /dev/sda5, sector 5223584, root 5, inode 2652, offset 282624, length 4096, links 1 (path: log/warn)
When you run a lot of containers the built in docker ps output becomes unreadable. This command formats the output to be easier on the eyes.
Requires q (https://github.com/harelba/q) text as data.
Works even with spaces in filenames.
As an alias in .gitconfig:
editchanged = "!git status --porcelain | sed -ne 's/^ M //p' | tr '\\n' '\\0' | tr -d '\"' | xargs -0 vim"
For a given filesystem return the LUN ID. Command assumes 1:1 relationship between fs:lv:hdisk:lun which may not be the case in all environments.
This snippet will produce an alpha-numeric 16 character password