- •«Работа в ос unix/Linux и программирование на языке shell»
- •Интерпретатор команд (shell)
- •Структура команд unix
- •Простые команды
- •Стандартные ввод и вывод
- •Параметры
- •Составные команды
- •Специальные символы и подстановка значений
- •Переменные
- •Логические выражения и операторы управления
- •Оператор if:
- •Оператор while:
- •Оператор until:
- •Оператор case:
- •Оператор for:
- •Альтернативная форма оператора for:
- •Оператор select:
- •Оператор break:
- •Оператор continue:
- •Оператор shift:
- •Арифметические выражения
- •Работа пользователя в системе unix
- •Начало и завершение работы в системе
- •Запуск и выполнение команд
- •Фоновые процессы и управление заданиями
- •Скрипты
- •Некоторые команды
- •Справочные команды
- •Man [том]имя_команды
- •Info имя_команды
- •Help имя_встроенной_команды
- •Информационные команды
- •Ls [ключи] параметры
- •History [-c] [число]
- •Hostname [ключи]
- •Ps [ключи]
- •Uname [ключи]
- •Date [ключи] [новая_дата]
- •Cal [ключи] [месяц [год]]
- •Du [ключи] [список_имен]
- •Stat [список_имен]
- •Mv файл1 файл2илиmvсписок_файловкаталог
- •Find список_каталогов [ключи]
- •Rmdir [ключи] список_каталогов
- •Cat список_файлов
- •Команды для работы с данными
- •Echo [ключи] параметры
- •More [файл]
- •Sort [ключи] [-k от_поля [, до_поля]] [список_файлов]
- •Cut [ключи] [файлы]
- •Команды управления процессами
- •Testсписок_аргументов
- •Read [ключи] [список_переменных]
- •Getopts строка_ключей переменная [список_слов]
- •Примеры команд и скриптов
- •Примеры команд интерактивного режима
- •Создание текстового файла
- •Работа с файлами
- •Определить трех пользователей системы, чьи домашние каталоги с содержащимися в них файлами занимают больше всего дискового пространства
- •Примеры скриптов
- •Выдать имена всех файлов каталога-параметра и всех его подкаталогов, отступами показывая вложенность каталогов. Если параметр не задан, начать с текущего каталога.
- •Порядок выполнения работы
- •Примеры заданий на использование команд в интерактивном режиме
- •Список вариантов заданий на разработку командных файлов
- •Контрольные вопросы
Работа пользователя в системе unix
Начало и завершение работы в системе
Перед началом работы следует убедиться, что на компьютере загружена операционная система UNIXилиLinux. При необходимости следует перезагрузить операционную систему.
В процессе загрузки система запускает ряд системных процессов, а затем вызывает команду login, которая ждет ввода имени пользователя. После ввода имени запрашивается пароль пользователя.
Команда loginищет имя пользователя в файле/etc/passwd. Каждая строка этого файла содержит данные о пользователе, состоящие из 7 полей, разделенных двоеточиями:
имя входа пользователя (условное имя, используемое при входе в систему);
пароль пользователя (в ранних версиях UNIXон отображался в закодированном виде, в современных версиях обычно либо пароль вообще не отображается в файлеpasswd, либо вместо пароля отображается букваx, однако разделитель-двоеточие в любом случае присутствует);
UID– идентификатор пользователя (целое число);
GID– идентификатор первичной группы, в которую входит пользователь;
полное имя пользователя;
«домашний» каталог пользователя, т.е. каталог, содержащий файлы и подкаталоги, принадлежащие данному пользователю;
полное имя программы шелла, вызываемого для данного пользователя.
После ввода корректных имени и пароля выполняется ряд действий, связанных с входом в систему нового пользователя. Сначала выполняется системный командный файл, содержащий команды, общие для всех пользователей (обычно это файл /etc/profile). Выдается сообщение, помещенное администратором в файл/etc/motd. Затем выполняется командный файл входа данного пользователя. Если такой файл существует, то он должен храниться в домашнем каталоге пользователя (т.е. каталоге, полное имя которого хранится в переменнойHOME) и носить имя (для шеллаbash).bash_profile. Пользователь может включить в этот файл любые команды, которые он считает нужным выполнять при каждом входе в систему.
Вход в систему завершается выдачей первичного приглашения (согласно переменной PS1).
Если пользователь предпочитает использовать возможности оболочек, позволяющих выполнять основные действия с файлами без знания команд, то он имеет возможность запустить оболочку текстового режима mc(Midnight Commander, аналог известного вMS-DOSNorton Commander). Обычно может также быть запущена одна из графических оболочек:GNOME,KDEи т.п. Запуск оболочки не лишает пользователя возможности пользоваться также и командами.
Для завершения сеанса работы в UNIXпользователь должен в ответ на приглашение шелла нажать комбинацию клавишCtrl+Dили ввести командуlogout. При этом завершается работа шелла, запущенного при входе. Система вновь запускает командуlogin, ожидая входа нового пользователя.
В некоторых версиях системы (в частности, в Linux) имеется возможность организовать несколько виртуальных терминалов на одном рабочем месте. Если пользователь нажимает комбинацию клавишAlt+Fn(n= 2, 3, …), то на экране снова возникает приглашениеloginи пользователь может начать еще один сеанс работы, войдя в систему под тем же или под другим именем. В дальнейшем можно переключаться между сеансами поAlt+Fn(n= 1, 2, …), как если бы пользователь переходил от одного компьютера к другому.
Возможен удаленный вход в систему с использованием программ, реализующих сетевой протокол telnet. Примером такой программы являетсяPuTTY.exe. Программа запускается на компьютере, работающем под управлениемWindowsилиMS-DOS. В поле «HostName» следует указатьIP-адресUNIX-системы, с которой нужно установить связь. Этот адрес следует выяснить у администратора системы или преподавателя. В поле «ConnectionType» надо выбратьSSH, а на странице «Window/Translation» выбрать кодировкуUTF-8.
После подключения компьютер пользователя начинает работать в режиме эмуляции текстового терминала UNIX. Выдается приглашение командыlogin. Команды и данные, вводимые пользователем, передаются по сети наUNIX-сервер, выполняются там, а результаты их выполнения передаются на терминал пользователя. Работа по протоколуtelnetведется только в текстовом режиме, использование графических возможностей исключается.
Еще один вариант запуска UNIXсвязан с использованием системыVMware. Эта программная система, которая может работать как под управлениемWindows, так и под управлениемLinux, дает возможность разделить ресурсы компьютера между несколькими виртуальными машинами, на каждой из которых исполняется отдельная операционная система. При этом можно использовать как текстовый, так и графический режим работы. ВерсияVMware Playerявляется бесплатной для некоммерческого использования и обладает достаточно богатыми возможностями.
Виртуальная машина, выполняющая систему UNIXилиLinux, может работать либо в полноэкранном режиме, либо в окне программыVMware. Чтобы перейти в полноэкранный режим, следует нажать комбинациюCtrl+Alt+F1. После этого весь ввод от мыши и клавиатуры направляется виртуальной машине. Исключение составляют лишь несколько комбинаций, и среди нихCtrl+Alt+ESC, которая переводит виртуальную машину в режим окнаVMwareи одновременно направляетVMwareввод от мыши и клавиатуры. Если пользователь предпочитает продолжить работу сUNIXв окне, ему достаточно кликнуть в окне, чтобы вновь направить ввод виртуальной машине.
Недостатком использования VMwareявляется заметное замедление работы системы.