Tag Archive for 'unix'

Regular Expressions - все что вы боялись спросить :)

Еще один тренинг! Будем отжигать по полной.

Зачем это мне?

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

Этот тренинг поможет вам научиться работать с регулярными выражениями, не тратить на них много времени и даст вам в руки мощный инструмент для работы с текстами.

Экономьте свое время и работайте эффективней!

О чем этот тренинг?

  • что такое регулярные выражения (regexp) и с чем их едят?
  • типы регэкспов - POSIX/Perl
  • формат регулярных выражений, из чего они состоят
  • якоря, что это такое, зачем их использовать и т.д.
  • условия повторения - как их использовать правильно
  • жадность квантификаторов ;)
  • классы символов, отрицания классов символов
  • операторы И и ИЛИ
  • группировка выражений
  • выделение подстрок
  • как отлаживать регулярные выражния
  • разбор полетов
  • ответ на вопросы
  • бонусы

Когда начнется?

Совсем скоро - тренинг будет проводится 10-11 апреля.

Как записаться?

Запись на тренинг в течении 8 апреля абсолютно бесплатная с небольшим условием:

  • Зафрендить меня в LiveJournal, чтоб я дал бы вам доступ к соответствующим постам (пользователь (nm_work)
  • Оставить в комментариях свой e-mail адрес, чтоб я вам выслал бы обновления и анонс точного времени тренинга.
  • Вы должны оставить в своем журнале или на своей веб-страничке линк на этот пост.

Для тех кто не записался во-время

Если вы записываетесь 9-го апреля - то стоимость записи будет 249р. Если вы запишетесь 10 или 11 апреля, когда тренинг уже начнется, стоимость записи на тренинг будет 970р. Сразу после завершения тренинга стоимость коробочной версии составит 4500р. и будет расти — после передачи ее в печать.

Оплата либо на WebMoney кошелек R374057138343 с пометкой “regexp” и ОБЯЗАТЕЛЬНО пишете в назначении платежа СВОЙ e-mail. Возможна оплата на Яндекс.Деньги и кредиткой - пишите мне по адресу gasparch@gmail.com - дам реквизиты.

  • Для тех, кто лениться сочинять свой тест.

Программируй на Unix Shell! Освой /bin/sh за 7 дней!

НАБОР ОТМЫЧЕК ДЛЯ АДМИНИСТРАТОРА:
ПРИЕМЫ ПРОГРАММИРОВАНИЯ НА SHELL

Кто хочет больше отдыхать? Как работать меньше, но решать больше задач.

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

Отстань, иначе я заменю тебя
на небольшой shell скрипт
© ThinkGeek.com

Осторожно: вы можете потерять свою работу! Не читайте, если вы не уверены в себе! Интересно, кто-нибудь дочитает до конца?

ВЫ ХОТИТЕ БЫСТРО ДОБИВАТЬСЯ РЕЗУЛЬТАТА, РАБОТАЯ С UNIX?

Вы хотите получать лучших результатов, чем сейчас?

Использовование UNIX без программирования на shell — это тоже самое, что ехать на грузовике, у которого одно ведущее колесо. Может вы куда-то и доедете, но только при самых благоприятных обстоятельствах. В случае малейших проблем придется все бросать и просто тупо толкать грузовик в нужном направлении. Вы

  • теряете свое время,
  • попусту тратите свои силы
  • испытываете неудовлетворение

из-за того, что постоянно делаете одни и те-же скучные задачи? Умелый UNIX администратор может всего этого избежать.

Этот курс посвящен тому, как переложить рутинные задачи на компьютер.
Хотите увеличить зарплату? Не отвлекаться на однообразные дейстия? Хотите высвободить личное время для обучения и для своих хобби, ну или хотя бы просто чтоб попить пиво :) ? Почувствовать, что вы МОЖЕТЕ решать сложные задачи? Чувствовать уверенность в своих силах? Просто «въехать в тему»? А самое главное – не совершать хотя бы банальных ошибок, которые ведут к затратным последствиям.

Я не знаю, почему для некоторых людей важно знать и уметь это уже сейчас.
Может, Вы знаете? Если задуматься, то это обычно это те люди, которые добились блестящих результатов.

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

Вопрос не в том, нужно ли это знать.
Вопрос в том,
можете ли Вы и дальше позволить себе этого не знать?

Зачем вам использовать скрипты, если все это можно сделать руками?

  • Это ваше сэкономленное время,

  • это более высокая зарплата,

  • это благополучие,

  • это более интересное место работы,

  • это ваша профессиональная репутация.

Как этого достичь быстрее и проще?

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

Verdel

У любого человека, который интересуется так или иначе unix или BSD системами всегда есть желание повышать свой уровень знания, но людям от IT иногда свойственна лень.
Так вот, по курсу-если бы не сам факт того, что я попал на курсы такого известного автора статей по Unix системам, как вы и, если бы не задачки, которые заставляют поломать голову-никогда бы не собрался изучить такой нужный материал, как программирование на shell. Курс очень нужный, помогающий автоматизировать задачи администрирования, тем самым облегчая выполнения каждодневной работы. Огромное вам спасибо за эту тему и за подборку материала.

Наконец то понял принципы функционирования sed и awk, осталось нормально и досконально изучить построение регулярных выражений и цены мне не будет Также разобрался в принципе работы [], что то же очень хорошо, теперь смогу нормально строить скрипты и автоматизировать необходимые мне процессы. Достиг всего,чего хотел и раскачал “мозг”, который стал тонуть в рутине.

Немного не хватало примеров, то есть примеров в печатном виде в чате например, что немного бы помогло, так как на слух я всё таки плохо воспринимаю информацию, мне не хватает визуальной составляющей, но это только мое мнение. А так огромное вам спасибо, я действительно благодарен за курс. (Гаспар: Примечание - тем, кто покупает коробку, повезло куда больше - тексты и домашние задания там есть!)

Как стать профессионалом в Unix системах:
секреты успешных администраторов

Спасибо, что зашли на мой сайт. Меня зовут Гаспар Чилингаров, я занимаюсь администрированием Unix систем уже свыше 10 лет — с 1996 года. Основное направление, которое я выбрал для себя — это администрирование FreeBSD серверов, хотя в руки попадаются и Linux, и Solaris системы. Администрирование — это иногда мой первый хлеб, а иногда — второй, когда оно уступает свое место программированию.

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

  • написания скрипта
  • отладки
  • запуска
  • и заслуженного отдыха

у них занимают существенно больше времени или же вообще считаются невыполнимыми.

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

Если вы работали на пару с опытными Unix администраторами, то вы замечали, что они не сразу бросаются решать задачу, а сперва тратят 5, 10 или 15 минут, а иногда и больше времени, на написание скрипта, который бы выполнял те же действия, что и они делают руками. Это позволяет полностью исключить ручное вмешательство в решение задачи в будущем. В последующем, если такая задача возникнет вновь, это может сэкономить существенно больше времени — так как ее можно решить автоматически.

Мне очень повезло — я крайне ленив :), поэтому если мне приходится выполнять одно и тоже действие несколько раз — я предпочитаю найти способ как его автоматизировать. Мне также очень повезло, что я работал и работаю на Unix системах, которые позволяют это сделать. Если бы я был администратором MS Windows, я не представляю, что бы я делал.

Очень часто, то что я делаю, для людей со стороны кажется ‘магией’. Они не представляют, как можно так быстро и так эффективно решать задачи. Секрет же очень простой — полная автоматизация действий. Если вы сумели сделать всю последовательность действий вручную, то и скрипт оболочки тоже сумеет это сделать. Необходимо только написать его.

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

Mike345

Я администрирую FreeBSD, но никогда не занимался программированием (то есть почти все делал руками), так что этот курс был для меня очень полезным. Стало ясно как оптимизировать рутинные задачи, к чему я всегда стремился
Давно хотел научиться полноценно использовать shell и этот курс был для меня очень вовремя.
Конечно, я еще много чего не знаю и нужно еще закрепить материал, но хорошее начало положено!

Что понравилось.
Излагается только нужный материал без воды, сразу завязанный с практикой.
Задания даны разной степени сложности.
Организована система обратной связи со слушателями.
Понравился принцип: Если что-то делаешь 2 раза - напиши скрипт.
Сочетание позитивной и негативной мотивации
Введение бонусных подкастов с очень интересными темами.

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

Было бы неплохо раздавать краткие руководства по употребляемым программам, хотя я понимаю, есть man и google, но все же. В манах есть только описания, но нет примеров, и их приходится искать в гугле. Ну это общее для всего open source.

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

Как работать вдвое меньше:
секреты успешных администраторов

Задачи тренинга.

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

Поэтому, при подборе программы и материала я ориентировался на решение следующих проблем человека, который хочет научиться экономить свое время (*ознакомьтесь внимательно*):

  • На серверах периодически забивается все дисковое пространство и вы вручную стираете старые лог файлы
  • Критически важные процессы периодические «вылетают» и к вам приходят недовольные пользователи — вы вынуждены вручную следить за их состоянием и запускать обратно
  • Все задачи, которы требуют административного доступа, вы выполняете сами, хотя с ними бы справилась бы и секретарша
  • Вас постоянно отвлекают по мелочам, потому что эти вопросы может решить только администратор
  • Избавиться от страха, когда вы читаете чужие скрипты и ничего не понимаете, т.е. чувствовать себя комфортно.

  • Научиться добиваться решения задачи полностью автоматическим путем

  • Неуверенность, когда вам нужно создать скрипты со сложной логикой.

  • “Въехать в тему” при отсутствии практики. Как минимум, составить общее представление о технике программирования на shell; как максимум - получить навыки программирования (это возможно, если вы будете делать ВСЕ домашние задания).

  • Изучить новые техники,

  • Научиться строить свои скрипты так, чтобы вам или другому человеку было бы легко в них разобраться через несколько месяцев.

  • Удовлетворить интерес.

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

Molse
Тренинг отличный, было интересно, пара рабочих дней прошли без меня Читал книжки, инет , делал задания. Так как опыта программирования практически ноль, давалось с трудом.
Узнал хоть как пишутся скрипты, оказалось ничего страшного, можно понять и самому писать, тем более база дана хорошая, дальше если не забивать, то можно нормально научиться.

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

(Гаспар: Примечание — все пожелания учтены и в коробке ЕСТЬ таки все в текстовом виде. Там даже между описаниями команд специально место оставлено по просьбам участников — для комментариев)

Плавание без карты:
секреты успешных администраторов

Чему этот Тренинг не может Вас научить.

«Это невозможно сделать автоматически».

Я очень часто слышу эту фразу и отвечаю «Возможно!». Очень часто я оказываюсь прав. Так в чем-же дело?

Многие считают, что если они не видят решения проблемы прямо сейчас, то этого решения не существует. В действительности, решение почти всегда лежит прямо перед носом, но его нужно заметить. После того, как вы вам его покажут, вы будете бить себя по лбу и говорить «Это же так просто, как я этого не заметил или не додумался сам?».

Все тренинги мира не помогут.

Если вы часто попадаете в такую «невозможную» ситуацию, то скорее всего вы просто делаете что-то не то. Если вы настроены пессимистично — вы можете все бросить с первого раза и тогда я не сумею ничем вам помочь. Но если вы хотите все-таки добить задачу и ее решить — то я могу дать вам несколько советов — как именно можно решать сложные задачи.

  • «У кого-то уже была такая же проблема» — перво-наперво вам стоит просто поискать в google или яндексе просто описание вашей проблемы. Точнее тот вопрос, с которым бы вы обратились к гуру, если бы он был рядом. У вас вопрос — «Как ограничить скорость пользователя squid?». Без всяких изменений забейте этот вопрос в строку поиска и поищите. Вы будете удивлены тем, что в 50% случаев первый же документ в поиске будет тем, что вы искали.
  • Если не удается найти с первого раза — постарайтесь перефомулировать вопрос несколько раз.
  • Если вы можете решить задачу вручную — то тогда только вопрос времени, чтоб ее полностью автоматизировать — как бы сложно это не казалось.

Что вы не можете купить на тренинге.

Как бы я не старался во время тренинга, тем не менее, я не сумею заставить вас выполнять все домашние задания, не подглядывая в подсказки и ответы. Эта привычка осталась у всех у нас с школьных и институтских времен, когда нас тоннами обучали всяким непонятным и не интересным предметам. Тогда у нас была задача побыстрее выучить, сдать и забыть.

Цель этого вренинга — дать вам практические навыки. И в этом трудном деле вам никто не поможет кроме вас самих. То что вы не можете купить ни за какие деньги — это ваше упорство и ваше желание учиться. Если оно есть — этот тренинг поможет вам научиться многому, Если нет — то тогда вам просто он будет бесполезен. А если вы прослушаете все бонусы — то тогда и вредным для вас.

Опять новое? Ненавижу учиться!
Секреты успешных администраторов

Зачем это Вам?

Знаете, есть одна очень хорошая метафора на этот счет.

Представьте, что есть девочка-секретарь, которая единственное, что умеет, это очень быстро печатать на компьютере. Ее цена как специалиста на рынке Москвы составляет примерно 150 дол. Секретарь, конечно, стремится к большему, она рисует себе красивую картинку будущего и ставит перед собой цель: «Хочу получать 5 000 дол. в месяц!». И начинает еще больше и быстрее печатать, работает не 8, а 10 — 12 часов в сутки, берет работу на дом… Максимум, чего она сможет достигнуть, если, конечно, вдруг не получит наследство или не выйдет удачно замуж, это 400 долларов.

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

Если вы хотите зарабатывать больше — то самое время серьезно подумать над тем, ЧТО вы знаете. И над тем — а востребованы ли эти знания на рынке. И о том, как можно «прокачать» себя, чтоб вас бы прости искали и предлагали вам работу.

Из своего опыта я могу сказать, что за последние лет 8-9 лет я принимался на работу вообще не имея резюме. Меня просто находили через знакомых и предлагали поработать в другой организации. Некоторые правда потом, после того как я начинал у них работать, просили от меня резюме — потому что «так положено». Не хотите ли и вы добиться подобного результата? Первый шаг к этому — это как следует освоить оболочку Unix и научиться автоматизировать в системе все что может двигаться и шевелиться.

Полное Содержание Курса

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

[free] Каст #1 - Вводный материал

[$] Каст #2 - Базовые понятие shell

[$] Каст #3 - Ввод-вывод в shell, использование subshell

[$] Каст #4 - Команды case, eval и эмуляция массивов в shell

[$] Каст #5 - Команда sed

[$] Каст #6 - Команда awk

[free] Каст #7 - Что делать дальше?

[$] Бонус1: Анализ лога squid и блокировка пользователей при превышении лимита траффика

[$] Бонус2: Запуск программ на выполнение, exec, встроенные переменные shell

[free] Бонус3: Написание CGI программ на shell

[$] Бонус4: Как удаленно запускать shell скрипты при помощи ssh

[$] Бонус5: Как удаленно (через ssh) ограничить выполнение только определенных команд, установка ssh соединения без запроса пароля

[$] Бонус6: Истории возникновения Unix, хакеры, Jargon File, о хакерах и художниках (Paul Graham)

[$] Бонус7: Написание ограниченной оболочки для пользователей

[$] Бонус 8: Как поставить сторожевой таймер, чтоб скрипты не выполнялись бы вечно

[$] Бонус9: Ответы на вопросы

[free] Бонус10: Алис Блонди и Гаспар Чилингаров представляют совмесный каст — блондинка и сисадмин :)

[free] Бонус11: Суровые юникс администраторы - какие инструменты вам нужны для администрирования Unix.

[$] Бонус12: Ответы на вопросы - 2

[$] Бонус13: “Счастливый сисадмин” — совместно KA6AH и Гаспар Чилингаров

[free] Бонус14: Программирование на shell в экспремальных условиях - Гаспар Чилингаров

Как купить это ВСЁ?!

  1. Стоимость коробки + абонемент на год составляет 12900р.
    1. Вам высылается коробка со следующими материалами:
      • печатные текстовые руководства, составленные на основе кастов + примеры использования команд
      • домашние задания
      • подсказки для решения домашних заданий
      • решения домашних заданий
      • аудио CD с записями кастов
      • дополнительные бонусные диски с аудио, текстами, файлами домашних заданий и т.д.
      • Книжку “Установка веб сервера на FreeBSD” (цена 6$) бесплатно
      • Инсталлятор FreeBSD 6.3 и все доступные пакеты (цена 30$) бесплатно - рекомендуется для установки на производственные сервера
      • Инсталлятор FreeBSD 7.0 и все доступные пакеты (цена 30$) бесплатно - рекомендуется для изучения системы и на менее ответственные машины
      • недокументированные бонусы (я включаю самые интересные на данный момент бонусы и информацию )
    2. Сразу же после оплаты вы получаете доступ ко ВСЕМ материалам круса в электронном виде.
    3. Абонемент на услугу ‘консультации по shell программированию на 1 год (цена 11000р) бесплатно — вы можете задавать мне любые вопросы по программированию на shell. Вы присылаете свой вопрос по почте и я даю вам рекомендации, как решить эту пробему или как поступать с данной задачей. Имейте всегда под рукой справочную службу для решения ваших проблем. Количество вопросов в течении месяца НЕ ОГРАНИЧЕНО. Стоимость отдельной годовой подписки на этот сервис 11000р/год. Включено в коробочную версию БЕСПЛАТНО.
  2. Стоимость коробки составляет 6997р.
    1. Вам высылается коробка со следующими материалами:
      • печатные текстовые руководства, составленные на основе кастов + примеры использования команд
      • домашние задания
      • подсказки для решения домашних заданий
      • решения домашних заданий
      • аудио CD с записями кастов
      • дополнительные бонусные диски с аудио, текстами, файлами домашних заданий и т.д.
      • Книжку “Установка веб сервера на FreeBSD” (цена 6$) бесплатно
      • Инсталлятор FreeBSD 6.3 и все доступные пакеты (цена 30$) бесплатно - рекомендуется для установки на производственные сервера
      • Инсталлятор FreeBSD 7.0 и все доступные пакеты (цена 30$) бесплатно - рекомендуется для изучения системы и на менее ответственные машины
    2. Сразу же после оплаты вы получаете доступ ко ВСЕМ материалам круса в электронном виде.
  3. сделать предоплату СЕЙЧАС и купить ее с 50% скидкой за 2950р. тогда вы получаете СЕЙЧАС все аудио файлы и получите доступ к файлам текстовых материалов ПОСЛЕ сбора всей коробки - вы покупаете ТОЛЬКО ЭЛЕКТРОННУЮ версию, без печатных материалов (это хорошая возможность сэкономить);

По предварительной записи, пока коробка подготавливается, можно купить коробку со СКИДКОЙ.

Первые 10 9 8 7 экземпляров все еще ждут своего владельца:
*не надоело упускать возможности?:))))

  • Саму коробку за 6000р - если вы оплачиваете прямо СЕЙЧАС
  • Коробку + абонемент на год за 9950р - если вы оплачиваете прямо СЕЙЧАС

Оплата!

  • при помощи Webmoney — переведите на рублевый кошелек R374057138343 с пометкой “bin sh, коробка” и ОБЯЗАТЕЛЬНО пишете в назначении платежа СВОЙ e-mail.
  • Yandex.Деньги — переведите на мой кошелек необходимую сумму с пометкой “bin sh, коробка” и ОБЯЗАТЕЛЬНО пишете в назначении платежа СВОЙ e-mail.Для того, чтоб узнать номер кошелька напишите почту по адресу nm@web.am
  • Кредитные карточки и банковский платеж (wire transfer) — тоже возможно, для уточнения метода платежа свяжитесь со мной по адресу nm@web.am.

90 дней 180 дней для оценки материала, 100% гарантия возврата денег!

Я предлагаю вам 90 дней 180 дней (это целых полгода) 100% гарантии. Вы можете получить продукт, прослушать его и если он вам не понравится или вы посчитаете, что он вам не подходит — вы можете возвратить его мне без каких-либо возражений! Даже если вам не понравится размер фонта или цвет обложек! Без препятствий, без вопросов, без обвинений, просто возврат. Я уважаю ваше и свое время — поэтому если этот продукт вам не понравится я удалю вас из базы наших клиентов, чтоб мы не тратили время зазря в дальнейшем. Надеюсь на ваше понимание.

Программируй на Unix Shell! Освой /bin/sh за 7 дней!

Эффективно ли используете свое время?

  • Вы используете Unix системы?
  • Вы периодически выполняете рутинные задачи?
  • У Вас не получаете их автоматизировать?

Если ваш ответ “Да”, то Вы пришли точно по адресу.

Курс “Программируй на Unix Shell” позволит Вам сэкономить свое время и силы!

Бывало ли так, что вы вручную мучались с какой-то проблемой один или два дня?

Этого бы могло и не произойти, если бы Вы свободно владели бы программированием на shell.

Сэкономьте свое время и, в конце концов, деньги — выучите программирование на shell, начните спокойно разбираться в написании скриптов и вы увидите, как облегчится ваша жизнь.

Не надоело ли вам вручную делать одни и те же задачи по нескольку раз?

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

Содержание курса:

7 основных лекций с учебным материалом по оболочке /bin/sh и 12 бонусов с примерами и ответами на вопросы.

Пароль для доступа к архиву.

Основной курс

[free] Каст #1 - Вводный материал

  • План занятий

[$] Каст #2 - Базовые понятие shell

  • Как происходит раскрытие переменных?
  • Как интерпретируются переменные внутри одинарных и двойных кавычек ?
  • Как использовать подстановку “ ?
  • Как соединять несколько команд вместе ?
  • Пустая команда
  • Как сравнивать значения в shell?
  • Какие операторы есть в shell? Как они выглядят? Как они работают?
  • Домашнее задание

[$] Каст #3 - Ввод-вывод в shell, использование subshell

  • Как перенаправлять ввод-вывод в shell?
  • Как использовать here-documents?
  • Как группировать ввод-вывод нескольких команд?
  • Как объединять несколько команд в конвейер?
  • Какие подводные камни есть при использовании subshell?
  • Использование команды read и цикла while
  • Домашнее задание

[$] Каст #4 - Команды case, eval и эмуляция массивов в shell

  • Как работает команда case?
  • Как работает команда eval?
  • Как эмулировать массивы данных в shell?
  • Домашнее задание

[$] Каст #5 - Команда sed

  • Опции -n, -e, -E
  • Как адресовать строки в sed?
  • Какие есть базовые команды sed?
  • Примеры использования команды sed
  • Домашнее задание

[$] Каст #6 - Команда awk

  • Как писать программы на awk ?
  • Блоки команд, блоки BEGIN, END
  • Как адресовать поля в строке?
  • Условия обработки строк
  • Переменные awk
  • Вывод информации в awk

[free] Каст #7 - Что делать дальше?

  • Циклы по массиву в awk
  • Какие книги стоит почитать?
  • Какие задачи можно и нужно автоматизировать при помощи shell?
  • Какие задачи не стоит выполнять при помощи shell?

Бонусы:

[$] Бонус1: Анализ лога squid и блокировка пользователей при превышении лимита траффика

  • подробный разбор работы скрипта, запускающегося из cron
  • На что следует обратить внимание при запуске скрипта из cron?
  • Разбор чепочки команд
  • Как стоит делать подстановку переменных внутри строки?

[$] Бонус2: Запуск программ на выполнение, exec, встроенные переменные shell

  • exec, команда .
  • встроенные переменные
  • сдвиг позиционных аргументов

[free] Бонус3: Написание CGI программ на shell

  • Как использовать shell скрипты в качестве CGI программ?
  • Как принимать входные аргументы?
  • Как отдавать данные в браузер?
  • Зачем можно использовать shell скрипты, как CGI программы?

[$] Бонус4: Как удаленно запускать shell скрипты при помощи ssh

  • Как выполнять удаленные скрипты?
  • Как перенаправляются стандартный ввод и выво программ, запущенных через ssh?
  • Какие применения есть удаленному вызову скриптов?
  • Как выполнить скрипт, не передавая файл с ним на другой хост?

[$] Бонус5: Как удаленно (через ssh) ограничить выполнение только определенных команд, установка ssh соединения без запроса пароля

  • Как настроить ssh, чтоб он принимал бы соединения пользователем root?
  • Как настроить ssh, чтоб он не запрашивал пароль?
  • Как ограничить исполняемые через ssh команды (для повышения безопасности)?

[$] Бонус6: Истории возникновения Unix, хакеры, Jargon File, о хакерах и художниках (Paul Graham)

  • Почувствуйте обстановку, в которой создавались Unix системы

[$] Бонус7: Написание ограниченной оболочки для пользователей

  • Как ограничить список команд , которые может выполнять пользователь?
  • На что стоит обращать внимание при написании ограниченной оболочки?

[$] Бонус 8: Как поставить сторожевой таймер, чтоб скрипты не выполнялись бы вечно

  • Как предотвратить зависание скриптов?
  • Как гарантировать, что скрипт завершенится в заранее известное время?

[$] Бонус9: Ответы на вопросы

  • поиск символа в строке при помощи case
  • как передать данные в awk ?
  • программы awk
  • сравнение строк с шаблоном

[free] Бонус10: Алис Блонди и Гаспар Чилингаров представляют совмесный каст — блондинка и сисадмин :)

  • без комментариев, нужно слушать ;)

[free] Бонус11: Суровые юникс администраторы - какие инструменты вам нужны для администрирования Unix.

  • Օбязательно к прослушиванию!
  • Какие иструменты вам нужно иметь для администрорования Unix?
  • Чем отличаются афроамегритянские админы от xUSSR админов?

[$] Бонус12: Ответы на вопросы - 2

  • Как строить график в shell?
  • Как обрабатывать перевод строки в sed?
  • Как решить задание по awk (с командой cal.) ?
  • Как поменять активный раздел в FreeBSD?

[$] Бонус13: “Счастливый сисадмин” — совместно KA6AH и Гаспар Чилингаров

  • Цените ли Вы свое время?
  • Что делать с кучей дел?
  • У стресса и скуки — общая причина ?

[free] Бонус14: Программирование на shell в экспремальных условиях - Гаспар Чилингаров

  • Как программировать на shell, если нет вспомогательных программ типа grep, cut и так далее?
  • Как эмулировать многие программы ТОЛЬКО при помощи shell?

Как купить это ВСЁ?!

  1. Стоимость коробки + абонемент на год составляет 12900р.
    1. Вам высылается коробка со следующими материалами:
      • печатные текстовые руководства, составленные на основе кастов + примеры использования команд
      • домашние задания
      • подсказки для решения домашних заданий
      • решения домашних заданий
      • аудио CD с записями кастов
      • дополнительные бонусные диски с аудио, текстами, файлами домашних заданий и т.д.
      • Книжку “Установка веб сервера на FreeBSD” (цена 6$) бесплатно
      • Инсталлятор FreeBSD 6.3 и все доступные пакеты (цена 30$) бесплатно - рекомендуется для установки на производственные сервера
      • Инсталлятор FreeBSD 7.0 и все доступные пакеты (цена 30$) бесплатно - рекомендуется для изучения системы и на менее ответственные машины
      • недокументированные бонусы (я включаю самые интересные на данный момент бонусы и информацию )
    2. Сразу же после оплаты вы получаете доступ ко ВСЕМ материалам круса в электронном виде.
    3. Абонемент на услугу ‘консультации по shell программированию на 1 год (цена 11000р) бесплатно — вы можете задавать мне любые вопросы по программированию на shell. Вы присылаете свой вопрос по почте и я даю вам рекомендации, как решить эту пробему или как поступать с данной задачей. Имейте всегда под рукой справочную службу для решения ваших проблем. Количество вопросов в течении месяца НЕ ОГРАНИЧЕНО. Стоимость отдельной годовой подписки на этот сервис 11000р/год. Включено в коробочную версию БЕСПЛАТНО.
  2. Стоимость коробки составляет 6997р.
    1. Вам высылается коробка со следующими материалами:
      • печатные текстовые руководства, составленные на основе кастов + примеры использования команд
      • домашние задания
      • подсказки для решения домашних заданий
      • решения домашних заданий
      • аудио CD с записями кастов
      • дополнительные бонусные диски с аудио, текстами, файлами домашних заданий и т.д.
      • Книжку “Установка веб сервера на FreeBSD” (цена 6$) бесплатно
      • Инсталлятор FreeBSD 6.3 и все доступные пакеты (цена 30$) бесплатно - рекомендуется для установки на производственные сервера
      • Инсталлятор FreeBSD 7.0 и все доступные пакеты (цена 30$) бесплатно - рекомендуется для изучения системы и на менее ответственные машины
    2. Сразу же после оплаты вы получаете доступ ко ВСЕМ материалам круса в электронном виде.
  3. сделать предоплату СЕЙЧАС и купить ее с 50% скидкой за 2950р. тогда вы получаете СЕЙЧАС все аудио файлы и получите доступ к файлам текстовых материалов ПОСЛЕ сбора всей коробки - вы покупаете ТОЛЬКО ЭЛЕКТРОННУЮ версию, без печатных материалов (это хорошая возможность сэкономить);

По предварительной записи, пока коробка подготавливается, можно купить коробку со СКИДКОЙ.

Первые 10 9 8 7 экземпляров все еще ждут своего владельца:
*не надоело упускать возможности?:))))

  • Саму коробку за 6000р - если вы оплачиваете прямо СЕЙЧАС
  • Коробку + абонемент на год за 9950р - если вы оплачиваете прямо СЕЙЧАС

Оплата!

  • при помощи Webmoney — переведите на рублевый кошелек R374057138343 с пометкой “bin sh, коробка” и ОБЯЗАТЕЛЬНО пишете в назначении платежа СВОЙ e-mail.
  • Yandex.Деньги — переведите на мой кошелек необходимую сумму с пометкой “bin sh, коробка” и ОБЯЗАТЕЛЬНО пишете в назначении платежа СВОЙ e-mail.Для того, чтоб узнать номер кошелька напишите почту по адресу nm@web.am
  • Кредитные карточки и банковский платеж (wire transfer) — тоже возможно, для уточнения метода платежа свяжитесь со мной по адресу nm@web.am.

90 дней 180 дней для оценки материала, 100% гарантия возврата денег!

Я предлагаю вам 90 дней 180 дней (это целых полгода) 100% гарантии. Вы можете получить продукт, прослушать его и если он вам не понравится или вы посчитаете, что он вам не подходит — вы можете возвратить его мне без каких-либо возражений! Даже если вам не понравится размер фонта или цвет обложек! Без препятствий, без вопросов, без обвинений, просто возврат. Я уважаю ваше и свое время — поэтому если этот продукт вам не понравится я удалю вас из базы наших клиентов, чтоб мы не тратили время зазря в дальнейшем. Надеюсь на ваше понимание.

Shell programming: отжиг на тему шелл :)

Качать обязательно!

Сам каст можно найти здесь.

Shell programming: на десерт

На сутки (до 23:00 по москве 27 марта) выкладываю запись второго каста с нашего тренинга.

Он посвящен, догадайтесь чему? Правильно — shell!

Содержимое каста:

1.Базовые понятия
1.Раскрытие переменных / подстановки в /bin/sh
1.переменные/присвоение/арифметические операции
2. ”, “”, без кавычек
3. “
4. ;
5. :
2.Операторы shell
1.команды сравнения (test, []), -eq, -ne, -ge, -le, -gt, -lt, -a, -o, -f, -d, -s, -z, =, !=, >, <, ()
2.if/while/for
1. if [ ]
2. if command
3. while , while read, white read <<EOF

4. for VAR in “

3.Домашнее задание

Калькулятор -

Код:

 

> ./accum
Enter Acc:
10
Accumulator value is 10
Enter operation:
* 5
Accumulator value is 50
Enter operation:
- 12
Accumulator value is 38
Enter operation:
/ 2
Accumulator value is 19
q
Quitting
>

Линк на запись с тренинга по shell программированию - будет жить сутки, потом умрет ;)

UPDATE: линк умер :) зато есть бонус ;)

7 способов улучшить ваши shell скрипты на /bin/sh

Для новичков в shell программировании :)
Несколько приемов для того, чтоб сделать свои скрипты компактнее, быстрее и правильней:

1. Упрощение конструкции с if
Конструкцию

if команда1
then
команда2
fi

можно заменить просто на команда1 && команда2

2. Упрощение конструкции с if !

Конструкцию

if ! команда1
then
команда2
fi

можно заменить просто на команда1 || команда2

3. Если вы используете шаблоны или подстановку аргументов в shell

Если вы используете шаблоны (скажем, *) или подстановку аргументов в shell при помощи “, то если их много shell не может сделать такую подстановку. Тогда стоит прибегнуть к помощи команды xargs.

Т.е. строчка

rm * в директории, которая содержит слишком много файлов, может превратиться в

ls | xargs rm

Или же
rm `find ./ -name pkg-descr` может превратиться в

find ./ -name pkg-descr | xargs rm

4. Ускорить grep
Если вы ищите какую-то строку в больший объемах данных при помощи grep, то стоит использовать fgrep — который позволяет искать только вхождения строк, а не регулярных выражений — но и работает быстрее на 10-20%.

5. Пишем условия правильно

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

if [ $INPUT = test ]; then … fi

то стоит применять либо вариант с дописыванием одного символа с обоих сторон сравнения

if [ x$INPUT = xtest ]; then … fi
либо брать переменную в двойные кавычки
if [ "$INPUT" = test ]; then … fi

6. Чтоб не дать команде выводить что-либо на экран

Можно использовать перенаправление стандартного вывода и стандартного потока ошибок в /dev/null

ping -c foo.bar > /dev/null 2>/dev/null

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

7.Осторожно фильтруем список выполняемых команд

Если вы из скрипта хотите отослать сигнал завершения или какой-либо другой группе команд и используете для этого строчку типа

kill -9 `ps -ax | grep PROCESS_NAME | cut -c1-5 `

то вы случайно можете убить и процесс grep и получить неправильные результаты. Поэтому обязательно переписывайте такие команды вот так:

kill -9 `ps -ax | grep PROCESS_NAME | grep -v grep | cut -c1-5`

Это исключит саму команду grep из списка убиваемых процессов.

7 примеров хитрого использования shell

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

1. Создание lock файла
Очень часто нужно бывает выполнять скрипт, который может делать непредсказуемые вещи, если его запустить параллельно. Особенно часто это бывает, когда скрипт запускается из cron, а предыдущий его экземпляр не успел завершиться.

Вот пример скрипта, который создает lock файл, и если он присутствует — то вылетает с ошибкой.

Код:
#!/bin/sh
LOCKFILE=/tmp/mylockif [ ! –s $LOCKFILE ]; then # проверяем, что lock файл пустой
echo $$ > $LOCKFILE # записываем идентификатор процесса в lock файл
# все действия скрипта нужно поместить здесь
: > $LOCKFILE # обнуляем lock файл
exit 0
else
# как пример — отсылаем почту root, из-за того,
# что не скрипт не может быть запущен
echo “PID `cat $LOCKFILE` running” | mailx –s “$0 can’t run” root
exit 1
fi

Этот скрипт можно переписать, чтоб он пытался бы запуститься несколько раз с паузами (просто добавить while и sleep), либо чтоб он убивал бы ранее запущенный скрипт, если тот выполняется более N секунд.

2. ВСЕГДА проверяйте коды возврата
Всегда проверяйте, какой код возврата вам выдала запущенная вами программа или скрипт — так как это может повлиять на дальнейшую работу вашего скрипта. В /bin/sh код возврата находится в переменной $? .

3.Используйте код возврата
Вы можете проанализировать код возврата при помощи команды test (используя ее в виде квадратных скобок [ ] ) и выполнить правильную последовательность действий

Код:
if [ “$?” -eq ‘0’ ]; then echo ‘Я зиданчег’; else echo ‘Я не зиданчег’; fi

Не забывайте, что в shell положительный код возврата это 0, а все оставшиеся коды — это сообщение об ошибках.

Можно сразу передавать команды оператору if, а не анализировать код выхода, сохраненный в $?.

Код:
host=’127.0.0.1′
if ping -c 1 $host; then echo ‘Хост пингуецца’; else echo ‘Хост совсем неживой’; fi

4. Объединение вывода команд
Можно объединять вывод нескольких команд вместе. Вместо того, чтоб добавлять вывод нескольких команд в один и тот-же файл, можно использовать subshell — дочерний shell.

Код:
#!/bin/sh
(
echo ‘———————–’
cat /etc/motd
echo ‘———————–’
cat /etc/issue
echo ‘———————–’
) > /tmp/motd-issue

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

Код:
tar cf - . | (cd /tmp/test && tar xpf -)


Если директории /tmp/test не существует, то и вторая команда tar не будет выполнена.

6.Запуск куска кода в фоновом режиме
Если вам нужно запустить кусок кода в фоновом режиме, то тоже можно использовать subshell

Код:
#!/bin/sh
echo ‘begin’
(echo ’subshell start’; sleep 5; echo ’subshell stop’)&
echo ‘end’

Кусочек кода (echo ’subshell start’; sleep 5; echo ’subshell stop’) будет выполняться в фоновом режиме до тех пор, пока не завершиться.

7.Использование команд через ssh

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

Код:
tar cf - ./dir | ssh $host “cd /dir/ && tar xpf –“

Или как вариант, запустить скрипт на удаленном хосте, не копируя его туда:

Код:
cat script.sh | ssh $host /bin/sh

Курс по shell программинг - бай-бай отстающие + план

Те, кто не отписались во-время

  • DiV
  • Алексей
  • rozhkov

Такова жизнь, товарищи, пролетаете с тренингом, как фанера над парижем. Ибо нужно было отписываться во-время - были 1 сутки времени.
И еще — шустрый товарищ с ником ‘ilyouha‘ тоже пролетает со свистом, потому что в посте с анонсом тренинга он не отписывался а почему то решил сразу полезть на форум. направляется в жестокий бан.

Итого на курс освободилось еще 3 2 1 бесплатное место.

Что нужно сделать для записи?

  1. Выполняете условия записи на тренинг, ставите отзыв.
  2. Отписываетесь в комментах к этой теме
  3. Регистрируетесь на форуме
  4. Качаете и слушаете каст.
  5. В комментах к ЭТОЙ же записи отписываетесь с ответами на следующие вопросы: (у вас должно получиться 9 ответов)
    • Зачем вы пришли на этот тренинг? Ваша цель
    • Что вы ожидаете от этого тренинга? Что вы хотите получить.
    • Что вы хотите решить, обучаясь на этом тренинге? Какая задача вас вынудила обучаться/записываться на тренинг.

Если сумеете выполнить эти 3 условия до 23:00 по москве 23 марта - отлично, вписываетесь на тренинг. Не успеваете — значит на не по пути.

План путина тренинга

  1. Базовые понятия (45-50 минут) (24 марта)

    1. Раскрытие переменных / подстановки (15 мин)

    2. Операторы shell

    3. Домашнее задание

  2. Ввод-вывод (55-60 минут) (25 марта)

    1. Ответ на Д/З, общие ошибки/вопросы (15 минут)

    2. Новый материал

      1. перенаправление ввода-вывода и все такое

    3. Домашнее задание

  3. Дополнительные материалы (55 минут) (26 марта)

    1. Ответ на Д/З, общие ошибки/вопросы

    2. команда case

    3. команда eval

    4. Домашнее задание

  4. программирование на sed (45-50 минут) (27 марта)
    1. Ответ на Д/З, общие ошибки/вопросы

    2. разбор sed

    3. Домашнее задание

  1. программирование на awk (45 минут) (28 марта)

    1. Ответ на Д/З, общие ошибки/вопросы

    2. разбор awk

    3. Домашнее задание

  2. Заключительный (35 минут) (29 марта)

  3. Бонусы (30-31 марта)

Shell programming: первое мини-домашнее задание

Качаем аудио файл, слушаем, выполняем домашнее задание.

Кто не успел отписаться до 24:00 по москве, 21 марта, пятница — тот пролетел с тренингом :)

Отписываемся на форуме здесь.

Запись сегодняшнего каста по shell programming

Как и обещал запись каста :)

Каст качаем здесь (3.5mb).

Отписываемся по задачам - что было бы интересно послушать :)