LINUX ОСНОВНЫЕ ПОНЯТИЯ
И КОМАНДЫ
В
зависимости от вашего опыта работы
с компьютерами Linux покажется вам
либо удивительно сложной и
непостижимой (в том случае, если вы
работали ранее с Microsoft Windows или
компьютерами Macintosh), либо (если вы
работали с MS-DOS или UNIX) еще одной
простейшей операционной системой,
управляемой из командной строки.
Истина — посередине. Да, Linux может
временами быть сложной и
непостижимой, и, кроме того, она
действительно построена на основе
гштерфейса командной строки (даже
если вы используете Х Window). Однако
Linux не сложнее, чем MS-DOS или UNIX, и
имеет утилиты, соперничающие с
аналогичными программами для Windows
или Macintosh.
Прежде чем вы
начнете погружаться в глубины Linux,
запомните два правила, которые
упростят вам жизнь:
• Linux — это
набор небольших простых команд.
Если вы упростите вашу задачу и
разобьете ее на отдельные
подзадачи, вы сможете сделать
практически все.
• Даже когда
вы работаете с XFree86 (графическим
интерфейсом Linux), вы работаете с
набором небольших простых команд.
Вы уже должны
были понять, что тот, кто хочет
разобраться с Linux, должен в первую
очередь стремиться разобраться с
командами Linux. Предлагаемая вашему
вниманию книга содержит описания
команд Linux. Однако до
Глава 1. Основные
понятия и команды
того, как вы
начнете изучать команды, вы должны
понять, как вводить команды п как
Linux их обрабатывает.
Командная строка
Мы уже
отмечали, что работа с Linux основана
на использовании командной
строки. Команды вводятся в
команд-нон строке. Когда Linux готова
к приему команд, она сообщает вам об
этом, выводя на ваш экран символ
доллара:
Знак доллара
называется приглашением
командной строки и сообщает вам о
том, что Linux готова к приему команд.
Вы можете ввести либо отдельную
команду, либо набор команд и
параметров, которые вместе
называются командной строкой.
Командой
обычно называется то же самое. Все,
что вы вводите с клавиатуры после
приглашения командной строки, Linux
воспринимает как команду — приказ
сделать что-нибудь. Вы можете
использовать команды как для
выполнения каких-либо действий
(например, перемещения или
Командная строка
копирования
файлов), так и для запуска
программ (таких, как elvis ILTII
emacs). Linux имеет вполне
определенный набор команд, поэтому
если то, что вы введете, не будет
распознано как одна из команд, вы
получите предупреждение о
невозможности найти указанную
команду. Вы можете найти полный
список команд в определенных
каталогах, но не будем забегать
вперед. Операционная система Linux
имеет сотни команд.
Команды
могут иметь параметры, которые
определяют, как именно будет
выполняться команда и что она будет
делать. Параметры также могут
указывать, что команда должна
выполняться только при соблюдении
определенных условии. В качестве
примера мы разберем одну из команд
и некоторые ее параметры.
Как вы можете
видеть, текущий каталог в нашем
примере содержит единственный файл
— 00601. tif. (Имена файлов и
каталогов, упоминаемые в этой
главе, не важны; все, что вам
требуется запомнить, — это способы
обозначения файлов и каталогов,
которые могут быть использованы в
сочетании с почти любой командой.)
Однако команда Is без параметров
выводит список только тех файлов,
которые доступны всем
пользователям и не являются
скрытыми.
Глава 1. Основные
понятия и команды
Скрытые
файлы имеют имена, начинающиеся с
точки (.):
если вы
хотите, чтобы они тоже вошли в
список, вы должны указать это
команде Is. Вы должны указать
соответствующий параметр. Для
этой цели используется параметр -а.
Если вы укажете его после команды,
то будет выведен список всех файлов
и подкаталогов текущего каталога,
включая скрытые.
Продолжая
наш пример, приведем результат
выполнения команды Is с параметром
-1, который указывает на
необходимость вывода подробной
информации о файлах и каталогах.
В главе 5,
содержащей описание команд,
значительное внимание уделено
описанию их параметров. Очень
немногие команды Linux не имеют
параметров или аргументов
какого-либо рода.
Файлы
Команда Is
используется для вывода списка
файлов в текущем либо любом другом
заданном каталоге. С точки зрения
Linux достаточно странно, что
аргументом этой команды может
служить не файл. Изучая эту
книгу, вы обнаружите, что
подавляющее большинство команд
имеют дело с файлами.
Файлы
Практически
все, с чем вы имеете дело в Linux,
является файлами. Вы уже знаете, что
команда Is выводит список файлов в
каталоге, и именно потому, что все
является файлом, эта команда так
удобна. Команды — это не что иное,
как файлы, содержащие программы.
Устройства, присоединенные к
вашему компьютеру, представлены в
Linux файлами, которые, как правило,
находятся в каталоге /dev. Когда
вы печатаете текст, вы на самом деле
просто отправляете его в файл,
представляющий принтер.
Грубо говоря,
файл представляет собой просто
упорядоченную область на
устройстве хранения информации,
состоящую из битов. Бит — это
наименьшая единица информации, он
может содержать одно из двух
значений: О или 1. Операционная
система Linux организует биты в форму,
понятную как вам, так и компьютеру.
Без этой организации жесткий диск
представлял бы собой бессмысленную
смесь нулей и единиц. Система
организации жесткого диска
называется файловой системой.
Вот почему
основная функция операционной
системы Linux — управление файлами.
Важность команды Is трудно
переоценить — ведь она позволяет
вам узнать, какие файлы находятся в
данном месте файловой системы в
данное время. И именно поэтому
другие часто используемые команды
Linux также связаны с управлением
файлами — такие команды, как elvis
для редактирования, пп для удаления
и mv для перемещения файлов.
Всего
имеются четыре типа файлов:
• файлы
устройств,
• каталоги,
• ссылки,
• обычные
файлы.
Глава 1. Основные
понятия и команды
Ниже
приведены описания этих типов
файлов в порядке их важности л-тя
операционной системы Liniix:
• Обычные
фпй:1ы — рядовые файловой
системы'. Обычно они содержат
.танные, используемые программами и
операционной системен. Обычный
файл может содержать текст, данные
для какой-либо программы (например,
это может быть файл форматирования
для программы разбивки на страницы
пли база данных), код программы пли
текст программы для
интерпретируемого языка
программирования, такого как Peri пли
Тс1.
• Катало/и
являются файлами, содержащими
информацию о других файлах.
Файловая система в Liniix имеет
иерархическую структуру,
организованную при помощи
каталогов. Каталоги обсуждаются
ниже в этой главе.
• Файлы
устройств представляют
устройства, подключенные к вашему
компьютеру. Эти файлы обычно
находятся в каталоге /dev.
Например, файл, представляющий
устройство накопления на магнитной
ленте, может иметь имя /dev/stO.
• Ссылки
позволяют хранить один 4>айл в
файловой системе под различными
именами. Ссылки не играют большой
роли в Linux, если только вы не
работаете в сети2. Ссылки —
наследие былых времен, когда места
для хранения данных было так мало,
что пользователи должны были
использовать один и тот же файл, но,
в связи со строением сети, ему
должны были быть присвоены
различные имена.
Каталоги
Как мы
упоминали ранее, каталоги — это
файлы, предназначенные для
хранения других файлов. Каталоги
необхо-
' Игра слои:
рядовые — rank and file, фаил —file. —
Примеч. перев. 2 Это нс совсем
верно. — Примеч. перса.
Каталоги
ди.мы в
операционной системе наподобие Linux.
В Linux каждая команда является
файлом, каждое устройство является
файлом н каждая программа состоит
по крайней мере пз одного файла (а
обычно из значительно большего их
количества). Запишите все эти файлы
в одно место — и вы совершенно
потеряетесь среди тысяч отдельных
файлов. Может быть и хуже — при
работе в сети пользователь может
иметь доступ нс только к файлам на
своем компьютере, но и к тысячам
файлов на других машинах и.
возможно, на файловом сервере.
Конечно, нет никакого способа не
запутаться в этих (файлах, за
исключением создания некоторой
иерархической структуры для их
хранения. Тут-то на передний план н
выходят каталоги.
Иерархия
каталогов в Linux (вы можете
представлять се себе как пирамиду)
достаточно проста. На вершине
пирамиды находится корневой
каталог, обозначаемый символом
косой черты (/). Каждый каталог
является подкаталогом
корневого каталога. Кроме того,
подкаталоги могут также содержать
подкаталоги и т. д.
Любой
пользователь в каждый момент
времени «находится» в каком-либо
каталоге, называемом текущим
каталогом. Приглашение командной
строки обычно содержит имя
текущего ката-лога (начинающееся с
косой черты, обозначающей, что
каталог содержится в иерархической
структуре, вершиной которой
является корневой каталог).
Обычная
Linux-система, такая как Slackware Linux,
имеет вполне определенный набор
каталогов.
Некоторые из
этих каталогов имеются практически
в любой UNIX-системе — это каталоги
etc, sbin, usr и var. He-
Глава 1. Основные
понятия и команды
которые из
каталогов типичны для Linux-систем —
это boot, cdrom, mnt, proc. shiib'. Каталоги
root 11 home предназначены для
хранения информации пользователей.
Если вы сами устанавливаете Linux, то,
скорее всего, в вашей системе будет
по крайней мере один домашний
катало/ root, используемый,
когда вы входите в систему как
пользователь root, и, вероятно, еще
один — в каталоге home.
Linux содержит
набор команд, позволяющих вам
создавать ваши собственные
каталоги. Эти команды обсуждаются
далее в этой книге.
Стандартный
ввод/вывод и их перенаправление
Третья часть
головоломки Linux — связь между
командами и файлами, организуемая
при помощи стандартного ввода и
вывода. Не пугайтесь
технического термина — это понятие
на самом деле касается того, как
структурирована командная строка и
куда отправляются результаты
выполнения команды.
Linux, как и
любая операционная система, при
выполнении команды нуждается в
информации, откуда команда будет
получать данные и куда их выводить.
Другие операционные системы, такие
как Windows и Macintosh, самостоятельно
делают предположения об источнике
входных данных и назначении
выходных. Зачастую так поступает и
Linux. Однако, в большинстве случаев,
вам самим следует подумать, откуда
команда будет получать данные и
куда выводить. Ниже мы объясним
основы концепции стандартного
ввода/вывода на примере.
' Но это
отнюдь lie значит, что они
обязательно есть в любой
Linux-систе-ме, — например, в
дистрибутиве Debian отсутствует
каталог shiib. — Примеч. перев.
Стандартный
ввод/вывод и их перенаправление
Команда cat
— удивительно многосторонняя
команда. Она может использоваться
для вывода содержимого файла на
экран, добавления данных в конец
файла и других операций. Она даже
может быть использована в качестве
простейшего текстового редактора:
$ cat
После ввода
этой команды курсор переместится в
следующую строку, п вы сможете
вводить текст с клавиатуры.
Поскольку в команде нс указано,
куда должен быть отправлен
вводимый текст, то Linux и команда cat
предполагают, что текст должен быть
выведен на экран. После того как
текст выведен на экран, он потерян
навсегда. Большинство команд Linux по
умолчанию используют в качестве
стандартного ввода клавиатуру, а в
качестве стандартного вывода —
экран. Поэтому команду cat саму
по себе вы можете использовать для
тренировки навыков ввода
информации с клавиатуры, но в таком
виде для какой-либо другой цели она
бесполезна.
Однако
область применения команды cat
существенно расширяется, если вы
указываете в командной строке
имена файла. Команда cat с именем
файла в качестве аргумента выводит
содержимое этого файла на экран.
В этом
примере команда cat использует в
качестве стандартного ввода не
клавиатуру, а указанный файл.
Содержимое файла не изменяется, оно
просто выводится на экран.
Глава 1. Основные
понятия и команды
Вы можете
использовать команду cat для
записи строк в файл. Для этого вам
следует использовать символы перенаправления.
Эти символы позволяют любой
команде использовать в качестве
стандартного ввода или вывода
вместо клавиатуры или экрана файл
или стандартный ввод/ вывод другой
команды. В следующем примере
стандартный вывод команды cat
вместо экрана направляется в файл
kevin.report:
$ cat > kevin.report
Вводимый с
клавиатуры текст построчно
записывается в файл kevin.report.
Нажатие клавиш Ctrl+D
останавливает перенаправление и
заканчивает выполнение команды cat.
Перенаправление
может использоваться как для
стандартного вывода, так и для
стандартного ввода. Команда cat может
использоваться для копирования
файлов следующим образом:
$ cat kevin.report >
pat.report
В этом
примере стандартным вводом служит
файл kevin.report, а стандартным
выводом — файл pat.report. Содержимое
файла kevin.report не изменяется.
Для того
чтобы дописать данные в конец
существующего файла, используется
специальный символ
перенаправления. В следующем
примере содержимое файла kevin.report дописывается
в конец файла pat.report:
$ cat kevin.report »
pat,report
Если бы в
этом примере было опущено имя файла
kevin.report, то команда cat
дописала бы вводимый с клавиатуры
текст в конец файла pat.report.
Соответствующая команда выглядит
так:
$ cat » pat.report
Стандартный
ввод/вывод и их перенаправление
Существуют
всего четыре символа
перенаправления стандартного в
вода/вы вола:
• Символ >
используется для перенаправления
стандартного вывода команды в 4)аил.
Например, cat > file запишет
выводимую командой cat
информацию в файл file.
• Символ <
используется для переназначения
стандартного ввода команды.
Например, при выполнении команды
cat < file в качестве стандартного
ввода cat используется не
клавиатура, а файл file.
• Символ »
используется для дописывапия
стандартного вывода команды в
конец существующего файла.
Например, cat » file допишет
выводимую командой cat
информацию в конец файла file.
• Символ ¦
является символом потока. Он
используется, когда вы хотите
передать стандартный вывод одной
команды на стандартный ввод другой.
Например, cat ¦ grep отправит
стандартный вывод команды cat на
стандартный ввод команды grep.
(Потоки более подробно обсуждаются
ниже в этой главе.)
На первый
взгляд может показаться, что эти
символы — не что иное, как
несколько способов сделать одно и
то же. На самом деле символы < и >
можно менять местами в командной
строке, но они оба нужны. Команды,
которые выглядят похоже, на самом
деле могут совершенно по-разному
обрабатываться операционной
системой. Например, команда
$ cat pat.file
выполняет те же действия, что и
команда
$ cat < pat.file
Глава 1. Основные
понятия и команды
Однако на
самом деле это различные команды. В
первом случае pat.file — это аргумент
команды cat. С точки зрения Linux
аргументы — это переменные,
используемые в командной строке. В
данном случае получилось так, что
аргумент — это файл. Во втором же
примере файл pat.file играет роль
стандартного ввода для команды cat.
Нет никаких
ограничений на использование
символов перенаправления в
командной строке. Достаточно часто
используются сразу два символа
перенаправления, особенно в
сценариях интерпретаторов
командной строки:
$ cat < filel > file2
Эта команда
использует файл filel в качестве
стандартного ввода команды cat, а
файл file2 — в качестве
стандартного вывода.
Потоки
Поток,
обозначаемый символом ¦, — это
просто еще один способ
перенаправления стандартного
ввода/вывода. Использование
потоков позволяет работать
непосредственно с командами,
передавая информацию, выводимую
одной из команд, на ввод другой.
Синтаксис таков:
$ commandl ¦ command2
Сочетание
команд и символа потока часто также
называется потоком. Потоки
часто используются при подготовке
файлов к печати.
Общие параметры
Х Window
Среди прочих
команд глава 5 содержит описания
команд системы Х Window. Эти команды
имеют общий набор параметров.
Вместо того чтобы перечислять эти
параметры в описании каждой
команды, мы перечислим их здесь.
Общие параметры
Х Window
ПАРАМЕТР
|
ЗНАЧЕНИЕ
|
-background
красный
зеленый сипни
|
Установка
циста фона |
-background цвет
|
Установка
цвета фона окна |
-bg цвет
|
Установка
цвета фона окна |
-display
система.'номер
сервера
|
Использование
Х сервера с заданным номером
(обычно — 0) на заданной системе
|
-fg цвет
|
Установка
основного цвета окна |
-fn шрифт
|
Использование
указанного шрифта |
-font шрифт
|
Использование
указанного шрифта |
-foreground
color красный
зеленый синий
|
Установка
основного цвета окна |
-foreground цвет
|
Установка
основного цвета окна |
-geometry
ширинахвысота+х+у
|
Установка
размера и расположения окна
|
-geometry ширинахвысота
|
Установка
размеров окна |
-geometry +x+y
|
Установка
положения верхнего левого угла
окна |
-height строки
|
Установка
размера окна по вертикали, в
строках |
-position x
у |
Установка
положения верхнего левого угла
окна, в пикселах |
Глава 1. Основные
понятия и команды
-reverse
|
Замена
местами цвета фона |
|
и
основного цвета окна |
-rv |
Замена
местами цвета фона |
|
и
основного цвета окна |
-size ширина
высота |
Установка
размера окна, |
|
в
пикселах |
-Wb
красный зеленый синий
Установка цвета фона. |
-Wf красный
зеленый синий |
Установка
основного цвета |
|
окна
|
-WG ширинахвысота+х+у
|
Установка
размера |
|
и
расположения окна |
-WG ширина^высота
|
Установка
размеров окна |
-WG +.г-+г/
|
Установка
положения |
|
верхнего
левого угла окна, |
|
в
пикселах |
-Wh строки
|
Установка
размера окна |
|
по
вертикали, в строках |
-Wi |
Запуск
программы со |
|
свернутым
в значок окном |
-width столбцы
|
Установка
ширины окна, в столбцах |
-Wp л' г/
|
Установка
положения |
|
верхнего
левого угла окна, |
|
в
пикселах |
-Wr |
|
система
-.номерсервера |
Использование
Х сервера |
|
с
заданным номером (обычно — 0)
|
|
на
заданной системе |
Общие параметры
Х Window
-Ws ширина
высотп -Wt шрифт -Ww столбцы
|
Установка
размеров окна. в пикселах I
1спользован11с указанного
шрифта
Установка
ширины окна, в столбцах
|
|