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.


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.

Universal configuration monitoring and system of record for IT.
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

May 19, 2015 - A Look At The New Commandlinefu
I've put together a short writeup on what kind of newness you can expect from the next iteration of clfu. Check it out here.
March 2, 2015 - New Management
I'm Jon, I'll be maintaining and improving clfu. Thanks to David for building such a great resource!
Hide

Top Tags

Hide

Functions

Psst. Open beta.

Wow, didn't really expect you to read this far down. The latest iteration of the site is in open beta. It's a gentle open beta-- not in prime-time just yet. It's being hosted over at UpGuard (link) and you are more than welcome to give it a shot. Couple things:

  • » The open beta is running a copy of the database that will not carry over to the final version. Don't post anything you don't mind losing.
  • » If you wish to use your user account, you will probably need to reset your password.
Your feedback is appreciated via the form on the beta page. Thanks! -Jon & CLFU Team

Commands by glaudiston from sorted by
Terminal - Commands by glaudiston - 43 results
ls -l | sed "$(while (( ++i < 5 )); do echo "N;"; done) a -- COMMIT --"
2010-03-17 20:12:05
User: glaudiston
Functions: ls sed
2

specially usefull for sql scripts with insert / update statements, to add a commit command after n statements executed.

vsqlplus "SELECT * FROM TABLE_NAME;"
2010-03-01 17:11:07
User: glaudiston
0

the database client sqlplus generate results one line per row.

This function convert the sqlplus output to show the result vertically, in layout:

Column_name=[Column_Value].

Very usefull for scripts.

echo -e "Some Text Line1\nSome Text Line 2" | convert -background none -density 196 -resample 72 -unsharp 0x.5 -font "Courier" text:- -trim +repage -bordercolor white -border 3 text.gif
2010-02-25 18:58:42
User: glaudiston
Functions: echo
17

generates a picture file with the text.

Some other samples in:

http://www.imagemagick.org/Usage/text/

cat /proc/$(lsof -ti:8888)/cmdline | tr "\0" " "
ls *.wav | while read f; do lame "$f" -o "$(echo $f | cut -d'.' -f1)".mp3; done;
echo $(( $( cat count.txt | tr "\n" "+" | xargs -I{} echo {} 0 ) ))
2010-01-27 10:02:30
User: glaudiston
Functions: cat echo tr xargs
1

if you, like me, do not have the numsum, this way can do the same.

ifconfig eth0:1 192.168.0.1/24
2010-01-12 11:57:11
User: glaudiston
Functions: ifconfig
1

the below command create a alias for share your internet connection with another.

ifconfig eth0:1 192.168.0.1/24

Its obviously necessary too activate the iptables post-routing and ip forwarding, as root:

modprobe iptable_nat iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward

Be sure that the alias 192.168.0.0/24 is not your active real ip range

port=8888;pid=$(lsof -Pan -i tcp -i udp | grep ":$port"|tr -s " " | cut -d" " -f2); ps -Afe|grep "$pid"|grep --invert-match grep | sed "s/^\([^ ]*[ ]*\)\{7\}\(.*\)$/\2/g"
2010-01-11 17:49:22
User: glaudiston
Functions: cut grep ps sed tr
0

A way not so simple but functional for print the command for the process that's listening a specific port.

I got the pid from lsof because I think it's more portable but can be used netstat

netstat -tlnp
ls / | sed -e :a -e 's/^.\{1,15\}$/&_/;ta'
2010-01-06 17:22:01
User: glaudiston
Functions: ls sed
0

the sql command lpad and rpad using sed

for lpad, invert the &_ with _&:

ls / | sed -e :a -e 's/^.\{1,15\}$/_$/;ta'
echo - | sed -e :a -e 's/^.\{1,50\}$/&-/;ta'
2010-01-06 17:18:15
User: glaudiston
Functions: echo sed
0

the sed way to print a linhe with 50 hyphens

ls | sed "/^/=" | sed "N;s/\n/. /"
ls | sed -n '1h;2,$H;${g;s/\n/,/g;p}'
2010-01-06 15:56:16
User: glaudiston
Functions: ls sed
0

searching for sed to make a csv, I found the solution from Mr. Stolz in http://funarg.nfshost.com/r2/notes/sed-return-comma.html

you can also to use:

tr "\n" "," ;

But I was looking for a sed way =)

{ echo -e "$body"; uuencode "$outfile" "$outfile"; } | mail -s "$subject" "$destaddr" ;
2009-12-10 18:08:59
User: glaudiston
Functions: echo mail uuencode
Tags: cat mail
0

on this way we can define the body too

sed '/./=' infile | sed '/^/N; s/\n/ /'
2009-12-10 16:24:56
User: glaudiston
Functions: sed
-1

There's too many options to number,

My curiosity has forced me to make it using only sed.

Maybe useful... or not... :-S

mkdir myicons; find /usr/share/icons/ -type f -exec cp {} ./myicons/ \;
time { i=0; while [ $(( i < 65535 )) -eq 1 ] ; do nc -zw2 localhost $((++i)) && echo port $i opened ; done; }
2009-12-09 17:33:47
User: glaudiston
Functions: echo time
1

in loop, until the last port (65535), list all opened ports on host.

in the sample I used localhost, but you can replace with any host to test.

cat infile | while read str; do echo "$((++i)) - $str" ; done;
2009-12-09 14:05:09
User: glaudiston
Functions: cat echo read
-1

Yep, is hard, but is a way more flexible using pipe.

grep -n . datafile ;