|
| ||||||||||||
| ||||||||||||
|
2006 г.
Справочник по Debian[ назад ] [ Содержание ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ вперед ]Osamu Aoki, перевод Ильи В. Головко, qref.sourceforge.net Глава 4 - Руководство по DebianЭта секция поможет новичкам ориентироваться в мире Debian. Если Вы уже хотя бы немного использовали Unix-подобные операционные системы, то, вероятно, знакомы со всем тем, о чем я здесь пишу. Пожалуйста, используйте эту секцию для проверки своих знаний. 4.1 ВведениеПосле установки системы Debian на Ваш ПК Вам нужно изучить несколько полезных вещей. Я предлагаю это сделать в форме экспресс-тренировки. 4.1.1 Вход в систему как пользователь rootСразу после перезагрузки системы Вам представляется либо графический экран входа в систему, либо текстовый - в зависимости от изначального выбора пакетов при установке. Для простоты, если Вы видите графический экран для входа, нажмите Ctrl-Alt-F1, чтобы перейти к текстовому экрану входа в систему. [2] Предположим, что имя Вашей системы - foo, тогда приглашение на вход будет таким:
foo login:
Наберите root, нажмите клавишу Enter и введите пароль, который Вы указывали в процессе установки. В системе Debian согласно традиций Unix пароль чувствителен к регистру. После этого система выводит приветствие и представляет Вам приглашение командой строки пользователя root, ожидая ввода. [3]
foo login: root
Password:
Last login: Sun Oct 26 19:04:09 2003 on tty3
Linux foo 2.4.22-1-686 #6 Sat Oct 4 14:09:08 EST 2003 i686 GNU/Linux
Most of the programs included with the Debian GNU/Linux system are
freely redistributable; the exact distribution terms for each program
are described in the individual files in /usr/share/doc/*/copyright
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@foo:root#
Теперь Вы готовы к тому, чтобы заниматься системным администрованием через командую строку root. Учетная запись root также называется суперпользовательской или привелегированной. Используя эту учетную запись, Вы можете:
Если Вам нужно дать кому-либо часть полномочий root, не стоит этого делать,
разделяя с ним пароль учетной записи root. Используйте для этого программы
типа
В Unix cчитается хорошей привычкой регистрироваться в системе, используя
непривелегированную учетную запись, даже если Вы собираетесь выполнять некую
административную работу. Используйте команды sudo,
super, или su -c для получения дозированных
привилегий root, когда это необходимо. Смотрите Working more safely – 4.1.2 Установка минимальной среды окружения для новичка
Я думаю, что изучение компьютерной системы схоже с изучением нового
иностранного языка. И хотя учебники достаточно полезны, Вам нужно попрактивать
с подручными инструментами. В этом контексте я считаю, что хорошей идей будет
установка нескольких дополнительных пакетов типа
# apt-get update
...
# apt-get install mc vim lynx doc-linux-text debian-policy
...
Если эти пакеты уже имеются в системе, то ничего не будет установлено. 4.1.3 Добавление пользовательской учетной записиВ процессе установки Вы обычно создаете учетную запись непривилегированногого пользователя, который будет получать электронную почту, адресованную root. [6] Если Вы не хотите использовать эту специальную учетную запись для последующего обучения, Вам нужно создать еще одну пользовательскую учетную запись. Предположим, что Вы захотели, чтобы ее имя было penguin. Тогда следущая команда:
root@foo:root# adduser penguin
... ответьте на все вопросы
создаст ее. [7] Перед тем, как идти дальше, мы должны сперва изучить еще несколько вещей. 4.1.4 Переключение между виртуальными консолямиВ системе Debian по умолчанию существует шесть независимых превдотерминалов, т.е. Вы можете использовать текстовый консольный экран VGA Вашего персонального компьютера как 6 переключаемых терминалов VT-100. Переключение между терминалами осуществляется одновременным нажатием клавиши левый-Alt и одной из функциональных F1–F6. Каждый псевдотерминал позволяет независимую регистрацию в системе. Это является проявлением такой важной черты Unix, как многопользовательность. Если Вы случайно нажали Alt-F7 на системе с работающей системой X Window и видите графический экран, то для возврата к текстовым консолям нажмите Ctrl-Alt-F1. Для тренировки просто попытайтесь попереключаться на другую консоль и возвращаться назад. 4.1.5 Как завершить работу системыКак любая современная операционная система, где файловые операции используют кэширование данных в памяти, система Debian нуждается в соответствующей процедуре завершения работы системы перед тем, как питание может быть безопасно выключено без повреждения целосности файлов. Используйте следующую команду в командой строке root для завершения работы системы:
# shutdown -h now
Эта команда используется в нормальном многопользовательском режиме. Если же Вы в однопользовательском режиме, то в командной строке root используйте следующую команду:
# poweroff -i -f
Также Вы можете нажать Ctrl-Alt-Delete для завершения работы системы. [8] Подождите, пока система не отобразит сообщение "System halted", и только тогда выключайте питание. Если функции APM или ACPI надлежащим образом включены как в BIOS, так и в Linux, то система выключит питание самостоятельно. Подробности смотрите в Большой размер оперативной памяти и автовыключение питания, раздел 3.7.4. 4.1.6 Время поразвлечьсяТеперь Вы готовы без риска поиграть с системой Debian, так как используете учетную запись непривилегированного пользователя penguin. [9] Давайте войдем в систему как пользователь penguin. Если Вы сейчас работаете как root, нажмите Ctrl-D [10] в командой строке, чтобы закрыть командный интерпретатор root'а и выйти на приглашение к входу в систему. Введите Ваше только что созданное имя пользователя penguin и его пароль. [11] Вам будет показано следующее приглашение ко вводу команд.
penguin@foo:penguin$
С этого момента для простоты даваемые примеры будут использовать упрощенное приглашение ко вводу команд. Я буду использовать:
Мы начнем изучение системы Debian сначало по-простому через Midnight Commander (MC), раздел 4.2, а позже по-настоящему через Традиционная для Unix рабочая среда, раздел 4.3. 4.2 Midnight Commander (MC)Midnight Commander (MC) - это "Швейцарский армейский нож" от проекта GNU, применяемый в консоли Linux и прочих терминальных средах. Он дает новичку опыт работы в консоли через меню-подобный интерфейс, который гораздо проще изучить, чем стандартные команды Unix. Используйте эту программу для изучения системы Debian. Это самый лучший способ для изучения. Пожалуйста, исследуйте следующие несколько ключевых мест, используя клавиши управления курсором и Enter:
4.2.1 Улучшим MC
Чтобы MC изменял рабочий каталог при выходе из него, Вам нужно изменить файл
4.2.2 Запуск MC
$ mc
MC выполняет все операции с файлами через его меню, требуя от пользователя минимум усилий. Для получения справки просто нажмите F1. Вы можете поиграть с MC путем нажатий клавиш управления курсором и функциональных клавиш. [13] 4.2.3 Файловый менеджер в MC
По умолчанию отображаются две панели каталога со списками файлов. Еще один
полезный режим - это когда правое окно отображает информацию о режиме доступа к
файлу и пр. Далее описаны несколько важных клавишных комбинаций. С демоном
4.2.4 Особенности командной строки в MC
4.2.5 Редактор в MCВстроенный редактор имеет интересную систему "вырезать-вставить". Нажатие F3 помечает начало выделения текста, повторное нажатие помечает конец выделения и высвечивает выбранный текст. Теперь Вы можете передвигать Ваш курсор. И если нажмете F6, то выделенная область будет перенесена в позицию курсора. Если же Вы нажмете F5, то выделенная область будет скопирована в позицию курсора. F2 сохраняет файл, F10 завершает работу редактора. Большинство курсорных клавиш работают так, как Вы интуитивно преполагаете. Этот редактор может быть запущен непосредственно для работы с файлом:
$ mc -e имя_файла_для_правки
$ mcedit имя_файла_для_правки
Данный редактор не является мультиоконным, но можно использовать множество линукс-консолей для достижения похожего эффекта. Чтобы копировать между окнами, для переключения между виртуальными консолями используйте клавиши Alt-Fn, а для переноса части файла в другой используйте "Файл->Вставить файл" или "Файл->Копировать в файл" Встроенный редактор можно заменить любым внешним по Вашему выбору.
Также многие программы используют переменную окружения EDITOR или
VISUAL для определения, какой редактор использовать. Если Вам
неудобно в
...
export EDITOR=mcedit
export VISUAL=mcedit
...
По возможности я рекомендую устанавливать эти переменные на vim.
Использование редактора 4.2.6 Программа просмотра в MC
Представляет собой очень интеллектуальную программу. Это великолепный
инструмент для поиска слов в документах. Я использую эту возможность для
файлов в каталоге
$ mc -v имя_файла_для_просмотра
4.2.7 Возможности MC по автоматическому запуску программНажмите клавишу Enter на файле и соответствующая программа будет обрабатывать содержимое файла. Это очень удобная возможность MC.
выполняемый файл: Выполняет команду
файл man, html-страницы: Направляет содержимое в программу просмотра
файл tar.gz, deb: Отображает содержимое файла как подкаталог
Чтобы позволить функционировать этим возможностям просмотра, просматриваемые
файлы не должны быть выполняемыми. Изменить их статус можно или через
программу 4.2.8 Виртуальная FTP-файловая система MCMC можно использовать для доступа через Интернет к файлам, используя протокол FTP. Перейдите в меню, нажав F9, затем нажмите 'p' для активации виртуальной файловой системы FTP (в моей версии MC работает клавиша 'F' - прим. переводчика) . Введите URL в форме имя_пользователя:пароль@имя_хоста.имя_домена, после чего будет осуществлена выборка удаленного каталога, который будет представлен как локальный. Попробуйте в качестве URL указать http.us.debian.org/debian и просмотреть файловый архив Debian. Смотрите Архивы Debian, раздел 2.1 относительно того, как они (архивы) организованы. 4.3 Традиционная для Unix рабочая средаХотя MC позволяет делать Вам практически все, очень важно изучить, как использовать инстументы командной строки, вызываемые из приглашения командного интерпретатора и познакомиться с рабочей средой, традиционной для Unix. [15] 4.3.1 Специальные комбинации клавишВ традиционной unix-среде существует несколько комбинаций клавиш, которые имеют специальный смысл. [16]
Командный интерпретатор по умолчанию,
Запомните еще несколько важных комбинаций клавиш:
Чтобы использовать мышь в текстовой консоли Linux, Вам нужно иметь запущенный
демон 4.3.2 Основные команды UnixДавайте изучим основные команды Unix. [19] Выполните все следующие команды от имени непривелегированного пользователя penguin:
Пожалуйста, походите по каталогам и изучите систему, используя ранее описанные команды, для тренировки. Если у Вас есть вопросы по любой из консольных команд, будьте добры прочесть соответствующую man-страницу. Например, данные команды хороши для старта:
$ man man
$ man bash
$ man ls
Также неплохо запустить Пожалуйста заметьте, что многие Unix-команды, включая из GNU и BSD, будут показывать краткую справочную информацию, если Вы вызовете их одним из следующих способов (или, в некоторых случаях, без аргументов вовсе):
$ имя_команды --help
$ имя_команды -h
Для самоподготовки также посмотрите примеры из Debian tips, Глава 8. 4.3.3 Выполнение командТеперь Вы имеете представление о том, как использовать систему Debian. Давайте внимательно взглянем на механизм выполнения команд в системе Debian. [24] 4.3.4 Простая командаПростая команда - это последовательность, состоящая из:
Для более сложных команд с кавычками и заменами смотрите Command-line processing, раздел 13.2.6. 4.3.5 Выполнение команды и переменные окруженияРассмотрим следующую типовую последовательность команд: [25]
$ date
Sun Oct 26 08:17:20 CET 2003
$ LC_ALL=fr_FR date
dim oct 26 08:17:39 CET 2003
Здесь выполняется программа
Обычно при выполнении команд определение переменных окружения отсутствует. Для выше приведенного примера Вы можете сделать и так:
$ LC_ALL=fr_FR
$ date
dim oct 26 08:17:39 CET 2003
Как Вы видете, вывод команды зависит от переменной окружения. Если же Вы хотите, чтобы переменная окружения наследовалась дочерними процессами (например, когда Вы запускаете скрипт на языке командного интерпретатора), Вам нужно "экспортировать" ее таким образом:
$ export LC_ALL
4.3.6 Путь поиска командыКогда Вы даете команду командному интерпретатору, он ищет ее в списке каталогов, содержащихся в переменной окружения PATH. Значение этой переменной окружения называется путем поиска командного интерпретатора.
В системе Debian по умолчанию переменная окружения PATH у
пользовательской учетной записи не включает каталог 4.3.7 Опции командной строкиНекоторые команды принимают аргументы. Аргументы, начинающиеся с - или --, называются опциями и управляют поведением команды.
$ date
Mon Oct 27 23:02:09 CET 2003
$ date -R
Mon, 27 Oct 2003 23:02:40 +0100
Здесь аргумент командной строки -R изменяет поведение команды
4.3.8 Шаблоны имени файла (wildcards) командного интерпретатораЧасто Вам нужно, чтобы команда работала с группой файлов без набора всех их имен. Для описания группы файлов используются шаблоны имени файла командного интерпретатора:
Для примера попробуйте следующие команды и поразмышляйте над полученными результатами:
$ mkdir junk; cd junk; $ touch 1.txt 2.txt 3.c 4.h .5.txt
$ echo *.txt
1.txt 2.txt
$ echo *
1.txt 2.txt 3.c 4.h
$ echo *.[hc]
3.c 4.h
$ echo .*
. .. .5.txt
$ echo .[^.]*
.5.txt
$ echo [^1-3]*
4.h
$ cd ..; rmdir junk
4.3.9 Код возврата командыКаждая команда возвращает свой статус завершения как код возврата.
Этот код возврата сразу после завершения команды может быть получен через переменную командного интерпретатора $?. Пожалуйста заметьте, что когда код возврата используется в логическом контексте командного интерпретатора, успешное завершение обрабатывается как логическая ИСТИНА. Это некоторым образом нелогично, так как успешное завершение соответствует значению нуль. Смотрите также Shell conditionals, раздел 13.2.5. 4.3.10 Типовые последовательности командПостарайтесь запомнить следующие распространенные способы запуска команд. А после этого посмотрите части Shell parameters, раздел 13.2.3, Shell redirection, раздел 13.2.4, Shell conditionals, раздел 13.2.5 и Command-line processing, раздел 13.2.6. 4.3.10.1 команда &
Управление фоновыми процессаами осуществляется через встроенные команды:
4.3.10.2 команда1 | команда2
Стандартный поток вывода команды 4.3.10.3 команда1 ; команда2
Команды 4.3.10.4 команда1 && команда2
Выполняется команда 4.3.10.5 команда1 || команда2
Выполнятеся команда 4.3.10.6 команда > foo
Перенаправить стандартный поток вывода команды 4.3.10.7 команда >> foo
Перенаправить стандартный поток вывода команды 4.3.10.8 команда > foo 2>&1
Перенаправить потоки стандартного вывода и стандартного вывода ошибок команды
4.3.10.9 команда < foo
Содержимое файла foo направляется в стандартный поток
ввода команды
$ </etc/motd pager
... (приветствие)
$ pager </etc/motd
... (приветствие)
$ pager /etc/motd
... (приветствие)
$ cat /etc/motd | pager
... (приветствие)
Хотя все 4 конструкции покажут одно и то же, последний пример запускает
дополнительную команду 4.3.11 Псевдоним командыВы можете установить псевдоним для часто используемой команды. Например:
$ alias la='ls -la'
Теперь
Вы можете определить точный путь или подлинность команды, используя команду
$ type ls
ls is hashed (/bin/ls) информация о ls хэширована (/bin/ls)
$ type la
la is aliased to `ls -la' la - псевдоним `ls -la'
$ type echo
echo is a shell builtin echo - встроенная команда командного интерпретатора
$ type file
file is /usr/bin/file команда file = /usr/bin/file
Здесь недавно выполнялся поиск команды 4.4 Традиционная для Unix обработка текстаСуществует несколько стандартных инструментов по обработке текста, которые очень часто используются на unix-подобных системах.
Смотрите Regular-expression substitution, раздел 8.6.12, Script snippets for piping commands, раздел 8.6.17 и Perl short script madness, раздел 8.6.19 на предмет примеров скриптов. 4.4.1 Регулярные выраженияРегулярные выражения используются во многих инструментах обработки текста. Они очень похожи на шаблоны имен файлов командного интерпретатора (смотрите Шаблоны имени файла (wildcards) командного интерпретатора, раздел 4.3.8), но они не только сложнее, но и мощнее. Регулярное выражение описывает шаблон соответствия и составляется из символов текста и метасимволов. Метасимвол - это простой символ со специальным смыслом. Существует два основных стиля регулярных выражений, БРВ и РРВ, в зависимости от текстовых инструментов, описанных в Традиционная для Unix обработка текста, раздел 4.4. Для РРВ метасимволы включают "\ . [ ] ^ $ * + ? ( ) { } |". Регулярное выражение означает:
В БРВ метасимволы "+ ? ( ) { } |"
теряют свое особое значение, взамен используйте те же символы с обратным слешем
впереди "\+ \? \( \) \{ \} \|". Поэтому конструкция с
скобками (r1|r2), записанная с использованием БРВ, должна быть в
виде \(r1|r2\). Однако программа
Например, программа
$ egrep 'GNU.*LICENSE|Yoyodyne' /usr/share/common-licenses/GPL
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
4.4.2 Выражения подстановкиВ выражениях подстановки следующие символы имеют особое значение:
Для выражений подстановки языка Perl используется конструкция $n вместо \n и символ & не имеет особого значения. Например:
$ echo zzz1abc2efg3hij4 | \
sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/=&=/'
zzz=1abc2efg3hij4=
$ echo zzz1abc2efg3hij4 | \
sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/\2===\1/'
zzzefg3hij4===1abc
$ echo zzz1abc2efg3hij4 | \
perl -pe 's/(1[a-z]*)[0-9]*(.*)$/$2===$1/'
zzzefg3hij4===1abc
$ echo zzz1abc2efg3hij4 | \
perl -pe 's/(1[a-z]*)[0-9]*(.*)$/=&=/'
zzz=&=
Здесь обратите дополнительное внимание на стиль регулярных выражений, заключенных в скобки, и на то, как совпавшие строки используются в процессе замены текста у разных инструментов. Эти регулярные выражения могут быть использованы для перемещения курсора и также для действий по замене текста в редакторах. Пожалуйста, прочтите все связанные man-страницы для изучения этих команд. 4.5 Традиционная файловая система Unix
В системах GNU/Linux и других Unix-подобных операционных системах
файлы размещаются в каталогах. [27] Все файлы и
каталоги образуют одно большое дерево, иерархическую файловую
структуру, корень которой
Эти файлы и каталоги могут располагаться на нескольких устройствах. Команда
4.5.1 Основы файлов UnixВот несколько основых положений:
Хорошо описанные примеры по иерархии файлов есть в документе
4.5.2 Концепция файловой системы в DebianПо традициям Unix система Debian имеет файловую систему, ниже которой находятся физические данные жестких дисков и других устройств хранения информации, а также в унифицированном виде реализованы механизмы взаимодействия с оборудованием, таким как консольные экраны, удаленные последовательные консоли.
Каждый файл, каталог, именованный канал или физическое устройство в системе
Debian имеет структуру данных, называющуюся индексным
дескриптором (inode), который описывает связанные атрибуты, такие как
владелец файла, группа, которая владеет файлом, время последнего доступа к
файлу и пр. Точное описание структуры inode в системе Debian
GNU/Linux смотрите в документе Это унифицированное представление физических устройств является очень мощной особенностью, так как это позволяет нам использовать одну и ту же команду для выполнения однотипных действий на множестве достаточно разнотипных устройств. Все Ваши файлы могут размещаться на одном диске, или на 20 дисках: причем некоторые из них подключены к другим компьютерам где-то в сети. И хотя Вы не можете просто так взглянуть на дерево каталогов, почти все команды работают точно также вне зависимости от того, на каком физическом устройстве реально размещаются файлы. 4.5.3 Права доступа к файлам и каталогамПрава доступа к файлу и каталогу определяются индивидуально для каждой из трех следущих категорий пользователей:
Для файла соответствующие права доступа позволяют соответственно:
Для каталога права доступа позволяют соответственно:
Здесь право выполнения для каталога означает не только возможность чтения файлов в каталоге, но и возможность просмотра их атрибутов, таких как размер и время модификации.
Чтобы отобразить информацию о правах доступа (и многую другую) на файлы и
каталоги используется программа
Чтобы изменить владельца файла, используется программа
# chown новый_владелец foo
# chgrp новая_группа foo
# chmod [ugoa][+-=][rwx][,...] foo
Подробности смотрите в соответствующих man-страницах Например, чтобы для некоторого дерева каталогов задать владельцем пользователя foo и сделать группу bar, владеющей этим деревом, выполните следующие команды от имени пользователя root:
# cd /некий/каталог/
# chown -R foo:bar .
# chmod -R ug+rwX,o=rX .
Существует три бита специальных прав:
В выводе команде Установка бита set user ID на выполняемый файл позволяет пользователю выполнить этот файл от имени владельца файла (например, root) Подобным образом, установка бита set group ID на выполняемый файл позволяет выполнить данный файл от имени группы, владеющей этим файлом, например, от имени группы root). Так как эти установки могут создать серъезную дыру в безопасности системы, устанавливайте эти биты очень внимательно. Установка бита set group ID на каталог включает схему создания файлов как системах BSD, где все файлы созданные в данном каталоге будут принадлежать группе group, владеющей этим каталогом.
Установка бита sticky bit на каталог предотвращает удаление
файлов в каталоге пользователями, ими не владеющими. Для защиты содержимого
файла в каталоге, в который разрешена запись всем, например, Вот несколько интересных примеров прав на файлы:
$ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/pppd
crw-rw---- 1 root dip 108, 0 Jan 18 13:32 /dev/ppp
-rw-r--r-- 1 root root 1051 Jan 26 08:29 /etc/passwd
-rw-r----- 1 root shadow 746 Jan 26 08:29 /etc/shadow
-rwsr-xr-- 1 root dip 234504 Nov 24 03:58 /usr/sbin/pppd
$ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src
drwxrwxrwt 4 root root 4096 Feb 9 16:35 /tmp
drwxrwsr-x 10 root staff 4096 Jan 18 13:31 /usr/local
drwxrwsr-x 3 root src 4096 Jan 19 08:36 /usr/src
drwxrwsr-x 2 root mail 4096 Feb 2 22:19 /var/mail
drwxrwxrwt 3 root root 4096 Jan 25 02:48 /var/tmp
В командах
Это выглядит сложновато, но на самом деле все очень просто. Если вы посмотрите на первые несколько столбцов (2-10) вывода команды ls -l и проинтерпретируете их как двоичное (с основанием = 2) представление прав на файл ("-" означает "0", а "r", "w", "x" означает "1"), то полученное число, переведенное в восьмеричную систему счисления будет являться восьмеричным представлением прав на файл. [30] Попробуйте для примера:
$ touch foo bar
$ chmod u=rw,go=r foo
$ chmod 644 bar
$ ls -l foo bar
-rw-r--r-- 1 penguin penguin 0 Nov 3 23:30 foo
-rw-r--r-- 1 penguin penguin 0 Nov 3 23:30 bar
Маска прав на файл по умолчанию может быть установлена встроенной командой
командного интерпретатора 4.5.4 ВременнЫе метки (Timestamps)У файла в системе GNU/Linux cуществует три типа временных метки:
Заметьте, что ctime не является временем создания файла.
Обратите внимание, что даже простое чтение файла в системе Debian обычно
приводит к операции записи с файлом для обновления временной метки
atime в структуре inode. Монтирование
файловой системы с опцией noatime позволит системе не делать эту
операцию и приведет к повышению скорости чтения. Смотрите страницу
Используйте команду 4.5.5 СсылкиСуществует два способа связать файл foo с другим именем файла bar.
Смотрите следующий пример на предмет изменения счетчика ссылок и тонкую разницу
в результате команды
$ echo "Исходное содержимое" > foo
$ ls -l foo
-rw-r--r-- 1 osamu osamu 4 Feb 9 22:26 foo
$ ln foo bar # жесткая ссылка
$ ln -s foo baz # символическая ссылка
$ ls -l foo bar baz
-rw-r--r-- 2 osamu osamu 4 Feb 9 22:26 bar
lrwxrwxrwx 1 osamu osamu 3 Feb 9 22:28 baz -> foo
-rw-r--r-- 2 osamu osamu 4 Feb 9 22:26 foo
$ rm foo
$ echo "Новое содержимое" > foo
$ cat bar
Исходное содержимое
$ cat baz
Новое содержимое
Символическая ссылка всегда имеет номинальные права доступа файла "rwxrwxrwx", как это было показано в предыдущем примере, и эффективные права доступа соответствующие правам доступа файлу, на который ссылка указывает.
Каталог 4.5.6 Именованные каналы (FIFOs)Именованный канал - это файл, которые действует как труба. Вы помещаете что-то в данный файл, и оно выходит с другого конца. Это называется FIFO или First-In-First-Out: то, что первым помещено в канал, первым из него и выходит с другой стороны. Если Вы пишите в именованный канал, то процесс, который это делает, не завершается до тех пор, пока записанная информация не будет прочтена из канала. Если Вы читаете из именнованного канала, то процесс, который это делает, будет работать до тех пор, пока в канале есть информация для чтения. Размер файла канала всегда нулевой - он не хранит данные, он просто связывает два процесса, как это делает операция | командного интерпретатора. Однако, так как этот канал имеет имя, то нет необходимости запускать эти процессы (читающий и пишущий - прим. переводчика) в одной и тоже командной строке (в отличие от | - прим. переводчика) и от имени одного и того же пользователя. Вы можете изучить, как работает канал, на следующем примере:
$ cd; mkfifo mypipe
$ echo "hello" >mypipe & # запустим в фоновом режиме
[1] 5952
$ ls -l mypipe
prw-r--r-- 1 penguin penguin 0 2003-11-06 23:18 mypipe
$ cat mypipe
hello
[1]+ Done echo hello >mypipe
$ ls mypipe
prw-r--r-- 1 penguin penguin 0 2003-11-06 23:20 mypipe
$ rm mypipe
4.5.7 СокетыСокеты очень похожи на именованные каналы (FIFO) и позволяют процессам обмениваться информацией. В случае с сокетом эти процессы не обязаны выполняться на одной и тоже машине или быть потомками одного и тоже родительского процесса. Это конечная точка в в межпроцессном взаимодействии. Обмен информации может происходить через сеть между различными компьютерами. 4.5.8 Файлы устройствФайлы устройств ссылаются на физические или виртуальные устройства в Вашей системе, такие как жесткий диск, видеокарта, экран или клавиатура. Пример виртуальнго устройства - консоль, представленная файлом устройства /dev/console. Существует два типа устройств:
Вы можете читать или записывать в файл устройства, хотя сам файл содержит
двоичные данные, не очень понятные человеку. Запись данных непосредственно в
такие файлы иногда полезны для решения проблем подключений оборудования.
Например, Вы можете вывести текстовый файл в принтерный файл устройства
4.5.8.1
|
|
CITForum © 1997–2025