Зачем переходить на Linux (Ubuntu)
1) Получение полноценного окружения разработчика, сохраняя при этом привычный пользовательcкий интерфейс (Ubuntu используется на PC, ноутбуках и серверах).
2) Использовать актуальное ПО с обновлениями и имеющееся железо (минимизируются расходы на поддержание актуальности операционной системы).
Поддержка Windows 7 окончена 14 января 2020 года.
Microsoft рекомендует пользователям купить новые компьютеры с Windows 10
Canonical призывает пользователей Windows 7 переходить на Ubuntu
С чего начать и какую систему выбрать
Легковесные дистрибутивы Linux, основанные на Ubuntu. Для стабильности лучше использовать только LTS релизы с длительным сроком поддержки - четные версии (16, 18, 20...), на данный момент это 18.04
Xubuntu — дистрибутив Linux, основанный на проекте Ubuntu
Xubuntu имеет минималистичный интерфейс пользователя, экономно использующий память и другие аппаратные ресурсы компьютера, что позволяет комфортно работать на старых машинах. Но вместе c тем, данный дистрибутив является современной системой, имеющей огромный набор пакетов.
https://ru.wikipedia.org/wiki/Xubuntu - стабильное и качественное оформление графической оболочки (Xfce).
https://xubuntu.org/
https://xubuntu.org/requirements/ ~1Гб памяти, ~1.0 ГГц процессор.
Lubuntu — легковесный и энергоэффективный производный от Ubuntu дистрибутив Linux с малым потреблением ресурсов.
https://ru.wikipedia.org/wiki/Lubuntu - аппаратных ресурсов требует еще меньше (можно запускать на Raspberry Pi), но менее стабильный (поменяли графическую оболочку с LXDE на LXQt, которая еще не достаточно развита).
https://lubuntu.me/
Список основных дистрибутивов Ubuntu для самостоятельного ознакомления.
Что необходимо изучить
Установить можно оставив Windows - у современных дистрибутивов Ubuntu это опция имеется.
Преимущества
- бесплатно и неограниченно
- можно использовать железо 10-летней давности
- окружение приближенное к рабочим серверам
- обновляется когда нужно тебе, а не когда решит "интеллектуальный" механизм обновлений ОС
- стабильность - если сидеть на LTS релизах, при обновлениях ничего не ломается (а при переходе на следующий LTS релиз чтобы снизить вероятность поломки - желательно подождать как минимум версии c вторым выпуском исправлений)
- отсутcтвие встроенного антивируса нагружающего систему и который нельзя просто так отключить (операционные системы семейства Linux - неплохо защищены)
- множество инструментов разработчика и других приложений доступно в стандартных репозитариях и snap:
https://snapcraft.io/search?category=development
https://snapcraft.io/search?category=server-and-cloud
В LTS версиях Ubuntu - ПО может быть не достаточно свежей версии или отсутствовать. Получать свежие версии можно используя https://snapcraft.io/store - "маркетплейс" сторонних приложений:
установить Sublime Text
sudo snap install sublime-text --classic
установить PhpStorm
sudo snap install phpstorm --classic
установить LXD
sudo snap install lxd
установить Docker
sudo snap install docker
много популярных расширении PHP или бинарных модулей для Perl/Python уже поставляется в репозитарии - не придется компилировать самому
sudo apt install php-imagick
sudo apt install php-xdebug
sudo apt install libdbd-mysql-perl
или утилит
sudo apt install unzip wget curl dos2unix optipng jpegoptim pngquant
Ubuntu - стабильный, популярный и универсальный дистрибутив, больше шансов что приложения имеющиеся на Windows, будут так же выпускать и официально поддерживать именно под Ubuntu - например мультимедиа приложения / игры: T7 DAW (Tracktion 7), Steam - Counter-Strike: Global Offensive, GOG Galaxy, Google Web Designer, Microsoft .NET Core.
Недостатки
- отсутствие некоторых приложений и Windows-специфичных технологий:
- IE11 (если нужно тестировать под IE11 - альтернатив нет)
- технологий для автоматизации как Windows Script Host, ActiveX/COM, vba, hta
- Visual Studio, Windows SDK, DirectX, .NET Framework/WPF
- офисный пакет MS Word / Excel (если нужно генерировать / тестировать документы в данных форматах) - частично решается запуском через wine / CrossOver или использованием аналогов LibreOffice, OnlyOffice, Google Docs, office.com
- проблемы с поддержкой старых принтеров, сканеров, модемов и т.п. (но на Windows 10 такие же проблемы) - когда приложение есть, но установка для обычного пользователя сложна в сравнении с установкой через snap или поставкой в виде AppImage (например КриптоПро)
- разные приложения могут использовать разные графические тулкиты и разных версий (Qt, GTK, Windows GDI и другие) - возможна неконсистентность внешнего вида (не самая критичная проблема)
Работа с терминалом
Работа с терминалом в современном Linux не обязательна - практически все можно делать в IDE или продвинутых текстовых редакторах типа Sublime Text и Visual Studio Code c помощью плагинов. Терминал в основном используется только для запуска каких то утилит/скриптов (запуск сервисов, сборка, деплой, создание контейнеров) и иногда для работы с git, работы с консольными приложениями типа «1С-Битрикс: Веб-окружение».
lxc start centos-bitrix
lxc exec centos-bitrix -- /bin/bash
./menu.sh
git commit -am 'hot-fix'
git push
Список основых приложений улучшающих работу в терминале:
Tilix - мультипанельный эмулятор терминала
sudo apt install tilix
Ripgrep - быстрый поиск по содержимому в файлах директории с учетом .gitignore и т.п.
sudo snap install ripgrep --classic
Fzf - интерактивный фильтр по командам, именам файлов, и любым другим спискам
sudo snap install fzf-carroarmato0
Micro - современный текстовый редактор с подсветкой синтаксиса и плагинами, и поддержкой мыши
sudo snap install micro --classic
Бесплатные курсы для общего развития:
- Основы командной строки (Bash)
Bash - хотя и мощный скриптовой язык (можно писать игры или веб-серверы) и предустановлен на многих ОС на базе Linux, но лучше им не злоупотреблять - автоматизировать можно и на высокоуровневых языках общего назначения - таких как PHP или Perl 5.
Linux на Android устройстве
Termux - приложение для Android, эмулятор терминала с возможностью установки пакетов (свежие версии PHP и других утилит), можно использовать через ssh как "карманный" сервер или подключить клавиатуру и работать прямо на устройстве.
Для полноценной работы - не хватает только возможности легкого подключения монитора.
Пример установки пакетов:
pkg install php
pkg install fzf
pkg install git
pkg install micro
pkg install openssh
Linux в браузере (для тех кто решил остатся на Windows 7)
Google Cloud Shell - преднастроенная виртуальная машина c инструментами для разработки