Инструменты для web-разработки под Linux
Мой список часто используемых программных инструментов для web-разработки под операционной системой GNU/Linux. В статье приведены инструкции для установки программ под Ubuntu, но эти инструкции также будут работать и под Debian.
Бесплатный аналог программы Adobe Photoshop. На мой взгляд, из-за отсутствия некоторых возможностей и общей недоработанности не является полноценным аналогом Photoshop. Но со временем эта программа может стать достойным соперником Photoshop.
Gimp прекрасно подойдет для простой обработки изображений, а также поможет справиться и с более сложными задачами.
Как установить в Ubuntu:
Inkscape
Inkscape — Open Source редактор векторной графики. Несмотря на самый уродливый интерфейс, который я когда-либо видел, Inkscape является очень мощным инструментом и по своим возможностям в некоторых случаях даже превосходит платный Adobe Illustrator.
Как установить в Ubuntu:
ImageMagick
ImageMagick — редактор графики с интерфейсом командной строки (CLI); великолепно подойдет для задач пакетного изменения размеров изображений. А также для других задач, в которых требуется выполнять многократно повторяющиеся операции над множеством изображений. Например, таких как добавление водяных знаков (watermark), придания четкости (sharpening) или же добавление различных фильтров для изображений. На официальном сайте программы ImageMagick расположена подробная инструкция по ее использованию.
Как установить в Ubuntu:
Gedit
Текстовый редактор Gedit «из коробки» обладает не слишком большими возможностями и фактически является простым текстовым редактором общего назначения. Но при установке дополнительных плагинов Gedit превращается в достаточно функциональную IDE для web-разработки.
Под Gedit создана коллекция плагинов GMate, которая добавляет в текстовый редактор большое число отличных плагинов, тем оформления и MEME-типов, превращая Gedit в некоторое подобие редактора TextMate.
Как установить в Ubuntu:
Sublime Text
Я использую редактор Gedit для быстрой и незначительной правки кода. Но когда требуется полное погружение в проект, то единственным способом сделать это является редактор Sublime Text. Он обладает огромными возможностями, но на мой взгляд, Multiple Selections и Command Palette уже достаточно для того, чтобы открыть любой документ или добраться до любого пункта меню с помощью нескольких сочетаний клавиш.
Примечание переводчика: автор не упомянул о способе установки редактора Sublime Text в операционной системе Ubuntu. Наиболее действенным способом является посещение домашней страницы проекта и скачивание оттуда готового пакета нужной архитектуры (32bit или 64bit). Таким образом, в наличии всегда будет самая свежая версия редактора Sublime Text.
Sass является препроцессором, с помощью которого можно быстро писать CSS-код с большей функциональностью, такой как переменные, миксины (функции), вложенность правил (nested rules). Препроцессор Sass имеет старую (SASS) и новую (SCSS) версию синтаксиса, который компилируется в обычный CSS, распознаваемый любым web-сервером.
Как установить в Ubuntu:
Краткий процесс установки Sass под Ubuntu описан в другой статье автора — Installing Sass and Compass Ubuntu 12.10 & 13.04 .
Gcolor2
Отличное маленькое приложение для получения образцов цвета в формате HEX, RGB или HSV как с помощью палитры цветов (picker chooser), так и с помощью пипетки (eyedropper). Также имеется возможность сохранить ранее выбранные цвета в наборе цветов внутри программы.
Как установить в Ubuntu:
FileZilla
Великолепный FTP-клиент с графическим интерфейсом, обладающий возможностями сохранения настроек подключения к удаленному серверу и добавления различных директорий в закладки. Программа работает под любой операционной системой — GNU/Linux, Windows или OSX.
Как установить в Ubuntu:
Drush
Если разрабатывается проект под CMS Drupal, то командная оболочка Drush является незаменимым инструментом для установки различных модулей, создания пользователей и еще множество других возможностей. С полным списком возможностей и описанием установки можно ознакомиться на официальной GitHub-странице проекта — Drush.
Как установить в Ubuntu:
В дальнейшем оболочку Drush можно обновить вручную, также из командной строки:
PhpMyAdmin
Эта программа является всего лишь web-интерфейсом для утилиты командной строки mysql . PhpMyAdmin не добавляет каких-либо других возможностей поверх тех, которые уже имеются в утилите mysql . Но с помощью нее гораздо проще и удобнее работать с базой данных MySQL — создавать, редактировать или просматривать таблицы.
Как установить в Ubuntu:
Tasksel
Консольная программа Tasksel, задача которой — упростить установку сложных наборов программных пакетов, таких как Samba, LAMP, SSH, PostgreSQL.
Как установить в Ubuntu:
VirtualBox
Конечно, это мало кто любит делать, но иногда приходится сжимать зубы и загружать Windows для того, чтобы протестировать готовый проект в браузере Internet Explorer или же запустить Adobe Photoshop. Виртуальная машина VirtualBox позволяет это сделать из-под системы GNU/Linux.
Как установить в Ubuntu:
Apache
Чаще всего тестирование готовых приложений производится на сервере Apache. Это самый простой способ оптимизации кода программы, работающей на стороне сервера (server side) и ее тестирования в «боевых условиях».
Как установить в Ubuntu:
Пакеты, входящие в состав сервера Apache, являются частью программного пакета LAMP. Поэтому установка LAMP приводит к автоматической установке сервера Apache. Как произвести установку LAMP под Ubuntu, описано в этой статье — Install a LAMP Server Ubuntu .
Консольный браузер, совершенно бесполезный для дизайнеров, но отличная вещь для web-разработчиков. С помощью него можно визуально контролировать создаваемый код HTML-страницы — расположение блоков верстки, разметка HTML-страницы и так далее.
Также браузер Lynx будет весьма полезен для SEO-специалистов, так как позволяет представить, каким образом «видят» сайт роботы поисковых систем, таких как Google или Yandex.
Основные 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-интерпретатор, консольная версия. Полезна для запуска различных скриптов в кроне (Cron). Например, парсеров.
python
Интерпретатор для Python-скриптов. Аналогично PHP.
Менеджер для работы с файлами. Идеологически противоречит работе в голой консоли, но с ним новичкам проще работать.
Классический двухпанельный midnight commander в действии
Можно в одной панели подключиться к удалённому серверу и перекидывать файлы. Работает медленно, но хорошо видно что происходит
Запуск заданий по расписанию. Незаменимая вещь при автоматизации.
Nginx
Быстрый веб-сервер. Я использую его на своих проектах.
В директории /etc/nginx/sites-available находятся конфигурационные файлы для сайтов.
service nginx restart перезапуск Nginx
service nginx reload — применение новых конфигов без перезапуска сервера
service nginx stop — остановка веб-сервера
Apache
Веб-сервер чуть медленнее, чем Nginx. Один из самых популярных в интернете.
Одна из ключевых особенностей — .htaccess файлы дополнительной конфигурации. Можно управлять отдельными папками. Размещаете этот файл в папке и прописываете в нём правила.
Этим хорош и плох Apache одновременно. Хорош, тем что можно гибко настраивать каждую папку, плох тем, что конфигурационные файлы разбросаны по разным местам.
service apache2 restart — перезапуск Apache
service apache2 reload — применение новых конфигов без перезапуска сервера.
service apache2 stop — остановка веб-сервера
Популярная система контроля версий. Без неё невозможна современная разработка. Базовые команды можно освоить за 15 минут прямо на сайте.
Перенос данных
rsync
Синхронизирует две директории. Можно синхронизировать директории на разных серверах через SSH.
Аналог push в git (закачать изменения на удалённый сервер):
-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»
Перенос файлов между серверами по протоколу 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
—add-drop-table — удалять таблицы, если существуют с таким-же именем
—default-character-set=utf8 — кодировка utf8
username — имя пользователя базы данных
-p — требовать ввести пароль
dbname — имя базы данных
filename.sql — файл с дампом базы
Работа с архивами
Создаёт и распаковывает тар архивы.
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 — простой и понятный язык программирования на котором можно писать всё что угодно, включая скрипты для администрирования.
Если вкратце, то это минимально необходимый набор. Буду рад вашим дополнениям в комментариях.