Hide

What's this?

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/

Get involved!

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.

Hide

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:

Hide

News

2011-03-12 - Confoo 2011 presentation
Slides are available from the commandlinefu presentation at Confoo 2011: http://presentations.codeinthehole.com/confoo2011/
2011-01-04 - Moderation now required for new commands
To try and put and end to the spamming, new commands require moderation before they will appear on the site.
2010-12-27 - Apologies for not banning the trolls sooner
Have been away from the interwebs over Christmas. Will be more vigilant henceforth.
2010-09-24 - OAuth and pagination problems fixed
Apologies for the delay in getting Twitter's OAuth supported. Annoying pagination gremlin also fixed.
Hide

Tags

Hide

Functions

Commands by totti from sorted by
Terminal - Commands by totti - 87 results
pmi action suspend
export HISTFILESIZE=99999
2013-01-02 09:25:06
User: totti
Functions: export
1

set how many commands to keep in history

Default is 500

Saved in /home/$USER/.bash_history

Add this to /home/$USER/.bashrc

HISTFILESIZE=1000000000

HISTSIZE=1000000

sed '/foo/ s/foo/foobar/g' <filename>
2013-01-02 08:52:44
User: totti
Functions: sed
Tags: sed file optimize
-6

Use optimized sed to big file/stream to reduce execution time

Use

sed '/foo/ s/foo/foobar/g' <filename>

insted of sed

's/foo/foobar/g' <filename>
ls -l /proc/*/fd/* | grep 'deleted'| grep "\/proc.*\file-name-part"
2012-09-13 09:54:16
User: totti
Functions: grep ls
0

Accidentally deleted some file while used by a program ? (Eg: a song)

Use this command to find the file handle and recover using

cp /proc/pid/fd/filehandle /new/recoverd-file.ext
aspectRatio () { for i in `seq 1 1000 `; do awk "BEGIN {print $1/$i, $2/$i}"; done |grep -v "\."; }
2012-03-07 06:22:25
User: totti
Functions: awk grep
0

EG: aspectRatio 1920 1200

For display a image in full screen it should be in any of the resolution obtained from the output. So resize an image to any of it and you can display it in full screen

For general aspect ratio :

aspectRatio () { for i in `seq 1 1000 `; do awk "BEGIN {print $1/$i, $2/$i}"; done |grep -v "\." |tail -1; }
redshiftgui -o -b 0.5
2012-02-26 16:10:02
User: totti
2

Redshift will adjust the color temperature and protects eye at night

-b : will adjust the brightness

identify image.jpg |grep -o "[[:digit:]]*x[[:digit:]]*" |tail -1
grep -r <searchterm> *
showkey -a
xdotool getmouselocation
wmctrl -o 100,0
2012-01-19 14:36:20
User: totti
Tags: switc
0

For a demo try

wmctrl -o 100,0; sleep 3; wmctrl -o 1500,0; sleep 3; wmctrl -o 3000,0; sleep 3; wmctrl -o 4500,0;

Actually

wmctrl -o <width x Number>,0;

to switch to that workspace

cryptmount -m <name>
2012-01-17 18:02:47
User: totti
-2

In order to create a new encrypted filing system managed by cryptmount,

you can use the supplied 'cryptmount-setup' program, which can be used

by the superuser to interactively configure a basic setup.

Alternatively, suppose that we wish to setup a new encrypted filing

system, that will have a target-name of "opaque". If we have a free

disk partition available, say /dev/hdb63, then we can use this directly

to store the encrypted filing system. Alternatively, if we want to

store the encrypted filing system within an ordinary file, we need to

create space using a recipe such as:

dd if=/dev/zero of=/home/opaque.fs bs=1M count=512

.

cryptmount --generate-key 32 opaque

.

cryptmount --prepare opaque

.

mke2fs /dev/mapper/opaque

.

cryptmount --release opaque

.

mkdir /home/crypt

.

cryptmount -m opaque

.

cryptmount -u opaque

For detail see sample output

makeself <archive_dir> <file_name> <label>
2012-01-10 18:08:50
User: totti
-1

Used by virtualbox and others to create '.run' file.

cat <file> > /dev/null
2011-11-12 15:45:27
User: totti
Functions: cat
Tags: ram file cache
8

Best result when file size less than half of RAM size

stat --format "%s" <file>
curl http://www.commandlinefu.com/commands/browse/sort-by-votes/plaintext/[0-9000:25] | grep -vE "_curl_|\.com by David" > clf-ALL.txt
2011-11-08 12:19:48
User: totti
Functions: grep
2

Faster then other method using wget

For obtain all commands use

nu=`curl http://www.commandlinefu.com/commands/browse |grep -o "Terminal - All commands -.*results$" | grep -oE "[[:digit:],]{4,}" | sed 's/,//'`; curl http://www.commandlinefu.com/commands/browse/sort-by-votes/plaintext/[0-"$nu":25] | grep -vE "_curl_|\.com by David" > clf-ALL.txt

For more version specific

nu=`curl http://www.commandlinefu.com/commands/browse |grep -o "Terminal - All commands -.*results$" | grep -oE "[[:digit:],]{4,}" | sed 's/,//'`; curl http://www.commandlinefu.com/commands/browse/sort-by-votes/plaintext/[0-"$nu":25] | grep -vE "_curl_|\.com by David" > clf-ALL_"$nu".txt

Also download dirctly from my dropbox

My drop box invitaion link is http://db.tt/sRdJWvQq . Use it and get free 2.5 GB space.

totem-video-thumbnailer -pg 25 in_video out_png
ffmpeg -ss 5 -i video.avi -vframes 1 -s 320x240 thumb.jpg
2011-10-31 17:19:33
User: totti
2

Faster thumbnail creation than '-itsoffset'

ffmpeg -itsoffset -4 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
read -d ""
2011-10-25 18:44:11
User: totti
Functions: read
1

Handle any bad named file which contains ",',\n,\b,\t,` etc

Store the file name as null character separated list

find . -print0 >name.lst

and retrieve it using

read -r -d ""

Eg:

find . -print0 >name.lst; cat name.lst| while IFS="" read -r -d "" file; do ls -l "$file"; done
find . ! -name "$(printf '*[\001-\037\177]*')"
echo "export LESS_TERMCAP_mb=$'\E[01;31m'" >> ~/.bashrc
2011-10-20 17:34:14
User: totti
Functions: echo
Tags: man less color
15

Add the followin to ~/.bashrc

#colour

export LESS_TERMCAP_mb=$'\E[01;31m'

export LESS_TERMCAP_md=$'\E[01;37m'

export LESS_TERMCAP_me=$'\E[0m'

export LESS_TERMCAP_se=$'\E[0m'

export LESS_TERMCAP_so=$'\E[01;44;33m'

export LESS_TERMCAP_ue=$'\E[0m'

export LESS_TERMCAP_us=$'\E[01;32m'

filext () { echo ${1##*.}; }
echo "root=/dev/sda7" > /proc/param.conf
2011-09-27 18:06:53
User: totti
Functions: echo
0

Then exit from the shell.

exit

some time need to exit twice

exit exit

Now the OS will boot with the new parameters.

sudo grub-install --root-directory=/media/ubuntu /dev/sda
2011-09-27 17:51:56
User: totti
Functions: sudo
Tags: grub boot fix
-2

From live CD mount(open) the Ubuntu installed drive.

Copy the location (press Ctrl+l, Ctrl+c ) eg: /media/ubuntuuuu

Open terminal (Apllication->accessories->terminal)

Type this:

sudo grub-install --root-directory=/media/ubuntuuuu /dev/sda

(replace /media/ubuntuuuu with what u got (ie paste))

Will show success message. Now reboot

while read line; do echo $line; done <<< "$var"
2011-09-22 16:53:32
User: totti
Functions: echo read
-5

Consider the following simple situation [ reading something using while and read ]

[See script 1 in sample output]

---------------------------------------------------

The variable var is assigned with "nullll" at first. Inside the while loop [piped while] it is assigned with "whillleeee". [Onlly 2 assignments stmts]. Outside the loop the last assigned value for "var" [and no variable] inside the while can't be accessed [Due to pipe, var is executed in a sub shell].

In these type of situation variables can be accessed by modifying as follows.

[See script 2 in sample output]

___________________________

Vary helpful when reading a set of items, say file names, stored on a file [or variable] to an array an use it later.

Is there any other way 2 access variables inside and outside the loop ??