Использование символов перенаправления

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

· Символ > для перенаправления стандартного вывода.

· Символ < для перенаправления стандартного ввода.

· Символ >> для добавления стандартного вывода в конец существующего файла.

· Символ конвейера | (символ потока или серфинга) для передачи стандартного вывода одной команды на стандартный вход другой.

Переменные оболочки и окружения

2.4.1Присвоение значения переменной: A=Privet; echo $A;

Специальные переменные

- HOME директория, в которую пользователь попадает при входе в систему или при выполнении команды cd без аргументов

- PATH путь поиска исполняемых файлов;

- USER – имя пользователя

- PWD – имя текущего каталога

- OLDPWD – имя предыдущего каталога

- HOSTNAME – имя хоста

2.4.3 read имя_переменной – читается из стандартного ввода строка.

2.4.4Вычисление арифметических выражений. Для вычисления значения выражения, заключенного в скобках, перед которыми указать $. Пример $((65-45)).

Типы файлов ОС Linux

2.5.1 Обычные файлы (текстовые, бинарные)

2.5.2 Каталоги

2.5.3 Файлы физических устройств: с точки зрения ОС Linux, все подключаемые к компьютеру устройства (жесткие и съемные диски, терминал, принтер, модем и т. д.), представляются файлами. Если надо вывести на экран какую-то информацию, то система как бы производит запись в файл /dev/tty01. Физические устройства бывают двух типов: символьными (или байт-ориентированными) и блочными (или блок-ориентированными).

- В каталоге /dev огромное количество файлов физических устройств.

2.5.4 Именованные каналы (named pipes) или буферы FIFO (First In— First Out). Файлы этого типа служат в основном для того, чтобы организовать обмен данными между разными приложениями (pipe переводится с английского как труба). Канал— это очень удобное и широко применяемое средство обмена информацией между процессами. Все, что один процесс помещает в канал, другой может оттуда прочитать. Если два процесса, обменивающиеся информацией, порождены одним и тем же родительским процессом (а так чаще всего и происходит), канал может быть неименованным. В противном случае требуется создать именованный канал, что можно сделать с помощью программы mkfifo. При этом собственно файл именованного канала участвует только в инициации обмена данными.

2.5.5 Гнезда (sockets) – это соединения между процессами, которые позволяют им взаимодействовать, не подвергаясь влиянию других процессов. Вообще гнезда (и взаимодействие программ при помощи гнезд) играют очень важную роль во всех Unix-системах, включая и Linux: они являются ключевым понятием TCP/IP и соответственно на них целиком строится Интернет. Однако с точки зрения файловой системы гнезда практически неотличимы от именованных каналов: это просто метки, позволяющие связать несколько программ. После того как связь установлена, общение программ происходит без участия файла гнезда: данные передаются ядром ОС непосредственно от одной программы к другой. Среди стандартных средств, использующих гнезда - система X Window, система печати и система syslog.

2.5.6 Символические ссылки (symlinks). Жесткая ссылка является просто еще одним именем для исходного файла. Она прописывается в индексном дескрипторе исходного файла. После создания жесткой ссылки невозможно различить, где исходное имя файла, а где ссылка. Если вы удаляете один из этих файлов (точнее одно из этих имен), то файл еще сохраняется на диске (пока у него есть хоть одно имя-ссылка). Одно из применений жестких ссылок состоит в том, чтобы предотвратить возможность случайного удаления файла. Особенностью жестких ссылок является то, что они прямо указывают на номер индексного дескриптора, а, следовательно, такие имена могут указывать только на файлы внутри той же самой файловой системы (т.е., на том же самом носителе, на котором находится каталог, содержащий это имя).

 

2.6 Создание ссылки

ln - создание ссылки на файл

Синтаксис команды:

ln [-f] файл1 [файл2 ...] целевой_файл

Команда ln делает целевой_файл ссылкой на файл1. Файл1 не должен совпадать с целевым_файлом (будьте внимательны при использовании метасимволов shell'а). Если целевой_файл является каталогом, то в нем создаются ссылки на файл1, файл2, ... с теми же именами. Только в этом случае можно указывать несколько исходных файлов.

Если целевой_файл существует и не является каталогом, его старое содержимое теряется. Если при этом обнаруживается, что в целевой_файл не разрешена запись, то выводится режим

доступа к этому файлу [см. chmod] и запрашивается строка со стандартного ввода.

Если эта строка начинается с символа y, то требуемые действия все же выполняются, при условии что у пользователя достаточно прав для удаления целевого_файла. Если была указана опция -f или стандартный ввод назначен не на терминал, то требуемые действия выполняются без всяких запросов. Целевой_файл наследует режим доступа к файлу1.

ОГРАНИЧЕНИЯ

Команда ln не создает ссылок между разными файловыми системами, поскольку они (файловые системы) могут добавляться и удаляться.

Создание любой ссылки внешне подобно копированию файла, но фактически как исходное имя файла, так и ссылка указывают на один и тот же реальный файл на диске. Поэтому, например, если вы внесли изменения в файл, обратившись к нему под одним именем, вы обнаружите эти изменения и тогда, когда обратитесь к файлу по имени-ссылке. Для того, чтобы создать символическую ссылку, используется команда ln с дополнительной опцией -s:

ln -s имя_файла_или_каталога имя_ссылки

Пример: [user]$ ln -s /home/kos/ve/HOWTO/font-HOWTO-ru/ ~/FONTS

 

3Задание к работе: