HPUNIX Сайт о ОС и не только!

Глава Четыре - Управление по Debian

11 марта 2009 - unix
Глава Четыре - Руководство по Debian

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

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

4.1 Введение

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

4.1.1 Вход в систему как юзер root

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

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

How to Install VMware Tools in Debian 7.0 Wheezy

Bash:
  1. foo login:

Наберите root, нажмите кнопку Enter и введите пароль, который Вы указывали в процессе установки.

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

Bash:
  1. foo login: root
  2. Password:
  3. Last login: Sun Oct 20 6 19:04:09 Две тыщи три on tty3
  4. Linux foo 2.4.22-1-686 #6 Sat Oct Четыре 14:09:08 EST Две тыщи три i686 GNU/Linux
  5.  
  6. Most of the programs included with the Debian GNU/Linux system are
  7. freely redistributable; the exact distribution terms for ea/hdbk/ program
  8. are described in the individual files in /usr/share/doc/*/copyright
  9.  
  10. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
  11. permitted by applicable law.
  12.  
  13. root@foo:root#

Сейчас Вы готовы к тому, чтоб заниматься системным администрованием через командую строчку root. Учетная запись root также именуется суперпользовательской либо привелегированной. Используя эту учетную запись, Вы сможете:

  • Читать, записывать и удалять любые файлы в системе, независимо от установленных на их прав доступа

  • Устанавливать владельцов и права доступа на хоть какой файл в системе

  • Устанавливать пароль хоть какому непривелегированному юзеру в системе

  • Региться в системе под хоть какой учетной записью без ввода соответственного пароля

Если Для вас необходимо дать кому-либо часть возможностей root, не стоит этого делать, разделяя с ним пароль учетной записи root. Используйте для этого программки типа sudo(8).

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

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

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

Bash:
  1. # apt-get update
  2. ...
  3. # apt-get install mc vim lynx doc-linux-text debian-policy
  4. ...

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

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

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

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

Bash:
  1. root@foo:root# adduser penguin
  2. ... ответьте на все вопросы

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

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

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

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

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

4.1.5 Как окончить работу системы

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

Bash:
  1. # shutdown -h now

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

Bash:
  1. # 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] Для вас будет показано последующее приглашение ко вводу команд.

Bash:
  1. penguin@foo:penguin$

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

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

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

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

4.2 Midnight Commander (MC)

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

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

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

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

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

  • /sbin и /bin

4.2.1 Улучшим MC

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

4.2.2 Пуск MC

Bash:
  1. $ mc

MC делает все операции с файлами через его меню, требуя от юзера минимум усилий.

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

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

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

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

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

  • F4: Интегрированный редактор

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

  • F10: Выход из Midnight Commander

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

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

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

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

4.2.4 Особенности командной строчки в 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.

4.2.5 Редактор в MC

Интегрированный редактор имеет увлекательную систему "вырезать-вставить". Нажатие F3 отмечает начало выделения текста, повторное нажатие отмечает конец выделения и высвечивает избранный текст. Сейчас Вы сможете передвигать Ваш курсор.

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

Большая часть курсорных кнопок работают потому что Вы интуитивно преполагаете.

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

Bash:
  1. $ mc -e имя_файла_для_правки
  2. $ mcedit имя_файла_для_правки

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

Интегрированный редактор можно поменять хоть каким наружным по Вашему выбору.

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

Bash:
  1. ...
  2. export EDITOR=mcedit
  3. export VISUAL=mcedit
  4. ...

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

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

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

Это самый резвый метод просмотреть огромное количество инфы по Линукс. Программка просмотра может быть конкретно запущена таким макаром:

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

4.2.7 Способности MC по автоматическому запуску программ

Нажмите кнопку Enter на файле и соответственная программка будет обрабатывать содержимое файла.

Это очень комфортная возможность MC.

Bash:
  1. выполняемый файл: Делает команду
  2. файл man, html-страницы: Направляет содержимое в программку просмотра
  3. файл tar.gz, deb: Показывает содержимое файла как подкаталог

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

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

MC можно использовать для доступа через Веб к файлам, используя протокол 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]

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

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

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

  • Ctrl-C: Окончить выполняющуюся программку.

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

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

  • 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. [18] Смотрите Настройка мыши, раздел 3.3.

    4.3.2 Главные команды Unix

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

    • pwd

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

    • whoami

      • Показать имя текущего юзера.

    • file foo

      • Глава Четыре - Руководство по Debian

        Показать тип файла foo.

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

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

      • Это делает команда whi/hdbk/ имя_команды.

    • 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. [21]

    • tou/hdbk/ junkfile

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

    • cp foo bar

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

    • rm junkfile

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

    • mv foo bar

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

    • Глава Четыре - Руководство по Debian
    • mv foo bar/baz

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

    • /hdbk/mod 600 foo

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

    • /hdbk/mod 600 40 четыре foo

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

    • /hdbk/mod Семьсот 50 5 foo

      • Глава Четыре - Руководство по Debian

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

    • top

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

    • ps aux | pager

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

    • ps -ef | pager

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

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

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

    • ps axf | pager

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

    • kill Одна тыща двести 30 четыре

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

    • grep -e "эталон" */

      • Глава Четыре - Руководство по Debian
        Отыскать "эталон" во всех файлах, заканчивающихся на / в текущем каталоге и показать их всех.

    • 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. [23]

    • 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-страницу. К примеру, данные команды неплохи для старта:

    Bash:
    1. $ man man
    2. $ man bash
    3. $ man ls

    Также хорошо запустить vim и надавить кнопку F1. Для вас необходимо прочитать более 30 5 строк. Потом пройдите онлайновый курс обучения, передвинув курсор к |tutor| и нажав Ctrl-].

    Смотрите Editors, Глава Одиннадцать для дополнительного исследования редакторов.

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

    Bash:
    1. $ имя_команды --help
    2. $ имя_команды -h

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

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

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

    4.3.4 Обычная команда

    Обычная команда - это последовательность, состоящая из:

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

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

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

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

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

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

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

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

    Bash:
    1. $ date
    2. Sun Oct 20 6 08:17:20 CET 2003
    3. $ LC_ALL=fr_FR date
    4. dim oct 20 6 08:17:39 CET 2003

    Тут производится программка date. Переменная окружения LC_ALL:

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

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

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

    Bash:
    1. $ LC_ALL=fr_FR
    2. $ date
    3. dim oct 20 6 08:17:39 CET 2003

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

    Bash:
    1. $ export LC_ALL

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

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

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

    4.3.7 Функции командной строчки

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

    Bash:
    1. $ date
    2. Mon Oct 20 семь 23:02:09 CET 2003
    3. $ date -R
    4. Mon, 20 семь Oct Две тыщи три 23:02:40 +0100

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

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

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

    • *

      • Соответствует хоть какой группе из нуля и поболее знаков.

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

    • ?

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

    • [...]

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

    • [a-z]

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

    • [^...]

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

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

    Bash:
    1. $ mkdir junk; cd junk; $ tou/hdbk/ 1.txt 2.txt 3.c 4.h .5.txt
    2. $ e/hdbk/o *.txt
    3. 1.txt 2.txt
    4. $ e/hdbk/o *
    5. 1.txt 2.txt 3.c 4.h
    6. $ e/hdbk/o *.[hc]
    7. 3.c 4.h
    8. $ e/hdbk/o .*
    9. . .. .5.txt
    10. $ e/hdbk/o .[^.]*
    11. .5.txt
    12. $ e/hdbk/o [^1-3]*
    13. 4.h
    14. $ 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 команда &

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

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

    4.3.10.2 команда1 | команда2

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

    4.3.10.3 команда1 ; команда2

    Команды команда1 и команда2 производятся поочередно.

    4.3.10.4 команда1 && команда2

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

    и команда команда2 завершились удачно.

    4.3.10.5 команда1 || команда2

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

    4.3.10.6 команда > foo

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

    4.3.10.7 команда >> foo

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

    4.3.10.8 команда > foo 2>&1

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

    4.3.10.9 команда < foo

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

    Bash:
    1. $ </etc/motd pager
    2. ... (приветствие)
    3. $ pager </etc/motd
    4. ... (приветствие)
    5. $ pager /etc/motd
    6. ... (приветствие)
    7. $ cat /etc/motd | pager
    8. ... (приветствие)

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

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

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

    Bash:
    1. $ alias la='ls -la'

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

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

    Bash:
    1. $ type ls
    2. ls is hashed (/bin/ls) информация о ls хэширована (/bin/ls)
    3. $ type la
    4. la is aliased to `ls -la' la - псевдоним `ls -la'
    5. $ type e/hdbk/o
    6. e/hdbk/o is a shell builtin e/hdbk/o - интегрированная команда командного интерпретатора
    7. $ type file
    8. file is /usr/bin/file команда file = /usr/bin/file

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

    4.4 Обычная для Unix обработка текста

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

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

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

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

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

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

      • tr делает подмену либо удаление знаков.

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

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

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

      • ed - простой строковый редактор.

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

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

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

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

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

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

      • perl делает различную обработку текста. Смотрите Perl, раздел 13.4.

    Смотрите 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.

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

    • 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, использующая БРВ, обрабатывает знаки "+ ?" как метасимволы. Другими словами нет необходимости предворять их оборотным слешем. Смотрите Выражения подстановки, раздел 4.4.2, чтоб выяснить, как употребляются конструкции со скобками.

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

    Bash:
    1. $ egrep 'GNU.*LICENSE|Yoyodyne' /usr/share/common-licenses/GPL
    2. GNU GENERAL PUBLIC LICENSE
    3. GNU GENERAL PUBLIC LICENSE
    4. Yoyodyne, Inc., hereby disclaims all copyright interest in the program

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

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

    • &

      • значит, какое постоянное выражение совпало. (в программке emacs используйте конструкцию \&)

    • \n

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

    Для выражений подстановки языка Perl употребляется конструкция $n заместо \n и знак & не имеет особенного значения.

    К примеру:

    Bash:
    1. $ e/hdbk/o zzz1abc2efg3hij4 | \
    2. sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/=&=/'
    3. zzz=1abc2efg3hij4=
    4. $ e/hdbk/o zzz1abc2efg3hij4 | \
    5. sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/\2===\1/'
    6. zzzefg3hij4===1abc
    7. $ e/hdbk/o zzz1abc2efg3hij4 | \
    8. perl -pe 's/(1[a-z]*)[0-9]*(.*)$/$2===$1/'
    9. zzzefg3hij4===1abc
    10. $ e/hdbk/o zzz1abc2efg3hij4 | \
    11. perl -pe 's/(1[a-z]*)[0-9]*(.*)$/=&=/'
    12. zzz=&=

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

    Эти постоянные выражения могут быть применены для перемещения курсора и также для действий по подмене текста в редакторах.

    Пожалуйста, прочтите все связанные man-страницы для исследования этих команд.

    4.5 Обычная файловая система Unix

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

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

    4.5.1 Базы файлов Unix

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

    • Названия файлов являются зависимыми от регистра. Другими словами, файл MYFILE и файл MyFile являются разными файлами.

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

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

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

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

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

      Bash:
      1. /usr/share/keytables/us.map.gz

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

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

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

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

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

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

    • /

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

    • /etc

      • Тут располагаются конфигурационные файлы системы.

    • /var/log

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

    • /home

      • Тут располагаются домашние сборники все непривелегированных юзеров.

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

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

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

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

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

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

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

    • для юзера, который обладает этим файлом (u),

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

    • для всех других юзеров(o).

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

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

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

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

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

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

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

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

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

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

    • тип файла (1-ый знак)

      • -: обыденный файл

      • d: каталог

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

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

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

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

      • s: сокет

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

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

    • имя юзера, обладающего файлом

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

    • размер файла в знаках (б)

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

    • имя файла.

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

    Bash:
    1. # /hdbk/own новый_владелец foo
    2. # /hdbk/grp новая_группа foo
    3. # /hdbk/mod [ugoa][+-=][rwx][,...] foo

    Подробности смотрите в соответственных man-страницах /hdbk/own(1), /hdbk/grp(1) и /hdbk/mod(1).

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

    Bash:
    1. # cd /некоторый/каталог/
    2. # /hdbk/own -R foo:bar .
    3. # /hdbk/mod -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 на каталог. В неприятном случае хоть какой юзер, имеющий право записи в этот каталог, может удалить этот файл и сделать новый с этим же именованием (и с хоть каким содержимым - прим. переводчика)

    Вот несколько увлекательных примеров прав на файлы:

    Bash:
    1. $ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/pppd
    2. crw-rw---- Один root dip 108, Нуль Jan Восемнадцать 13:32 /dev/ppp
    3. -rw-r--r-- Один root root Одна тыща 50 один Jan 20 6 08:29 /etc/passwd
    4. -rw-r----- Один root shadow Семьсот 40 6 Jan 20 6 08:29 /etc/shadow
    5. -rwsr-xr-- Один root dip Двести 30 четыре тыщи 500 четыре Nov 20 четыре 03:58 /usr/sbin/pppd
    6. $ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src
    7. drwxrwxrwt Четыре root root Четыре тыщи девяносто 6 Feb Девять 16:35 /tmp
    8. drwxrwsr-x 10 root staff Четыре тыщи девяносто 6 Jan Восемнадцать 13:31 /usr/local
    9. drwxrwsr-x Три root src Четыре тыщи девяносто 6 Jan Девятнадцать 08:36 /usr/src
    10. drwxrwsr-x Два root mail Четыре тыщи девяносто 6 Feb Два 22:19 /var/mail
    11. drwxrwxrwt Три root root Четыре тыщи девяносто 6 Jan 20 5 02:48 /var/tmp

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

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

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

    • 3-я цифра: то же самое для группы

    • 4-ая цифра: то же самое для иных юзеров

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

    Bash:
    1. $ tou/hdbk/ foo bar
    2. $ /hdbk/mod u=rw,go=r foo
    3. $ /hdbk/mod 600 40 четыре bar
    4. $ ls -l foo bar
    5. -rw-r--r-- Один penguin penguin Нуль Nov Три 23:30 foo
    6. -rw-r--r-- Один penguin penguin Нуль Nov Три 23:30 bar

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

    4.5.4 ВременнЫе метки (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).

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

    4.5.5 Ссылки

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

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

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

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

    Bash:
    1. $ e/hdbk/o "Начальное содержимое" > foo
    2. $ ls -l foo
    3. -rw-r--r-- Один osamu osamu Четыре Feb Девять 22:26 foo
    4. $ ln foo bar # жесткая ссылка
    5. $ ln -s foo baz # символическая ссылка
    6. $ ls -l foo bar baz
    7. -rw-r--r-- Два osamu osamu Четыре Feb Девять 22:26 bar
    8. lrwxrwxrwx Один osamu osamu Три Feb Девять 22:28 baz -> foo
    9. -rw-r--r-- Два osamu osamu Четыре Feb Девять 22:26 foo
    10. $ rm foo
    11. $ e/hdbk/o "Новое содержимое" > foo
    12. $ cat bar
    13. Начальное содержимое
    14. $ cat baz
    15. Новое содержимое

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

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

    4.5.6 Именованные каналы (FIFOs)

    Именованный канал - это файл, которые действует как труба. Вы помещаете что-то в данный файл, и оно выходит с другого конца. Это именуется FIFO либо First-In-First-Out: то, что первым помещено в канал, первым из него и выходит с другой стороны.

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

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

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

    Bash:
    1. $ cd; mkfifo mypipe
    2. $ e/hdbk/o "hello" >mypipe & # запустим в фоновом режиме
    3. [1] 5952
    4. $ ls -l mypipe
    5. prw-r--r-- Один penguin penguin Нуль 6 Ноября 2003 23:18 mypipe
    6. $ cat mypipe
    7. hello
    8. [1]+ Done e/hdbk/o hello >mypipe
    9. $ ls mypipe
    10. prw-r--r-- Один penguin penguin Нуль 6 Ноября 2003 23:20 mypipe
    11. $ rm mypipe

    4.5.7 Сокеты

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

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

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

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

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

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

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

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

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

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

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

    4.5.8.1 /dev/null и прочее.

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

    Если же Вы читаете файл /dev/null, то сходу получите знак конца файла (EOF).

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

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

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

    Bash:
    1. $ ls -l /dev/hda /dev/ttyS0 /dev/zero
    2. brw-rw---- Один root disk 3, Нуль Mar Четырнадцать Две тыщи два /dev/hda
    3. crw-rw---- Один root dialout 4, Шестьдесят четыре Nov Пятнадцать 09:51 /dev/ttyS0
    4. crw-rw-rw- Один root root 1, 5 Aug 30 один 03:03 /dev/zero

    Тут

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

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

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

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

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

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

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

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

    Смотрите раздел Tuning the kernel through the proc filesystem, раздел 7.3 и страничку proc(5).

    4.6 Система X Window System

    Смотрите X, раздел 9.4.

    4.6.1 Пуск системы the X Window System

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

    Bash:
    1. $ exec startx

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

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

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

      • "XShells" --> "XTerm".

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

      • "Apps" --> "Net" --> "Мозилла Navigator".

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

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

    Если Вы не отыскали подходящий элемент в меню, установите требуемые пакеты. Смотрите раздел Базы управления пакетами в Debian, раздел 6.2.

    4.6.3 Клавиатурные композиции кнопок в системе 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.

    4.7 Для предстоящего исследования

    В данный момент я рекомендую Для вас прочитать главные управления из раздела Проекта документации Linux: Управления:

    • "Управление сисадмина Linux",

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

      • пакет: sysadmin-guide

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

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

    • "Управление админа сети в Linux, 2-ая редакция",

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

      • пакет: (not available)

      • файл: (not applicable)

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

    • "Книжка рецептов по Linux",

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

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

      • файл: /usr/share/doc/linuxcookbook/cookbook_toc/

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

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

    [


    Osamu Aoki osamu#at#debian.org
    Перевод Ильи В. Головко qref#at#yandex

    Похожие статьи

    • Глава Два - Базы Debian

      Эта секция обеспечивает основную информацию по системе Debian для юзеров. За авторитетной информацией обращайтесь к документам: Управление по политике Debian Управление по созданию пакето...

    • Глава 6 - Управление пакетами в Debian

      Эта глава основывается на более старенькой версии текста британского оригинала. Проверьте британский вариант тоже. Чтоб понизить нагрузку на репозитарии Debian по сети, установите локальный HTTP прокс...

    • Глава Три - Советы по установке системы Debian

      Официальная документация по установке Debian размещается по адресу http://www.debian.org/releases/stable/, и http://www.debian.org/releases/stable/installmanual. Версии документов, находящихся в...

    • Глава Восемь - Debian tips

      8.1 Booting the systemSee the LDP BootPrompt-HOWTOfor detailed information on the boot prompt. 8.1.1 "I forgot the root password!" (1)It is possible to boot a system and log on to the ro...

    • Глава Один - Введение

      Этот Справочник по Debian дает широкий обзор системы Debian в виде управления юзера после установки. Предназначается для тех, кто не опасается работы в командной строке. Я предполагаю, что ч...

    Теги:
    Рейтинг: +17 Голосов: 118 1482 просмотра
    Комментарии (0)

    Нет комментариев. Ваш будет первым!

    Найти на сайте: параметры поиска

    Windows 7

    Среда Windows 7 на первых порах кажется весьма непривычной для многих.

    Windows 8

    Если резюмировать все выступления Microsoft на конференции Build 2013.

    Windows XP

    Если Windows не может корректно завершить работу, в большинстве случаев это

    Windows Vista

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