Главная страница

Лаба. Лабораторные работы (47). Лабораторная работа Основы интерфейса командной строки ос gnu linux Цель работы Приобретение практических навыков общения с операционной системой на уровне командной строки (вход и выход,


Скачать 109.84 Kb.
НазваниеЛабораторная работа Основы интерфейса командной строки ос gnu linux Цель работы Приобретение практических навыков общения с операционной системой на уровне командной строки (вход и выход,
АнкорЛаба
Дата04.11.2022
Размер109.84 Kb.
Формат файлаdocx
Имя файлаЛабораторные работы (47).docx
ТипЛабораторная работа
#770244
страница1 из 4
  1   2   3   4


Лабораторная работа № 1. Основы интерфейса командной строки ОС GNU Linux

1.1. Цель работы

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

1.2. Предварительные сведения

1.2.1. Введение в GNU Linux

Операционная система (ОС)— это комплекс взаимосвязанных программ, предназначенных для управления ресурсами компьютера и организации взаимодействия с пользователем. Сегодня наиболее известными опе­рационными системами являются ОС семейства Microsoft Windows и UNIX-подобные системы.

GNU Linux — семейство переносимых, многозадачных и многопользова­тельских операционных систем, на базе ядра Linux, включающих тот или иной набор утилит и программ проекта GNU, и, возможно, другие компо­ненты. Как и ядро Linux, системы на его основе, как правило, создаются и распространяются в соответствии с моделью разработки свободного и от­крытого программного обеспечения (Open-Source Software). Linux-системы распространяются в основном бесплатно в виде различных дистрибутивов.

Дистрибутив GNU Linux — общее определение ОС, использующих ядро Linux и набор библиотек и утилит, выпускаемых в рамках проекта GNU, а также графическую оконную подсистему X Window System. Дистрибутив готов для конечной установки на пользовательское оборудование. Кроме ядра и, собственно, операционной системы дистрибутивы обычно содержат широкий набор приложений, таких как редакторы документов и таблиц, мультимедийные проигрыватели, системы для работы с базами данных и т.д. Существуют дистрибутивы, разрабатываемые как при коммерческой под­держке (Red Hat / Fedora, SLED / OpenSUSE, Ubuntu), так и исключительно усилиями добровольцев (Debian, Slackware, Gentoo, ArchLinux).

1.2.2. Файловая структура GNU Linux: каталоги и файлы

Файловая система определяет способ организации, хранения и имено­вания данных на носителях информации в компьютерах и представляет собой иерархическую структуру в виде вложенных друг в друга каталогов (директорий), содержащих все файлы. В ОС Linux каталог, который яв­ляется «вершиной» файловой системы, называется корневым каталогом, обозначается символом / и содержит все остальные каталоги и файлы.

В большинстве Linux-систем поддерживается стандарт иерархии фай­ловой системы (Filesystem Hierarchy Standard, FHS), унифицирующий местонахождение файлов и каталогов. Это означает, что в корневом ка­талоге находятся только подкаталоги со стандартными именами и типами данных, которые могут попасть в тот или иной каталог. Так, в любой Linux- системе всегда есть каталоги /etc, /home, /usr/bin и т. п. В табл. 1.1 приведено краткое описание нескольких каталогов.
Таблица 1.1

Описание некоторых каталогов файловой системы GNU Linux

Каталог

Описание

/

Корневая директория, содержащая всю файловую иерархию

/bin

Основные системные утилиты, необходимые как в одно­пользовательском режиме, так и при обычной работе всем пользователям (например: cat, ls, cp)

/etc

Общесистемные конфигурационные файлы и файлы конфи­гурации установленных программ

/home

Содержит домашние директории пользователей, которые, в свою очередь, содержат персональные настройки и данные пользователя

/media

Точки монтирования для сменных носителей, таких как CD- ROM, DVD-ROM, flash

/root

Домашняя директория пользователя root

/tmp

Временные файлы

/usr

Вторичная иерархия для данных пользователя; содержит большинство пользовательских приложений и утилит, ис­пользуемых в многопользовательском режиме; может быть смонтирована по сети только для чтения и быть общей для нескольких машин

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

- полный или абсолютный путь — начинается от корня (/), образуется перечислением всех каталогов, разделённых прямым слешем (/), и завершается именем файла (например, полный путь к файлу addition.txt из каталога user в каталоге home, находящемся в корневом каталоге, будет иметь вид: /home/user/documents/addition.txt;

- относительный путь — так же как и полный путь, строится перечис­лением через / всех каталогов, но начинается от текущего каталога (каталога, в котором «находится» пользователь), т.е. пользователь, нахо­дясь в каталоге user, может обратиться к файлу addition.txt, указав относительный путь documents/addition.txt.

Таким образом, в Linux если имя объекта начинается с /, то системой это интерпретируется как полный путь, в любом другом случае — как относительный.

В Linux любой пользователь имеет домашний каталог, который обычно расположен в каталоге /home и, как правило, имеет имя пользователя. В домашних каталогах хранятся документы и настройки пользователя. Для обозначения домашнего каталога используется знак тильды (

). При пе­реходе из домашнего каталога знак тильды будет заменён на имя нового текущего каталога.

1.2.3. Введение в командную строку GNU Linux

Работу ОС GNU Linux можно представить в виде функционирования множества взаимосвязанных процессов. При загрузке системы сначала за­пускается ядро, которое, в свою очередь, запускает оболочку ОС (от англ. shell «оболочка»). Взаимодействие пользователя с системой Linux (работа с данными и управление работающими в системе процессами) происхо­дит в интерактивном режиме посредством командного языка. Оболочка операционной системы (или командная оболочка, интерпретатор команд) — интерпретирует (т.е. переводит на машинный язык) вводимые поль­зователем команды, запускает соответствующие программы (процессы), формирует и выводит ответные сообщения. Кроме того, на языке команд­ной оболочки можно писать небольшие программы для выполнения ряда последовательных операций с файлами и содержащимися в них данными — сценарии (скрипты).

В операционные системы Windows включён командный интерпретатор cmd.exe, в MS-DOS — command.com. В GNU Linux у пользователя есть воз­можность менять командный интерпретатор, используемый по умолчанию. Из командных оболочек GNU Linux наиболее популярны bash, csh, ksh, zsh. В качестве предустановленной командной оболочки GNU Linux ис­пользуется одна из наиболее распространённых разновидностей командной оболочки — bash (Bourne again shell).

В GNU Linux доступ пользователя к командной оболочке обеспечивается через терминал (или консоль). Запуск терминала можно осуществить через главное меню Приложения^Стандартные^Терминал (или Консоль) или нажав Ctrl+ Alt + t •

Интерфейс командной оболочки очень прост. Обычно он состоит из при­глашения командной строки (строки, оканчивающейся символом $), по которому пользователь вводит команды: iivanova@dk4n31:$

Это приглашение командной оболочки, которое несёт в себе информацию об имени пользователя (iivanova), имени компьютера (dk4n31) и текущем каталоге, в котором находится пользователь, в данном случае это домашний каталог пользователя, обозначенный как ().

Команды могут быть использованы с ключами (или опциями) — указани­ями, модифицирующими поведение команды. Ключи обычно начинаются с символа '-' или '--' и часто состоят из одной буквы. Кроме ключей после команды могут быть использованы аргументы (параметры) — названия объектов, для которых нужно выполнить команду (например, имена файлов и каталогов).

Ввод команды завершается нажатием клавиши Enter, после чего команда передаётся оболочке на исполнение. Результатом выполнения команды могут являться сообщения о ходе выполнения команды или об ошибках. Появление приглашения командной строки говорит о том, что выполнение команды завершено.

Иногда в GNU Linux имена программ и команд слишком длинные, однако bash может завершать имена при их вводе в терминале. Нажав клавишу Tab, можно завершить имя команды, программы или каталога. Например, пред­положим, что нужно использовать программу mcedit. Для этого наберите в командной строке mc, затем нажмите один раз клавишу Tab . Если ничего не происходит, то это означает, что существует несколько возможных вари­антов завершения команды. Нажав клавишу Tab ещё раз, можно получить список имён, начинающихся с mc: user@dk4n31:$ mc mc mcd mcedit mclasserase mcookie mcview

mcat mcdiff mcheck mcomp mcopy

user@dk4n31:$ mc

Более подробно о работе в операционной системе Linux см., например, в [2; 3].

1.2.4. Базовые команды bash

Первые задачи, которые приходится решать в любой системе, — работа с данными (обычно хранящимися в файлах) и управление работающими в системе программами (процессами). Для получения достаточно подробной информации по каждой из команд используйте команду man, например: user@dk4n31:$ man ls

1.2.4.1. Команда pwd: вывод имени текущего каталога

Определить каталог, в котором в данный момент находится пользователь, можно набрав команду pwd (Print Working Directory):

user@dk4n31:/usr/src$ pwd /usr/src

user@dk4n31:/usr/src$

1.2.4.2. Команда cd: смена каталога

Команда cd (Change Directory) позволяет сменить текущий каталог на другой, указав путь к нему в качестве параметра. Команда cd работает как с абсолютными, так и с относительными путями.

Предположим, что вы находитесь в своём домашнем каталоге и хотите перейти в каталог tmp, расположенный также в домашнем каталоге. Для этого достаточно ввести относительный путь: user@dk4n31:$ cd tmp user@dk4n31:/tmp$

Но если вы хотите перейти в каталог tmp, расположенный в корне систе­мы, то нужно ввести абсолютный путь к нему: user@dk4n31:$ cd /tmp user@dk4n31:/tmp$

Ещё один пример использования абсолютного пути для перехода в каталог /usr/bin:

user@dk4n31:$ cd /usr/bin user@dk4n31:/usr/bin$

Запуск команды cd без параметров обеспечивает переход в домашний каталог пользователя: user@dk4n31:/usr/bin$ cd

user@dk4n31:$

Можно использовать комбинацию cd .. для перехода на один каталог выше по иерархии, а сочетание cd - вернёт пользователя в последний посещённый им каталог.

1.2.4.3. Команда ls: вывод списка файлов

Команда ls (LiSt) выдаёт список файлов указанного каталога и имеет следующий синтаксис:

ls [опции] [файл|каталог] [файл|каталог...]

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

- a: вывод списка всех файлов, включая скрытые файлы (в Linux названия скрытых файлов начинаются с точки);

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

- h: вывод для каждого файла его размера;

- l: вывод дополнительной информации о файлах (права доступа, вла­дельцы и группы, размеры файлов и время последнего доступа);

10

Лабораторная работа № 1. Основы интерфейса командной строки ОС GNU Linux

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

- d: обработка каталогов, указанных в командной строке, так, как если бы они были обычными файлами, вместо вывода списка их файлов.

Примеры:

- команда ls -R рекурсивно выводит список содержимого текущего ката­лога;

- команда ls -is images/ .. выводит список файлов каталога images и родительского по отношению к текущему каталога, при этом для каж­дого файла указан номер inode и его размер в килобайтах;

- команда ls -l images/*.png выводит список всех файлов в каталоге images, чьи имена заканчиваются на .png, включая скрытый файл .png, если таковой существует.

1.2.4.4. Команды mkdir, touch: создание пустых каталогов и файлов

Для создания каталогов используется команда mkdir (MaKe DIRectory — создать каталог). Её синтаксис имеет вид: mkdir [опции] <каталог> [каталог...]

Команда mkdir имеет несколько опций, например, использование опции

-p позволит выполнить два действия:

1) создать родительские каталоги, если они не существуют (без этой опции mkdir выдаст ошибку об отсутствии заявленных каталогов);

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

Приведём несколько примеров.

Создать каталог image в текущем каталоге:

mkdir image

Создать каталог misc в каталоге images и каталог docs в текущем ката­логе:

mkdir -p images/misc docs

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

Например, для создания в текущем каталоге файла с именем file1 и в существующем подкаталоге images текущего каталога файла с именем file2 следует ввести команду: touch file1 images/file2

1.2.4.5. Команда rm: удаление файлов или каталогов

Команда rm (ReMove — удалить) удаляет файлы и (или) каталоги и имеет следующий синтаксис: rm [опции] <файл|каталог> [файл|каталог...]

Опции команды rm:

- r или -R: рекурсивное удаление (это обязательная опция для удаления любого каталога, пустого или содержащего файлы и (или) подкаталоги);

- i: запрос подтверждения перед удалением;

- v: вывод подробной информации при выполнении команды.

Для удаления пустых каталогов можно воспользоваться командой rmdir.

Приведём несколько примеров.

Запросив подтверждение на удаление каждого файла в текущем каталоге, удалить в подкаталоге images все файлы с именами, заканчивающимися на .jpg, а также file1: rm -i images/*.jpg file1

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

rm -R images/misc/ file*

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

1.2.4.6. Команда mv: перемещение или удаление файлов

Команда mv (MoVe — переместить) служит для перемещения файлов и каталогов и имеет следующий синтаксис: mv [опции] <файл|каталог> [файл|каталог...] <назначение>

При перемещении нескольких файлов местом назначения должен быть каталог.

Некоторые опции:

- f: принудительное выполнение операции (предупреждение не будет выводиться даже при перезаписи существующего файла);

- i: запрашивается подтверждение перед перезаписью существующего файла;

- v: подробный режим, который сообщает обо всех изменениях и дей­ствиях при выполнении команды.

Приведём несколько примеров.

Переместить все файлы, чьи имена заканчиваются на .png, из катало­га /tmp/pics/ в текущий каталог (.), запрашивая подтверждение перед перезаписью: mv -i /tmp/pics/*.png .

Переименовать файл или каталог foo в bar; если существует каталог bar, то произойдёт перемещение файла foo или всего каталога (с файлами и подкаталогами, содержащимися в нём) в каталог bar: mv foo bar

Переместить без запроса подтверждения все файлы из текущего каталога с именами, начинающимися с file, и весь каталог images в каталог trash, показывая порядок выполнения всех операций: mv -vf file* images/ trash/

1.2.4.7. Команда cp: копирование файлов и каталогов

Команда cp (CoPy — копировать) копирует файлы и каталоги и имеет следующий синтаксис:

cp [опции] <файл|каталог> [файл|каталог ...] <назначение>

Некоторые опции команды cp:

- R: рекурсивное копирование; является обязательной опцией для копи­рования каталогов;

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

- f: заменяет любые существующие файлы без запроса подтверждения;

- v: подробный режим, сообщает обо всех изменениях и действиях.

Приведём несколько примеров.

Запросить подтверждение и скопировать все файлы из каталога /image в каталог images в текущем каталоге: cp -i /image/* images/

Скопировать весь каталог images и все файлы из каталога /docs/text/ в каталог mytext:

cp -vR images/ /docs/text/* mytext/

Сделать копию файла addition в файл с именем subtraction в текущем каталоге:

cp addition subtraction

1.2.4.8. Команда cat: вывод содержимого файлов

Команда cp объединяет файлы и выводит их на стандартный вывод (обычно это экран):

$ cat /etc/hosts

#

# /etc/hosts: static lookup table for host names #

#
  1   2   3   4


написать администратору сайта