python -m SimpleHTTPServer

Serve current directory tree at http://$HOSTNAME:8000/


811
By: pixelbeat
2009-02-05 11:57:43

8 Alternatives + Submit Alt

What Others Think

To use a different port: python -m SimpleHTTPServer 8080
taoufix · 484 weeks and 5 days ago
Many thx to the both of you and python developers :)
AmadeusZull · 482 weeks and 6 days ago
python -m SimpleHTTPServer +Serving HTTP on 0.0.0.0 port 8000 ... ....
grep · 482 weeks and 2 days ago
Cool. I'd been using webfs for this. http://linux.bytesex.org/misc/webfs.html
Viaken · 480 weeks and 1 day ago
This is great way to get something to open without configuring webserver. I love it.
k00pa · 478 weeks and 6 days ago
See also CGIHTTPServer
dstahlke · 476 weeks and 2 days ago
Awesome!!
d4n3sh · 474 weeks and 6 days ago
How to kill the servers? :P
Meeko · 474 weeks and 5 days ago
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.server python -m SimpleHTTPServer & echo http://$SSHHOST:8000 | xclip echo 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` }
wonko · 470 weeks and 6 days ago
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
lbonanomi · 454 weeks and 1 day ago
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
lbonanomi · 454 weeks and 1 day ago
nice ! tfs
sazwqa · 433 weeks and 3 days ago
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.
4fthawaiian · 430 weeks and 3 days ago
nice
warlock · 430 weeks and 2 days ago
awesome
tunguyen · 426 weeks and 4 days ago
This is a great trick! Does anyone know similar trick that invoke simple FTP server?
yorams70 · 426 weeks and 3 days ago
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}'`
jafraldo · 421 weeks and 5 days ago
In order to kill the server you can try: killall python
samy · 394 weeks and 4 days ago
killall python is too brutal. It may kill some useful python process accidently .
al_crow · 364 weeks and 5 days ago
Just run to view firefox http://$HOSTNAME:8000/
totti · 355 weeks and 4 days ago
This is awesome. Does anyone know how to do this with Python 2.3 or earlier?
adamlehenbauer · 351 weeks and 5 days ago
http://ubuntuguide.net/http-server-support-uploading-files-from-windows-in-ubuntu I found a python script that support uploading files. It's useful.
franzcai · 297 weeks and 6 days ago
I tried using this to quickly send a folder full of games to some people on my LAN, but it would only let one person download at a time. Try sudo apt-get install python-twistd-web twistd -no web instead.
nkorth · 224 weeks and 3 days ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again. 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.

Share Your Commands



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: