Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
63
Добавлен:
20.04.2015
Размер:
2 Mб
Скачать

2.2. Изучим команды, сообщающие информацию о программно-аппаратном комплексе компьютера

Это большая группа системных утилит, позволяющих получить самые разнообразные данные о вычислительной установке. Выполним первую из команд

arсh

Так распечатывается тип процессора. Для Intel Pentium 4 будет выдано

i686

Следующая команда – uname. По ней получают более полную информацию о системе (аппаратуре и программном обеспечении), задавая разные параметры. Например, что бы получить тип процессора вводится

uname –m

i686

(что аналогично команде arch). Дату выпуска версии операционной системы получим после ввода команды

uname –v

#1 SMP Mon Sep 15 07:08:05 EDT 2008

а имя компьютера будет выведено после команды

uname –n

localhost.localdomain

В имени две части. Первая имя видимо происходит от английского термина network node hostname, а второе от - domain.

И, наконец, имя редакции операционной системы (номер версии ядра) выводится после такой команды:

uname –r

Оно имеет такое значение, которое уже встречалось в работе 1

2.6.26.3 -29.0.140.asp.i686

Сделаем небольшое отступление о присвоении имен версиям ядра. Для операционных систем Linux существует следующая традиция присваивать номера новым версиям. Первые из них нумеровались двумя числами, разделенными точкой. К примеру, первая работоспособная версия Linux имела номер 0.02, а та, для которой был реализован графический интерфейс, – 1.0. Но с определенного времени был сделан переход на три числа. Разработчик ядра Linux Линус Тордвальдс присваивает номера следующим образом. Если последнее число – нечетное, то версия называется исследовательской (нестабильной). Четные числа означают окончательные версии ядра. Вспомним, что компания Microsoft также выпускает сначала бета-версии своих программных продуктов.

Самую свежую информацию о версиях ядра Linux можно получить в Интернете по адресу http://www.kernel.org. Фирмы, формирующие инсталляторы Linux, могут изменить окончательную версию ядра. Например, версия ASPLinux 14 Live CD построена на базе ядра с номером 2.6.26.3-29.0.140.asp.i686.

Семейство UNIX/Linux имеет развитую помощь. Все параметры любой системной утилиты можно получить, воспользовавшись, например, страницами справочного руководства man. Это делается, например, так

man uname

ВНИМАНИЕ. Для завершения работы со справочной системой man надо нажать клавишу <q>.

Следующая команда (hostname), с которой уже встречались ранее, сообщает имя компьютера, или более точно (в терминах изучаемой операционной системы) имя узла, хоста. Она аналогична команде uname с опцией –n. Такую же информацию можно получить, задав

echo $HOSTNAME

localhost.localdomain

Важной частью аппаратуры компьютера является оперативная память. Такой командой можно узнать ее размер, а так же наличие свободной, разделяемой (shared) памяти и данные о Swap-разделе.

free

1

total

used

free

shared

2

buffers

cached

1

Mem:

506651

50042

6352

2

19888

19552

1

-/+

Buffers/cache:

281964

386568

2

1

Swap:

0

0

0

2

В приведенной распечатке строка с именем Mem содержит общий объем оперативной памяти, а последняя строка фиксирует тот факт, что память типа Swap не используется.

Для операционных систем важнейшим понятием является файловая система. Ядро семейства UNIX/Linux обслуживает много их типов. Информацию об используемых в данный момент файловых системах можно получить следующей командой.

df

1

Файловая система

1K-блоков

Исп

Доступно

Исп%

2

Смонтирована на

1

/dev/mapper/live-rw

4128448

3701040

427408

90

2

/

1

fmpfs

517188

48

517140

1

2

dev/shm

1

gvfs-fuse-daemon

4128448

3701040

427408

90

2

/home/asplinux/.gvfs

Как принято в семействе UNIX/Linux, для каждого устройства, являющегося частью файловой системы, имеется два имени. Первое указывает на имя устройства (в нашем примере оно приведено в левом столбце). А второе определяет точку в иерархической файловой системе, где доступны его данные. Мы видим их в самом правом столбце, названном «смонтирована на». Обратите внимание на то, что файловая система /dev/mapper/live доступна в корневой вершине иерархической файловой системы «/». Она не связана с конкретным внешним устройством.

Интересной особенностью семейства UNIX/Linux является тот факт, что обеспечивается доступ к файлам, подготовленным в разных операционных системах. Узнать все активные в данный момент файловые системы и их типы можно по такой команде:

df -Т

Как говорилось выше, задавая команды, пользователь обращается к программе, называемой «Оболочка». Эта программа имеет много специальных переменных (мы называли их еще переменными окружения). Список и значения таких переменных можно получить так:

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:

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/ /bin:/root/bin

INPUTRC=/etc/inputrc

PWD=/root

LANG=ru_RU.UTF-8

SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass

SHLVL=1

HOME=/root

LOGNAME=root

LESSOPEN=|/usr/bin/lesspipe.sh %s

G_BROKEN_FILENAMES=1

_=/usr/bin/printenv

Без параметров printenv выдает список всех специальных переменных. В приведенном списке обратим внимание на следующие:

SHLVL=1 (или 2)

Фиксирует уровень выполнения системы (runlevel).

HOME=/root

Хранит имя домашнего каталога пользователя.

PWD=/root

Сохраняет имя активной директории. Если сменить директорию на другую, то получает значение еще одна переменная оболочки OLDPWD.

LOGNAME=root

Если на виртуальном терминале зарегистрировать сеанс root, а затем дать команду su asplinux, то эта переменная будет иметь значение asplinux.

USER=root

Если на виртуальном терминале зарегистрировать сеанс root, а затем дать команду su asplinux, то эта переменная будет иметь значение asplinux.

USERNAME=root

Если на виртуальном терминале зарегистрировать сеанс root, а затем дать команду su asplinux, то значение этой переменной останется root.

HISTSIZE=1000

В этой переменной задается максимальное количество строк, в файле истории команд.

Если после названия команды printenv указать имя одной из переменных оболочки, то получим только ее значение.

Сделаем замечание о наборе команд. Для удобства этой операции можно применять клавишу <Tab>. Ее использование поможет в наборе длинных имен. Но из-за большого количества имеющихся в системе утилит использование этой клавиши не всегда эффективно. К примеру, если набрать print и нажать <Tab> два раза (система не может так зафиксировать единственную команду), будет выведено 3 команды (printafm, printenv, printf). И только после ввода printe и последующего однократного <Tab> система сама дополнит ввод до printenv.

Продолжим изучать команды, сообщающие сведения о программно-аппаратном комплексе. Информацию о терминале выдает следующая команда.

tty

Для первого виртуального терминала результат будет таким

/dev/tty1

а для программы Терминал графического режима, как было получено ранее, вывод такой:

/dev/pts/0

Утилита, результаты работы которой показаны далее, сообщает информацию или изменяет режимы такого важного устройства как терминал.

stty

speed 38400 baud; line = 0;

-brkint –imaxbel iutf8

Как видно, выводятся следующие данные: скорость передачи данных на терминал (speed 38400 baud), номер линии (line = 0); прерывание генерирует сигнал interapt (-brkint) и другие. Более подробные сведения об устройстве получим так

stty –a

speed 38400 boud; rows 25; columns 80; line = 0;

intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;

eol2 = <undef>; swtch = <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 iutf8

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+C>, за которой закреплен управляющий сигнал «Прекратить процесс». На экране это представлено так intr=^C. Рассматриваемый сигнал воздействует не на все программы, а на те, про которые говорят, что они выполняются в режиме переднего плана. Далее будет рассказано о процессах, выполняемых, в фоновом режиме. Их прерывание осуществляется по-другому. Следующие три комбинации клавиш применяются к фоновым процессам.

start= ^Q (временная остановка процесса);

stop= ^S (возобновление процесса после временной остановки);

susp= ^Z (остановка процесса).

Из подробного вывода данных о консоли следует также, что имеет место закрепление сочетаний клавиш за такими управляющими сигналами:

eof= ^D (конец файла);

eol= <undef> (конец линии или строки, НЕ ОПРЕДЕЛЕН).

В UNIX существует несколько способов взаимодействия между процессами. Сигналы являются одним из них. Когда процессу посылается сигнал, он останавливает свою работу и выполняет определенное действие. Заметим, что полный перечень сигналов можно найти в справочном руководстве или в файле с именем signal.h.

Соседние файлы в папке Операционные системы