Рейтинговые книги
Читем онлайн Linux - Алексей Стахнов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 49 50 51 52 53 54 55 56 57 ... 151

То же и для обычных клиентских машин. Казалось бы, поскольку большинство пользователей безвылазно сидят в X Window, им вообще не надо знать о консоли. Однако это совершенно не так. Как мы уже знаем из главы <5, загрузка операционной системы Linux происходит в текстовом (консольном) режиме и лишь на последнем этапе (и то, если это было определено при конфигурации системы) происходит переключение в X Window. Даже из-за этого уже стоит ознакомиться с консольными утилитами.

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

...

Замечание

Конечно, пользователю Windows это кажется неудобным. Для утилит Windows принят другой подход – "все в одном" (all in one). В результате– объемный комплекс, в котором достаточно трудно разобраться, который из-за его размеров крайне трудно отладить и который потребляет значительное количество оперативной памяти и процессорного времени.

Кроме того, все утилиты Linux (в отличие от Windows-утилит) способны взаимодействовать друг с другом. Это значит, что с помощью утилит можно организовать цепочку взаимосвязанных операций. А с помощью скриптов командной оболочки создать инструментарий для выполнения часто используемых последовательностей операций. Linux требует от пользователя достаточно обширных знаний и некоторого размышления (планирования) перед выполнением нетривиальных действий. С одной стороны, после Windows с ее достаточно бездумным нажиманием кнопок мыши, это несколько напрягает. Но с другой стороны, это позволяет точно, шаг за шагом, понять процесс получения нужного результата, да, заодно, и память потренировать.

Стандартный ввод/вывод, перенаправление

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

Для перенаправления стандартного ввода используется символ перенаправления <. Пример использования перенаправления ввода:

mysql <2.sql

Передает программе mysql данные, содержащиеся в файле 2.sql.

Для перенаправления стандартного вывода используются символы перенаправления > и». В чем их отличие? Символ > не проверяет наличие файла, в который сохраняется стандартный вывод программы. Если такой файл существует, то его содержимое полностью заменяется выводом программы. Символ» проверяет существование файла, и если он существует, то вывод программы дописывается в конец существующего файла.

Примеры:

df > 1.txt Is -A >> 1.txt

Операции перенаправления ввода/вывода можно использовать одновременно.

Конвейер (поток)

Конвейер (поток, pipe) используется для объединения нескольких команд в одной операции. Обозначается символом |. Применяется для передачи стандартного вывода одной программы на стандартный ввод другой программы. В одной командной строке можно использовать несколько операций конвейера.

Пример:

Is | grep

Команды

Операционная система Linux очень многое наследует от UNIX, в том числе и большую часть команд и утилит. Конечно, эти команды адаптированы и усовершенствованы, но, тем не менее, в целом они сохранили синтаксис соответствующих команд UNIX. Поэтому, по большому счету, не важно, в чем вы работаете: в UNIX или в Linux – система команд на 98 % совпадает. Далее мы рассмотрим наиболее часто используемые команды и утилиты. Обратите внимание – наиболее часто используемые. Это означает, что в данной главе упоминаются далеко не все команды и утилиты. Никакая самая объемистая книга не отменяет команду man, документацию и файлы HOWTO. За время написания любой книги выходят новые версии программ, и зачастую их возможности кардинально изменяются. Эта глава является обзорной, поэтому в описании команд не всегда (или не в полном объеме) приводятся ключи и параметры вызова.

Дата, время

cal

Команда cal выводит на консоль календарь. Если не указаны параметры – выводится календарь на текущий месяц. Если указывается месяц и год – выводится календарь на соответствующий месяц, а если указывается только год – выводится календарь на соответствующий год.

Пример:

cal

Октябрь 2001

date

Команда date выводит текущие дату и время в указанном формате. Так же эта команда позволяет изменять системные дату и время.

Параметры:

• + – формат отображения времени и даты в указанном формате;

• -s – установка времени и даты;

• -u – вывод времени и даты по Гринвичу.

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

MMddhhmmyy

где:

• MM – месяц;

• dd – день;

• hh – часы;

• mm – минуты;

• уу – две последние цифры года.

Пример:

date Сбт Окт 6 19:57:30 EEST 2001

Более подробную информацию можно получить по команде man date.

Файлы и каталоги

В этом разделе представлены команды и утилиты, которые напрямую взаимодействуют с файлами и каталогами.

Административные команды Здесь собраны команды, которые отвечают за «административную работу» с файлами и каталогами.

chgrp

Команда chgrp изменяет группу каждого заданного файла на группу, которая может быть представлена как именем группы, так и ее числовым идентификатором (GID).

Более подробную информацию можно получить по команде man chgrp.

chmod

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

Формат символьного режима:

[ugoa…][[+-=][rwxXstugo…]…][,…]

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

• u – владельца;

• g – группы;

• о – других пользователей, не входящих в данную группу;

• а – всех пользователей. Буква а эквивалентна ugo. В том случае, если не задана ни одна буква, то будет использоваться буква а;

• + – добавляет выбранные права доступа к уже имеющимся;

• – – удаляет эти права;

• = – присваивает только эти права файлу.

Буквы rwxXstugo выбирают новые права доступа для пользователя, заданного одной из букв ugoa:

• r – чтение;

• w – запись;

• х – выполнение;

• X – выполнение, если файл является каталогом или уже имеет право на выполнение для какого-нибудь пользователя;

• S – setuid– или setgid-бит;

• t – sticky-бит;

• u – установка для остальных таких же прав доступа, какие имеет пользователь, владеющий этим файлом;

• g – установка для остальных таких же прав доступа, какие имеет группа файла;

• о – установка для остальных таких же прав доступа, какие имеют остальные пользователи.

Установка sticky-бита для каталога приводит к тому, что только владелец файла и владелец этого каталога могут удалять файл из каталога.

В операционной среде Linux, если на файле установлен бит setgid, но не установлен бит выполнения группой, то блокировки этого файла становятся жесткими (mandatory), в отличие от обычных – информационных (advisory). Подробная информация по этому вопросу находится в файле /usr/src/linux/Documentation/mandatory.txt.

Числовой режим состоит из четырех восьмеричных цифр, которые складываются из битовых масок 4, 2 и 1. Любые пропущенные разряды дополняются лидирующими нулями:

• первая цифра выбирает установку идентификатора пользователя – setuid (4), идентификатора группы – setgid (2) или sticky-бита (1);

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

• третья цифра выбирает права доступа для пользователей, входящих в группу;

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

Эту команду может применять либо владелец файла, либо пользователь root. Более подробную информацию можно получить по команде man chmod.

chown

Команда chown изменяет владельца и/или группу для заданного файла.

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

1 ... 49 50 51 52 53 54 55 56 57 ... 151
На этой странице вы можете бесплатно читать книгу Linux - Алексей Стахнов бесплатно.

Оставить комментарий