- •Оглавление
- •Введение
- •Лабораторная работа 1 Операционная система Linux в графическом режиме
- •1.1. Изучим элементы рабочего стола gnome
- •1.2. Познакомимся с авторами интегрированной среды gnome и других программ
- •1.3. Создадим панель и изучим порядок изменения ее свойств
- •1.4. Освоим порядок изменения свойств программы Наутилус
- •1.5. Изучим управление свойствами окна в графической среде gnome
- •1.6. Сохраним в виде графического файла содержимое экрана
- •1.7. Освоим программу создания архивов в графическом режиме
- •1.8. Используем простой текстовый редактор для подготовки командного файла – сценария
- •1.9. Изучим действия, позволяющие ассоциировать документ с приложением
- •Лабораторная работа 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
- •VI file_one
- •2.9. Ознакомимся с основами работы с программой Midnight Commander
- •Лабораторная работа 3 файловая система
- •3.1. Изучим иерархическую файловую систему
- •3.2. Рассмотрим права доступа к файлам
- •3.3. Рассмотрим типы файлов
- •3.4. Рассмотрим примеры файлов разного типа
- •3.5. Рассмотрим команды работы с каталогами
- •3.5.1. Научимся создавать каталоги
- •VI script3
- •VI script4
- •3.5.2. Научимся удалять каталоги
- •3.5.3. Научимся копировать и перемещать файлы и каталоги
- •3.5.4. Изучим возможность выполнять разные операции над каталогами с разными правами доступа
- •3.6. Рассмотрим использование ссылочных файлов
- •3.7. Изучим понятие таблицы иноде (inode)
- •3.8. Расширим понимание и умение использовать команды less и more
- •3.9. Рассмотрим сортировку содержимого файлов
- •3.10. Познакомимся с командой grep
- •3.11. Познакомимся с командой diff
- •3.12. Познакомимся с командой find
- •1) Find / -name echo
- •4.1. Рассмотрим классификацию процессов Linux
- •4.2. Изучим команды получения информации о загруженности системы и активных пользователях
- •VI working
- •4.3. Познакомимся с командами top и ps
- •Vim topfile
- •4.4. Рассмотрим работу в фоновом режиме
- •4.5. Рассмотрим управление приоритетами процессов
- •4.6. Изучим простые возможности обмена информацией между пользователями
- •4.7. Рассмотрим средства управление ресурсами пользователя
- •Лабораторная работа 5 Сценарии в операционной системе Linux
- •If условие
- •If условие
- •If условие
- •Библиографический список
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.