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:
There is 1 alternative - vote for the best!
In Python version 3, the module was merged into http.server. Gentlemen, change your aliases.
This works on all versions of python 2.X.
Tested on Linux and bundled python versions on Mac OSX and Solaris / UNIX
Note: Serves globally on port 8000.
Ctrl+c to stop.
Don't start the server and leave it on a internet connected machine. :)
"this command line isn't mine but i find it very useful" ^^
This one-liner starts a dedicated server hosting (web server) on port 8000 with the contents of current directory on all the interfaces (address 0.0.0.0), not just localhost. If you have "index.html" or "index.htm" files, it will serve those, otherwise it will list the contents of the currently working directory.
It works because python comes with a standard module called SimpleHTTPServer. The -m argument makes python to search for a module named SimpleHTTPServer.py in all the possible system locations (listed in sys.path and $PYTHONPATH shell variable). Once found, it executes it as a script. If you look at the source code of this module, you'll find that this module tests if it's run as a script if __name__ == '__main__', and if it is, it runs the test() method that makes it run a web server in the current directory.
If you can do better, submit your command here.
You must be signed in to comment.
To use a different port:
python -m SimpleHTTPServer 8080Many thx to the both of you and python developers :)
python -m SimpleHTTPServer+Serving HTTP on 0.0.0.0 port 8000 ...
....
Cool. I'd been using webfs for this.
http://linux.bytesex.org/misc/webfs.html
This is great way to get something to open without configuring webserver.
I love it.
See also CGIHTTPServer
Awesome!!
How to kill the servers? :P
I changed this up a bit and added it to my .bashrc. My function also logs into my web server via ssh and forwards a port back to me. It also copies the URL to my primary selection.
webshare () {local SSHHOST=hostname.of.serverpython -m SimpleHTTPServer &echo http://$SSHHOST:8000 | xclipecho Press enter to stop sharing, http://$SSHHOST:8000 copied to primary selection/usr/bin/ssh -R 8000:127.0.0.1:8000 $SSHHOST 'read'
kill `jobs -p | head`}Neat. I've been using a more complicated system:
# Create an index.html, trying to preserve names with whitespace
du -a | awk ?{ print $2,$3,$4,$5}? | \ until [[ -z $L ]];
do
read L;
echo ??$L??;
done > ./index.html;
#Instantiate an SSL web server on port 8080
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout \
server.pem -out server.pem -subj ?/C=XX/O=XX/OU=XX/CN=XX?;
openssl s_server -accept 8080 -WWW
Wow, quoting went horribly wrong there.
# Create an index.html, trying to preserve names with whitespace
du -a | awk '{ print $2,$3,$4,$5}' | until [[ -z $L ]];
do
read L;
echo ''$L'';
done > ./index.html;
#Instantiate an SSL web server on port 8080
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout \
server.pem -out server.pem -subj ?/C=XX/O=XX/OU=XX/CN=XX?;
openssl s_server -accept 8080 -WWW
nice ! tfs
all of the hacking around detracts from the beautiful simplicity of this command. I'm totally in love with this. I'd up-vote it a 100 times if I could. Nice work.
nice
awesome
This is a great trick!
Does anyone know similar trick that invoke simple FTP server?
If you don't know how to kill the server (^c doesn't work) try the following
kill `ps | grep SimpleHTTP | grep -v grep | awk '{print $1}'`In order to kill the server you can try:
killall pythonkillall python is too brutal. It may kill some useful python process accidently .
Just run to view
firefox http://$HOSTNAME:8000/This is awesome. Does anyone know how to do this with Python 2.3 or earlier?
http://ubuntuguide.net/http-server-support-uploading-files-from-windows-in-ubuntu
I found a python script that support uploading files. It's useful.