Рефераты. Практическая работа по предмету UNIX p> Проверьте результаты нашей работы, введя уже знакомые Вам команды: cd secnew; ls -а

Не удивляйтесь, что не скопировались файлы .kermrc .profile

- их имена начинаются с точки, а шаблон * не задает таких имен. (Для задания подобных имен используют шаблон .*)

3. Копирование файлов и подкаталогов.

Опция -r команды cp позволяет копировать файлы в каталоге, включая любое количество подкаталогов и входящих в них файлов.

Попробуйте скопировать все файлы и подкаталоги каталога newcat в каталог thnew. Для этого введите следующие команды cd cp -r newcat thnew

Команды cd thnew ls –Fa убедят Вас, что все получилось.

Опция -r также разрешает использовать шаблоны. Командная строка cd; mkdir fornew; cp -r * fornew позволит Вам скопировать все файлы и подкаталоги Вашего личного каталога в каталог fornew (за исключением тех, имена которых начинаются с точки). Проверку выполнят все те же команды: cd fornew ls –Fa

Если Вы употребите команду cp без -r, то использование шаблона * приведет лишь к копированию файлов текущего каталога: cd; mkdir finew cp * finew эта команда копирует все файлы Вашего личного каталога в подкаталог finew, исключая все подкаталоги. Когда cp встречает каталог, она выдает сообщение: cp: fornew: Is a directory

(fornew: это каталог). Команды cd finew ls –Fa докажут Вам, что скопированы лишь файлы.

Вы можете также скопировать и любой подкаталог cp -r fornew sixnew

Команда ls –l укажет Вам, что созданный каталог sixnew является копией каталога fornew.

2. Перемещение файлов и каталогов.

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

Если Вы хотите переместить файл, т.е. Вам нужна копия файла в другом каталоге, а старая не нужна, то используйте команду mv , здесь, очевидно, первый параметр - имя файла, который Вы перемещаете, а второй - имя существующего каталога, в который Вы перемещаете.

Выведите на экран список файлов и подкаталогов Вашего личного каталога и подкаталога secnew с помощью командной строки: cd; ls -a . secnew

Заметьте, что файл .profile существует в Вашем личном каталоге, а в подкаталоге secnew такого файла нет. Команда mv .profile secnew переместит файл .profile в каталог secnew. А команда ls -a . secnew подтвердит выполнение команды mv.

Чтобы вернуть файл .profile в Ваш личный каталог, следует воспользоваться командой mv secnew/.profile .

Увидеть результат позволит все та же команда ls -a . secnew

С помощью команды mv можно переместить и несколько файлов, но опять же лишь в существующий каталог. Давайте переместим файлы hel и vrem из подкаталога secnew в Ваш личный каталог, для чего используем команду mv secnew/hel secnew/vrem . и проверим, что файлы перемещены ls -a . secnew

Обратите внимание, что, если до перемещения файлов, в каталоге существуют файлы, имена которых совпадают с именами перемещаемых файлов, то после перемещения такие файлы будут уничтожены, и команда mv не предупредит Вас об этом.

Чтобы убедиться в вышесказанном введите следующие команды: cd secnew; echo hi>hel

Вы создали файл hel в каталоге secnew. ls . newcat; cat hel; cat newcat/hel

Вы вывели на экран списки файлов и подкаталогов каталогов secnew и newcat, а также содержимое файла hel каталога secnew и файла hel каталога newcat. mv hel newcat; cat newcat/hel

Вы переместили файл hel из каталога secnew в каталог newcat и вывели на экран содержимое файла hel каталога newcat.

2. Перемещение каталогов.

Команда mv позволяет также перемещать каталоги со всеми их файлами и подкаталогами. В этом случае вместо имени перемещаемого файла указывается имя каталога. Для перемещения подкаталога newcat в подкаталог secnew используйте команду mv newcat secnew

Чтобы увидеть результат, лучше воспользоваться следующей командой: ls -aF secnew .

3. Использование шаблонов.

Для перемещения файлов разрешается использовать шаблоны.

Попробуйте переместить все файлы подкаталога secnew в новый каталог. Сначала создайте каталог ctmv - в него Вы переместите файлы и проверьте, что каталог создан: cd; mkdir ctmv; ls -F . secnew ctmv

А затем воспользуйтесь шаблоном *: mv secnew/* ctmv

Команда ls -F secnew ctmv позволит увидеть изменения, произошедшие в каталогах secnew и ctmv.

3. Переименование файлов.
В формате MS Word 97

1. Работа с shell.

Интерпретатор shell - это наиболее важная программа для пользователей

UNIX, быть может, за исключением текстового редактора. Она исполняет запросы на запуск программ и предоставляет дополнительные возможности использования имеющихся команд и даже написания собственных. С некоторыми свойствами shell Вы уже знакомы. Одно из них способность ссылаться сразу более чем на один файл, используя для этого специальные символы - шаблоны; другое - задание списка каталогов, в которых производится поиск команд для запуска по неполному имени, третье - возможность использования нескольких команд в одной командной строке. Сейчас Вы познакомитесь и с некоторыми другими возможностями интерпретатора shell.

1. Стандартный вход и стандартный выход.

Многие команды UNIX получают информацию с так называемого стандартного входа и посылают информацию на опять же так называемый стандартный выход. (Для них часто используются сокращения "stdin" и "stdout" соответственно). shell организует дело так, что стандартным входом служит клавиатура, а стандартным выходом - экран.

Рассмотрим, к примеру, использование команды cat. В случае, когда в качестве параметров заданы имена файлов, cat читает данные из файлов, имена которых определены в командной строке и посылает эти данные прямо на stdout. Поэтому при выполнении команды cat .profile .kermrc на экран будет выведено содержимое файла .profile, а следом за ним содержимое файла .kermrc.

Но если команде cat не заданы имена файлов в качестве параметров, то она читает данные со стандартного входа

(клавиатуры) и посылает их на стандартный выход (экран). Вот пример. Введите команду cat -u

Затем напечатайте

Hello there.

На экране появится

Hello there.

Напечатайте

Bye.

Вы получите ответ:

Bye.

Как видите, каждая строка, которую Вы напечатали, немедленно выдается командой cat на экран. При вводе со стандартного входа команда считает, что ввод закончен тогда, когда Вы нажимаете клавиши CTRL-d. Эта комбинация клавиш посылает команде сигнал

EOT (End-Of-Text - конец текста). Поэтому нажмите CTRL-d (должно появиться новое приглашение на ввод $) и давайте рассмотрим другой пример.

Воспользуемся новой для Вас командой sort. Это команда сортировки. Без указания аргументов она сортирует информацию, поступающую со стандартного входа, упорядочивая строки в лексикографическом порядке, и выдает результат на стандартный выход - экран.

Попробуйте так: введите команду sort напечатайте с клавиатуры следующее (для перехода на новую строку используйте ENTER): bananas carrots apples

Нажмите CTRL-d и Вы увидите измененный список. apples bananas carrots

В конце появится новое приглашение на ввод команд $.

2. Перенаправление входа и выхода.

Теперь, предположим, что Вы хотите послать результат сортировки в файл, чтобы сохранить список планируемых покупок. shell дает возможность перенаправлять стандартный выход в файл, используя символ ">". Вот как это работает: напечатайте команду sort и после символа > укажите имя файла, в который хотите сохранить результат выполнения команды (эта процедура должна быть Вам знакома - Вы уже создавали файлы подобным образом) sort > shopping-list

Затем введите с клавиатуры список предполагаемых покупок (он попадет во входной поток команды, ведь по умолчанию входной поток - клавиатура): bananas carrots apples

Снова нажмите CTRL-d.

Как Вы можете видеть, результат работы команды sort не отображается на экране (после нажатия клавиш CTRL-d сразу появляется новое приглашение), вместо этого он сохраняется в файле shopping-list (список покупок). Давайте проверим, действительно ли это так с помощью давно знакомой Вам команды cat: cat shopping-list

Если Вы все сделали правильно, то содержимое файла shopping-list будет выглядеть следующим образом: apples bananas carrots

Другой вариант - у Вас сохранен не отсортированный список в некотором файле. Один из способов его сортировки и сохранения такой - отсортировать файл с данным именем вместо получения содержимого файла со стандартного входа и перенаправить стандартный выход в файл.

Создайте файл pokupki, с помощью команды echo и перенаправления выходного потока: echo " carrots bananas apples "> pokupki для перевода строки используйте клавишу ENTER. ENTER не будет восприниматься как сигнал завершения ввода команды до тех пор, пока Вы не закроете кавычки. В начале каждой строки будет появляться повторное приглашение на ввод ">".

После того как Вы создали файл, отсортируйте его и сохраните указанным выше способом: sort pokupki > shopping-list

С помощью команды cat проверьте выполнение введенной команды: cat shopping-list

Результат должен быть аналогичным предыдущему: apples bananas carrots

То же самое можно сделать и по-другому. Перенаправлен может быть не только стандартный выход, но также и стандартный вход. Для этого следует использовать символ " file-list уничтожит прежнее содержимое файла file-list. Убедитесь, что теперь файл file-list содержит лишь список имен файлов и подкаталогов текущего каталога в алфавитном порядке, набрав команду cat file-list

Если вместо ">" использовать символ перенаправления ">>", выходной поток будет добавлен к содержимому указанного файла (а не записан на место уже хранящейся в нем информации). ls >> pokupki
В формате MS Word 97

1. Продолжение работы с shell.

1. Простейшие циклы shell.

Типичным считается цикл по последовательности имен файлов, и оператор shell for является единственной структурой управления, которую обычно задают с терминала, а не помещают в файл для последующего выполнения. Синтаксис оператора for таков: for переменная in список_слов do команды done

Например, для вывода на экран имен файлов по одному на строке достаточно задать следующий цикл: for i in * do echo $i done

Вместо i можно применять любую переменную shell, но это обозначение традиционно. Заметьте, что обращение к переменной задается с помощью $i, однако в заголовке цикла переменная указывается как i. Значения переменной i определены шаблоном *

(для выбора всех файлов текущего каталога).

Выходной поток цикла можно перенаправить в файл, используя символ перенаправления: for i in * do echo $i done > spisok в результате будет создан файл spisok, содержащий список имен файлов текущего каталога по одному на строке. Проверьте, так ли это?

Выходной поток цикла можно направить и по конвейеру. Чтобы получить на экране отсортированный список файлов достаточно сделать следующее: for i in * do echo $i done | sort

Страницы: 1, 2, 3, 4, 5, 6, 7



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.