Установка Linux Red Hat 7.1

         

Что дальше



Что дальше

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

До сих пор наше внимание было сосредоточено на среде X Windows и ее возможностях, но основа всех операционных систем семейства Unix - командная строка.

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



Что такое команда Linux



Что такое команда Linux

Прежде чем перейти к рассмотрению конкретных команд, дадим определение команде.

Пользователям, вышедшим из среды DOS, это понятие знакомо: команда - основа главных функций операционной системы. Из команд DIR, COPY или ATTRIB составляются довольно сложные процедуры, оформляемые в виде bat-файлов (командных файлов).

Однако в DOS, как и в других операционных системах, количество команд ограниченно и статично — пользователь не может вводить собственные команды.

В мире Unix (следовательно, и Linux) понятие команды несколько иное. Здесь команда - это любой выполняемый файл. Командой является любой файл, предназначенный для выполнения, а не для хранения данных или конфигурационных параметров. Любой выполняемый файл, записанный в систему, становится ее командой.



Find, locate, whereis и grep



Find, locate, whereis и grep

Команды find, locate, whereis и grep - мощные инструменты поиска файлов. Мы рассмотрим наиболее основные варианты их применения, поскольку полное описание потребовало бы целой главы. Полное описание каждой команды можно найти на соответствующих страницах руководства (команду обращения к ним рассмотрена далее).

Все эти команды предназначены для поиска, но назначение у каждой свое. Команда find применяется для поиска файлов по ряду критериев, в том числе по имени и дате создания, grep - для поиска в файлах определенного содержимого.

Find

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

Эта команда позволяет отыскивать файлы по имени, дате создания или модификации, владельцу (обычно, это создатель файла), объему и даже типу файла. Мы рассмотрим лишь самый распространенный способ поиска - по имени файла.

Основная структура команды find следующая.

$ find starting-directory parameters actions

Параметр starting-directory определяет каталог, с которого должен начинаться поиск. Например, если в качестве этого параметра указать /home, поиск будет проводиться во всех подкаталогах каталога /home - в исходных каталогах пользователей. Если указать одну косую (/), будет выполнен поиск по всем каталогам.

Параметр parameters означает критерии поиска. В нашем случае, это имя 'файла, который надо найти (-name имя_ файла).

Параметр actions указывает, что делать с найденными файлами. Чаще всего указывается флажок -print, по которому выводится имя найденного файла с указанием пути. Задавать поиск без этого параметра бессмысленно, поскольку результат останется неизвестным.

Подытожим. Чтобы найти в системе все файлы с именем foo, введите следующую команду.

$ find / -name foo -print

На экране результат будет выглядеть примерно так:

$ find / -name foo -print

/trap/foo

/home/armand/foo

/home/tdanesh/foo

Совет

Обратите внимание: в предыдущем примере задавался поиск во всей системе. Чтобы такая операция была возможна, необходимо войти в систему как корневой пользователь, которому доступны все каталоги. Если этого не сделать, то в ответ на каждую попытку провести поиск в каталоге, к которому нет доступа, будет выводиться сообщение об ошибке "permission denied" (нет доступа).

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

$ find / -name 'fo*' -print

/tmp/foo

/var/lib/texmf/fonts

/usr/bin/font2c

/usr/bin/mh/folders

/usr/bin/mh/folder

/usr/bin/mh/forw

/usr/bin/formail

/usr/bin/fontexport

/usr/bin/fontimport

/usr/bin/fold

и т.д.

Обратите внимание: имя файла указано в одинарных кавычках 'fо*'. Если не сделать этого при использований подстановочного символа "*", то ответом на ввод команды будет сообщение об ошибке.

$ find / -name fo* -print -mount

find: paths must precede expression Usage: find [path...] [expression]

Если результаты выполнения команды find не помещаются на экране, можно присоединить к ней команду more, как в примере с командой ls -1.

$ find / -name 'fo*' -print | more



Введение в систему команд Linux



Введение в систему команд Linux


Что такое команда Linux
Выполнение команды Linux
Обычные команды Linux

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

В главе рассмотрены некоторые часто употребляемые команды: Is, find и grep. Поскольку это команды большинства дистрибутивов, пользователи Unix без труда определят их назначение и возможности, предоставляемые опытному пользователю.

Примечание

В этой главе изучается командная строка Linux. Есть два способа установить режим командной строки: войти в одну из виртуальных консолей Linux или запустить в X Windows окно xterm, GNOME terminal либо KDE's Konsole.



Главное окно программы xman



Рис. 13.2. Главное окно программы xman

В меню Options (рис. 13.3) можно включать вывод списка страниц руководства (команда Display Directory) или текущей страницы (Display Manual Page). Команда меню Help (Справка) открывает подробный файл справки окна xman. Для отображения искомой страницы руководства, выберите опцию Search (Поиск), затем введите имя команды в появившемся текстовом поле.

Для вас больший интерес должно представляет меню Sections (рис. 13.4), поскольку именно с него начинается поиск нужной страницы руководства.

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

Страница руководства любой команды открывается двойным щелчком на ее имени.



Grep



Grep

Если команда find применяется для поиска файла по имени, типу или дате, то по команде grep происходит поиск заданной строки текста в нескольких файлах.

Предположим, у вас есть текстовый файл, содержащий слово "radio". Вы записали этот файл в исходный каталог, но забыли его имя. Следовательно, надо найти файл, который содержит слово "radio". Именно такой поиск выполняется по команде grep.

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

$ grep radio *

ab.txt:This is a tes.t of searching for the word radio. pop.txt:

0n another radio station, he found that

Обратите внимание: команда grep выводит по одной строке на каждое найденное слово "radio". Справа от имени файла после двоеточия приведена строка, содержащая искомое слово. Общий формат команды grep следующий.

$ grep text-pattern file-list

В качестве строки поиска text-pattern можно указать слово, фразу или более сложное регулярное выражение. Регулярные выражения - мощное средство поиска текста. Их описание можно найти на странице руководства команды grep. Список файлов file-list может быть любой формы, допускаемой оболочкой. Типы выражений, составляющие список файлов, рассмотрены в гл. 16.

Обычно проверка одного файла проводится командой:

$ grep text-pattern file-name

а проверка всех файлов некоторого каталога командой:

$ grep text-pattern *

В последней команде "*" - это выражение, означающее поиск во всех файлах текущего каталога. Строка поиска в простейшем варианте представляет собой слово или часть слова без пробелов. Если надо найти фразу, например "is a test", от ее указывают в двойных кавычках, как в следующем примере:

$ "grep "is a test"*

ab.txt:This is a test of searching for the word radio.

Подобно командам more и less, команду grep удобно конвейеризировать с другими командами. Предположим, что нам необходимо получить список всех файлов в текущем каталоге с датой модификации 12 мая. Для этого можно воспользоваться командой 1s -1 с присоединенной командой grep:

$ 1s -1 | grep "May 12"

-rw-r—r-- 1 root root 19197 May 12 21:17 rfbprotoheader.pdf

-rw-r—r- 1 root root 110778 May 12 21:20 rfprotoA.zip

-rw-r—r--- 1 root root 17692 May 12 23:03 svnc-0 .1. tar ,gz

-rw-r—r-- l root root 25222 May 12 19:58 vnc-3 . 3 . l_j-avasrc . tgz

drwxr-xr-x 2 root root 1024 May 12 21:49 vncj.ava



Gzip



Gzip

В приведенных примерах применения команды tar файлы архивируются, но не сжимаются. В Linux для сжатия файлов используется команда gzip.

В отличие от программы ZIP из Windows, которая может сразу создать архив, состоящий из множества сжатых файлов, команда gzip только сжимает отдельные файлы.

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

$ gzip test.pdf

По этой команде файл test. pdf сжимается и к его имени добавляется расширение . gz, так что он превращается в файл test .pdf . gz. До сжатия файл имел объем 110 778 байт:

-rw-r--r-- I root root 110778 Jun 5 16:54 test.pdf

После сжатия его объем уменьшился до 83 729 байт.

-rw-r--r-- I root root 83729 Jun 5 16:54 test.pdf.gz

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

$ gzip *

сжимаются все файлы в текущем каталоге (но не в его подкаталогах).



Исходное окно xman



Рис. 13.1. Исходное окно xman

Чтобы открыть окно xman, показанное на рис. 13.2, щелкните на кнопке Manual Page (Страница руководства). Сначала открывается файл справки окна, у которого есть два меню: Options (Параметры) и Sections (Разделы).



Команды и кавычки



Команды и кавычки

Существует три разновидности кавычек, используемых в командах: одиночная ('), двойная (") и обратная ('), Эти кавычки отличаются с точки зрения встроенных команд, наподобие date, и переменных, наподобие $LOGNAME. Пара любых одинаковых кавычек ограничивает передаваемую команде строку данных. Например, допустим, что $LOGNAME=mj и сравним следующие команды:

echo Welcome $LOGUAME, the date is date

echo Welcome $LOGNAME, the date is date'

echo "Welcome $LOGNAME, the date is date"

echo "Welcome $LOGNAME, the date is 'date'"

В зависимости от того, насколько корректно указаны кавычки, Linux будет (или не будет) выполнять команду date или транслировать $LOGNAME. Результаты выглядят так:

Welcome mj, the date is date

Welcome $LGGNAME, the date is /Sate

Welcome mj, the date is date

Welcome mj, the .date is Mon June 14 10:45:20 EDT 2001

Первый пример не содержит кавычек вообще. $LOGNAME транслируется как mj, но команда date не выполняется. Во втором примере использованы одиночные кавычки. $LOGNAME не транслируется, а команда date не выполняется. Третий пример содержит двойные кавычки. Результат совпадает с результатом первой команды, поэтому двойные кавычки полезны в таких командах как grep. Последний пример заключает date в обратные кавычки. Такая процедура позволяет выполнить команду Linux, входящую в состав текстовой строки.



Less



Less

Команда less - усовершенствованный вариант команды more. В дополнение к функциям, описанным выше (постраничная или построчная прокрутка текста от начала до конца и поиск), команда less позволяет выполнять следующие операции:

переход на указанную строку;
переход в начало или. конец текста;
прокрутка текста от конца к началу;
поиск в обратном направлении.

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

Для построчной прокрутки текста вверх или вниз достаточно нажать соответствующую клавишу со стрелкой. Постраничная прокрутка вверх выполняется нажатием клавиш Ctrl+B.

Наконец, операция поиска в прямом направлении (от начала до конца) задается косой чертой ( /), р обратном - вопросительным знаком.

Примечание

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

Как и команда more, команда less имеет собственную страницу руководства. Работа со страницами руководства рассмотрена в параграфе, посвященном команде man.



Locate



Locate

Если команда find выполняется слишком долго, можно попробовать воспользоваться командой locate. Эта команда сканирует базу данных файлов вашего компьютера, обновляемую раз в сутки. Алгоритм ее работы несколько отличается от алгоритма команды find, поскольку locate возвращает все файлы, в имени или названии каталога которого есть искомая строка.

Например, команда locate xauth породит следующий результат:

$ locate xauth

/home/mj/.xauth

/home/mj/.xauth/refcount

/home/mj/.xauth/refcount/root

/home/mj7 .xauth/refcount/root/testlinux

/lib/security/pam_xauth.so

/usr/XllR6/bin/mkxauth

/usr/XllR6/bin/xauth

/usr/XllR6/man/manl/mkxauth.1x.gz

/usr/XllR6/man/manl/xauth.1x.gz

/usr/share/doc/pam-0.72/txts/README.pam_xauth

/usr/share/man/man8/pam_xauth.8.gz

Обратите внимание, что эта команда выдала полный путь для всех файлов и каталогов, имена которых включают строку "xauth," в том числе каталоги /home/mj / .xauth и /usr/X11R6/ bin/mkxauth, а также файл команды /usr/X11R6/bin/xauth.

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



Man и хmаn



Man и хmаn

В этой главе часто встречаются ссылки на страницы руководства. Это стандартная форма справочной системы Linux. В Linux Red Hat 7.1 почти каждая команда имеет собственную страницу руководства.

Страница руководства открывается командой man:

$ man command-name

По этой команде открывается страница руководства команды command-name, которую можно пролистывать или выполнять в ней поиск, как при просмотре текста с помощью команды less. Если указанную страницу руководства не удается найти, выводится сообщение об ошибке.

$ man non-existent-man-page

No manual entry for non-existent-man-page

Поскольку вы уже умеете работать в X Windows, можете вместо команды man использовать программу хтап: $ хmаn &

или

$ /usr/x11R6/bin/xman

По этой команде откроется исходное окно как на рис. 13.1.



Меню Options



Рис. 13.3. Меню Options











Меню Sections



Рис. 13.4. Меню Sections











More и less



More и less

Команды more (больше) и less (меньше) тесно связаны и функционально подобны. Интересно, что у той, которая называется "меньше", возможностей больше.

Основное назначение этих команд - вывод на экран или в окно текста большого объема по частям, чтобы его можно было листать в обоих направлениях, а также поиск в этом тексте.

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

More

Начнем с команды more. Это основная команда постраничной или построчной прокрутки большого текста на экране и поиска в этом тексте.

Чтобы просмотреть большой текстовый файл textf lie, введите следующую команду:

$ more textfile

После нажатия клавиши Enter на экране появится первая страница текста, в последней строке которой будет одно слово -More- (еще). Нажатие клавиши пробела прокручивает текст на одну страницу, нажатие Enter - на одну строку. В конце текста на экране появится подсказка командной строки.

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

Команде more можно передать результаты выполнения другой команды, воспользовавшись методом конвейеризации (гл. 16).

Если в моей системе ввести команду ls -l для просмотра содержимого каталога /tmp, то будет выведен список в 237 строк - больше, чем может вместить самое большое окно xterm. Чтобы просмотреть этот список по частям, необходимо передать результаты выполнения команды ls -1 команде more.

$ ls -l /tmp | more

Как видим, к команде ls -1 при помощи вертикальной черты (в большинстве английских клавиатур — Shift+\) присоединена команда more. Такое соединение команд называется конвейеризацией. Результат команды ls -1 выводится по условиям команды more - с постраничной или построчной прокруткой и поиском текста.

Примечание

Подробные инструкции по применению команды more приведены на странице руководства этой команды. Работа со страницами руководства рассмотрена в параграфе, посвященном команде man



Обычные команды Linux



Обычные команды Linux

Количество команд, доступных в обычном дистрибутиве (например, Linux Red Hat 7.1), достаточно велико. Но даже высококвалифицированный пользователь постоянно пользуется лишь некоторыми командами.

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

SU
pwd, cd и Is
more и less
find, locate, whereis и grep
tar и gzip
man

Путь в Linux



Путь в Linux

Некоторых пояснений требует понятие пути (path). Каждому пользователю, вошедшему в систему, предоставляется путь по умолчанию. Узнать его можно с помощью команды

$ echo $РАТН

Результат ее выполнения может выглядеть так:

$ /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/mj/bin

Путь $PATH - список каталогов, разделенных двоеточиями. Если команда вводится без указания нуги, то происходит ее поиск (т.е. поиск соответствующего выполняемого файла) во всех каталогах пути по умолчанию. В приведенном выше примере, если команда guess есть и в каталоге /usr/local/bin и в каталоге /home/mj/bin, то выполнится та из них, которая расположена в каталоге /usr/ local/bin. Если же вы хотите выполнить именно ту команду guess, которая расположена в каталоге /home/mj /bin, то вам придется указать полный путь, т.е. ввести команду /home/mj /bin/guess. Подробнее об установке пути рассказано в гл. 16.

Более сложные методы выполнения команд, в том числе связывание нескольких команд (конвейеризация), рассмотрены в гл. 16.



Pwd, cd и ls



Pwd, cd и ls

Более основательно мы ознакомимся с этими командами в гл. 14. Основное их назначение — работа с каталогами и файлами.

Первая команда - pwd (аббревиатура от present working directory - текущий рабочий каталог). Набрав ее в командной строке и нажав Enter, можно узнать свой текущий каталог.

$ pwd

/home/armand

В примере команда pwd возвращает имя текущего каталога /home/armand. Следовательно, вы находитесь в исходном каталоге пользователя armand (это мой каталог).

Команда cd не только определяет текущее состояние, но и изменяет его. По этой команде выполняется переход из текущего каталога в любой другой (доступный).

Вернемся к предыдущему примеру с текущим каталогом /home/armand. Воспользовавшись командой cd, перейдем в подкаталог wordfiles этого каталога.

$ cd wordfiles

$ pwd

/home/armand/wordfiles

Если теперь ввести команду pwd, она подтвердит переход в новый каталог. Аналогично выполняется переход в системный каталог временных файлов / tmp:

$ cd /tmp $ pwd

/tmp

Отличие сводится к наличию ведущей косой черты (/) перед названием каталога. Первая команда (cd wordfiles) ее не использует, поэтому адресация перехода выполняется по отношению к текущему каталогу (относительная адресация - прим. ред. пер.). Если выполнить точно такую же команду из исходного каталога Майка (/home/mike), то вы перейдете в каталог

/home /mike /wordfiles.

А вторая команда (cd / tmp) использует ведущую косую черту. Такая команда позволяет выполнить переход в одну и ту же точку дерева каталогов (абсолютная адресация - прим. ред. пер.), независимо от того, в каком каталоге она выполняется.

Наконец, команда Is предназначена для просмотра содержимого текущего каталога. Если ввести эту команду из каталога armand, от результат будет примерно следующим.

$ Is

2341chlla.doc dead.letter scmp-jpc.bak

DISKCOPY.COM foo svgalib-1.2.11-4.i386.rpm

DRWEBDEM.IMG foo.html test.txt

Xconf igurator-.3.26-1.1386. rpm mail wabi

Xrootenv nsmail xserver-1.1-1.1386.rpm

armand scmp-jpc

Обратите внимание на способ вывода на экран имен файлов и каталогов - в несколько столбцов. Ширина столбца определяется максимально длинным именем файла или каталога в нем.

Команда Is используется для вывода содержимого не только текущего, но и любого доступного каталога Для вывода содержимого каталога usr необходимо ввести команду Is /usr.

$ Is /usr

X11 doc i486-linuxaout lib "Sbin

X11R6 dt ibase libexec share

X386 etc include local spool

bin games info man src

diet i486-linux-libc5 interbase openwin tmp

Обратите внимание на зависимость числа и ширины столбцов от максимальной длины имени файла или каталога.

Возникает вопрос: какой прок в указанной информации, если нельзя отличить каталоги от файлов и не указаны объемы последних?

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

$ Is -1












total 1807












rw r r

1

armand

armand

52224

Apr

24

23

:00

2341chlla.doc

-rw-r — r--

1

armand

armand

24325

May

9

16

:06

DISKCOPY.

COM

-rw-r--r--

1

armand

armand

1474979

May

9

16

:06

DRWEBDEM.

IMG


-rw-r--r —

1

armand

armand

52313

Jan

21

18

:04

Xconf igurator

-3.26-1.1386

.rpra

-rw-r--r--

1

annand

armand

396

May

19

23

:09

Xrootenv



drwx ------

2

armand

armand

1024

May

17

09

:55

armand ,



-rw ------

1

armand

armand

10572

May

18

22

:29

dead. letter

-rw ------

1

armand

root

1455

Apr

24

21

:38

foo



-rw-r--r —

1

armand

armand

2646

May

7

07

:32

f oo . html



drwx ------

2

armand

armand

1024

(Tun

4

07

:12

mail



drwx ----- -

2

armand

armand

1024

May

17

09

:56

nsmail



-rw-r--r--

1

armand

armand

4288

May

14

22

:17

scmp-jpc

,


-rw-r--r--

1

armand

armand

4289

May

14

22

:12

scmp-jpc.

bak


-rw--r — r

1

armand

armand

195341

Mar

25

17

:32

svgalib-1

.2.

11

4.i386.rpm












-rw-rw-r--

1

armand

armand

94

May

17

11

:44

test . txt



drwxr-xr-'X

r ,

armand

armand

1024

May

19

23

:07

wabi



-rw-r--r--

1

armand

armand

4493

Feb

4

15

:31 xserver -wrapper

*-l.l-l.1386.rpm

Теперь у нас есть достаточно подробные сведения о каждом файле. Самые важные из них находятся слева от имени файла или каталога - дата последней модификации и (только для файлов) объем в байтах (1024 байт = 1 Кбайт).

Первый символ первого столбщ указывает, что приведено в этой строке: каталог (d) или файл (-). Например, scmp-jpc - это файл:

-rw-r—r— 1 armand armand 4288 May 14 22:17 scmp-jpc

в отличие от каталога mail:

drwx------ 2 armand armand 1024 Jun 4 07:12 mail



Список команд



Рис. 13.5. Список команд












Su



Su

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

Обычно команда su используется для переключения пользователей. Предположим, что вы вошли в систему как пользователь user1, вам нужно перейти на учетную запись пользователя user2, выполнить некоторые действия и продолжить работу как user1.

Вы можете выйти из системы, вновь войти в нее как user2, затем, выполнив все, что надо, вновь выйти и войти как user1. Утомительная процедура. Можно поступить иначе: войти в олн> виртуальную консоль как user1, в другую - как user2, а затем переключаться с консоли на консоль. Этот метод неудобен тем, что приходится работать с разными экранами.

Наконец, третий способ - использование команды su. Чтобы перейти на учетную пользователя user2, достаточно ввести команду:

$ su user2

после чего на экране появится строка ввода пароля пользователя user2:

$ su user2

password:

Чтобы вернуться к учетной записи userl, введите команду:

$ exit

Полностью это будет выглядеть следующим образом:

[userl@localhost userl]$ su user2

Password:

[user201ocalhost userl)$ some commands

[user2@localhost userl]$ exit

exit

[u&erieioealhose userl]$

Обычно команда su используется для получения прав корневого пользователя (или супер-пользователя), если предстоит выполнение административных задач - создание или редактирование учетных записей пользователей, конфигурирование сети или принтеров.

Если ввести команду su без имени пользователя, то система будет подразумевать имя root. После ввода пароля вы можете продолжить работу как корневой пользователь.

[userl@localhost userl]$ su

Password:

[root@localhost userl]#

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

[root@localhost /root]# su userl [userl@localhost /root]$

Команда su предоставляет много возможностей, используемых при решении сложных административных задачах. Узнать о них можно из страницы руководства для этой команды. Обращение к этой странице описано далее в главе.



Tar



Tar

Первоначально программа tar предназначалась для создания резервных копий системы на магнитных лентах (tar - сокращение от tape archive, что означает архив на магнитной ленте). В настоящее время эта программа широко применяется для подготовки программного обеспечения к распространению.

Формат команды создания архива:

$ tar cvf tar-file-патв file-list

По этой команде создается архивный файл tar-file-name (как правило, с расширением . tar), в который записываются все файлы, указанные в списке file-list, составленном в соответствии с правилами, рассмотренными в гл. 16. Обратите внимание: файлы, вносимые в архив, не переносятся, а копируются, поэтому нет опасности их случайного удаления.

Обратите также внимание на параметры, следующие непосредственно за командой. В приведенном примере это cvf. Каждый из этих параметров определяет отдельные аспекты поведения команды tar:

с - указывает создание нового архива, в отличие от просмотра существующего или внесения в него файлов;
v - указывает подробный вывод данных с указанием каждого архивируемого файла;
f - указывает архивирование в файл, а не на магнитную ленту.

Если необходимо архивировать все файлы с расширением . txt в текущем каталоге в архивный файл text. tar, можно воспользоваться командой:

$ tar cvf text.tar *.txt

ab.txt pop.txt

Обратите внимание на перечисление файлов, копируемых в архив.

Иногда ipeGyeiUM копирован, в архив каталог. К счастью, каталог, указанный в списке файлов команды tar, копируется в архив вместе со всеми содержащимися в нем файлами и подкаталогами. Следовательно, для копирования всего содержимого, например, каталога vnc в архивный файл vnc. tar можно воспользоваться командой

$ tar cvf vnc.tar vnc

Полностью, это будет иметь следующий вид.

$ tar cvf vnc.tar vnc

vnc/

vnc/LICENSE.TXT

vnc/README

vnc/README. vnc server

vnc/Xvnc

vnc/classes/

vnc/classes/DesCipner.class

vnc/classes/animatedMemorylmageSource.class

vnc/classes/authenticationPanel.class

vnc/classes/clipboardFrame.class

vnc/classes/optionsFrame.class

vnc/classes/rfbProto.class

vnc/classes/vncCanvas.class

vnc/classes/vncviewer.class

vnc/classes/vncviewer. jar

vnc/vncpasswd vnc/vncserver vnc/vncviewer

Обратите внимание, что в первой ответной строке команды указывается создание каталога vnc в архиве, после чего происходит копирование файлов в этот каталог.

Существующий архив, как правило, просматривают или извлекают из него файлы. Для, просмотра содержимого архива параметр с заменяется параметром t.

$ tar tvf vnc.tar

drwxr-xr-x root/root 0 1998-05-16 23:55 vnc/

-rw-r—r—.root/root 18000 1998-01-23 16:52 vnc/LICENCE.TXT

-rw-r—r— root/root 6142 1998-01-23 16:53 vnc/REAEME

-r—r—r— root/root 601 1998-01-23 16:28 vnc/README.vncserver

-r-xr-xr-x root/root 1286834 1998-01-23 13:00 vnc/Xvnc

drwxr-sr-x root/root 0 1998-01-23 16:24 vnc/classes/

-r—r—r— root/root 7143 1998-01-23 16124 vnc/classes/DesCipher.class

-r— r —r— root/root 1329 1998-01-23 16:24 vnc/classes/

animatedMemorylmageSource. class

-r—r—r— root/root 2068 1998-01-23 16:24 vnc/classes/

^authenticationPanel. class

-r—r—r— root/root 1761 1998-01-23 16:24 vnc/classes/clipboardFrame.class

-r—r—r— root/root 3210 1998-01-23 16:24 vnc/classes/optionsFrame.class

-r—r—r— root/root 8309 1998-01-23 16:24 vnc/classes/rfbProto.class

-r—r—r— root/root 7092 1998-01-23 16:24 vnc/classes/vncCanvas.class

-r—r—r— root/root 7100 1998-01-23 16:24 vnc/classes/vncviewer.class

-Г—r—r— root/root 20564 1998-01-23 16:24 vnc/classes/vncviewer.jar

-r-xr-xr-x root/root 11433 1998-01-23 13:00 vnc/vncpasswd

-r-xr-xr-x root/root 10795 1998-05-17 00:17 vnc/vncserver

-r-xr-xr-x root/root 49685 1998-01-23 13:08-vnc/vncviewer

Как видим, список файлов выводится в подробной форме: как при выводе содержимого каталога командой Is' -1.

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

$ tar xvf vnc.tar

vnc/

vnc/LICENSE.TXT vnc/README vnc/README.vncserver vnc/Xvnc

vnc/classes/

vnc/classes/DesCipher.class vnc/classes/animatedMemorylmageSource.class

vnc/classes/authenticationPanel.class vnc/classes/clipboardFrame.class

vnc/classes/optionsFrame.class vnc/classes/rfbProto.class vnc/classes/vncCanvas.class

vnc/classes/vncviewer.class vnc/classes/vncviewer.jar vnc/vncpasswd vnc/vncserver vnc/vncviewer



Таr и gzip



Таr и gzip

Большинство пользователей других операционных систем, в том числе Windows 98 и Mac OS, знакомы со сжатыми архивами. Сжатый архив - это единый файл, содержащий один или несколько файлов в сжатой форме.

Сжатые архивы часто используются для распространения программного обеспечения через Internet. В Linux есть команда unzip для доступа к архивным ZIP-файлам, но в мире Unix большее распространение получили архивы TAR. Эти архивы после заполнения сжимаются программой сжатия одиночных файлов gzip.



Восстановление сжатых файлов



Восстановление сжатых файлов

Для восстановления файла, сжатого командой gzip, можно воспользоваться этой же командой с параметром -d.

$ gzip -d test.pdf.gz

Файл восстанавливается в прежнем виде, из его имени удаляется расширение . gz.

Можно обойтись,без параметра -d, если для восстановления сжатого файла ввести команду:

$ gunzip test.pdf.gz

Объединение команд gzip и tar

Поскольку ранние версии команды tar выполняли архивирование без сжатия, она обычно применялась в сочетании с командой gzip, как в следующем примере:

$ tar cvf text.tar *.txt

ab.txt

pop.txt

$ gzip text.tar

где создается сжатый архив с именем text. tar. gz.

Доступ в этот архив возможен только после восстановления от сжатия:

$. gunzip text.tar.gz

$ tar tvf text.tar

-rw-r--r-- root/root 48 1998-06-05 16:13 ab.txt

-rw-r--r-- root/root 6 1998-06-05 16:13 pop.txt

Более поздние версии команды tar, в том числе входящие в современные дистрибутивы, предусматривают непосредственное создание сжатых архивов и прямой доступ к ним. Чтобы создать сжатый архив, команду tar надо ввести с параметром z:

$ tar czvf vnc.tar.gz vnc

vnc/

vnc/LICENSE.TXT

vnc/README

vnc/README.vncserver

vnc/Xvnc

vnc/classes/

vnc/classes/DesCipher.class

vnc/classes/animatedMemorylmageSouree.class

vnc/classes/authenticationPanel.class

vnc/classes/clipboardFrame.class

vnc/classes/optionsFrame.class vnc/classes/rfbProto.class vnc/classes/vncCanvas.class

vnc/classes/vncviewer.class vnc/classes/vncviewer.jar vnc/vncpasswd vnc/vncserver vnc/vncvi ewer

Для просмотра полученного архива можно воспользоваться командой'

$ tar tzvf text.tar.gz

-rw-r—r— root/root 48 1998-06-05 16:13 ab.txt

-rw-r—r— root/root 6 1998-06-05 16:13 pop.txt

а для извлечения файлов - командой $ tar xzvf text.tar.gz

ab.txt pop.txt

Примечание

Подробно о командах tar и gzip, а также их параметрах, см. на страницах руководства этих команд.



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



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

Поскольку мы уже рассмотрели запуск программ в X Windows, нет надобности подробно описывать эту процедуру. Чтобы выполнить команду, введите ее в командной строке.

$ command

Если файл команды не находится в каталогах вашего пути, введите команду с указанием полного пути.

$ /usr/bin/command



Whereis



Whereis

Если вы ищете команду с известным названием, воспользуйтесь whereis, чтобы найти, в каком каталоге расположена искомая команда, ее исходный код и соответствующая страница документации. В отличие от find или locate, здесь вам потребуется точное знание названия команды. Например, команда whereis fdisk выдаст следующий результат:

$ whereis fdisk

fdisk: /sbin/fdisk /usr/share/man/man8/fdisk,8.gz

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

К недостаткам команды whereis можно отнести то, что она просматривает только каталоги, включенные в специальный список. По этой причине она не сможет найти новую команду или страницу руководства, которую вы только что инсталлировали.