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

python -m SimpleHTTPServer

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

9 Alternatives + Submit Alt

What Others Think

To use a different port: python -m SimpleHTTPServer 8080
taoufix · 561 weeks and 4 days ago
Many thx to the both of you and python developers :)
AmadeusZull · 559 weeks and 5 days ago
python -m SimpleHTTPServer +Serving HTTP on 0.0.0.0 port 8000 ... ....
grep · 559 weeks and 1 day ago
Cool. I'd been using webfs for this. http://linux.bytesex.org/misc/webfs.html
Viaken · 557 weeks ago
This is great way to get something to open without configuring webserver. I love it.
k00pa · 555 weeks and 5 days ago
See also CGIHTTPServer
dstahlke · 553 weeks and 1 day ago
Awesome!!
d4n3sh · 551 weeks and 5 days ago
How to kill the servers? :P
Meeko · 551 weeks and 4 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 · 547 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 · 531 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 · 531 weeks and 1 day ago
nice ! tfs
sazwqa · 510 weeks and 2 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 · 507 weeks and 3 days ago
nice
warlock · 507 weeks and 1 day ago
awesome
tunguyen · 503 weeks and 4 days ago
This is a great trick! Does anyone know similar trick that invoke simple FTP server?
yorams70 · 503 weeks and 2 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 · 498 weeks and 4 days ago
In order to kill the server you can try: killall python
samy · 471 weeks and 3 days ago
killall python is too brutal. It may kill some useful python process accidently .
al_crow · 441 weeks and 4 days ago
Just run to view firefox http://$HOSTNAME:8000/
totti · 432 weeks and 3 days ago
This is awesome. Does anyone know how to do this with Python 2.3 or earlier?
adamlehenbauer · 428 weeks and 4 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 · 374 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 · 301 weeks and 2 days ago
python -m http.server [] on python3 on windows
kkarakk · 51 weeks 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: