Задать вопрос
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Alex Wells,
    Не проще ли зафорсить версии ВСЕГО софта,

    Нет конечно. Как вы это сделаете в принципе? Посмотрите какой процент на тот же питон3 перешли?
    Посмотрите какой процент XP все еще крутится на десктопах.
    А что делать с кучей устройств - телевизоры, роутеры, и другие устройства, для которых обновления уже давно не выпускают?

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

    Какой смысл от миллиарда устройств с bash, если на одном из них не будет wget?)

    А wget никогда не был частью баш, да и редко когда он поставляется с дистрибутивами из коробки, поэтому тру программисты на баш используют curl ;)

    Проблема многих программистов заключается в том, что считая баш слишком примитивным языком программирования, они совершенно не ориентируются ни в том, как принято в нем работать, ни какие утилиты считаются стандартными, ни собственно в баш. А он не так примитивен, как кажется.
    Я уже нередко встречаюсь с тем, что когда надо на баш написать чуть больше 10 строк, и люди сталкиваются с обычными джуниорскими проблемами, начинают считать что баш плохой и устаревший.

    Да нет.
    Проблемы bash зачастую связаны с непониманием архитектуры линукс, от которой он напрямую зависит. И да, в баш есть вещи, которые исторически сложились и хотелось бы их исправить, но в любом языке это есть.
    Просто если хочешь писать на баш чуть больше hello world - ну так потрать хотя бы несколько недель на нормальное изучение, а не считай что достаточно 2 минуты погуглить. За 2 минуты погуглить можно найти готовое решение (и кстати из-за высокой совместимости, оно скорее всего будет работать, даже если его написали 10-20 лет назад), но не всегда будет понятно почему именно оно работает и почему надо делать так.

    Проблема большинства ООП программистов - оверинженеринг. Огромный оверинженеринг.
    Контейнеры - то есть чтобы запустить скрипт установки mysql или скрипт для обновления версии httpd вы будете устанавливать докер и запускать контейнер?

    Поэтому, IMHO альтернативы башу - разве что zsh. Баш это и язык программирования и язык автоматизации и стандартная и дефолтная cli оболочка.

    Если говорить об реальных современных альтернативах башу именно в его функционале, то нужно говорить о конкретных инструментах, которые действительно лучше - ansible/puppet/chef для оркестрации, или например Acronis вместо скриптиков с tar/gzip. И другие подобные штуки.
    Но все эти подобные штуки - крупный софт специализированный софт, а не универсальное решение.
    Зачастую платный или с неподходящей лицензией.

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

    Но.
    Банально, скопировать файл - проще в баш, чем в python и проще чем в джава.

    Банально, работать в командной строке - проще чем в баш, чем в интерпретаторе питона.

    Банально, написать stop/start скрипт - проще на bash. Даже в вашей java бутспринг под капотом запускает баш скрипт, который запускает java ;)

    Поэтому полностью универсальной альтернативы башу, которая лучше чем баш - не существует и врядли будет существовать как минимум в обозримом будущем, особенно учитывая что доля *nix растет и в чистом виде и в андроид/harmony/macos.
  • Программы для включения/отключения работы за компьютером?

    saboteur_kiev
    @saboteur_kiev
    ставится программа, которая запускается вместо стандартного проводника (рабочий стол) и выполняет функцию киоска.
    Я же говорю - гуглите "режим киоска под XP", или под что вам нужно.
    Многие решения платные, но можно поискать на торрентах или бесплатные варианты.
  • Как выдать команду пользователю?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Владислав, Так вы уже прочитали как работает PATH?
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Vitsliputsli, Примитивный анализатор ;))))) это смешно.
    я так понимаю, что общепризнанная терминология вам чужда, и "язык программирования" в ваших глазах это не то, что под этим воспринимают нормальные люди. Печально, думаю на этом нет смысла с вами продолжать разговор.
  • Как выдать команду пользователю?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Владислав,
    когда я ставил под рутом нвм он там и остался.

    неизвестно что и как вы ставили.
    PATH нужно настроить, для этого изучить что это такое.
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Марат Нагаев,
    Там есть немного про shell. Если коротко: shell - весьма жуткая вещь с кучей проблем и костылей.


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

    И про shell там написано человеком, который говорит не о том. На что он ругается? Что надо экранировать обратный слеш, если ищешь файлы у которых в имени есть обратный слеш? То, что это символ экранирования, и чтобы к нему нужно было обратиться его самого нужно экранировать для вас новость? Покажите как вы это будете делать в питон - тоже ведь надо будет писать \\.
    При этом в пример приводится команда find, которая не является частью bash вообще. Претензии к выполнению команды на удаленном хосте, через ssh, что тоже не является проблемой bash, или покажите , как вы сможете это сделать "красиво" на другом языке программирования.
    Причем он сам же оправдывается, что ЗНАЕТ как написать проще и удобнее (xargs), но умышленно пишет фигню, чтобы рассказать что экранировать надо и @ и \ (ну то есть все специальные символы, как будто в других языках программирования этого делать не нужно)
    Все примеры проблем что там приведены - в большей степени высосаны из пальца, и практически ни один из них не связан напрямую именно с bash, больше с gnu tools
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Vitsliputsli,
    При этом bash и sh несовместимы.

    Серьезно? =)
    То есть вы хотите сказать, что шелл скрипт не запустится в bash, или вы в принципе понимаете значение слова "несовместимый"
    Наличие парочки башизмов (и ведь реально, кроме test больше ничего нет), не делает их несовместимыми.

    Назвать bash языком программирования у меня бы язык не повернулся,

    Очень печально, что вы так смотрите на этот мир. Это язык программирования по всем определениям. И он по-своему прекрасен.

    с точки зрения любого языка программирования синтаксис bash ужасен.

    Отличный, понятный, простой синтаксис. То, что он не заточен под ООП, не отменяет прелесть баш.
    Вы его с повершелл сравните, например.

    Но нужно понимать что это командный процессор, а не язык, что многое объясняет.

    Это именно язык.
    Чтобы называться языком программирования, должны быть циклы, условия и оперирование данными. Все это баш делать умеет. И умеет гораздо больше.
    Это отличный универсальный скриптовый язык программирования, библиотеками к которому становится любая консольная команда, особенно соблюдающая posix стандарты.

    Все ваши аргументы - исключительно личные предвзятости.
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Vitsliputsli,
    просмотр истории команд выполняется внешней утилитой history

    Нет, в баш это внутренняя команда, потому что баш хранит историю команд в памяти и в файл ее скидывает только при выходе. И просмотреть это хорошо, а нажать вверх, отредактировать, выполнить поиск недавно выполняющихся команд - это тоже.

    Про Ctrl+C это не проблема, но кто-то должен продавить опцию запуска того же питона без возможности его прервать по ctrl-C, и внедрить это в глобальный репозиторий.

    Все эти "тривиальные задачи" кто-то должен согласовать, сделать, закоммитить и распространить. И понятно что нет смысла этим заниматься, если есть bash, про это я и говорю. А таких "тривиальных задач" там под капотом тысячи.
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    cshell вот был вполне совместим с языком программирования С, но оказался невостребованным из-за чрезмерной сложности.

    bash удобен тем, что он является удобным клеем для консольных команд.
    Несмотря на его кажущуюся простоту, bash совсем не простой язык программирования, есть тысячи нюансов, которые были решены за годы его развития, чтобы удовлетворять задачу быть удобной оболочкой для разных *nix систем. Например просто взять питон и использовать его вместо шелла - будет категорически неудобно.

    Самые банальные вещи - хотя бы навигация в самой командной строке, просмотр истории команд, настраиваемое приглашение командной строки, настройка переменных окружения и запуск других программ в фоне и управление ими - это уже работы разработчикам надолго. А сколько есть еще подводных камней, о которых мало кто задумывался?

    Вот навскидку простой вопрос - баш для пользователя и баш, которым выполняется еще один скрипт. Скрипт по нажатию Ctrl-C прерывается, а у просто при работе в командной строке Ctrl-C работу пользователя не прерывает. Кто задумывался где это зашито, и что нужно сделать, чтобы такое работало в питоне?
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Марат Нагаев, в первую очередь тем, что оболочка - это программа для связи пользователя и компьютера.
    В питоне или перле пользователь тоже может переходить в разные директории, смотреть что там есть и запускать программы. Но мне кажется это будет неудобно.
    Просто оболочки бывают и графические и текстовые, включая CLI
  • Возможно ли стать middle/senior без работы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    mkone112, Разработчиков полно. Почему вы хотите чтобы каждый, кто называет себя разработчиком был гениальным - непонятно.
    Сравнивать работу, которая требует квалификации с работой в пятерочке, которая таковой не требует - глупо. Сравнивайте с квалифицированной работой.
    Сходите в десяток стоматологических клиник, посмотрите какие разные есть врачи, и ЗП не всегда кореллирует с квалификацией.
    Сходите к десятку-другому юристу, с разными задачами. Посмотрите что каждый из них вообще по-своему может это делать.
    В общем слегка оторвитесь от вашего маленького мирка.
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    баш это язык оболочки.
    Никто не пишет perl или python как оболочку операционной системы. Их пишут как языки программирования.
    А шелл был разработан именно как оболочка с command line интерфейсом.

    Можно добавить в условный js новые операторы, получить новый язык и радоваться жизни.

    Можно. А что делать с миллиардами устройств по всему миру, где стоит более старая версия?
    шелл - это дефолтная, штатная оболочка операционки. Ее задача быть стабильной и достаточной. Многие вещи в шелл связаны именно с функциональностью и архитектурой ОС.
    Именно поэтому баш портированный в винду настолько кастрирован, что для серьезных задач лучше родной powershell
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    FanatPHP, bash это не язык, это просто реализация posix shell оболочки, в котором есть даже несовместимые с posix вещи, как и в zsh, но обратно bash полностью совместим, и на текущий момент является наверное самой популярной и дефолтной оболочкой в большинстве дистрибутивов. Поэтому часто пишут bash, подразумевая sh
  • Возможно ли стать middle/senior без работы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    mkone112,
    Очевидно что можно писать в open-source в команде не общественных началах.


    Неочевидно.
    Разработка на хорошем уровне - это уже приличная квалификация, для получения которой требуется и уйма времени и уйма усилий.
    Людей, которые потратили столько времени и усилий для того, чтобы иметь такую квалификацию и при этом никогда не работали или не работают разработчиками - в мире очень мало, и говорить что это нормально - бред.
  • Возможно ли стать middle/senior без работы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    mkone112,
    про сеньера - вроде речи не шло

    "Возможно ли стать middle/senior без работы?" - это заголовок вопроса.

    "Поэтому работая над своим проектом вполне можно стать джуниором, и работая над ним долго - может быть дорасти до неуверенного мидла, но нужно понимать что опыт работы в команде и над реально проектом побольше - это другое.
    А работать над своим проектом так долго, чтобы дорасти до сеньора"
    А это из моего комментария.

    Вы вообще читаете что вам пишут?

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

    То есть вы хотите сказать, что Торвальдс, к моменту когда он стал сеньором (или хотя бы мидлом) еще нигде не зарабатывал разработкой, и учился исключительно на своем собственном проекте в одиночку?
    Ну конечно. Линукс же написал Торвальдс полностью сам. Ни gnu ни тысячи других контрибьюторов к этому отношения не имеют?

    Фейсбук - то что это сейчас, а не простенький форум с профайлами - это тоже Цукерберг конечно сам написал, и ничего не зарабатывал?

    Может быть вы не будете троллить?
  • Возможно ли стать middle/senior без работы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    И далеко не всегда это будет быстрее в команде.

    Далеко не всегда это будет быстрее самому. Точнее вообще практически никогда это не будет быстрее самому.
    Мне довольно сложно представить себе человека, доросшего до senior специалиста в одиночку, на опен-сорсе, ни разу не работавшем по специальности за деньги. Это нонсенс.
  • Возможно ли стать middle/senior без работы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    mkone112, А причем тут офис?
  • Возможно ли стать middle/senior без работы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    Большой проект - это обычно проект, который в одиночку не создается.
    В одиночку написать реально большой проект - вряд ли кому-либо под силу.
    Поэтому работая над своим проектом вполне можно стать джуниором, и работая над ним долго - может быть дорасти до неуверенного мидла, но нужно понимать что опыт работы в команде и над реально проектом побольше - это другое.
    А работать над своим проектом так долго, чтобы дорасти до сеньора, и к этому времени не придумать как его монетизировать (то есть уже коммерчески зарабатывать) - ну это еще более редкая ситуация. Обычно на уровне мидла уже несложно устроиться.