Справочник по Debian

         

/Dev/null и прочее


Файл /dev/null - это специальный файл устройства, который обрасывает все то, что Вы в него записываете. Если Вам что-то не нужно, направьте это в /dev/null. Это в сущности бездонная яма. Если же Вы читаете файл /dev/null, то сразу получите символ конца файла (EOF).

Файл /dev/zero очень похож, но только если Вы читате его, то получите символ \0 (это не тоже самое, что ASCII-код цифры ноль). Смотрите .



Команда &


команда выполняется в дочернем командном интерпретаторе в фоновом режиме. Задания в фоновом режиме позволяют пользователям запустить множество программ через один единственный командный интерпретатор.

Управление фоновыми процессаами осуществляется через встроенные команды: jobs, fg, bg и stop. Пожалуйста изучите man-страницу bash(1) в части описаний "SIGNALS", "JOB CONTROL" и "SHELL BUILTIN COMMANDS". []



Стандартный поток вывода команды команда1


Стандартный поток вывода команды команда1 направляется в стандартный поток ввода команды команда2. Обе команды могут выполняться одновременно. Этот механизм называется программным каналом.

Номер устройства


Номер устройства отображается при выполнении команды ls:

$ ls -l /dev/hda /dev/ttyS0 /dev/zero brw-rw---- 1 root disk 3, 0 Mar 14 2002 /dev/hda crw-rw---- 1 root dialout 4, 64 Nov 15 09:51 /dev/ttyS0 crw-rw-rw- 1 root root 1, 5 Aug 31 03:03 /dev/zero

Здесь

Файл /dev/hda имеет старший номер устройства 3 и младший номер устройства 0. Файл доступен для чтения/записи пользователем из группы disk.

Файл /dev/ttyS0 имеет старший номер устройства 4 и младший номер устройства 64. И он доступен для чтения/записи пользователем из группы dialout и



Файл /dev/zero имеет страший номер устройства 1 и младший номер устройства 5. Доступен для чтения/записи всеми пользователями.

В системах постарше процесс установки создавал файлы устройств при помощи команды /sbin/MAKEDEV. Смотрите MAKEDEV(8).

В более новых системах файловая система в /dev автоматически наполняется при помощи файловой системы устройств, как это делается, например, в /proc.



и команда2 выполняются


Команды команда1 и команда2 выполняются последовательно.

Выполняется команда команда1. Если она


Выполняется команда команда1. Если она завершается успешно, за ней последовательно выполняется команда команда2. Код возврата будет успешным, если обе команды команда1
и команда команда2 завершились успешно.

Выполнятеся команда команда1. Если она


Выполнятеся команда команда1. Если она завершается с ошибкой, последовательно запускается команда команда2. Код возврата будет успешным, если хотя бы одна из команд завершилась успешно.

Команда > foo


Перенаправить стандартный поток вывода команды команда в файл foo (с перезаписью файла, если он существует)



Команда >> foo


Перенаправить стандартный поток вывода команды команда в файл foo. (данные добавляются в конец файла)



и стандартного вывода ошибок команды


Перенаправить потоки стандартного вывода и стандартного вывода ошибок команды команда в файл foo.

Команда < foo


Содержимое файла foo направляется в стандартный поток ввода команды команда. Попробуйте следующее:

$ </etc/motd pager ... (приветствие) $ pager </etc/motd ... (приветствие) $ pager /etc/motd ... (приветствие) $ cat /etc/motd | pager ... (приветствие)

Хотя все 4 конструкции покажут одно и то же, последний пример запускает дополнительную команду cat и тем самым без причины расходует ресурсы.



Для дальнейшего изучения


На этот момент я рекомендую Вам прочесть ключевые руководства из раздела :

"Руководство системного администратора Linux",

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

пакет: sysadmin-guide

файл: /usr/share/doc/sysadmin-guide/html/index.html

web: http://www.tldp.org/LDP/sag/index.html

"Руководство администратора сети в Linux, вторая редакция",

Это единственный справочник по администрированию сети в Linux-среде.

пакет: (not available)

файл:

web: http://www.tldp.org/LDP/nag2/index.html

"Книга рецептов по Linux",

Содержит более 1,500 полезных рецептов и советов для очень занятого пользователя компьютера.

пакет: linuxcookbook (only in Woody)

файл: /usr/share/doc/linuxcookbook/cookbook_toc.html

web: http://www.tldp.org/LDP/linuxcookbook/html/index.html

Дополнительную информацию смотрите в разделе Support for Debian, Глава 15.

[ ] [ ] [ ] [ ] [ ] [ 4 ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]



Добавление пользовательской учетной записи


В процессе установки Вы обычно создаете учетную запись непривилегированногого пользователя, который будет получать электронную почту, адресованную root. [6] Если Вы не хотите использовать эту специальную учетную запись для последующего обучения, Вам нужно создать еще одну пользовательскую учетную запись.

Предположим, что Вы захотели, чтобы ее имя было penguin. Тогда следущая команда:

root@foo:root# adduser penguin

... ответьте на все вопросы

создаст ее. [] Перед тем, как идти дальше, мы должны сперва изучить еще несколько вещей.



Файловая система /proc


Файловая система /proc - это псевдо-файловая система, содержащая информацию о системе и работающих процессах.

Часто пугаются того, что один файл в этой файловой системе /proc/kcore очень большого размера. Он содержит копию (более или менее) оперативной памяти Вашего компьютера и используется для отладки ядра. Поскольку фактически он нигде не существует, то и не беспокойтесь о его размере.

Смотрите раздел и страницу proc(5).



Файловый менеджер в MC


По умолчанию отображаются две панели каталога со списками файлов. Еще один полезный режим - это когда правое окно отображает информацию о режиме доступа к файлу и пр. Далее описаны несколько важных клавишных комбинаций. С демоном gpm можно также использовать мышь. (Обязательно нажмите клавишу Shift, чтобы получить нормальное поведение операций cut и paste в MC.)

F1: Меню справки

F3: Встроенный просмотрщик файлов

F4: Встроенный редактор

F9: Вывести выпадающее меню

F10: Выход из Midnight Commander

Tab: Переход между панелями

Insert: Пометить файл для операций с множеством файлов, например, для копирования

Del: Удалить файл (будьте осторожны — установите MC в безопасный режим удаления)

Клавиши управления курсором: понятно из названия



Файлы устройств


Файлы устройств ссылаются на физические или виртуальные устройства в Вашей системе, такие как жесткий диск, видеокарта, экран или клавиатура. Пример виртуальнго устройства - консоль, представленная файлом устройства /dev/console.

Существует два типа устройств:

символьные устройства

Доступ к ним по одному символу за раз, то есть самый маленький элемент данных, который может быть записан в устройство или прочитан с устройства - символ (байт).

блочные устройства

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

Вы можете читать или записывать в файл устройства, хотя сам файл содержит двоичные данные, не очень понятные человеку. Запись данных непосредственно в такие файлы иногда полезны для решения проблем подключений оборудования. Например, Вы можете вывести текстовый файл в принтерный файл устройства /dev/lp0 или послать команды модему в соответствующий файл устройства последовательного порта /dev/ttyS0. Но делайте это аккуратно, так как это может привести к серъезным последствиям. Будьте осторожны.



Руководство по Debian


Эта секция поможет новичкам ориентироваться в мире Debian. Если Вы уже хотя бы немного использовали Unix-подобные операционные системы, то, вероятно, знакомы со всем тем, о чем я здесь пишу. Пожалуйста, используйте эту секцию для проверки своих знаний.



Именованные каналы (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



Как завершить работу системы


Как любая современная операционная система, где файловые операции используют кэширование данных в памяти, система Debian нуждается в соответствующей процедуре завершения работы системы перед тем, как питание может быть безопасно выключено без повреждения целосности файлов. Используйте следующую команду в командой строке root для завершения работы системы:

# shutdown -h now

Эта команда используется в нормальном многопользовательском режиме. Если же Вы в однопользовательском режиме, то в командной строке root используйте следующую команду:

# poweroff -i -f

Также Вы можете нажать Ctrl-Alt-Delete для завершения работы системы. [8]

Подождите, пока система не отобразит сообщение "System halted", и только тогда выключайте питание. Если функции APM или ACPI надлежащим образом включены как в BIOS, так и в Linux, то система выключит питание самостоятельно. Подробности смотрите в .



Клавиатурные комбинации клавиш в системе X Window System


Запомните следующие важные при работе в системе X Window System комбинации клавиш:

Ctrl-Alt-F1 по F6: Переключиться в соответствующий превдотерминал (из системы X Window, DOSEMU и т.д.)

Alt-F7: Вернуться назад в X Window

Ctrl-Alt-минус: Изменить разрешение экрана в системе X Window ("серый" минус)

Ctrl-Alt-плюс: Изменить разрешение экрана в системе X Window ("серый" плюс)

Ctrl-Alt-Backspace: Завершить программу X Server

Alt-X, Alt-C, Alt-V: Привычные в Windows/Mac клавиатурные комбинации Вырезать, Копировать, Вставить, нажимаемые с клавишей Ctrl, заменяются на комбинации с клавишей Alt для использования в некоторых программах, например, Netscape Composer.



Код возврата команды


Каждая команда возвращает свой статус завершения как код возврата.

код возврата равен нулю, если команда завершилась успешно.

код возврата отличен от нуля, если команда завершилась с ошибкой.

Этот код возврата сразу после завершения команды может быть получен через переменную командного интерпретатора $?.

Пожалуйста заметьте, что когда код возврата используется в логическом контексте командного интерпретатора, успешное завершение обрабатывается как логическая ИСТИНА. Это некоторым образом нелогично, так как успешное завершение соответствует значению нуль.

Смотрите также .



Концепция файловой системы в Debian


По традициям Unix система Debian имеет файловую систему, ниже которой находятся физические данные жестких дисков и других устройств хранения информации, а также в унифицированном виде реализованы механизмы взаимодействия с оборудованием, таким как консольные экраны, удаленные последовательные консоли.

Каждый файл, каталог, именованный канал или физическое устройство в системе Debian имеет структуру данных, называющуюся индексным дескриптором (inode), который описывает связанные атрибуты, такие как владелец файла, группа, которая владеет файлом, время последнего доступа к файлу и пр. Точное описание структуры inode в системе Debian GNU/Linux смотрите в документе /usr/include/linux/fs.h.

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

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



Меню в системе X Window System


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

Чтобы получить командную строку, запустите Xterm из меню:

"XShells" --> "XTerm".

Для графического просмотра web-страниц запустите Mozilla из меню:

"Apps" --> "Net" --> "Mozilla Navigator".

Для графического просмотра PDF-файлов запустите Xpdf из меню:

"Apps" --> "Viewers" --> "Xpdf".

Если Вы не нашли нужный элемент в меню, установите требуемые пакеты. Смотрите раздел .



Midnight Commander (MC)


Midnight Commander (MC) - это "Швейцарский армейский нож" от проекта GNU, применяемый в консоли Linux и прочих терминальных средах. Он дает новичку опыт работы в консоли через меню-подобный интерфейс, который гораздо проще изучить, чем стандартные команды Unix.

Используйте эту программу для изучения системы Debian. Это самый лучший способ для изучения. Пожалуйста, исследуйте следующие несколько ключевых мест, используя клавиши управления курсором и Enter:

/etc и его подкаталоги.

/var/log и его подкаталоги.

/usr/share/doc и его подкаталоги.

/sbin и /bin



Опции командной строки


Некоторые команды принимают аргументы. Аргументы, начинающиеся с - или --, называются опциями и управляют поведением команды.

$ date Mon Oct 27 23:02:09 CET 2003 $ date -R Mon, 27 Oct 2003 23:02:40 +0100

Здесь аргумент командной строки -R изменяет поведение команды date для вывода строки даты, соответствующей документу RFC-2822.



Основные команды Unix


Давайте изучим основные команды Unix. [] Выполните все следующие команды от имени непривелегированного пользователя penguin:

pwd

Отобразить имя текущего/рабочего каталога.

whoami

Отобразить имя текущего пользователя.

file foo

Отобразить тип файла foo.

type -p имя_команды

Отобразить месторасположение файла команды имя_команды.

Это же делает команда which имя_команды.

type имя_команды

Отобразить информацию по команде имя_команды.

apropos ключевое_слово

Найти команды, связанные с ключевым_словом.

Это же делает команда man -k ключевое_слово.

whatis имя_команды

Отобразить однострочное пояснение по команде имя_команды.

man -a имя_команды

Отобразить краткое пояснение по команде имя_команды. (Unix-стиль)

info имя_команды

Отобразить более полное объяснение по команде имя_команды. (стиль GNU)

ls

Вывести содержимое каталога. (нескрытые файлы и каталоги) [20]

ls -a

Вывести содержимое каталога. (все файлы и каталоги)

ls -A

Вывести содержимое каталога. (почти все файлы и каталоги, т.е. пропускаются файлы ".." и ".")

ls -la

Вывести все содержимое каталога с подробной информацией. Смотрите Концепция файловой системы в Debian, раздел 4.5.2.

ls -d

Выводит все подкаталоги каталоги в текущем каталоге.

lsof foo

Вывести состояние файла foo с точки зрения - открыт он или нет.

mkdir foo

Создать новый каталог foo в текущем каталоге.

rmdir foo

Удалить каталог foo в текущем каталоге.

cd foo

Перейти в каталог foo, находящийся в текущем каталоге или описанный в переменной CDPATH. Смотрите описание команды cd в builtins(7).

cd /

Перейти в корневой каталог.

cd

Перейти в домашний каталог текущего пользователя.

cd /foo

Перейти в каталог по полному пути /foo.

cd ..

Перейти в родительский каталог.

cd ~foo

Перейти в домашний каталог пользователя foo.

cd -

Перейти в предыдущий каталог.

</etc/motd pager

Отобразить содержимое файла /etc/motd, используя программу постраничного вывода по умолчанию. Смотрите команда < foo, раздел 4.3.10.9. []




touch junkfile





Создать пустой файл junkfile.



cp foo bar





Копировать существующий файл foo в новый файл bar.



rm junkfile





Удалить файл junkfile.



mv foo bar





Переименовать существующий файл foo в новый файл bar.



mv foo bar/baz





Переместить существующий файл foo в новое месторасположение под новым именем bar/baz. Каталог bar/ должен существовать.



chmod 600 foo





Сделать существующий файл foo недоступным для чтения и записи для всех пользователей, кроме владельца, и запретить выполнение для всех пользователей.



chmod 644 foo





Разрешить чтение и запретить запись в существующий файл foo всем пользователям, кроме владельца, выполнение запрещено всем.



chmod 755 foo





Разрешить чтение и запретить запись в существующий файл foo всем пользователям, кроме владельца, выполнение файла разрешено всем пользователям.



top





Показать информацию о процессах на весь экран. Используйте "q" для выхода.



ps aux | pager





Показать информацию о всех выполняющихся процессах в стиле вывода системы BSD. Смотрите .



ps -ef | pager





Показать информацию о всех выполняющихся процессах в стиле вывода системы Unix System-V.



ps aux | grep -e "[e]xim"





Показать все выполняющиеся процессы exim. Регулярные выражения для поиска можно изучить на man-странице grep(1), получить которую можно, набрав man grep.



ps axf | pager





Показать информацию о всех выполняющихся процессах, используя вывод в стиле "ASCII art".



kill 1234





Убить процесс по его идентификатору процесса: 1234. Смотрите Kill a process, раздел 8.5.1.



grep -e "образец" *.html





Найти "образец" во всех файлах, заканчивающихся на .html в текущем каталоге и показать их всех.



gzip foo





Сжать файл foo и создать файл foo.gz, используя кодирование Lempel-Ziv (LZ77).



gunzip foo.gz





Разжать файл foo.gz для создания файла foo.



bzip2 foo





Сжать файл foo и создать файл foo.bz2, используя алгоритм "Burrows-Wheeler block sorting text compression algorithm" и Huffman-кодирование. (Обеспечивает лучшее сжатие, чем gzip)





bunzip2 foo.bz2





Разжать файл foo. bz2 для создания файла foo.



tar -xvvf foo.tar





Извлечь файлы из архива foo.tar.



tar -xvvzf foo.tar.gz





Извлечь файлы из архива foo.tar.gz, сжатого gzip.



tar -xvvf --bzip2 foo.tar.bz2





Извлечь файлы из архива foo.tar.bz2. [22]



tar -cvvf foo.tar bar/





Архивировать содержимое каталога bar/ в архивный файл foo.tar.



tar -cvvzf foo.tar.gz bar/





Архивировать содержимое каталога bar/ в сжатый архивный файл foo.tar.gz.



tar -cvvf --bzip2 foo.tar.bz2 bar/





Архивировать содержимое каталога bar/ в сжатый архивный файл foo.tar.bz2. []



zcat README.gz | pager





Отобразить содержимое сжатого файла README.gz, используя программу постраничного вывода по умолчанию.



zcat README.gz > foo





Создать файл foo с разжатым содержимым файла README.gz.



zcat README.gz >> foo





Добавить разжатое содержимое файла README.gz в конец файла foo. (Если файл не существует, то сначало создать его.)



find . -name шаблон





Искать имена файлов, соответствующие шаблону шаблон. (медленно)



locate -d . шаблон





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

Пожалуйста, походите по каталогам и изучите систему, используя ранее описанные команды, для тренировки. Если у Вас есть вопросы по любой из консольных команд, будьте добры прочесть соответствующую man-страницу. Например, данные команды хороши для старта:

$ man man $ man bash $ man ls

Также неплохо запустить vim и нажать клавишу F1. Вам нужно прочесть не менее 35 строк. Затем пройдите онлайновый курс обучения, передвинув курсор к |tutor| и нажав Ctrl-]. Смотрите Editors, Глава 11 для дополнительного изучения редакторов.

Пожалуйста заметьте, что многие Unix-команды, включая из GNU и BSD, будут показывать краткую справочную информацию, если Вы вызовете их одним из следующих способов (или, в некоторых случаях, без аргументов вовсе):

$ имя_команды --help $ имя_команды -h

Для самоподготовки также посмотрите примеры из .


Основы файлов Unix


Вот несколько основых положений:

Имена файлов являются зависимыми от регистра. То есть, файл MYFILE и файл MyFile являются различными файлами.

На корневой каталог (root) обычно ссылаются по имени /. Не путайте этот "root" с пользователем root. Смотрите Вход в систему как пользователь root, раздел 4.1.1.

Каждый каталог имеет имя, которое может состоят из любых букв или символов, кроме символа /. [28] Корневой каталог является исключением, его имя - / (произносится как "слеш" или "корневой каталог") и не может быть переименовано.

На каждый файл или каталог можно сослаться по полному имени файла, абсолютному имени файла или через путь, указав последовательность каталогов, через которые нужно пройти, чтобы достичь файла. Все три термина являются синонимами. Все абсолютные имена начинаются с каталога / и существует символ / между каждым каталогом или именем файла. Первый символ / - это имя каталога, а все последующие являются просто разделителями, чтобы отделить части имени файла друг от друга.

Чтобы не запутаться, посмотрите на следующий пример:

/usr/share/keytables/us.map.gz

Это полное имя файла, иногда некоторые называют его путем. Однако, на файл можно сослаться просто по его имени us.map.gz. []

Корневой каталог имеет множество ответвлений (подкаталогов - прим. переводчика), такие как /etc или /usr. Эти подкаталоги в свою очередь содержат еще подкаталоги, такие как /etc/init.d или /usr/local соответственно. Все это вместе называется деревом каталогов.

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

Существуют также относительные пути, которые начинаются с места, отличного от корневого каталога. Вам нужно запомнить, что каталог ../

ссылается на родительский каталог.

Не существует каталога, который бы соответствовал физическому устройству, например, Вашему жесткому диску. В этом отличие Unix от операционных систем CP/M, DOS и Windows, где все пути начинаются с имени устройства, например, C:\. Смотрите .

Хорошо описанные примеры по иерархии файлов есть в документе Стандарт на иерархию файловой системы. Вам же для начала нужно запомнить следующие факты:

/

Просто символ / обозначает корневой каталог.

/etc

Здесь размещаются конфигурационные файлы системы.

/var/log

Здесь размещаются системные лог-файлы (журналы событий - прим. переводчика).

/home

Здесь размещаются домашние каталоги все непривелегированных пользователей.



Особенности командной строки в MC


Любая команда cd изменяет каталог, отображаемый на выбранной панели.

Ctrl-Enter или Alt-Enter копирует имя файла в командную строку. Используйте это для команд cp или mv совместно с редактированием командной строки.

Alt-Tab покажет список выбора командного интерпретатора с возможными именами файлов.

Можно задать стартовые каталоги для обеих панелей через аргументы MC; например так: mc /etc /root.

Esc + цифра == Fn (т.е., Esc + `1' = F1, и так далее; Esc + `0' = F10)

Клавиша Esc == Клавише Alt (= Meta, M-); т.е., ввод Esc + `c' соответствует Alt-C.



Переключение между виртуальными консолями


В системе Debian по умолчанию существует шесть независимых превдотерминалов, т.е. Вы можете использовать текстовый консольный экран VGA Вашего персонального компьютера как 6 переключаемых терминалов VT-100. Переключение между терминалами осуществляется одновременным нажатием клавиши левый-Alt и одной из функциональных F1–F6. Каждый псевдотерминал позволяет независимую регистрацию в системе. Это является проявлением такой важной черты Unix, как многопользовательность.

Если Вы случайно нажали Alt-F7 на системе с работающей системой X Window и видите графический экран, то для возврата к текстовым консолям нажмите Ctrl-Alt-F1. Для тренировки просто попытайтесь попереключаться на другую консоль и возвращаться назад.



Права доступа к файлам и каталогам


Права доступа к файлу и каталогу определяются индивидуально для каждой из трех следущих категорий пользователей:

для пользователя, который владеет этим файлом (u),

для пользователей из группы, владеющей данным файлом (g) и

для всех остальных пользователей(o).

Для файла соответствующие права доступа позволяют соответственно:

право чтения (r): изучить содержимое файла

право записи (w): изменять файл

право выполнения (x): выполнять файл как команду.

Для каталога права доступа позволяют соответственно:

право чтения (r): получать список содержимого каталога

право записи (w): добавлять или удалять файлы в каталог

право выполнения (x): получать доступ к файлам.

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

Чтобы отобразить информацию о правах доступа (и многую другую) на файлы и каталоги используется программа ls. Смотрите ls(1). Когда программа ls запускается с опцией -l, она показывает следующую информацию в указанном порядке:

тип файла (первый символ)

-: обычный файл

d: каталог

l: символическая ссылка

c: файл символьного устройства

b: файл блочного устройства

p: именованный канал

s: сокет

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

количество ссылок на файл

имя пользователя, владеющего файлом

имя группы, владеющей файлом

размер файла в символах (байтах)

дата и время файла (mtime)

имя файла.

Чтобы изменить владельца файла, используется программа chown, запущенная от имени учетной записи root. Чтобы изменить группу файла, используется программа chgrp, запущенная от имени учетной записи владельца файла или root. Для изменения прав доступа к файлу или каталогу используется программа chmod, запущенная от имени пользователя-владельца файла/каталога или от имени пользователя root. Основной синтаксис работы с файлом-примером foo следующий:


# chown новый_владелец foo # chgrp новая_группа foo # chmod [ugoa][+-=][rwx][,...] foo

Подробности смотрите в соответствующих man-страницах chown(1), chgrp(1) и chmod(1).

Например, чтобы для некоторого дерева каталогов задать владельцем пользователя foo и сделать группу bar, владеющей этим деревом, выполните следующие команды от имени пользователя root:

# cd /некий/каталог/ # chown -R foo:bar . # chmod -R ug+rwX,o=rX .

Существует три бита специальных прав:



set user ID (в выводе ls выводится как s или S в позиции права выполнения для владельца),



set group ID (в выводе ls выводится как s или S в позиции права выполнения для группы),



sticky bit (в выводе ls выводится как t или T в позиции права выполнения для прочих).

В выводе команде ls -l бит специального права выводится заглавной буквой (S или T), если бит выполнения, который он скрыл собой, не установлен, и наоборот.

Установка бита set user ID на выполняемый файл позволяет пользователю выполнить этот файл от имени владельца файла (например, root) Подобным образом, установка бита set group ID на выполняемый файл позволяет выполнить данный файл от имени группы, владеющей этим файлом, например, от имени группы root). Так как эти установки могут создать серъезную дыру в безопасности системы, устанавливайте эти биты очень внимательно.

Установка бита set group ID на каталог включает схему создания файлов как системах BSD, где все файлы созданные в данном каталоге будут принадлежать группе group, владеющей этим каталогом.

Установка бита sticky bit на каталог предотвращает удаление файлов в каталоге пользователями, ими не владеющими. Для защиты содержимого файла в каталоге, в который разрешена запись всем, например, /tmp, или в каталоге, в который разрешена запись некоторой группе, нужно не только снять право записи в файл, но и установить бит 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

В командах chmod(1) существует альтернативный числовой способ описания прав на файлы. Этот числовой способ использует трех-четырехзначные восьмеричные (основание системы счисления = 8) числа. Каждая цифра соответствует:



Первая необязательная цифра: сумма атрибута set user ID (вес = 4), атрибута set group ID (вес = 2) и sticky bit (вес = 1)



Вторая цифра: сумма атрибута чтение (вес = 4), атрибута запись (вес = 2) и атрибута выполнения (вес = 1), относящиеся к списку прав пользователя



Третья цифра: то же самое для группы



Четвертая цифра: то же самое для прочих пользователей

Это выглядит сложновато, но на самом деле все очень просто. Если вы посмотрите на первые несколько столбцов (2-10) вывода команды ls -l и проинтерпретируете их как двоичное (с основанием = 2) представление прав на файл ("-" означает "0", а "r", "w", "x" означает "1"), то полученное число, переведенное в восьмеричную систему счисления будет являться восьмеричным представлением прав на файл. [] Попробуйте для примера:

$ 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

Маска прав на файл по умолчанию может быть установлена встроенной командой командного интерпретатора umask. Смотрите страницу builtins(7).


Программа просмотра в MC


Представляет собой очень интеллектуальную программу. Это великолепный инструмент для поиска слов в документах. Я использую эту возможность для файлов в каталоге /usr/share/doc. Это самый быстрый способ просмотреть множество информации по Линукс. Программа просмотра может быть непосредственно запущена таким образом:

$ mc -v имя_файла_для_просмотра



Простая команда


Простая команда - это последовательность, состоящая из:

необязательных присвоений переменных

имени команды

необязательных аргументов

необязательных перенаправлений (> , >> , < , << и пр.)

необязательного оператор контроля (&& , ; <newline> , ; , & , ( , ) )

Для более сложных команд с кавычками и заменами смотрите Command-line processing, раздел 13.2.6.



Псевдоним команды


Вы можете установить псевдоним для часто используемой команды. Например:

$ alias la='ls -la'

Теперь la работает как сокращенная форма ls -la, которая выводит список всех файлов в полном формате (лучший вариант был предложен на кулере: alias ls='logout' - прим. переводчика ;-) )

Вы можете определить точный путь или подлинность команды, используя команду type. Например:

$ 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

Здесь недавно выполнялся поиск команды ls, а команда file искалась в первый раз, поэтому команда ls

помечена как "hashed", т.е. командный интерпретатор имеет внутренную запись для быстрого ответа на запрос о месторасположении файла ls.



Путь поиска команды


Когда Вы даете команду командному интерпретатору, он ищет ее в списке каталогов, содержащихся в переменной окружения PATH. Значение этой переменной окружения называется путем поиска командного интерпретатора.

В системе Debian по умолчанию переменная окружения PATH у пользовательской учетной записи не включает каталог /sbin. Таким образом, если Вы хотите запускать любые команды вроде ifconfig из каталога /sbin (без указания полного пути к команде - прим. переводчика), Вам нужно дополнить значение переменной PATH

каталогом /sbin. Эта переменная обычно устанавливается в стартовом файле ~/.bash_profile, подробнее Конфигурация командного интерпретатора Bash, раздел 3.2.



Редактор в MC


Встроенный редактор имеет интересную систему "вырезать-вставить". Нажатие F3 помечает начало выделения текста, повторное нажатие помечает конец выделения и высвечивает выбранный текст. Теперь Вы можете передвигать Ваш курсор. И если нажмете F6, то выделенная область будет перенесена в позицию курсора. Если же Вы нажмете F5, то выделенная область будет скопирована в позицию курсора. F2 сохраняет файл, F10 завершает работу редактора. Большинство курсорных клавиш работают так, как Вы интуитивно преполагаете.

Этот редактор может быть запущен непосредственно для работы с файлом:

$ mc -e имя_файла_для_правки $ mcedit имя_файла_для_правки

Данный редактор не является мультиоконным, но можно использовать множество линукс-консолей для достижения похожего эффекта. Чтобы копировать между окнами, для переключения между виртуальными консолями используйте клавиши Alt-Fn, а для переноса части файла в другой используйте "Файл->Вставить файл" или "Файл->Копировать в файл"

Встроенный редактор можно заменить любым внешним по Вашему выбору.

Также многие программы используют переменную окружения EDITOR или VISUAL для определения, какой редактор использовать. Если Вам неудобно в vim, установите эти переменные на mcedit, добавив следующие строки в файл ~/.bashrc:

... export EDITOR=mcedit export VISUAL=mcedit ...

По возможности я рекомендую устанавливать эти переменные на vim. Использование редактора vim предпочтительнее потому, что он (а точнее vi) всегда существует на любой Linux/Unix системе. [14]



Регулярные выражения


Регулярные выражения используются во многих инструментах обработки текста. Они очень похожи на шаблоны имен файлов командного интерпретатора (смотрите Шаблоны имени файла (wildcards) командного интерпретатора, раздел 4.3.8), но они не только сложнее, но и мощнее.

Регулярное выражение описывает шаблон соответствия и составляется из символов текста и метасимволов. Метасимвол - это простой символ со специальным смыслом. Существует два основных стиля регулярных выражений, БРВ и РРВ, в зависимости от текстовых инструментов, описанных в Традиционная для Unix обработка текста, раздел 4.4.

Для РРВ метасимволы включают "\ . [ ] ^ $ * + ? ( ) { } |". Регулярное выражение означает:

c

соответствие неметасимволу "c".

\c

соответствие символу, определяемому escape-последовательностью "c", или, если "c" не escape-последовательность, то просто символу "c".

.

соответствие любому символу, включая символ новой строки.

^

соответствие началу строки.

$

соответствие концу строки.

\<

соответствие началу слова.

\>

соответствие концу слова.

[abc...]

соответствие любому символу из списка "abc...".

[^abc...]

отсутствие соответствия любому символу из списка "abc...".

r*

соответствие регулярному выражению "r", повторенному ноль или большее количество раз.

r+

соответствие регулярному выражению "r", повторенному один или большее количество раз.

r?

соответствие регулярному выражению "r", повторенному ноль или один раз.

r1|r2

соответствие регулярному выражению "r1" либо регулярному выражению "r2".

(r1|r2)

соответствие регулярному выражению "r1" либо "r2"; конструкция обрабатывается как регулярное выражение, заключенное в скобки.

В БРВ метасимволы "+ ? ( ) { } |" теряют свое особое значение, взамен используйте те же символы с обратным слешем впереди "\+ \? \( \) \{ \} \|". Поэтому конструкция с скобками (r1|r2), записанная с использованием БРВ, должна быть в виде \(r1|r2\). Однако программа emacs, использующая БРВ, обрабатывает символы "+ ?" как метасимволы. То есть нет необходимости предворять их обратным слешем. Смотрите , чтобы узнать, как используются конструкции со скобками.

Например, программа grep может быть использована для выполнения поиска текста с использованием регулярных выражений:

$ 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



Шаблоны имени файла (wildcards) командного интерпретатора


Часто Вам нужно, чтобы команда работала с группой файлов без набора всех их имен. Для описания группы файлов используются шаблоны имени файла командного интерпретатора:

*

Соответствует любой группе из нуля и более символов.

Не соответствует имени файла с "." в начале.

?

Соответствует ровно одному символу.

[...]

Соответствует ровно одному символу из тех, что заключены в скобки.

[a-z]

Соответствует ровно одному символу из тех, что между a и z.

[^...]

Соответствует ровно одному символу, если он не среди тех, что перечислены в скобках (символ "^" - спецсимвол и здесь на соответствие не проверяется).

Для примера попробуйте следующие команды и поразмышляйте над полученными результатами:

$ 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



Сокеты


Сокеты очень похожи на именованные каналы (FIFO) и позволяют процессам обмениваться информацией. В случае с сокетом эти процессы не обязаны выполняться на одной и тоже машине или быть потомками одного и тоже родительского процесса. Это конечная точка в в межпроцессном взаимодействии. Обмен информации может происходить через сеть между различными компьютерами.



Специальные комбинации клавиш


В традиционной unix-среде существует несколько комбинаций клавиш, которые имеют специальный смысл. []

Ctrl-U: Удалить строку перед курсором.

Ctrl-H: Удалить символ перед курсором.

Ctrl-D: Завершить ввод. (при применении в командном интерпретаторе - выход из него)

Ctrl-C: Завершить выполняющуюся программу.

Ctrl-Z: Временно остановить программу. (поместить ее в фоновое задание, смотрите )

Ctrl-S: Остановить вывод на экран. []

Ctrl-Q: Продолжить вывод на экран.

Командный интерпретатор по умолчанию, bash, имеет возможности по хранению истории команд командной строки и tab-completion для повышения интерактивности.

стрелка вверх: начинает поиск в истории команд.

Ctrl-R: начинает инкрементальный поиск в истории команд.

TAB: Завершает ввод имени файла в командной строке.

Ctrl-V TAB: Ввод символа табуляции TAB в командую строку без expansion.

Запомните еще несколько важных комбинаций клавиш:

Ctrl-Alt-Del: Перезагрузка/останов системы, смотрите Установка дополнительных пакетов после первоначальной инсталляции, раздел 3.7.1.

Левая клавиша мыши совместно с передвижением мыши: выделение и копирование текста в буфер обмена.

Нажатие средней кнопки мыши: Вставить текст из буфера обмена в позицию курсора.

Meta-клавиша (в терминологии Emacs) назначена по традиции на левую клавишу Alt. Некоторые системы могут быть настроены использовать Windows-клавишу в качестве Meta-клавиши.

Чтобы использовать мышь в текстовой консоли Linux, Вам нужно иметь запущенный демон gpm. [] Смотрите .



Ссылки


Существует два способа связать файл foo с другим именем файла bar.

жесткая ссылка - это имя-дубликат для существующего файла (ln foo bar),

символичесая ссылка или "symlink" - это специальный файл, который указывает на другой файл по его имени (ln -s foo

bar).

Смотрите следующий пример на предмет изменения счетчика ссылок и тонкую разницу в результате команды rm

$ 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", как это было показано в предыдущем примере, и эффективные права доступа соответствующие правам доступа файлу, на который ссылка указывает.

Каталог . является ссылкой на сам каталог, в котором он находится, то есть счетчик ссылок любого нового каталога начинается с 2. Каталог .. ссылается на родительский каталог, поэтому счетчик ссылок каталога увеличивается с добавлением новых подкаталогов.



Типовые последовательности команд


Постарайтесь запомнить следующие распространенные способы запуска команд. А после этого посмотрите части , Shell redirection, раздел 13.2.4, и .



Традиционная для Unix обработка текста


Существует несколько стандартных инструментов по обработке текста, которые очень часто используются на unix-подобных системах.

Неиспользующие регулярные выражения:

head выводит начало файлов.

tail выводит конец файлов.

sort сортирует строки текстовых файлов.

uniq удаляет строки-дубликаты из сортированного файла.

tr выполняет замену или удаление символов.

diff сравнивает построчно файлы.

Использующие базовые регулярные выражения (БРВ):

grep определяет соответствие текста с шаблоном.

ed - примитивный строковый редактор.

sed - потоковый редактор.

vi - экранный редактор.

emacs - экранный редактор.

Использующие расширенные регулярные выражения (РРВ):

egrep определяет соответствие текста с шаблоном.

awk выполняем простую обработку текста. Смотрите Awk, раздел 13.3.

perl выполняет всевозможную обработку текста. Смотрите Perl, раздел 13.4.

Смотрите , и на предмет примеров скриптов.



Традиционная для Unix рабочая среда


Хотя MC позволяет делать Вам практически все, очень важно изучить, как использовать инстументы командной строки, вызываемые из приглашения командного интерпретатора и познакомиться с рабочей средой, традиционной для Unix. [15]



Традиционная файловая система Unix


В системах GNU/Linux и других Unix-подобных операционных системах файлы размещаются в каталогах. [27] Все файлы и каталоги образуют одно большое дерево, иерархическую файловую структуру, корень которой /.

Эти файлы и каталоги могут располагаться на нескольких устройствах. Команда mount(8) занимается подключением файловой системы, найденной на некотором устройстве в единое дерево файлов. И наоборот, команда unmount(8) отсоединит файловую систему устройства из дерева файлов.



Улучшим MC


Чтобы MC изменял рабочий каталог при выходе из него, Вам нужно изменить файл ~/.bashrc (или /etc/bash.bashrc, вызываемый из .bashrc) образом, описанным на соответствующей man-странице mc(1) касательно опции -P. [12]



Установка минимальной среды окружения для новичка


Я думаю, что изучение компьютерной системы схоже с изучением нового иностранного языка. И хотя учебники достаточно полезны, Вам нужно попрактивать с подручными инструментами. В этом контексте я считаю, что хорошей идей будет установка нескольких дополнительных пакетов типа mc, vim, lynx, doc-linux-text и debian-policy. []

# apt-get update ... # apt-get install mc vim lynx doc-linux-text debian-policy ...

Если эти пакеты уже имеются в системе, то ничего не будет установлено.



Вход в систему как пользователь root


Сразу после перезагрузки системы Вам представляется либо графический экран входа в систему, либо текстовый - в зависимости от изначального выбора пакетов при установке. Для простоты, если Вы видите графический экран для входа, нажмите Ctrl-Alt-F1, чтобы перейти к текстовому экрану входа в систему. [2]

Предположим, что имя Вашей системы - foo, тогда приглашение на вход будет таким:

foo login:

Наберите root, нажмите клавишу Enter и введите пароль, который Вы указывали в процессе установки. В системе Debian согласно традиций Unix пароль чувствителен к регистру. После этого система выводит приветствие и представляет Вам приглашение командой строки пользователя root, ожидая ввода. []

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. Используйте для этого программы типа sudo(8).

В Unix cчитается хорошей привычкой регистрироваться в системе, используя непривелегированную учетную запись, даже если Вы собираетесь выполнять некую административную работу. Используйте команды sudo, super, или su -c для получения дозированных привилегий root, когда это необходимо. Смотрите Working more safely – sudo, раздел 9.2.4. []



Виртуальная FTP-файловая система MC


MC можно использовать для доступа через Интернет к файлам, используя протокол FTP. Перейдите в меню, нажав F9, затем нажмите 'p' для активации виртуальной файловой системы FTP (в моей версии MC работает клавиша 'F' - прим. переводчика) . Введите URL в форме имя_пользователя:пароль@имя_хоста.имя_домена, после чего будет осуществлена выборка удаленного каталога, который будет представлен как локальный.

Попробуйте в качестве URL указать http.us.debian.org/debian и просмотреть файловый архив Debian. Смотрите Архивы Debian, раздел 2.1

относительно того, как они (архивы) организованы.



Возможности MC по автоматическому запуску программ


Нажмите клавишу Enter на файле и соответствующая программа будет обрабатывать содержимое файла. Это очень удобная возможность MC.

выполняемый файл: Выполняет команду файл man, html-страницы: Направляет содержимое в программу просмотра файл tar.gz, deb: Отображает содержимое файла как подкаталог

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



ВременнЫе метки (Timestamps)


У файла в системе GNU/Linux cуществует три типа временных метки:

mtime: время модификации (ls -l),

ctime: время изменения состояния (ls -lc) и

atime: время последнего доступа (ls -lu).

Заметьте, что ctime не является временем создания файла.

Перезапись файла изменит каждую из временных меток mtime, ctime и atime файла.

Изменение прав доступа или владельца файла изменит временные метки ctime и atime.

Чтение файла изменит временную метку atime.

Обратите внимание, что даже простое чтение файла в системе Debian обычно приводит к операции записи с файлом для обновления временной метки atime в структуре inode. Монтирование файловой системы с опцией noatime позволит системе не делать эту операцию и приведет к повышению скорости чтения. Смотрите страницу mount(8).

Используйте команду touch(1)для изменения временных меток существующих файлов.



Время поразвлечься


Теперь Вы готовы без риска поиграть с системой Debian, так как используете учетную запись непривилегированного пользователя penguin. []

Давайте войдем в систему как пользователь penguin. Если Вы сейчас работаете как root, нажмите Ctrl-D [10] в командой строке, чтобы закрыть командный интерпретатор root'а и выйти на приглашение к входу в систему. Введите Ваше только что созданное имя пользователя penguin и его пароль. [] Вам будет показано следующее приглашение ко вводу команд.

penguin@foo:penguin$

С этого момента для простоты даваемые примеры будут использовать упрощенное приглашение ко вводу команд. Я буду использовать:

# : для обозначения ввода команд от имени root

$ : для обозначения ввода команд от имени непривилегированного пользователя

Мы начнем изучение системы Debian сначало по-простому через Midnight Commander (MC), раздел 4.2, а позже по-настоящему через .



После установки системы Debian на


После установки системы Debian на Ваш ПК Вам нужно изучить несколько полезных вещей. Я предлагаю это сделать в форме экспресс-тренировки.

Выполнение команд


Теперь Вы имеете представление о том, как использовать систему Debian. Давайте внимательно взглянем на механизм выполнения команд в системе Debian. [24]



Выполнение команды и переменные окружения


Рассмотрим следующую типовую последовательность команд: [25]

$ date Sun Oct 26 08:17:20 CET 2003 $ LC_ALL=fr_FR date dim oct 26 08:17:39 CET 2003

Здесь выполняется программа date. Переменная окружения LC_ALL:

для первой команды не установлена (равна значению по умолчанию в системе; тоже самое, что и C)

для второй команды установлена в fr_FR (французская локаль)

Обычно при выполнении команд определение переменных окружения отсутствует. Для выше приведенного примера Вы можете сделать и так:

$ LC_ALL=fr_FR $ date dim oct 26 08:17:39 CET 2003

Как Вы видете, вывод команды зависит от переменной окружения. Если же Вы хотите, чтобы переменная окружения наследовалась дочерними процессами (например, когда Вы запускаете скрипт на языке командного интерпретатора), Вам нужно "экспортировать" ее таким образом:

$ export LC_ALL



Выражения подстановки


В выражениях подстановки следующие символы имеют особое значение:

&

означает, какое регулярное выражение совпало. (в программе emacs

используйте конструкцию \&)

\n

означает совпавшее регулярное выражение, заключенное в скобки, по номеру n

Для выражений подстановки языка 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-страницы для изучения этих команд.



Запуск MC


$ mc

MC выполняет все операции с файлами через его меню, требуя от пользователя минимум усилий. Для получения справки просто нажмите F1. Вы можете поиграть с MC путем нажатий клавиш управления курсором и функциональных клавиш. [13]



Запуск системы the X Window System


Система X Window System может быть запущена автоматически при помощи специального графического демона входа навроде xdm или через ввод команды в консоли:

$ exec startx



Обновление до дистрибутива testing


Официальный документ по обновлению размещается по адресам http://www.debian.org/releases/stable/releasenotes

и http://www.debian.org/releases/testing/releasenotes

(в разработке).

Процесс обновления системы до дистрибутива testing/unstable

следующий:

если Ваша система - Potato, то нужно обновить систему APT до woody-версии, так как версия системы APT в Potato не имеет всех возможностей, описанных на man-странице apt_preferences(5).

измените Ваши файлы /etc/apt/sources.list и /etc/apt/preferences таким образом, чтобы они содержали ссылки на секцию "testing" репозитария, который Вы используете. Если Вы хотите, можно также добавить ссылки и на секцию "unstable".

обновите Ваши списки пакетов и установите все пакеты, которые можно обновить.



Обновление системы Debian


После соответствующей установки файлов /etc/apt/sources.list и /etc/apt/preferences система может быть обновлена до testing. Обращайтесь за базовыми знаниями к разделу Управление пакетами в Debian, Глава 6 и к разделу , если возникли трудности.



Перевод системы APT к ее Woody-версии


Если Вы все еще работаете в Potato, то возможно следующее обновление по сети системы APT и некоторых важных пакетов после включения в файл /etc/apt/sources.list ссылок на дистрибутив stable:

# apt-get update # apt-get install libc6 perl libdb2 debconf # apt-get install apt apt-utils dselect dpkg



Подготовка обновления (от stable к testing)


Перед использованием Debian-дистрибутива testing нужно знать, что заплатки безопасности выходят для него очень медленно.

Обновление по сети до testing может быть выполнено следующим образом (или можно запустить скрипт go-woody):

Очистите существующий файл sources.list:

# cd /etc/apt # cp -f sources.list sources.old # :>sources.list

Получите чистый список репозитариев для stable:

# cd / # apt-setup noprobe ... выберите репозитарии, доступные по HTTP или FTP

Добавьте секцию testing к новому списку. Закоментируйте строки с deb-src.

# cd /etc/apt # grep -e "^deb " sources.list >sources.deb # grep -e "^deb-" sources.list >sources.src # sed -e "s/stable/testing/" sources.deb \ >>sources.list # sed -e "s/stable/testing/" sources.src | \ sed -e "s/^deb-/#deb-/" >>sources.list

# apt-get update # apt-get install apt apt-utils # cat >preferences <<EOF Package: * Pin: release a=testing Pin-Priority: 600

Package: * Pin: release a=unstable Pin-Priority: 50

EOF

Опционально, добавьте секцию "unstable".

# sed -e "s/stable/unstable/" sources.deb \ >>sources.list # sed -e "s/stable/unstable/" sources.src | \ sed -e "s/^deb-/#deb-/" >>sources.list

Искусство настройки файлов /etc/apt/sources.list и /etc/apt/preferences можно постичь, изучив раздел Основы управления пакетами в Debian, раздел 6.2.

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



Самый лучший способ обновления, использующий программу dselect


Если в системе множество пакетов вида -dev и пр., рекомендуется следующий способ обновления для точного управления пакетами, использующий dselect:

# dselect update # всегда выполняется перед обновлением # dselect select # выберите дополнительные пакеты

При запуске dselect выбираются все Ваши текущие пакеты. Программа dselect может предложить Вам установить дополнительные пакеты, основываясь на зависимостях depends, suggests и recommends пакетов. Если Вы не желаете добавлять никакие пакеты, просто нажмите Q для выхода dselect.

# dselect install

На этой стадии процесса Вам нужно будет ответить на некоторые вопросы, касаемые конфигурации пакетов, поэтому подготовьте Ваши записи и затратьте на это некоторое количество времени. Смотрите Программа dselect, раздел 6.2.3.

Используйте программу dselect. Она всегда работает :)



Устаревший способ обновления через apt-get


Использование apt-get, описанное ниже, широко распространено, но не рекомендуется для обновления системы.

Если Вам нужно обновиться без использования dselect в системах новее Woody, рассмотрите программу aptitude и прочие.

Если система не имеет много пакетов или архив Debian не сильно изменился, следующего может быть достаточно (иногда):

# apt-get update # всегда делается перед обновлением ... для обновления системы на основе зависимостей "depends": # apt-get upgrade # затем всегда делаем это ... для обновления в целом системы на основе информации о "depends"-зависимостях: # apt-get -u dist-upgrade ... или обновиться и придерживаться текущего выбора в dselect (новый и лучший способ): # apt-get -u dselect-upgrade # используем результат выбора в dselect

Так как этот способ обновления использует программу apt-get, то обработка зависимостей recommends и suggests ограничена. Смотрите .

[ ] [ ] [ ] [ ] [ ] [ ] [ 5 ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]