mashletov
@mashletov
Программист

Насколько хорошо backend разработчик должен разбираться в Linux?

Пересидел на винде, поставил сейчас убунту. Решил подтянуть свои знания в этой ОС. Что мне следует изучить, что повысить качество своей работы, а так же, чтобы было плюсом при дальнейшем трудоустройстве?
При этом, не очень люблю ковыряться в системе, больше люблю код писать.

Что я умею:
  • самые базовые команды типа ls, cat, ln, sed, dpkg, apt, nano;
  • установить и настроить php, nginx, mysql. И то уровня: sudo apt install php-cli, php-curl, .... Никогда не собирал из исходников
  • общая структура директорий: что такое /etc, /var, /usr, ...
Что не умею (в общем-то, все остальное):
  • если после перезагрузки система не загрузится, или GUI не загрузится, то я не в состоянии буду починить это
  • не могу исправить какую-либо ошибку без гугла
  • писать какие-то сложные и длинные команды в одну строчку
  • плохо знаю bash/sh, даже не знаю чем они отличаются; не умею в vim
  • компилировать из исходников


Когда захожу на какой-нибудь ЛОР, начинает казаться, что я безмерно тупой — там тебе каждый и ядро пересобирёт, и проблему любую решит без гугла, и код пишет только в vim/emacs, и, вообще, некоторые диалоги там даже не понятны :)
  • Вопрос задан
  • 258 просмотров
Решения вопроса 4
xevin
@xevin
django dealer, vuejs pusher
Собирать из исходников нужно в очень редких случаях, на столько редких, что знать как это делается вообще не нужно. Так что можно смело отмести этот навык.

Надо:
Знать где какие логи есть и уметь их читать, решать ошибки.
Всякие банальные вещи, типа запуск/перезапуск демона, убить процесс, уметь читать баш-скрипты и чуть-чуть писать (на уровне что-то подправить и чтобы не поломать всё к чертям)

Для бекендера надо уметь устанавливать и настраивать тот софт с которым работаешь: nginx, apache, mysql, postgres, redis, mongodb и так далее.

Vim можно вообще не знать, в *nix обычно есть редактор проще, типа nano, joe или вообще mcedit.
Самое главное - научиться выходить из vim прежде чем испортишь файл ;-)

Если работаешь с языком, у которого есть свой пакетный менеджер (npm, yarn, pip) нужно уметь установить его и разруливать ошибки при установке через эти пакетные менеджеры.
Например для python-pip требуются установленные компилятор и заголовочные файлы питона. Имею ввиду, что такие тонкости надо знать.

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

git настраивать bare-репозитории чтобы заливать на сервер и там же разворачивать, при работе без сторонних сервисов типа github, bitbucket.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Ровно настолько, чтобы хорошо выполнять свою работу: писать рабочий back-end код.
Что изучить:
1. https://debian-handbook.info/
2. qref.sourceforge.net/Debian/reference/index.ru.html
Ответ написан
CityCat4
@CityCat4
Жил да был CityCat за углом...
если после перезагрузки система не загрузится, или GUI не загрузится, то я не в состоянии буду починить это

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

Не поверите - и я зачастую не могу :)
писать какие-то сложные и длинные команды в одну строчку

Это и не особо надо и кстати, я тоже не особо люблю. Например, установка Calculate делается из консоли одной дилнной-длинной-длинной командой, и только такая ленивая жопа, как я, ставит Х, чтобы запустить графический инсталлер :D

плохо знаю bash/sh, даже не знаю чем они отличаются; не умею в vim

"Скрипач не нужен". Те, кто понтуются, что работают только в vim/emacs - они в основном понтуются. Те, кто работают - они вообще не понтуются :) Есть кучка консольных редакторов поудобнее vim - nano, pico, mcedit. Не знать sh - это плохо, но поправимо. Bash - это суперсет sh, его фичами можно просто не пользоваться :)
компилировать из исходников

Для работы в пакетном дистрибе типа бубунты умение компилить вручную не только не полезно, а вредно, если конечно не компилить свои программы :) Сборка программ в пакетных дистрибах должна быть исключительно пакетным менеджером! Ну, пока не научитесь разбираться в зависимостях, вручную удалять пакеты, ставить без зависимостей и подымать упавшую набок систему :)
Сборка из исходников и понимание того, что творишь - непременный атрибут source-based дистриба
Ответ написан
majetree
@majetree
не могу исправить какую-либо ошибку без гугла

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

самые базовые команды типа ls, cat, ln, sed, dpkg, apt, nano;

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

плохо знаю bash/sh, даже не знаю чем они отличаются;

для backend разработчика это очень плохо, bash простой язык, база учится за день-два(на хабре можешь поискать свежие уроки). Зная его и базовые команды( ls, cat ...) ты уже будешь чувствовать себя полубогом в системе, ну а далее дело практики.
Учи именно bash(это расширенный sh), во многих системах sh уже просто заменяют симлинком на bash.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Sanes
@Sanes
Должен уметь настроить окружение для своего приложение.
Ответ написан
sim3x
@sim3x
Скрипты на баш - уметь писать не обязательно, читать - обязательно. Желательно уметь питон - он практически всегда есть в системе и он более удобоварим чем магия баша

Однострочники на баш - 2-10 штук лучше иметь в памяти или иметь свой bash_aliases с такими заготовками. Для парсинга логов, массового переименования, перемещения, оптимизации

Компиляция - не страшна, если с вас требуется только ./configure && ./make. Важнее ваше умение прочитать скрипт для сборки и понять как вписать свои настройки. Сборка из apt-sources еще проще

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

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

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

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы