Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Краткое введение в командную строку

Пред. 

Глава 1. Основные понятия системы UNIX

 След.


Краткое введение в командную строку

Командная строка - это самый прямой способ для отправки команд своей машине. Если вы будете использовать командную строку GNU/Linux, то вы вскоре обнаружите, что она значительно мощнее и обладает более широкими возможностями, чем любой другой интерпретатор команд. Эта мощь доступна благодаря тому, что вы имеете доступ не только ко всем приложениям X, но также и к тысячам утилит в консольном режиме (в противоположность графическому режиму), которые не имеют графических аналогов, с их многочисленными опциями и возможными комбинациями, достичь которых в виде кнопок или меню было бы труднее.

Надо сказать, что для большинства людей для того, чтобы начать действовать, требуется некоторая помощь. Если вы не работаете уже в консольном режиме, а используете графический интерфейс, то первым делом вам надо запустить эмулятор терминала. Зайдите в главное в меню GNOME, KDE или любого другого оконного менеджера, который вы используете, и вы найдете несколько эмуляторов в меню Система+Терминалы. Выберите эмулятор на свой вкус, например Konsole или XTerm. В зависимости от вашего пользовательского интерфейса на панели задач также может появиться значок, четко его определяющий (Рисунок 1.2, «Значок терминала на панели KDE»).

Рисунок 1.2. Значок терминала на панели KDE

Значок терминала на панели KDE

Когда вы запускаете этот эмулятор терминала, на самом деле вы используете shell. Это название программы, с которой вы работаете. Вы обнаружите перед глазами приглашение:

[queen@localhost queen]$

Здесь подразумевается, что ваше имя пользователя - queen, а ваша машина называется localhost (это в случае, если ваша машина не является частью существующей сети). Пространство после приглашения предназначено для ввода ваших команд. Обратите внимание, что когда вы root, знак $ в приглашении меняется на # (это верно только в конфигурации по умолчанию, впоследствии вы можете настроить все эти элементы в GNU/Linux). Для того, чтобы стать root'ом, наберите su после запуска shell.

# Введите пароль root'а; (на экране он не появится)
[queen@localhost queen]$ su
Password:
# exit (или Ctrl+D) вернет вас назад в вашу обычную учетную запись пользователя
[root@localhost queen]# exit
[queen@localhost queen]$

Далее по всему тексту этой книги, приглашение будет символически представлено знаком $, независимо от того, обычный вы пользователь или root. Вам будет сказано, когда для выполнения команды вы должны быть root'ом, поэтому, пожалуйста, запомните команду su.

Когда вы запустите shell в первый раз, вы обычно обнаружите, что находитесь в своем домашнем каталоге home/. Чтобы вывести на экран имя каталога, в котором вы в данный момент находитесь, наберите команду pwd (которая означает вывести рабочий каталог (Print Working Directory)):

$ pwd
/home/queen

Далее мы рассмотрим несколько основных и весьма полезных команд.

cd: Смена каталога

Команда cd такая же, как и в DOS'е, но с дополнительными возможностями. Она выполняет как раз то, что заявлено в ее аббревиатуре - сменяет рабочий каталог. Вы можете использовать . и .., которые означают текущий и родительский каталоги соответственно. Запуск cd без параметров вернет вас назад в ваш домашний каталог. Запуск cd - вернет вас назад в последний посещенный вами каталог. И, наконец, вы можете указать домашний каталог пользователя peter, набрав cd ~peter (~ сама по себе означает ваш собственный каталог home/). Обратите внимание, что как обычный пользователь, вы, как правило, не можете попасть в каталоги home/ других пользователей (если только они не разрешили это, или если это не настройка системы по умолчанию), если вы не 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

Теперь вернемся назад в состояние обычного пользователя, набрав exit (или нажав Ctrl-D).

Некоторые переменные окружения и команда echo

Все процессы имеют свои переменные окружения, а shell позволяет вам увидеть их непосредственно при помощи команды echo. Некоторые интересные переменные:

  1. HOME: эта переменная окружения содержит строку, представляющую ваш домашний каталог.
  2. PATH: содержит список всех каталогов, в которых shell должен будет искать исполняемые файлы, когда вы набираете команду. Обратите внимание, что в отличие от DOS shell по умолчанию не будет искать команды в текущем каталоге!
  3. USERNAME: эта переменная содержит ваше имя логина.
  4. UID: эта переменная содержит ваш ID пользователя.
  5. 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.

[Tip]

Подсказка

Если одна из ваших переменных окружения не существует, вы можете временно их создать, набрав export ИМЯ_ПЕРЕМ_ОКР=значение. После этого вы можете проверить, были ли они созданы:

$ export USERNAME=queen
$ echo $USERNAME queen

cat: Вывод на экран содержимого одного или более файлов

Не стоит много говорить, вот что делает эта команда: она выводит содержимое одного или более файлов на стандартный вывод, обычно на экран:

$ 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

less: Пейджер

Название произошло от игры слов, связанной с первым пейджером из когда-либо использовавшихся в UNIX® с именем more (more - больше; less - меньше). Пейджер (page - страница) - это программа, которая позволяет пользователю просматривать большие файлы по частями страница за страницей (точнее, экран за экраном). Причина, по которой мы рассматриваем less, а не more, заключается в том, что less более интуитивна. Вам следует использовать less для просмотра больших файлов, которые не умещаются на одном экране. Например:

less /etc/termcap

Для перемещения по этому файлу используйте клавиши вверх и вниз. Для выхода нажмите Q. Возможности less значительно шире: нажмите H для вызова справки с различными доступными опциями.

ls: Вывод списка файлов

Команда ls (LiSt) эквивалентна команде dir в DOS, но сделать она может больше, гораздо больше. В действительности деле это связано с тем, что файлы также могут делать гораздо больше. Синтаксис команды ls:

ls [опции] [файл|каталог] [файл|каталог...]

Если в командной строке не указан файл или каталог, ls выведет список файлов в текущем каталоге. Опций довольно много, поэтому мы опишем только некоторые из них:

  • -a: вывод списка всех файлов, включая скрытые файлы. Помните, что в UNIX®, скрытые файлы - это те, чьи имена начинаются с .; опция -A выводит список «почти» всех файлов, т.е. всех файлов, которые были бы показаны опцией -a за исключением «.» и «..»
  • -R: рекурсивный вывод списка, т.е. все файлы и подкаталоги в каталогах, указанных в командной строке.
  • -s: вывод перед каждым файлом его размера в килобайтах.
  • -l: вывод дополнительной информации о файлах: их разрешения, владельцы и группы владельцев, размеры файлов и время последнего доступа.
  • -i: вывод перед каждым файлом номера inode (уникальный номер файла в файловой системе, см. Глава 9, Файловая система Linux).
  • -d: обработка каталогов, указанных в командной строке так, как если бы они были обычными файлами, вместо вывода списка их файлов.

Вот несколько примеров:

  • ls -R: рекурсивно выводит список содержимого текущего каталога.
  • ls -is images/ ..: выводит список с номером inode и размером в килобайтах для каждого из файлов в каталоге images/, а также в родительском каталоге по отношению к текущему.
  • ls -l images/*.png: выводит список всех файлов в каталоге images/, чьи имена заканчиваются на .png, включая файл .png, если такой существует.

Полезные комбинации клавиш

Существует большое количество сокращенных клавиатурных команд, их основное преимущество в том, что они экономят для вас время при наборе на клавиатуре. В этом разделе подразумевается, что вы пользуетесь стандартным shell'ом, по умолчанию поставляемым вместе с Mandrakelinux - 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 на клавиатуре находятся близко друг от друга). Поэтому, если вы попадете в ситуацию, когда вы что-то набираете на клавиатуре, но в Terminal'е никакие символы не появляются, попробуйте нажать Ctrl-Q. Обратите внимание, что все символы, введенные вами между нежелательной комбинацией Ctrl-S и Ctrl-Q будут единовременно выведены на экран.


Пред. 

Уровень выше

 След.

Процессы 

Начало

 Глава 2. Диски и разделы