- •Министерство образования Российской Федерации
- •Введение Лабораторная работа №1 основы интерактивной работы в Linux
- •Программа работы
- •Пояснение к работе Пользователи.
- •Сеанс работы.
- •Работа в консоли.
- •Монтирование каталога oc NetWare
- •Интерпретатор команд.
- •Справочная система man, xman, info.
- •Программа Midnight Commander.
- •Завершение сеанса работы в ос unix.
- •Контрольные вопросы
- •Содержание отчета
- •Лабораторная работа № 2 команды файловой системы текстовый редактор VI
- •Программа работы
- •Пояснения к работе Команды для работы с каталогами
- •Смена текущего каталога с помощью команды cd.
- •Выдача информации о файлах и каталогах с помощью команды ls
- •Создание каталога с помощью команды mkdir
- •Удаление каталогов с помощью команды rmdir
- •Команды работы с файлами
- •Копирование файлов(каталогов) с помощью команды ср
- •Перемещение файлов (каталогов) с помощью команды mv
- •Конкатенация файлов с помощью команды cat
- •Удаление файлов с помощью команды rm
- •Перенаправление ввода и вывода и конвейеризация
- •Запуск команд
- •Текстовый редактор VI
- •Начала VI
- •Вставка текста
- •Удаление текста
- •Изменение текста
- •Команды перемещения
- •Сохранение файлов и выход из VI
- •Редактирование еще одного файла
- •Включение других файлов
- •Выполнение команд Shell
- •Получение помощи
- •Контрольные вопросы
- •Содержание отчета
- •Синтаксис скрипта.
- •Команды функции и программы.
- •Шаблоны
- •Переменные
- •Переменные окружения
- •Внутренние переменные
- •Условные выражения
- •Селекторы
- •Варианты заданий
- •Контрольные вопросы
- •Содержание отчета
- •Библиографический список
Переменные окружения
Переменные окружения – системные переменные, описывающие параметры среды, в которой исполняются пользовательские процессы. Имеют строковый тип и записываются прописными буквами. Переменные окружения известны оболочке и могут ею использоваться. Наиболее употребительные переменные:
Имя |
Описание |
Возможные значения |
HOME |
домашний каталог пользователя |
/home/’logname2’ |
PATH |
поисковый путь |
/bin:/etc:/usr/bin:. |
|
имя почтового ящика |
/usr/spool/mail/’logname’ |
LOGNAME |
имя пользователя |
‘logname’ |
SHELL |
интерпретатор сеанса |
bash |
TERM |
имя терминала |
ansi |
PS1 |
первичное приглашение shell |
# |
PS2 |
вторичное приглашение shell |
> |
Для того чтобы простую переменную сделать переменной окружения, надо выполнить команду export:
...~> export имя1
Для сокращения записи пользователь может определить новые переменные прямо в команде export:
...~>export имя1=строка1
Вывести на экран значения всех переменных окружения можно с помощью команды export без аргументов. Поскольку переменных много, то рекомендуется использовать конвейер: export | more или export | less.
Если текущий каталог (.) и каталог личных программ ./bin пользователя (например, home/alla/bin) не включены в путь поиска, их можно добавить к уже заданному пути поиска. В оболочке bash это делается так:
...~>export PATH=.:~/bin:$PATH
Для того чтобы убедиться в правильности выполнения команды полезно вывести новое значение PATH:
...~>echo $PATH
.:/home/alla/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin
Если необходимо добавить вышеуказанные каталоги в конец пути, то следует ввести команду:
...~>export PATH=$PATH:.:~/bin
Внутренние переменные
Значения внутренних переменных устанавливаются самим интерпретатором. Вне контекста получения значения переменные этого типа смысла не имеют. Эти переменные редко используются в командной строке, основная область их применения – скрипты.
$0 |
имя запущенного скрипта |
$1, $2, . . . |
позиционные параметры скрипта |
$# |
число позиционных параметров скрипта |
$? |
код возврата последнего выполненного процесса |
$$ |
PID текущего shell |
$! |
PID последнего процесса, запущенного в фоновом режиме |
$* |
все параметры, переданные скрипту; передаются как единое слово, будучи заключенным в кавычки: “$*” = “$1 $2 $3 . . . “ |
#@ |
все параметры, переданные скрипту; передаются как отдельные слова, заключенные в кавычки: “$*” = “$1” “$2” “$3” . . . |
Примеры:
Текст скрипта: #!/bin/bash echo ***MY_SCRIPT_1 $0 *** echo $1 $2 $3 #печать трех параметров shift #сдвиг значений аргументов на 1 позицию echo $1 $2 $3 #
|
Запуск скрипта: …~>./scr1.sh a1 a2 a3 a4 ***MY_SCRIPT_1 scr1.sh *** a1 a2 a3 a2 a3 a4
|
Текст скрипта: #!/bin/bash echo ***MY_SCRIPT_2 $0 *** if [ $# -lt 2 ] #если число параметров меньше 2-х then echo usage: $0 arg1 arg2 exit 1 fi |
Запуск скрипта: …~>./scr2.sh ***MY_SCRIPT_1 scr2.sh *** usage: scr2.sh arg1 arg2 …~>./scr2.sh a1 a2 ***MY_SCRIPT_1 scr2.sh ***
|
Код возврата последней выполненной задачи ($?) удобно использовать в условных выражениях. По правилам успешным завершением задачи считается код возврата, равный 0, ненулевой код свидетельствует об ошибке. Код возврата скриптов генерируется с помощью команды exit n, где n – целое число. Пример:
echo ***MY_SCRIPT_3 $0 *** # зарегистрирован ли в системе пользователь с именем alla # проверяется файл passwd на наличие слова alla и в случае удачи grep возвращает 0 grep alla /etc/passwd if [ $? –ne 0 ] #если код возврата последнего выполненного процесса = 0, то слово alla найдено then echo пользователь alla в системе зарегистрирован exit 1 fi |