Programing

명령 줄에서 현재 디렉토리 제공

lottogame 2020. 8. 29. 11:51
반응형

명령 줄에서 현재 디렉토리 제공


누군가 나에게 힌트를 줄 수 있습니까? 루비로 명령 줄에서 현재 디렉토리를 제공하는 방법? 시스템 전체 구성 (예 : mime-types)을 갖고 모든 디렉토리에서 간단히 실행할 수 있다면 좋을 것입니다.


가능한 가장 간단한 방법 ( Aaron Patterson / n0kada 에게 감사 ) :

ruby -run -e httpd . -p 9090

더 복잡한 대체 방법 :

ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 9090, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"

첫 번째 명령조차 기억하기 어렵 기 때문에 다음과 같은 내용이 있습니다 .bashrc.

function serve {
  port="${1:-3000}"
  ruby -run -e httpd . -p $port
}

기본적 으로 포트 3000 에서 현재 디렉터리를 제공 하지만 포트를 지정할 수도 있습니다.

~ $ cd tmp
~/tmp $ serve      # ~/tmp served on port 3000
~/tmp $ cd ../www
~/www $ serve 5000   # ~/www served on port 5000

나는 이렇게 컴팩트 한 것을 본 적이 없다.

python -m SimpleHTTPServer

Ruby의 경우 Chris의 답변이 Google에 여러 번 표시됩니다.


Aaron Patterson이 오늘 트위터에 올린 대로 다음과 같이 할 수 있습니다.

ruby -run -e httpd . -p 5000

그리고 다음을 추가하여 바인드 주소를 설정할 수도 있습니다. -b 127.0.0.1

Ruby 1.9.2 이상에서 작동합니다.


require 'webrick'
include WEBrick

s = HTTPServer.new(:Port => 9090,  :DocumentRoot => Dir::pwd)
trap("INT"){ s.shutdown }
s.start

Ruby gem Serve 사용 .

시스템에 설치하려면을 실행하십시오 gem install serve.

디렉토리를 제공하려면 디렉토리로 이동하여 serve.

기본 포트는 4000입니다. 또한 ERB, HAML, Slim 및 SASS와 같은 서비스를 제공 할 수 있습니다.


한 줄의 웹 서버


이것은 당신이 원하는 것일 수도 있고 아닐 수도 있지만 너무 멋져서 공유해야했습니다.

나는 과거에 파일 시스템을 제공하기 위해 이것을 사용했습니다. 아마도 당신은 그것을 수정하거나 그것이 모든 것을 제공한다는 것을 받아 들일 수 있습니다.

ruby -rsocket -e 's=TCPServer.new(5**5);loop{_=s.accept;_<<"HTTP/1.0 200 OK\r\n\r\n#{File.read(_.gets.split[1])rescue nil}";_.close}'

여기 에서 찾았습니다

크리스


sinatragem을 사용할 수 있지만 디렉토리 목록을 작성하지는 않지만 파일을 제공합니다.

require 'sinatra' # gem
set :public_folder, '.'

그런 다음 1.8에서 먼저 'rubygems'가 필요하면 파일로 실행하십시오.

실행 후 URL은 다음과 같습니다.

http : // localhost : 4567 / file_name

should resolve to "./file_name" file.

http://localhost:4567 won't work however, since it doesn't "do" directory listings. See https://stackoverflow.com/a/12115019/32453 for a workaround there.


python3 -m http.server

or if you don't want to use the default port 8000

python3 -m http.server 3333

or if you want to allow connections from localhost only

python3 -m http.server --bind 127.0.0.1

See the docs.

참고URL : https://stackoverflow.com/questions/3108395/serve-current-directory-from-command-line

반응형