Кто идет на Unix-way (или пользователь Linux - кто он)

Обсуждение развития Open-source.

Модератор: Модераторы разделов

watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Кто идет на Unix-way

Сообщение watashiwa_daredeska »

YUKLA писал(а):
12.11.2009 18:28
И какие такие КОМАНДЫ есть внутри avi файла?
А какие такие КОМАНДЫ есть внутри приведенного мой выше примера на Prolog? Что такое вообще КОМАНДА?

YUKLA писал(а):
12.11.2009 18:28
Может быть - mp3 файл - ТОЖЕ программа?
Конечно.

YUKLA писал(а):
12.11.2009 18:28
Интерпретатор интерпретирует КОМАНДЫ.
Ну, в таком случае, в AVI есть как минимум команды отображения фреймов разных типов.

А чем вам не нравится? Программы *.avi даже опции поддерживают.

user@localhost

$ sudo update-binfmts --install riff /usr/bin/mplayer --magic RIFF --offset 0 $ chmod +x Mad\ Dog\ Time.avi $ ./Mad\ Dog\ Time.avi MPlayer SVN-r29809 © 2000-2009 MPlayer Team Playing ./Mad Dog Time.avi. Cache fill: 0.00% (0 bytes) AVI file format detected. ... bla-bla-bla, показывает кино ... $ ./Mad\ Dog\ Time.avi -fs MPlayer SVN-r29809 © 2000-2009 MPlayer Team Playing ./Mad Dog Time.avi. Cache fill: 0.00% (0 bytes) AVI file format detected. ... bla-bla-bla, показывает кино на полный экран ...
Чем Вам не программа? Нигде в системе нет отличий от любой другой. Точно так же, как и у любой другой установлен бит eXecutable. Можете написать программу на C и вызвать эту суперскую программу с помощью execve().

Аналогичную фишку я могу провернуть с чем угодно: *.doc, *.odt, *.html, ... И только попробуйте сказать мне, что это не программы. В таком случае, скрипт — тоже не программа, а файл данных для интерпретатора. Ибо:
sh script.sh ∼ mplayer Harry\ Potter.avi
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Кто идет на Unix-way

Сообщение t.t »

Voral писал(а):
12.11.2009 12:36
Хм. Ту тему которую вы открыли не хочется засорять спорами. Она потенциально очень полезна всем.
Благодарю. Я, признаться, на это расчитывал -- потому и выделил в отдельную тему.

Voral писал(а):
12.11.2009 12:36
t.t писал(а):
12.11.2009 11:49
Касательно программирования. У этого термина есть достаточно закостенелый смысл, в который работа в командной строе и написание шелл-скриптов не вписываются. Ну никак. Психология процесса совершенно другая.
Поясните.

Лично я работу в командной строке тоже со скрипом в душе причисляю к программированию. (возможно потому, что в Линуксе сравнительно недавно).
Ну а написание скриптов.... Вообще не вижу разницы. В чем принципиальное отличие скрипта шел, текста на php или на c.
Для начала небольшая оговорка: напомню, формально шелл-скрипты -- это тоже программирование. В том числе и в работе, на которую я дал ссылку, их так и называют -- но пытаются обозначить разницу. Попытаюсь и я.

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

Для начала -- на примере той строки, которую я приводил в этой теме. Общая задача: мне надо посчитать количество "программ", т.е. исполняемых файлов в нескольких пакетах. Ход мыслей: "файлы, содержащиеся в таких-то пакетах" -- "исполняемые среди них" -- количество этих исполняемых". Так и выходит:
1. Для начала получим список всех файлов пакета.

Shell

dpkg -L имена-пакетов

Если бы я не был уверен, что все эти пакеты у меня установлены, это было бы иначе.

Shell

apt-file list имена пакетов

2. Теперь нужно вычленить из списка исполняемые файлы. Они могут лежать в каталогах /bin/, /sbin/, /usr/bin/, /usr/sbin/ -- следовательно, общая поисковая строка будет 'bin/'.

Shell

dpkg -L имена-пакетов | grep bin/

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

Shell

dpkg -L имена-пакетов | grep bin/ | wc -l


Важный момент. Мне совершенно не обязательно помнить все опции команд: когда я знаю, что конкретно мне от команды в данный момент надо, найти нужную опцию в мане -- дело секунд. Более того, мне даже названия команд помнить не обязательно: можно использовать поиск по ключевым словам -- обычно тоже дел секунд. В данном случае помогло бы соответственно 'man -k package', man -k pattern' и 'man -k line'.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Кто идет на Unix-way

Сообщение watashiwa_daredeska »

Voral писал(а):
12.11.2009 18:26
Смышлены ребенок в нем легко сориентируется.
Смышленый ребенок и в командной строке легко сориентируется. Я ведь ориентировался, будучи во втором классе, в командной строке MS DOS 3.0. И, не поверите, даже программы писал. На Fox Base; страшные, правда, как ночной кошмар, ну а что Вы хотите от первых опытов второклассника. Хотя и не вундеркинд. Так что не надо детей в дурачков записывать, они большинству взрослых 100 очков форы дадут.
Спасибо сказали:
Аватара пользователя
Boboms
Сообщения: 535
Статус: И это - правда!
ОС: Debian Lenin

Re: Кто идет на Unix-way

Сообщение Boboms »

watashiwa_daredeska писал(а):
12.11.2009 19:18
...Так что не надо детей в дурачков записывать, они большинству взрослых 100 очков форы дадут.

+1K :)
Нет подписи...
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Кто идет на Unix-way

Сообщение Voral »

t.t писал(а):
12.11.2009 18:52
На мой взгляд, shell это не просто язык более высокого уровня. Это язык, наиболее приближенный к тому, как я решаю задачу в уме. Воспроизведу ход мыслей -- с той разницей, что сейчас (при некотором опыте работы в системе) это уже не столько мысли, сколько что-то подсознательное, доведенное до автоматизма.

Согласитесь "как я решаю задачу в уме" - понятие относительное. По сути вы используете готовую команду, которая заключает в себя уже целый блок. Например для меня какой язык уже побарабану есть система поиска и интерент и я нахожу функцию наиболее мне подходящую. В скриптах действительно команды чаще упторебляемые при использовании компа. Я Си знаю лучше чем шелловские скрипты. Мне легче на Си. Кроме того если воспользоваться принципом генерации из описания философии ЮНИКС то я могу сделать так, что код программы будет выглядеть абсолютно идентичным приведенному вами. Тогда получается, что после того как я некоторые алгоритмы организую в определенные "команды". И начну писать программу 1 в 1 аналогично скрипту то на этом мое программирование закончилось? Где грань?

Хорошо с точки зрения формального понимания мы (вроде) пришли к единому мнению. Если же не формально.... Что ж я, скорее всего,могу согласиться, что пока в скрипте идет линейная последовательность команд - это не программирование. Но это немогу ни доказать, ни опровергнуть, всего лишь мое ощущение и восприятие.

t.t писал(а):
12.11.2009 18:52
Ход мыслей: "файлы, содержащиеся в таких-то пакетах" -- "исполняемые среди них" -- количество этих исполняемых". Так и выходит:


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

А также ту же самую задачу можно решить, например, на php с использованием тех же самых команд шелла по отдельности. Хотя, справедливости ради, между ними придется еще немного накодить....

t.t писал(а):
12.11.2009 18:52
Важный момент. Мне совершенно не обязательно помнить все опции команд: когда я знаю, что конкретно мне от команды в данный момент надо, найти нужную опцию в мане -- дело секунд. Более того, мне даже названия команд помнить не обязательно: можно использовать поиск по ключевым словам -- обычно тоже дел секунд.

Это справедливо для любого языка программирования.... Я до сих пор не знаю всех параметров некоторых функций даже из числа тех [функций] которые часто использовал.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Кто идет на Unix-way

Сообщение Voral »

watashiwa_daredeska писал(а):
12.11.2009 19:18
Так что не надо детей в дурачков записывать, они большинству взрослых 100 очков форы дадут.

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

По моим наблюдениям второкласник во времена dos версии 3 дрвавшийся до компа и нынешний второклассник это две огромные разницы. Сейчас сначала все же ГУИ (если родители не задают направление и нет интереса разобраться с этим ящиком).
И это не говорит о деградации нынешних - просто другие условия.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Кто идет на Unix-way

Сообщение watashiwa_daredeska »

Voral писал(а):
12.11.2009 19:43
Второклассник хорошо владеющий командной строкой это редкость.
Сейчас редкость — даже второколассник, который её хотя бы видел. К тому же, «ориентироваться» и «хорошо владеть» — две большие разницы.

Voral писал(а):
12.11.2009 19:43
И черный экран с приглашением поставит их в ступор.
Пробовали? Или это так, измышлизмы?

Voral писал(а):
12.11.2009 19:43
второкласник во времена dos версии 3 дрвавшийся до компа и нынешний второклассник это две огромные разницы.
Гены от пьянства испортились? Не стоит думать, что во времена dos 3 до компа дорывались сплошь прирожденные программисты. Родители просто водили детей на работу поиграть. За хорошее поведение. Захочешь поиграть — ещё и не с таким разберёшься.

Voral писал(а):
12.11.2009 19:43
просто другие условия.
Именно. Сначала делают из детей дурачков, а потом жалуются, что дурачки не справляются с компьютером.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Кто идет на Unix-way

Сообщение watashiwa_daredeska »

YUKLA, Voral
Помогите человеку ощутить все преимущества Вашего подхода к решению задач. А то я только по нашему, по непонятному, юниксвейному могу.
Рекурсивное копирование файлов: порядок
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Кто идет на Unix-way

Сообщение Voral »

watashiwa_daredeska писал(а):
12.11.2009 20:03
Пробовали? Или это так, измышлизмы?

Пробовал. Для работы в гуе потребовалось меньше объяснений. К тому же английский только начинает изучать.

watashiwa_daredeska писал(а):
12.11.2009 20:03
Гены от пьянства испортились? Не стоит думать, что во времена dos 3 до компа дорывались сплошь прирожденные программисты. Родители просто водили детей на работу поиграть. За хорошее поведение. Захочешь поиграть — ещё и не с таким разберёшься.

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

watashiwa_daredeska писал(а):
12.11.2009 20:03
Именно. Сначала делают из детей дурачков, а потом жалуются, что дурачки не справляются с компьютером.

У меня сын не дурачек, я его таковым не делаю. Я ему показал как можно. (кстати у него и линукс и виндус стоит) и включает он иногда и то и другое (больше винду). И все же удобнее ему тыкнуть на иконку. чем mygame. Разобраться может любой ребенок, который захочет - остальные будут просто пользоваться наиболее наглядными инструментами.....

Или вы считаете тех кому удобнее пользоваться неким коммандером тупее чем те которые пользуются командной строкой? Типа ярлык такой?


ЗЫ У вас есть дети?




watashiwa_daredeska писал(а):
12.11.2009 20:23
Помогите человеку ощутить все преимущества Вашего подхода к решению задач. А то я только по нашему, по непонятному, юниксвейному могу.

Опять ярлык.... Т.е. вот так без доказательств. Ты у нас весь юниксвейный, а мы с другим подходом.....
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Кто идет на Unix-way

Сообщение t.t »

Voral писал(а):
12.11.2009 19:37
Я Си знаю лучше чем шелловские скрипты. Мне легче на Си. Кроме того если воспользоваться принципом генерации из описания философии ЮНИКС то я могу сделать так, что код программы будет выглядеть абсолютно идентичным приведенному вами. Тогда получается, что после того как я некоторые алгоритмы организую в определенные "команды". И начну писать программу 1 в 1 аналогично скрипту то на этом мое программирование закончилось? Где грань?

t.t писал(а):
12.11.2009 18:52
Ход мыслей: "файлы, содержащиеся в таких-то пакетах" -- "исполняемые среди них" -- количество этих исполняемых". Так и выходит:
Примерно также я бы решал данную задачу на любом языке программирования. Дело лишь в средствах предоставляемых языком: где-то будет 1 команда, где-то 10.

А также ту же самую задачу можно решить, например, на php с использованием тех же самых команд шелла по отдельности. Хотя, справедливости ради, между ними придется еще немного накодить....
На си точно так же не сможете. В си нет аналога конвейеров, нет аналога eval, ещё много чего нет. Всё это очень сильно меняет ту самую психологию программирования, о которой я говорю. Можно всё -- вопрос в производительности (человека, а не программы). Задачи, аналогичные разобранной здесь, в командной строке я решаю за считанные секунды, и это не лишает меня удовольствия от работы. На ходу! Раз -- и готово, мысль ещё тут. На си то же самое займёт десятки минут в самом лучшем случае. Всё рабочий процесс нарушен. Безвозвратно. Научиться работать в bash можно тоже на ходу -- решая раз от раза свои маленькие задачки. Си надо специально учиться; да что там си -- даже питону. Но суть не в этом. Изучив язык, приходится приступать к изучению библиотек. А их несть числа. Новый тип задач -- новая библиотека; доки в зубы, время уходит. В командной строке нет библиотек. Новая задача? Немного перемтроить конвейер. Или добавить в середину его одну-две команды. На ходу!

Voral писал(а):
12.11.2009 19:43
И черный экран с приглашением поставит их в ступор.
Угу. Родители моих сверстников, когда мне было лет десять, тоже так думали. А я в это время программы на МК-61 фактически в машкоде писал.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Кто идет на Unix-way

Сообщение Voral »

t.t писал(а):
12.11.2009 20:45
В си нет аналога конвейеров, нет аналога eval, ещё много чего нет.

От чего же. Если задаться целью это сделать можно, для итоге есть совершенно стандартные механизмы.
Ну хорошо. До тех пор пока я этого не сделал, это программирование, когда я сделал далше уже не программирую? А что я делаю?
Я к тому что грань учень и очнень размытая получается.

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

t.t писал(а):
12.11.2009 20:45
Си надо специально учиться; да что там си -- даже питону.

Хотите поделюсь как я перешел на Си? Я писал на Basic, Assembler, Pascal, php..... А потом возник проект очень прибыльный (но и сложный) я заключил договор, взял справочник и вот я уже мой любимый язык си. Так что не так страшен черт как его малюют. Я так же и обучал индивидуально программированию. Мне б таких учеников как вы там бы и делать не чего..... Просто бы дал задание и справочник. Все..... И учить не надо, практически.....

t.t писал(а):
12.11.2009 20:45
Или добавить в середину его одну-две команды. На ходу!

Которые вам надо минимально, но изучить.. Я ни одного языка не изучал по принцыпу сегодня изучаю это сегодня изучаею то. (Ну кроме Бейсика в пионерские годы) Есть задача, есть справочник. Все находу. Единственное различие между ,например Си и вашим скриптом. Это спектр задач которые удобно решать.

t.t писал(а):
12.11.2009 20:45
Угу. Родители моих сверстников, когда мне было лет десять, тоже так думали. А я в это время программы на МК-61 фактически в машкоде писал.

Ну и что? Вы считаете, что всем детям он интересен? А особенно сейчас? Скажу больше он у меня есть. Но сыну он не интересен. Я уже сказал я своему показываю все, но настаивать на своей точке зрения и ,напрмиер, заставлять работать на MK-61 я не буду. Придет время будет интересно займется. Сейчас ему удобнее Гуи.

Например из-за того что еще не умея читать он уже неплохо ориентировался по картинкам-иконкам.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Кто идет на Unix-way

Сообщение sash-kan »

зашёл как-то у пяти друзей разговор о любви и сексе.
трое из них в своё время познали, что такое секс с любимым человеком, и в один голос твердили: и любовь и секс — это прекрасно.
четвёртый занимался сексом, но никогда не любил. он утверждал, что любовь — это глупость, а секс — это что-то вроде физзарядки.
пятый уже испытал любовь, но ни разу не занимался сексом. он утверждал, что любовь — это мука, а секс — это просто грязь.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Кто идет на Unix-way

Сообщение t.t »

Спасибо, Саша. Мне добавить нечего.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Кто идет на Unix-way

Сообщение Voral »

t.t писал(а):
13.11.2009 11:52
Спасибо, Саша. Мне добавить нечего.

Хм..
А к чему эти слова?
Если исключить полезные топики форум (где есть полезные советы, вопросы и их решения). То остальные (воде этого) идентичным приведенному разговору о сексе. Или вы считаете, что лучше бы автор темы высказал свое мнение. А потом на 20 страницах "и я такого мнения"? :)

Ну да ладно - все высказались и то хорошо.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Кто идет на Unix-way

Сообщение t.t »

Voral писал(а):
13.11.2009 13:34
t.t писал(а):
13.11.2009 11:52
Спасибо, Саша. Мне добавить нечего.

Хм..
А к чему эти слова?
К тому, что мы уже страниц десять пытаемся объяснить все прелести unix-way -- при этом некоторые (включая Вас) по прежнему говорят, что shell это тот же си, только в профиль (огрубляю, сохраняя суть), а некоторые (не будем говорить кто, хотя это был YUKLA ©) вообще продолжают утверждать, что unix-way и FOSS это плохо; не забывая пользоваться их результатами.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Кто идет на Unix-way

Сообщение drBatty »

sash-kan писал(а):
13.11.2009 03:36
пятый уже испытал любовь, но ни разу не занимался сексом. он утверждал, что любовь — это мука, а секс — это просто грязь.

завидует :)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
YUKLA
Сообщения: 342
ОС: Gentoo Linux, XFCE 4.6.1

Re: Кто идет на Unix-way

Сообщение YUKLA »

Господа!

Давайте определимся с терминами.
1. Программа - последовательность команд, данных и комментариев, записанная в заранее определённой и фиксированной в документации манере. Цель программы - в выполнении тех или иных действий. Программа может быть выполнена как отдельная команда, она может принимать параметры и/или возвращать результаты в той или иной форме. Результаты, возвращаемые программой, зачастую, заранее не известны и никак не следуют из ее структуры.

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

3. Данные - результаты или параметры, с которыми оперируют команды. Правила описания данных зафиксированы в указанном выше документе (правила написания программ).

4. Комментарии - особым образом оформленный текст информационного содержания. Игнорируется в процессе лексического анализа текста программ компилятором или интерпретатором. Нужен только для человека, читающего текст программы.

5. Компилятор - нечто (программа или автомат) выполняющее лексический анализ текста программы с учетом правил написания программы, и в случае отсутствия ошибок - создающее бинарный (процессорный) код, выполняющий действия, описанные в программе.

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

7. Конфигурационный файл - набор данных заранее зафиксированной структуры. Предназначен для настройки (изменения конфигурации) выбранной системы. От программы отличается тем, что действия, которые будут выполнены в процессе анализа и загрузки такого файла заранее известны и всегда детерминированы. Результат же работы программы может не быть заранее известен.

8. Данные - структурированная или организованная случайным образом масса информации.

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

Ремарка 2: Работа в приглашении текущего шелла НИЧЕМ не отличается от работы в приглашении интерпретатора Basic.
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Кто идет на Unix-way

Сообщение Voral »

t.t писал(а):
13.11.2009 15:34
К тому, что мы уже страниц десять пытаемся объяснить все прелести unix-way -- при этом некоторые (включая Вас) по прежнему говорят, что shell это тот же си, только в профиль (огрубляю, сохраняя суть),

Ну суть скорее в том, что я считаю это языком программирования, а не "тот же Си". А в опровержение только "имхо" и "мое виденье" (т.к. по формальному мы вроде как сошлись во мнении).....
Да и завязалось все не с "прелестей" unix-way, а с того что мы по разному воспринимаем его.

Ну да ладно..... Закроем тему раз сама тема не интерсна.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Кто идет на Unix-way

Сообщение t.t »

Voral писал(а):
13.11.2009 17:39
t.t писал(а):
13.11.2009 15:34
К тому, что мы уже страниц десять пытаемся объяснить все прелести unix-way -- при этом некоторые (включая Вас) по прежнему говорят, что shell это тот же си, только в профиль (огрубляю, сохраняя суть),
Ну суть скорее в том, что я считаю это языком программирования, а не "тот же Си".
Я же сказал: огрубляю. Для меня и многих других участников темы разница принципиальна. Вы эту разницу видеть не хотите -- по крайней мере, у меня сложилось такое впечатление.

Voral писал(а):
13.11.2009 17:39
А в опровержение только "имхо" и "мое виденье" (т.к. по формальному мы вроде как сошлись во мнении).....
Да и завязалось все не с "прелестей" unix-way, а с того что мы по разному воспринимаем его.
В чём сошлись-то? В слове программирование? Так оно ничего не значит: все сколь-нибудь распространённые языки программирования -- это языки третьего поколения (пользуясь терминологией статьи, на которую я приводит ссылку), а shell -- четвёртого. Разница, однако. Второе поколение -- это ассемблер (первое -- машкод). Разница между ассемблером и си велика? А между ассемблером и питоном? Между ассемблером и лиспом? На мой взгляд, огромна. А ведь все три -- языки третьего поколения. Вот и между ними всеми (с одной стороны) и shell (с другой) разница не меньше. Об этом-то я и толкую.

YUKLA писал(а):
13.11.2009 17:29
Ремарка 2: Работа в приглашении текущего шелла НИЧЕМ не отличается от работы в приглашении интерпретатора Basic.
С Вами мне спорить, признаться, уже давно надоело; тем более, что моё предложение вывести наши споры и отношение к друг другу на более высокий уровень Вы проигнорировали. Но на это не могу не ответить: ещё как отличается. Разница, повторюсь, принципиальна. См. выше о поколениях языков. Нет, теоретически можно, конечно, наделить бейсик всеми возможностями шелла. Но.. Тогда это будет уже не бейсик. (;
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
YUKLA
Сообщения: 342
ОС: Gentoo Linux, XFCE 4.6.1

Re: Кто идет на Unix-way

Сообщение YUKLA »

t.t писал(а):
13.11.2009 18:03
С Вами мне спорить, признаться, уже давно надоело; тем более, что моё предложение вывести наши споры и отношение к друг другу на более высокий уровень Вы проигнорировали. Но на это не могу не ответить: ещё как отличается. Разница, повторюсь, принципиальна. См. выше о поколениях языков. Нет, теоретически можно, конечно, наделить бейсик всеми возможностями шелла. Но.. Тогда это будет уже не бейсик. (;
Ничего я не игнорировал. Вы можете себе представить ситуацию, когда человек занят ил не появляется в конфе какое-то время? Или пропускает те или иные сообщения?

Basic был приведён как реальный рабочий пример. Те их нас с вами, кто паял ZX Spectrum, меня поймут. А те, кто работал в Novell Netware, могут вспомнить пресловутый NetBasic. Который, как раз очень расширял возможности шелла Netware server.
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Кто идет на Unix-way

Сообщение Voral »

t.t писал(а):
13.11.2009 18:03
Вы эту разницу видеть не хотите -- по крайней мере, у меня сложилось такое впечатление.

Потому, что я ее ни как не могу понять. Блин я совершенно честно это говорю. Мне совершенно не интересно просто так "трепаться ни о чем".

Все, что я понял (угрубляя конешно :) ) это вы вводите простейшую команду и получаете результат........ типа see myfile.txt.....
Ну так ведь и в любом языке программирования (даже в ассемблере) за каждой командой стоит алгоритм. Я несколько разу уже спрашивал на каком уровне "скрытия" алгоритмов кончается программирование и начинается.... как это назвать - то что вы делаете создавая скрипты?

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

Разница в спектре решаемых задач. Может тогда вы по этому разделяете "программирование/не программирование"? Опять же где та грань?

Voral писал(а):
13.11.2009 17:39
Вот и между ними всеми (с одной стороны) и shell (с другой) разница не меньше. Об этом-то я и толкую.

Ну так, а в чем принципиальная то разница?
В наборе команд?
В синтаксисе?

В количестве алгоритмов уже реализованных в виде команд? - вот в этом да... я согласен. но опять же вопрос где грань?
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
Ali1
Сообщения: 2250

Re: Кто идет на Unix-way

Сообщение Ali1 »

t.t писал(а):
13.11.2009 18:03
....Между ассемблером и лиспом? На мой взгляд, огромна. А ведь все три -- языки третьего поколения. Вот и между ними всеми (с одной стороны) и shell (с другой) разница не меньше. Об этом-то я и толкую.

Вот как раз хотел спросить Вас за Lisp. Мне показалось, что комментируя процесс написания dpkg -L .... Вы описали одну важную вещь. Вы постоянно рассуждали о данных, Вас не интересовали передачи управления и ... , т.е Вы рассуждали непроцедурно( здесь непроцедурно не термин, а эпитет).
t.t, было бы интересно узнать, как Вы "мыслите" о переменных и циклах bash`а?
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Кто идет на Unix-way

Сообщение Voral »

Или речь о идет о разнице поколения языков программирования...... Ведь shell - это язык программирования 4го поколения....

Вот вам еще из 4го поколения:
Progress 4GL
там уже и интерфейсы можно создавать........ Или это тоже не программирование?

А если все программисты перейдут на языки 4го поколения, то кто например посчитает температуру головки молнии на высоте 10метров от земли?

Вы знаете в прежние времена под ДОС я также рисовал графические интерфейсы.... Т.е в каждой программе приходилось этим заниматься самому. Затем пришел Делфи с кучей готовых решений.... Да там нечто простоя можно создать просто перетаскиванием мышкой элементов и установкой свойств в некоторое значение..... Т.е. это тоже не программирование? А если я там вставлю одну команду? Label.Caption:="test"; эт как?

Я суть вашей позициив принципе понимаю.... Но ни как не могу понять где заканчивается программирование...
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
Ali1
Сообщения: 2250

Re: Кто идет на Unix-way

Сообщение Ali1 »

Voral
Парадигма или стиль программирования -- ответ на Ваше:
Ну так, а в чем принципиальная то разница?

Опять оговорюсь, что термин неудачен. Понимаете, другая модель вычислений!
Мене, например, до сих пор мешает знание о железе. Я пытаюсь (бессознательно часто) все свести к сигналам на "ногах процессора".
Но между программой на прологе или микрософтофис и IBM_PC стоит виртуальная машина. И это не фоннеймановская железка. В ней может вполне не быть команд, данных и комментариев.
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Кто идет на Unix-way

Сообщение Voral »

Ali1 писал(а):
13.11.2009 18:41
Парадигма или стиль программирования -- ответ на Ваше:

Хм..... Не сочтите за флуд, но:
Т.е. это написание скриптов на языке shell не программирование - потому что другой стиль программирования?
Т.е. языки четвертого поколения не предназначены для программирования?


А прочему именно на переходе 3 - 4 поколение. Это стало не программирование. Давайте уж четко тогда определимся: программирование это оцифровка алгоритмов непосредственно в машинные коды. (Да и то если не заморачиваться, что некоторые машинные коды это вызов алгоритмов "зашитых в процессоре")
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
Ali1
Сообщения: 2250

Re: Кто идет на Unix-way

Сообщение Ali1 »

Voral писал(а):
13.11.2009 18:57
Ali1 писал(а):
13.11.2009 18:41
Парадигма или стиль программирования -- ответ на Ваше:

Хм..... Не сочтите за флуд, но:
Т.е. это написание скриптов на языке shell не программирование - потому что другой стиль программирования?
Т.е. языки четвертого поколения не предназначены для программирования?

Несомненно, написание скриптов на языке shell есть программирование.
Несомненно, языки четвертого поколения предназначены для программирования. Кстати, я не считаю unix-shell языком 4. поколения.
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Кто идет на Unix-way

Сообщение diesel »

YUKLA писал(а):
13.11.2009 18:10
Basic был приведён как реальный рабочий пример. Те их нас с вами, кто паял ZX Spectrum, меня поймут. А те, кто работал в Novell Netware, могут вспомнить пресловутый NetBasic. Который, как раз очень расширял возможности шелла Netware server.

Не видел ни того ни другого, возможно поэтому не понимаю :) Пример по ссылке - обычный basic скрипт, судя по всему имеющий доступ к каким-то системным вещам. Могу предположить, что нечто подобное можно было так или иначе набрать просто в basic shell'е, посмотреть результат, и если результат понравится сохранить скрипт в файл. В таком стиле можно писать на bash, за примерами далеко ходить не надо - можно init-скрипты посмотреть - обычный step-by-step с условиями.

Но. Это только одна часть того что можно делать на shell'е, не самая интересная кстати. О другой части можно думать как о постепенной трансформации потока данных. Придуманный пример:

Код: Выделить всё

cat /etc/passwd

..смотрим результат.. ок .. я хочу выбрать только тех пользователей у которых шелл "/bin/sh":

Код: Выделить всё

cat /etc/passwd | awk -F:  '$NF~/\/bin\/sh/'

ок, вроде правильно. давайте оставим только имя пользователя и домашнюю папку:

Код: Выделить всё

cat /etc/passwd | awk -F: '$NF~/\/bin\/sh/{print $1,$(NF-1)}'

много лишнего. мне надо только те у которых домашняя папка /home:

Код: Выделить всё

cat /etc/passwd | awk -F: '$NF~/\/bin\/sh/{print $1,$(NF-1)}' | grep ' /home'

и теперь надо немного подрехтовать владельца, опасная операция, сначала надо проверить что все будет хорошо:

Код: Выделить всё

 cat /etc/passwd | awk -F: '$NF~/\/bin\/sh/{print $1,$(NF-1)}' | grep ' /home' | while read i j; do echo chown -R $j:users $j; done

упс, ошибся

Код: Выделить всё

 cat /etc/passwd | awk -F: '$NF~/\/bin\/sh/{print $1,$(NF-1)}' | grep ' /home' | while read i j; do echo chown -R $i:users $j; done

ок хорошо, лишних пробелов нет, могу просто передать это еще в один шелл:

Код: Выделить всё

cat /etc/passwd | awk -F: '$NF~/\/bin\/sh/{print $1,$(NF-1)}' | grep ' /home' | while read i j; do echo chown -R $i:users $j; done| sh

блин папок много хорошо бы оно еще писало какую уже сделало:

Код: Выделить всё

cat /etc/passwd | awk -F: '$NF~/\/bin\/sh/{print $1,$(NF-1)}' | grep ' /home' | while read i j; do echo chown -R $i:users $j; echo ls -ld $j; done

о так лучше, ну и пусть в лог тогда пишет:

Код: Выделить всё

cat /etc/passwd | awk -F: '$NF~/\/bin\/sh/{print $1,$(NF-1)}' | grep ' /home' | while read i j; do echo chown -R $i:users $j; echo ls -ld $j; done| sh | tee -a done.log

фух, сделало. упс, забыл что пользователи могут иметь шелл еще и /bin/bash. Не проблема, просто перезапустим:

Код: Выделить всё

cat /etc/passwd | awk -F: '$NF~/\/bin\/bash/{print $1,$(NF-1)}' | grep ' /home' | while read i j; do echo chown -R $i:users $j; echo ls -ld $j; done

теперь можно сохранить на память, поскольку я ленивый: открываю vim и вставляю в него две отработавшие строчки, заменяя /etc/passwd на $1. Пример придуманный, хотя сама строчка вполне обычна, и схема ее получения тоже. Мы постепенно выбрали из входных данных то что нам надо, и проделали над этим некоторую операцию. Строчку кстати можно существенно сократить, и вообще переписать используя совсем другой набор фильтров, но мы уже постепенно к ней пришли, и она уже выполнила свое черное дело, ну и хорошо. Хотелось бы увидеть пример подобной логики в Basic-shell'е. На самом деле это не трудно читаемо переписать на любом скриптовом языке, просто логика будет несколько другой.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Кто идет на Unix-way

Сообщение sash-kan »

diesel писал(а):
14.11.2009 00:08
теперь можно сохранить на память, поскольку я ленивый: открываю vim и вставляю в него две отработавшие строчки, заменяя /etc/passwd на $1.
по-настоящему ленивые люди (типа меня) вообще ничего не открывают, не вставляют и не записывают.
~/.bash_history — их лучший друг.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Кто идет на Unix-way

Сообщение diesel »

sash-kan писал(а):
14.11.2009 00:54
diesel писал(а):
14.11.2009 00:08
теперь можно сохранить на память, поскольку я ленивый: открываю vim и вставляю в него две отработавшие строчки, заменяя /etc/passwd на $1.
по-настоящему ленивые люди (типа меня) вообще ничего не открывают, не вставляют и не записывают.
~/.bash_history — их лучший друг.

ну или так :)
хотя у файла могут быть другие преимущества в использовании like:

split -l 100 -d /etc/passwd
for i in *; do /path/to/script.sh $i & done
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Кто идет на Unix-way

Сообщение drBatty »

diesel писал(а):
14.11.2009 00:08
Пример придуманный, хотя сама строчка вполне обычна, и схема ее получения тоже. Мы постепенно выбрали из входных данных то что нам надо, и проделали над этим некоторую операцию. Строчку кстати можно существенно сократить, и вообще переписать используя совсем другой набор фильтров

ага. можно здесь использовать sed
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали: