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.
» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10
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:
Additionally it may give your geolocation if it's known by hostip.info
Linux specific, requires iproute2 (but most distros have that by default now)
Just a simple way without the need of additional tools. Of course, replace eth0 with your IF.
On the machine acting like a server, run:
iperf -s
On the machine acting like a client, run:
iperf -c ip.add.re.ss
where ip.add.re.ss is the ip or hostname of the server.
On the another machine write this command.
pv -r /dev/zero | nc 192.168.1.1 7777
It will show live throughput between two machine.The destination machine ip is at our example 192.168.1.1
You must multiply by 8 for the network calculation.
You must install pv and netcat commands for this commands usage.
kerim@bayner.com
Ruby version.
Also, a perl version:
perl -e 'printf("%.2x.",rand(255))for(1..5);printf("%.2x\n",rand(255))'
You have to install the package macchanger but this command will create a random mac from a list of known manufacturers. If you want to make a complete random mac, use the -r option .
Shorter and more straightforward.
Also in perl:
perl -e 'print join(":", map { sprintf "%0.2X",rand(256) }(1..6))."\n"'
Doubt it actually generates valid mac addresses but this version doesn't need any external commands so it runs much faster.
Much shorter as well.
First set the variable $hexchars:
hexchars="0123456789ABCDEF"
Change the number in the first for loop if you need less then 1200 mac addresses
It connects to XXX.XXX.XXX.XXX port YYY, using a source port of "srcport" and binds the tunnel on local port "locport". Then you can connect to localhost:locport.
With this command it's possible to connect to servers using a specific source port (useful when a firewall check the source port). Because of the connections starting from the same source port, this works well only for the first connection (for example, works well with SSH and bad with HTTP because of multiple requests).
* It requires socat
This is like ping -a, but it does the opposite. It alerts you if the network is down, not up. Note that the beep will be from the speaker on the server, not from your terminal.
Once a second, this script checks if the Internet is accessible and beeps if it is not. I define the Net as being "UP", if I can ping Google's public DNS server (8.8.8.8), but of course you could pick a different static IP address. I redirect the beep to /dev/console so that I can run this in the background from /etc/rc.local. Of course, doing that requires that the script is run by a UID or GID that has write permissions to /dev/console (usually only root).
Question: I am not sure if the -W1 flag works under BSD. I have only tested this under GNU/Linux using ping from iputils. If anybody knows how portable -W is, please post a comment.
Find your default gateway and print it directly output
http://www.bilgisayarmatematik.com/
kerim@bayner.com
Curl is not installed by default on many common distros anymore. wget always is :)
wget -qO- ifconfig.me/ip
Here's a version that uses netcat (although I'd much rather use curl!).