70096

Операционные системы. Полезные команды Unix

Лабораторная работа

Информатика, кибернетика и программирование

Файлы, имена которых записаны в файле f7, скопировать в каталог dir4, при этом сообщить об ошибках текстом на экране, а так же направить это сообщение об ошибках в файл myerr. Просмотреть его содержимое.

Русский

2015-01-19

89.5 KB

3 чел.

Операционные системы

Лабораторная работа №2

  1.  Создать в домашнем каталоге три директории dir1, dir2, dir3.
  2.  В dir1 создать два файла с помощью команды touch.
  3.  В файл f1 поместить информацию о пользователях, зарегистрированных в системе, а в файл f2 – содержимое домашней директории, просмотреть содержимое f1 и f2.
  4.  Скопировать файл f1 в каталог dir2 с именем f3. Для файла f2 в каталоге dir2 создать жёсткую ссылку, а для f3 – мягкую. Получить подтверждение выполнению своих действий. Мягкую ссылку удалить, а жесткую переименовать в f4.
  5.  В dir3 создать файл f5, в котором будет объединена информация, хранящаяся в файлах f1 и f2.
  6.  Обновить содержимое файла f2, поместив туда расширенную информацию о содержимом домашнего каталога. Просмотреть на экране содержимое файла f2 постранично.
  7.  В dir3 создать файл f6, содержащий следующие сообщения:

«Список содержимого домашней директории»

  1.  Добавить к содержимому файла f6 текущую дату и содержимое файла f2. Просмотреть полученное содержимое.
  2.  В dir1 создать файл f7, в котором будет храниться список файлов текущего каталога в следующем виде:

"Файлы, начинающиеся с буквы f:"

[список таких файлов]

 "Файлы, начинающиеся на букву h:"

[список таких файлов]

  1.  Файлы, имена которых записаны в файле f7, скопировать в каталог dir4, при этом сообщить об ошибках текстом на экране, а так же направить это сообщение об ошибках в файл myerr. Просмотреть его содержимое. Повторить копирование несколько раз (при этом, в файле myerr число записей должно быть равно числу попыток копирования).
  2.  Просмотреть содержимое каталога dir4, подавив сообщение об ошибках.
  3.  Файл f1 скопировать в файл f7 таким образом, чтобы содержимое файла f1 было отображено на экране. Показать результат работы преподавателю, защитить работу и выполнить следующий пункт.
  4.  Удалить содержимое dir1 с помощью команды rmdir, удалить dir2 и dir3 рекурсивно.


Справочная информация

После регистрации в системе открывается терминальное окно, начинается сеанс и пользователю выводится приглашение. Обычно пользовательское приглашение имеет вид

$ _

или

 [<username>@<hostname> <workdir>]$ _

где username – логин пользователя, hostname – имя сервера, workdir – текущая директория, в которой находится пользователь. По умолчанию сразу же после открытия сеанса в качестве текущей директории устанавливается домашний каталог пользователя. Для определения домашнего каталога пользователя, можно воспользоваться командой

finger <username>.

Команда finger позволяет также вывести дополнительную информацию о пользователе.

Специальный символ “~” используется как синоним «домашнего каталога пользователя», например:

 ~ - домашний каталог текущего пользователя (того пользователя, чей сеанс открыт в данный момент)

~username – домашний каталог пользователя username

Пример: Пусть открыт сеанс пользователя user, домашний каталог которого: /home/user. Тогда:  ~, ~user и /home/user – одно и то же.

Работая в терминале, пользователь может вводить команды для выполнения каких-либо действий в системе. Для удобства редактирования вводимых команд Shell сохраняет в памяти все вводимые пользователем команды, переключаться между которыми можно с помощью клавиш () – вызов предыдущей (следующей) команды. Все введенные за сеанс команды сохраняются в файле ~/.bash_history по окончании сеанса. Посмотреть список всех введенных ранее команд можно с помощью команды history.

Для очистки экрана можно использовать команду clear или комбинацию клавиш Ctrl+L

При редактировании вводимых и вызванных команд становятся доступными стандартные клавиши перемещения курсора, удаления символов. При редактировании команды для быстрого перехода в конец строки можно использовать комбинацию Ctrl+E, для быстрого перехода в начало строки – комбинацию Ctrl+A. Для отмены и возврата к системному приглашению используется комбинация Ctrl+C. Эта комбинация также часто применяется для прерывания выполнения каких-либо программ.

Клавиша Tab используется для дополнения имени вводимой команды из списка расположенных в путях поиска команд.

Полезные команды Unix

man  – система помощи

help  – краткий синтаксис основных команд

locate  – поиск файлов, используя индексную базу

whereis  – поиск бинарных файлов(утилит) исходных текстов, файлов помощи

date  – выводит текущую дату и время

who  – информация о подключённых пользователях

users  – выводит список подключенных пользователей

uname  – выводит информацию об ОС

w – выводит список подключенных пользователей и что они делают в текущий момент

hostname  – выводит информацию о имени компьютера

tty   – показывает имя текущего терминала

whoami  – выводит регистрационное имя текущего пользователя (логин)

echo  ТЕКСТ – выводит ТЕКСТ на экран

  1.  Файловая система, навигация по ней

Файловая система – древообразная структура, где вершина дерева – корень файловой системы (/), а узлы – файлы и директории.

pwd  – отображает полный путь к текущей директории

cd  директория – переходит в указанную директорию

cd ..  – переход в предыдущую по дереву файловой системы директорию

ls   – отображает содержимое директории,

ls -l (маленькая английская L) – расширенная информация о содержимом каталога (помимо имени файла отображается тип файла, права доступа, имя владельца и имя группы, число ссылок, размер в байтах и дату модификации)

ls -R – рекурсивный обход всех подкаталогов

ls -а – отображает все файлы, в том числе, начинающиеся с ".";

ls -1 (единица) - вывод данных в один столбец, по одному файлу в каждой строке;

ls -color – отображает файлы разного типа разными цветами (работает не для всех версий UNIX).

mkdir  директория – создает директорию

touch  файл – обновить время доступа и модификации файла до текущего времени, если файла нет – создает пустой файл

cp  ИСТОЧНИК НАЗНАЧЕНИЕ – копирование файла(-в) ИСТОЧНИКА в папку НАЗНАЧЕНИЯ

mv  ИСТОЧНИК НАЗНАЧЕНИЕ – перемещение файла(-в) ИСТОЧНИКА в папку НАЗНАЧЕНИЯ

cat  ФАЙЛ1 .. ФАЙЛ N – сцепляет файлы и выводит на стандартный вывод

Символическая ссылка –файл особого типа, в котором содержится имя другого файла (путь к объекту файловой системы), жесткая ссылка – именованный указатель на область диска, содержащую данные файла. Файл уничтожается, когда на него не указывает ни одна жесткая ссылка.

ln  КЛЮЧ  ЦЕЛЬ  ИМЯ_ССЫЛКИ – создает жёсткую ссылку на указанный объект ЦЕЛЬ с необязательным именем ИМЯ_ССЫЛКИ. КЛЮЧ – для символической ссылки -s

more  ФАЙЛ – команда просмотра содержимого файла

less ФАЙЛ – команда просмотра содержимого файла (с возможностью перелистывания содержимого)

unlink  ФАЙЛ – удаление файла

rm  ФАЙЛ  удаление файлов (и каталогов)

-d, --directory  удаляет каталог

-r, -R, --recursive рекурсивно удаляет содержимое каталога

file  ФАЙЛ – определяет тип файла ФАЙЛ

tee  ФАЙЛ – Копирует стандартный ввод в каждый ФАЙЛ, а также в стандартный вывод.

  1.  Ввод и вывод

Любая программа – это автомат, предназначенный для обработки данных: получая на входе одну информацию, они в результате работы выдают другую, хотя входящая и/или выходящая информация может быть и нулевой, т.е. попросту отсутствовать. Те данные, которые передаются программе для обработки – это ее ввод, то, что она выдает в результате работы – вывод. Организация ввода и вывода для каждой программы – это задача ОС.

Каждый процесс Unix получает при старте три «файла», открытых для него системой.

Стандартный вывод (standard output, STDOUT) – это поток данных (с дескриптором 1), открываемый системой для каждого процесса в момент его запуска и предназначенный для данных, выводимых процессом.

Стандартный ввод (standard input, STDIN) – это поток данных (с дескриптором 0), открываемый системой для каждого процесса в момент его запуска и предназначенный для ввода данных.

Стандартный вывод ошибок (standard error, STDERR) – это поток данных (с дескриптором 2), открываемый системой для каждого процесса в момент его запуска и предназначенный для диагностических сообщений, выводимых процессом.

Перенаправление ввода/вывода

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

> файл

Перенаправление вывода. Поместить выходную информацию в файл, а не посылать ее на экран. То, что находилось в файле раньше, будет уничтожено.

>> файл

Перенаправление вывода. Дописать выходную информацию в файл следом за его содержимым.

< файл

Перенаправление ввода. Взять входную информацию из файла, а не с клавиатуры.

Примеры:

1s -l >> filelist

список файлов текущего каталога дописать в файл filelist 

cat f1 f2 f3 > f4

содержимое файлов f1, f2 и f3 поместить в файл f4

> textfile

создание файла textfile

sort < mylist.txt

сортировка файла mylist.txt (если вызвать команду sort без параметра, она будет читать строки со стандартного ввода)

Перенаправление вывода ошибок

Использование стандартного вывода ошибок наряду со стандартным выводом позволяет отделить собственно результат работы программы от разнообразной сопровождающей информации, например, направив их в разные файлы. Стандартный вывод ошибок может быть перенаправлен так же, как и стандартный ввод/вывод, для этого используется комбинация символов «2>» или «2>>» . Например, при выполнении команды

cat info 2>>cat.err 

в случае, если файл info не существует, ошибка не будет выдана на экран, а допишется в файл cat.err.

Иногда, однако, требуется объединить стандартный вывод и стандартный вывод ошибок в одном файле, а не разделять их. В командной оболочке bash для этого имеется специальная последовательность «2>&1». Это означает «направить стандартный вывод ошибок туда же, куда и стандартный вывод»:

cat info >info_file 2>>&1

В данном примере сначала указано, куда перенаправить стандартный вывод (>info_file) и только потом указано направить туда же стандартный вывод ошибок (2>>&1). Если бы было указано перенаправление потока ошибок перед перенаправлением вывода (2>&1 > info_file), в файл попал бы только стандартный вывод, а диагностические сообщения появились бы на терминале. Однако логика здесь железная: на момент выполнения операции 2>&1 стандартный вывод был связан с терминалом, значит, после ее выполнения стандартный вывод ошибок тоже будет связан с терминалом. А последующее перенаправление стандартного вывода в файл, конечно, никак не отразится на стандартном выводе ошибок. Номер в конструкции &номер – это номер открытого дескриптора. Чтобы не набирать громоздкую конструкцию > файл 2>&1 в bash используются сокращения: &> файл или, что то же самое, >& файл.

Перенаправление в никуда

Иногда заведомо известно, что какие-то данные, выведенные программой, не понадобятся. Например, предупреждения со стандартного вывода ошибок. В этом случае можно перенаправить стандартный вывод ошибок в файл устройства, специально предназначенный для уничтожения данных – /dev/null. Это устройство называется пустым или «мусорной корзиной». Все, что записывается в этот файл, будет просто  проигнорировано:

cat info >info_file 2> /dev/null

Точно таким же образом можно избавиться и от стандартного вывода, отправив его в /dev/null.

Конвейер

Нередко возникают ситуации, когда нужно обработать вывод одной программы какой-то другой программой. Пользуясь перенаправлением ввода-вывода, можно сохранить вывод одной программы в файле, а потом направить этот файл на ввод другой программе. Однако то же самое можно сделать и более эффективно: перенаправлять вывод можно не только в файл, но и непосредственно на стандартный ввод другой программе. В этом случае вместо двух команд потребуется только одна – программы передают друг другу данные «из рук в руки». В Unix такой способ передачи данных называется конвейером.

Для перенаправления стандартного вывода на стандартный ввод другой программе служит символ «|». Самый простой и наиболее распространенный случай, когда требуется использовать конвейер, возникает, если вывод программы не умещается на экране монитора и очень быстро «пролетает» перед глазами, так что человек не успевает его прочитать. В этом случае можно направить вывод в программу просмотра less, которая позволит не торопясь пролистать весь текст, вернуться к началу и т. п.:

cat employers.txt | less 

Можно последовательно обработать данные несколькими разными программами, перенаправляя вывод на ввод следующей программе и организуя сколь угодно длинный конвейер для обработки данных. В результате получаются очень длинные командные строки вида cmd1 | cmd2 | ... | cmdN, которые могут показаться громоздкими и неудобными, но оказываются очень полезными и эффективными при обработке большого количества информации, как мы увидим позже при рассмотрении фильтров.

  1.  Специальные символы

`  ` – подстановка результатов команды (обратные кавычки). Сначала выполняется команда в обратных кавычках, затем результат её работы подставляются вместо выражения с кавычками:

echo `date`

~  – обозначает домашний каталог текущего пользователя

cd ~   – переход в домашний каталог текущего пользователя

Шаблоны подстановки

Используя специальные символы, можно формировать шаблоны имен файлов

*

соответствует любой (возможно, пустой) последовательности символов

?

соответствует точно одному любому символу

[ ]

используются для группирования символов в наборы. Наборы могут задаваться:

  •  явным перечислением символов, без указания разделителей между ними, например [atz56,=] – символ соответствует либо одной из трех букв a, t и z, либо одной из цифр 5 и 6, либо одному из спецсимволов запятая и знак равенства
  •  путем указания диапазона, например [a-z]  – символ соответствует строчной букве от а до z
  •  комбинацией этих способов, например [0-9ij] – символ соответствует либо цифре, либо одной из букв i или j

!

используется для отрицания набора символов, то есть имя файла не должно содержать указанных символов

Примеры:

f*

соответствует файлам с именами, начинающимися с буквы f

*f*

соответствует файлам с именами, содержащими букву f

program.?

соответствует файлам с именами program, имеющими однобуквенные расширения

??[a-d]*

соответствует файлам с именами, в которых третьей буквой является a, b, c или d

[!A-Z]*[2468]

соответствует файлам с именами, не начинающимися с большой буквы и заканчивающимися на цифру 2, 4, 6 или 8

Если в имя файла должен входить какой-либо спецсимвол, то при указании шаблона этот спецсимвол необходимо предварять с помощью обратного слэша («\»), или экранировать, например:

[AEIOUYaeiouy]\*???

соответствует файлам с именами, начинающимися с гласной буквы, за которой следует символ *, а за ней – три произвольных символа

При использовании диапазонов символов следует учитывать, что они могут зависеть от выбранных настроек локализации. Например, диапазон [b-e] означает символы от b до е включительно. В английском языке, где сортировка букв идет по порядку (ABCXYZabcxyz), указанному набору соответствует набор символов b, c, d, e. Согласно правилам русского языка, сортировка тех же символов идет в другом порядке (аАбБвВ…эЭюЮяЯaAbBcCxXyYzZ) и тому же диапазону соответствуют символы b, B, c, C, d, D, е. Для решения таких проблем имеются объявления некоторых классов и категорий символов:

[:upper:]

Латинские буквы верхнего регистра

[:lower:]

Латинские буквы нижнего регистра

[:alpha:]

Латинские буквы верхнего и нижнего регистров

[:alnum:]

Латинские буквы верхнего и нижнего регистров, цифры

[:digit:]

Цифры

[:xdigit:]

Шестнадцатеричные цифры

[:punct:]

Знаки пунктуации

[:blank:]

Пробел и табуляция

[:space:]

Символы пропуска (пробел, табуляция, перевод каретки, перевод строки и т.п.)

[:cntrl:]

Управляющие символы (клавиша [Ctrl]+символ)

[:graph:]

Символы печати


<Student_name
>

dir1

ir2

dir3

F1

F2

F7

F3

F4

F5

F6


 

А также другие работы, которые могут Вас заинтересовать

73304. Технология работ при создании лесных культур на вырубке 1.38 MB
  Рубки ухода с заготовкой древесины. Механизация и технология лесосечных работ на рубках ухода за лесом. Тракторы для вывозки сортиментов на рубках ухода. Исследование сменной производительности Псм малогабаритных колесных тракторов при вывозке сортиментов на рубках ухода.
73305. РЕГУЛИРОВАНИЕ ИНФЛЯЦИОННЫХ ПРОЦЕССОВ ИНСТРУМЕНТАМИ ФИСКАЛЬНОЙ ПОЛИТИКИ 562 KB
  Влияние фискальной политики на инфляционные процессы: разные подходы в теории Кейнсианский подход. Анализ показателей этапов и факторов инфляции в экономике РБ. Влияние фискальной политики РБ на инфляционные процессы ВВЕДЕНИЕ Разработка комплекса мер позволяющих обуздать инфляционные процессы является одним из дискуссионных вопросов современной макроэкономической политики государства.
73307. Особенности продвижения сайта с помощью социальных сетей на примере интернет ресурса Программы двойных дипломов 7.24 MB
  Именно ввиду того, что Интернет в наше время является едва ли не ключевым источником какой-либо информации, веб-технологиям уделяется большое внимание. Каждая крупная организация сегодня для привлечения своей ключевой аудитории в большей степени использует именно Интернет и Интернет-ресурсы. Одним из таких ресурсов является сайт организации, то есть место в Интернете
73308. ОСНОВНЫЕ ЭТАПЫ СТАНОВЛЕНИЯ НАЛОГОВОЙ СИСТЕМЫ РОССИИ 190.5 KB
  Эволюция налоговой системы в РФ. Исследования становления и развития налоговой системы РФ. Сравнение налоговой системы плановой экономики СССР с переходной налоговой системой РФ.
73309. Отдельные основания и способы прекращения права собственности 342 KB
  Общие положения прекращения права собственности. Понятие прекращения права собственности. Понятие и сущность основания и способа прекращения права собственности. Значение разграничения оснований и способов прекращения права собственности.
73310. Мошенничество как преступление 134.5 KB
  Характерной чертой мошенничества выделяющей его среди других видов преступлений против собственности является факт того, что собственник (либо другой владелец имущества), будучи введенным в заблуждение, по собственной воле передаёт мошеннику имущество (право на имущество)
73311. Организация финансовых результатов в ООО СФ «Жилпромстрой» 152.5 KB
  Учет, прогнозирование и планирование финансово-хозяйственной деятельности необходимы на любой стадии производствa. Любые ресурсы имеют свои ограничения и задача руководителя добиться максимального эффектa от их использования. Хозяйственные операции сопровождаются образованием и расходованием денежных средств, соотношение доходов и расходов организации определяют его финансовый результат.
73312. ВИДИ ПРАВ, СВОБОД І ОБОВЯЗКІВ ЛЮДИНИ І ГРОМАДЯНИНА. ЇХ СИСТЕМА В КОНСТИТУЦІЇ УКРАЇНИ 189 KB
  Дослідити ґенезу прав і свобод людини і громадянина на різних історичних етапах становлення держави; визначення поняття та змісту гарантій прав і свобод людини та громадянина; конкретизація ролі та місця держави, та органів державної влади щодо гарантування прав і свобод людини та громадянина; визначення сутності теоретичних засад гарантій прав і свобод людини та громадянина; проаналізувати концептуальні проблеми механізму реалізації права людини і громадянина в Україні...