Работа с командным интерпретатором Linux

  • Вид работы:
    Практическое задание
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,64 Мб
  • Опубликовано:
    2012-11-20
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Работа с командным интерпретатором Linux

Цели: получить базовые навыки взаимодействия с командным интерпретатором двух наиболее распространенных операционных систем: Windows XP и открытой - GNU/Linux.

ОСНОВЫ РАБОТЫ С КОМАНДНЫМ ИНТЕРПРЕТАТОРОМ LINUX

Загрузили Linux и вошли в систему с правами обычного пользователя. В ходе лабораторной работы используются 2 учетные записи.

/Linux, в отличие от ОС Windows, является действительно много-пользовательской средой и позволяет одновременно зарегистрироваться и рабо-тать в системе нескольким пользователям даже на одном персональном компью-тере. Подобная возможность достигается с помощью механизма виртуальных консолей (virtual console).

Произвели вход в систему со второй консоли с правами администратора. Приглашения командной строки для обычного пользо-вателя [stud@localhost~]$ и администратора [root@localhost~]#.

Определили всех пользователей зарегистрированных в системе. Провели анализ работы команды who с ключами -b и -H :

Рис.1: Информация о пользователях зарегистрированных в системе.

Команда Who используется для того, чтобы получить информацию о том, кто на текущий момент работает в системе. В таком формате команда отображает, какие пользователи, с какой консоли и когда были зарегистрированы.

Исследовали результаты работы команд whoami и who am i :

 

Рис.2. Результаты работы команд.

Исследовали работу команды last с правами обычного пользователя и администратора.

Рис.3: Работа команды Last с правами обычного пользователя.

Рис.4: Работа команды Last с правами администратора.

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

Для просмотра информации об идентификаторах пользователя используется команда id, которая имеет следующий формат: id [опции]… [имя пользователя]

Основные опции:

g: отображение только EGID;

G: отображает EGID для всех групп, в которые входит пользователь;

-u: отображение только EUID;

r: отображение действительных значений UID и GID (используется только вместе с ключами -ugG).

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

Рис.5.: с правами администратора.

Для других пользователей отображалось бы вместо значения 0 значение начинающееся с 500 или 1000 в зависимости от дистрибутива.

Рис.6: с правами пользователя.- вывести календарь.

Синтаксис: cal [[[месяц]]год].

Семантика: cal выводит на стандартный вывод календарь, используя юлианское летосчисление для дат с 1 января 1 г. по 2 сентября 1752 г. и григорианское - с 14 сентября 1752 г. по 31 декабря 9999 г. Аргументы: месяц - отображаемый месяц указывается десятичным числом с 1 (январь) по 12 (декабрь). По умолчанию - текущий месяц. Год - отображаемый год указывается десятичным числом с 1 до 9999. По умолчанию - текущий год. -вывести или установить дату и время.

Синтаксис: date [-u] [+формат].

Семантика: date выводит дату и время. Поданная с операндом в формате даты, date пытается установить время и дату. Операнд, начинающийся с + устанавливает формат вывода данных.

Ключ: -u - выполнить команду, как если бы переменная TZ (часовой пояс) была установлена в UTC0 или GMT0 (время по Гринвичу).

Аргументы: +формат - если указан формат, каждый спецификатор формата заменяется при выводе на соответствующее значение. Вывод всегда завершается символом новой строки. Переменные: TZ - часовой пояс, в котором выводится или устанавливается дата.

Рис .7: Информация о формате и основных ключах команды cal.

Установили новое значения системной даты и системного времени, а затем заменили дату и время на текущие.

Рис.8: Изменение даты и времени.

Имя текущего каталога отображается в приглашении командной строки, а полный путь до него можно узнать, набрав команду pwd.

Для перемещения между каталогами используется специальная команда cd, которая имеет следующий синтаксис: cd [путь до каталога]

Запуск команды cd без параметров возвращает пользователя в домашний каталог. В противном случае текущая директория будет изменена на заданную.

Чтобы пользователь мог выяснить данные какого типа содержит интересующий его файл используется команда file, имеющая следующий формат: file имя_файла.

Для просмотра содержимого директории используется команда ls, которая имеет следующий формат:

ls [опции] [файл|директория] [файл|директория...]

Основные опции:

-R: рекурсивный вывод содержания подкаталогов;

-а: показывать список файлов, включая скрытые (скрытыми являются файлы, начинающиеся с символа «.»);

А: показывать список файлов, исключая «.» и «..»;

l: показывать расширенную информацию о файле;

i: показывать перед каждым файлом его серийный номер (номер inode);

s: выводить размер файла (в килобайтах) для каждого файла;

t: сортировка по времени последней модификации файла;

u: сортировка по времени последнего доступа к файлу;

: вывод в одноколоночном формате. Если для команды не указан каталог или файл, ls выведет список файлов в текущем каталоге.

Структуру каталогов также можно отобразить и в виде дерева, используя команду tree.

Рис.9: Применение команд

Где: ls - показывает содержимое директории, pwd- показывает полный путь до каталога в котором мы находимся, cd - переход в домашнюю директорию(в данном случае она и есть домашняя) .

Рис .10: Отображение корневого каталога, содержимого и полного пути

Каталог - объект в файловой системе <#"577046.files/image011.gif">

Рис .11: Отображение информации домашней директории с учетом конфигурационных файлов, отображая расширенную информацию об объектах и их размере, определение типа файлов

Рис. 12: Отображение содержимого текущей директории с учѐтом конфигурационных файлов в одноколоночном формате, отображая номер inode.

.Используя встроенные средства справки изучили информацию о назначении и синтаксисе команды dircolors.

- настраивает цвета команды ls. Синтаксис: [-b] [--sh] [--bourne-shell] [-c] [--csh]

[--c-shell] [-p] [--print-database] [--help] [--version]

Описание: dircolors выводит последовательность команд, задающих палитру цветов команды ls (а также dir и т.п.). Типичное использование:`dircolors [OPTION]... [FILE]`.

Если задано имя ФАЙЛ, то dircolors читает содержимое этого файла, чтобы определить, какие цвета и для каких типов файлов использовать. В противном случае используется встроенная база данных. Формат этого файла можно узнать, используя команду `dircolors -p'.

Рис.13: Результат использования команды dircolors -p

Программа dircolors сама по себе не использует никакие конфигурационные файлы. Однако скрипт инициализации вызывает dircolors с одним из следующих файлов.

/etc/DIR_COLORS

Общесистемный файл конфигурации dircolors.

~/.dir_colors

Пользовательские файлы конфигурации dircolors.

9. В домашней директории создали дерево каталогов, приведенное на рисунке:

Рис.14: Дерево каталогов.

Рис.15: Задание дерева каталогов.

. Возможности перенаправления используют в своей работе и некоторые Linux-команды, например cat. Данная команда предназначена для конкатенации содержимого нескольких файлов в один. [student@localhost: ̃]$ cat file1 file2 … fileN > newFile

Еще одну возможность быстро создавать пустые файлы дает команда touch. Команда предназначена для изменения временных штампов (времен последнего доступа и модификации) указанного файла, но если такого файла не существует, то он будет создан.

Другим полезным свойством команды cat является возможность перенаправления вывода из устройств и псевдоустройств. В качестве примера направим вывод псевдоустройства /dev/urandom, которое генерирует случайную числовую последовательность на монитор: [student@localhost: ̃]$ cat /dev/urandom Для завершения работы команды следует нажать комбинацию клавиш Ctrl+D или Ctrl+С.

Создали в каталоге my_files файл с именем tutorial, в котором хранится копия вывода справки man для команды cat:

Рис.16

Создали в каталоге my_files файл с именем my_name, в котором записали имя, фамилию, отчество и учебную группу:

Рис.17

Используя команду cat и вывод псевдоустройства /dev/urandom, создали в каталоге random_files файл rnd размером более 150 Мб, содержащий случайный набор символов:

Рис.18

Используя команду yes, создали в каталоге arch файл text размером более 150 Мб, содержащий строку “Текстовый файл, содержащий информацию для архивирования:

Рис.19

. Для выполнения операций копирования и переноса в ОС GNU/Linux применяются соответственно команды cp и mv.

Команды имеют следующий формат:

[опции] <файл|каталог> [файл|каталог ...] <путь>

Основные опции:

R или -r: рекурсивное копирование; Ключ обязателен для копирования каталогов, даже пустых;

-i: запрос подтверждения перед перезаписью любого файла, который может быть перезаписан;

-f: параметр, обратный

i. Если он указан, то команда cp заменяет любой существующий файл без подтверждения.

-v: подробный (verbose) режим, отображает все действия, производимые командой cp.

mv [опции] <файл|каталог> [файл|каталог ...] <путь>

Основные опции: -i, -f, -v. Смысл указанных ключей тот же, что и для команды cp.

Используя команду cp, скопировали файл rnd в каталог split_files:

Рис.20

Переименовали скопированный файл rnd в файл с именем r_split:

Рис.21

. Команда split копирует файл, разбивая его на отдельные файлы заданной длины: [опции] [входной файл [префикс]]

Основные опции:

a: использовать суффикс заданной длины (по умолчанию два символа). Параметр определяет количество символов, которыми будет дополнен префикс в имени конечных файлов;

-b: задает размер конечных файлов в формате. -b <число> [суффикс], где <число> - показывает собственно размер, а [суффикс] указывает единицу изме-рения. Без суффикса - байты, k - килобайты, m - мегабайты.

Разбили файл r_split на пять приблизительно одинаковых частей. Задали имена вида: archiv0, archiv1…archiv4:

Рис.22

Скопировали все выходные файлы в каталог arch.

. Основным средством архивирования в GNU/Linux является комплекс из двух программ, использующихся в большинстве UNIX-систем - tar и gzip (или bzip2).

Программа tar (Tape ARchiver) сама по себе не сжимает данные, а лишь объединяет их в единый архивный файл с последовательным доступом. Для последующего сжатия архивного файла используется программа gzip или bzip2, которая обеспечивает более высокую степень сжатия и скорость архивирования, чем gzip.

Рассмотрим команды более подробно. tar [опции][файлы...]

-c: создания нового архива;

-x: извлечение файлов из архива

t: предоставляет список файлов в существующем архиве;

-v: вывод списка файлов в архиве;

-r: добавление файлов в конец архива; 19

u: обновление архива. В архив добавляются только те файлы, которые имеют более новые временные штампы, чем существующие в архиве;

f <file>: создает архив с именем <file>, извлекает из архива с именем <file> или получает список файлов в архиве с именем <file>. Если этот параметр отсутствует, то файлом по умолчанию будет /dev/rmt0, который является специальным файлом, связанным с устройством streamer (магнитная лента). Если вместо имени файла подставить - (минус), ввод или вывод (в зависимости от того, создается или разворачивается архив) будет ассоциирован со стандартным вводом или стандартным выводом;

z: указывает, что после создания архива он должен быть сжат программой gzip, или, что разворачиваемый архив сжат gzip;

j: указывает, что после создания архива он должен быть сжат программой bzip2, или, что разворачиваемый архив сжат bzip2.

Для сжатия архивного пакета используются команды gzip и bzip2 gzip [опции] файл

Основные опции:

-l: выдает имя файла, содержащегося в архиве, его объем и степень сжатия;

-q: отменяет вывод на экран предупреждающих сообщений;

: быстрое сжатие;

-9: наилучшая степень сжатия.

Следует учитывать, что исходные файлы после сжатия удаляются, остается только архивный файл (файлы перемещаются в архив), а при разархивации удаляется архив.[опции] файл Основные опции:

d: принудительная разархивация;

-z: принудительная архивация;

k: сохранять исходные файлы при архивации и разархивации;

q: отменяет вывод на экран предупреждающих сообщений.

В некоторых случаях сжатый файл может оказаться даже больше по размеру, чем исходный. Это происходит, например, если длина файла менее 100 байт, потому что механизм сжатия использует заголовок длиной около 50 байт. 20

Для файлов, представляющих собой случайную последовательность символов (в том числе для выходных файлов большинства файловых архиваторов) длина файла увеличивается примерно на 0,5% в сравнении с исходным файлом.

В каталоге arch создали архив с именем temp, который включает в себя файлы archiv0, archiv1…archiv4, расположенные в этом же каталоге.

Рис.23:Создание архива

Проверили объем файла temp и суммарный объем исходных файлов. Имеют одинаковый объем.

Рис.24: Объем файлов каталога.

В каталоге arch создали три копии файла temp с именами: gtemp1, gtemp2 и b2temp.

Рис.25: Текущее состояние

12. Файл

Архиватор

Размер до сжатия

Размер после сжатия

Степень компрессии

gtemp1

gzip

61740

61740

1

gtext1

gzip

234872

1480

158,6

gtemp2

gzip

61740

61740

1

gtext2

gzip

234872

684

343,3

b2temp

bzip2

61740

62004

0,995

b2text

bzip2

234872

48

4893,1


. Для создания ссылок используется команда ln. По умолчанию создаются «жесткие» ссылки, а при указании опции -s - символические. Команда ln может использовать один из следующих форматов:

[опции] … [-T] целевой_объект имя_ссылки (1-я форма)[опции] … целевой_объект (2-я форма)[опции] … целевой_объект … каталог (3-я форма) [опции] … -t каталог целевой_объект (4-я форма)

В первой форме команда ln создает ссылку на целевой_объект с указанным именем_ссылки. Вторая форма позволяет создать ссылку на целевой объект в текущем каталоге. В третьей и четвертой формах команда ln создает ссылки на целевой объект в заданном каталоге

Основные опции:

-s: создавать символьные ссылки вместо «жестких»;

v: выдавать имя каждого файла перед тем, как создавать на него ссылку;

-T: указывает имя ссылки;

-t: указывает каталог, в котором создается ссылка. При создании жестких ссылок обязательно должен существовать целе-вой объект.

Узнать номер индексного дескриптора файла и количество жестких ссылок на него можно с помощью команды ls -li

Обратите внимание, что под параметром «целевой_объект» понимается либо абсолютный путь от корневого каталога до файла (каталога), на который указывает ссылка, либо относительный путь от создаваемой ссылки до конечного объекта. Во втором случае, при перемещении ссылки в другое местоположение, она становится нерабочей, так как относительный путь становится некорректным. Если в команде задан только путь до целевого файла, то для него соз-дается ссылка в том же каталоге и с тем же именем, что и для исходного файла. В случае, когда путь до ссылки явно указан в команде, ссылка будет создана в том каталоге, на который указывает путь. При этом имя ссылки сохраняется, если последним элементом пути являлся каталог, или же меняется на указанное (в случае если последний компонент пути - имя файла).

Для символических ссылок команды tree и ls -l указывают после стрелки файл, на который данная ссылка указывает. Например: symbol_link -> /home/stud/target_file Определить путь до целевого файла, на который указывает символическая ссылка, можно также с помощью команды readlink.

Каноническое имя файла - полный путь до него, включающий название самого файла.оздание жесткой ссылки на файл text в папке links:

Ln -d ~/training/arch/links/text hard_link

Сравниваем размер и inode файлов.

Inode size name

46 text

43908 46 hard_link

Создание символьной ссылки из каталога training:-sT arch/links/my_name smb_link

Inode size name

18 text

25 hard_link

Создание символьной ссылки с ошибкой в конце. Это возможно сделать, указав неверный путь целевого объекта:-sT arch/links/my_names smb_link

Рис.26: Ошибка

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

Традиционно, в UNIX-системах используются два редактора - vi (сейчас, как правило, используется его более новая версия Vim) и Emacs. Оба эти редактора хотя и несколько сложны для освоения, но зато предоставляют значительные возможности по редактированию. Далее будут рассмотрены лишь основные приемы работы в одном из редакторов - vi.

Для запуска редактора в командной строке необходимо набрать команду vi. В качестве параметра при вызове команды можно указать имя файла (или файлов), которые необходимо открыть для редактирования. Основным отличием от привычных текстовых редакторов является наличие двух специальных режимов: режима вставки, предназначенного собственно для вставки и редактирования текста и командного режима, предназначенного для управления редактором. После запуска, vi оказывается в командном режиме. Чтобы перейти в режим вставки необходимо ввести одну из команд: a или i - для вставки текста до или после курсора соответственно; A или I - для вставки текста соответственно в конце или в начале текущей линии; o или O - для вставки текста соответственно ниже и выше текущей линии.

В режиме вставки внизу экрана будет отображаться надпись INSERT (ВСТАВКА). Для возвращения в командный режим используется клавиша Esc. Для редактирования и перемещения по тексту могут использоваться те же стандартные клавиши (BackSpace, Delete, PageUp, PageDown, клавиши курсора), что и в других текстовых редакторах.

В командном режиме для перемещения курсора можно использовать клавиши: - перемещение курсора на одну позицию влево;перемещение курсора на одну позицию вправо;- перемещение курсора на одну позицию вниз;- перемещение курсора на одну позицию вверх.

Данные команды предназначены для перемещения курсора. Их действие можно повторить заданное число раз, использую модификатор в виде числа перед командой. Например, команда 5l передвигает курсор на пять позиций вправо. Помимо этих основных команд, vi предлагает еще целый их ряд для перемещения по тексту. Приведем только основные из них:

x - удаление символа под курсором; - удаление строки.

0 -передвинуть в начало строки;

^ -передвинуть на первое слово текущей строки;

$ - передвинуть в конец строки; - передвинуть в конец файла;

G - передвинуть в начало файла;

<n>G - передвинуть на строку с номером <n>;+G -вывести номер текущей строки;-передвинуть на верхнюю строку экрана;- передвинуть на нижнюю строку экрана; - удалить символы от текущей позиции курсора и до конца строки. 24

Для сохранения результатов работы необходимо перейти в командный режим и ввести :w <имя_файла>. Для завершения работы с текстовым редактором можно использовать либо команду :q! - выйти без сохранения, либо wq - сохранить файл и выйти (к аналогичному результату приводит команда «ZZ»).

С помощью текстового редактора vi, набрали текст:

#include <stdio.h>

int main(void)

{

printf("Hello world!\n"); (0);

}

Сохранили набранный текст в файле с именем prog.c

Рис 27. Работа с текстовым редактором vi.

. С помощью компилятора gcc, создали исполняемый файл hello из исходного файла prog.c, разработанного в задании № 15 и запустите его на исполнение.

[root@localhost training]# gcc HELLO.c -o hello

[root@localhost training]# pwd

/home/user/training

[root@localhost training]# /home/user/training/training/hello*

 рис 28. Запуск файла PROG*

Для компиляции исходного файла с использованием компилятора GCC необходимо в командной строке набрать: gcc имя_файла.c

По умолчанию, если не задано имя выходного файла, компилятор создаст в том же каталоге, в котором находится исходный файл, исполняемый файл с именем a.out.

Используя опцию -o можно при компиляции задать имя выходного файла, отличное от создаваемого по умолчанию: gcc имя_исходного_файла.c -o имя_выходного_файла

Для запуска исполняемого файла необходимо указать путь до него, даже если текущий каталог запроса командной строки тот же. Это связано с тем, что по умолчанию операционная система будет искать его в каталогах /usr/bin и /usr/local/bin.

Каталоги /usr/bin и /usr/local/bin - системные каталоги размещения ис-полняемых программ. Первый из них предназначен для размещения стабильных версий программ, как правило, входящих в дистрибутив Linux, второй - для программ, устанавливаемых самим пользователем.

. Основные команды интерпретатора Windows:

Одним из основных достоинств работы с командной строкой в ОС Windows является возможность автоматизации действий путем создания пакетных файлов. Основная область применения этих файлов - автоматизация наиболее рутинных операций, таких как обработка текстовых файлов, копирование, перемещение, переименование, удаление файлов, работа с папками, архивация, создание резервных копий баз данных и т. п.

Пакетный файл является аналогом cкриптовых файлов командной строки (shell script) в Unix-подобных операционных системах. Пакетные файлы в DOS имеют расширение .bat; для других операционных систем они могут иметь другие расширения - например, .CMD в Windows NT и OS/2, или .BTM в 4DOS или подобных оболочках. Также существуют различные компиляторы пакетных файлов, превращающие пакетные файлы в исполняемые программы.

После запуска пакетного файла, программа-интерпретатор (как правило, COMMAND.COM или CMD.EXE) читает его строка за строкой и последовательно исполняет команды. Пакетные файлы могут содержать как внутренние команды, обрабатываемые непосредственно командным интерпретатором, так и обращения к внешним утилитам, существующим в виде отдельных программ, что значительно расширяет возможности пакетных файлов.

Задание: Напишите пакетный файл, который выполняет следующие действия:

 Отключает режим отображения на экране информации о работе команд.

 Создает в рабочем каталоге папку disk и подключает к ней виртуальный диск Y:\

 На диске Y:\ создает дерево каталогов, аналогичное заданию 9.

 Изменяет цветовую схему командной строки для текущего сеанса: цвет текста - синий, цвет фона - серый.

 Создает в каталоге links текстовый файл, хранящий отсортированный список всех директорий каталога training.

 Копирует полученный файл из каталога links в каталог my_files.

 Отобразит содержимое рабочего каталога в виде дерева.

 Завершение работы скрипта должно заканчиваться только после нажатия любой клавиши.

Содержание созданного пакетного файла:

@echo off

mkdir virtual_diskN: "C:/Users/Samsung/virtual_disk"virtual_disktraining\archtraining\linkstraining\my_files\random_filestraining\my_files\find_filestraining\split18training/o > links\file.doclinks\file.doc my_files

tree

Рис.29: Итог работы

Вывод

командный интерпретатор linux

Получили базовые навыки взаимодействия с командным интерпретатором открытой - GNU/Linux. Использовали дистрибутив GNU/Linux Mandriva, который по праву считающийся одним из наиболее легких для освоения начинающими пользователями. С помощью теперь изученных команд мы сможем совершать базовые действия, характерные для любой операционной системы: перемещение по каталогам, создание своих собственных папок и файлов, их удаление и т.п.

Похожие работы на - Работа с командным интерпретатором Linux

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!