Информация об изменениях

Сообщение Re: Что такое "знание Linux" для бэкэнд программиста? от 21.11.2020 17:53

Изменено 21.11.2020 19:13 DiPaolo

Re: Что такое "знание Linux" для бэкэнд программиста?
Да там нечего учить, как такового. Достаточно быстро все само придет — не ракет сайенс.

ГУЙ утилит уже достаточно много и под линуксами. Более того, многие выглядят также, как и под виндами/маками. Говорю по своему опыту: девелопил и C++ проекты под линуксом, и питон, и всякие Го для веба.

Из важного и полезного, что пришло на ум, и чем активно пользуюсь я:
— иметь базовые представления о структуре папок в системе
— установка/удаление/апдейт пакетов
— работа с гитом в командной строке (не отличается от винды)
— работа с докером в командной строке (не отличается от винды)
— уметь подключиться по ssh к удаленному серверу, что-то там поправить, залить, перезапустить какой-нить сервис и т.п.
— важно поставить Midnight Commander (аналог Total Commander, Far Manager). Он значительно облегчит жизнь
— важно помнить, что папки регистрочувствительны в линуксе
— узнать команды навигации по папкам
— команды пришивания процессов
— узнать, что такое рут (root)
— важно понимать, что из-под рута ничего не стоит запускать без веской на то причины
— запускать бинари надо так: ./meprogram
— есть документация для стандартных утилит. Вызывается по man <utility>
— почти все программы имеют команды --version и --help, которые бывают очень полезны
— научиться собирать из сорцов. Все просто: обычно это ./configure, а затем make install
— понять, как работают пайпы в командной строке. Когда, например, выводишь ffmpeg --help | grep avx (весь выхлоп из справки ффмпег направляется в утилиту grep, которая выводит только строки, где встречается avx; важно помнить, что и тут регистр важен)
— (работает в Ubuntu-like ОСях) Ctrl+Alt+T или Ctrl+Shift+T или Win+T — открыть терминал
— (работает в Ubuntu-like ОСях) Ctrl+U — стереть все до начала строки в терминал (бывает полезно, когда написал длиннющую строку и надо все стереть)

Частые команды:
apt-get install (установить программу)
grep
history (список последних команд)
whereis (где находится указанная программа)
cd
ll
kill (убить процесс)
reboot
sudo
tar
cp
mv
rm
export
top (список процессов)
ps aux (тоже список процессов)
pwd (полный путь текущей папки)
push
popd (две команды, чтобы запомнить текущую папку и потом вернуться к ней)

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

Еще рекомендую некоторе команды выписывать себе в отдельное место. Прям с примером использования. Так будет проще их переиспользовать в последующем.
Re: Что такое "знание Linux" для бэкэнд программиста?
Да там нечего учить, как такового. Достаточно быстро все само придет — не ракет сайенс.

ГУЙ утилит уже достаточно много и под линуксами. Более того, многие выглядят также, как и под виндами/маками. Говорю по своему опыту: девелопил и C++ проекты под линуксом, и питон, и всякие Го для веба.

Из важного и полезного, что пришло на ум, и чем активно пользуюсь я:
— иметь базовые представления о структуре папок в системе
— установка/удаление/апдейт пакетов
— работа с гитом в командной строке (не отличается от винды)
— работа с докером в командной строке (не отличается от винды)
— уметь подключиться по ssh к удаленному серверу, что-то там поправить, залить, перезапустить какой-нить сервис и т.п.
— важно поставить Midnight Commander (аналог Total Commander, Far Manager). Он значительно облегчит жизнь
— важно помнить, что папки регистрочувствительны в линуксе
— узнать команды навигации по папкам
— команды прибивания процессов
— узнать, что такое рут (root)
— важно понимать, что из-под рута ничего не стоит запускать без веской на то причины
— запускать бинари надо так: ./meprogram
— есть документация для стандартных утилит. Вызывается по man <utility>
— почти все программы имеют команды --version и --help, которые бывают очень полезны
— научиться собирать из сорцов. Все просто: обычно это ./configure, а затем make install
— понять, как работают пайпы в командной строке. Когда, например, выводишь ffmpeg --help | grep avx (весь выхлоп из справки ффмпег направляется в утилиту grep, которая выводит только строки, где встречается avx; важно помнить, что и тут регистр важен)
— (работает в Ubuntu-like ОСях) Ctrl+Alt+T или Ctrl+Shift+T или Win+T — открыть терминал
— (работает в Ubuntu-like ОСях) Ctrl+U — стереть все до начала строки в терминал (бывает полезно, когда написал длиннющую строку и надо все стереть)

Частые команды:
apt-get install (установить программу)
grep
history (список последних команд)
whereis (где находится указанная программа)
cd
ll
kill (убить процесс)
reboot
sudo
tar
cp
mv
rm
export
top (список процессов)
ps aux (тоже список процессов)
pwd (полный путь текущей папки)
pushd
popd (две команды, чтобы запомнить текущую папку и потом вернуться к ней)

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

Еще рекомендую некоторые команды выписывать себе в отдельное место. Прям с примером использования. Так будет проще их переиспользовать в последующем.