
|
|
Главная \ Методичні вказівки \ Операционные системы
Операционные системы« Назад
Операционные системы 05.07.2016 06:39
Операционные системы
Лабораторная работа №2
«Список содержимого домашней директории»
"Файлы, начинающиеся с буквы f:" [список таких файлов] "Файлы, начинающиеся на букву h:" [список таких файлов]
Справочная информация
После регистрации в системе открывается терминальное окно, начинается сеанс и пользователю выводится приглашение. Обычно пользовательское приглашение имеет вид $ _ или [<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 ФАЙЛ – Копирует стандартный ввод в каждый ФАЙЛ, а также в стандартный вывод.
2) Ввод и вывод
Любая программа – это автомат, предназначенный для обработки данных: получая на входе одну информацию, они в результате работы выдают другую, хотя входящая и/или выходящая информация может быть и нулевой, т.е. попросту отсутствовать. Те данные, которые передаются программе для обработки – это ее ввод, то, что она выдает в результате работы – вывод. Организация ввода и вывода для каждой программы – это задача ОС. Каждый процесс Unix получает при старте три«файла», открытых для него системой. Стандартный вывод (standard output, STDOUT) – это поток данных (с дескриптором 1), открываемый системой для каждого процесса в момент его запуска и предназначенный для данных, выводимых процессом. Стандартный ввод (standard input, STDIN) – это поток данных (с дескриптором 0), открываемый системой для каждого процесса в момент его запуска и предназначенный для ввода данных. Стандартный вывод ошибок (standard error, STDERR) – это поток данных (с дескриптором 2), открываемый системой для каждого процесса в момент его запуска и предназначенный для диагностических сообщений, выводимых процессом.
Перенаправление ввода/вывода В Unix стандартный ввод осуществляется с клавиатуры, стандартный вывод направлен на терминал, на него же направлен и стандартный вывод ошибок. Вместо этого можно путем переназначения записать выходную информацию любой команды в файл, ввод команде передать также из файла, и ошибки также можно записать в файл. Для этого существуют специальные операторы перенаправления ввода и вывода:
Примеры:
Перенаправление вывода ошибок Использование стандартного вывода ошибок наряду со стандартным выводом позволяет отделить собственно результат работы программы от разнообразной сопровождающей информации, например, направив их в разные файлы. Стандартный вывод ошибок может быть перенаправлен так же, как и стандартный ввод/вывод, для этого используется комбинация символов «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, которые могут показаться громоздкими и неудобными, но оказываются очень полезными и эффективными при обработке большого количества информации, как мы увидим позже при рассмотрении фильтров.
3) Специальные символы
` ` – подстановка результатов команды (обратные кавычки). Сначала выполняется команда в обратных кавычках, затем результат её работы подставляются вместо выражения с кавычками: echo `date`
~ – обозначает домашний каталог текущего пользователя cd ~ – переход в домашний каталог текущего пользователя
Шаблоны подстановки Используя специальные символы, можно формировать шаблоны имен файлов
Примеры:
Если в имя файла должен входить какой-либо спецсимвол, то при указании шаблона этот спецсимвол необходимо предварять с помощью обратного слэша («\»), или экранировать, например:
При использовании диапазонов символов следует учитывать, что они могут зависеть от выбранных настроек локализации. Например, диапазон [b-e] означает символы от b до е включительно. В английском языке, где сортировка букв идет по порядку (ABC…XYZabc…xyz), указанному набору соответствует набор символов b, c, d, e. Согласно правилам русского языка, сортировка тех же символов идет в другом порядке (аАбБвВ…эЭюЮяЯaAbBcC…xXyYzZ) и тому же диапазону соответствуют символы b, B, c, C, d, D, е. Для решения таких проблем имеются объявления некоторых классов и категорий символов:
КомментарииКомментариев пока нет Пожалуйста, авторизуйтесь, чтобы оставить комментарий. |