Лабораторная работа 1. Изучение базовых команд Linux.¶
Основные теоретические сведения¶
Цель: Первичное знакомство с командным интерпретатором. Изучение базовых команд операционной системы Linux.
Теоретическая часть:
Среди всех элементов операционной системы Linux самым важным, является командная строка (Терминал). Оболочка во многом определяет богатые возможности и гибкость операционной системы Linux. С помощью командной строки можно выполнять действия, которые были бы немыслимы при работе с графическим пользовательским интерфейсом. Независимо от того, KDE или GNOME, оказывается, что многие действия гораздо быстрее и эффективнее выполнить, пользуясь только командной строкой. Освоение Linux стоит начинать с изучения средств командной оболочки.
Файлы и ничего кроме файлов
Все, с чем Вы встретитесь в операционной системе Linux, — это файлы. Абсолютно все! Очевидно, что текстовый документ — это файл. Изображения, аудиоданные в формате МР3 и видеофрагменты — это несомненно файлы. Каталоги — это тоже файлы, содержащие информацию о других файлах. Дисковые устройства — это большие файлы. Сетевые соединения тоже файлы. Даже исполняемый процесс — это файл. С точки зрения операционной системы Linux файл представляет собой поток битов или байтов. Система не интересуется тем, что означает каждый байт. Это забота конкретных программ, выполняющихся в операционной системе Linux. Для операционной системы Linux и документ, и сетевое соединение всего лишь файлы. Как обрабатывать текстовый документ, знает редактор, а сетевое приложение умеет работать с сетевым соединением.
В отличие от Windows и МасOS в операционной системе Linux имена файлов чувствительны к регистру символов. В частности, Вы можете встретить в одном каталоге все три файла которые приведены ниже в качестве примера:
С точки зрения файловой операционной системы Linux — это различные имена файлов. Если вы попытаетесь создать файлы с этими же именами в Windows или МасOS, то вероятнее всего попытка увенчается провалом, и система предложит Вам выбрать другое имя для файла.
Чувствительность к регистру символов также означает, что при вводе команд они должны в точности совпадать с именами файлов, поддерживающих их. Так, например, удаляя файл с помощью команды rm, нельзя вводить RM, Rm или rM. Надо также следить за написанием имен, задаваемых в качестве параметров. Если вы захотите удалить файл «SIT.txt», а укажете имя Sit.txt, вы лишитесь совсем не того файла, с которым предполагали расстаться.
Список специальных символов которые не рекомендуется использовать в названиях файлов.
Групповые операции:
Предположим, что в одном из каталогов на вашем компьютере содержатся сто файлов с изображениями и два текстовых файла. Ваша задача удалить все файлы с изображениями за исключением двух текстовых файлов. Удалять файлы по одному — это утомительное занятие. В операционных системах Linux для автоматизации данного процесса можно применять символы групповых операций. Групповые операции задаются посредством звездочки (*), знака вопроса (?) и квадратных скобок ( [ ] ).
Пример использования групповых операций:
Групповая операция с применение » * » — отмечает любое (в том числе нулевое) количество любых символов.
Групповая операция с применение » ? «. Символ » ? » — соответствует одному произвольному символу.
Групповая операция с применение » [] «. Квадратные скобки позволяют задавать один символ из набора или символ, принадлежащий определенному диапазону.
Консольные команды:
- $ pwd — определить текущий каталог.
- $ cd [имя каталога] — осуществить переход в заданный каталог.
- $ ls [имя каталога] — просмотреть список файлов и подкаталогов.
- $ mkdir [имя каталога] — создать каталог с заданным именем.
- $ cp — скопировать файл «имя файла 1» в файл «имя файла 2», например: cp first.txt copy1.txt.
- $ mv — переименовать файл «имя файла 1» в файл «имя файла 2», например: mv first.txt orig.txt.
- $ ln «имя файла» «имя ссылки» — создать жёсткую ссылку «имя ссылки» на файл «имя файла». Пример: ln orig.txt copy2.txt.
- $ ln -s «имя файла» «имя ссылки» — создать символическую ссылку «имя ссылки» на файл «имя файла». Пример: ln -s orig.txt copy2.txt.
- $ rm — удалить файл.
- $ touch — создание файла.
- $ man — получение справочной документации о выбранной команде.
Задания к лабораторной работе¶
- Откройте терминал.
- Ознакомьтесь с возможностями команды pwd c помощью команды man:
- Определите текущий каталог, в котором вы находитесь командой pwd:
- Ознакомьтесь с возможностями команды cd c помощью команды man:
- Перейдите в корневой каталог командой cd
- Ознакомьтесь с возможностями команды ls c помощью команды man:
- Просмотрите содержимое корневого каталога командой ls:
- Сделайте копию экрана для использования в отчете по лабораторной работе .
- Вернитесь в домашний каталог, используя команду cd без параметров:
- Ознакомьтесь с возможностями команды mkdir c помощью команды man:
- Создайте каталог «test», используя команду mkdir:
- Перейдите в каталог «test», используя команду cd:
- Просмотрите содержимое каталога, используя команду ls:
- Создайте каталог «test2», используя команду mkdir:
- Ознакомьтесь с возможностями команды touch c помощью команды man:
- Создайте файл «text» в каталоге «test2» используя команду touch:
- Ознакомьтесь с возможностями команды mv c помощью команды man:
- Переименуйте файл «text» в «textSIT» используя команду mv
- Ознакомьтесь с возможностями команды cp c помощью команды man:
- Скопируйте файл «textSIT» в каталог «test2» под именем «copy.txt», используя команду cp:
- Ознакомьтесь с возможностями команды ln c помощью команды man:
- Создайте жесткую ссылку «link» на файл «copy.txt» используя команду ln:
- Создайте символическую ссылку «simlink» на файл «copy.txt» используя команду ln:
- Просмотрите результаты в текущем каталоге при помощи команды ls с аргументами la:
- Сделайте копию экрана для использования в отчете по лабораторной работе .
- Удалите созданные вами файлы и ссылки в лабораторной работе используя команду rm
- Сделайте копию экрана для использования в отчете по лабораторной работе .
Вопросы к лабораторной работе¶
- Чем отличается вывод команд ls -F и ls -la?
- С помощью какой команды и как можно переместить файл в другой каталог?
- Какие действия вы совершаете, нажимая на кнопки «стрелка вверх» и «стрелка вниз»?
- Куда вы переходите, выполнив команду cd без параметров?
- Как посмотреть, какие еще параметры можно задать команде ls?
- Что такое «жесткая ссылка»?
- Что такое «символическая ссылка»?
- Как осуществить просмотр подкаталогов и их содержимого ?
- Как осуществить вывод содержимого каталога с запятыми в качестве разделителя?
- Как осуществить просмотр скрытых файлов в домашнем каталоге?
- Как осуществить создание нового каталога и необходимых подкаталогов рекурсивно?
- Как осуществить рекурсивное копирование всех файлов из одного каталога в другой?
- Как осуществить рекурсивное копирование всех файлов и подкаталогов из одного каталога в другой?
- Как рекурсивно удалить все файлы и подкаталоги в определенном каталоге?
Составьте отчет о выполнении лабораторной работы.
Включите в него копии экрана и ответы на вопросы лабораторной работы.
© Copyright 2016, Пантюхин Игорь Сергеевич, Университет ИТМО.
Источник
Лабораторная работа №1 Основы ОС Linux
ЛАБОРАТОРНАЯ РАБОТА № 1
ОСНОВНЫЕ ПРИНЦИПЫ ФУНКЦИОНИРОВАНИЯ ОПЕРАЦИОННОЙ СИСТЕМЫ LINUX
Целью работы является изучение архитектуры и принципов функционирования многопользовательской многозадачной операционной системы Linux, особенности ее использования в качестве сервера и рабочей станции.
2. Теоретическая часть
Система включает следующие основные компоненты.
Ядро. Выполняет функции управления памятью, процессорами. Осуществляет диспетчеризацию выполнения всех программ и обслуживание внешних устройств. Все действия, связанные с вводом/выводом и выполнением системных операций, выполняются с помощью системных вызовов. Системные вызовы реализуют программный интерфейс между программами и ядром. Имеется возможность динамического конфигурирования ядра.
Диспетчер процессов Init. Активизирует процессы, необходимые для нормальной работы системы и производит их начальную инициализацию. Обеспечивает завершение работы системы, организует сеансы работы пользователей, в том числе, для удаленных терминалов.
Интерпретатор команд Shell. Анализирует команды, вводимые с терминала либо из командного файла, и передает их для выполнения в ядро системы. Команды обычно имеют аргументы и параметры, которые обеспечивают модернизацию выполняемых действий. Shell является также языком программирования, на котором можно создавать командные файлы (shell-файлы). При входе в ОС пользователь получает копию интерпретатора shell в качестве родительского процесса. Далее, после ввода команды пользователем создается порожденный процесс, называемый процессом-потомком. Т.е. после запуска ОС каждый новый процесс функционирует только как процесс — потомок уже существующего процесса. В ОС Linux имеется возможность динамического порождения и управления процессами.
Shell — интерпретатор в соответствии с требованиями стандарта POSIX поддерживает графический экранный интерфейс, реализованный средствами языка программирования Tcl/Tk.
Обязательным в системе является интерпретатор Bash, полностью соответствующий стандарту POSIX. В качестве Shell может быть использована оболочка mc с интерфейсом, подобным Norton Commander.
Сетевой графический интерфейс X-сервер (X-Windows). Обеспечивает поддержку графических оболочек.
Графические оболочки KDE, Gnome. Отличительными свойствами KDE являются: минимальные требования к аппаратуре, высокая надежность, интернационализация. Базовые библиотеки KDE (qt, kde-libs) признаны одними из лучших продуктов по созданию графического интерфейса, обеспечивают простое написание программ с использованием передовых технологий. Gnome имеет развитые графические возможности, но более требователен к аппаратным средствам.
Сетевая поддержка NFS, SMB, TCP/IP. NFS — программный комплекс РС-NFS (Network File System) для выполнения сетевых функций. РС-NFS ориентирован для конкретной ОС персонального компьютера (PC) и включает драйверы для работы в сети и дополнительные утилиты. SMB — сетевая файловая система, совместимая с Windows NT. TCP/IP — протокол контроля передачи данных (Transfer Control Protocol/Internet Protocol). Сеть по протоколам TCP/IP является неотъемлемой частью ОС семейства UNIX. Поддерживаются любые сети, от локальных до Internet, с использованием только встроенных сетевых средств.
Инструментальные средства программирования. Основой средств программирования является компилятор GCC или его экспериментальные версии EGCS и PGCC для языков С и С++; модули поддержки других языков программирования (Obective C, Фортран, Паскаль, Modula-3, Ада, Java и др.); интегрированные среды и средства визуального проектирования: Kdevelop, Xwpe; средства адаптации привязки программ AUTOCONFIG, AUTOMAKE.
2.1. Регистрация пользователя в системе
Для входа пользователя с терминала в многопользовательскую операционную систему LINUX необходимо зарегистрироваться в качестве пользователя. Для этого нужно после сообщения
ввести системное имя пользователя, например, «student». Если имя задано верно, выводится запрос на ввод пароля:
Наберите пароль «student» и нажмите клавишу Enter .
Если имя или пароль указаны неверно, сообщение login повторяется. Значение пароля проверяется в системном файле password , где приводятся и другие сведения о пользователях. После правильного ответа появляется приветствие LINUX и приглашение:
Вы получили доступ к ресурсам ОС LINUX.
2.2. Выход из системы
exit — окончание сеанса пользователя.
2.3. Выполнение простых команд
Формат команд в ОС LINUX следующий:
имя команды [аргументы] [параметры] [метасимволы]
Имя команды может содержать любое допустимое имя файла; аргументы — одна или несколько букв со знаком минус (-); параметры — передаваемые значения для обработки; метасимволы интерпретируются как специальные операции. В квадратных скобках указываются необязательные части команд.
Введите команду echo , которая выдает на экран свои аргументы:
echo good morning
и нажмите клавишу Enter . На экране появится приветствие » good morning » – аргумент команды echo . Командный интерпретатор shell вызвал команду echo , реализованную в виде программы на языке СИ, и передал ей аргументы. После этого интерпретатор команд вывел знак-приглашение. Синтаксис команды echo :
echo [-n] [arg1] [arg2] [arg3].
Команда помещает в стандартный вывод свои аргументы, разделенные пробелами и завершаемые символом перевода строки. При наличии флага — n символ перевода строки исключается.
who [am i] — получение информации о работающих пользователях.
В квадратных скобках указываются аргументы команды, которые можно опустить. Ответ представляется в виде таблицы, которая содержит следующую информацию:
date — вывод на экран текущей даты и текущего времени.
cal [[месяц]год] — календарь; если календарь не помещается на одном экране, то используется команда cal год | more и клавишей пробела производится постраничный вывод информации.
man — вызов электронного справочника об указанной команде. Выход из справочника — нажатие клавиши Q.
Команда man man сообщает информацию о том, как пользоваться справочником.
tty — сообщение имени специального файла стандартного вывода, соответствующего терминалу пользователя.
cat — вывод содержимого файла на экран. Команда cat > text.1 создает новый файл с именем text.1, который можно заполнить символьными строками, вводя их с клавиатуры. Нажатие клавиши Enter создает новую строку. Завершение ввода — нажатие Ctrl — d . Команда cat text.1 > text.2 пересылает содержимое файла text.1 в файл text.2. Слияние файлов осуществляется командой cat text.1 text.2 > text.3 .
ls [-alrstu] [имя] — вывод содержимого каталога на экран. Если аргумент не указан, выдается содержимое текущего каталога.
-a — выводит список всех файлов и каталогов, в том числе и скрытых;
-l — выводит список файлов в расширенном формате, показывая тип каждого элемента, полномочия, владельца, размер и дату последней модификации;
— r — выводит список в порядке, обратном заданному;
— s — выводит размеры каждого файла;
— t — перечисляет файлы и каталоги в соответствии с датой их последней модификации;
— u — перечисляет файлы и каталоги в порядке, обратном их последней модификации.
rm — удаление файла (файлов). Команда rm text.1 text.2 text.3 удаляет файлы text.1, text.2, text.3. Другие варианты этой команды — rm text.[123] или rm text.1.
wc [имя файла] — вывод числа строк, слов и символов в файле.
clear — очистка экрана.
2.4. Группирование команд
Группы команд или сложные команды могут формироваться с помощью специальных символов (метасимволов):
? — шаблон, распространяется только на один символ;
* — шаблон, распространяется на все оставшиеся символы;
| — программный канал — стандартный вывод одного процесса является стандартным вводом другого;
> — переадресация вывода в файл;
; — если в списке команд команды отделяются друг от друга точкой с запятой, то они выполняются друг за другом;
|| — последующая команда выполняется только, если не выполнилась предыдущая команда ( код возврата 1 );
() — группирование команд в скобки;
< >— группирование команд с объединенным выводом;
[] — указание диапазона или явное перечисление ( без запятых);
>> — добавление содержимого файла в конец другого файла.
who | wc — подсчет количества работающих пользователей командой wс (word count — счет слов);
cat text.1 > text.2 — содержимое файла text.1 пересылается в файл text.2;
mail student — электронная почта передает файл file.txt всем пользователям, перечисленным в командной строке;
cat text.1,text.2 — просматриваются файлы text.1 и text.2;
cat text.1 >> text.2 — добавление файла text.1 в конец файла text.2;
cc primer.c & — трансляция СИ — программы в фоновом режиме. Имя выполняемой программы по умолчанию a.out.
cc -o primer.o primer.c — трансляция СИ-программы с образованием файла выполняемой программы с именем primer.o;
rm text.* — удаление всех файлов с именем text;
ps [al] [number] — команда для вывода информации о процессах:
-a — вывод информации обо всех активных процессах, запущенных с вашего терминала;
-l — полная информация о процессах;
number — номер процесса.
Команда ps без параметров выводит информацию только об активных процессах, запущенных с данного терминала, в том числе и фоновых. На экран выводится подробная информация обо всех активных процессах в следующей форме:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
1 S 200 210 7 0 2 20 80 30 703a 03 0:07 cc
1 R 12 419 7 11 5 20 56 20 03 0:12 ps
F — флаг процесса (1 — в оперативной памяти, 2 — системный процесс, 4 — заблокирован в ОЗУ, 20 — находится под управлением другого процесса, 10 — подвергнут свопингу);
S — состояние процесса (O — выполняется процессором , S — задержан, R — готов к выполнению, I — создается);
UID — идентификатор пользователя;
PID — идентификатор процесса;
PPID — номер родительского процесса;
C — степень загруженности процессора;
PRI — приоритет процесса, вычисляется по значению переменной NICE и чем больше число, тем меньше его приоритет;
NI — значение переменной NICE для вычисления динамического приоритета, принимает величины от 0 до 39;
ADDR — адрес процесса в памяти;
SZ — объем ОЗУ, занимаемый процессом;
WCHAN — имя события, до которого процесс задержан, для активного процесса — пробел;
TTY — номер управляющего терминала для процесса;
TIME — время выполнения процесса;
CMD — команда, которая породила процесс.
nice [-приращение приоритета] команда[аргументы] — команда изменения приоритета. Каждое запущенное задание (процесс) имеет номер приоритета в диапазоне от 0 до 39, на основе которого ядро вычисляет фактический приоритет, используемый для планирования процесса. Значение 0 представляет наивысший приоритет, а 39 — самый низший. Увеличение номера приоритета приводит к понижению приоритета, присвоенного процессу. Команда nice -10 ls -l увеличивает номер приоритета, присвоенный процессу ls -l на 10.
renice 5 1836 — команда устанавливает значение номера приоритета процесса с идентификатором 1836 равным 5. Увеличить приоритет процесса может только администратор системы.
kill [-sig] — прекращение процесса до его программного завершения. s ig — номер сигнала. Sig = -15 означает программное (нормальное) завершение процесса, номер сигнала = -9 — уничтожение процесса. По умолчанию sig= -9. Вывести себя из системы можно командой kill -9 0. Пользователь с низким приоритетом может прервать процессы, связанные только с его терминалом.
mc — вызов файлового менеджера (программы — оболочки) Midnight Commander , аналогичного Norton Commander .
sort [- dr ] — сортировка входных файлов и вывод результата на экран.
3. Порядок выполнения работы
1. Ознакомиться с теоретической частью к лабораторной работе.
2. Зарегистрироваться в системе LINUX.
3. Определить день недели, в который Вы родились.
4. Получить подробную информацию обо всех активных процессах.
5. Создать два текстовых файла (с расширением TXT) и командой САТ просмотреть их на экране.
6. Получить информацию о работающих пользователях, подсчитать их количество и запомнить в файле.
7. Объединить текстовые файлы в единый файл и посмотреть его на экране.
8. Посмотреть приоритет своего процесса и уменьшить скорость его выполнение за счет повышения номера приоритета.
Источник