Командная строка - это самый прямой способ для отправки команд своей машине. Если вы будете использовать командную строку GNU/Linux, то вы вскоре обнаружите, что она значительно мощнее и обладает более широкими возможностями, чем любой другой интерпретатор команд. Эта мощь доступна благодаря тому, что вы имеете доступ не только ко всем приложениям X, но также и к тысячам утилит в консольном режиме (в противоположность графическому режиму), которые не имеют графических аналогов, с их многочисленными опциями и возможными комбинациями, достичь которых в виде кнопок или меню было бы труднее.
Надо отметить, что большинству людей для того, чтобы начать действовать, требуется некоторая помощь. Если вы еще не работаете в консольном режиме, и используете графический интерфейс, то первым делом вам надо запустить эмулятор терминала. Зайдите в главное в меню и вы найдете несколько эмуляторов в меню + . Выберите эмулятор на свой вкус, например или . В зависимости от вашего пользовательского интерфейса на панели задач также может существовать значок, четко его определяющий (Рисунок 28.2, «Значок терминала на панели KDE»).
Когда вы запускаете этот эмулятор
терминала, на самом деле вы используете
shell
. Это название
программы, с которой вы работаете. Вы
обнаружите перед собой
приглашение:
[queen@localhost queen]$
Здесь подразумевается, что ваше имя
пользователя - queen, а ваша машина
называется localhost
(это в случае,
если ваша машина не является частью
существующей сети). Пространство после
приглашения предназначено для ввода
ваших команд. Обратите внимание, что когда
вы root
, знак $
в приглашении
меняется на #
(это верно только
в конфигурации по умолчанию, так как в
GNU/Linux вы можете настроить все эти
элементы под себя). Для того, чтобы стать
root
'ом, наберите su после
запуска shell
.
[queen@localhost queen]$ su # Введите пароль root'а; (на экране он не появится) Password: # exit (или Ctrl+D) вернет вас назад в вашу обычную учетную запись пользователя [root@localhost queen]# exit [queen@localhost queen]$
Когда вы
запускаете
shell
в первый раз, вы обычно попадаете в
свой домашний каталог home/
.
Чтобы вывести на экран имя каталога, в
котором вы в данный момент находитесь,
наберите команду
pwd (которая означает вывести
рабочий каталог (Print Working Directory)):
$ pwd /home/queen
Далее мы рассмотрим несколько основных и весьма полезных команд.
Команда cd
такая же, как и в DOS'е, но с
дополнительными возможностями. Она
выполняет как раз то, что заявлено в ее
аббревиатуре - сменяет рабочий каталог.
Вы можете использовать .
и
..
, которые означают текущий и
родительский каталоги соответственно.
Запуск cd без параметров вернет вас
назад в ваш домашний каталог. Запуск
cd - вернет вас назад в
последний посещенный вами каталог. И,
наконец, вы можете указать домашний
каталог пользователя peter, набрав cd
~peter (~
сама по себе
означает ваш собственный каталог
home/
). Обратите внимание, что
как обычный пользователь, вы, как правило,
не можете попасть в каталоги
home/
других пользователей
(если только они не разрешили это, или
если это не настройка системы по
умолчанию), если вы не root
, поэтому
давайте станем root
'ом и
попрактикуемся:
$ su Password: # pwd /root # cd /usr/share/doc/HOWTO # pwd /usr/share/doc/HOWTO # cd ../FAQ-Linux # pwd /usr/share/doc/FAQ-Linux # cd ../../../lib # pwd /usr/lib # cd ~peter # pwd /home/peter # cd # pwd /root
Теперь вернемся назад в состояние обычного пользователя, набрав exit (или нажав Ctrl-D).
Все
процессы имеют свои
переменные
окружения, а shell
позволяет вам
увидеть их непосредственно при помощи
команды echo. Некоторые
интересные переменные:
HOME
: эта переменная окружения
содержит строку, в которой отображен
путь к вашему домашнему каталогу.
PATH
: содержит список всех
каталогов, в которых shell
должен будет
искать исполняемые файлы, когда вы
набираете команду. Обратите внимание,
что в отличие от DOS, shell
по
умолчанию не будет искать
команды в текущем каталоге!
PS1
: определяет, как будет
выглядеть ваше приглашение, и зачастую
является комбинацией специальных
последовательностей. Для получения
дополнительной информации вы можете
прочитать bash(1)
(страницу
руководства), набрав в терминале
man bash.
Чтобы shell
вывел значение переменной,
вы должны указать перед ее именем знак
$
. Вот пример с командой echo:
$ echo Hello Hello $ echo $HOME /home/queen $ echo $USERNAME queen $ echo Hello $USERNAME Hello queen $ cd /usr $ pwd /usr $ cd $HOME $ pwd /home/queen
Как видите, shell
подставляет значение
переменной перед выполнением команды. В
противном случае наш пример cd
$HOME не заработал бы. По сути
командный процессор сначала заменил
$HOME
на ее значение
(/home/queen
), так что строка
стала cd /home/queen, чего мы и
добивались. То же самое происходит и с
примером echo $USERNAME.
Нечего добавить, эта команда делает только это: она выводит содержимое одного или более файлов на стандартный вывод, обычно на экран:
$ cat /etc/fstab /dev/hda5 / ext2 defaults 1 1 /dev/hda6 /home ext2 defaults 1 2 /dev/hda7 swap swap defaults 0 0 /dev/hda8 /usr ext2 defaults 1 2 /dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev 0 0 none /proc proc defaults 0 0 none /dev/pts devpts mode=0620 0 0 /dev/cdrom /mnt/cdrom auto user,noauto,nosuid,exec,nodev,ro 0 0 $ cd /etc $ cat modules.conf shells alias parport_lowlevel parport_pc pre-install plip modprobe parport_pc ; echo 7 > /proc/parport/0/irq #pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start #alias char-major-14 sound alias sound esssolo1 keep /bin/zsh /bin/bash /bin/sh /bin/tcsh /bin/csh /bin/ash /bin/bsh /usr/bin/zsh
Название произошло от игры слов, связанной с первым пейджером из когда-либо использовавшихся в UNIX® с именем more (more - больше; less - меньше). Пейджер (page - страница) - это программа, которая позволяет пользователю просматривать большие файлы по частями страница за страницей (точнее, экран за экраном). Причина, по которой мы рассматриваем less, а не more, заключается в том, что less более интуитивна. Вам следует использовать less для просмотра больших файлов, которые не умещаются на одном экране. Например:
less /etc/termcap
Для перемещения по этому файлу используйте клавиши вверх и вниз. Для выхода нажмите Q. Возможности less значительно шире: нажмите H для вызова справки с различными доступными опциями.
Команда ls (LiSt) эквивалентна команде dir в DOS, но сделать она может больше, гораздо больше. В действительности это связано с тем, что файлы также могут делать гораздо больше. Синтаксис команды ls:
ls [опции] [файл|каталог] [файл|каталог...]
Если в командной строке не указан файл или каталог, ls выведет список файлов в текущем каталоге. Опций довольно много, поэтому мы опишем только некоторые из них:
-a
: вывод списка всех файлов,
включая
скрытые
файлы. Напомним, что в UNIX®
скрытые файлы - это те, чьи имена
начинаются с .
; опция
-A
выводит список
«почти» всех файлов, т.е. всех
файлов, которые были бы показаны опцией
-a
за исключением «.» и
«..»
-R
: рекурсивный вывод списка,
т.е. все файлы и подкаталоги в каталогах,
указанных в командной строке.
-h
: вывод для каждого файла его
размера в удобном для чтения формате. Это
означает, что вы увидите размеры файлов с
использованием суффиксов типа "K", "M" и "G",
например, "234K" и "132M". Пожалуйста, обратите
внимание, что размеры вычисляются по
основанию 2, а не по основанию 10. Это
означает, что 1 K на самом деле равен 1024
байтам, а не 1000 байт.
-l
: вывод дополнительной
информации о файлах: их права доступа,
владельцы и группы, размеры файлов и
время последнего доступа.
-i
: вывод перед каждым файлом
номера inode (уникальный номер файла в
файловой системе, см. Глава 36, Файловая система Linux).
-d
: обработка каталогов,
указанных в командной строке так, как
если бы они были обычными файлами, вместо
вывода списка их файлов.
ls -R: рекурсивно выводит список содержимого текущего каталога.
ls -is images/ ..: выводит список с
номером inode и размером в килобайтах для
каждого из файлов в каталоге
images/
, а также в родительском
каталоге по отношению к текущему.
ls -l images/*.png: выводит список
всех файлов в каталоге images/
,
чьи имена заканчиваются на .png
,
включая файл .png
, если такой
существует.
Существует большое количество
сокращенных клавиатурных команд. Их
основное преимущество состоит в том, что
они экономят для вас время при наборе на
клавиатуре. В этом разделе
подразумевается, что вы пользуетесь
стандартным shell
'ом, по умолчанию
поставляемым вместе с Mandriva Linux - bash,
но эти клавиши также могут работать и в
других командных процессорах.
Во-первых, клавиши со стрелками. bash
хранит историю предыдущих команд,
которые вы можете увидеть при помощи
клавиш вверх и вниз. Вы можете прокрутить
назад столько строк, сколько определено в
переменной окружения HISTSIZE
.
Кроме того, от сеанса к сеансу история
остается неизменной, поэтому вы
сохраните все команды, введенные вами в
предыдущем сеансе работы.
Клавиши со стрелками влево и вправо перемещают курсор влево и вправо в текущей строке, позволяя вам редактировать свои команды. Но при редактировании вы можете не только просто перемещаться на один символ за раз: Ctrl-A и Ctrl-E, например, переместят вас в начало и конец текущей строки. Клавиши Backspace и Del работают так, как и должны. Backspace и Ctrl-H эквивалентны. Del и Ctrl-D также могут быть использованы поочередно. Ctrl-K удалит все от текущей позиции курсора до конца строки, а Ctrl-W удалит слово перед курсором (так же как и Alt-Backspace).
Нажатие Ctrl-D в пустой строке позволит вам закрыть текущий сеанс, что намного проще, чем необходимость вводить exit. Ctrl-C прервет выполняющуюся в данный момент команду, если только вы не в процессе редактирования своей командной строки, в этом случае редактирование будет отменено и вы вернетесь назад к исходному приглашению. Ctrl-L очищает экран. Ctrl-Z временно останавливает выполнение задачи, т.е. она приостанавливается. Эта комбинация очень полезна, если вы забыли ввести символ «&» после набора команды. Например:
$ xpdf MyDocument.pdf
С этого момента вы больше не сможете воспользоваться своим командным процессором, т.к. приоритетной задачей стал процесс xpdf. Чтобы сделать процесс фоновым и восстановить работу своей консоли, просто нажмите Ctrl-Z и введите bg.
И в заключение, имеются комбинации Ctrl-S и Ctrl-Q, которые
используются для приостановки и
возобновления вывода на экран. Они
нечасто используются, но вы можете по
ошибке ввести Ctrl-S (в конце концов,
S и D на клавиатуре
находятся близко друг от друга). Поэтому,
если вы попадете в ситуацию, когда вы
что-то набираете на клавиатуре, но в
Терминал
'е никакие символы не появляются,
попробуйте нажать Ctrl-Q. Обратите внимание, что
все символы, введенные вами между
нежелательной комбинацией Ctrl-S и Ctrl-Q будут
единовременно выведены на экран.