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:
"play" is part of "SoX"
SoX - Sound eXchange, the Swiss Army knife of audio manipulation.
For details, see: man sox
Create backup (.tar.gz) for all first-level directory from current dir.
This command will tell lynx to read keystrokes from the specified file - which can be used in a cronjob to auto-login on websites that give you points for logging in once a day *cough cough* (which is why I used -accept_all_cookies).
For creating your keystroke file, use:
lynx -cmd_log yourfile
At the start of a vi session and *before* saving any changes use ":!cp % %-" to make a backup of the current file being edited.
example: vi /data/some/long/path/file
Using the "#" in shell is surprisingly useful.
Some of the uses I found:
a) As a visible copy buffer in shell history (caveat: do not use for passwords :-)
b) To build complex commands until ready then hit the HOME, DEL, ENTER keys to run it
c) Placing reference data into shell history (search for tags with CTRL-R TAGNAME)
d) Putting aside a "work in progress" command to focus on another task (HOME # ENTER)
Hold ctrl and press z to pause the current thread. Run
to resume it.
Add calendar to desktop wallpaper , mess with the coordinates to place where you like
./* is for copying files starting with -
.[!.]* is for copying hidden files and avoiding copying files from the parent directory.
..?* is for copying files starting with .. (avoids the directory ..)
/path/to/dir the path to the directory where the files should be copied
Can also be used as a script. Input argument is /path/to/dir
in tcsh, replace .[!.]* with .[^.]*
-vcodec, you choose what video codec the new file should be encoded with. Run ffmpeg -formats E to list all available video and audio encoders and file formats.
copy, you choose the video encoder that just copies the file.
-acodec, you choose what audio codec the new file should be encoded with.
copy, you choose the audio encoder that just copies the file.
-i originalfile, you provide the filename of the original file to ffmpeg
-ss 00:01:30, you choose the starting time on the original file in this case 1 min and 30 seconds into the film
-t 0:0:20, you choose the length of the new film
newfile, you choose the name of the file created.
Here is more information of how to use ffmpeg:
This command is a powerful "detoxifier" that eliminates special chars, spaces and all those little chars we don't like. It support several "sequences" so be sure to check your /usr/local/etc/detoxrc while at it... and maybe define your own
Takes a input file (count.txt) that looks like:
It will add/sum the first column of numbers.
There is no need to 'zcat textfile.gz | less' with newer distros. This is useful for reading archived log files without having to extract, read, and zip when done.
This will print out the files and directories in a gzipped tarball.
Low on disk space? Check the largest installed RPMs for delete canditates.
This command converts filenames with embedded spaces in the current directory replacing spaces with the underscore ("_") character.
This command is a bit Linux specific, as --stdin doesn't exist for passwd on many Unix machines. Further, useradd is high level in most distributions and Unix derivatives except for the Debian family of distros, where adduser would be more appropriate. The last bit, with chage, will force the user to change their password on new login.
NB when you run this gcal command in your shell, holidays are highlighted
but this highlighting does not show in the sample output (above).
To find full details on gcal options: gcal --long-help | less
Example for United States, Pennsylvania:
gcal -K -q US_PA 2009 # display holidays in USA/Pennsylvania for 2009 (with week numbers)
Example for Hong Kong:
gcal -K -q HK 2009 # display holidays in Hong Kong for 2009 (with week numbers)
'visudo' is installed by default on most Unix-like systems. If not installed, you can get it from the 'sudo' package. 'visudo' will use the text editor found in your $EDITOR variable, whether it's vi, vim, emacs, nano or gedit. After making changes to the /etc/sudoers file, visudo will check for syntax errors, and notify you of them. This is better than 'vi /etc/sudoers', because of this capability. Rule #1 of system administration- if there is a tool that exists for editing config files, use the tool.
Merge all pdf files in the directory into one pdf file (the out.pdf file)
Can pipe to tail or change the awk for for file size, groups, users, etc.
Lockstat will sample the kernel 977 times per second, and print out the functions that it sees executing on the CPU during the sample. The -s 10 switch tells lockstsat to not only print that function, but also show the call stack (up to 10 deep).