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

List users with running processes
This is different that `who` in that who only cares about logged-in users running shells, this command will show all daemon users and what not; also users logged in remotely via SSH but are running SFTP/SCP only and not a shell.

Efficiently extract lines between markers
GNU Sed can 'address' between two regex, but it continues parsing through to the end of the file. This slight alteration causes it to terminate reading the input file once the STOP match is made. In my example I have included an extra '/START/d' as my 'start' marker line contains the 'stop' string (I'm extracting data between 'resets' and using the time stamp as the 'start'). My previous coding using grep is slightly faster near the end of the file, but overall (extracting all the reset cycles in turn) the new SED method is quicker and a lot neater.

find directory with most inodes/files
Find which directory in one filesystem that contains most inodes or files.

Generate random IP addresses
It never ends

pop-up messages on a remote computer
Run this command when you are physically at the computer you wish to send pop-up messages to. Then when you ssh in to it, you can do this: echo "guess who?" > commander guess who? will then pop up on the screen for a few moments, then disappear. You will need to create the commander file first. I mess with my wife all the time with this. i.e. echo "You have given the computer a virus. Computer will be rendered useless in 10 seconds." > commander lol

a function to find the fastest free DNS server
Uses GNU Parallel.

Create a single PDF from multiple images with ImageMagick
Given some images (jpg or other supported formats) in input, you obtain a single PDF file with an image for every page.

find and delete empty dirs, start in current working dir

Set name of windows in tmux/byobu to hostnames of servers you're connected to
*I run this with byobu as as a custom status bar entry that runs every 10 seconds by putting it in a script here: $ .byobu/bin/10_update_windows There's no output to stdout, so nothing is displayed on the status bar. *Presumes that #{pane_title} is set to the hostname or prompt containing the host name. In my case, it's in this format: $ $USER@$HOSTNAME:$PWD The sed commands may need to be modified if your pane_title is different. *If you want to strip out a common part of a hostname, add the following before '| uniq' $ -e 's/[COMMON PART]//' I use that to strip out the domain of the servers I connect to, leaving the subdomain.

Find the package that installed a command


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: