Командный интерпретатор
Ознакомление с командным языком системы UNIX (командами работы с файловой системой), перенаправлением потоков ввода/вывода и программными каналами. Основы работы интерпретатора SHELL, а также управление заданиями, архивированием и сжатием файлов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 28.02.2015 |
Размер файла | 87,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Пример: ls | wc -l
Команда ls выводит на экран (стандартный поток вывода) список файлов текущего каталога, а команда wc -l считает количество строк во входном потоке (в файле, а если файл не указан - в стандартном входном потоке). Таким образом, объединение этих двух команд программным каналом позволяет посчитать количество файлов в текущем каталоге. Те же действия можно организовать так:
ls > buffer
wc -l < buffer
rm -f buffer
Итоговая таблица:
> file |
Перенаправление стандартного потока вывода в файл file |
|
>> file |
Добавление в файл file данных из стандартного потока вывода |
|
< file |
Получение стандартного потока ввода из файла file |
|
p1 | p2 |
Передача стандартного потока вывода программы p1 в поток ввода программы p2 |
|
n > file |
Переключение потока вывода из файла с дескриптором n в файл file |
|
n >> file |
Добавление записей потока вывода из файла с дескриптором n в файл file |
|
n > &m |
Слияние потоков с дескрипторами n и m |
2.10 Текстовый редактор
Запуск редактора: vi [+[n]] имя_файла
+ вывести на экран конец файла;
n вывести на экран текст файла, начиная со строки n.
Текстовый полноэкранный редактор vi работает в двух основных режимах: в режиме “ввод текста” и в режиме “команда”.
Режим “ввод текста”. В этот режим редактор переводится с помощью клавиш <a> и <i>:
<a> набор текста в текущую строку;
< i > вставка текста в текущую строку перед курсором;
<ESC> выход из режима “ввод текста” в режим “команда”.
Режим “команда”. Это - основной режим редактирования текста:
<x> уничтожение текущего символа, выделенного курсором;
<r> замена текущего символа на символ, набранный вслед за командой <r>;
<s> замена одного или нескольких символов текстом. Например: 2sTEXT - замена двух текущих символов на слово TEXT;
<o> вставить пустую строку после текущей;
[n]<dw> уничтожить текущее слово или n слов;
[n]<dd> уничтожить текущую строку или n строк.
Выход из редактора
<ESC>:wq! Выход с сохранением;
<ESC>:q! Выход без сохранения.
2.11 Архивирование и сжатие
Архивирование файлов и сжатие файлов по своей природе - разные операции. Архивирование - это операция объединения нескольких файлов (и каталогов) в один файл специального формата, который называется архивом. За счет наличия служебной информации в архиве, размер архива больше суммы размеров входящих в него файлов. Сжатие - это операция уменьшения размера файла с помощью специальных алгоритмов. В Unix архивирование и сжатие выполняется как правило разными программами.
Архивирование - tar
Команда tar предназначена для создания архивов на магнитной ленте, а также в файлах. Признак tar-архива: расширение файла ".tar" или буква "t" в расширении ".tgz". На профессиональном слэнге файл с tar-архивом часто называется tarball. Примеры работы с tar следуют ниже.
создать архив arh.tar, поместив в него файл b.txt и каталог prog со всеми его файлами и подкаталогами:
tar cvf arh.tar b.txt prog
вывести оглавление архива arh.tar:
%tar tvf arh.tar
извлечь файл prog/a.c из архива arh.tar (создается каталог prog {если его не было} и в него записывается файл a.c из архива):
%tar xvf arh.tar prog/a.c
извлечь все файлы из архива arh.tar:
%tar xvf arh.tar
добавить файл uran к архиву:
%tar uvf arh.tar uran
%tar tvf arh.tar
Сжатие - gzip, compress, zip
Наиболее широко используемым компрессором файлов под Unix является утилита gzip (обратная ей утилита - gunzip). Однако, эти утилиты необязательно входят в поставку операционной системы. Признак файла, сжатого програмой gzip - расширение ".gz" или ".tgz" (tar+gzip).
Формат команды
%gzip file
%gunzip file.gz
При сжатии (без дополнительных ключей) исходный файл удаляется, вместо него образуется сжатый файл, имя которого равно имени исходного файла плюс ".gz". При восстановлении происходит обратное: удаляется сжатый файл и создается исходный.
С ОС Unix поставляется стандартный компрессор compress (uncompress). Работа с этими утилитами аналогична работе с gzip (gunzip), но используется расширение ".Z"
Для ОС Unix также имеются программы zip и unzip, которые работают аналогично DOS-версиям, в том числе, в дополнение к сжатию, производят архивирование и распаковку архивов. Формат архивов совместим с форматом DOS pkzip и WinZip. (Для DOS/Windows также уже написаны утилиты gz и tar.)
Формат команды
zip file.zip список_файлов
gunzip file.zip
gunzip file.zip список_файлов
Для более подробной информации обо всех утилитах см. справочник man.
Справочная таблица по быстрой распаковке архивов
Вид файла |
Действия |
|
file.tar |
tar xvf file.tar |
|
file.gz |
gunzip file.gz |
|
file.tar.gz |
gunzip -c file.tar.gz | tar xvf - |
|
file.tgz |
gunzip -c file.tgz | tar xvf - |
|
file.Z |
uncompress file.Z |
|
file.taz |
gunzip -c file.taz | tar xvf - |
|
file.tar.Z |
uncompress -c file.tar.Z | tar xvf - |
|
file.zip |
unzip file.zip |
ЗАДАНИЯ НА ЛАБОРАТОРНУЮ РАБОТУ
1. Получить справку по одной из команд SHELL
2. Вывести содержимое текущей директории. Определить тип объектов, права доступа, владельца.
3. Записать содержимое домашней директории в файл brig.dat
4. Добавить в конец файла brig.dat содержимое директории /tmp
5. Создать каталог в домашней директории и скопировать в него файл brig.dat
6. Изменить права доступа к файлу, разрешив запись в него другим пользователям.
7. Вывести содержимое файла в стандартный вывод. Выполнить постраничный вывод содержимого файла.
8. Определите тип созданного файла с помощью команды file
9. Выведите первые 7 и последние 7 строк файла brig.dat
10. Найдите в файле brig.dat все строки, содержащие “dat”
11. Найдите в домашнем каталоге все объекты, которые являются директориями. Найдите все файлы в директории /tmp, имеющие в своем имени символ L
12. Выведите в файл brig3.dat содержимое директории /tmp Определите количество строк в файле. Проведите сравнение файлов brig.dat и brig3.dat. Результаты выведите на консоль.
13. Получите список всех процессов в системе, а также параметры загрузки системы (с помощью команды top)
14. Изучите список всех запущенных в вашей системе процессов. Какой процесс истратил больше всего процессорного времени? Какой процесс занимает больше всего памяти? Сколько демонов запущено в системе? Запустите два процесса (например, find и sort) в фоновом режиме (c подавлением потоков вывода, чтобы не мешали), и два (например, ps и cat) - в интерактивном.
%find / 2>/dev/null | sort >/dev/null 2>&1 &
%ps -ej | cat
15. Выпишите из листинга команды ps строки, относящиеся к четырем выше указанным процессам и к вашему шеллу. Найдите идентификаторы группы и сеанса для каждого процесса, определите лидеров групп и сеанса.
16. Запустите процесс top в фоновом режиме. Переведите процесс в интерактивный режим.
17. Отредактировать файл brig.dat с использованием редактора vi. Записать изменения в файл brig2.dat
18. Сжать файлы с помощью архиваторов tar, gzip, compress, zip и сравнить степень сжатия. Выполнить сортировку по размеру файлов.
19. Создать символическую ссылку и жесткую ссылку на файл brig.dat. Проверьте параметры файлов с помощью команды ls
20. 18. Определите свой идентификатор и группу к которой вы относитесь использую вывод переменных среды (команда set).
21. Посчитать количество пользователей в системе.
22. Отсортировать список файлов текущей директории в обратном порядке и записать его в файл.
23. Посчитать количество файлов текущего каталога, содержащих подстроку "include".
24. Посчитать, сколько раз пользователь X вошел в систему.
25. Отсортировать список текстовых файлов текущей директории в алфавитном порядке и записать его в файл.
26. Удалить из текущего каталога все файлы, содержащие подстроку "text".
27. Объединить все файлы с расширением ".txt" в один файл.
28. Посчитать, сколько процессов запущено с данного терминала.
29. Вывести на экран отсортированный в алфавитном порядке список файлов, содержащих подстроку "include".
30. Написать скрипт, удаляющий все файлы содержащие кодовую сигнатуру из указанного каталога.
Контpольные вопpосы
1. Что такое внутренние и внешние команды Shell-интерпретатора? Приведите примеры внутренних команд.
2. Какие существуют средства группирования команд? Приведите примеры использования.
3. Как осуществляется перенаправление ввода-вывода?
4. В чем сущность конвейера команд? Приведите примеры использования.
5. Как средствами Shell выполнить арифметические действия над Shell-переменной?
6. Каковы правила генерации имен файлов?
7. Как выполняется подстановка результатов выполнения команд?
8. Как интерпретировать строку cmd1 & cmd2 & ?
9. Как интерпретировать строку cmd1 && cmd2 & ?
10. Как интерпретировать строку cmd1 || cmd2 & ?
11. В каком режиме выполняется интерпретатор команд Shell?
12. Кем и в каком режиме осуществляется чтение потока символов с терминала интерпретатором Shell?
Размещено на Allbest
...Подобные документы
Изучение подсистемы ввода-вывода и файловой системы ОС семейства Windows NT. Анализ особенностей работы приложения TotalCommander и его взаимодействия с файловой системой и подсистемой ввода-вывода. Взаимодействие TotalCommander с сетевыми адаптерами.
лабораторная работа [1,1 M], добавлен 12.06.2012Иерархическая структура файловой системы Unix. Согласованная обработка массивов данных, возможность создания и удаления файлов, буферный кэш. Защита информации, трактовка периферийных устройств как файлов. Внутренняя структура файловой системы Unix.
реферат [102,2 K], добавлен 23.03.2010Создание программы для среды UNIX, проверяющей атрибут выполнения файла для текущего пользователя. Особенности прав доступа для каталогов. Командный интерпретатор shell; общий синтаксис скрипта. Установка атрибутов защиты для групп пользователей.
курсовая работа [18,8 K], добавлен 12.05.2013Файлы IO.SYS и MSDOS.SYS; командный процессор DOS. Базовая система ввода-вывода, загрузчик, диалог пользователя с DOS, команды. Недостатки языка програмирования с++. Создание и описание программы, позволяющей работать с файлами в среде DOS, ее алгоритм.
курсовая работа [24,4 K], добавлен 02.12.2009Использование дистрибутива GNU/Linux Mandriva, который по праву считается одним из наиболее легких для освоения начинающими пользователями, для взаимодействия с командным интерпретатором GNU/Linux. Информация о формате и основных ключах команды cal.
лабораторная работа [2,4 M], добавлен 28.12.2012Проектирование программного обеспечения. Схема начального формирования каталога файлов, вывода на экран каталога файлов, удаления файлов, сортировки файлов по имени, дате создания и размеру методом прямого выбора. Управление каталогом в файловой системе.
курсовая работа [804,0 K], добавлен 08.01.2014История развития ОС UNIX, ее достоинства. Управление компьютером под управлением UNIX. Интерпретация командной строки и структура файловой системы. Команды управления процессами. Средства системного администрирования и учетные записи пользователей.
презентация [78,1 K], добавлен 12.05.2014Функции и основные компоненты систем программирования. Средства создания программ. Трансляторы языков программирования. Принципы и фазы работы компилятора, трансформация языка программирования в машинный код. Механизм преобразования интерпретатора.
презентация [3,3 M], добавлен 07.02.2012Изучение основных правил проектирования операционных систем. Структура файловой системы. Компоненты, обеспечивающие способы организации, поиска и управления информацией. Краткий обзор специальных и обыкновенных файлов. Основные команды системы UNIX.
методичка [36,4 K], добавлен 02.12.2009Описание файловой системы Unix. Работа основных команд ls, cmp, comm, их ключей. Разработка программного продукта, работающего в среде Windows и представляющего собой эмулятора командного процессора операционной системы Unix. Выбор средств реализации.
курсовая работа [183,0 K], добавлен 29.04.2015Этапы загрузки Linux-системы, регистрация. Управление учетными записями пользователей. Принцип именования устройств, назначение и применение специальных файлов. Управление файлами, доступом к файловой системе, заданиями. Базовая файловая структура Linux.
методичка [1,6 M], добавлен 15.11.2014Характеристика, разновидности, архитектура процессоров. Понятие интерфейса, описание видов шин, внешних запоминающих устройств, особенности конструкции. Специфика файловой системы устройства подсистемы ввода/вывода, достоинства, недостатки, база данных.
курс лекций [747,0 K], добавлен 24.06.2009Общая организация файловой системы. Виртуальные страницы. Команды для работы с ФС. Способы организации файлов. Системные вызовы управления процессами. Алгоритм работы планировщика процессов. Мультипрограммный режим работы ОС. Структура ядра системы.
курсовая работа [645,3 K], добавлен 23.03.2015Предназначение дисковых накопителей, схема устройства жесткого диска. Критерии эффективности физической организации файлов. Схема адресации кластеров файла, используемая в стандартной на сегодняшний день для UNIX файловой системе ufs. Функции флэш-памяти.
реферат [4,0 M], добавлен 09.12.2009Компиляция программ на языке C/C++. Компиляция нескольких файлов. Библиотеки объектных файлов. Создание статической и динамической библиотеки. Функции работы. Создание динамической библиотеки для решения системы линейных уравнений.
курсовая работа [27,4 K], добавлен 07.08.2007Функции ввода с клавиатуры и вывода на экран, алгоритм вывода чисел. Генерация звуковых сигналов в ПЭВМ. Принципы работы видеосистемы: адресация и режимы работы адаптера CGA, режим работы дисплея. Таблица векторов прерываний в работе клавиатуры.
отчет по практике [700,4 K], добавлен 23.11.2010Назначение и свойства стандартных диалоговых окон для работы с файловой системой. Свойства, управляющие видом меню. Программирование чтения и записи файлов. Исключительные ситуации и диагностические сообщения. Приемы составления контекстного меню.
лекция [775,2 K], добавлен 09.12.2013Ознакомление с методами управления вводом/выводом в вычислительных системах. Принципы и этапы проектирования, а также реализация интеллектуальной системы с применением ввода-вывода управляемого прерываниями, с использованием языка программирования Си.
курсовая работа [71,8 K], добавлен 18.04.2015Классификация периферийных устройств ввода и вывода данных для обмена информацией между компьютером и внешним миром. Системы распознавания магнитных знаков, символов. Принцип работы мониторов и принтеров. Вид манипуляторов для управления курсором.
реферат [272,7 K], добавлен 01.04.2014Создание интерактивного интерпретатора для мелких вычислений стандартного "Калькулятора" Windows. Его реализация относительно несложного языка программирования, работающий в интерактивном режиме, то есть выполняющий вводимые команды с клавиатуры.
курсовая работа [287,3 K], добавлен 17.09.2008