Изучаем Linux, 101: Поиск и правильное размещение системных файлов

Изучение Filesystem Hierarchy Standard

Из этой статьи вы узнаете о структуре файловой системы в Linux® в соответствии со стандартом Filesystem Hierarchy Standard, а также о том, как находить важные файлы и команды. Вы можете использовать этот материал для подготовки к экзамену LPI 101 программы сертификации на администратора Linux начального уровня или просто для общего развития.

Об этой серии

Эта серия статей поможет вам освоить задачи администрирования операционной системы Linux. Вы также можете использовать материал этих статей для подготовки к экзаменам первого уровня сертификации профессионального института Linux (LPIC-1).

Чтобы посмотреть описания статей этой серии и получить ссылки на них, обратитесь к нашему перечню материалов для подготовки к экзаменам LPIC-1. Этот перечень постоянно дополняется новыми статьями по мере их готовности и содержит самые последние (по состоянию на апрель 2009 года) цели экзаменов сертификации LPIC-1. Если какая-либо статья отсутствует в перечне, можно найти ее более раннюю версию, соответствующую предыдущим целям LPIC-1 (до апреля 2009 года), обратившись к нашим руководствам для подготовки к экзаменам института Linux Professional Institute.

Краткий обзор

Из этой статьи вы узнаете о стандарте иерархии файловой системы (Filesystem Hierarchy Standard, FHS). Вы научитесь:

  • Размещать файлы в соответствии со стандартом FHS.
  • Находить файлы и команды на вашем компьютере Linux.
  • Находить важные файлы и директории, определенные в стандарте FHS, и понимать их назначение.

Эта статья поможет вам подготовиться к сдаче экзамена LPI 101 на администратора начального уровня (LPIC-1) и содержит материалы цели 104.7 темы 104. Цель имеет вес 2.

Необходимые условия

Чтобы извлечь наибольшую пользу из наших статей, необходимо обладать базовыми знаниями о Linux и иметь работоспособный компьютер с Linux, на котором можно будет выполнять все встречающиеся команды. Иногда различные версии программ выводят результаты по-разному, поэтому содержимое листингов и рисунков может отличаться от того, что вы увидите на вашем компьютере. В частности, результаты выполнения многих примеров этой статьи сильно зависят от того, какие пакеты уже были установлены в операционной системе. Хотя результаты, полученные в вашей операционной системе, могут отличаться, вы должны уловить наиболее важные общие моменты.


Стандарт иерархии файловой системы Filesystem Hierarchy Standard

Как связаться с Яном

Ян – один из наших наиболее популярных и плодовитых авторов. Ознакомьтесь со всеми статьями Яна (EN), опубликованными на сайте developerWorks. Вы можете найти контактные данные в профиле Яна и связаться с ним, а также с другими авторами и участниками ресурса My developerWorks.

Стандарт иерархии файловой системы (Filesystem Hierarchy Standard) – это документ, описывающий общую структуру директорий в Linux или другой UNIX® -подобной системе. Определяя стандартные местоположения файлов в различных дистрибутивах Linux, стандарт FHS упрощает разработку программного обеспечения, не зависящего от используемого дистрибутива. На стандарт FHS также опирается проект Linux Standard Base (см. раздел Ресурсы). Стандарт FHS позволяет пользователям и программам заранее знать местоположения установленных файлов и директорий. Предполагается, что для файловых систем, совместимых с FHS, операционной системой поддерживаются базовые функции безопасности, существующие в большинстве файловых систем UNIX.

Две независимых категории стандарта FHS

В основе стандарта FHS лежат две независимые категории файлов:

Файлы для общего или локального использования
Файлы для общего использования расположены в одной системе и могут использоваться в других системах. Файлы для локального использования должны располагаться в той системе, в которой они используются.
Статические и переменные файлы
Статические файлы – это файлы, изменяющиеся только при вмешательстве системного администратора (например, при установке или обновлении пакетов) и включающие в себя документацию, библиотеки и двоичные файлы. Переменные файлы – это все остальные файлы, такие как файлы журналов, буферные файлы (spool), базы данных, а также пользовательские данные, изменяемые пользователями и системными процессами.

Такое разделение позволяет хранить файлы с различными наборами характеристик в разных файловых системах. В таблице 1 приведен пример из документа стандарта FHS, описывающий структуру, соответствующую этому стандарту.

Таблица 1. Пример стандарта FHS
Для общего использованияДля локального использования
Статические/usr
/opt
/etc
/boot
Переменные/var/mail
/var/spool/news
/var/run
/var/lock

Где найти файл?

Компьютеры Linux часто содержат сотни тысяч файлов. 64-разрядная операционная система Fedora 13, которую я недавно установил на свой компьютер, содержит 75000 файлов только в одной ветке /usr. Большинство установленных мной дистрибутивов содержат более 100000, а иногда и более 200000 файлов. В последующих разделах мы рассмотрим инструменты, которые помогают находить файлы (в частности, программы) в таком огромном море данных.


Что находится в вашей переменной PATH?

Если вы работали с различными Linux-системами, то наверняка знаете, что вход в систему под учетной записью пользователя root позволяет выполнять такие команды, как fdisk, недоступные для выполнения обычным пользователям. Если вы запускаете программу в командной строке, то командный интерпретатор bash (или любой другой интерпретатор) ищет необходимую программу в списке директорий. Список директорий указывается в переменной окружения PATH (путь); переменная PATH пользователя root может включать директорию /sbin, но эта же директория может отсутствовать в переменной PATH обычного пользователя. В листинге 1 приведены примеры переменных PATH из двух различных дистрибутивов, а также пример переменной PATH пользователя root.

Листинг 1. Несколько примеров переменной PATH
ian@pinguino:~$ # An Ubuntu 9.10 system
ian@pinguino:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

[ian@echidna ~]$ # An openSUSE 11.2 system
ian@attic4:~> echo $PATH
/usr/lib64/mpi/gcc/openmpi/bin:/home/ian/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/u
sr/X11R6/bin:/usr/games:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin

[root@echidna ~]# # And as root
attic4:~ # echo $PATH
/usr/lib64/mpi/gcc/openmpi/bin:/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/
usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib64/jvm/jre/bin:/usr/lib/mit/b
in:/usr/lib/mit/sbin

Как видите, переменная PATH – это просто список директорий, разделенных двоеточиями. Поскольку команда fdisk фактически расположена в /sbin/fdisk, то только первая и последняя переменные позволяют пользователю запускать эту команду без указания полного имени (/sbin/fdisk), т. е. просто набирая fdisk.

Обычно значение переменной PATH устанавливается в файле инициализации, например, .bash_profile или .bashrc. Вы можете изменить ее значение для текущего процесса bash, указав новый путь. Если вы хотите, чтобы новое значение стало доступно другим процессам, запускаемым из текущего процесса, то нужно экспортировать переменную PATH. Пример приведен в листинге 2.

Листинг 2. Изменение переменной PATH
ian@attic4:~> fdisk
Absolute path to 'fdisk' is '/sbin/fdisk', so running it may require superuser privileges
 (e.g. root).
ian@attic4:~> export PATH=/sbin:$PATH
ian@attic4:~> fdisk

Usage: fdisk [-l] [-b SSZ] [-u] device
E.g.: fdisk /dev/hda  (for the first IDE disk)
  or: fdisk /dev/sdc  (for the third SCSI disk)
  or: fdisk /dev/eda  (for the first PS/2 ESDI drive)
  or: fdisk /dev/rd/c0d0  or: fdisk /dev/ida/c0d0  (for RAID devices)

Команды which, type и whereis

В предыдущем разделе я объяснил, почему команда fdisk может оказаться недоступной, если вы попытаетесь запустить ее. Тем не менее, существует несколько полезных утилит, помогающих выяснить, какая команда фактически запускается при наборе определенного имени команды.

Команда which

Для поиска в переменной PATH и выяснения того, какая команда будет запускаться (если будет) при вводе имени команды, используйте команду which. В листинге 3 приведен пример поиска для команды fdisk.

Листинг 3. Использование команды which
ian@attic4:~> which fdisk
which: no fdisk in (/usr/lib64/mpi/gcc/openmpi/bin:/home/ian/bin:/usr/local/bin:/usr/bin:
/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/
lib/mit/sbin)
ian@attic4:~> export PATH=/sbin:$PATH
ian@attic4:~> which fdisk
/sbin/fdisk

Команда which показывает первую найденную команду в вашей переменной PATH. Если вы хотите проверить существование нескольких совпадений, то добавьте опцию -a, как показано в листинге 4.

Листинг 4. Использование команды which для поиска нескольких совпадений
ian@attic4:~> which awk
/usr/bin/awk
ian@attic4:~> which -a awk
/usr/bin/awk
/bin/awk
/usr/bin/X11/awk

Здесь команда awk была обнаружена в трех местах: в директориях /usr/bin (основная системная директория, в которой хранятся команды), /bin (содержит команды, которые могут использоваться как администраторами, так и пользователями системы, и которые требуются при отсутствии других смонтированных файловых систем) и /usr/bin/X11 (содержит двоичные файлы для системы окон X Window).

Из другой статьи этой серии "Изучаем Linux 101: работа с жесткими и символическими ссылками" вы узнали, как убедиться в том, что на самом деле три этих файла представляют собой одну и ту же команду gawk, как показано в листинге 5.

Листинг 5. Команды awk ведут к команде gawk
ian@attic4:~> ls -l $(which -a awk)
lrwxrwxrwx 1 root root 4 2010-02-09 00:46 /bin/awk -> gawk
lrwxrwxrwx 1 root root 8 2010-02-09 00:46 /usr/bin/awk -> /bin/awk
lrwxrwxrwx 1 root root 8 2010-02-09 00:46 /usr/bin/X11/awk -> /bin/awk

Команда type

Существует несколько команд, которые не может обнаружить команда which, например, встроенные команды интерпретатора. Команда type является встроенной командой, сообщающей о том, как переданная командная строка оценивается для выполнения. В листинге 6 используются команды which и type, которые показывают, что команда type не является исполняемым файлом переменной PATH, а представляет собой встроенную команду интерпретатора.

Листинг 6. Использование команды type
ian@attic4:~> which type
which: no type in (/usr/lib64/mpi/gcc/openmpi/bin:/home/ian/bin:/usr/local/bin:/usr/bin:/
bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/l
ib/mit/sbin)
ian@attic4:~> type type
type is a shell builtin

Команда whereis

Если вам нужна более подробная информация, а не просто местоположение программы, используйте команду whereis. Например, можно искать man-страницы или другую информацию, как показано в листинге 7.

Listing 7. Using whereis to find man pages
ian@attic4:~> whereis awk
awk: /bin/awk /usr/bin/awk /usr/lib64/awk /usr/bin/X11/awk /usr/share/awk 
/usr/share/man/man1/awk.1.gz /usr/share/man/man1p/awk.1p.gz

Обратите внимание на то, что копия команды awk, расположенная в директории /sbin, не была найдена командой whereis. Директории, используемые командой whereis, фиксированы, поэтому вы не всегда можете найти то, что ищете. Команда whereis также позволяет искать исходные файлы, указывать альтернативные пути поиска, а также искать необычные элементы. Чтобы узнать, как определить поведение команды whereis или изменить используемые ей фиксированные пути, обратитесь к man-страницам.


Команда find

Из статьи "Изучаем Linux 101: управление файлами и директориями" вы узнали, как искать файлы по имени (в том числе, с использованием групповых символов), пути, размеру или дате. Из другой статьи этой серии "Изучаем Linux 101: работа с жесткими и символическими ссылками" вы узнали, как находить ссылки к определенному файлу или индексному дескриптору inode.

Команда find – это самый универсальный инструмент среди утилит поиска в Linux. Две другие полезные возможности команды find – это поиск файлов по имени пользователя или группы, а также поиск на основе разрешений.

Предположим, вам необходимо узнать, какие файлы в иерархии /tmp принадлежат определенному пользователю. В листинге 8 показано, как пользователь root может найти все файлы пользователя ian, расположенные в директории /tmp.

Листинг 8. Поиск файлов по пользователю и группе
attic4:~ # find /tmp -user ian
/tmp/kde-ian
/tmp/kde-ian/closeditems
/tmp/kde-ian/closeditems/_1.66
/tmp/kde-ian/systemsettingsR27913.tmp
/tmp/.ICE-unix/2288
/tmp/orbit-ian
/tmp/orbit-ian/linc-12f7-0-33cb4ce9b1fbf
/tmp/orbit-ian/linc-7d00-0-70e5ebaa4ddac
/tmp/orbit-ian/linc-12ea-0-68260abbd2051
/tmp/orbit-ian/linc-12ea-0-3377ca55c0bd2
/tmp/ksocket-ian
/tmp/ksocket-ian/klauncherMT2183.slave-socket
...

Можно также искать файлы по группам, используя для этого опцию -group. Если требуется найти файлы, которые не принадлежат никаким пользователям или группам системы, используйте опции -nouser и -nogroup. Как и во многих других проверках, использование символа ! инвертирует критерий поиска. Обычно я задаю для моего пользователя номер 1000, поскольку это значение используется по умолчанию в некоторых системах. Также я создаю группу с именем ian и номером 1000. В других системах нумерация может начинаться с 500, а новые пользователи по умолчанию могут помещаться в группу 'users'. Некоторые архивы моих исследований, созданные в операционной системе Red Hat 6.2, содержат пользователя с номером 500. В листинге 9 показано, как найти директории, владельцем которых не является группа моего текущего пользователя. Владельцем директории research/rh62/involution является пользователь с номером 500 и группа с номером 4, которых не существует в моей текущей системе. Для поиска файлов или директорий по числовому идентификатору пользователя или группы используйте опции -uid и -gid.

Листинг 9. Поиск директорий, владельцем которых не является Ян
ian@attic4:~> find -L research -maxdepth 2 -type d ! -group ian
research/rh62/involution
research/rh62/programs
research/lost+found
find: `research/lost+found': Permission denied
ian@attic4:~> ls -ld research/rh62/involution
drwxr-xr-x. 2 500 4 4096 1999-11-10 08:09 research/rh62/involution

Для поиска файлов на основе разрешений используйте опцию -perm и символические выражения, подобные выражениям, используемым в командах chmod или umask. Можно выполнять поиск на основе точных разрешений, но обычно удобнее ставить перед выражением разрешений дефис, который означает, что необходимо найти файлы, для которых установлены указанные разрешения, не принимая во внимание другие разрешения. В листинге 10 приведен пример поиска файлов, которые могут быть запущены пользователем, группой и всеми остальными, а также показаны два различных способа поиска файлов, которые не могут быть прочитаны другими пользователями.

Листинг 10. Поиск файлов на основе разрешений
ian@attic4:~> find . -maxdepth 1 -type f -perm -uga=x
./.xinitrc.template
ian@attic4:~> ls -l ./.xinitrc.template
-rwxr-xr-x 1 ian users 1446 2010-02-09 08:55 ./.xinitrc.template
ian@attic4:~> find . -maxdepth 1 ! -perm  -o=r
./.Xauthority
./.pulse
...
ian@attic4:~> find . -maxdepth 1 ! -perm  -0004
./.Xauthority
./.pulse
...

Мы рассмотрели несколько основных типов поиска, которые можно выполнять с помощью команды find. Чтобы дополнительно отфильтровать результаты поиска, можно одновременно использовать несколько выражений (в том числе регулярные выражения). Если вы хотите узнать больше об этой многофункциональной команде, обратитесь к man-страницам, а еще лучше – используйте команду info find (если на вашем компьютере установлена система info-документации).

В листинге 11 приведен заключительный пример поиска с помощью команды find, в котором сначала выполняется переход в директорию /usr/include (чтобы листинг не оказался слишком длинным), а затем выполняется поиск всех файлов, содержащих слово packet в их пути (без учета регистра). Далее, во втором примере полученные результаты поиска ограничиваются файлами размером не менее 1500 байтов, не являющимися директориями. Результаты, полученные на вашем компьютере, могут оказаться другими в зависимости от установленных на нем пакетов.

Листинг 11. Заключительный пример использования команды find
ian@attic4:/usr/include> find . -iregex ".*packet.*"
./c++/4.4/java/net/DatagramPacket.h
./c++/4.4/gnu/classpath/jdwp/processor/PacketProcessor.h
./c++/4.4/gnu/classpath/jdwp/transport/JdwpPacket.h
./c++/4.4/gnu/classpath/jdwp/transport/JdwpReplyPacket.h
./c++/4.4/gnu/classpath/jdwp/transport/JdwpCommandPacket.h
./netpacket
./netpacket/packet.h
./net/if_packet.h
./linux/if_packet.h
ian@attic4:/usr/include> find . -iregex ".*packet.*" ! -type d -size +1500c
./c++/4.4/java/net/DatagramPacket.h
./c++/4.4/gnu/classpath/jdwp/transport/JdwpPacket.h
./netpacket/packet.h
./linux/if_packet.h

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


Команды locate и updatedb

Команда find выполняет поиск по всем указанным директориями при каждом ее запуске. Чтобы ускорить процесс, вы можете использовать другую команду locate, которая не выполняет каждый раз поиск в файловой системе, а вместо этого использует базу данных, в которой хранится информация о путях.

Команда locate

Команда locate выполняет поиск файлов в базе данных, которая обычно ежедневно обновляется по заданию cron.

Команда locate ищет совпадения по любой части пути, а не только по имени файла. Поместите имя файла в одиночные кавычки и используйте как минимум один символ подстановки файловых имен, чтобы результаты были более точными. В листинге 12 показано, как найти все пути, содержащие строку bin/ls, и приведены два примера использования символов подстановки файловых имен для ограничения вывода.

Листинг 12. Использование команды locate для поиска путей и ограничения вывода
ian@attic4:~> locate /bin/ls
/bin/ls
/bin/lsmod
/usr/bin/lsattr
/usr/bin/lsb_release
/usr/bin/lscpu
/usr/bin/lsdev
/usr/bin/lshal
/usr/bin/lsof
/usr/bin/lsscsi
/usr/bin/lsusb
ian@attic4:~> locate '\/bin/ls'
/bin/ls
ian@attic4:~> locate '/bin/ls*'
/bin/ls
/bin/lsmod

Команда updatedb

База данных, используемая командой locate по умолчанию, хранится в файловой системе /var, например, в виде файла /var/lib/locatedb. Это местоположение может быть другим в операционных системах, в которых установлены пакеты slocate или mlocate, обеспечивающие дополнительную безопасность или скорость работы. Статистику базы данных locate можно посмотреть с помощью команды locate -S, как показано в листинге 13.

Листинг 13. Статистика locatedb
ian@attic4:~> locate -S
Database /var/lib/locatedb is in the GNU LOCATE02 format.
Locate database size: 3011297 bytes
All Filenames: 259149
File names have a cumulative length of 15751703 bytes.
Of those file names,

        11421 contain whitespace,
        0 contain newline characters,
        and 0 contain characters with the high bit set.
        Compression ratio 80.88% (higher is better)

База данных создается и обновляется с помощью команды updatedb. Обычно это ежедневно выполняется по заданию cron. Конфигурационным файлом команды updatedb является файл /etc/updatedb.conf (или иногда /etc/sysconfig/locate). Для включения ежедневного обновления пользователь root должен отредактировать файл /etc/updatedb.conf и установить параметр DAILY_UPDATE=yes. Для немедленного создания базы данных выполните команду updatedb от имени пользователя root.

Другими областями применения команды locate являются система безопасности и сетевой файловый ввод/вывод для ежедневного создания базы данных updatedb. Для получения подробной информации обратитесь к man-страницами и изучите конфигурационные файлы updatedb.


Директории FHS в корневой файловой системе

Целью стандарта FHS является минимизация размера корневой файловой системы. Тем не менее, она должна содержать все файлы, необходимые для загрузки, восстановления и устранения ошибок системы, в том числе утилиты, которые могут потребоваться для этих задач опытному администратору. Заметьте, что процесс загрузки требует присутствия в корневой файловой системе всех файлов, необходимых для монтирования других файловых систем.

В таблице 2 описано назначение директорий, которые должны присутствовать в корневой файловой системе (/) в соответствии со стандартом FHS. Необходимо, чтобы это была либо сама директория, либо символическая ссылка на нее, за исключением директорий, отмеченных как необязательные и необходимых только в случае использования соответствующей подсистемы.

Таблица 2. Корневая файловая система FHS
Директория Назначение
bin Базовые двоичные файлы команд.
boot Статические файлы загрузчика.
dev Файлы устройств.
etc Конфигурация конкретного компьютера.
lib Необходимые общие библиотеки и модули ядра.
media Точка монтирования для съемных носителей.
mnt Точка монтирования для временного монтирования файловых систем.
opt Пакеты дополнительного программного обеспечения.
sbin Необходимые системные двоичные файлы.
srv Данные для системных служб.
tmp Временные файлы.
usr Вторичная иерархия.
var Переменные данные.
home Домашние директории пользователей (необязательная).
lib<qual> Необходимые общие библиотеки альтернативного формата (необязательная).
root Домашняя директория пользователя root (необязательная).

Иерархии /usr и /var

Иерархии /usr и /var являются достаточно сложными, и полностью описывающих их разделов стандарта FHS не существует. Файловая система /usr – это вторая по значимости иерархия файловой системы, содержащая общие данные, предназначенные только для чтения. С ней можно работать в нескольких системах, хотя в настоящее время это редко используется на практике.

Файловая система /var содержит переменные файлы, включая буферные директории и файлы, системные журналы, данные для администрирования и временные файлы. Некоторые ветви файловой системы /var нельзя использовать в нескольких системах, тогда как другие ветви, такие как /var/mail, /var/cache/man, /var/cache/fonts и /var/spool/news – можно.

Если выхотите подробно разобраться в стандарте FHS, прочтите соответствующий документ (см. раздел Ресурсы).

Ресурсы

Научиться

  • Оригинал статьи: Learn Linux, 101: Find and place system files (EN).
  • Используйте перечень материалов для подготовки к экзаменам LPIC-1 для поиска статей developerWorks, которые помогут вам подготовиться к сдаче экзаменов программы сертификации LPIC-1, основанной на целях по состоянию на апрель 2009 года.
  • На Web-сайте программы сертификации LPIC (EN) вы найдете подробные цели, списки задач и примерные вопросы всех трех уровней сертификации на администратора Linux-систем профессионального института Linux. В частности, на этом сайте представлены цели экзаменов LPI 101 и LPI 102 по состоянию на апрель 2009 года. Всегда обращайтесь к Web-сайту программы сертификации LPIC, чтобы узнать последние цели.
  • Просмотрите всю серию статей для подготовки к экзаменам института LPI (EN) на сайте developerWorks, основанных на предыдущих целях, определенных до апреля 2009 года, чтобы изучить основы администрирования Linux и подготовиться к экзаменам для получения сертификата администратора Linux.
  • Посетите домашнюю страницу Стандарта иерархии файловой системы (Filesystem Hierarchy Standard, FHS) (EN).
  • Узнайте о стандарте Linux Standard Base (LSB) (EN) – проекте группы Free Standards Group (FSG), целью которого является стандартизация внутренней структуры операционных систем, основанных на Linux.
  • Web-сайт Linux Documentation Project (EN) содержит большое количество полезной документации, в особенности, HOWTO-руководств.
  • В разделе Linux сайта developerWorks можно найти сотни пошаговых инструкций и руководств, загрузить программные продукты, а также получить ссылки на форумы и многие другие ресурсы, ориентированные на разработчиков и администраторов Linux.

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=782406
ArticleTitle=Изучаем Linux, 101: Поиск и правильное размещение системных файлов
publish-date=12222011