ЛАБОРАТОРНАЯ РАБОТА № 1 (время выполнения -- 3 часа)
Тема: ”Введение в shell”
1. Введение в shell
Shell – это интерпретатор команд (командный процессор), осуществляющий функции интерфейса между пользователем и ядром Unix. Solaris предлагает три основных командных процессора:
-
Принятый по умолчанию командный процессор Bourne -- /sbin/sh
-
Командный процессор C -- /bin/csh
-
Командный процессор Korn -- ./bin/ksh
Кроме перечисленных, Solaris предоставляет еще дополнительные оболочки:
-
J-оболочка -- /sbin/jsh
-
Restricted Korn l -- /usr/bin/rsh
-
T-оболочка -- /usr/bin/tcsh
-
GNU Bourne Again -- /usr/bin/bash
-
Z-оболочка – usr/bin/zsh
Выбор командного процессора является вопросом персональных предпочтений.
2. Запуск команд
Любая команда в Unix состоит из имени запускаемой программы (команды), опций (ключей) и аргументов, передаваемых программе. Разделителем в командной строке является пробелы или знаки табуляции.
Пример
$ /bin/ping –t 10 192.168.2.13
аргумент
опция
команда
приглашение shell
Если при запуске программы не указывается путь к исполняемому файлу, то ОС последовательно просматривает каталоги, задаваемые в переменной PATH. Если в просматриваемом каталоге находится программа с таким именем, то она запускается на выполнение. Текущий рабочий каталог при поиске программ не просматривается, только если он не задан в переменной PATH.
! В целях безопасности администратору не рекомендуется добавлять текущий каталог и домашние (личные) каталоги пользователя в переменную PATH.
Примеры
Запуск программы с указанием полного пути
$ /usr/local/bin/my_program
Запуск программы из вышестоящего (родительского) каталога
$ ../local/bin/my_program
Запуск программы из текущего каталога
$ ./my_program
3. Специальные символы в shell
Некоторые символы в shell имеют специальное значение.
3.1. Шаблоны генерации имен файлов
? (вопросительный знак) соответствует любому одному символу, кроме первой точки;
[ ] (квадратные скобки) определяют группу символов (выбирается один символ из группы);
- (знак “минус”) определяет диапазон допустимых символов;
! (восклицательный знак) отвергает следующую за ним группу символов;
* (символ “звездочка”) соответствует любому количеству символов, кроме первой точки.
3.2. Символы перенаправления ввода/вывода
< - перенаправление ввода;
>, >> - перенаправление вывода;
2>, 2>> - перенаправление сообщений об ошибках;
| - конвейер.
3.3. Симолы подстановки
$имя_переменноq - подстановка переменных;
$(команда) или `команда` - подстановка команд;
~ - тильда-подстановка.
4. Поиск
Для быстрого поиска файлов и каталогов используется команда whereis, для более глубокого – команда find (поиск файлов, удовлетворяющих заданным требованиям;).
5. Текстовый редактор vi
Текстовый редактор vi является универсальным редактором, присутствующим в любом Unix. Кроме редактирования текстовых файлов, редактор vi может использоваться для редактирования командной строки.
Редактор vi имеет 3 режима работы (см.рисунок).
Вход в редактор vi
vi имя_файла |
Открыть сеанс редактирования файла |
vi |
Открыть сеанс |
Выход из vi
ZZ |
Выйти без сохранения |
:q! |
Выйти без сохранения |
:wq |
Сохранить изменения в файле и выйти |
Знаком ”~” (тильда) в первой позиции помечаются пустые (несуществующие) строки файла.
Основным режимом является командный, в котором команды вводятся нажатием некоторой последовательности клавиш (на экране никак не отображаются).
Перемещение по тексту в командном режиме осуществляется с помощью стрелок и клавиш <h>(влево), <j>(вниз), <k>(вверх), <l>(вправо).
Некоторые команды vi приведены в таблице.
dd |
Удаление текущей строки |
Yy |
Копирование текущей строки в буфер |
Yдвижение курсора<Es> |
Занесение отмеченных курсором символы в буфер |
o |
Вставка новой строки снизу |
O |
Вставка новой строки сверху |
a |
Добавление после курсора |
A |
Добавление после текущей строки |
i |
Вставка перед курсором |
I |
Вставка перед текущей строкой |
s |
Замена символа на символ, вводимый с клавиатуры |
p |
Вставка текста из буфера |
. (точка) |
Повтор последней выполненной команды |
u |
Отмена последней команды |
U |
Отмена всех изменений в текущей строке |
x |
Удаление символа над курсором |
В режиме ввода все набранные на клавиатуре символы вставляются в текст.
В режиме последней строки вводимая команда отображается в последней строке экрана.