Программирование на Python и Objective-C в Mac OS

Программирование на Python и Objective-C под Mac OS и для iPhone / iPod Touch

Linux для web разработчика: 11 лучших дистрибутивов Linux для программиста | GeekBrains

Содержание

11 лучших дистрибутивов Linux для программиста | GeekBrains

Пригодится тем, кто устал от популярных систем.

https://gbcdn.mrgcdn.ru/uploads/post/1635/og_cover_image/ed6ff579c5e5801a463225788d9515da

О том, какая операционная система лучше, можно спорить бесконечно — у противоборствующих лагерей полно разумных аргументов. Сегодня мы поговорим про линуксовые системы — в отличие от конкурентов, они дают больше свободы, позволяют конфигурировать их под свои задачи и возможности машины. Формат open-source — ещё один их плюс. Это именно то, что так любят программисты. Если подумываете отказаться от «родных» Windows или MacOS — ловите подборку лучших дистрибутивов Linux-систем.

Ubuntu считается лучшей системой для новичков, переход на неё с Windows и MacOS не уничтожит ни единой нервной клетки. Установка программ и пакетов предельно проста: базовое знакомство — и вы не почувствуете неудобств. Для разработчиков и программистов эта линуксовая ОС привлекательна стабильностью и надёжностью.

Ubuntu постоянно растёт и обновляется, в этом она схожа со «старшими» конкурентами. Как у Windows, у неё есть несколько дистрибутивов (Lubuntu, Xubuntu, Kubuntu), которые сохраняют функциональность, требуя меньше ресурсов. Это весомый аргумент для старых машин или задач, где нужна высокая производительность.

Бонус — отличная поддержка ОС. Все недочёты в Ubuntu устраняются молниеносно, техническая поддержка отвечает на вопросы постоянно, перечень дистрибутивов программ огромный и постоянно пополняется.

Американский производитель компьютеров и серверов System76 в прошлом году выпустил операционную систему Pop!_OS. Формально это та же Ubuntu, но изменения в графической оболочке GNOME и подключение собственных пакетов юридически сделали её новой системой.

По факту, для российского пользователя Pop!_OS — это Ubuntu с изменённым интерфейсом и улучшенной функциональностью. Если у вас есть претензии к внешнему виду первого фигуранта нашего списка — попробуйте Pop!_OS.

Debian — базовая ОС как для вышеупомянутых Ubuntu и Pop!_OS, так и менее раскрученных SteamOS, Linux mint, Knoppix. Исключительная стабильность делает Debian надёжным фундаментом для надстроек. Если захотите сделать свою операционную систему с блэкджеком и прочими приложениями — кастомизируйте Debian.

Red Hat Enterprise Linux (RHEL) — одна из известнейших корпоративных ОС на базе Linux. CentOS — её ближайшая альтернатива, позволяющая запускать большинство приложений от RHEL и пользоваться менеджером загрузок YUM. Ещё одно преимущество — CentOS имеет доступ к репозиторию Red Hat Software Collections (RHSCL), расширяющему возможности по использованию языков и баз данных.

CentOS подходит для профессиональной разработки, позволяя не тратить время на организацию взаимодействия с коллегами и поиск свежих дистрибутивов.

Альтернатива RHEL для корпоративного использования. Обновления выходят каждые полгода, все необходимые пакеты включены в базовую сборку, конфигурация автоматическая. Факт (почти реклама): Fedora использует сам Линус Торвальдс, оценивая эту ОС выше Ubuntu и Debian.

Операционная система, предназначенная для программистов в области кибербезопасности. Если вы видели сериал «Мистер Робот», то наверняка приметили там Kali Linux. Она основана на Debian и содержит множество инструментов для взлома и защиты системы. К примеру, «из коробки» поставляются John the Ripper — утилита для восстановления паролей из хэшей, Aircrack-ng — улавливатель беспроводных сетей и перехватчик трафика, а также сканер OWASP ZAP. Такой набор будет интересен каждому разработчику, и это только малая часть возможностей.

Ещё одна фича — возможность полноценно установить ОС на Raspberry Pi в качестве альтернативы Raspbian.

Если вам нужна легковесная операционная система с гибкими возможностями настройки (в том числе ядра), обратите внимание на Arch Linux. ОС поставляется с голым «фундаментом» и Pacman — менеджером пакетов. Графический интерфейс идёт как опция, а не необходимая составляющая, что ценят тру-программисты.

У Gentoo те же преимущества и недостатки, что у Arch. К первым можно отнести тотальный контроль над сборкой: буквально каждый элемент будет установлен только с вашего разрешения. Отсюда и недостатки — без опыта в линуксовых системах собрать удобную ОС будет затруднительно.

Вариация Linux ОС для профессиональных программистов. Ядро Kernel и менеджер пакетов — чтобы создать надёжную систему для личного пользования. Настройка здесь чуть удобнее, чем в предыдущих дистрибутивах, но лучше запаситесь кофе и терпением — установка займёт много времени.

Вернёмся к «дружелюбным» системам, на которые стоит обратить внимание Linux-новичку. OpenSUSE — достойная альтернатива Ubuntu. Удобна для разработчиков благодаря множеству доступных сред и приложений, загружаемых с помощью менеджера пакетов YaST. С ним вы забудете о стандартных приложениях Windows и MacOS — здесь тоже всё на высшем уровне.

Завершим обзор самой понятной системой для новичков. В Elementary масса графических надстроек, так что перейти на нее с привычной ОС будет легко. Возможностей для разработчика здесь немного, зато пользователь оценит множество эксклюзивных GUI и приложений.

Если понравилась Elementary OS, обратите внимание на ChaletOS и Manjaro. Это схожие по устройству системы, которые подойдут для повседневного использования: просмотра почты, фотографий, видео. С их помощью можно дать вторую жизнь старому ноутбуку.

Сборок и кастомных систем Linux значительно больше перечисленных одиннадцати. Но именно они на сегодняшний день наиболее популярны и стабильны. Познакомьтесь с ними, «набейте руку», оцените преимущества и недостатки и обязательно расскажите о своем опыте в комментариях!

Linux для web-разработчиков

Наша студия специализируется на комплексном интернет-маркетинге. Такой вид услуг подразумевает высокое качество работ. Проще говоря мы не работаем по схеме — создали и забыли. Мы ведем проекты на протяжении долгого времени (от нескольких месяцев до нескольких лет). В этой связи мы стараемся максимально стандартизировать все этапы работы, также как и среду работы. Благодаря этому качество исполнения у нас держится на достаточно высоком уровне.

В данной статье будет описываться пример перехода одной из студий на Линукс, а конкретно на дистрибутив Linux mint.

Для начала нужно описать причины, которые побудили компанию пойти на такой шаг.

Причина №1 — Проблемы закупки лицензионного ПО.

Конечно же ОС — Использовать нелицензионные копии ОС Windows в наше время достаточно опасно, в любой момент в дверь может постучаться отдел К.

В студиях полного цикла, где работают сотрудники разных профилей используется целый спектр специализированного программного обеспечения. Это и Фотошоп для дизайнера и Phpstorm для программистов. В ряде некоторых случаев можно воспользоваться бесплатными аналогами, но тут возникает вопрос удобства и привычки, который в достаточной мере влияет на производительность сотрудников и даже качества исполнения в конечном итоге.

Причина №2 — Идея максимально приблизить среду разработки к реальной.

Не секрет, что большинство серверов, на которых располагаются сайты используют ОС семейства UNIX. И для нормальной (читай комфортной и удобной) работы с серверами мы посадили наших web-девелоперов на Linux. Работая постоянно с терминалом с подмонтированными серверами сотрудники здорово повышают свой личный «скилл».

Кроме подмонтирования серверов в терминале мы так же подключили их напрямую в проводник. То есть, чтобы войти на сервер и провести простые и более операции с файлами (копирование, создание, удаление и т.д.) всего лишь можно воспользоваться стандартным проводником (NEMO). Никаких сторонних программ. Подробнее об этом чуть ниже.

Итак. Перечислим часто используемые инструменты web-разработчика.

  • редактор кода
  • графический редактор
  • средство для пакетного редактирования фотографий
  • файловый менеджер (с возможностью подключения к серверам)

Редактор кода

Sublime Text 3

Большинство сотрудников нашей компании использует отличный редактор Sublime Text 3. Он удобен и гибок в настройке. Используют его как контент-менеджеры, так и программисты. Огромное количество плагинов и возможность работы со сниппетами склоняет чашу весов в пользу Sublime Text 3.

Работа с Sublime Text 3 в Windows и Linux не отличается. Разве что пути до файлов настроек разные 😉

PHPstorm

PHPstorm — тяжеловес среди редакторов кода и несомненно лидер. В пользу него можно сказать многое. Это и возможность добавления сниппетов через GUI, да и вообще, для того чтобы настроить его под себя не нужно лезть в файлы настроек. Несомненным плюсом данной софтины является возможность работы с версионностью. Этакий аналог GIT. Программа сканирует файлы на сервере на предмет изменений и вовремя оповещает о таковых пользователя. Единственным минусом, который мы обнаружили во время тестирования программы на Linux оказалась ужасно долгая синхронизация.

Кроме Sublime Text 3 и PHPstorm были протестированы и другие решения, такие как Microsoft Visual Studio и Komodo, но в силу определенных обстоятельств в финал вышли только две программы.

Графический редактор

Использовать GIMP наш дизайнер бы наотрез отказался посади мы его на Linux, так как GIMP не умеет или вернее не корректно работает со слоями. Но так как дизайнер сидит за Mac, то кучи криков и возражений избежать удалось.

Что касается контент-менеджеров, то тут GIMP может полноценно заменить его аналоги на Windows. И даже больше, иногда контент-менеджерам приходится работать со слоями, и это им вполне удается, благо масштабы не те.

Учитывая что GIMP полностью позволяет выполнять поставленные задачи другие редакторы не тестились.

Средство для пакетного редактирования фотографий

Это особенно актуально для контент-менеджеров, которым очень часто нужно отресайзить кучу картинок, обрезать их под единый размер. На Windows для этих целей использовалась программа Infan View и она полностью удовлетворяла все потребности. В качестве альтернативы на Linux мы выбрали консольную утилиту ImageMagick. Да, программа консольная, но учитывая, что мы работаем на Linux, было бы, мягко говоря, не хорошо использовать только графическое ядро. Утилита обладает огромным функционалом, позволяющим производить практически любые действия над большим количеством фотографий.

Файловый менеджер

Вот тут мы и пришли к самому интересному. На Windows мы все использовали программу Winscp, на Linux полноценного аналога данной программы нет. Поэтому было принято решение использовать подмонтирование серверов как внешних дисков и последующая работа с ними через проводник Nemo. С точки зрения удобства работы данный способ очень хорош, но есть один большой минус. Это права. Создавая файл/папку на сервере мы создаём её от пользователя ROOT. Это плохо в первую очередь с точки зрения безопасности, во-вторых в последующим у тех, кто работал с созданными файлами или папками из под Windows возникали проблемы с их удалением/редактированием.

Данную проблему пока не удалось решить полностью. В качестве временного решения используем консольные команды меняющие права на папки и файлы с которыми мы работаем. Но и тут есть своя специфика. Данные команды нужно использовать крайне осторожно. Были случаи, когда по незнанию/рассеянности одной командой менялись права на весь сервер, что в свою очередь приводило к сбоям в работе.

Подытожим

Linux — это отличная операционная система, в которой однозначно можно работать web-разработчику. Большинство проблем, возникающих в процессе работы являются следствием незнания системы и «привычки», оставшийся после Windows.

В чем преимущества *nix, linux перед windows (для веб разработчика)? — Хабр Q&A

Нету никаких проблем.
Если только ваше конкретное используемое для ваших задач ПО нормально работает с Windows.

Например, в моем случае используется Ansible и Docker, который не поддерживается на Windows. Приходится использовать Vagrant. Это достаточно удобно. Но ресурсы все же кушает.

А так — даже Vim хорошо себя чуствует на Windows. Нативный. Не cygwin.

Microsoft это тоже понимает.
И вот уже они встроили подсистему Linux Ubuntu в Windows 10. Это не виртуализация, а именно полноценная подсистема.

И многие вещи, например, те же шрифты — в Windows работают лучше, чем под Linux.

Могут сказать — что лучше использовать для разработки ту же среду что и для production.

Но дело в том, что даже если вы сидите на Ubuntu Desktop, то ваша среда серьезно отличается от среды сервера FreeBSD, CentOS, Debian, Ubutntu Server. И для полноценного CI все равно умные дядьки категорически рекомендуют и на Linux даже использовать Docker для полноценной эмуляции.

Но ведь Docker-то можно использовать и на Windows. Правда, запускается он там подольше.

Где именно вести разработку, где вам удобнее — это ваше личное дело. Вопрос ваших предпочтений. Никаких объективных причин в наше время, когда существуют Docker, Vagrant и виртуальные машины, когда куча приложений изначально сделанных для *nix запускаются в native под Windows — нет никаких причин себя строить. Кроме любопытства — а как оно там на других системах живется.

У тех кто вас троллит есть еще одна причина: им приятно показать себя более умными. Как же — ведь Linux можно сконфигурить руками.

Ага, конечно.

Или используют готовые десктопные дистрибутивы. Не зря Ubuntu так популярна.
Или если освоили ArchLinux — то построили себе совершенно убогое окружение по готовым мануалам.

Чтобы действительно набрать скиллы ручной настройки Linux — нужно огромное количество упроства и времени, чем ваши друзья, которые вас троллят, вряд ли обладают.

На деле 99% твердящих о гибкости Linux — далее чем ставить Apache и MySQL из пакетов — ничего сами и не умеют. Фактически работая в то же настроенной другими людьми десктопной среде. Но разве вы не умеете делать то же самое под Windows?

Другое дело, что разворачивать и тестировать нужно под аутентичным операционным окружением.
Неважно под Ubuntu ты сидишь или под Windows.

Лучшие практики советуют использовать полностью изолированный и независимый от рабочего места разработчика инструментарий — виртуальные машины, Vagrant, Docker, отдельные физические сервера.

В этом случае под твоей любимой ОС работает только текстовый да графический редактор. А все развертывание для тестирования и для продакшн проводится в совсем другой среде.

Используя Docker хоть под Windows ты будешь получать даже больше преимущество повторяемости рабочей среды чем тем кругом, кто советуют тебе просто перейти на Linux. Если на более слабом железе это и было бы существенно (Docker под Linux стартует быстрее), то на твоем — несущественно на чем работать.

Зачем веб-программисту Linux?

Если вы занимаетесь веб-разработкой или веб-программированием, есть такая сфера, которая, как я считаю, важно знать каждому программисту. Эта сфера работы с операционной системой linux. 

Давайте я попытаюсь в этом видео объяснить почему это важно знать, всем ли это важно знать и зачем это важно знать?

Такие базовые моменты посмотрим. Я расскажу о свое мнение по этому вопросу. Возможно, вы с чем то согласитесь или не согласитесь, но, тем не менее, давайте приступим.

Важно понимать, что linux это одна из самых распространенных операционных систем в мире. Возможно, вы знаете что операционная система android работает на основе операционной системы linux.

В промышленности очень широко используется эта операционная система.

Если вы будете заниматься веб-программированием каких-то контроллеров микроконтроллеров или работать с программной частью, скорее всего, в этих системах вы будете иметь дело с операционной системой linux.

Если вы работаете со сферой web-разработки с облачными решениями какими-то веб-серверами и так далее, скорее всего, там тоже вы столкнетесь с linux.

Возникает только вопрос времени, когда вы столкнетесь вплотную с этой операционной системой.

Почему же система linux получила такое большое распространение?

В первую очередь, этому послужило то, что это бесплатная система, с открытым исходным кодом.

Эта система очень надежная, надежность которой проверено многими годами развития этой операционной системы.

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

Конечно, мы с вами привыкли к операционной системе windows, операционной системе mac os т.к. они установлены на наших ноутбуках, на наших десктопных компьютерах. 

Тем не менее, доля linux в различных сферах жизни очень значительная.

Действительно, зачем же вам изучать этот linux? 

Сейчас существуют очень много решений, которые позволяют вам установить и использовать что-то готовое. 

Например, если мы говорим о веб-серверах, то есть готовые решения как open server, денвер, XAMP

Если мы говорим о программировании на языке python, есть такие решения как conda и другие которые позволяют установить уже готовый набор программных средств, утилит которыми вы можете пользоваться и у вас все будет работать.

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

Все настроено, все работает и причем большинство хостингов предоставляют уже готовые решения, на которых уже все установлено.

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

Зачем же нужно знать linux, если большинство задач можно решать с помощью этих систем?

Большинство проблем могут возникнуть у вас, если вам нужно будет что-то особенное.

Т.е. вы уже перешли грань начального развития и вам недостаточно уже каких-то обычных библиотек, обычных языков программирования, вам нужна особая версия языка программирования, либо какая-то особая версия какой-то библиотеки, которая должна быть установлена в этой операционной системе. 

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

Здесь уже сложности. 

Либо вам нужны особые настройки какого-то системного программного обеспечения. 

В таких ситуациях достаточно сложно обойтись этими готовыми решениями, о которых я только, что говорил.

В этих ситуациях от вас требуется понимание самого процесса работы с операционной системой linux. 

Каждому в программисту важно понять откуда произошла ошибка, чем она вызвана, как вы можете исправить, как вы можете посмотреть причину этой ошибки? 

Это базовые вещи, которые должен, как я считаю, знать каждый программист. Конечно, глубоко погружаться в эту сферу не нужно, но, хотя бы, базовые знания о работе с операционной системой linux должны быть у каждого веб-программиста.

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

Подводя итог, я хотел бы сказать следующее, что серьезное программирование без знания основ linux просто невозможно. В любом случае, вам рано или поздно придется столкнуться с этой операционной системой.

Если у вас нет ясности в этом вопросе, вы будете просто подвисать в этом.

Вам придётся платить деньги другим специалистам, чтобы они решили за вас какую-то определенную проблему

В принципе, какие-то базовые вещи можно делать и без знания linux, но знания linux дает вам значительное конкурентное преимущество перед другими специалистами. Может сэкономить вам время в сфере, в которой мы с вами работаем 

Надеюсь, что я вас убедил и вы хотели бы дальнейшем обучаться linux.

Возможно, мои уроки по этой теме окажутся для вас полезными. Встретимся в следующем видео.

10 лучших дистрибутивов Linux для разработчиков и программистов

Сегодня мы сосредоточимся не просто на примерах дистрибутивов Linux, а именно на тех из них, которые лучше всего подходят для разработчиков и программистов.

 

1. Ubuntu

Ubuntu — это удобная операционная система, разработанная с целью сделать GNU/Linux доступным для обычных пользователей без потери стандарта вычислительной мощности.

Ubunu OS является самым популярным дистрибутивом Linux в мире и когда-то была единственной операционной системой, отличной от Windows или Mac, которую знала большая часть мира. Фактически, большая часть знаний об открытых источниках, которую мы сейчас имеем, напрямую связана с Ubuntu и усилиями, которые его материнская компания Canonical привнесла в сообщество.

 

 

2. Manjaro

Manjaro — это операционная система на базе Arch Linux, разработанная, чтобы быть быстрой, удобной и интуитивно понятной при одновременном использовании возможностей Arch Linux и многого другого. Она имеет приятный дизайн пользовательского интерфейса, даже если вы мигрировали с платформы Windows или Mac у вас не возникнет проблем при работе.

Помимо пользы от Arch Linux, пользователи Manjaro могут настраивать несколько ядер и использовать специальные сценарии bash для настройки системы по своему вкусу.

 

3. openSUSE

openSUSE — это профессиональная и поддерживаемая сообществом операционная система, предназначенная для обеспечения надежной вычислительной мощности работы. Она распространяется в 2 версиях: Leap — выпуск с долгосрочной поддержкой (LTS) и Tumbleweed — плавающий релиз, они оба используют менеджер пакетов YaST для управления приложениями пользователям.

openSUSE — это независимый дистрибутив Linux, основателем которого является SUSE Linux в сотрудничестве с другими компаниями, и он призван значительно упростить процесс разработки и упаковки программного обеспечения для разработчиков и поставщиков.

 

 

4. Debian

Debian — это независимый дистрибутив Linux, который был создан объединенной ассоциацией людей, желающих сделать бесплатную операционную систему, доступную для всего мира. Она разработана, чтобы быть вычислительной мощью, способной работать на различных типах оборудования, особенно при использовании для разработки.

Debian — одна из немногих ОС, поставляющих более 50 000 пакетов и предварительно скомпилированного программного обеспечения, удобно упакованных для легкой установки, настройки и разработки.

 

 

5. Fedora

Fedora — это бесплатный дистрибутив Linux с открытым исходным кодом, созданный с целью поощрения передовых технологий за счет инноваций, тесного сотрудничества с сообществами Linux.

Fedora принадлежит Red Hat, и была разработана независимо от любого другого дистрибутива Linux. Fedora доступна в нескольких версиях, называемых «Spins».

 

 

6. Red Hat Enterprise Linux (RHEL)

RHEL (также только Red Hat) — это открытый, но проприетарный дистрибутив на основе Fedora, созданный специально для корпоративных вычислений на разных технологических пратформах. Он выпускается в серверных выпусках для архитектур IBM System z и PowerPC, среди прочего, и его целью является предоставление надежных облачных, программных приложений, услуг по автоматизации и управлению, интеграции и инфраструктуры через Linux.

RHEL поставляется с открытым исходным кодом, поэтому его исходный код достуен и можно все перекомпилировать; но помните, что он нацелен на предприятия и не является ни бесплатным, ни доступным для распространения из-за строгих правил в отношении товарных знаков.

 

 

7. Raspbian

Raspbian — это дистрибутив на основе Debian, оптимизированный для Raspberry Pi и, следовательно, построенный с акцентом на функции, необходимые разработчикам для программирования оборудования Raspberry Pi для обеспечения максимально возможной производительности. Его первая полная сборка была завершена еще в 2012 году.

Примечание: Raspbian — это инициатива специальной группы соавторов и любителей проекта Debian, для образовательных целей и поощрять развитие с помощью Raspberry Pi.

 

 

 

 

8. Ubuntu Core

Ubuntu Core — это упрощенная версия дистрибутива Ubuntu на основе Debian, предназначенная для безопасной работы и разработки систем IoT. Он явно использует технологию упаковки приложений Canonical — snaps, и позволяет пользователям разрабатывать профессиональные IoT-приложения с нуля до развертывания с обеспечением безопасности и всеми другими необходимыми фичами.

Если ваша среда разработки предназначена для Интернета вещей, его приложений и/или аппаратного обеспечения, тогда Ubuntu Core — это то, что вам нужно — “Ubuntu в портативном пакете”.

 

 

9. Arch Linux

Arch Linux — это независимая, мощная операционная система по типу «сделай сам», оптимизированная для архитектур x86 и x64 и предназначенная для компетентных пользователей Linux. Она распространяется в виде плавающего релиза с функцией, которую многие пользователи недолюбливают – возможность для администраторов полностью контролировать контент и функциональные возможности своей операционной системы.

Arch Linux — сложный дистрибутив, и, хотя он, возможно, не является любимым выбором для новичков в Linux, он, безусловно, является одним из самых продвинутых дистрибутивов доступных сегодня, особенно с учетом его менеджера пакетов Pacman и Arch Wiki, который даже содержит полезную информацию не для Arch Linux-основанных операционных систем.

 

 

10. CentOS

CentOS — это управляемая сообществом операционная система на основе Fedora, разработанная как некоммерческая версия RHEL с акцентом на использование Linux для обеспечения надежной экосистемы с открытым исходным кодом с использованием двух версий: CentsOS Linux — стабильный выпуск и CentOS Stream — скользящий выпуск. Она поставляется с широким спектром инструментов программирования для разработчиков наряду со стабильностью корпоративного класса без платы за поддержку или сертификацию.

Если вы заинтригованы Red Hat Enterprise Linux, но не являетесь компанией, то CentOS — это тот дистрибутив, который вы ищете.

 

 

Уже общеизвестно, что вычислительные среды Linux просты в настройке и зачастую настроены для какой-либо формы разработки прямо из коробки, в отличие от операционной системы, такой как Windows. Но не существует двух одинаковых операционных систем, и некоторые из них способны выполнять ваши потребности лучше, чем другие.

 

Какой из дистрибутивов вы решили использовать для вашего следующего проекта? Не стесняйтесь, дайте нам знать ваши мысли и предложения в разделе комментариев ниже.

 

 

Спасибо за уделенное время на прочтение статьи о 10 лучших дистрибутивов Linux для разработчиков и программистов!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности,  полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.

Что Вы получите?

  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.

Как проходит обучение?

  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.

А еще поможем Вам:

  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.

Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.

Основные Linux-команды для веб-разработчика | Медиа Нетологии

Руководитель проектов Дмитрий Мирошниченко специально для «Нетологии» составил список консольных команд, которые пригодятся начинающему веб-разработчику.

Веб-разработчикам рано или поздно приходится работать с сервером на Linux. Рассмотрим основные команды, которые понадобятся новичкам, на основе Linux дистрибутива Debian.

 

Работа в линуксе для меня — это, прежде всего, работа в консоли. Если вы привыкли к графическому интерфейсу, будет сложно. Но зато потом, когда освоитесь, вы оцените, как это удобно.

Файловая система в линуксе немного отличается от виндовой. Тут нет привычных дисков С и D. Зато есть корень диска. Отмечается косой чертой / От него идет отсчет всех директорий. Например, в директории /home хранятся все домашние директории пользователей.

Для любой команды в линуксе есть встроенная справка. Вызывается man команда. Например, можно посмотреть справку по команде man.

Так выглядит встроенная справка в линуксе

В линуксе есть много способов сделать какое-либо действие. Можно пользоваться разными программами. Я рассмотрю лишь те, которыми пользуюсь сам и которые мне удобны. Для вас набор может быть другой. Помните, что это всего лишь один из вариантов.

 

apt-get

Основной менеджер пакетов в дебиане.

apt-get update — обновление базы пакетов

apt-cache search ключевое_слово — поиск информации в базе пакетов по названию и описанию

apt-get install пакет — установка пакета из репозитория, зависимости также подтянутся

apt-get remove пакет — удаление пакета из системы

 

service

Команда работы с сервисами. Их можно запускать, останавливать, перезапускать и смотреть статус работы.

service nginx restart — перезапуск Nginx

service nginx reload — применение новых конфигов без перезапуска сервера

 

service php7.0-fpm restart — перезапуск php-fpm обработчика

service php7.0-fpm reload — аналогично Nginx.

 

PHP

Php-интерпретатор, консольная версия. Полезна для запуска различных скриптов в кроне (Cron). Например, парсеров.

 

python

Интерпретатор для Python-скриптов. Аналогично PHP.

 

mc

Менеджер для работы с файлами. Идеологически противоречит работе в голой консоли, но с ним новичкам проще работать.

Классический двухпанельный midnight commander в действии

Можно в одной панели подключиться к удалённому серверу и перекидывать файлы.  Работает медленно, но хорошо видно что происходит

 

Cron

Запуск заданий по расписанию. Незаменимая вещь при автоматизации.

 

Быстрый веб-сервер. Я использую его на своих проектах.

В директории /etc/nginx/sites-available находятся конфигурационные файлы для сайтов.

service nginx restart перезапуск Nginx

service nginx reload — применение новых конфигов без перезапуска сервера

service nginx stop — остановка веб-сервера

 

Веб-сервер чуть медленнее, чем Nginx. Один из самых популярных в интернете.

Одна из ключевых особенностей — .htaccess файлы дополнительной конфигурации. Можно управлять отдельными папками. Размещаете этот файл в папке и прописываете в нём правила.

Этим хорош и плох Apache одновременно. Хорош, тем что можно гибко настраивать каждую папку, плох тем, что конфигурационные файлы разбросаны по разным местам.

service apache2 restart — перезапуск Apache

service apache2 reload — применение новых конфигов без перезапуска сервера.

service apache2 stop — остановка веб-сервера

 

Популярная система контроля версий. Без неё невозможна современная разработка. Базовые команды можно освоить за 15 минут прямо на сайте.

 

rsync

Синхронизирует две директории. Можно синхронизировать директории на разных серверах через SSH.

 

Аналог push в git (закачать изменения на удалённый сервер):

rsync -aP ~/dir1 [email protected]_host:destination_directory

-aP — архивация трафика плюс показывать прогресс работы

~/dir1 — директория, откуда нужно залить изменения

username — имя пользователя на удалённом сервере

remote_host — ip или hostname удалённого сервера

destination_directory — директория, куда нужно залить изменения

 

Аналог pull в git (закачать изменения на наш сервер):

sync -aP [email protected]_host:destination_directory  place_to_sync_on_local_machine

-aP — архивация трафика плюс показывать прогресс работы

username — имя пользователя на удалённом сервере

remote_host — ip или hostname удалённого сервера

destination_directory — директория откуда нужно залить изменения

place_to_sync_on_local_machine — директория, куда нужно залить изменения

 

Чтобы исключить какие-либо директории:

—exclude=pattern_to_exclude source destination …

 

Нестандартный порт можно указать через параметр -e:

-e «ssh -p11111»

 

lftp

Перенос файлов между серверами по протоколу ftp.

 

Копирование всех файлов без исключений директорий:

lftp -u name -e ‘mirror to from’ server

name — имя пользователя на удалённом сервере

to — директория, куда надо копировать файлы

from — директория, откуда надо копировать на удалённом сервере

server — адрес или хостнейм удалённого сервера с которого нужно получить данные

 

Копирование всех файлов, исключая директорию tmp:

lftp -u name -e ‘mirror —exclude tmp to from’ server

name — имя пользователя на удалённом сервере

to — директория, куда надо копировать файлы

from — директория, откуда надо копировать на удалённом сервере

server — адрес или хостнейм удалённого сервера с которого нужно получить данные

 

Копирование файлов  по одному между серверами:

lftp -u name -e «get tmp/tm.sql» server

name — имя пользователя на удалённом сервере

tmp/tm.sql — путь к файлу, который нужно скопировать

server — адрес или хостнейм удалённого сервера с которого нужно получить данные

 

mysql

Команда для работы с базами данных. Например, можно развернуть бекап:

mysql -u username -p dbname < filename.sql

username — имя пользователя базы данных

-p — требовать ввести пароль

dbname — название базы данных

filename.sql — дамп базы данных

 

mysqldump

Создаёт дамп базы данных.

mysqldump —add-drop-table —default-character-set=utf8 -u username -p dbname > filename.sql

—add-drop-table — удалять таблицы, если существуют с таким-же именем

—default-character-set=utf8 — кодировка utf8

username — имя пользователя базы данных

-p — требовать ввести пароль

dbname — имя базы данных

filename.sql — файл с дампом базы

 

tar

Создаёт и распаковывает тар архивы.

 

Сделать архив:

tar -cvf archive.tar file1.txt file2.jpg

-cvf — создать новый архив в файл

archive.tar — название архива

file1.txt file2.jpg — файлы, которые будут упакованы. Если нужно упаковать все файлы в директории нужно указать *

 

Для распаковки архива:

tar -xvf archive.tar

-xvf — распаковать архив из файла

archive.tar — название архива

 

unzip

unzip archive.zip — распакует архив archive.zip в текущую директорию

 

cp — копирование файлов и директорий.

mv — перенос файлов и директорий.

rm — удаление файлов и директорий.

chmod — изменение прав доступа на файл или директорию. Права можно задавать как цифрами в двоичной или десятичной системе счисления, так и в понятном для человека.

Три вариант записи прав пользователя

chown — изменение владельца файла или директории.

 

nano — простой текстовый редактор. Идёт по умолчанию в куче дистрибутивов. В большинстве случаев его хватает для правки конфигов.

vim — «православный» текстовый редактор. Сложный для восприятия новичками. Но если если изучить, вы будете неудержимы и вас будут уважать все линкусоиды.

 

bash — популярная командная оболочка. Можно писать последовательные команды для выполнения. Часто повторяемые рутинные операции хорошо писать в баш скрипты. Пусть за вас потеет машина. Основные возможности описаны на bash.im.

Python — простой и понятный язык программирования на котором можно писать всё что угодно, включая скрипты для администрирования.

Если вкратце, то это минимально необходимый набор. Буду рад вашим дополнениям в комментариях.

Windows, Mac или Linux — Что выбрать для веб-разработки?