Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы(ОС) / Lab1 / LabOS_1.doc
Скачиваний:
70
Добавлен:
17.04.2013
Размер:
136.19 Кб
Скачать

Получение справочной информации о командах

Linux содержит описания стандартных команд, системных вызовов и стандартных библиотечных функций. Эти описания разделены на пронумерованные разделы. Наиболее важные из них:

  1. Команды пользователя

  2. Системные вызовы

  3. Стандартные библиотечные функции

  1. Системные команды и команды администрирования

Для просмотра описаний предназначена команда man (MANual - руководство). Например, для просмотра описания команды sleep следует ввести

$man sleep

или $man 1 sleep (Здесь '1' - это номер раздела с командами пользователя)

Для завершения команды man введите символ q.

Для просмотра описания библиотечной функции sleep введите

$man 3 sleep

Если неизвестно, что собой представляет sleep, введите

$whatis sleep

Эта команда покажет описания во всех разделах, найденные для sleep.

Если неизвестно точное название команды, можно попытаться найти нужную команду по ключевому слову. Для этого введите команду man с ключом -k:

$man -k ключевое_слово

Например, по команде

&man -k delay

получим список всех команд и функций, в кратком (однострочном) описании которых встречается слово delay, в т.ч., и нужную нам команду sleep.

Более подробную информацию о командах можно получить по команде

$info имя_команды

Задание 2.

2.1. Определите, чем (системным вызовом, библиотечной функцией или командой) являются sleep и kill.

2.2. Найдите по ключевому слову следующие команды и запишите в отчет их описание:

- определение текущего рабочего каталога;

- создание каталога.

2.3. Запишите в отчет краткое (однострочное) описание следующих команд: cat, clear, cmp, cp, grep, ls, mv, rm, sort, wc.

Работа с файлами и каталогами

Полное имя файла определяет файл в иерархии каталогов. Путь к файлу начинается из корневого каталога, обозначаемого символом косой черты /. Абсолютное имя состоит из списка каталогов, которые нужно пройти от корневого каталога к файлу, разделенных косой чертой, например: /home/ivanov/my.txt

В каждый момент времени у каждого процесса есть текущий рабочий каталог, в нем ищутся пути файлов, не начинающиеся с '/'. Относительное имя определяется относительно текущего рабочего каталога. Например, если текущий рабочий каталог - /home/ivanov, то имя bin/primer даст полное имя /home/ivanov/bin/primer. При входе пользователя в систему текущим каталогом по умолчанию будет "домашний" каталог (home directory) /home/имя_пользователя.

В относительном имени файла символ '.' означает "текущий каталог"; символ '..' - "родительский каталог". Так, запись ../../a/b обозначает файл b в каталоге a, являющимся "сыном дедушки" текущего каталога. Символ '~' означает "домашний каталог". Так, запись ~/b обозначает файл b в "домашнем" каталоге пользователя.

Подстановочные символы в обозначении файлов:

*

Любая последовательность символов (кроме'.')

[A-F]

Любой единичный символ, попадающий в указанный диапазон

?

Любой единичный символ (кроме'.')

[^список] или[!список]

Любой единичный символ, кроме символов из списка

[список]

Любой единичный символ из списка

[^A-F] или[!A-F]

Любой единичный символ, не попадающий в указанный диапазон

Например, [a-c]1 будет обозначать файлы a1, b1 или c1.

Определение текущего каталога.

$pwd (Print Working Directory)

Смена рабочего каталога.

$cd имя_каталога (Change Directory)

Команда cd без параметров вызывает переход в каталог, который был текущим при входе пользователя в систему.

Просмотр содержимого каталога.

$ls имя_каталога

$ls - просмотр содержимого рабочего каталога

Для получения подробной информации следует использовать команду с ключом -l. Например,

$ls -l /bin

В выходной информации, выданной по этой команде, строка для каталога начинается символом 'd', строка для файла - символом '-'.

Просмотр текстового файла и поиск в файле. (Команды more и less)

Для просмотра текстового файла введите команду

$more имя_файла

Нажатие клавиши пробел прокручивает текст на одну страницу, нажатие <Enter> - на одну строку. Чтобы выполнить поиск в тексте в направлении от начала к концу, введите косую черту и строку поиска. Текст прокрутится до первого появления искомого слова. Для продолжения поиска введите n.

Команда less - усовершенствованный вариант команды more.

Поиск файла (Команда find)

Команда find ищет файлы по имени, дате создания или модификации, владельцу, объему, типу файла. Формат команды:

$find starting_directory parameters actions

где start_directory - каталог, с которого должен начинаться поиск, поиск производится во всех подкаталогах указанного каталога;

papameters - критерии поиска. Например, для поиска файла по имени следует ввести -name имя_файла;

actions - указание, что делать с найденными файлами. Чаще всего указывается флаг -print, по которому выводится имя найденного файла с указанием пути.

Примеры. $ find / -name foo -print - найти все файлы с именем foo.

$ find /home -name 'fo*' -print

- найти все файлы в каталоге /home, начинающиеся с символов fo.

Поиск строки текста в нескольких файлах

$grep text_pattern file_list

гле text_pattern - образец для поиска;

file_list - список файлов, в которых производится поиск.

Примеры.

$grep radio *

- поиск слова radio во всех файлах рабочего каталога.

$grep "Hello word" /home/z*

- поиск фразы "Hello word" во всех файлах, начинающихся с символа z, в каталоге /home.

Копирование файлов (Команда cp)

$cp ThisFile CopyFile

- создание копии файла ThisFile в том же рабочем каталоге под именем CopyFile.

$cp -i ThisFile CopyFile

- то же, но с подтверждением записи поверх файла, если файл CopyFile уже существует.

$cp file1 file2 file3 /tmp

- копирование трех файлов file1, file2 и file3 из текущего каталога в каталог /tmp.

$cp *.txt *.doc /tmp

- копирование всех файлов с расширениями txt и doc в каталог /tmp.

$cp -R SomeDir /tmp

- копирование каталога SomeDir в каталог /tmp; в каталоге /tmp будет создан подкаталог SomeDir.

Удаление файлов и каталогов.

$rm ThisFile

- удалить файл ThisFile из текущего каталога.

$rm -i ThisFile

- то же с подтверждением удаления.

$rm *.bak

- удалить все файлы с расширением bak из текущего каталога.

$rm ThisFile *.txt

- удалить файл ThisFile и все текстовые файлы из текущего каталога.

$rm -r TempDir

  • удалить каталог TempDir из текущего каталога.

Перемещение и переименование файлов.

$mv FileOne /tmp

- переместить файл FileOne из текущего каталога в каталог /tmp.

$mv FileOne /tmp/NewFile

- то же, но с переименованием файла в NewFile.

$mv FileOne NewFile

- переименовать файл FileOne в файл NewFile в текущем каталоге.

$mv *.bak *.tmp /tmp

- переместить все файлы с расширениями bak и tmp из текущего каталога в каталог /tmp.

$mv DirOne/ /tmp

- переместить каталог DirOne в каталог /tmp. В каталоге /tmp будет создан подкаталог DirOne.

Создание каталогов

$mkdir docum

- создать подкаталог docum в текущем каталоге.

$mkdir /home/ivanov/docum

- создать подкаталог docum в каталоге /home/ivanov.

Удаление каталогов.

$rmdir /home/ivanov/docum

Задание 3. Занесите в отчет информацию о выполнении следующих пунктов.

3.1. Определите текущий рабочий каталог. Сделайте текущим каталог /bin, используя в команде cd относительное имя и символы '..' . Затем вернитесь в свой первоначальный каталог.

3.2. Зарисуйте часть дерева каталогов вашей системы (при помощи команд ls и cd).

3.3. Создайте в своем домашнем каталоге подкаталоги lab1 и temp. Скопируйте в temp любой текстовый файл. Просмотрите содержимое файла. Запишите сведения о содержимом каталога temp. Удалите скопированный файл. Удалите подкаталог temp. Сделайте текущим каталогом каталог lab1.

3.4. Подсчитайте число файлов (включая каталоги) в каталоге /bin двумя способами:

а) выход ls направьте в файл, сделав его затем входным для команды wc;

б) при помощью канала.

3.5. Запишите в файл apr.txt имена файлов каталога /bin, созданных в апреле. Воспользуйтесь командами ls и grep, соединенными при помощи канала, и вывод команды grep перенаправьте в файл apr.txt. Просмотрите файл apr.txt.

3.6. Найдите команду banner (при помощи команды find), затем выполните команду

$banner -w50 любые_символы

3.7. Проверьте действие символа & в конце команды. Что будет выведено?

3.8. Выведите в файл files.txt информацию о всех файлах системы, начинающихся с цифры 0…9 и содержащих 5 символов.

3.8. Запустите текстовый редактор pico. Создайте два текстовых файла t1 и t2 с произвольным содержимым. Запишите использованные Вами команды pico.

3.9. Команда cat - средство объединения (конкатенации) файлов; это также самый быстрый способ просмотреть файл и создать небольшой текстовый файл. Выполните и поясните в отчете результаты выполнения следующих команд:

$cat t1 $ cat [1-3]>4

$ cat t1 t2 $ cat /dev/null >empty1

$ cat t1 t2 > t3 $ > empty2

$ cat t1 t2 >> t3 $ cat>quick (Далее вводите любой текст.

Признак конца файла в UNIX: CTRL-d)

3.10. Поясните, результат выполнения следующих команд:

$ cd dd 2>>log.txt || cat log.txt;rm log.txt

Соседние файлы в папке Lab1