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

python -m SimpleHTTPServer

826
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 · 553 weeks and 5 days ago
Many thx to the both of you and python developers :)
AmadeusZull · 551 weeks and 6 days ago
python -m SimpleHTTPServer +Serving HTTP on 0.0.0.0 port 8000 ... ....
grep · 551 weeks and 1 day ago
Cool. I'd been using webfs for this. http://linux.bytesex.org/misc/webfs.html
Viaken · 549 weeks and 1 day ago
This is great way to get something to open without configuring webserver. I love it.
k00pa · 547 weeks and 6 days ago
See also CGIHTTPServer
dstahlke · 545 weeks and 2 days ago
Awesome!!
d4n3sh · 543 weeks and 6 days ago
How to kill the servers? :P
Meeko · 543 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 · 539 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 · 523 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 · 523 weeks and 1 day ago
nice ! tfs
sazwqa · 502 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 · 499 weeks and 3 days ago
nice
warlock · 499 weeks and 2 days ago
awesome
tunguyen · 495 weeks and 4 days ago
This is a great trick! Does anyone know similar trick that invoke simple FTP server?
yorams70 · 495 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 · 490 weeks and 5 days ago
In order to kill the server you can try: killall python
samy · 463 weeks and 4 days ago
killall python is too brutal. It may kill some useful python process accidently .
al_crow · 433 weeks and 5 days ago
Just run to view firefox http://$HOSTNAME:8000/
totti · 424 weeks and 4 days ago
This is awesome. Does anyone know how to do this with Python 2.3 or earlier?
adamlehenbauer · 420 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 · 366 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 · 293 weeks and 2 days ago
python -m http.server [] on python3 on windows
kkarakk · 43 weeks and 1 day 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: