Говорите на BASH: различия между версиями

Материал из Викиверситета
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 6: Строка 6:
'''Метод''' - сравнительный<ref>орисс, предупреждаю сразу. Он используется при демонстрации особенностей грамматики языка в учебниках, но я не уверен, признаёт ли его педагогика</ref><br/>
'''Метод''' - сравнительный<ref>орисс, предупреждаю сразу. Он используется при демонстрации особенностей грамматики языка в учебниках, но я не уверен, признаёт ли его педагогика</ref><br/>
'''Рекомендуется''' при освоении курса запускать команды в терминале вашего компьютера ('''Не''' запускайте их с правами суперпользователя).
'''Рекомендуется''' при освоении курса запускать команды в терминале вашего компьютера ('''Не''' запускайте их с правами суперпользователя).

==Перенаправления==
==Перенаправления==
Пренаправление потоков - мощный инструмент, который позволяет организовывать взаимодействие разных программ. Это - важнейший элемент [[w:ru:Философия UNIX|философии UNIX]]. Приведённый ниже пример сотоит из двух частей - командо до перенаправления (">>") и после. Попробуйте выполнить команду cat /dev/urandom саму по себе и вы увидите как по экрану "поползут крякозаблики" (нажмите Ctrl+C для остановки). Командой ">>" эти "крякозяблики" отправятся на вход звуковой карты. ( Услышите ли Вы звук зависит от конфигурации системы.)
Пренаправление потоков - мощный инструмент, который позволяет организовывать взаимодействие разных программ. Это - важнейший элемент [[w:ru:Философия UNIX|философии UNIX]]. Приведённый ниже пример сотоит из двух частей - командо до перенаправления (">>") и после. Попробуйте выполнить команду cat /dev/urandom саму по себе и вы увидите как по экрану "поползут крякозаблики" (нажмите Ctrl+C для остановки). Командой ">>" эти "крякозяблики" отправятся на вход звуковой карты. ( Услышите ли Вы звук зависит от конфигурации системы.)
Строка 41: Строка 42:
|colspan="9"|'''Назначение''':Проверить md5-хеши всех пакетов в каталоге (для который есть файл с хешем)
|colspan="9"|'''Назначение''':Проверить md5-хеши всех пакетов в каталоге (для который есть файл с хешем)
|-
|-
|}
==Золотое правило==
Существует не менее двух способов сделать это. Следующие команды выполняют одну и ту же операцию:
{| class="tiles" style="text-align:center"
|colspan="9"|<center><big> for FILE in *.tar.gz;do tar -xzf $FILE;done</center></big>
|}
{| class="tiles" style="text-align:center"
|colspan="9"|<center><big> ls -f `pwd` | xargs tar -xzf '{}'</center></big>
|-
{| class="tiles" style="text-align:center"
|colspan="9"|<center><big> for FILE in *.tar.gz;do unzip $FILE | tar -xf -;done</center></big>
|}
|}
==Фильтр==
==Фильтр==

Версия от 23:29, 27 февраля 2010

Говорите с компьютером на понятном ему языке[1]!
Эта статья — часть материалов: кафедры Программирование

Цель данного курса - быстро и безболезненно научиться основам использования семейства командных оболочен *SH, созданных в рамках проекта GNU. Метод - сравнительный[2]
Рекомендуется при освоении курса запускать команды в терминале вашего компьютера (Не запускайте их с правами суперпользователя).

Перенаправления

Пренаправление потоков - мощный инструмент, который позволяет организовывать взаимодействие разных программ. Это - важнейший элемент философии UNIX. Приведённый ниже пример сотоит из двух частей - командо до перенаправления (">>") и после. Попробуйте выполнить команду cat /dev/urandom саму по себе и вы увидите как по экрану "поползут крякозаблики" (нажмите Ctrl+C для остановки). Командой ">>" эти "крякозяблики" отправятся на вход звуковой карты. ( Услышите ли Вы звук зависит от конфигурации системы.)

cat /dev/urandom >> /dev/dsp
cat /dev/urandom ">>" /dev/dsp
вывести содержимое
файла в стандартный
вывод
генератор
псевдослучайных
символов
перенаправить вывод
в файл
файл звуковой
карты
Назначение:Быстро проверить работоспособность звуковой карты

Здесь используется "конвейер" - символ ("|"). Он перенаправляет стандартный вывод одной программы на стандартный ввод другой программы.

man useradd | grep -i -- -e
man useradd "конвейер" grep -i -- -e
вызвать справку для программы useradd перенаправить вывод
на ввод фильтра
фильтр не учитывать
регистр
конец
списка опций
что ищем
Назначение:Быстро проверить назначение опции


for FILE in *.md5;do md5sum -c $FILE;done
for FILE "in " *.md5 do md5sum -c $FILE; done
Управляющий
элемент
Помещаем имя
в переменную
Управляющий
элемент
маска
файла
Управляющий
элемент
программа для работы
с md5-хешами
опция
проверки
подставляем имя
файла
Управляющий
элемент
Назначение:Проверить md5-хеши всех пакетов в каталоге (для который есть файл с хешем)

Золотое правило

Существует не менее двух способов сделать это. Следующие команды выполняют одну и ту же операцию:

for FILE in *.tar.gz;do tar -xzf $FILE;done
ls -f `pwd` | xargs tar -xzf '{}'
for FILE in *.tar.gz;do unzip $FILE | tar -xf -;done

Фильтр

Одна из полезнейших программ. Вместе с механизмом перенаправления позволяет очень легко осуществлять нетривиальную обработку информации. Сравните два примера.

for FILE in *.md5;do md5sum -c $FILE;done
for FILE in *.md5;do md5sum -c $FILE;done | grep -v OK

grep, как мы уже знаем, - это фильтр. Опция -v инвертирует условие поиска (шаблон), "OK" - наш шаблон. Что выведет на экран вторая команда?

Задания для отработки материала

Примечания

  1. Под управлением UNIX-подобных ОС
  2. орисс, предупреждаю сразу. Он используется при демонстрации особенностей грамматики языка в учебниках, но я не уверен, признаёт ли его педагогика