Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_ОСС_Методичка___.docx
Скачиваний:
38
Добавлен:
19.05.2015
Размер:
13.86 Mб
Скачать

Как отключать

После того как вы разобрались, что в вашей системе запускается и для чего, и выявили ненужные для себя процессы, их следует отключить — простое закрытие процесса в менеджере задач приведёт лишь к временной его дезактивации — при следующем старте ОС он снова окажется в памяти. Да и не очень это корректно — убивать процесс прямо в памяти. Например, после принудительного закрытия ctfmon.exeраскладка вWordне будет переключаться вплоть до перезагрузки ПК, несмотря на запущенныйPunto.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Определение процесса, потока.

2.Назвать системные и пользовательские процессы.

3. Информационные структуры процессов

4. Что такое службы и частью какого процесса они являются

5. Где службы можно посмотреть в системе

6. На основании материала лекций покажите, как работать со службами, взаимозависимость служб.

7. Перечислить системные и пользовательские процессы, количество потоков в них, описать их назначение. Для этого воспользоваться Интернетом или из раздела «Процессы в Windows»

Практическая работа №6 Работа с текстовыми файлами

Цель: научиться создавать, корректировать, просматривать текстовые файлы в UNIX и осуществлять в них поиск

  1. Проделайте задания ч. 1

  2. Напишите свою пр. работу по образу ч. 1, используя методические указания (по всем сценариям), используя свои названия файлов, каталогов и т. п. . Можно использовать раздел : ПРИМЕРНЫЕ СЦЕНАРИИ

  3. Выполните задания для самоподготовки

  4. Напишите отчет по проделанной работе

Часть1

1. Зайдите в режим терминала.

2. Просмотрите имя текущего каталога: pwd

3. Просмотрите содержимое текущего каталога: ls

4. С помощью текстового редактора nanoсоздайте новый текстовый файл.

5. Введите текст о студентах своей группы:

Группа СП-

ДАННЫЕ О СТУДЕНТАХ:

N ФИО Год рождения Login

1. Иванов В 1990 w063333

2.

3.

4.

5.

6. Просмотрите содержимое текущего каталога: ls и содержимое файла: cat table_1

8. Вызовите файл в режим корректировки: nanotable_1

9. Используя команды корректировки добавьте месяц рождения для каждого студента:

i – вкл режим вставки, х – удаляет текущий символ, например:

1. Иванов В 01.1990 w063333

10. Сохраните изменения с новым именем

12. Просмотрите содержимое текущего каталога: ls и содержимое файлов: table_1 и table_2.

13. Самостоятельно добавьте еще одну строку данных в файл table_2 с сохранением изменений.

14. Просмотрите все файлы текущего каталога, начинающиеся на букву t: ls t*

15. Просмотрите содержимое файла table_2.

16. Просмотрите содержимое первых четырех строк файла table_2: head -4 table_2

17. Просмотрите содержимое последних двух строк файла table_2: tail -2 table_2

18. Выведите из файла table_2 строки с 1990 годом рождения: grep 1990 table_2

19. Самостоятельно выведите из файла table_2 все строки, в которых встречается число 8.

20. Выведите из файла table_2 строки, содержащие цифры : grep [0-9] table_2

21. Просмотрите фамилии и их логины из файла table_2: awk '{print $2$5}' table2

22. Просмотрите количество строк, слов, символов, байт в файле table_2

одновременно : wc table_2

раздельно: wc -l table_2 [кол-во строк]

wc -w table_2 [кол-во слов]

wc -m table_2 [кол-во символов]

wc -с table_2 [кол-во байт]

23. Соедините вывод двух файлов table_1 и table_2 командой join: join table_1 table_2

24. Используя команды echo и tr выполните преобразование текстовой строки:

echo “a test” | tr t p

echo “a test” | tr aest 1234

echo “a test” | tr -d t

echo “a test” | tr '[:lower:]' '[:upper:]'

25. Самостоятельно преобразуйте вывод текстовой строки: “Октябрь” на “Декабрь”, используя оптимальный режим.

26. Вывод строки с текущей датой:

27. Присвоить переменной d значение команды: d=`date`

28. Вывести значение переменной в команде echo: echo “Сегодня” $d

МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО КОМАНДАМ:

cat, cd, cp, cut, echo, find, grep, head, ln, ls, mkdir, mv, paste, pwd, sort, tail, tar, touch, uniq, wc

Сценарий: Знакомство с каталогами UNIX

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

Начальные условия: Командная строка после входа в систему.

Получить имя текущего каталога с помощью команды pwd:

[user@localhost ~]$ pwd

/home/user/

Перейти в корневой каталог с помощью команды cd /:

[user@localhost ~]$ cd /

[user@localhost /]$ pwd

/

Отметить, как изменилась строка приглашения.

Посмотреть содержимое корневого каталога с помощью команды ls:

[user@localhost /]$ ls

bin dev home lib mnt proc sbin sys usr

boot etc image media opt root srv tmp var

Сравнить с использованием «расширенного» вывода команды ls -F:

[user@localhost /]$ ls -F

bin/ dev/ home/ lib/ mnt/ proc/ sbin/ sys/ usr/

boot/ etc/ image/ media/ opt/ root/ srv/ tmp/ var/

Каталоги отмечаются синим цветом и знаком «/» после имени.

Посмотреть содержимое домашнего каталога с помощью команды ls ~:

[user@localhost /]$ ls ~

Documents tmp

Домашний каталог содержит набор стандартных каталогов.

Вернуться в домашний каталог с помощью cd без параметров:

[user@localhost /]$ cd

[user@localhost ~]$

Создать каталог test с помощью команды mkdir test:

[user@localhost ~]$ mkdir test

Посмотреть обновлённое содержимое домашнего каталога ls:

[user@localhost ~]$ ls

Documents test tmp

Создать подкаталог subtest в каталоге test командой mkdir test/subtest:

[user@localhost ~]$ mkdir test/subtest

Посмотреть содержимое домашнего каталога и его подкаталогов с помощью ключа рекурсивного просмотра -R в команде ls -R:

[user@localhost ~]$ ls -R

.:

Documents test tmp

./Documents:

./test:

subtest

./test/subtest:

./tmp:

Сценарий: Изучение типов файлов в UNIX

В этом сценарии рассматриваются типы файлов в UNIX: простые файлы, каталоги, ссылки. Изучаются команды создания и копирования файлов. Показывается разница между жесткими и символическими ссылками, между копированием и переносом файла.

Начальные условия: Командная строка. Каталог test после предыдущего сценария.

Cоздать пустой файл с помощью команды touch first.txt:

[user@localhost test]$ touch first.txt

[user@localhost test]$ ls

first.txt subtest

Добавить строку текста в конец файла с помощью команды echo "Hello, world" >> first.txt и перенаправления вывода:

[user@localhost test]$ echo "Hello, world" >> first.txt

Посмотреть содержимое файла с помощью команды cat first.txt:

[user@localhost test]$ cat first.txt

Hello, world

[user@localhost test]$

Посмотреть расширенную информацию о каталоге, используя ключ -l команды ls. ls -l test:

[user@localhost test]$ ls -l

total 4

-rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt

drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest

Добавить псевдоним командной оболочки, чтобы сократить размер команды, с помощью команды alias ls='ls -F -l':

[user@localhost test]$ alias ls='ls -F -l'

[user@localhost test]$ ls test

total 4

-rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt

drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest

Посмотреть глубже на каталог test, используя ключи -a и -i. ls -a -i

[user@localhost test]$ ls -a -i

total 4

1014 drwxr-xr-x 3 user user 100 Feb 14 20:07 ./

941 drwx------ 8 user user 340 Feb 14 19:28 ../

1081 -rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt

1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/

Первый столбец — номера индексных узлов файловой системы. Третий столбец — число жёстких ссылок файла.

Скопировать файл с помощью команды cp first.txt copy1.txt:

[user@localhost test]$ cp first.txt copy1.txt

[user@localhost test]$ ls -a -i

total 8

1014 drwxr-xr-x 3 user user 120 Feb 14 20:33 ./

941 drwx------ 8 user user 340 Feb 14 19:28 ../

1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt

1081 -rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt

1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/

Новый файл имеет свой собственный индексный узел.

Переименовать файл с помощью команды mv first.txt orig.txt. mv first.txt orig.txt:

[user@localhost test]$ mv first.txt orig.txt

[user@localhost test]$ ls -a -i

total 8

1014 drwxr-xr-x 3 user user 120 Feb 14 20:37 ./

941 drwx------ 8 user user 340 Feb 14 19:28 ../

1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt

1081 -rw-r--r-- 1 user user 13 Feb 14 20:12 orig.txt

1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/

Отметим, что изменилось только имя файла, все остальные атрибуты остались прежними.

Создать жёсткую ссылку командой ln orig.txt copy2.txt:

[user@localhost test]$ ln orig.txt copy2.txt

[user@localhost test]$ ls -a -i

total 12

1014 drwxr-xr-x 3 user user 140 Feb 14 20:41 ./

941 drwx------ 8 user user 340 Feb 14 19:28 ../

1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt

1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 copy2.txt

1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 orig.txt

1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/

Добавилась ещё одна ссылка на тот же файл, число ссылок увеличилось на 1.

Создать символическую ссылку командой ln -s orig.txt orig.lnk:

[user@localhost test]$ ln -s orig.txt orig.lnk

[user@localhost test]$ ls -a -i

total 12

1014 drwxr-xr-x 3 user user 160 Feb 14 20:45 ./

941 drwx------ 8 user user 340 Feb 14 19:28 ../

1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt

1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 copy2.txt

1083 lrwxrwxrwx 1 user user 8 Feb 14 20:45 orig.lnk -> orig.txt

1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 orig.txt

1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/

Новый файл имеет новый индексный узел и размер, равный имени файла orig.txt.

Сравним содержимое файлов при обращении к ним по имени:

[user@localhost test]$ cat orig.txt

Hello, world.

[user@localhost test]$ cat copy2.txt

Hello, world.

[user@localhost test]$ cat orig.lnk

Hello, world.

К одним и тем же данным можно обратиться через жесткую или символическую ссылку.

Сценарий: Поиск системных журналов

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

Начальные условия: Командная строка, каталог test после прошлого сценария.

Вывести список всех файлов и каталогов в текущей директории, включая содержимое подкаталогов с помощью команды find:

[user@localhost test]$ find

.

./orig.lnk

./copy2.txt

./orig.txt

./copy1.txt

./subtest

Найти все файлы и дериктории в текущем каталоге и ее подкаталогах, которые начиняются на «o» с помощью команды find -name "o*":

[user@localhost test]$ find -name "o*"

./orig.lnk

./orig.txt

Найти все файлы и каталоги в каталоге /etc и его подкаталогах, которые начиняются на «o» с помощью команды find /etc -name "o*":

[user@localhost test]$ find /etc -name "o*"

find: /etc/tcb: Permission denied

find: /etc/default: Permission denied

find: /etc/buildreqs: Permission denied

...

Список найденных файлов может быть слишком большим и для его просмотра можно воспользоваться «прокруткой» терминала с помощью клавиш Shift-PgUp и Shift-PgDn.

Вы увидели множество сообщений об ошибках доступа («Permission denied»), которые можно подавить с помощью перенаправления ошибок следующим образом: find /etc -name "o*" 2>/dev/null

[user@localhost test]$ find /etc -name "o*" 2>/dev/null

/etc/modprobe.d/options

/etc/modutils.d/oss

/etc/net/ifaces/default/fw/options

/etc/net/ifaces/default/options

...

/etc/pam.d/other

/etc/rc.d/init.d/outformat

Найти все каталоги в /etc, которые начинаются на «o» с помощью команды find /etc -name "o*" -a -type d 2>/dev/null:

[user@localhost test]$ find /etc -name "o*" -a -type d 2>/dev/null

/etc/net/options.d

/etc/openssh

/etc/openssl

/etc/opt

Найти все обычные файлы в каталоге /var и его подкаталогах, заканчивающиеся на «log»:

[user@localhost test]$ find /var -name "*log" -a -type f 2>/dev/null

/var/log/Xorg.0.log

/var/log/faillog

/var/log/lastlog

Создать каталог logs с помощью команды mkdir logs:

[user@localhost test]$ mkdir logs

Скопировать найденные файлы в локальный каталог с помощью параметра -exec команды find. Для этого выполнить: find /var -name "*log" -a -type f -exec cp {} test/logs/ 2>/dev/null:

[user@localhost test]$ find /var -name "*log" -a -type f -exec cp {} test/logs/ 2>/dev/null

[user@localhost test]$ ls test/logs

итого 789

-rw-r----- 1 user users 601033 Окт 16 18:37 emerge.log

-rw-r--r-- 1 user users 292292 Окт 16 18:37 lastlog

-rw-r--r-- 1 user users 37383 Окт 16 18:37 Xorg.0.log

Были скопированы все файлы, права на чтение которых у нас есть.

Сценарий: Архивирование и деархивирование файлов и каталогов

В этом сценарии изучается команда архивирования файлов и каталогов. Командная строка, каталог test после прошлого сценария.

Начальные условия:

Перейти в домашний каталог с помощью команды cd:

[user@localhost test]$ cd

[user@localhost ~]$

Создать архив с именем test.tar.gz с применением сжатия, содержащий каталог test с помощью команды tar -czf test.tar.gz test:

[user@localhost ~]$ tar -czf test.tar.gz test

[user@localhost ~]$ ls

drwxr-xr-x 4 user users 208 Окт 16 18:36 test/

-rw-r--r-- 1 user users 79173 Окт 16 18:49 test.tar.gz

Создать новый каталог для содержимого архива командой mkdir test2:

user@desktop ~ $ mkdir test2

Перейти в новый каталог с помощью команды cd test2:

user@desktop ~ $ cd test2

Развернуть содержимое архива в текущий каталог с помощью команды tar -xzf ../test.tar.gz:

user@desktop test2 $ tar -xzf ../test.tar.gz

Убедиться, что содержимое распакованного архива совпадает с оригинальныйм каталогом. Ввести команду ls -l -F:

user@desktop test2 $ ls -l -F

итого 0

drwxr-xr-x 4 user users 208 Окт 16 18:36 test/

user@desktop test2 $ ls -l -F test

итого 12

-rw-r--r-- 1 user users 13 Окт 15 20:54 copy1.txt

-rw-r--r-- 2 user users 13 Окт 15 20:48 copy2.txt

drwxr-xr-x 2 user users 136 Окт 16 18:37 logs/

lrwxrwxrwx 1 user users 8 Окт 16 18:54 orig.lnk -> orig.txt

-rw-r--r-- 2 user users 13 Окт 15 20:48 orig.txt

drwxr-xr-x 2 user users 48 Окт 13 21:33 subtest/

Сценарий: Cоздание новых текстовых файлов

В этом сценарии изучаются команды для создания и модифицирования текстовых файлов. Командная строка.

Начальные условия:

Ввести команду echo "One line":

user@desktop test $ echo "One line"

One line

Данная команда принимает строку в виде аргумента и выводит её на стандартный вывод.

Ввести ту же команду, но перенаправить вывод в файл second.txt с помощью «>». Ввести команду echo "One line" > second.txt:

user@desktop test $ echo "One line" > second.txt

Добавить в конец файла second.txt строку «A line» с помощью другого перенаправления echo "A line" >> second.txt:

user@desktop test $ echo "A line" >> second.txt

Вывести содержимое файла с помощью команды cat second.txt:

user@desktop test $ cat second.txt

One line

A line

С помощью команды cat можно создавать многострочные файлы —, если переопределить вывод программы в файл и вводить текст до нажатия Ctrl-D (конец ввода). Ввести команду cat >multiline.txt и набрать текст

user@desktop test $ cat >multiline.txt

Simple text:

blah-blah-blah

1 2 3 4 5 6 7 8 9 0

bye!

(Ctrl+D)

user@desktop test $

Убедиться, что содержимое файла совпадает с введённым текстом, включая все переводы строки. Для этого ввести команду cat multiline.txt

user@desktop test $ cat multiline.txt

Simple text:

blah-blah-blah

1 2 3 4 5 6 7 8 9 0

bye!

Основным назначением команды cat является объединение файлов, имена которых передаются как аргументы командной строки. Объединить файлы с помощью команды cat orig.txt second.txt multiline.txt > big.txt:

user@desktop test $ cat orig.txt second.txt multiline.txt > big.txt

Убедиться, что новый файл содержит строки из перечисленных файлов с помощью команды cat big.txt:

user@desktop test $ cat big.txt

Hello, world

One line

A line

Simple text:

blah-blah-blah

1 2 3 4 5 6 7 8 9 0

bye!

Сценарий: Разрезание и склеивание файлов

В данном сценарии изучается, как выделять информацию, разбитую на части с помощью специального символа-разделителя (например, прообела или символа :), из файлов и создавать новые структурированные файлы.

Начальные условия: Командная строка.

Посмотреть содержимое файла /etc/passwd, в котором содержится информация о пользователях системы, с помощью команды cat /etc/passwd:

user@desktop test $ cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/bin/false

daemon:x:2:2:daemon:/sbin:/bin/false

adm:x:3:4:adm:/var/adm:/bin/false

lp:x:4:7:lp:/var/spool/lpd:/bin/false

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

...

Каждая строка хранит запись об отдельном пользователе. Запись состоит из полей, разделённых символом «:».

Выделить первый столбец в каждой записи, установив разделитель в «:», с потощью команды cat /etc/passwd | cut -f1 -d::

user@desktop test $ cat /etc/passwd | cut -f1 -d:

root

bin

daemon

adm

lp

sync

shutdown

...

Отсортировать список пользователей по алфавиту с помощью команды cat /etc/passwd | cut -f1 -d: | sort:

user@desktop test $ cat /etc/passwd | cut -f1 -d: | sort

adm

alias

apache

at

bin

cron

cyrus

...

Выделить седьмой столбец в каждой записи, соответствующий командной оболочке пользователя, с помощью команды cat /etc/passwd | cut -f7 -d:

user@desktop test $ cat /etc/passwd | cut -f7 -d:

/bin/bash

/bin/false

/bin/false

/bin/false

/bin/false

/bin/sync

...

Список содержит много повторяющихся строк.

Удалить повторяющиеся строки командой cat /etc/passwd | cut -f7 -d: | uniq:

user@desktop test $ cat /etc/passwd | cut -f7 -d: | uniq

/bin/bash

/bin/false

/bin/sync

/sbin/shutdown

/sbin/halt

/bin/false

...

Некоторые повторяющиеся строки остались, так как сравниваются только последовательные строки.

Добиться полной уникальности, предварительно отсортировав строки с помощью команды sort. Ввести команду cat /etc/passwd | cut -f7 -d: | sort | uniq:

user@desktop test $ cat /etc/passwd | cut -f7 -d: | sort | uniq

/bin/bash

/bin/false

/bin/sync

/dev/null

/sbin/halt

/sbin/shutdown

Выделить первый и седьмой столбец файла /etc/passwd в отдельные файлы. Для этого ввести команды cat /etc/passwd | cut -f1 -d: > users и cat /etc/passwd | cut -f7 -d: > shells:

user@desktop test $ cat /etc/passwd | cut -f1 -d: > users

user@desktop test $ cat /etc/passwd | cut -f7 -d: > shells

Объединить результаты с помощью команды paste users shells:

user@desktop test $ paste users shells

root /bin/bash

bin /bin/false

daemon /bin/false

adm /bin/false

lp /bin/false

sync /bin/sync

...

Сценарий: Быстрый анализ текстов

В данном сценарии изучаются команды, которые позволяют провести первичный анализ файла: с чего он начинается, как заканчивается и каков его размер.

Начальные условия: Командная строка.

Получить число строк в файле /etc/passwd с помощью команды wc -l /etc/passwd :

user@desktop test $ wc -l /etc/passwd

44 /etc/passwd

Или другим способом: посчитав число слов в созданном ранее файле users с помощью команды cat users | wc -w:

user@desktop test $ cat users | wc -w

44

Посмотеть первые несколько строк длинного файла с помощью команды head logs/Xorg.0.log:

user@desktop test $ head logs/Xorg.0.log

X Window System Version 6.8.2

Release Date: 9 February 2005

X Protocol Version 11, Revision 0, Release 6.8.2

Build Operating System: Linux 2.6.13-gentoo i686 [ELF]

Current Operating System: Linux thinkpad 2.6.13-gentoo #1 Wed Sep 7 01:03:14 MSD 2005 i686

Build Date: 08 October 2005

Before reporting problems, check http://wiki.X.Org

to make sure that you have the latest version.

Module Loader present

Аналогично, посмотеть последние несколько строк с помощью команды tail logs/Xorg.0.log:

user@desktop test $ tail logs/Xorg.0.log

(II) RADEON(0): [RESUME] Attempting to re-init Radeon hardware.

(II) RADEON(0): [agp] Mode 0x1f000201 [AGP 0x8086/0x3340; Card 0x1002/0x4c66]

(II) Mouse1: ps2EnableDataReporting: succeeded

SetClientVersion: 0 8

SetGrabKeysState - disabled

SetGrabKeysState - enabled

(II) 3rd Button detected: disabling emulate3Button

SetClientVersion: 0 8

SetGrabKeysState - disabled

SetGrabKeysState - enabled

Это бывает полезно при просмотре системных журналов — в них самые последние события содержатся в конце файлов.

Сценарий: Поиск строк по регулярным выражениям

В данном сценарии рассматривается практическое использование регулярных выражений для поиска по текстовым файлам.

Начальные условия: Командная строка. Каталог test/log с найденными системными журналами.

Среди найденных системных журналов посмотреть файл журнала загрузки графичской системы XFree86.0.log с помощью команды less test/log/XFree86.0.log:

user@desktop ~ $ less test/log/XFree86.0.log

Выйти из просмоторщика можно нажатием клавиши q.

Найти все предупреждения в журнале: строка, начинающаяся с «(WW)». Для этого ввести команду grep "^(WW)" test/log/XFree86.0.log:

user@desktop ~ $ grep "^(WW)" test/log/XFree86.0.log

(WW) The directory "/usr/share/fonts/freefonts/" does not exist.

(WW) The directory "/usr/share/fonts/unifont/" does not exist.

(WW) The directory "/usr/share/fonts/artwiz/" does not exist.

...

Получить все строки, содержащие следующий шаблон: последовательность из 1 или более цифры или буквы, затем символ собаки, затем еще одна последовательность 1 или более цифры или буквы или точки, затем символ точки, затем от двух до четырёх букв (имя домена первого уровня). Также служебный вывод ошибок удаляется (перенаправляется в нулевое устройство). Для этого ввести команду grep "[a-zA-z0-9]\+@[a-zA-z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null:

user@desktop ~ $ grep "[a-zA-z0-9]\+@[a-zA-z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null

/etc/devfsd.conf:# Richard Gooch <rgooch@atnf.csiro.au> 3-JUL-2000

/etc/inittab:# Author: Miquel van Smoorenburg, <miquels@cistron.nl>

/etc/inittab:# Modified by: Patrick J. Volkerding, <volkerdi@ftp.cdrom.com>

...

При работе с несколькими файлами grep по умолчанию использует вывод имени файла перед найденной стокой.

Избавиться от имени файла в начале строки с помощью ключа -h. Ввести команду grep -h "[a-zA-z0-9]\+@[a-zA-z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null:

user@desktop ~ $ grep -h "[a-zA-z0-9]\+@[a-zA-z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null

# Richard Gooch <rgooch@atnf.csiro.au> 3-JUL-2000

# Author: Miquel van Smoorenburg, <miquels@cistron.nl>

# Modified by: Patrick J. Volkerding, <volkerdi@ftp.cdrom.com>

...

Для вывода только найденной подстроки используется ключ -o. Ввести команду grep -ho "[a-zA-Z0-9]\+@[a-zA-Z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null:

user@desktop ~ $ grep -ho "[a-zA-Z0-9]\+@[a-zA-Z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null

rgooch@atnf.csiro.au

miquels@cistron.nl

volkerdi@ftp.cdrom.com

...

Получить все файлы каталога /etc/ с помощью команды find /etc -type f 2>/dev/null, игнорируя ошибки:

user@desktop ~ $ find /etc -type f 2>/dev/null

/etc/X11/xorg.conf.example

/etc/X11/Sessions/kde-3.4

/etc/X11/Sessions/Xsession

/etc/X11/chooser.sh

...

Для каждого из найденных файлов произвести поиск подстроки «nameserver». Для этого ввести команду find /etc -type f -exec grep "nameserver" {} \; 2>/dev/null:

user@desktop ~ $ find /etc -type f -exec grep "nameserver" {} \; 2>/dev/null

# merge the new nameservers with the other options from the old ...

grep --invert-match '^nameserver[[:space:]]' $REALRESOLVCONF

nameserver 10.22.10.20

...

Для большего удобства добавить вывод имени файла (ключ -H) и номера строки (ключ -n), на которой было найдено совпадение, с помощью команды find /etc -type f -exec grep -Hn "nameserver" {} \; 2>/dev/null:

user@desktop ~ $ find /etc -type f -exec grep -Hn "nameserver" {} \; 2>/dev/null

/etc/ppp/ip-up:24: # merge the new nameservers with the other optio...

/etc/ppp/ip-up:26: grep --invert-match '^nameserver[[:space...

/etc/ppp/resolv.conf:1:nameserver 10.22.10.20

...

Таким образом, команда grep может эффективно использоваться вместе с командой find для нахождения информации в файлах.

Задания для самоподготовки

Создайте каталог test1 в домашнем каталоге. Сравните время создания системных каталогов /bin, /tmp с каталогом test1.

Скопируйте файл /bin/ls в локальный каталог. Посмотрите атрибуты этого файла. Попробуйте запустить его.

Создайте в локальном каталоге символическую ссылку tmplnk на каталог /tmp. Скопируйте несколько файлов в каталог tmplnk.

Сравните файлы /dev/tty1 и /dev/hda1. Какой тип они имеют? Чем они отличаются?

Найдите все файлы в системе, которые были модифицированы не более суток назад.

С помощью одной команды найдите все файлы с расширением .html в каталоге /usr и скопируйте их в локальный каталог htmls.

Создайте архив каталога /etc и узнайте его размер. Попробуйте создать сжатый архив того же каталога. Сравните степень сжатия gzip и bzip2 на этом примере.

Создайте текстовый файл a.txt из десяти строк. Узнайте его размер. Создайте новый файл, содержащий в себе файл a.txt четыре раза.

С помощью одной команды найдите все файлы с расширением .txt в каталоге /usr и объедините их в один большой файл big.txt.

Получите с помощью одной команды файл, содержащий все числовые идентификаторы пользователей, зарегистрированных в ситсеме.

Получите с помощью одной команды строки с 5-ой по 8-ю в файле /proc/cpuinfo, содержащем информацию о процессоре.

Придумайте регулярное выражение, соответствующее URL с использованием протокола http. Найдите все строки, содержащие такие URL в файлах каталога /etc.

С помощью одной команды найдите все файлы с расширениями .txt или .html в каталоге /usr, в которых содержится слово user.

ПРИМЕРНЫЕ СЦЕНАРИИ

«Сценарий: Знакомство с каталогами UNIX»

pwd

cd /

ls

ls -F

ls ~

cd

mkdir test

ls

mkdir test/subtest

ls -R

«Сценарий: Изучение типов файлов в UNIX»

touch first.txt

echo "Hello, world" >> first.txt

cat first.txt

ls

ls -l test

alias ls='ls -F -l'

ls -a -i

cp first.txt copy1.txt

mv first.txt orig.txt

mv first.txt orig.txt

ln orig.txt copy2.txt

ln -s orig.txt orig.lnk

«Сценарий: Поиск системных журналов»

find

find -name "o*"

find /etc -name "o*"

find /etc -name "o*" 2>/dev/null

find /etc -name "o*" -a -type d 2>/dev/null

mkdir logs

find /var -name "*log" -a -type f -exec cp {} test/logs/ 2>/dev/null

«Сценарий: Архивирование и деархивирование файлов и каталогов»

cd

tar -czf test.tar.gz test

mkdir test2

cd test2

tar -xzf ../test.tar.gz

ls -l -F

«Сценарий: Cоздание новых текстовых файлов»

echo "One line"

echo "One line" > second.txt

echo "A line" >> second.txt

cat second.txt

cat >multiline.txt

cat multiline.txt

cat orig.txt second.txt multiline.txt > big.txt

cat big.txt

«Сценарий: Разрезание и склеивание файлов»

cat /etc/passwd

cat /etc/passwd | cut -f1 -d:

cat /etc/passwd | cut -f1 -d: | sort

cat /etc/passwd | cut -f7 -d:

cat /etc/passwd | cut -f7 -d: | uniq

cat /etc/passwd | cut -f7 -d: | sort | uniq

cat /etc/passwd | cut -f1 -d: > users

cat /etc/passwd | cut -f7 -d: > shells

paste users shells

«Сценарий: Быстрый анализ текстов»

wc -l /etc/passwd

cat users | wc -w

head logs/Xorg.0.log

tail logs/Xorg.0.log

«Сценарий: Поиск строк по регулярным выражениям»

less test/log/XFree86.0.log

grep "^(WW)" test/log/XFree86.0.log

grep "[a-zA-z0-9]\+@[a-zA-z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null

grep -h "[a-zA-z0-9]\+@[a-zA-z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null

grep -ho "[a-zA-Z0-9]\+@[a-zA-Z0-9\.]\+\.[a-z]\{2,4\}" /etc/* 2>/dev/null

find /etc -type f 2>/dev/null

find /etc -type f -exec grep "nameserver" {} \; 2>/dev/null

find /etc -type f -exec grep -Hn "nameserver" {} \; 2>/dev/null

Практическая работа №7,8. Процессы в ОС Linux Анализ производительности .

Тема: «Процессы в Ubuntu»

Цель:

Порядок выполнения:

  1. Работа в системном мониторе – описать выполняемые действия

  2. Работа с процессами – описать выполняемые действия (Для какого-либо)

  3. nice-фактор – описать выполняемые действия

  4. Сигналы - описать выполняемые действия

  5. Задания (jobs, как они запускаются в фоновом режиме), команды jobs, fg, bg, strong>nohup, и top – описать выполняемые действия

  6. Прочитать ВВЕДЕНИЕ В СЕРВИСЫ, просмотреть текущее состояние всех системных служб с помощью утилиты service

  7. Посмотреть, как сервисы и демоны нашей системы отображаются в выводе команды toptree, в отчете описать назначение нескольких, используя пункт.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

1. Щелкаем правой кнопкой на нижней панели и выбираем пункт “Добавить на панель…”, ищем апплет “Системный монитор” и добавляем его кнопкой “Добавить” или перетаскиванием на панель.

Щелкнув правой кнопкой по нему и выбрав пункт “Параметры” можно настроить несколько графиков для отображения активности процессора, памяти, сети, жестких дисков и так далее, таким образом вы всегда будете видеть как на ладони – чем занимается ваш компьютер.

На этом преимущества этого апплета не заканчиваются: щелчок по нему левой кнопки мыши вызывает запуск “Системного монитора Gnome”, который является аналогом “Диспетчера задач” Windows. Точнее, правильнее было бы сказать, что это диспетчер задач является его аналогом, т.к. функциональность “Системного монитора Gnome” намного выше. Чтобы в списке процессов отображались все процессы, а не только работающие от имени текущего пользователя, необходимо в меню “Вид” выбрать соответствующий пункт. При попытке завершения “чужого” процесса у вас попросят ввести пароль.

2. Чтобы перейти в консоль, нажмите CTRL+ALT+F1 – вы попадете в первую консоль, CTRL+ALT+F2 – во вторую и т.д. Графические консоли обычно начинаются с 7 или 8 – так вы сможете вернуться в графику. Первое, что необходимо, это войти в систему, введя свои имя и пароль. Теперь собственно просмотр процессов:

  1. top

Для поиска работающей программы в списке, для примера “skype”:

  1. Top | grep "skype"

Во всех этих списках вас должен интересовать только первый столбец с цифрами – это идентификационный номер процесса. Передав его команде “kill” можно завершить процесс:

  1. sudo kill 1111

Где “1111″ – ID процесса. Утилиту kill можно вызвать с параметром “-9″, в этом случае она не будет передавать процессу запрос “завершитесь, пожалуйста”, как в первом случае, а просто убьет его без запроса. Зачастую избавится от зависших процессов можно избавиться только так. Например:

  1. sudo kill -9 1111

Кроме того, существует также утилита killall, которая убивает процесс не по номеру, а по его имени, но использование это утилиты будет уместным не всегда, т.к. она убивает ВСЕ процессы с указанным именем (а их может быть несколько). Однако для нашего примера со skype это будет хороший вариант:

  1. sudo killall skype

Для информации (не выполнять)

Процесс init является основным (родительским) процессом с идентификатором 1. Это первый процесс к которому имеет доступ системный администратор. Система Linux работает до тех пор пока “жив” процесс init . Получив управление, init выполняет алгоритм описанный в конфигурационном файле /etc/inittab . В результате работы init запускаются скрипты собранные  в директории /etc/init.d/ .

Если нужно отследить работу процесса в реальном времени, просмотреть какие ресурсы и в каком количестве занимает процесс, существует команда - top. Команда top работает в интерактивном режиме и в режиме реального времени отображает работу процессов. Чтобы запустить нужно просто набрать команду - top. Выход - клавиша q. Процессы отображены не все, а только верхняя часть таблицы процессов отсортированная по какому-либо критерию (столбцу).

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

3. По умолчанию процессы отсортированы по уровню загрузки процессора. Если необходимо изменить порядок сортировки, нужно нажать комбинацию клавиш Shift+o или Shift+f. После нажатия этой комбинации клавиш будет отображено окно в котором можно выбрать столбец по которому необходимо отсортировать таблицу. Например, чтобы отсортировать таблицу по объему занимаемой памяти нужно нажать комбинацию Shift+o, затем клавишу n и нажать Enter. Чтобы изменить порядок сортировки (убывание/возрастание), необходимо нажимать комбинацию Shift+r.

Чтобы получить краткую справку о программе top нужно нажать клавишу h.

Чтобы отобразить процессы определенного пользователя необходимо в работающей программе top нажать клавишу u и затем набрать имя учетной записи и нажать Enter. Чтобы снова отобразить все процессы нажимаем u и ничего не набирая нажимаем Enter.

Очень удобно программу top использовать для удаления процессов которые загружают систему. Такие процессы (загружающие процессор на 100%) будут по умолчанию вверху таблицы. Смотрим PID процесса, нажимаем клавишу k, пишем PID и нажимаем Enter. Затем пишем номер сигнала 9 и еще раз Enter

УПРАВЛЕНИЕ ПРОЦЕССАМИ

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]