Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемarmhost.weebly.com
1 Linux: Потоки ввода/вывода: стандартный ввод, стандартный вывод и стандартный вывод ошибок. Для перенаправления стандартного ввода можно использовать символ или >> (с добавлением), для потока ошибок – 2> program > file.log Конвейер команд: program1 | program2 | program3… Фоновый режим: program &
2 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
3 Linux Подсчет Стандартная утилита для подсчета строк, слов и символов - wc (от англ. "word count" - "подсчет слов") – wc – c (bytes count) – wc –l (lines count) – wc –w(words count) Пример (посчитать свои файлы) find. | wc -l
4 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
5 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
6 Linux ПОИСК В ФАЙЛЕ С ПОМОЩЬЮ КОМАНДЫ grep grep -опции шаблон_поиска имя_файла(ов) Опции команды grep (можно сочетать) Опция -i игнорирует различие верхнего и нижнего регистров. Опция -c отображает число строк, содержащих шаблон поиска. Опция -l сообщает только имена файлов содержащих шаблон. Опция -v отображает все строки НЕ соответствующие шаблону. Опция -n предваряет каждую найденную строку номером строки.
7 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
8 Синтаксис языка shell Файл начала сеанса (login - файл) Независимо от версии Shell при входе в систему UNIX ищет файл начала сеанса с предопределенным именем, чтобы выпол- нить его как командный файл; – для UNIX версии 7 это:.profile; – для C-Shell это:.login и/или.cshrc. В этот файл обычно помещают команды: – установки характеристик терминала; – оповещения типа who, date; – установки каталогов поиска команд (обычно: /bin, /usr/bin); – смена подсказки с $ на другой символ и т.д.
9 Синтаксис языка shell Процедура языка Shell Это командный файл. Два способа его вызова на выполнение: $ sh dothat (где dothat - некоторый командный файл); $ chmod 755 dothat (сделать его выполнимым, т.е. -rwxr-xr-x) $ dothat
10 Синтаксис языка shell Комментарии Строки, начинающиеся с #, трактуются как комментарии. Переменные и подстановка их значений Все переменные в языке shell - текстовые. Их имена должны начинаться с буквы и состоять из латинских букв, цифр и знака подчеркивания (_). Чтобы воспользоваться значением переменной, надо перед ней поставить символ $. Различается два класса переменных: позиционные и с именем. Позиционные переменные - это аргументы командных файлов, их именами служат цифры: $0 - имя команды, $1 - первый аргумент и т.д. Значения позиционным переменным могут быть присвоены и командой set
11 Синтаксис языка shell Пример. После вызова программы на shellе, хранящейся в файле ficofl: ficofl -d / test.for значением $0 будет ficofl, $1 - -d, $2 - /, $3 - test.for, значения остальных позиционных переменных будут пустыми строками. Еще две переменные хранят командную строку за исключением имени команды: эквивалентно $1 $2..., а $* - "$1 $2...".
12 Синтаксис языка shell Следующие переменные автоматически устанавливаются shell'ом: # - количество позиционных параметров (десятичное) - - флаги, указанные при запуске shellа или командой set ? -десятичное значение, возвращенное предыдущей синхронно выполненной командой $ - номер текущего процесса ! - номер последнего асинхронного - эквивалентно $1 $2 $3... * - эквивалентно "$1 $2 $3..." Пример: выдать номер текущего процесса: echo $$
13 Синтаксис языка shell Переменные Shell В языке Shell определение переменной содержит имя и значение: var = value. Доступ к переменной - по имени со знаком $ спереди: Пример fruit = apple (определение); echo $fruit (доступ); apple (результат echo). Таким образом, переменная - это строка. Возможна конкатенация строк: $ fruit = apple $ fruit = pine$fruit $ echo $fruit pineapple
14 Синтаксис языка shell Предопределенные переменные Shell Наиболее употребительные: HOME - "домашний" каталог пользователя; служит аргументом по умолчанию для cd; PATH - множество каталогов, в которых UNIX ищет команды; PS1 - первичная подсказка (строка) системы (по умолчанию - $). Изменение PS1 (подсказки) обычно делается в login - файле, например: PS1 = ? или PS1 = "? " (с пробелом). PS2 -дополнительная строка приглашения (по умолчанию - > ) )">
15 Синтаксис языка shell Установка переменной Shell выводом из команды Пример 1: $ now = `date` (где `` - обратные кавычки) $ echo $now Sun Feb 14 12:00:01 PST 2010 $ Пример 2: (получение значения переменной из файла): $ menu = `cat food` $ echo $menu apples cheddar chardonnay (символы возврата каретки за- меняются на пробелы).
16 Синтаксис языка shell Управляющие конструкции Команда - это либо простая команда, либо одна из управляющих конструкций. Кодом завершения команды является код завершения ее последней простой команды. Условный оператор. if then [ elif then ]... [ else ] fi
17 Синтаксис языка shell if test $# -eq 0 then echo "You must give a parameters" exit 1 else cat filename fi Здесь test и exit - команды проверки и выхода.
18 Синтаксис языка shell Команда "test" Не является частью Shell, но применяется внутри Shell- процедур. Имеется три типа проверок: – оценка числовых значений; – оценка типа файла; – оценка строк. Для каждого типа свои примитивы (операции op). Для чисел синтаксис такой: N op M, где N, M - числа или числовые переменные; op принимает значения: -eq, -ne, gt, -lt, -ge, -le
19 Синтаксис языка shell Команда "test " Для файла синтаксис такой: op filename, где op принимает значения: -s (файл существует и не пуст); -f (файл, а не каталог); -d (файл-директория (каталог); -w (файл для записи); -r (файл для чтения).
20 Синтаксис языка shell Команда "test " Для строк синтаксис такой: S op R, где S, R - строки или строковые переменные или op1 S op принимает значения: – = (эквивалентность); – != (не эквивалентность); op1 принимает значения: – -z (строка нулевой длины); – -n (не нулевая длина строки). Наконец, несколько проверок разных типов могут быть объ- единены логическими операциями -a (AND) и -o (OR).
21 Синтаксис языка shell Оператор цикла while Синтаксис: while do done Если "команда" выполняется успешно, то выполнить "команды", завершаемые ключевым словом done.
&2 exit fi while test $# -gt 0 do if test -s $1 then sort (процедуры) else echo "no file $1" > &2 fi shift (* перенумеровать аргументы *) done команда shift сдвигает имена" title="Синтаксис языка 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 сдвигает имена" class="link_thumb"> 22 Синтаксис языка 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 сдвигает имена на остальные аргументы &2 exit fi while test $# -gt 0 do if test -s $1 then sort (процедуры) else echo "no file $1" > &2 fi shift (* перенумеровать аргументы *) done команда shift сдвигает имена"> &2 exit fi while test $# -gt 0 do if test -s $1 then sort (процедуры) else echo "no file $1" > &2 fi shift (* перенумеровать аргументы *) done команда shift сдвигает имена на остальные аргументы"> &2 exit fi while test $# -gt 0 do if test -s $1 then sort (процедуры) else echo "no file $1" > &2 fi shift (* перенумеровать аргументы *) done команда shift сдвигает имена" title="Синтаксис языка 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 сдвигает имена">
23 Синтаксис языка shell Оператор цикла until Инвертирует условие повторения по сравнению с while Синтаксис: until do done Пока "команда" не выполнится успешно, выполнять команды, завершаемые словом done.
24 Синтаксис языка 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 &2 exit fi until test S# -eq 0 do if test -s $1 then sort (процедура) else echo "no file $1" > &2 fi shift (сдвиг аргументов) done">
25 Синтаксис языка shell Оператор выбора case Синтаксис: case in string1) ;; string2) ;; string3)... и т.д.... esac
26 Синтаксис языка 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.
27 Синтаксис языка shell Выполнение арифметических операций: expr Команда expr вычисляет значение выражения, поданного в качестве аргумента и посылает результат на стандартный вывод. Наиболее интересным применением является выполнение операций над переменными языка Shell. Пример суммирования 3 чисел: $ cat sum3 expr $1 + $2 + $3 $ chmod 755 sum3 $ sum $
28 Синтаксис языка shell Пример непосредственного использования команды: $ expr $ В expr можно применять следующие арифметические операторы: +, -, *, /, % (остаток). Все операнды и операции должны быть разделены пробелами. Заметим, что знак умножения следует заключать в кавычки (одинарные или двойные), например: '*', так как символ * имеет в Shell специальный смысл.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.