Чтение онлайн

ЖАНРЫ

Linux для пользователя

Костромин Виктор Алексеевич

Шрифт:

/dev/cdrom /cd iso9660 ro,user,noauto,unhide

 то любой пользователь сможет смонтировать файловую систему на своем CDROM, используя команду

[user]$ mount /dev/cdrom

или

[user]$ mount /cd

В табл. 4.8 приведены еще некоторые опции, которые могут использоваться в команде mount и в файле /etc/fstab.

Таблица 4.8. Основные опции команды mount

Опция Значение
async Весь ввод-вывод в файловую систему должен производиться асинхронно
auto Файловая система может монтироваться командой mount c опцией -a
defaults Использовать набор опций, задаваемый
по умолчанию: rw, suid, dev, exec, auto, nouser, async
dev Файлы байт-ориентированных и блок-ориентированных устройств в файловой системе интерпретируются как специальные файлы
noauto Файловая система может монтироваться только явно. Опция -a не приведет к монтированию файловой системы
exec Разрешает выполнение двоичных файлов
remount Позволяет перемонтировать уже смонтированную файловую систему. Обычно используется для изменения опций монтирования файловой системы, особенно для того, чтобы расширить права доступа (вместо прав только на чтение установить права на чтение/запись)
ro Монтирует файловую систему только на чтение
rw Монтирует файловую систему для чтения и записи
suid Позволяет задействовать биты смены идентификатора пользователя и смены идентификатора группы
sync Весь ввод-вывод в файловую систему должен производиться синхронно
user Позволяет непривилегированному пользователю монтировать файловую систему. Для таких пользователей монтирование всегда выполняется с опциями noexec, nosuid, nodev
nodev Файлы байт-ориентированных и блок-ориентированных устройств в файловой системе не интерпретируются как специальные файлы
nosuid Не позволяет задействовать биты смены идентификатора пользователя и смены идентификатора группы
nouser Запрещает непривилегированному пользователю монтировать файловую систему

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

Если вы хотите монтировать какую-то систему только для чтения из нее, то в соответствующей строке файла /etc/fstab надо либо указать опцию r (read only, по умолчанию подразумевается rw, т. е. и чтение, и запись), либо использовать команду mount с параметром -r.

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

Демонтировать файловую систему может только тот пользователь, который ее смонтировал (и суперпользователь, конечно). Для того, чтобы операцию демонтирования мог выполнить любой пользователь, в поле параметров соответствующей строки файла /etc/fstab надо указать опцию users (вместо user).

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

Надо признать, что, в сравнении с DOS или Windows, работа с дискетами и другими сменными носителями (CD-ROM, Iomega Zip и т.п.) в ОС типа UNIX менее удобна. Для того, чтобы обратиться к дискете, вы должны вначале смонтировать ее в какой-то каталог в файловой структуре. А для смены дискеты требуется вначале размонтировать предыдущую дискету, а затем смонтировать новую. То же самое с другими сменными носителями. Поскольку с дискетами и другими сменными носителями так или иначе приходиться работать, лучше сразу заготовить в файловой структуре стандартные каталоги для

монтирования всех имеющихся в вашем распоряжении типов сменных носителей. Например, создать каталог /mnt, а в нем подкаталоги floppy, cdrom, zip и т. д.

Пожалуй, это все, что нужно знать начинающему пользователю системы Linux о файловых системах. Еще раз повторю, что здесь была рассмотрена только одна сторона файловой системы ext2fs, обращенная к пользователям, т. е. в основном, логика построения структуры каталогов и файлов. Обратная сторона файловой системы, ее внутреннее устройство, а также различные типы файловых систем, в настоящем разделе только упоминались по мере необходимости. Всем этим вопросам будет посвящена гл. 16.

Глава 5. Оболочка bash

В этой главе мы рассмотрим работу с системой Linux в текстовом режиме, другими словами, с консоли или терминала. Начинающему пользователю может казаться, что он никогда не будет работать в этом режиме, поскольку существует графический режим. Однако это мнение ошибочно, ибо многие действия оказывается быстрее и удобнее выполнять именно в текстовом режиме. Даже находясь в графическом режиме, вы часто будете открывать окно эмулятора терминала, и выполнять необходимые действия в этом окне. Ведь текстовый режим ОС Linux - это совсем не то, что текстовый режим однозадачной MS-DOS. Поскольку Linux - это многозадачная ОС, уже в текстовом режиме обеспечивается возможность работы в нескольких окнах (о переключении терминалов мы рассказали в разд. 3.3). А для редактирования простого текста или html-файла вовсе не обязательно запускать достаточно тяжеловесную и медленную (особенно на "слабых" компьютерах) графическую оболочку.

5.1. Что такое оболочка?

Как уже упоминалось выше, хотя мы часто говорим, что "пользователь работает с операционной системой", фактически это не верно, поскольку на деле взаимодействие с пользователем организует специальная программа. Существует два вида таких программ - оболочка, или shell, для работы в текстовом режиме (интерфейс командной строки) и графический интерфейс пользователя GUI (Graphical User Interface), организующий взаимодействие с пользователем в графическом режиме.

Сразу надо сказать, что в принципе любая программа в Linux может быть запущена как через оболочку (если запущен X-сервер, см. гл. 6), так и через графический интерфейс пользователя. Запуск программ из оболочки эквивалентен (двойному) щелчку мышкой по иконке программы в GUI. Передача аргументов программе в текстовом режиме аналогична тому, что мы "бросаем" что-то на иконку программы в графическом. Но, с другой стороны, некоторые программы не приспособлены для запуска через GUI и, соответственно, могут быть исполнены, только из командной строки.

Собственно говоря, название "оболочка" не выдерживает критики. На мой взгляд правильнее было бы называть эту программу командным процессором, как называют command.com в MS DOS, или интерпретатором команд. Но так уж повелось во всех UNIX-системах, что интерпретатор команд для текстового режима называют оболочкой.

Когда-то (в первых UNIX-системах) это была программа с именем sh, которое было сокращением от shell. Потом были разработаны несколько ее улучшенных вариантов, в частности, Bourne shell - расширенная версия sh, написанная Стивом Борном (Steve Bourne). В рамках проекта GNU (проект Р.Столлмана по разработке свободного ПО, см. www.gnu.org) была создана оболочка bash, название которой расшифровывается как Bourne-again shell, т. е. "снова оболочка Борна". По-английски в этом названии просматривается еще и игра слов, связанная с тем, что Bourne звучит как borne (рождаться, рожденный), и получается "заново рожденная shell". Оболочка bash была написана Брайеном Фоксом (Brian Fox - основной разработчик) и Четом Рэми (Chet Ramey). Именно bash мы и будем далее рассматривать, и всюду ниже, где говорится об оболочке вообще, вы смело можете считать, что речь идет о bash.

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

Поделиться с друзьями: