[Ответить в тред] Ответить в тред

09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!
30/09/16 - BREAKING NEWS ШОК АБУ ПРОДАЛСЯ МЭЙЛУ (на самом деле нет)
25/09/16 - Персональное обращение Абу - СБОР ПОЖЕРТВОВАНИЙ НА ДВАЧ



Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 181 | 8 | 50
Назад Вниз Каталог Обновить

How2Bash Аноним 28/09/16 Срд 23:07:54  848209  
14750932743960.jpg (15Кб, 800x600)
Как начать писать на этом говне?
Почему оно такое неприветливое?
Каковая сейчас обстановка в написании сценариев linux? Нормальные люди используют perl/python?
Аноним !!a7u.XEsVf6 28/09/16 Срд 23:18:57  848214
http://www.howtogeek.com/267858/how-to-install-microsoft-powershell-on-linux-or-os-x/
Аноним 29/09/16 Чтв 03:16:33  848250
Просто практикуйся. Мне вот его синтаксис не нравица, но если привыкнуть, то норм. Perl/Pizdon нинужны, баша хватает, более чем, для всего, ваще.
Аноним 29/09/16 Чтв 04:13:59  848259
>>848209 (OP)

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

>>848214
>баша хватает, более чем, для всего, ваще.
Are you serious?
А ну ка, запили мне на баше трёхмерный массив. После того, как справишься с этой простой задачей, подкину тебе другую простую задачу.
Аноним 29/09/16 Чтв 07:04:37  848264
>Каковая сейчас обстановка в написании сценариев linux?

На работе люди все чаще используют сценарии ansible, chef, puppet и salt. Баш-скрипты чаще закидывают в релиз, тоже самое касается make. Макосовский консольный софт часто скриптуется на ruby, так как он там есть изкаропки. А так - ничего не мешает использовать что угодно, любой скриптовый язык подходит для таких задач. Хоть на нодежс скриптуй свое админство. А так, конечно, лучше на пистоне или рубях, если уж делать свой велосипед. Перл говно, недалеко от баша ушел, и то, и то трудно читать.
Аноним 29/09/16 Чтв 10:33:10  848297
>>848259
> на баше трёхмерный массив
Для решения каких задач на баше тебе потребовался трехмерный массив?
Аноним 29/09/16 Чтв 11:55:30  848307
>>848209 (OP)
Используй IPython, он кроссплатформенный, весь Python с его либами уже входит + поддерживает команты shell'a. Использую одни и те же скрипты под Debian и Windows 7, полёт нормальный.(Он ещё и ООП!)
Аноним # OP  29/09/16 Чтв 23:25:33  848490
>>848307
>Используй IPython
Уже, но достаточно зайти на hh и вот тебе BASH BASH perl? NOPE BASH!
Аноним 30/09/16 Птн 00:40:55  848500
>>848297
Для сложения двух трёхмерных массивов.
Аноним 30/09/16 Птн 13:58:31  848536
>>848500
Ок, вопросов больше не имею.
Аноним 01/10/16 Суб 07:42:26  848822
>>848500
А зачем тебе что-то хранить в трехмерном массиве?
Аноним 01/10/16 Суб 08:24:22  848826
>>848822
Мне так удобнее.
Вот представь, есть N серверов. Некоторая часть из них промышленные Np. Некоторые тестовые Nt. Тестовых несколько групп Nt1, Nt2, Nt3... Некоторые из них подготавливаемые к пуску Npp. Все они в одной подсети. Взаимоотношеня между серверами построены по принципу frontend - backend, при том у одного фронтенда может быть несколько бекендов и у одного бекенда может быть несколько фронтендов. И ещё есть различные категории пользователей, которым надо обеспечивать или перекрывать доступы к разным группам. Элементарная задача для сисадмина. Надо всего лишь выстроить трёх мерный массив, где по осям x,y будет двумерная таблица серверов, а по оси z будет всё множество пользователей.
Но на голом баше такую хуйню заебёшься реализовывать.
Аноним 01/10/16 Суб 12:53:39  848888
>>848209 (OP)
[code lang=sh]
URL_PREFIX=http://poprzednia.univ.gda.pl/slang/hasla
NTHREADS=10

curl ${URL_PREFIX}/litery.html \
| grep -oE '[a-z][.]html' | xargs -n1 -I{} curl ${URL_PREFIX}/{} \
| grep 'target="znaczenie"' | grep -oP '(?<=href=").*?(?=")' \
| xargs -n1 -P${NTHREADS} -I{} curl ${URL_PREFIX}/{} \
| sed '/^</!ba;/<dt>/!d;:a'
[/code]
Ну попробуй это переписать на своем любимом питухоне. Мало того, что коду будет в разы объемнее, так ещё и времени ты на это потратишь поболее, хотя бы потому, что ты не сможешь писать/тестировать звенья конвейера поотдельности.
Аноним 01/10/16 Суб 13:12:46  848898
>>848826
>Элементарная задача для сисадмина.
А где задача-то? Массив построить? Ты уверен, что именно это конечная цель?
Какой тебе программировать, если ты даже в нормальную постановку задачи не можешь? Хоть бы сначала какой-нибудь курс вроде SICP'а прошел.
Аноним 01/10/16 Суб 13:36:27  848910
>>848209 (OP)
http://samrowe.com/wordpress/advancing-in-the-bash-shell/
Несколько трюков, не имеющих отношения к скриптованию, но уменьшающий боль работы в bash.
Аноним 01/10/16 Суб 13:41:21  848913
>>848209 (OP)
http://guide.bash.academy/
Правда, там пока мало что есть. Но зато объяснено норм.
Аноним 01/10/16 Суб 15:36:39  848949
>>848888
Переписал на своём любимом груви http://pastebin.com/rMaj8aY1
Не понял почему нельзя тестировать звенья конвейера по отдельности.
По-моему наоборот, невозможность сохранить составную структуру данных в переменную замедляет отладку, и заставляет писать подобных многоэтажных монстров вместо простого и ясного кода.

В голой консольке такое многострочное выражение набирать в любом случае неудобно. Сложно перемещаться между строками (лучше не нажимать ВВЕРХ лишний раз), и нет подсветки синтаксиса, без которой не поймёшь правильную ли ты кавычку поставил и всё ли заэкранировал в регекспе.

Алсо у твоего скрипта проблемы с кодировкой текста.
Аноним 01/10/16 Суб 21:23:02  849058
>>848949
>>848949
>Переписал на своём любимом груви
Неплохо, особенно для jvm-монстра, но с шеллом всё равно не сравнится.
>составную структуру данных
Тебе ещё только предстоит познать юникс-вей, юный падаван.
>В голой консольке такое многострочное выражение набирать в любом случае неудобно.
Именно в ней код и писался. Сделал запрос, оценил вывод, добавил следующий элемент конвейера и так далее. Если повторное выполнение какой-то части конвейера занимает многовато времени, то просто ебанул её вывод во временный файл.
>Сложно перемещаться между строками
А зачем между ними перемещаться?
>Алсо у твоего скрипта проблемы с кодировкой текста.
Мне не критично, скрипт был одноразовый. Но при желании можно было флажок у curl поискать или просто ебануть iconv.
Аноним 01/10/16 Суб 22:25:59  849085
>>848209 (OP)
Не начинай, не выходи за пределы sh.
Аноним 01/10/16 Суб 23:09:10  849097
Мне кажется, фанаты баша это самые отмороженные фанаты из всего программирования.
Аноним 01/10/16 Суб 23:29:24  849104
>>848910
Чая тебе.
Аноним 02/10/16 Вск 00:11:44  849119
>>849097
Не отмороженнее фанатов питона или другого языка, который они пытаются впихнуть в самые неподходящие области применения вроде сисадминства
Аноним 02/10/16 Вск 00:57:47  849132
>>848209 (OP)
>Нормальные люди используют perl/python?
Админы - Perl, активно. Более того, зачастую без него тупо неудобно, ведь это Practical Extraction and Report Language, т.е. язык, созданный для сложного парсинга логов и составления отчётов.
Пайтон - реже, но никто не запрещает.

Зависит от задач. Смотри примеры немножко ебанутые, придумываю на ходу, прошу не цепляться к тому, что обычно так не делают или делают, но только конченые пидорасы, они призваны только показать, что у разных инструментов есть разные специфики применения, а я слишком сонный, чтобы выдавать идеальные варианты. Допустим, ты админишь линуксы. У тебя возникла задача, например, отследить, что произошло с письмом на транзитном сервере с Sendmail и SpamAss, который, например, стоит между интернетами и чангой/зимброй/етц. Ты делаешь cat, грепаешь отправителя, выделяешь (awk'ом) ID и грепаешь лог уже по ID в одну строку, и получаешь всю историю письма. Очень грубо. Можно залезть в несколько логов разных систем, смотря по ситуации. Это типовая задача для sh.

Допустим, ты получаешь текстовый CDR или даже лог событий FreeSwitch, нужно выловить историю вызова. Тут простым грепом не факт, что отделаешься, наверняка придётся лезть в Perl.

Что там ещё?.. Допустим, надо сделать бекапы. Ну тут чем нативнее и проще, тем лучше. Даже не интересно.

А вот если нужно собирать информацию по крону и в зависимости от полученных данных дёргать разные системы или делать что-то ещё... Скажем, ты ленивое хуйло (а с точки зрения начальника это наверняка так) или твой начальник жадный мудак (а вот это обычное дело с точки зрения инженера) и ваше коллективное раздолбайство мешает вам замутить Zabbix/Nagios или ещё какую систему мониторинга, в которой всё есть искаропки. А тут владелец здания задумал ремонты делать и в серверной стало регулярно пропадать питание на больший срок, чем тянут упсы, после чего половина серваков от неожиданного выключения не поднимаются сами и просят помочь им, ты берёшь и пишешь скрипт для крона, который проверяет состояние и заряд упса, если обнаруживает, что пролпало питание на входе, то шлёт тебе письмо с уведомлением, а если видит, что заряд снизился ниже критической отметки - посылает серваки в корректный даун. Такое ты на
sh писать замучаешься и наверняка возьмёшь что-то более юзерфрендли с готовыми модулями для работы с почтой, SNMP и всем остальным. Тут как раз я подозреваю, что зарулит что-то Python'оподобное, но не факт, что именно Пайтон.

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

>>849119
>неподходящие области применения вроде сисадминства
Сисадминство это очень широкая тема и есть задачи, когда Python действительно может оказаться удобнее. И уже задача админа определиться, в данном случае ему проще использовать более подходящий для задачи инструмент или тот, который ему более привычен и субъективно больше нравится. По большому счёту мало задач, которые нельзя решить на первом, что подвернётся под руку, останется только вопрос удобства.
Аноним 02/10/16 Вск 00:59:22  849133
>>849132
Ничё так накатал, аж офигел. Кстати, проёбанная разметка -- из-за звёздочек перед sh, коими я хотел показать,что это относится ко всем выросшим из sh шеллам.
Аноним 02/10/16 Вск 01:36:55  849143
Решил немного поучится писать на этом говне и, от нехуй делать решил сделать скрипт, который не дает коммитить тебе в гит (если его прописать как алиас git).
http://pastebin.com/9piFjC35

вроде все просто, но чего-то не хочет хавать, например, ключ -а и тому подобное.

так или иначе, как правильно передавать параметры в скрипт? особенно стринги (типа git commit -m 'le string')
Аноним 02/10/16 Вск 02:13:50  849158
>>849143
Ебать ты аутист. Методом питонячьего тыка пытаешься разобраться что ли?
Не хочешь маны читать, так хотя бы с базовыми конструкциями баша ознакомился бы.
Аноним 02/10/16 Вск 02:18:10  849161
>>849143
http://tldp.org/LDP/abs/html/
Аноним 02/10/16 Вск 08:24:18  849185
>>849158
Кто аутист, ты аутист ептэ.
> будь мной
> хурп-дюрп, неплохо бы уметь в примитивный BS для утилитарных целей
> придумай (тупую) идею для примитивного скрипта
> полчаса гугления и стаковерфлоу >> почти работает
> спрашиваешь двачей об особенностях передачи параметров в скрипт.
> АААААА!!!!!1 ЧИТАЙ ЕБУЧИЙ, НАПИСАННЫЙ ЖОПОЙ, КРАСНОГЛАЗЫЙ МАНУАЛЬ НА ТРИ МИЛЛИАРДА СТРАНИЦ.
> нихуя ответа по сути
Чувак, мне сейчас а) не уперся скрипт на таком уровне б) не то чтобы у меня сейчас было дохуя времени, чтобы читать целые мануали к языкам, к которым у меня нет профессианального интереса. Меня сейчас вполне устраивает уровень скрит кидди в этом говне. Я вообще макоеб, если уж на то пошло.
Аноним 02/10/16 Вск 09:38:50  849190
google ansible, nigger
or
chef puphet
Аноним 02/10/16 Вск 12:29:00  849294
>>849185
man 1 getopt
>чтобы читать целые мануали к языкам
Юрист что ли? Как ты вообще в IT оказался, если даже не умеешь добывать нужную информацию из документации?
>к которым у меня нет профессианального интереса
Зачем себя мучать?
Аноним 02/10/16 Вск 15:19:13  849358
Потому что баш это специализированный язык управления процессами, потоками данных и параллелизацией. Это не для написания обычных прикладных программ. На баше лучше не писать калькуляторы фибоначчи, хотя никто не запрещает, но это будет сложнее и хуже, чем на любом general purpose языке. Но вот зато отспавнить процесс, направить его stderr выхлоп в другой процесс - лучше баша это не сделает никто (ну разве что какой-то другой шелл).
Аноним 02/10/16 Вск 17:46:20  849446
Кто сказал Фибоначчи? Специальную олимпиадку объявляю открытой
http://ideone.com/3hHXQG
cat - $FIFO <<EOF | sed -nu 'h;:a;n;x;G;s;\n;+;;p;ba' | bc | tee $FIFO
0
1
EOF
Аноним 02/10/16 Вск 18:05:22  849464
>>849294
>Как ты вообще в IT оказался, если даже не умеешь добывать нужную информацию из документации?
Блядь. Один из путей добывания информации это, блядь, спросить у того кто под рукой и опытнее, совсем чтоли охуели вы тут все? Сука, я потратил 30 минут на скрипт, не зная о языке почти нихуя, и он, сука, почти работает, но вот с проблемой передачи параметров с наскоку не справился. Спросил в чем, блядь, особенность. Нет, блядь, развели рассуждение о том какой это нахуй специализированный язык для илитки.
Ну, то есть я могу потрать ее 30, 60 минут, два часа, чтобы понять в чем проблема, а могу СУКА СПРОСИТЬ СОВЕТ НАХУЙ.
Не, ну серьезно, по сути вопроса ответа вообще нихуя. только ссылка на оглавление (!) мануаля, который, естественно, мне выпадал в гугле миллиард раз.
>>849294
>Зачем себя мучать?
Во-первых, интересно, во-вторых, простенькие скрипты, с проверкой существования файлов, манипуляцией аутпутом и т.д. это полезно чисто в утилитарных целях, там повесить в крон и дергать какие-нибудь логи за анус, например.
>>849358
>Это не для написания обычных прикладных программ.
Кхм, я сюда пришел со скриптом (ладно, окей, "скриптом"), который пытается перехватить управление у гита и игнорировать коммиты делая вид что нихуя необычного не происходит. Какие нахуй прикладные программы?
Аноним 02/10/16 Вск 18:18:09  849480
>>849464
>не зная о языке почти нихуя
Так надо было узнать. Хули тебе, документацию пересказывать что ли?
>СУКА СПРОСИТЬ СОВЕТ НАХУЙ
Вот тебе и дали совет: ЧИТАЙ СУКА ЧИТАЙ БЛЯДЬ, чтобы не заебывать потом людей тупыми вопросами и кусками кода, которые с легкостью бы продавались в цирке как результат деятельности слона Джимбо.
>оглавление
Не умеешь таким пользоваться? Тебе надо было странички перечислить? Или, может быть, прямые ссылочки на все главы, с которыми бы тебе стоило ознакомиться?
>который, естественно, мне выпадал в гугле миллиард раз.
Даже безмозглая машина лучше знает, что тебе нужно.
Аноним 02/10/16 Вск 18:56:18  849521
>>849480
>которые с легкостью бы продавались в цирке как результат деятельности слона Джимбо.
Я прекрасно понимаю, что это скрипт уровня "кот на клавиатуру насрал". Но мне нахуй и в пизду не сдалось это говно на более высоком уровне. А на таком - БЫВАЕТ ПОЛЕЗНО. Если бы была более простая, хоть и кастрированная альтернатива - да неебатся, я не гордый. Я в детсве .bat-файлы писал, не умер (разве что немного внутри).
Но тут документация пиздец жопой писана. Мне нахуй не нужно лезть в глубину этого дремучего ада. Мне просто нужно перехватить параметры и передать их обратно как было.
Аноним 02/10/16 Вск 19:32:14  849540
>>849521
>Но тут документация пиздец жопой писана.
А ты её читать собрался что ли? Там всё равно ничего нового не написано. Просто полистай выборчно интересующие главы, погляди примерчики, ознакомишься как раз с основными конструкциями, средствами языка, основными командами — делов-то на вечерок. Хотя бы будешь уже представлять, что как и чем тут делается, а нюансы уточнишь по мере необходимости.
Аноним 02/10/16 Вск 19:34:18  849544
14754260587320.png (57Кб, 1366x768)
>>848209 (OP)
>Почему оно такое неприветливое?
Аноним 02/10/16 Вск 20:03:20  849554
>>849446
cat - /tmp/fifo << EOF | dc -e '?[?dsa+plalxx]sxlxx' | tee /tmp/fifo
Какая охуенная штука этот dc
Аноним 02/10/16 Вск 20:21:30  849570
Как написать скрипт, запускающий cl.class (java cl) без указания полного пути до cl.class при условии, что скрипт и .класс файл в одной папке? Что бы он не сломался, если папку переместить.
Аноним 02/10/16 Вск 20:25:42  849575
>>849570
java -cp `dirname $0` cl
Как-то так
Аноним 02/10/16 Вск 20:27:10  849577
>>849358
>баш это специализированный язык управления процессами, потоками данных и параллелизацией
Ну не совсем так. Шеллы, включая bash, даже проще - они просто объединяют по определённым правилам (по весьма небольшому списку правил) выполнение некоторых программ, а значит фундаментально возможности языка ограничены лишь возможностями программ, оперирующих текстовыми строками, используемыми в качестве интерфейсов в классических шеллах.
>>849554
Это работает НАМНОГО медленнее.
Аноним 02/10/16 Вск 20:28:44  849579
>>849577
>НАМНОГО медленнее
Стоп. А оно вообще работает?
Аноним 02/10/16 Вск 20:33:04  849583
>>849579
http://ideone.com/93DhKS
Конеш
Аноним 02/10/16 Вск 20:34:00  849586
>>848209 (OP)
Нормальные люди используют Microsoft Powers Hell.
>>848250
Ассемблера тоже хватает для всего -> все прочие языки нинужны
Аноним 02/10/16 Вск 20:34:08  849587
>>849583
Бля, у них dc нет
Аноним 02/10/16 Вск 20:35:23  849588
>>849586
>>849586
>Microsoft Powers Hell.
Приглашаю поучаствовать >>849446
Аноним 02/10/16 Вск 20:57:48  849616
>>849588
Но ПоверШелла нет на ideone.com.
Аноним 02/10/16 Вск 21:03:43  849621
>>849583
Просто у меня он выводил все числа подряд, а не только числа из ряда. Запускаю в чистой убунте на виртуалке.
Аноним 02/10/16 Вск 21:11:44  849631
>>849616
Ну вот, поверс хелл соснул даже не успев начать
Аноним 02/10/16 Вск 21:13:48  849635
>>849621
https://bpaste.net/show/c3e0b235f174
Аноним 02/10/16 Вск 22:29:15  849692
14754365552180.png (33Кб, 569x455)
>>849635
Ну хуй знает. Может, не подряд, но неправильно. Слева - >>849446, справа - >>849583.
Аноним 02/10/16 Вск 23:28:30  849731
>>849692
Проверь скрипт у себя. Не может же один и тот же код давать разные результаты
Аноним 03/10/16 Пнд 00:05:57  849738
14754423576160.png (93Кб, 899x555)
>>849731
Ещё раз: хуй его знает.
Впрочем, хуй он такой - он всё знает, он, SUKA, всеведущий, но молчаливый.
Аноним 03/10/16 Пнд 00:08:44  849739
14754425247050.png (85Кб, 758x614)
>>849738
Блин. Пофиксил скрин на всякий случай. Если не веришь или думаешь, что я правлю скрипт в другом окне ради троллинга, то могу записать вебм-ку.
Аноним 03/10/16 Пнд 00:11:04  849741
сап, антоны. Пишу костыль, который нужен для администрирования oracle (для учебы). Суть в том, чтобы написать баш-скрипт, в котором будут выполняться команды из sqlplus и lsnrctl. Но естественно они не выполняются, если написать их прямо в баше. По сути выполнение заканчивается на запуске этих самых утилит. Как передать им управление из баша? Пока писал, придумал просто выполнять из из другого скрипта. Что скажете?
Аноним 03/10/16 Пнд 00:17:09  849742
>>849616
http://www.tutorialspoint.com/codingground.htm
Аноним 03/10/16 Пнд 00:17:30  849743
>>849741
Искать лень. Опиши, как обычно эти
>sqlplus и lsnrctl
выполняют команды.
Аноним 03/10/16 Пнд 00:23:54  849745
>>849743
sqlplus программа-интерпретатор командной строки для работы с системой управления базами данных Oracle Database. Т.е. просто запускается эта программа и через терминал ты выполняешь уже команды этой программы.
Аноним 03/10/16 Пнд 00:25:53  849747
а мне нужен баш для калькуляторинга, потомучто калькулятор найти в ебунте тот ещё квест, особенно с ебунтой установленной на флешке - может найти а может и нет
Аноним 03/10/16 Пнд 00:31:12  849749
>>849745
Правильный путь - проверить в манах, нет ли у ней ключей, которыми можно передать команду.
Простой путь - направить в неё команду имитацией ввода через "<<".
Имей в виду, что если команда задаёт несколько вопросов, например, ты вводишь "sqlplus", а он тебя начинает "Какой там адрес сервера", "Логин свой назови", "ПАРОЛЬ!", то их надо передавать одним пучком.
Аноним 03/10/16 Пнд 00:32:40  849750
>>849738
>>849739
Ну вон же, ёпта, у тебя там /tmp/fifo (который нихуя не пайп) вместо $FIFO
Аноним 03/10/16 Пнд 00:33:47  849751
>>849749
спасибо, сейчас попробую
Аноним 03/10/16 Пнд 00:43:53  849753
>>849750
Реально, видимо, я отсюда строку взял, а не скрипт целиком: >>849554
Теперь работает.
Аноним 03/10/16 Пнд 00:55:15  849757
>>849749
как ни странно сработал обычный EOF, спасибо
Аноним 03/10/16 Пнд 01:31:25  849768
>>849747
F12, Esc
Аноним 03/10/16 Пнд 02:36:26  849777
>>848209 (OP)
Немного оффтоп. Если ты считаешь это говном, с какой целью тебе нужно на нём начинать писать? Тебе кто-то запрещает использовать perl/python?
Аноним 03/10/16 Пнд 02:38:53  849778
>>848250
>Perl/Pizdon нинужны, баша хватает, более чем, для всего, ваще.
Всего - это чего? Если тебе нужно не просто автоматизировать какие-то действия, а сформировать какой-то отчёт, то тут без языка, в котором есть хэши/словари, очень туго. Можно извращаться и использовать баш, но это геморрой полный.
Аноним 03/10/16 Пнд 02:44:05  849779
>>848264
>Перл говно, недалеко от баша ушел, и то, и то трудно читать.
если ты не владеешь языком, то само собой, его трудно читать
Аноним 03/10/16 Пнд 02:50:21  849780
>>848826
>Взаимоотношеня между серверами построены по принципу frontend - backend, при том у одного фронтенда может быть несколько бекендов и у одного бекенда может быть несколько фронтендов.
вот это вообще пушка
Аноним 03/10/16 Пнд 02:55:04  849781
>>849143
>git $1 $2 "$@"
ох лол
Аноним 03/10/16 Пнд 03:03:04  849782
>>849190
хватит форсить своё говно, мань
Аноним 03/10/16 Пнд 03:35:24  849786
>>849119
Конечно же отмороженнее. Фанбоев развивающегося языка можно понять. Но баш это замороженное говно мамонта без будущего, хаотичное нагромождение фич вокруг программы работы с терминалом, которое решили дотянуть до языка. Легаси в худшем проявлении.
"Using ;;& in place of ;; causes the shell to test the next pattern list in the statement, if any, and execute any associated list on a successful match."
"&>>word is semantically equivalent to >>word 2>&1"
Фу, бля. Выжечь напалмом.
Аноним 03/10/16 Пнд 03:45:07  849787
>>849786
>замороженное говно мамонта без будущего
>существует и развивается 26 лет
Ты, наверно, из тех людей, которые говорят о том, что perl умер.

Алсо, у большинства людей итт явно неверное восприятие баша. Это не ЯП в первую очередь. Баш это интерфейс для взаимодействия с ОС.
Аноним 03/10/16 Пнд 04:11:54  849789
>>849787
Да, Перл умер.
Аноним 03/10/16 Пнд 14:29:56  849983
>>849787
Вот ченджлог 4й версии с 2009 http://tldp.org/LDP/abs/html/bashver4.html
По-моему это агония.
>Баш это интерфейс для взаимодействия с ОС.
И это хуёвый интерфейс взаимодействия с ОС. Как раз на то, как происходит редактирование командлайна особых ограничений обратной совместимости нет. Но ни удобных хоткеев, ни возможностей копипаста даже на уровне notepad.exe там нет. А хотелось бы множественные буферы обмена, и чтобы был шорткат для их быстрого просмотра и выбора по номеру. history не то. И возможность выделить кусок текста и автоматически экранировать/разэкранировать его.
Когда я пишу длинную команду и вдруг вижу повторяющуюся ошибку я не хочу дописывать в начале команды history -a, жать энтер, а потом !!:s/wrong/correct/. Я хочу нажать хоткей, ввести wrong, энтер, correct, энтер. И чтобы в этих полях ввода поддерживался копипаст.
Блядь, интерактивности хочется. Чтобы когда я пишу команду с вайлдкардами мне рядом показывалась её распакованная версия.
Да посмотрите хотя какие крутые экспанды путей делает zsh. Почему баш вместо этого в носу ковыряется?
Аноним 03/10/16 Пнд 14:41:50  849995
>>849983
Большая часть из того, что ты описал, относится к терминалу, а не интерпретатору. Ничто не мешает тебе запилить свой эмулятор терминала с блекджеком и интерактивностью.
Аноним 03/10/16 Пнд 14:42:50  849997
>>849983
Поправка, не history -a, history -s и не !!:s/wrong/correct/, а !!:gs/wrong/correct/
Аноним 03/10/16 Пнд 14:45:42  849999
>>849995
>у большинства людей итт явно неверное восприятие баша. Это не ЯП в первую очередь. Баш это интерфейс для взаимодействия с ОС.
>Большая часть из того, что ты описал, относится к терминалу, а не интерпретатору.
Ясно.

>Ничто не мешает
Мешает тот факт, что баш де-факто стандарт. Я могу сделать себе удобное окружение. Но когда я захожу на удалённую машину у меня обычно есть только голый уродливый баш.
Аноним 03/10/16 Пнд 15:01:05  850003
>>849999
> Я могу себе установить удобную IDE для Java. Но когда я захожу на удаленную машину у меня есть только голый уродливый /usr/java/javac
Понимаешь к чему я веду?
Аноним 03/10/16 Пнд 15:05:58  850004
>>849999
Да нихуя тебе не ясно тбх.
То, что ты описал это пользовательский интерфейс с терминалом.
Чуешь разницу? Или тебе опять всё нужно пережевывать да переваривать?
Аноним 03/10/16 Пнд 15:28:37  850009
>>849786
>хаотичное нагромождение фич
В 95% случаев этими фичами никто не пользуются, потому что они не нужны. Конечно, изредка при написании однострочника бывает удобно воспользоваться перделкой баша вместо вызова, например, sed'а, и сократив тем самым код на 10-15 символов, но полезным или необходимым это не назовешь.
Как уже сказал товарищ выше, ты неправильно воспринимаешь баш. Это не изолированный язык, как какой-нибудь питон, и на нем не пишется основная логика. Это просто клей между отдельными гхм... командами, у каждой из которых свой предметно-ориентированный язык. Поэтому от самого языка много и не требуется: массивы, словари, структуры, объекты - всё это для языка, задача которого соединить выход одной программы со входом другой, излишне.
Аноним 03/10/16 Пнд 19:53:06  850173
>>850003
>Понимаешь к чему я веду?
К тому, что скомпилировать джава-код на удалённой клиентской юникс машине бывает нужно так же часто, как что-то там поадминить, например погрепать логи, сконфигурить и поднять сервис и т.д. Мой опыт говорит об обратном. Мне по работе приходилось заходить на aws-овские серваки и AIX серваки с ksh на борту, но вот компилировать джава-код там не потребовалось ни разу.

>>850004
>То, что ты описал это пользовательский интерфейс с терминалом.
Как терминал может заэскейпить/разэскейпить выделенный текст в командной строке?
Как он может сделать подстановку по хоткею?
Как он может на лету делать экспандинг строк?
Мне это нихуя не ясно, разжуй плиз.
Насчёт копирования - в секции Killing and Yanking мана баша упоминаются некоторые возможности. И kill-buffer там есть (типа буфер обмена с историей). Но даже для такой операции как kill-region (аналог cut) по дефолту не назначен хоткей. Да кому может понадобиться вырезать текст?

>>850009
Я не понимаю людей, которые с энтузиазмом копаются в этой куче. Моя реакция - колотить в дверь, звать начальника и требовать хотя бы zsh.
Аноним 03/10/16 Пнд 20:07:38  850180
>>850173
В какой куче? Зачем тебе zsh? Если тебе не хватает sh, значит, что-то ты делаешь неправильно.
Аноним 03/10/16 Пнд 22:05:22  850204
>>850173
Справедливости ради, zsh - то еще нагромождение действительно хуевой тучи фич на любой вкус, цвет и извращение. Но даже не копаясь в этой куче с энтузиазмом, можно ощутить эту разницу в интерактивном использовании между zsh и bash.

>>850180
Зачем тебе бензопила? Если тебе не хватает топора, чтобы расчистить гектар джунглей, значит,что-то ты делаешь неправильно.
Аноним 03/10/16 Пнд 22:48:28  850227
>>850204
Аналогия не верна, видимо, ты прошлый пост жопой читал
>Зачем тебе этот клей с блестками? Если тебе не хватает суперклея, чтобы собрать топор для расчистки джунглей, значит, что-то ты делаешь неправильно.
Вот так было бы правильнее
Аноним 03/10/16 Пнд 23:18:44  850237
>>850173
> К тому, что скомпилировать джава-код ...
Нихуя я ты не понял. Я солидарен с вышеотписавшимся аноном о том, что ты путаешь поятия: терминал/эмулятор терминала и интерпретатор.
sh, bash, zh, пидораш - это все языки с интерпретаторами. Интерпретатор по определению не может быть интерактивным. Интерактивным может быть софт, в котором ты набиваешь команды и шлешь их бинарнику интерпретатора.
> когда я захожу на удалённую машину у меня обычно есть только голый уродливый баш
Опять же, на удаленной машине только интерпретатор (к тому и была аналогия с javac), команды ты набиваешь в локальном терминале, который под капотом просто их шлет по ssh на удаленную машину.
Аноним 04/10/16 Втр 00:01:21  850247
>>849747
Питон лучше по всем параметрам. Удобнее (собственно, как и язык в целом), числа могут быть сколь угодно большими (хошь - вычисли 2*100).
Аноним 04/10/16 Втр 00:12:08  850252
>>850247
Да мне и шелла хватает: dc -e '2 100000 ^ p'
Питухон, кстати, медленнее считает
Аноним 04/10/16 Втр 00:15:01  850257
>>850237
>sh, bash, zh, пидораш - это все языки с интерпретаторами.
Когда я набираю часть имени файла и жму таб - кто предлагает мне варианты продолжения, терминал или "бинарник интерпретатора"?
Когда я жму бекспейс, кто определяет, надо ли удалить символ $, стоящий перед курсором?
Когда я ввожу латинскую "a", кто определяет как отреагировать?
Подсказка: я только что выполнил команду bind '"a":"SOSI"'

В общем если ты ещё не понял, то шелл берётся за дело не в тот момент, когда ты жмёшь энтер. Он проделывает кучу грязной работы по обработке нажатий клавиш ещё до этого.
Аноним 04/10/16 Втр 00:31:44  850261
>>850227
В zsh навигация по ФС и набор команд быстрее происходит за счёт более интеллектуального автокомплита.
Например вместо "cd /home/Anon/porn/loli/" можно писать "/h/a/p/l". Меньше нужно печатать и работа идёт быстрее.
Аноним 04/10/16 Втр 00:37:00  850262
>>848209 (OP)
Если тебе так хочется писать на ГНУтом, тормозном и дырявом говне, то так уж и быть, не стану метать бисер перед свиньями, в конце концов, свобода бытия говноедом это тоже свобода, которую нарушать нельзя. Только, будь няшей, и приучи себя писать в шебанге "#!/usr/bin/env bash" вместо пикрелейта. Спасибо.
Аноним 04/10/16 Втр 00:37:20  850263
>>849787
>Баш это интерфейс для взаимодействия с ОС.
Ну, всё-таки больше, чем просто интерфейс. Это и способ автоматизации взаимодействий с системой, а это уже ЯП. Хотя нужно понимать, что в отличие от того же Пайтона он вызывает не функции из своих либ, а полноценные самостоятельные программы.
Аноним 04/10/16 Втр 00:41:17  850266
>>850263
>он вызывает не функции из своих либ, а полноценные самостоятельные программы
А вот и эксперты подтянулись.
Аноним 04/10/16 Втр 01:01:02  850273
>>849983
>Вот ченджлог
Прикрепи сюда ченджлоги всех утилит, использующихся в скриптах, начиная с coreutils и заканчивая всем, что используется в скриптах на самом деле, вплоть до imagemagick и прочих ffmpeg.
Аноним 04/10/16 Втр 01:09:35  850275
>>850273
Прикреплю, когда мы будем говорить о развитии этих утилит. Сейчас мы говорим о баше.
Аноним 04/10/16 Втр 01:09:36  850276
Адепты Баша можете пояснить, почему ваш основой набор плагинов имеет в 8 раз меньше звездочек чем аналогичный репозиторий для zsh?

-> https://github.com/Bash-it/bash-it

и

-> https://github.com/robbyrussell/oh-my-zsh

Я не спорю, можно виртуозно пользоваться и тем, и тем, только вот в 2016 смысла уже нет учить баш, кроме как легаси на работе.
Аноним 04/10/16 Втр 01:11:25  850277
>>850261
Причем тут автодополнение? Мы про различия языков говорили
Аноним 04/10/16 Втр 01:16:48  850278
>>850277
Я говорил >>849786 про то, что не понимаю людей, которые добровольно используют баш в 2016. Ущербен как язык так и возможности оболочки.
Аноним 04/10/16 Втр 01:28:21  850279
Пока есть 80% софта под майком - баш будет оставаться.

На баш заточено все, даже сраные пре- и пост- установочные скрипты в пакетах на нем.

Альтернатив нет, так как нет более унифицированного средства.
Аноним 04/10/16 Втр 01:29:32  850280
>>850278
Я выше и пояснял, что от баша, как от языка, много и не требуется, потому что вся логика распределяется по предметно-ориентированным языкам "команд", а его задача просто их соединить.
>Ущербен как язык так и возможности оболочки.
zsh практически ничем не лучше, а жертвовать совместимостью с де-факто стандартной оболочкой - башем - ради радуги и информации о погоде в строке приветствия как минимум глупо
Аноним 04/10/16 Втр 08:39:26  850312
>>850262
Это ещё зачем?
Аноним 04/10/16 Втр 08:40:55  850313
>>850263
>Ну, всё-таки больше, чем просто интерфейс.
бля, я имел в виду, в первую очередь это интерфейс для взаимодействия с ОС и только во вторую - это ЯП. Очевидно, блядь, что это не только интерфейс.
Аноним 04/10/16 Втр 08:43:04  850314
>>850275
Никто не использует голый баш в процессе работы с системой. Попутно юзается куча программ из coreutils. Про ffmpeg это перебор, конечно.
Аноним 04/10/16 Втр 08:43:46  850315
>>850279
>Пока есть 80% софта под майком
под чем блядь?
Аноним 04/10/16 Втр 08:45:39  850317
>>850276
>в 8 раз меньше звездочек
Ох, лол. Давай допивай свой смузи, сучка, и пиздуй отсюда.
Аноним 04/10/16 Втр 08:53:23  850320
>>850173
>Но даже для такой операции как kill-region (аналог cut) по дефолту не назначен хоткей.
Да ты что, мань? С-k не пробовал? А ведь есть ещё C-w и C-y, прикинь?
Аноним 04/10/16 Втр 08:55:24  850322
>>850261
>Например вместо "cd /home/Anon/porn/loli/" можно писать "/h/a/p/l". Меньше нужно печатать и работа идёт быстрее.
ln -s /home/Anon/porn/loli loli

не благодари
Аноним 04/10/16 Втр 11:31:24  850358
>>849143
www.tutorialspoint.com/unix/case-esac-statement.htm

$ ./test.sh -f index.htm
File name is index.htm
$ ./test.sh -d unix
Dir name is unix
Аноним 04/10/16 Втр 11:32:21  850359
>>850358
#!/bin/sh

option="${1}"
case ${option} in
-f) FILE="${2}"
echo "File name is $FILE"
;;
-d) DIR="${2}"
echo "Dir name is $DIR"
;;
*)
echo "`basename ${0}`:usage: [-f file] | [-d directory]"
exit 1 # Command to come out of the program with status 1
;;
esac
Аноним 04/10/16 Втр 11:34:21  850360
>>850359
о ${0} и прочая

www.tutorialspoint.com/unix/unix-special-variables.htm
Аноним 04/10/16 Втр 12:03:18  850369
>>850314
>Про ffmpeg это перебор, конечно.
Если ты, например, хочешь написать "программу" (ну то есть что-угодно, лишь бы выполняло задачи), которая будет, скажем, на домашнем сервере проверять папку, в которую качаются торренты (ты для этого просто посылаешь ему, например, по почте .torrent-файл) на предмет новых видео, а потом, если находит видео, которое, например, содержит дорожку не того формата, который понимает твой ТВ, то перекодирует его в нужный формат и положит в отдельную папку, то тут самое простое будет именно какой-нибудь sh с ffmpeg. Это как модуль/либа/компонент/етц для работы с видео в других ЯП, только круче.
Аноним 04/10/16 Втр 13:34:08  850391
>>850359
О, велосипедисты подтянулись.
getopt жи есть
Аноним 04/10/16 Втр 13:53:17  850400
>>850280
>Я выше и пояснял, что от баша, как от языка, много и не требуется
В нём нет даже сущности, соответствующей процессу или элементу пайпа.
Мы не можем запустить в фоне несколько процессов, сохранить их "хендлы" в переменные, а потом сделать waitForAll, и чекнуть коды возврата. Для кодов возврата есть $? и $PIPESTATUS, где хранятся результаты только последнего пайпа (а их в команде может быть несколько). Есть wait, но он работает с PID, которые не уникальны для инстанса процесса, и могут переиспользоваться после его смерти. Именованных групп фоновых процессов, чтобы логически их объединять тоже не завезли. Но говноедам и так ок.
>zsh практически ничем не лучше
Идеологически не лучше, но эргономичнее.

>>850320
Пояснить разницу между регионом и строкой?

>>850369
Задолбаешься. Проще использовать обёртку вокруг ffmpeg для какого-нибудь скриптового языка.
Аноним 04/10/16 Втр 14:39:03  850431
Баш отлично подходит для написания всякой простой юниксоспецифичной хуиты (например, инит-скрипты) или в ситуациях, где надо написать скрипт для платформ, в которых кроме баша нихуя нет и быть не может, т.к. места для бидона/перла слишком мало (например, на роутерах). Написание мало-мальськи сложной логики на баше там, где можно заюзать что-то более человеческое, - садомазохизм и пустая трата времени.

>>849544
UNIX сложен и неприветлив только для виндузятников, т.к. они привыкли к тупорылым принципам своей венды.
Аноним 04/10/16 Втр 14:49:34  850440
>>850400
>В нём нет даже сущности, соответствующей процессу
>но он работает с PID
А другой сущности для идентификации процесса в POSIX и нет.
>или элементу пайпа
Чего-чего?
>Именованных групп фоновых процессов
А зачем они в баше? Это не ты тот хуй, которому многомерных массивов не хватало?
Аноним 04/10/16 Втр 15:01:29  850448
Отвечу в тред, пожалуй.
Пока уебы одногруппники задротили всякую хуйню, я и братишка прочитали камелбук, маны по шеллу и нашли работу админами.
Вот куда мамкиным вкатывальщикам надо смотреть.
Аноним 04/10/16 Втр 18:10:57  850572
>>850448
Ты опоздал где-то на 5 лет. Админская зарплата уже начала проседать где-то начиная с конца нулевых. А после обвала национальной бумажки сисадмин получает меньше самого обоссаного манагера, ибо последнему таки иногда поднимают зарплату
Аноним 04/10/16 Втр 18:21:27  850579
>>850572
Хуйню несешь. Норм админ - это стабильность, востребованность и низкий порог вхождения. Ну а если ты думаешь получать жабомакакой как господа в США, то боюсь тебя ждет разочарование.
По поводу зп, не знаю как в пердях, но в ДС стабильно от 50к бублей и выше. Недавно видел вакансию где рукастому админу предлагают 120-160к в зависимосте от прямоты рук.
Аноним 04/10/16 Втр 18:22:06  850580
>>850579
И такие вакансии кстати, не редкость.
Аноним 04/10/16 Втр 18:53:00  850590
>>850440
>А другой сущности для идентификации процесса в POSIX и нет.
И очень плохо. Баш, как процесс запускающий другие процессы, мог бы трекать момент их завершения с помощью обработчика сигнала SIGCHLD, и предоставлять пользователю действительно уникальный идентификатор запущенного процесса, состоящий внутри из пида и булевского флага завершён/не завершён.
>Чего-чего?
Один из процессов, объединённых в пайп.
>А зачем они в баше?
Чтобы можно было делать wait для выбранного подмножества фоновых процессов.
Аноним 04/10/16 Втр 19:15:40  850598
>>850590
>И очень плохо.
Нет, не плохо. Просто ты не умеешь в юникс-вей.
>мог бы трекать момент их завершения с помощью обработчика сигнала SIGCHLD
А он его и отлавливает. Читай маны.
>и предоставлять пользователю действительно уникальный идентификатор запущенного процесса
А он какой предоставляет? ID как бы намекает на однозначную идентификацию
>булевского флага завершён/не завершён.
Зачем? Это ты и по PID'у узнать можешь.
>Один из процессов, объединённых в пайп.
Это звеном конвейера называется, а пайп - средство IPC, если что.
Получить PID такого процесса тоже можно, но только зачем?
>Чтобы можно было делать wait для выбранного подмножества фоновых процессов.
wait $MY_NAMED_PROCESS_GROUP
Аноним 04/10/16 Втр 19:53:37  850630
>>850598
>А он какой предоставляет? ID как бы намекает на однозначную идентификацию
Ты запускаешь процесс, запоминаешь его пид, он умирает, проходит какое-то время и другому процессу система назначает такой же пид. Ты проверяешь по пиду запущен ли твой процесс, видешь, что запущен и убиваешь его. Суть проблемы ясна?
>Просто ты не умеешь в юникс-вей.
Юникс-вей это молиться чтобы пид не был переиспользован? Парсить html грепом? Дампить объекты в плейнтекст, только для того чтобы сразу распарсить?
>Получить PID такого процесса тоже можно, но только зачем?
Я писал не про PID, а про код возврата. Мне кажется естественным, чтобы при асинхронном запуске процесса тебе возвращался future, с помощью которого можно проверить, запущен ли процесс, дождаться его завершения, и получить код возврата даже когда он давно завершён. PID не позволяет сделать последнего, и имеет описанную выше проблему.
$? и PIPESTATUS это костыли, работающие только в тривиальных случаях. Вот простейший пример структуры пайпов с ветвлением: paste <(ls a) <(ls b). Как получить коды возврата ls a и ls b?
Аноним 04/10/16 Втр 20:02:09  850639
>>850598
>wait $MY_NAMED_PROCESS_GROUP
wait же только пиды принимает?
Аноним 04/10/16 Втр 21:01:49  850695
>>850227
Ящитаю, неверна твоя аналогия. Клей с блестками абсолютно ничем не пижже суперклея, и отличается от него исключительно внешним видом, но не функциональными возможностями. В случае с шеллами - это не так.
Мнение "zsh - это тот же баш с цветными хипсторотемами", обосновано единственно популярностью oh-my-zh. В то время как в zsh, как я уже писал, хуева туча разных фич. Например, тот же рекурсивный глоббинг. Модификаторы для глоббинга. zmv. autopushd. Про автодополнение молчу. Да, эти вещи не относятся к "прожиточному минимуму" пользования шеллом. Но они действительно делают интерактивную работу в консоли немного приятнее. Различия языков тут ни при чем Ебал я эти различия, не имеет никакого смысла писать скрипты на чем-то, кроме sh, он МОЖЕТ делать все, что нужно, и этого достаточно. Но это не значит, что zsh - бесполезная хуйня.
Аноним 04/10/16 Втр 21:26:01  850702
>>850400
>Пояснить разницу между регионом и строкой?
Поясни.
Аноним 04/10/16 Втр 21:27:17  850703
>>850391
2 с половиной опции можно и вручную обработать
Аноним 04/10/16 Втр 21:36:20  850706
>>850630
>Вот простейший пример структуры пайпов с ветвлением: paste <(ls a) <(ls b). Как получить коды возврата ls a и ls b?
http://pastebin.com/Z5DUVLYq
Аноним 04/10/16 Втр 21:46:32  850712
>>850598
>Это звеном конвейера называется, а пайп - средство IPC, если что.
Чтобы расставить все точки на 'и'. Речь идёт о пайлайнах в баше, где stdout одной команды направлен на stdin следующей через пайп, который средство IPC.
Аноним 04/10/16 Втр 21:49:59  850715
>>850630
>Суть проблемы ясна?
Да. Ты пытаешься проецировать свой опыт применения win32 на unix.
>он умирает
И тут ты получаешь SIGCHLD
???
ПРОФИТ
>Парсить html грепом?
Почему бы и нет? Мне, например, лень из-за какого-то однострочника заморачиваться со специализированной утилиткой для разбора хтмл, проще задействовать подручный греп.
>Дампить объекты в плейнтекст, только для того чтобы сразу распарсить?
Текст - самый удобный для человека способ представления информации, к тому же, им легко манипулировать, потому что все утилиты 1) ориентированы на обработку текста 2) давно отточены временем.
Ну и манипулировать объектами в шелле - нихуя не удобно, это порождает постоянную проблему преобразования объектов из одного типа в другой. Powershell тому доказательство.
>Вот простейший пример структуры пайпов с ветвлением: paste <(ls a) <(ls b). Как получить коды возврата ls a и ls b?
Хз, честно говоря, не представляю, когда это действительно может понадобиться. Обычно коды возвратов используются только в конструкциях вида a && c && d || b
>>850639
Да, а тебе ещё что-то нужно?
>>850695
>Например, тот же рекурсивный глоббинг. Модификаторы для глоббинга.
Мне и обычного хватает, а для поиска есть find
>zmv
Ни о чем не говорит
>autopushd
alias cd=pushd?
>Про автодополнение молчу
Честно говоря, не вижу смысла этого дроча, чтобы запилить автодополнение абсолютно для всего.
>Но это не значит, что zsh - бесполезная хуйня.
Ну ок
>>850712
С помощью пайпов (анонимных) они организуются в конвейер. Просто элемент пайпа - это скорее то, что через пайп посылается.
Аноним 04/10/16 Втр 22:02:19  850732
>>850715
>С помощью пайпов (анонимных)
Не надо уточнять, что он анонимный, если мы говорим о пайпе, что создаётся системным вызовом pipe(). Это и так подразумевается. Именнованные пайпы в юниксе вообще называются FIFO, не перепутаешь никак.
>Просто элемент пайпа - это скорее то, что через пайп посылается.
У тебя какая-то каша в голове. Пайп - это объект, который аллоцирует 2 файловых дескриптора. На один обычно пишут, а с другого читают.
Аноним 04/10/16 Втр 22:08:53  850739
>>850732
Прочитал бы сначала на что отвечаешь. Тот товарищ назвал, как позже выяснилось, элементом пайпа звено конвейера, я его поправил.
А как системный вызов pipe работает - я и сам знаю
Аноним 04/10/16 Втр 22:12:20  850741
>>850739
>элементом пайпа
Пиши тогда уж пайплайн заместо пайпа. А то это очень сбивает с толку.
Аноним 04/10/16 Втр 22:13:43  850745
>>850741
Процитировал как было
Аноним 05/10/16 Срд 01:42:00  850837
>>850706
Почему не в переменные?
>>850715
Описать конкретную проблему, следующую из отсутствия гарантий на уникальность PID - значит "проецировать свой опыт применения win32 на unix"? Я так не думаю. К тому же в винде есть та же проблема с PID-ами.
>И тут ты получаешь SIGCHLD
И как я узнаю от какого чайлда прилетел этот сигнал? Bash точно получает PID в обработчике сигнала, а получаю ли его я в обработчике, заданном trap-ом, хз. Может извернувшись и смогу, но не многовато ли мороки только для того чтобы надёжно узнать, завершился запущенный мною процесс или нет?
>а тебе ещё что-то нужно?
Предлагаешь идентифицировать группу процессов общим отцовским процессом? Можно, но костыльно имхо.
Аноним 05/10/16 Срд 01:45:32  850840
>>850702
Регион - это последовательная область символов между установленной меткой и текущей позицией курсора. В блокноте регион подсвечивается синеньким.
Строка - это вся строка.
Аноним 05/10/16 Срд 01:59:15  850846
>>850840
А строка не является последовательной областью символов, которую можно выделить? В чём твоя проблема вообще? То выдумываешь, что хоткеев нет, то регион - это не строка.
Аноним 05/10/16 Срд 02:08:28  850849
>>850837
>Почему не в переменные?
Потому что ls вызываются в отдельных процессах, и всё окружение сдохнет после их завершения.
http://pastebin.com/uUKexC8R
Аноним 05/10/16 Срд 02:12:04  850850
>>850837
Ну, вообще-то, проблемы создаешь себе сам, пытаясь по привычки натянуть свитер через жопу.
Ты лучше скажи, что (а не как) имеено ты хочешь сделать. Потому что чувствую, что ты делаешь это неправильно.
Аноним 05/10/16 Срд 02:12:29  850851
>>850850
>по привычке
Аноним 05/10/16 Срд 02:19:41  850856
>>850846
Да блядь, вот есть у меня строка "пиздахуйджигурда", я хочу сделать "хуйпиздаджигурда".
Я ставлю курсор между хуем и пиздой, ставлю метку с помощью Ctrl+@, перемещаюсь к концу хуя, и жму хоткей, соответствующий kill-region, жму Ctrl+a чтобы попасть в начало строки и Ctrl+y чтобы вставить хуй. Отлично.
Вот только для kill-region хоткей не назначен.

Аноним 05/10/16 Срд 09:02:36  850901
>>850856
Бля, я думал, C-k - это убить регион. Сейчас смотрю в манах, действительно, это "Kill the text from point to the end of the line".
Аноним 05/10/16 Срд 09:09:12  850903
>>850901
энивей добавить нужный хоткей 5 секунд:

$ echo 'C-k: kill-region' > ~/.inputrc
Аноним 06/10/16 Чтв 02:08:22  851383
>>850715
>Текст - самый удобный для человека способ представления информации
Я за то чтобы человек работал с текстом. Но использовать отформатированный для человека текст в IPC это идея идиотская даже для конца 60-х. XML и JSON тогда не было (и поэтому в юниксе есть целый зоопарк форматов конфигов), но вполне существовал CSV.
Большая доля юниксовых утилит занимается тем, что выводит данные с табличной структурой: ps, ls, lsof, mount, df, ifconfig, route, nmap, ffprobe, ...
Представь, насколько была бы проще жизнь, если бы у Томпсона и Ритчи хватило яиц сделать стандартом вывод табличных данных в csv/tsv. И чтобы всё было в каноничной форме - числа без округлений, даты в виде таймстампов (ну или YYYY.MM.dd.hh.mm.ss), строки как есть. Тогда можно было бы написать утилиту заточенную на фильтрацию записей в CSV по значениям полей в каноничной форме, понимающую этот формат, например что первая строка это заголовки.
А для красивого вывода данных в соответствии с заданной строкой формата написать отдельную либу. То есть чтобы по межпроцессным трубам тёк CSV с каноничными данными, а форматировалось и локализировалось всё только при окончательном выводе человеку.
Данные и представление должны быть разделены. Пользователь должен иметь возможность настраивать представление.
Вон в ls, ps и lsof навелосипедили возможность выбора колонок и их формата. Я, анон с харкача, заявляю: такая возможность должна быть везде, и её отсутствие - проёб.

Искать файлы фильтруя вывод ls -l должно быть так же удобно, как с помощью find-а. Но "Apr 16 00:18" не очень-то посравниваешь.
Отфильтровать из вывода ifсonfig названия интерфейсов и их айпи должно быть просто. Но его автор разбил строки на несколько кусков чтоб красивее было. И соответствие 1 строка = 1 запись пиздой накрылось. Красота требует жертв.
Даже простая команда touch " " ломает многие существующие скрипты.
А всё потому что дампить объекты в плейнтекст только для того чтобы сразу распарсить это плохая идея.
Аноним 06/10/16 Чтв 02:54:06  851394
>>851383
>Но "Apr 16 00:18" не очень-то посравниваешь.
ls -l --time-style=long-iso
У ls, как и любой другой команды, есть флажок для "машинообрабатываемого" вывода
Аноним 06/10/16 Чтв 08:41:19  851414
>>851383
>XML и JSON тогда не было
В чём твоя проблема? Я регулярками могу нагрепать 99% того, что мне нужно. Для 1% я подключаю однострочники перла. Если бы блядь всё было в XML и JSON - это был бы полный ад и израиль. JSON ещё можно было бы пережить, но чтобы парсить XML на каждый чих - это просто издевательство.
Аноним 06/10/16 Чтв 11:37:50  851457
>>851394
>time-style=long-iso
Дистрозависимая хрень. Прикрутили только когда набили шишек.
>как и любой другой команды
Не пизди.

>>851414
У тебя просто мужика^W утилиты для работы с xpath/jsonpath нормальной не было. С ними и искать в структурированных данных было бы проще, и можно было бы одной командой запихнуть настройку в нужную секцию конфига. Не говоря уже про валидацию по схеме.
Аноним 06/10/16 Чтв 12:05:55  851474
>>851414
>Я регулярками могу нагрепать 99% того, что мне нужно.
У меня прост случается баттхёрт когда html регулярками парсят.
Почему до сих пор нет консольной утилиты для парсинга html? Ну или хотя бы для конвертации его в xml, чтобы дальше пустить в ход xpath.
Аноним 06/10/16 Чтв 13:03:07  851489
>>851474

рубисты, лениво попивая смузи, делают так:

> curl -s https://en.wikipedia.org/wiki/Hui_people | nokogiri -e 'puts $_.css("img").each {|i| puts i.attributes["src"]}'

http://pastebin.com/cjzCGKYL

Аноним 06/10/16 Чтв 13:43:25  851519
>>851489
К рубистам претензий нет.
Аноним 06/10/16 Чтв 15:23:35  851570
>>851474
>Почему до сих пор нет консольной утилиты для парсинга html?
Да ты охуел? xmllint уже была ещё в те времена, когда ты под стол пешком ходил, не говоря уж о всяких не входящих в стандартную поставку утилитках.
xmllint --html --xpath '//img/@src' <(curl -s https://en.wikipedia.org/wiki/Hui_people)
Но мне, например, проще незадумываясь написать
>curl -s https://en.wikipedia.org/wiki/Hui_people | grep -oE '<img.?>' | grep -oP '(?<=src=").?(?=")'
чем вспоминать, как пользоваться этим ебаным xpath
Аноним 06/10/16 Чтв 17:13:04  851619
>>851570
О, не знал про --html. Я думал для xmllint надо конвертить html в xml. Пробовал делать это tidy, но оно слишком сырое. Ладно, допустим я чутка охуел.
Аноним 06/10/16 Чтв 17:17:00  851625
>>851619
Про jq-то, надеюсь, знаешь?
Аноним 06/10/16 Чтв 17:43:20  851633
14757650003360.png (140Кб, 237x314)
>>851619

> Ладно, допустим я чутка охуел.

допустили.
Аноним 06/10/16 Чтв 23:00:49  851854
>>851474
>У меня прост случается баттхёрт когда html регулярками парсят.
Одно время писал парсеры для сайтов на перле с регулярками. Всё заебись было. Строить целое дерево, чтобы вытащить несколько полей - это абсолютно бессмысленная трата ресурсов и усложнение задачи, когда парой регулярных выражений ты можешь вытащить всё, что тебе нужно, какой бы кривой и поехавшей не была разметка.

>>851489
http://pastebin.com/Hwq657Dg


Аноним 07/10/16 Птн 03:49:34  851999
14758013749760.png (5Кб, 1654x17)
>>848888
Это делается в одну строку
Аноним 07/10/16 Птн 11:08:03  852084
>>851999
>$ xidel
>bash: xidel: команда не найдена
>$ eix xidel
>Совпадений не найдено.
Нет, так не делается.
Аноним 07/10/16 Птн 12:04:59  852110
>>852084
>eix
Написано же, xidel.exe, куда ты со своей свинной рожей лезешь?
Аноним 07/10/16 Птн 12:25:53  852118
>>852084

а в аюре есть:

https://aur.archlinux.org/packages/xidel/

:p
Аноним 07/10/16 Птн 12:39:03  852124
>>852110
На пике очевидный цигвин, wаня.
Аноним 07/10/16 Птн 12:43:44  852127
Groovy валит в качестве языка для шелл скриптов? Прост, я джава макака, дрочится с питоном пока не хочу, а баш полное говно
Аноним 07/10/16 Птн 13:02:24  852143
>>852127
Нет, груви - говно
Аноним 07/10/16 Птн 13:54:14  852186
>>852127
А что тебе нужно делать? Перекладывать файлы наверное не очень удобно будет, а ковыряться в содержимом - вполне норм.
Аноним 07/10/16 Птн 14:27:44  852207
https://habrahabr.ru/company/mailru/blog/311762/
Аноним 07/10/16 Птн 16:07:01  852261
>>850579
>стабильно от 50к бублей и выше
Недавно знакомый искал себе помощника, рассказывал про резюме, в котором типичный не сверх-прокачанный, но знающий админ с запросом в 50к, комментировал, что "подозрительно мало хочет, его навыки это 80+".
>>850630
>Юникс-вей это молиться чтобы пид не был переиспользован?
Зная PID ты можешь получить PPID и командную строку, если боишься. Хотя обычно таких проблем не возникает при правильной организации скрипта. Ещё раз повторю, что уже не раз сказано: шелл это не си, не руби, не питон и не перл, шелл это даже не бач/вбс для линуксов, шелл это шелл. И писать на нём как на си не надо.
>>850903
Только не ">", а ">>". Хотя, смотря, что тебе надо.
Аноним 07/10/16 Птн 16:33:36  852278
>>852261
> Только не ">", а ">>"
Это не было руководством для дебилов, которые копируют команды в консоль, не понимая, что они делают. Если ты так переживаешь, что какой-то долбоёб, используя мою команду, затрёт свой исходный ~/.inputrc, то могу тебя заверить, что, скорее всего, у него этого файла вообще не было изначально.
Аноним 07/10/16 Птн 19:40:40  852407
>>852261
>PPID и командную строку
Да уж лучше в качестве ID использовать пару PID+время запуска. Не подскажешь, как в ps время старта процесса в виде таймстампа вывести?
>шелл это шелл. И писать на нём как на си не надо.
Забавно, в rc использовали c-подобный синтаксис, и получилось намного аккуратнее bash.
Но тоже хуйня. Шелл в виде комбинации неполноценного языка и неполноценного текстового редактора нинужен.
Shell done right это текстовый редактор с реплом для скриптового языка. Адекватные люди со временем переселяются в vim/emacs и т.п. И это правильно, потому что всякий ввод текста должен происходить через текстовый редактор, а программирование на языке программирования.
Аноним 07/10/16 Птн 20:12:34  852419
>>852407
>в rc
где?
Аноним 07/10/16 Птн 20:29:11  852434
>>852419
https://en.wikipedia.org/wiki/Rc
Аноним 07/10/16 Птн 22:12:54  852514
>>852407
Прекрати натягивать свитер на жопу, мне на это больно смотреть. Лучше объясни, что имеено ты пытаешься сделать.
Аноним 08/10/16 Суб 03:20:48  852658
Похоже вин https://www.youtube.com/watch?v=uaje5I22kgE
Аноним 08/10/16 Суб 16:11:58  852880
>>852407
>неполноценного языка и неполноценного текстового редактора нинужен.
Потому, что, блядь, это не язык программирования и не текстовый редактор, маня!
Текстовые редакторы это vim, emacs, на худой конец - nano, если ты совсем чайник. Язык программирования для никсов это в первую очередь pure C (можно C++), а sh - инструмент управления системой, организации работы программ. Не понимаешь? Ну, если не понимаешь, то не трогай линукс, а значит ВОН ИЗ ПРОФЕССИИ. Умение пользования шеллом - обязательное требование для админа и если ты не способен его осилить, то ты не сможешь работать админом. Зато сможешь дальшн заправлять картриджи для тёток из бухгалтерии.
Аноним 08/10/16 Суб 16:29:05  852901
>>848209 (OP)
>Почему оно такое неприветливое?
Ты, петушок, еще скажи что vim не используешь (а какое-нить Nano).
Аноним 08/10/16 Суб 16:42:48  852904
>>852658
Крутая конфа. Продуманная. Мне особо понравился живой дебаггинг презенташки с подгоном разрешения в прямом эфире.
По сути.
Знаешь, сколько этих шеллов существует? И один круче другого. Но правильные админы по-прежнему пишут под sh, не очень правильные - под bash (благо они очень похожи). Почему есть zsh и даже шеллы с более серьёзными ЯП: csh, Python shell, irb, а используется sh. Потому, что они есть везде, а другие, насколько бы фичастыми не были могут оказаться бесполезными.
Ты знаешь, например, куда делся dash? Был неплохой фирменный дебиановский шелл, но сейчас на моём дебиане по-умолчанию работает bash, хотя специально я его не ставил и не выбирал. Потому, что bash есть почти везде, под него ты найдёшь кучу скриптов на все случаи жизни. В том же, что за пределами твоих пары серваков чего-то менее стандартного типа бельчачьего шелла ( http://squirrelsh.sourceforge.net/ ) есть люди, которых достаточно, чтобы они начали делиться приёмами, ты не можешь быть уверен от слова СОВСЕМ. И не важно ,что он умеет на самом деле. Важно, что в 2016-м перед тем, как написать свой скрипт принято искать готовые решения, а не изобретать велосипеды.
Кого-то это устраивает, кого-то не очень, но в наши дни скорость разработки важнее скорости работы и многого другого, а максимальная скорость разработки - это взять готовое.
Аноним 08/10/16 Суб 18:58:17  852979
>>852880
По своей сути шелл это репл к одноимённому языку. Тьюринг-полному языку программирования с переменными, условными выражениями и циклами, специализирующемуся на управление процессами. Не понимаю как это можно отрицать.
Как репл он конечно же включает текстовый редактор для ввода и редактирования команд. Да, это неполноценный текстовый редактор, но такие функции как навигация по тексту и базовое редактирование в нём есть.
Точно так же ide, почтовые клиенты и чатики содержат текстовые редакторы. Поле, в котором я это набираю это тоже текстовый редактор. Если эта идея слишком абстрактна для тебя - так и скажи, не буду больше мучать.

Мой тезис в том, что для "управления системой, организации работы программ" надо было не писать велосипед, а доверить это полноценному редактору и языку программирования, в соответствии с принципами юникса. В текущем виде шелл это прога, которая выполняет много функций и делает это плохо.
В баше есть даже vi mode и emacs mode для включения хоткеев как в них. Разработчики поняли желание пользователей редактировать текст в привычной среде, но не сделали следующий логичный шаг.

>ВОН ИЗ ПРОФЕССИИ
Уговорил, не буду админом.
Аноним 08/10/16 Суб 19:16:16  852989
14759433764970.jpg (97Кб, 640x640)
>>848209 (OP)
> perl
> Нормальные люди
Аноним 08/10/16 Суб 21:47:35  853048
>>852904
>более серьёзными ЯП: csh
в csh даже функций нет, как ЯП, он ещё хуже баша, ты чё
Аноним 08/10/16 Суб 21:57:19  853053
>>853048
Сам не пользовал, но, судя по описаниям это шелл с множественными включениями pure C.
Аноним 08/10/16 Суб 22:01:05  853060
>>853053
Он вообще не удобен для программирования, я гарантирую это. Я честно пытался на нём писать какие-то скрипты, т.к. на фряхе он был по дефолту, но это абсолютно бессмысленное занятие. На той же фряхе csh юзался вот именно что только для интерактивной работы, все init скрипты написаны на sh.
Аноним 10/10/16 Пнд 17:26:42  853999
>>848500
Блять, как же я проиграл
Аноним 19/10/16 Срд 10:48:46  859529
echo BUMP
Аноним 19/10/16 Срд 14:06:34  859670
>>859529
Нахуя?
Аноним 19/10/16 Срд 15:53:59  859752
>>859670
прост)))

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 181 | 8 | 50
Назад Вверх Каталог Обновить

Топ тредов
Избранное