Linux: Потоки ввода/вывода: стандартный ввод, стандартный вывод и стандартный вывод ошибок. Для перенаправления стандартного ввода можно использовать символ.

Презентация:



Advertisements
Похожие презентации
Сценарии shell и make-файлы.
Advertisements

Переменные и операторы УРОК 2. Переменные ПЕРЕМЕННАЯ – ?... контейнер для хранения данных. Переменная имеет имя – это….? последовательность букв, цифр.
1.Открыть новое окно редактирования для ввода программы Файл Новый. 2.Набрать текст новой программы. 3.Сохранить текст программы на диске Файл Сохранить.
Язык программирования Delphi. Алфавит языка 53 буквы латинского алфавита и символ подчеркивания Цифры от 0 до 9 23 спец.символа
Скриптовые языки на примере Perl. Языки программирования Скриптовые Программа (или ее бай-код) интерпретируется Зачастую более высокий уровень абстрагирования.
Строки в Pascal
ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ НАЧАЛА ПРОГРАММИРОВАНИЯ.
Файловый тип данных Turbo Pascal Операции для работы с файлами 11 класс.
Date: File:System_VBSc_8.1 SIMATIC HMI Siemens AG All rights reserved. SITRAIN Training for Automation and Drives Гибкость.
JavaScript Регулярные выражения Введение Создание регулярных выражений Флаги (способы поиска по шаблону) Метасимволы Специальные символы Квантификаторы.
Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
PERL.1 Основы языка. История языка 1986 – Larry Wall Истоки – sed, awk, shell, С Возможности системного администрирования и обработки файлов Practical.
Понятие строки. Операции со строковыми величинами. Стандартные процедуры и функции обработки строковых величин. Простые алгоритмы работы со строками на.
Виды алгоритмических структур: –блок-схема. –линейный алгоритм. –алгоритмическая структура «ветвление». –алгоритмическая структура «выбор». –алгоритмическая.
К. Поляков, Программирование на алгоритмическом языке Тема 1. Введение.
Символы и строки. Процедуры и функции работы со строками.
Алгоритмический язык и язык Бейсик Ученицы 11-А класса ОШ 15 Бондаренко Натальи.
Файловая переменная. Файл – совокупность данных, записанная во внешней памяти под определенным именем. Любой файл имеет три характерные особенности: уникальное.
Pascal 1 Основы языка Паскаль Информатика и ИКТ Смирнов М.В. МКО ООШ п. Климковка Белохолуницкого района Кировской области.
1 Программирование на языке Паскаль Тема 1. Введение.
Транксрипт:

Linux: Потоки ввода/вывода: стандартный ввод, стандартный вывод и стандартный вывод ошибок. Для перенаправления стандартного ввода можно использовать символ или >> (с добавлением), для потока ошибок – 2> program > file.log Конвейер команд: program1 | program2 | program3… Фоновый режим: program &

Linux cat файл1 файл2... файлN > файл_результата (конкатенация файлов в файл_результата) ls -a > новый_файл (файл, содержащий список всех файлов текущей директории) cat > новый_файл (создает новый текстовый файл с именем новый_файл и содержимым, которое пользователь введет с клавиатуры) sort < textfile ( подаст на ввод sort данные из файла ) info cat > cat.info 2> cat.stderr info cat > cat.info 2>&1 ( направить стандартный вывод ошибок туда же, куда и стандартный вывод ) info cat > cat.info 2> /dev/null cat cat.info | less

Linux Подсчет Стандартная утилита для подсчета строк, слов и символов - wc (от англ. "word count" - "подсчет слов") – wc – c (bytes count) – wc –l (lines count) – wc –w(words count) Пример (посчитать свои файлы) find. | wc -l

Linux cut - команда выборки отдельных полей из строк файла – Для выделения колонок из файла используйте формат: cut -fполе(я) формат – -d, вы можете выбрать различные разделители полей $ cat phone Shari French Yes Jo Somers No Mona Cole уes Jackie Bell yes $ cut -f2,4 phone French Somers Cole Bell

Linux $ cat race Reynolds:WINNER:est:22:45 Stultz:LOSER:est:24:12 French:TIE:est:28:16 cut -d: -f1,2 race Reynolds:WINNER Stultz:LOSER French:TIE

Linux ПОИСК В ФАЙЛЕ С ПОМОЩЬЮ КОМАНДЫ grep grep -опции шаблон_поиска имя_файла(ов) Опции команды grep (можно сочетать) Опция -i игнорирует различие верхнего и нижнего регистров. Опция -c отображает число строк, содержащих шаблон поиска. Опция -l сообщает только имена файлов содержащих шаблон. Опция -v отображает все строки НЕ соответствующие шаблону. Опция -n предваряет каждую найденную строку номером строки.

Linux $ cat parts_file C Wing Nut Wafer Supplies C /4" nut RC Electronics Z /4" nut Global House Z /5muff RC Electronics $ grep nut parts* C /4" nut RC Electronics Z /4" nut Global House $ grep -i nut parts_file C Wing Nut Wafer Supplies C /4" nut RC Electronics Z /4" nut Global House $ grep -ic nut parts1 3 $ grep -l nut par* parts1 parts2

Синтаксис языка shell Файл начала сеанса (login - файл) Независимо от версии Shell при входе в систему UNIX ищет файл начала сеанса с предопределенным именем, чтобы выпол- нить его как командный файл; – для UNIX версии 7 это:.profile; – для C-Shell это:.login и/или.cshrc. В этот файл обычно помещают команды: – установки характеристик терминала; – оповещения типа who, date; – установки каталогов поиска команд (обычно: /bin, /usr/bin); – смена подсказки с $ на другой символ и т.д.

Синтаксис языка shell Процедура языка Shell Это командный файл. Два способа его вызова на выполнение: $ sh dothat (где dothat - некоторый командный файл); $ chmod 755 dothat (сделать его выполнимым, т.е. -rwxr-xr-x) $ dothat

Синтаксис языка shell Комментарии Строки, начинающиеся с #, трактуются как комментарии. Переменные и подстановка их значений Все переменные в языке shell - текстовые. Их имена должны начинаться с буквы и состоять из латинских букв, цифр и знака подчеркивания (_). Чтобы воспользоваться значением переменной, надо перед ней поставить символ $. Различается два класса переменных: позиционные и с именем. Позиционные переменные - это аргументы командных файлов, их именами служат цифры: $0 - имя команды, $1 - первый аргумент и т.д. Значения позиционным переменным могут быть присвоены и командой set

Синтаксис языка shell Пример. После вызова программы на shellе, хранящейся в файле ficofl: ficofl -d / test.for значением $0 будет ficofl, $1 - -d, $2 - /, $3 - test.for, значения остальных позиционных переменных будут пустыми строками. Еще две переменные хранят командную строку за исключением имени команды: эквивалентно $1 $2..., а $* - "$1 $2...".

Синтаксис языка shell Следующие переменные автоматически устанавливаются shell'ом: # - количество позиционных параметров (десятичное) - - флаги, указанные при запуске shellа или командой set ? -десятичное значение, возвращенное предыдущей синхронно выполненной командой $ - номер текущего процесса ! - номер последнего асинхронного - эквивалентно $1 $2 $3... * - эквивалентно "$1 $2 $3..." Пример: выдать номер текущего процесса: echo $$

Синтаксис языка shell Переменные Shell В языке Shell определение переменной содержит имя и значение: var = value. Доступ к переменной - по имени со знаком $ спереди: Пример fruit = apple (определение); echo $fruit (доступ); apple (результат echo). Таким образом, переменная - это строка. Возможна конкатенация строк: $ fruit = apple $ fruit = pine$fruit $ echo $fruit pineapple

Синтаксис языка shell Предопределенные переменные Shell Наиболее употребительные: HOME - "домашний" каталог пользователя; служит аргументом по умолчанию для cd; PATH - множество каталогов, в которых UNIX ищет команды; PS1 - первичная подсказка (строка) системы (по умолчанию - $). Изменение PS1 (подсказки) обычно делается в login - файле, например: PS1 = ? или PS1 = "? " (с пробелом). PS2 -дополнительная строка приглашения (по умолчанию - > )

Синтаксис языка shell Установка переменной Shell выводом из команды Пример 1: $ now = `date` (где `` - обратные кавычки) $ echo $now Sun Feb 14 12:00:01 PST 2010 $ Пример 2: (получение значения переменной из файла): $ menu = `cat food` $ echo $menu apples cheddar chardonnay (символы возврата каретки за- меняются на пробелы).

Синтаксис языка shell Управляющие конструкции Команда - это либо простая команда, либо одна из управляющих конструкций. Кодом завершения команды является код завершения ее последней простой команды. Условный оператор. if then [ elif then ]... [ else ] fi

Синтаксис языка shell if test $# -eq 0 then echo "You must give a parameters" exit 1 else cat filename fi Здесь test и exit - команды проверки и выхода.

Синтаксис языка shell Команда "test" Не является частью Shell, но применяется внутри Shell- процедур. Имеется три типа проверок: – оценка числовых значений; – оценка типа файла; – оценка строк. Для каждого типа свои примитивы (операции op). Для чисел синтаксис такой: N op M, где N, M - числа или числовые переменные; op принимает значения: -eq, -ne, gt, -lt, -ge, -le

Синтаксис языка shell Команда "test " Для файла синтаксис такой: op filename, где op принимает значения: -s (файл существует и не пуст); -f (файл, а не каталог); -d (файл-директория (каталог); -w (файл для записи); -r (файл для чтения).

Синтаксис языка shell Команда "test " Для строк синтаксис такой: S op R, где S, R - строки или строковые переменные или op1 S op принимает значения: – = (эквивалентность); – != (не эквивалентность); op1 принимает значения: – -z (строка нулевой длины); – -n (не нулевая длина строки). Наконец, несколько проверок разных типов могут быть объ- единены логическими операциями -a (AND) и -o (OR).

Синтаксис языка shell Оператор цикла while Синтаксис: while do done Если "команда" выполняется успешно, то выполнить "команды", завершаемые ключевым словом done.

Синтаксис языка shell Пример: if test $# -eq 0 then echo "Usage: $0 file..." > &2 exit fi while test $# -gt 0 do if test -s $1 then sort (процедуры) else echo "no file $1" > &2 fi shift (* перенумеровать аргументы *) done команда shift сдвигает имена на остальные аргументы

Синтаксис языка shell Оператор цикла until Инвертирует условие повторения по сравнению с while Синтаксис: until do done Пока "команда" не выполнится успешно, выполнять команды, завершаемые словом done.

Синтаксис языка shell Пример: if test S# -eq 0 then echo "Usage $0 file..." > &2 exit fi until test S# -eq 0 do if test -s $1 then sort (процедура) else echo "no file $1" > &2 fi shift (сдвиг аргументов) done

Синтаксис языка shell Оператор выбора case Синтаксис: case in string1) ;; string2) ;; string3)... и т.д.... esac

Синтаксис языка shell Пусть процедура имеет опцию -t, которая может быть подана как первый параметр: together = no case $1 in -t) together = yes shift ;; -?) echo "$0: no option $1" exit ;; esac if test $together = yes then sort... fi где ? - метасимвол (если -?, т.е. "другая" опция, отличная от -t, то ошибка). Можно употреблять все метасимволы языка Shell, включая ?, *, [-]. Легко добавить (в примере) другие опции, просто расширяя case.

Синтаксис языка shell Выполнение арифметических операций: expr Команда expr вычисляет значение выражения, поданного в качестве аргумента и посылает результат на стандартный вывод. Наиболее интересным применением является выполнение операций над переменными языка Shell. Пример суммирования 3 чисел: $ cat sum3 expr $1 + $2 + $3 $ chmod 755 sum3 $ sum $

Синтаксис языка shell Пример непосредственного использования команды: $ expr $ В expr можно применять следующие арифметические операторы: +, -, *, /, % (остаток). Все операнды и операции должны быть разделены пробелами. Заметим, что знак умножения следует заключать в кавычки (одинарные или двойные), например: '*', так как символ * имеет в Shell специальный смысл.