- •1 Цель работы
- •2 Порядок выполнения работы
- •Методические указания.
- •1 Цель работы
- •1 Цель работы
- •2 Порядок выполнения работы
- •1 Цель работы
- •2 Порядок выполнения работы
- •4. Оформите отчет, который должен содержать:
- •Как быстрее выключить компьютер
- •Отмена автоматического запуска программ
- •Очистим папку автозагрузка (startup)
- •Отменим автозапуск программ в реестре
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Оформить отчет, который должен содержать:
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Задания к работе.
- •Процессы в Windows
- •Msconfig
- •Используйте приоритеты!
- •Уберите "скрытые" компоненты windows
- •Сервисы
- •Как отключать
- •4. Команда top
- •Сигналы
- •15 Примеров использования в linux команды top
- •2. Уничтожаем задачу без выхода из команды top — нажимаем k
- •3. Переопределяем приоритет процесса без выхода из команды top — нажимаем r
- •4. Изображаем выбранного пользователя в выходных данных команды top — используем top -u
- •5. Изображаем все процессоры / ядра в выходных данных команды top — нажимаем 1 (один)
- •6. Обновление по требованию выходных данных команды top системы unix (или) изменение интервала обновления данных
- •7. Выделение работающих процессов в выходных данных команды top системы Linux — нажмите z или b
- •9. Выход из команды top после заданного числа итераций — используем top -n
- •10. Выполнение команды Top в потоковом режиме
- •12. Получение помощи Help команды Top в командной строке и интерактивно
- •13. Уменьшение числа процессов, выдаваемых в выходных данных команды top — нажмите n
- •14. Изменение заголовка данных, выдаваемых командой Top, и увеличение числа изображаемых процессов
- •15. Сохраните конфигурационные настройки команды top — нажмите w
- •Введение в сервисы
- •Ip6tables и iptables
- •Irqbalance
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Методические указания.
- •3. Запуск, остановка и приостановка функционирования служб
- •4. Отменим автозапуск программ в реестре
- •5. Отключение служб, автоматически запускающийся при загрузке
- •Задание 1
- •Методические указания:
- •Задание 2
- •Методические указания:
- •Задание 3.
- •Оптимизация использования физической и виртуальной памяти сервера
- •Рекомендуемые методы работы
- •3 Методические указания
- •Предостережение
- •5 ДемоНстрация
- •1 Цель работы
- •1 Цель работы
- •2 Порядок выполнения работы
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Оформить отчет, который должен содержать:
- •4. Методические указания
- •Заключение
- •Часть 1
- •1 Цель работы
- •2 Порядок выполнения работы
- •3 Методические указания
- •Генерируем пару ключей gpg
- •Подписываем ключ gpg
- •Шифрование файлов с помощью gpg
- •Расшифровываем файлы с помощью gpg
- •Импорт ключей gpg
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Задания к работе.
- •1 Цель работы
- •2 Порядок выполнения работы
- •3 Задание к работе
- •Защита реестра от несанкционированного удаленного доступа
- •Локальная политика безопасности Политика паролей
- •Политика блокировки учетной записи
- •Политика аудита
- •Назначение прав пользователя
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Задания к работе.
- •2 На самом деле ресурсы будут выделены под одно устройство. Второе будет отключено и скрыто. —
- •Дополнительные возможности
- •1 Цель работы
- •2 Порядок выполнения работы
- •2 Порядок выполнения работы
Как отключать
После того как вы разобрались, что в вашей системе запускается и для чего, и выявили ненужные для себя процессы, их следует отключить — простое закрытие процесса в менеджере задач приведёт лишь к временной его дезактивации — при следующем старте ОС он снова окажется в памяти. Да и не очень это корректно — убивать процесс прямо в памяти. Например, после принудительного закрытия ctfmon.exeраскладка вWordне будет переключаться вплоть до перезагрузки ПК, несмотря на запущенныйPunto.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1.Определение процесса, потока.
2.Назвать системные и пользовательские процессы.
3. Информационные структуры процессов
4. Что такое службы и частью какого процесса они являются
5. Где службы можно посмотреть в системе
6. На основании материала лекций покажите, как работать со службами, взаимозависимость служб.
7. Перечислить системные и пользовательские процессы, количество потоков в них, описать их назначение. Для этого воспользоваться Интернетом или из раздела «Процессы в Windows»
Практическая работа №6 Работа с текстовыми файлами
Цель: научиться создавать, корректировать, просматривать текстовые файлы в UNIX и осуществлять в них поиск
Проделайте задания ч. 1
Напишите свою пр. работу по образу ч. 1, используя методические указания (по всем сценариям), используя свои названия файлов, каталогов и т. п. . Можно использовать раздел : ПРИМЕРНЫЕ СЦЕНАРИИ
Выполните задания для самоподготовки
Напишите отчет по проделанной работе
Часть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»
Цель:
Порядок выполнения:
Работа в системном мониторе – описать выполняемые действия
Работа с процессами – описать выполняемые действия (Для какого-либо)
nice-фактор – описать выполняемые действия
Сигналы - описать выполняемые действия
Задания (jobs, как они запускаются в фоновом режиме), команды jobs, fg, bg, strong>nohup, и top – описать выполняемые действия
Прочитать ВВЕДЕНИЕ В СЕРВИСЫ, просмотреть текущее состояние всех системных служб с помощью утилиты service
Посмотреть, как сервисы и демоны нашей системы отображаются в выводе команды toptree, в отчете описать назначение нескольких, используя пункт.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
1. Щелкаем правой кнопкой на нижней панели и выбираем пункт “Добавить на панель…”, ищем апплет “Системный монитор” и добавляем его кнопкой “Добавить” или перетаскиванием на панель.
Щелкнув правой кнопкой по нему и выбрав пункт “Параметры” можно настроить несколько графиков для отображения активности процессора, памяти, сети, жестких дисков и так далее, таким образом вы всегда будете видеть как на ладони – чем занимается ваш компьютер.
На этом преимущества этого апплета не заканчиваются: щелчок по нему левой кнопки мыши вызывает запуск “Системного монитора Gnome”, который является аналогом “Диспетчера задач” Windows. Точнее, правильнее было бы сказать, что это диспетчер задач является его аналогом, т.к. функциональность “Системного монитора Gnome” намного выше. Чтобы в списке процессов отображались все процессы, а не только работающие от имени текущего пользователя, необходимо в меню “Вид” выбрать соответствующий пункт. При попытке завершения “чужого” процесса у вас попросят ввести пароль.
2. Чтобы перейти в консоль, нажмите CTRL+ALT+F1 – вы попадете в первую консоль, CTRL+ALT+F2 – во вторую и т.д. Графические консоли обычно начинаются с 7 или 8 – так вы сможете вернуться в графику. Первое, что необходимо, это войти в систему, введя свои имя и пароль. Теперь собственно просмотр процессов:
top
Для поиска работающей программы в списке, для примера “skype”:
Top | grep "skype"
Во всех этих списках вас должен интересовать только первый столбец с цифрами – это идентификационный номер процесса. Передав его команде “kill” можно завершить процесс:
sudo kill 1111
Где “1111″ – ID процесса. Утилиту kill можно вызвать с параметром “-9″, в этом случае она не будет передавать процессу запрос “завершитесь, пожалуйста”, как в первом случае, а просто убьет его без запроса. Зачастую избавится от зависших процессов можно избавиться только так. Например:
sudo kill -9 1111
Кроме того, существует также утилита killall, которая убивает процесс не по номеру, а по его имени, но использование это утилиты будет уместным не всегда, т.к. она убивает ВСЕ процессы с указанным именем (а их может быть несколько). Однако для нашего примера со skype это будет хороший вариант:
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
УПРАВЛЕНИЕ ПРОЦЕССАМИ
Управление процессами заключается в том, чтобы уметь определить, какие процессы в системе запущены, запускать и останавливать их, изменять приоритеты процессов, менять режим выполнения процессов, переводя их в фоновый режим. Кратко рассмотрим используемые для этих целей команды.