Количество команд, доступных в обычном дистрибутиве (например, Linux Red Hat 7.1), достаточно велико. Но даже высококвалифицированный пользователь постоянно пользуется лишь некоторыми командами.
В этом параграфе рассмотрены некоторые из наиболее часто используемых команд Linux. Они применяются для выполнения множества задач: от перехода из каталога в каталог до определения программ, выполняемых в системе, или поиска файлов. Мы рассмотрим следующие команды:
SU pwd, cd и Is more и less find, locate, whereis и grep tar и gzip man
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 предоставляет много возможностей, используемых при решении сложных административных задачах. Узнать о них можно из страницы руководства для этой команды.
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
Обратите внимание на зависимость числа и ширины столбцов от максимальной длины имени файла или каталога.
Возникает вопрос: какой прок в указанной информации, если нельзя отличить каталоги от файлов и не указаны объемы последних?
Теперь у нас есть достаточно подробные сведения о каждом файле. Самые важные из них находятся слева от имени файла или каталога - дата последней модификации и (только для файлов) объем в байтах (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
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
Less
Команда less - усовершенствованный вариант команды more. В дополнение к функциям, описанным выше (постраничная или построчная прокрутка текста от начала до конца и поиск), команда less позволяет выполнять следующие операции:
переход на указанную строку; переход в начало или. конец текста; прокрутка текста от конца к началу; поиск в обратном направлении. Чтобы перейти на определенную строку текста, введите ее номер с буквой g в конце. Если опустить номер строки, будет выполнен переход к первой строке. Вместо строчной буквы g можно указать заглавную (G), но тогда при отсутствии номера строки будет выполняться переход не к первой, а к последней строке.
Для построчной прокрутки текста вверх или вниз достаточно нажать соответствующую клавишу со стрелкой. Постраничная прокрутка вверх выполняется нажатием клавиш Ctrl+B.
Наконец, операция поиска в прямом направлении (от начала до конца) задается косой чертой ( /), р обратном - вопросительным знаком.
Примечание
Вероятно, некоторые из вас обратили внимание на то, что эти операции соответствуют командам текстового редактора vi.
Как и команда more, команда less имеет собственную страницу руководства. Работа со страницами руководства рассмотрена в параграфе, посвященном команде man.