
- •Лабораторная работа 2 Основы использования командной строки
- •2.1. Выполним первые действия в командном режиме
- •2.2. Изучим команды, сообщающие информацию о программно-аппаратном комплексе компьютера
- •2.3. Познакомимся с командой echo, переменными оболочки и параметрами запуска программ
- •2.4. Изучим систему помощи в командном режиме семейства unix/Linux
- •2.5. Изучим, что такое команда
- •2.5.1. Рассмотрим типы и количество команд
- •2.5.2. Рассмотрим параметры командной строки
- •2.5.3. Рассмотрим использование нескольких опций одной команды
- •2.6. Рассмотрим использование специальных символов оболочки
- •2.7. Изучим историю набранных команд и средства редактирования командной строки
- •2.8. Рассмотрим простейшее использование текстового редактора VI
- •2.9. Ознакомимся с основами работы с программой Midnight Commander
2.2. Изучим команды, сообщающие информацию о программно-аппаратном комплексе компьютера
Это большая группа системных утилит, позволяющих получить самые разнообразные данные о вычислительной установке. Выполните первую из команд
aгсh
Так распечатывается тип процессора. Для Intel Pentium 4 будет выдано
i686
Следующая команда – uname. По ней Вы получите более полную информацию о системе (аппаратуре и программном обеспечении), задавая разные параметры. Например, что бы получить тип процессора вводиться
uname –m
i686
(что аналогично команде arch). Дату выпуска версии операционной системы Вы получите после
uname –v
#1 Fri Nov 12 22:29:40 EET 2004
а имя ее редакции (номер версии ядра) так:
uname –r
2.6.9-1.667aspLinux
И наконец, имя компьютера будет выведено после команды
uname –n
asplinuxlive
Сделаем небольшое отступление о присвоении имен версиям ядра. Для операционных систем Linux существует следующая традиция присваивать номера новым версиям. Первые из них нумеровались двумя числами, разделенными точкой. К примеру, первая работоспособная версия Linux имела номер 0.02, а та, для которой был реализован графический интерфейс, – 1.0. Но с определенного времени был сделан переход на три числа. Разработчик ядра Linux Линус Тордвальдс присваивает номера следующим образом. Если последнее число – нечетное, то версия называется исследовательской (нестабильной). Четные числа означают окончательные версии ядра. Вспомним, что компания Microsoft также выпускает сначала бета-версии своих программных продуктов.
Самую свежую информацию о версиях ядра Linux можно получить в Интернете по адресу http://www.kernel.org. Фирмы, формирующие инсталляторы Linux, могут изменить окончательную версию ядра. Например, версия ASPLinux 10 Live CD построена на базе ядра с номером 2.6.9-1.667asp.
Все параметры любой системной утилиты Вы можете получить, воспользовавшись системой помощи man. Это делается, например, так
man uname
ВНИМАНИЕ. Для завершения работы со справочной системой man надо нажать клавишу <q>.
Следующая команда сообщает имя компьютера, или более точно (в терминах изучаемой операционной системы) имя узла, хоста. Ее имя hostname и она аналогична команде uname с опцией –n. Такую же информацию можно получить, задав
echo $HOSTNAME
asplinuxlive
Важной частью аппаратуры компьютера является оперативная память. Такой командой Вы узнаете ее размер, а так же наличие свободной, разделяемой (shared) памяти и данные о Swap-разделе.
frее
total |
Used |
Free |
Shared |
buffers |
cached |
|
Mem: |
515772 |
504776 |
10996 |
0 |
79764 |
295808 |
-/+ |
Buffers/cache: |
129204 |
386568 |
|
|
|
Swap: |
0 |
0 |
0 |
|
|
|
В приведенной распечатке строка с именем Mem содержит общий объем оперативной памяти (512 Мб), большая часть которой свободна. Последняя строка фиксирует тот факт, что память типа Swap не используется.
Для операционных систем важнейшим понятием является файловая система. Ядро семейства UNIX/Linux обслуживает много их типов. Информацию об используемых в данный момент файловых системах можно получить следующей командой.
df
Файловая система |
1K-блоков |
Исп |
Доступно |
Исп% |
Смонтирована на |
/dev/ram1 |
304380 |
3 |
300 |
2% |
/ |
/dev/hda1 |
2096160 |
1 |
878208 |
59% |
/media/idedisk1 |
/dev/hda5 |
77931280 |
1 |
6 |
16% |
/media/idedisk |
Как принято, для каждого устройства, являющегося частью файловой системы, имеется два имени. Первое указывает на имя устройства (в нашем примере оно приведено в левом столбце). А второе определяет точку в иерархической файловой системе, где доступны его данные. Мы видим их в самом правом столбце, названном «смонтирована на». Обратите внимание на то, что файловая система /dev/ram1 доступна в корневой вершине иерархической файловой системы «/». Она не связана с конкретным внешним устройством.
Вторая и третья строки указывают сведения о дисковых файловых системах. В описанном примере приводятся данные о двух дисковых разделах. Первый из них смонтирован по адресу /media/idedisk1 в дереве файловой системы. Его имя (/dev/hda1) указывает на то, что он является первичным дисковым разделом. Второй дисковый раздел с именем /dev/hda5 является логическим.
Интересной особенностью управления файлами в семействе UNIX/Linux является тот факт, что обеспечивается доступ к файлам, подготовленным в разных операционных системах. Узнать все активные файловые системы и их типы можно по такой команде:
df -Т
Ф.система |
Тип |
1K-блоков |
Исп |
Доступно |
Исп% |
Смонтирована на |
/dev/ram1 |
tmpfs |
304380 |
3 |
300 |
2% |
/ |
/dev/hda1 |
vfat |
2096160 |
1 |
878208 |
59% |
/media/idedisk1 |
/dev/hda5 |
ntfs |
77931280 |
1 |
6 |
16% |
/media/idedisk |
Из такого вывода видно, что первый из двух дисковых разделов (/dev/hda1) относится к типу vfat, а второй – ntfs.
До того как описывать дальнейшие действия, приведем следующую информацию. Выше отмечалось, что по умолчанию система загружает сеанс пользователя asplinux. Следующие действия надо исполнять в режиме пользователя root, именно его сеанс мы просили Вас зарегистрировать выше. Приведем три способа смены сеанса пользователя asplinux (загружаемого по умолчанию) на root.
1. Перейти на любой из шести свободных виртуальных терминалов и в ответ на приглашение login набрать
root.
2. После запуска программы Терминал, дать команду
su root
После чего вернуться в загружаемый по умолчанию сеанс пользователя asplinux надо командой
exit
3. На верхней панели последовательно выбрать Команды – Завершить сеанс. Далее ввести имя пользователя root. Тогда в графическом режиме, а значит и при запуске программы Терминал, будут обеспечены права пользователя root.
Продолжим рассмотрение команд, сообщающих информацию о системе. Но предварительно сделаем небольшое отступление. Если Вы дадите команду монтирования гибкого диска, отформатированного для работы с операционными системами Microsoft,
mount -t msdos /dev/fd0 /mnt/floppy
то получите доступ к флоппи диску. Без такого действия он будет не «виден». Сейчас не будем подробно останавливаться на всех деталях монтирования файловых систем, скажем только, что вершины /dev/fd0 и /mnt/floppy должны существовать на диске, до того как дается эта команда. После опции -t указывается тип файловой системы. Для дискеты, отформатированной в Windows, можно задать msdos или vfat. В первом случае «длинные» имена файлов (более 8 символов) будут урезаны, а во втором – нет.
Вернемся к команде df. После монтирования дискеты будет выдаваться информация уже о четырех файловых системах.
df-T
Ф.система |
Тип |
1K-блоков |
Исп |
Доступно |
Исп% |
Смонтирована на |
/dev/ram1 |
tmpfs |
304380 |
3996 |
300424 |
2% |
/ |
/dev/hda1 |
vfat |
2096160 |
1 |
878208 |
59% |
/media/idedisk1 |
/dev/hda5 |
ntfs |
77931280 |
1 |
6 |
16% |
/media/idedisk |
/dev/fd0 |
ms dos |
1424 |
1299 |
125 |
92% |
/media/floppy |
Размонтируем гибкий диск командой
umount /dev/fd0
floppy disk is free, remove it
umount: /dev/fd0: umount
umount: /dev/fd0: umount
Теперь такой диск вновь недоступен.
Как говорилось выше, задавая команды, пользователь обращается к программе, называемой «Оболочка». Эта программа имеет много специальных переменных (мы называли их еще переменными окружения). Список и значения таких переменных можно получить так:
printenv
HOSTNAME=asplinuxlive
TERM=linux
SHELL=/bin/bash
HISTSIZE=1000
USER=root
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41: mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
KDEDIR=/usr
USERNAME=root
MC_TMPDIR=/tmp/mc-root
MAIL=/var/spool/mail/root
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
INPUTRC=/etc/inputrc
PWD=/root
LANG=ru_RU.UTF-8
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
HISTCONTROL=ignorespace
SHLVL=3
HOME=/root
MC_SID=3392
BASH_ENV=/root/.bashrc
LOGNAME=root
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/usr/bin/printenv
Без параметров printenv выдает список всех специальных переменных. В приведенном списке обратим внимание на следующие:
SHLVL=3 (или 2) |
Фиксирует уровень выполнения системы. Для командного режима многих пользователей он должен быть 2 или 3. |
HOME=/root |
Хранит имя домашнего каталога пользователя. |
PWD=/root |
Сохраняет имя активной директории. Если сменить директорию на другую, то выводится еще одна переменная оболочки OLDPWD.
|
BASH_ENV=/root/.bashrc |
Указывается имя скрипта, связанного со сценарием, запускаемом при вызове оболочки. |
LOGNAME=root |
Если на виртуальном терминале зарегистрировать сеанс root, а затем дать команду su asplinux, то эта переменная будет иметь значение asplinux. |
USER=root |
Если на виртуальном терминале зарегистрировать сеанс root, а затем дать команду su asplinux, то эта переменная будет иметь значение asplinux. |
USERNAME=root |
Если на виртуальном терминале зарегистрировать сеанс root, а затем дать команду su asplinux, то эта переменная будет иметь значение root. |
HISTSIZE=1000 |
В этой переменной задается максимальное количество строк, в файле истории команд. |
Если после названия команды printenv указать имя одной из них, то получим только ее значение.
Сделаем замечание о наборе команд. Для удобства этой операции можно применять клавишу <Tab>. Ее использование поможет в наборе длинных имен. Но учитывая большое количество имеющихся в системе утилит использование клавиши не всегда эффективно. К примеру, если набрать print и нажать <Tab> два раза (система не может так зафиксировать единственную команду), будет выведено 8 команд. И только после ввода printe и последующего однократного <Tab> система сама дополнит ввод до printenv.
Продолжим изучать команды, сообщающие сведения о программно-аппаратном комплексе. Информацию о терминале выдает следующая команда.
tty
Для первого виртуального терминала результат будет таким
/dev/tty1
а для программы Терминал графического режима, как было получено ранее:
/dev/pts/0
Утилита, результаты работы которой показаны далее, сообщает информацию или изменяет режимы такого важного устройства как терминал.
stty
speed 38400 baud; line = 0;
-brkint –imaxbel
tostop
Как видно, выводятся следующие данные: скорость передачи данных на терминал (speed 38400 baud), номер линии (line = 0); прерывание генерирует сигнал interapt (-brkint) и другие. Более подробные данные об устройстве получим так
stty –a
speedbaud; rows 25; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase tostop -echoprt
echoctl echoke
Как видим, выдаются еще и данные о количестве символов на экране дисплея, закреплении комбинаций клавиш за стандартными управляющими сигналами, а также значение многочисленных параметров работы.
Прежде всего, отметим комбинацию клавиш <Ctrl+с>, за которой закреплен управляющий сигнал «Прекратить процесс». На экране это представлено так intr=^C. Далее будет рассказано о процессах, выполняемых, в фоновом режиме. Их прерывание осуществляется по-другому. Рассматриваемый сигнал воздействует на программы другого типа. Про них говорят, что они выполняются в режиме переднего плана.
Из подробного вывода данных о консоли следует, что также имеет место закрепление сочетаний клавиш за такими управляющими сигналами:
eof= ^D (конец файла)
eol= <undef> (конец линии или строки, НЕ ОПРЕДЕЛЕН)
Эти три комбинации клавиш применяются к фоновым процессам.
start= ^Q (временная остановка процесса)
stop= ^S (возобновление процесса после временной остановки)
susp= ^Z (остановка процесса)