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
Глава 1. Основные понятия и команды
Общие параметры Х Window
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
© «Русский ДРАККАР», 2005 - 2014 г.
Информация на сайте защищена законом об авторском праве, копирование запрещено.
Написание программ, конфигурация программ, поддержка пользователей,
WEB-программирование, настройка программного
обеспечения, удаление вирусов,
конфигурирование серверного оборудования и сетевых устройств