Linux and Terminal
#
Навіщо розробнику знати Linux#
Безкоштовна ОСНа базі ядра Linux побудовано багато безкоштовних дистрибутивів операційних систем. Вони використовуютья як на серверах, так на робочих станціях (ПК). В нас в компанні силами TSD (Technical Support Department) підтримуються дестрибутив Ubuntu.
#
Інструменти розробникаБагато ключових для розробника інструментів не мають графічного інтерфейсу. Вони поставлються у вигляді виконуємих, программм що запускаються в консолі (терміналі). Розуміння того, як запустити програму та передати необхідні параметри є ключовим у виріщенні задач кожного дня.
#
АвтоматизаціяUnix-подібні операційі системи та програми, що виконуються на них, слідують філософії побудови модульних програмного забезпечення, що сприяє його повторнуму використанню. Ось як філософія Unix була задокументована в Bell System Technical Journal за 1878 рік:
- Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new "features".
- Expect the output of every program to become the input to another, as yet unknown, program. Don't clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don't insist on interactive input.
- Design and build software, even operating systems, to be tried early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them.
- Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them.
Такий підхід в побудові програм зробив можливим автоматизацію складних процесів через використання мінімалісичних, проте гнучких програм, що добре виконують одну задачу.
Для розробника, це в першу чегру автоматизація зборки пробрами, перевірка її автотестами та автоматичний деплой на сервер. Сам процес розгортання на сервері теж складна может бути складною процедурою в десяток кроків. Автоматизація таких операція мінімізує вплих людського фактору та можливість винекнення помилки по-неуважністі.
#
Робота з віддаленими серверамиЗдебільшого сервери, на яких ми розгортаємо наші сервіси, працють на ядрі Linux. Розгортання нових версій додатку та діагностики їхроботи потребує навіків роботи з Linux. Варто зазначити, що на тиких среверах немає графічного інтерфейсу користувачав. Всі операції з ОС та нашим сервісом (перезапуск, перегляд логів, робота з базою даних) необхідно виконувати через інтерфейс командного рядку (Command Line Interface, скорочено CLI).
#
Linux distrosOS для робочих станцій на базі ядра Linux додатково укомплектовані варіантом графічної оболонки (Gnome, KDE, Unity, Xfce) та сумісним з ним набором програм з графічним інтерфейсом.
В InterLink ми викорустовуємо дестрибутив Ubuntu.
#
TerminalБагато ключових для розробника інструментів не мають графічного інтерфейсу. Вони поставлються у вигляді виконуємих, программм що запускаються в консолі (терміналі). Розуміння того, як запустити програму та передати необхідні параметри є ключовим у виріщенні задач кожного дня.
#
Terminal start on UbuntuЗапустити тірмінал можна одним з наступних варіантів:
- Клікнути
Activities
або натиснутиWin
, ввестиterminal
, натиснутиReturn
- Клікнути
Show Applications
, знайти і клікнутиTerminal
Control
+Alt
+T
Alt
+F2
, вветиgnome-terminal
, натиснутиReturn
#
Для Windows#
Windows 10- Windows Subsystem for Linux (WSL) https://docs.microsoft.com/en-us/windows/wsl/install-win10, https://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/
#
Старіші версії Windows#
Основні команди Bash#
Командиcd
– перейти в каталогcd ..
– на рівень вищеcd /
– в кореневийcd ~
– в домашнійсd -
– в попередній
mkdir
– строрити каталогmkdir -p
–строврити повний шлях
ls
– переглянути список файлів і каталогівpwd
– вивести повний шлях до поточного каталогуrm
– видалити вайлrm -rf
– рекурсивно видалити всі каталоги та файли
#
"Гарячі клавіщі"Crlt + c
– зупинити виконання поточної програми (надіслити sig term)Alt + .
– підставити останній аргумент (рекурсивно)Ctrl + a
– перевести курсор на початок командного рядкаCtrl + e
– перевести курсор в кінець командного рядкаCtrl + w
– видалити слово зліва від курсору
#
Додаткові матеріалиДля ознайомлення з основними командами Linux пройде наступный туторіал: https://ubuntu.com/tutorials/command-line-for-beginners#1-overview. По завершеню тоторіалу приготуйтеся показати історію команд в терміналі та здобуті знання.
#
👨💻 Repo setup script#
ЗаданиеНаписать скрипт для создания и настройки Git репозитория. Скрипт должен выполнять последовательно следующие действия:
- Новый репозиторий
- Создает новый репозиторий в папке с указанным именем
- Если указанной папки нет, выводит предупреждение и создает ее
- Автор коммитов
- Для этого репозитория предлагает указать и пишет в локальные настройки имя и email автора коммитов
- Предлагая ввести новые имя и email, указывает текущие глобальные значения этих параметров
- Конвертация символов перевода строки
- Создает фаил с настройками конвертации символов перевода строки
- Коммитит его с сообщением "Initial setup"
#
Вопросы- Как проверить наличие параметров командной строки?
- Как задать и прочитать значение переменной в Bash?
- Как получить (записать в переменную) результат выполнения команды с параметрами?
- Как установить права на выполнение файла?
- Как в начале скрипта указать программу интерпретатор?