[Mac OS X] Забавы командной строки

70
Я, как давний поклонник Linux, полюбил OS X за то, что это практически Linux и есть, но с человеческим лицом! Вот и «великая и могучая» командная строка, как и в любой Unix-подобной системе в наличии имеется… И она разнообразит и радует мою жизнь! 🙂

А теперь от лирики перейдем к делу. И на этот раз позабавим себя запуском HTTP-сервера.

pic_0

Нет-нет, мы не будем ничего устанавливать в систему или создавать нечто подобное тому, что на картинке. У нас в системе уже есть кое-что для подобной забавы!

Приступим. Как всегда, запускаем Терминал.app и вводим следующую команду:

python -m SimpleHTTPServer 8000

должно выглядеть примерно вот так:

pic_1

А теперь, отправляемся в наш любимый браузер и водим адрес localhost:8000

pic_2

И что же мы видим? А видим мы содержимое нашего домашнего каталога. Можете погулять в нем и убедиться, что ваш сервер работает.

Конечно, запуск HTTP-сервера в домашнем каталоге какой-то особой практической ценности не несет. Но никто не мешает запустить его в любом другом каталоге, для чего нужно просто создать отдельный каталог либо в Finder, либо прямо в командной строке, например так:

mkdir MyCoolHttpServer

Наполнить его нужным содержимым, а затем перейти в созданный каталог командой:

cd MyCoolHttpServer

и уже в нем выполнить команду запуска HTTP-сервера. Да и порт 8000, на котором слушает наш сервер, тоже можно изменить на любой другой, надеюсь, разберетесь как. 😉

Экспериментируйте!

P.S. Остановить запущенный сервер можно комбинацией Ctrl+C в командной строке.

Удачи!

70 комментариев

  1. 0

    «Вот же круто! А зачем?»

  2. 0

    И какое отношение это имеет к OS X? Это штатный сервер из комплекта python.

    • 0

      Ivan, Какая версия OS X не имела (не имеет) Python-a в своем составе? 😉

      • 0

        izlat, Причем тут версия OS X? На любой системе, будь то Linux, BSD, QNX, Windows, OS X и т.д., где есть Python, данный «мануал» будет работать.
        SimpleHTTPServer — это пример работы HTTP сервера, находящийся в базовом комплекте Python.
        Давайте еще примеры работы скриптов на awk/dialog/bash писать в новостную ленту, посвященную продукции Apple. А что? Отношения они имею к системе OS X такоеже, как и Python. Или можно еще примеры работы gcc/jdk постить. Мысль я думаю ясна.

        • 0

          Ivan, Вы считаете, что находитесь в разделе «новостная лента»? 😀

          • 0

            izlat, или по вашему OS X это только ядро? 😀

            • 0

              izlat, По моему мнению, вы написали абсолютно не имеющую смысла статью о языке программирования (в котором, судя по «статье» не разбираетесь, хоть и выпендрились якобы давним пользователем Linux), завернув это зачем-то в Apple упаковку, при этом грубо исказив некоторые определения.

          • 0

            izlat, Я считаю, что нахожусь на сайте, посвященном Apple тематике, а не на LOR’e

            • 0

              Ivan, И в чем противоречие? В том, что описана пусть и стандартная фича питона, входящего в состав дистрибутива операционки от Apple?
              Если реально так считаете, обратитесь к руководству сайта, они мне запретят это делать. 😀

              • 0

                izlat, Обращусь. Не переживайте.

                • 0

                  Ivan, Жду с нетерпением! 😀

                  • 0
                    Королев Михаил

                    izlat, Не дайте, тут разберемся. В личку бегать нафиг.

                    Я понимаю обе стороны, Иван видит тут не професионализм, а Игорь хотел просто повеселить народ, о чем честно написал во 2ом комментарии. «Ради забавы.»

                    • 0

                      Королев, Да и в названии вроде как я это отметил впрямую… 😀

                      • 0

                        izlat, Вот Иван пишет: «можно еще примеры работы gcc/jdk постить. Мысль я думаю ясна.»
                        И что, все фичи включаемые/отключаемые в командной строке тоже нафиг?
                        По-моему описание штатного средства дистрибутива ничему не противоречит в контексте данной рубрики. 🙂

                    • 0

                      Королев, Я тебе уже писал на эту тему.
                      Хочется поиграть с командной строкой для управления HTTP сервером? Для этого есть вменяемые инструменты:
                      1. Управление сервисом: sudo apachectl start/stop
                      2. Управление загрузкой: sudo launchctl load/unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

                      Если хочется выпендриться на тему знания языков программирования, то нужно было хоть немного почитать про Python и штатный набор библиотек и модулей. А также хотябы сходить на вики, чтобы почитать про такие понятия, как Linux, BSD, Darwin и POSIX.

                      • 0

                        Ivan, Иван, а может из-за приводимых в этом разделе скриптов и команд закрыть нафиг этот раздел? Мысль ясна?

                      • 0

                        Ivan, Да и насчет «знания языков програмирования…», кроме тебя, Иван тут никто и не пытался выпендриваться? 🙂

                        • 0

                          izlat, Вы читаете мои ответы через строчку или через сообщение? Я уже объяснил, что именно у меня вызвало такую бурную реакцию.
                          Повторюсь для особенных: вы показали НЕ пример работы с командной строкой, а пример работы с одним из языков программирования на базе встроенных в этот язык примеров. В следующий раз не забудьте показать работу Hello World на базе шелл-скриптов. И второе, что меня убило — отсутствие понимания в понятиях (Linux, Darwin, etc..).

                          • 0

                            Ivan, Я все прекрасно понял. Но не понимаю, почему язык шелл-скриптов допустим, а язык питон в изгнании?
                            Насчет понимания Linux, darwin и т.д.
                            Если фраза «полюбил OS X за то, что это практически Linux и есть, но с человеческим лицом!» вызывает ассоциации с BSD, darwin… это уже к психиатору…
                            Видимо слово «практически» надо было ЖИРНЫМ тесктом выделить.

                          • 0

                            Ivan, Не пример работы с командной строкой? Ну тогда сделайте то же самое, но без командной строки. 😀
                            И чтобы так «простенько и со вкусом» и любому понятно…. 😀

                          • 0

                            Ivan, Иван, вас неприятно читать. Столько желчи из-за пустякового поста.
                            Если есть время и желание делиться своими бесконечными знаниями — ждем пост.

                            Хотя «Rostechnology CIO» о многом говорит.)

                            П.С. а о простоте написанного:
                            не вы ли не так давно читали Using MAC OS X Leopard ? 🙂

                        • 0

                          izlat, И на будущее. Если хотите показать, как можно управлять какой-либо из системных служб, для начала потрудитесь узнать, какая _штатная_ команда за это отвечает (выше я уже по этому поводу вам написал).

                          • 0

                            Ivan, Иван, ты решил побахвалится эрудицией что ли? Так тут это никому не нужно.
                            А давать советы на будущее… и насчет потрудитесь… Слушай. А может возьми эту рубрику себе? И заодно и потрудишся? ОК?

                        • 0

                          izlat, Точно! Он и в подкасте постоянно выпендривается!!

  3. 0
    Аноним

    >> OS X за то, что это практически Linux и есть, но с человеческим лицом!

    Не Linux, а FreeBSD. Есть очень существенные отличия. С таким же успехом в предложении Linux можно заменить на Solaris или HP-UX.

    Нормальный http-сервер и так есть в поставке osx, причем гораздо более функциональный и удобный.

    • 0

      Аноним, >>Не Linux, а FreeBSD
      Не FreeBSD, а BSD, и не BSD, а darwin. Учите матчасть.
      Лучше б аффтар реально полезные фичи какие написал, а то это КОшные штуки, которые делаются двумя кликами мыши.
      Давно требовалась настройка ОСи из CLI, ибо часто VNC недоступен, приходилось удалённо через SSH настраивать. CLI реально часто спасает =)

      • 0
        Аноним

        Alex, Я имел ввиду архитектуру и набор стандартных программ, большинство из которых взяты из FreeBSD, часть из NetBSD, но уж никак не из Linux.

      • 0

        Alex, В задачи «аффтара» написание полезных фич не входит… я же написал в конце — «Экспериментируйте!». Вот и пишите сами все, что посчитаете нужным… 😀

      • 0

        Alex, и если учить матчасть, то до конца, а не урывками: «Основу системы составила POSIX-совместимая операционная система Darwin, которая является свободным программным обеспечением. Её ядром является XNU (рекурсивный акроним от «Xnu is Not Unix» — «Xnu — не Юникс»), в котором используется ядро Mach и стандартные сервисы BSD.»

  4. 0

    Спасибо автору!

    Написали бы душевный мануал для работы с библиотеками типа SimpleHTTPServer, все рады будут 😉

  5. 0
    Сергей

    Странная статья. BSD отличается от Линукса, но не в этом дело. Странно запускать вэб-сервер через Питон.
    Не проще было сделать port install httpd и далее сконфигурить всё как следует?

    • 0

      Сергей, Никто так и не понял, что забавы ради… Грустно… 🙁

      • 0

        izlat, Не удивляйтесь и не расстраивайтесь…
        .
        Для Ребят Unix Linux и OS X это ТРИ Разные OS и я их прекрасно понимаю…
        POSIX это всего лишь Стандарт для совместимости…
        И об этом они вам и сказали…
        Не специалисты (вроде Меня) не заинтересуются а Специалистам хочется большего! 🙂

        • 0

          Type, Они безусловно разные, но все три юникс-подобные. Я даже написал «Вот и «великая и могучая» командная строка, как и в любой Unix-подобной системе…». Про их внутреннее устройство и основы ни слова в статье не писал. Но каждый решил блеснуть эрудицией. И понесло их вглубь… А для чего? Кроме как блеснуть… других причин не вижу…

          • 0

            izlat, Да и если кому хочется именно «блеснуть», так пишите свои заметки, статьи… Предлагайте к публикации… 😀

  6. 0
    не поклонник Linux

    Странные у тебя забавы в командной строке,парень.

    Старайся быть проще,а то вон, Ivan Tiukov придет за тобой.

  7. 0

    Автор Спасибо! Не обращай внимания на выпендрежников и самопиарщиков. А Тиуков пусть на хабре умничает!

  8. 0
    читающий-непишущий

    гы, тролли форева…опять в интернете кто-то неправ

  9. 0

    idioti nekotorie a avtor bravo!

  10. 0

    Попробовал на Ubuntu 10.10 работает) Как и написано выше это Python’овская примочка, а от ОС не зависит))

  11. 0
    iGor Schmidt

    Вброс говен в вентилятор засчитан, пост можно удалять.

    Полностью солидарен с Иваном Тиуковым: статья- редкостное говно.
    Системные настройки -> Общий доступ
    ставим галочку на «Общий Веб-доступ» и HTTP-сервер запущен.

    Если уж привязываться к «трюкам» командной строки- то, как уже писал Тиуков:
    sudo apachectl start

    ИМХО такие статьи только засоряют ресурс и снижают общую личную оценку качества информации, представляемой сайтом.

    • 0

      iGor, Было намного больше «говно статей» и что то вы молчали, а тепер Утикову потпиваете. Статья дала повод для отображения более обширной информации в освещаемом вопросе!

Авторизуйтесь Чтобы оставить комментарий