Командная строка это самый прямой путь посылать команды машине. Если вы используете командную строку GNU/Linux, то вскоре вы найдете ее наиболее мощной и искусной, чем другие командные запросы, которые вы возможно использовали. Смысл здесь в том, что вы имеете прямой доступ не только ко всем приложениям X, но также к тысячам утилит в консольном режиме (в противоположность графическому режиму), которые не имеют графического эквивалента, или многочисленные опции и возможные комбинации которых были бы труднодоступны на форме из кнопок и меню.
Но, общепризнанно, что тут требуется некоторая помощь, чтобы приступить. Первая задача это запустить эмулятор терминала. Вы можете найти его в меню вашего GNOME или KDE . Затем, выберите какой нравится, например или . У вас также есть иконка, которая ясно определяет его на панели. (Рисунок 1.3. Иконка терминала на панели KDE).
Когда вы запускаете этот эмулятор терминала, вы реально используете shell. Это имя программы, с которой вы работаете. Вы окажетесь перед запросом:
[queen@localhost queen]$ |
Здесь предполагается, что имя вашего пользователя queen и ваша машина называется localhost (это в случае, если ваша машина не входит в какую-либо сеть). Обычно, после запроса находится пространство для того, чтобы вы набирали то, что вам необходимо. Заметьте, что когда вы заходите как root, символ запроса $ меняется на # (это верно для конфигурации по умолчанию, но вы можете изменить все такие детали в GNU/Linux). Чтобы перейти в root, наберите su после запуска shell.
# Введите пароль root; его не будет видно на экране [queen@localhost queen]$ su Password: # exit вернет вас в нормальны пользовательский аккаунт [root@localhost queen]# exit [queen@localhost queen]$ |
Во всех других местах книги, запрос будет символически отображаться знаком $, независимо от того, что вы нормальный пользователь или root. Вам будет сказано когда нужно быть root для выполнения команды, поэтому запомните команду su. Кстати, когда символ # помещен в начало строки кода, он обозначает комментарий.
Когда вы запускаете shell первый раз, вы обычно попадаете в домашний каталог. Чтобы узнать где вы сейчас находитесь, наберите pwd (то означает Print Working Directory (напечатать рабочий каталог)):
$ pwd /home/queen |
Теперь мы рассмотрим несколько основных команд и скоро вы найдете, что вы не можете жить без них! не сможете
Команда cd выглядит как DOS', с некоторыми дополнениями. Она делает то, что обозначает ее название - сменяет рабочий каталог. Вы можете использовать . и .., которые обозначают соответственно текущий и родительский каталоги. Вызвав cd без параметров, вы вернетесь в домашний каталог. Набор cd - вернет вас в последний каталог, в котором вы находились. И наконец, вы можете выбрать домашний каталог пользователя peter, набрав cd ~peter (~ сама по себе обозначает ваш собственный домашний каталог ). Заметьте, что как обычный пользователь, вы не можете перейти в домашний каталог другого пользователя (только если он авторизован для вас или это каталог с конфигурацией систему по умолчанию), если вы не root конечно, тогда давайте станем root и попрактикуемся:
$ 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 |
Все процессы имеют свои переменные окружения и shell позволяет вам их посмотреть непосредственно с помощью команды echo. Вот некоторые интересные переменные:
HOME: эта переменная окружения содержит строку, которая представляет ваш домашний каталог.
PATH: эта переменная держит список всех каталогов, в которых shell должна искать запускаемые программы, когда вы пишите команду. Обратите внимание, что в отличие от DOS, shell по умолчанию не будет искать команды в текущем каталоге!
PS1: эта переменная содержит определения для вашего запроса. Часто это комбинация специальных последовательностей. Вы можете прочитать bash(1) страницу руководства (manual page) для получения подробной информации.
Чтобы 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 |
Как вы можете увидеть, the shell подставляет значение переменной прежде чем выполнить команду. Иначе наша cd $HOME не работала бы здесь. Фактически, shell сначала заменила $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. Пейджер это программа, которая позволяет пользователю просматривать длинные файлы по страницам (более аккуратно, экран за экраном). Мы говорим здесь о less вместо more потому, что она гораздо интуитивнее в использовании. Вы можете использовать less для просмотра больших файлов, которые не помещаются в экран. Например:
less /etc/termcap |
Для перемещения по этому файлу, используйте клавиши со стрелками вверх и вниз. Для выхода используйте q. Однако, less умеет гораздо больше, чем это. Напишите h для помощи и взгляните. Но, в любом случае, целью этого раздела является научить вас читать длинные файлы, так что нашей цели мы уже достигли :-)
Команда ls (LiSt) это эквивалент команды DOS dir, но умеет делать гораздо больше. В значительной степени это следствие того, что файлы тоже могут делать больше. Синтаксис команды ls такой:
ls [options] [file|directory] [file|directory...] |
Если в командной строке не указан каталог или файл, ls выведет список файлов в текущем каталоге. У команды очень много опций, но некоторые из них мы здесь поясним:
-a: составляет список всех файлов, включая скрытые файлы (помните, что в UNIX, скрытые файлы это те, у кого имя начинается с .); опция -A составляет список “почти” всех файлов, что значит каждый файл, который вывела бы опция -a кроме “.” и “..”;
-R: составляет список рекурсивно, то есть всех файлов и каталогов, упомянутых в командной строке
-i: выводит номер inode (уникальный номер файла в файловой системе, см. главу Файловая система Linux) после каждого файла;
-d: обрабатывает каталоги в командной строке как будто они были нормальными файлами, вместо вывода их содержимого.
ls -is images/ ..: выводит список файлов в каталоге images/ и родительском каталоге для данного. Затем выводит для каждого файла номер inode и размер в килобайтах;
ls -al images/*.png: выводит список всех файлов, чьи имена заканчиваются на .png (включая любой скрытый файл) в каталоге images/. Заметьте, что это включает также файл .png, если таковой имеется.
Есть много вариантов нажатий клавиш и их главное преимущество состоит в том, что они экономят кучу времени при наборе текста. Этот раздел подразумевает, что вы используете shell по умолчанию, поставляемую с Mandrake Linux, bash, но эти горячие клавиши должны работать и в других shell тоже
Первое: клавиши со стрелками. bash хранит историю предыдущих команд, которые можно посмотреть по клавишам со стрелками. Вы можете прокручивать максимальное число строк, определенное в переменной окружения HISTSIZE. Более того, история постоянна от одного сеанса к другому, таким образом вы не потеряете команд, которые вы набирали в предыдущих сеансах.
Стрелки влево и вправо перемещают курсор влево и вправо текущей строки, и таким образом вы можете редактировать команды. Еще удобно для редактирования: Ctrl+A и Ctrl+E, например, переместят вас соответственно в начала и конец текущей строки. Клавиши Backspace и Del работают как обычно. Эквивалент Backspace это Ctrl+H и эквивалент Del это Ctrl+D. Ctrl+K удалит всю строку от позиции курсора до конца строки, и Ctrl+W удалит слово перед курсором.
Нажатие Ctrl+D на пустой строке закрывает текущий сеанс, что немного короче, чем набирать exit. Ctrl+C прервет текущую запущенную программу, если только вы не редактируете вашу командную строку, в этом случае это отменит редактирование и вернет вас в запрос. Ctrl+L очищает экран.
И наконец, вариант Ctrl+S и Ctrl+Q: эти нажатия клавиши соответственно приостанавливают и восстанавливают поток символов на терминале. Они используются очень редко, но может так случиться, что вы по ошибке набрали Ctrl+S (ведь S и D находятся слишком близко на клавиатуре ...). Итак, если вы начали набор, но не увидели ни одного символа на Terminal, попробуйте Ctrl+Q сначала и остерегайтесь : все набранные после Ctrl+S символы нежелательны, и по Ctrl+Q будет выведено на экран все сразу.