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

стрижак / Linux конспект курса

.pdf
Скачиваний:
50
Добавлен:
10.02.2015
Размер:
208.52 Кб
Скачать

знакомство с Linux

Смена владельца:

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

chown [-R] user_name /file/name

группу меняем командой

chgrp [-R] group_name/file/name

Смена прав доступа

Для смены прав доступа используется команда chmod [-R] mode file

У этой команды есть два режима - символьный и цифровой

Символьный режим:

u - владелец, g - группа, o - все остальные +/- разрешить/запретить

r - чтение, w - запись, x - выполнение Пример:

chmod ug+w doc1.txt

устанавливает для владельца и группы право на запись в файл doc1.txt

Цифровой режим:

В цифровом режиме права задаются тремя цифрами от0 до 7 первая цифра задает права владельца вторая задает права группы третья – всех остальных

Права задаются суммированием трех чисел: 4 – чтение 2 – запись

3 – выполнение Можно представить как десятичное представление трех позиционного

двоичного числа Пример:

chmod 740 doc2.txt

Задает права rwxr----- или все права для владельца, чтение для группы и нет прав для прочих.

Университетский кластер

знакомство с Linux

Оболочка bash. Настройка, использование, разработка сценариев.

Bash - сокращения командной строки

* – ноль и более произвольных символов ? – ровно один произвольный символ [0-9] – символ из заданного диапазона [abc] – символ из списка

[^abc] – символ НЕ из списка

Bash - сокращения командной строки

Используйте клавишу TAB для завершения ввода:

>xte<tab>

>xterm

>ls doc<tab><tab> doc1.txt doc2.txt doc3.txt

>ls doc1<tab> >ls doc1.txt

Bash – расширения командной строки

Тильда ~ Указатель на домашний каталог текущего пользователя

>cat ~/.bash_profile

Может указывать на домашний каталог любого пользователя

>ls ~student2/archive

Bash – расширения командной строки

Командные расширения: $(command) или `command` подставляет вместо команды результат ее выполнения

>echo "This system's name is $(hostname)" This system's name is server1.example.com

>echo `ls`

doc1.txt doc2.txt doc3.txt

Расширение фигурных скобок {}

>ls doc{1,2,3}.txt doc1.txt doc2.txt doc3.txt

Университетский кластер

знакомство с Linux

Bash – переменные

Переменные в баше не типизированы. Задаются переменные так: variable=value Значение переменной $variable

>HI=”Hello, welcome to hell” >echo $HI

Bash – переменные окружения

Обычные переменные локальны, существуют в контексте текущего шелла Переменные окружения наследуются дочерним шеллом.

Задаются так: export variable=value

Bash – написание скриптов

Шелл скрипт это текстовый файл содержащий последовательность команд для выполнения.

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

Как написать скрипт?

1)с помощью редактора vi ил любого другого создаем текстовый файл

2)первой строкой обязательно должен быть указатель на интерпритатор:

#/bin/bash

3)Не забываем комментировать, комментарии начинаются с символа #

4)После редактирования делаем скрипт выполняемым:

>chmod u+x myscript.sh

5) Запускаем скрипт:

>./myscript.sh

Bash – операторы test и if

test проверяет истинность высказывание и возвращает бинарное значение Два вида синтаксиса:

> test “$a” = “$b” >[ “$a” = “$b” ]

Часто используется для проверки файлов

[ -f /file/name ] [ -d /dir/name ]

Применяется в операторе IF

if [ -x /home/student1/bin/myscript1 ] then

/home/student1/bin/myscript1

else

echo executable file not found

Университетский кластер

знакомство с Linux

Стандартный ввод/вывод и каналы.

Стандартные потоки ввода/вывода

Linux поддерживает три стандартных потока для каждой программы: Стандартный ввод ( STDIN) – по умолчанию клавиатура Стандартный вывод ( STDOUT) – по умолчанию экран терминала Стандартные ошибки ( STDERR) – то же экран терминала

Перенаправление стандартного вывода в файл

STDOUT и STDERR можно перенаправить в файл. Поддерживаются следующие операторы:

> – перенаправляет STDOUT в файл

2> – перенаправляет STDERR в файл &> – перенаправляет оба потока в файл

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

Примеры перенаправления потоков

> find /home -name *.txt – найдет все файлы с расширением txt

>find /home -name *.txt > find.out >find /home -name *.txt 2> /dev/null

>find /home -name *.txt > find.out 2> find.err

Перенаправление вывода программе (pipe)

Пайпы (неименованные каналы межпроцессного взаимодействия) позволяют передать вывод одной программы на ввод другой.

command1 | command2

STDOUT первой команды передается на STDIN второй STDERR не передается

Используется для комбинирования функциональности разный утилит command1 | command2 | command3... итд

>ls -l /etc | less

>echo “test email” | mail -s “test” student1@server1.example.com >cat /etc/passwd | lpr

Для разветвления потоков используется команда tee command1 | tee filename | command2

Университетский кластер

знакомство с Linux

Основы работы и печать в редакторах vi и vim.

Vi – стандартный текстовый редактор для всех Unix - систем.

В редакторе есть три режима работы:

Командный режим (по умолчанию): перемещение курсора, копировать/ вставлять, удалять блоки...

Режим вставки: изменение текста.

Режим последней строки: сохранение, выход, контекстный поиск, ит.д. Esc – выход из текущего режима

EscEsc всегда возвращает в командный режим.

Vi – редактирование файлов

Для запуска редактора: vi filename

Если файл существует, он откроется для редактирования Если файл не существует, то он будет создан.

Для начала редактирования файла нажать i(с текущего символа) или a(со следующей позиции)

Для завершения редактирования нажмите Esc(переход в командный режим)

Для перехода к последней строке нажмите :

Vi – режим последней строки

:w – сохранить файл, файл должен быть доступен на запись :wq – сохранить и выйти

:w! – форсированная запись (только для владельца или root) :q! – выход без сохранения.

:<Х> – переход к строке номер Х

/word – контекстный поиск, n следующее вхождение, N – предыдущее.

Vi – командный режим, управление курсором.

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

Перемещение на один символ: h, j, k, l Переход на слово: w, b

Переход на предложение: ), ( Переход на абзац: }, {

В конец текста: G

Университетский кластер

знакомство с Linux

Лабораторная работа 2

2.1 Назначение прав

Вдиректории ~/documents/workbook создайте пустой файл с именем mydoc.txt Всем пользователям выставьте право на чтение файла.

Теперь выставьте права rwxrw-r--

Вдиректории documents создайте директорию test

Уберите право на выполнение для владельца Создайте файл test1 внутри этой директории Получилось? Почему?

удалите директорию test

2.2 Написание скрипта

Всвоем домашнем каталоге создайте директорию bin

Вдиректории создайте и отредактируйте с помощью vi скрипт с именем myscript скрипт при запуске должен выводить имя хоста и дату.

запустите скрипт, проверьте как он работает.

Университетский кластер

знакомство с Linux

Подсказка:

2.1

>cd ~/documents/workbook >touch mydoc.txt

>chmod o+r mydoc.txt >chmod 764 mydoc.txt >cd ../

>mkdir test >chmod a-x test >touch test/test1

touch: creating `test/test1': Permission denied >rmdir test

2.2

>cd >mkdir bin >cd bin

>vi ./myscript

ʻiʼ

#!/bin/bash указатель на интерпритатор echo Hostname is $HOSTNAME

echo current time is `date` <ESC>

:wq

>chmod a+x myscript >./myscript

Университетский кластер

-x -u -f -o

знакомство с Linux

Изучение и управление процессами.

Что такое процесс?

Процесс это набор инструкций процессора размещенный в памяти У каждого процессора есть:

Цифровой идентификатор процесса PID

UID, GID, SELinux контекст. (обычно наследуются от пользователя, запустившего процесс)

Просмотр списка процессов

Для просмотра списка процессов используется команда ps -a – включает процессы во всех терминалах

– включает процессы не привязанные к терминалам

– указывает владельцев процессов

– вывод в виде дерева

– вывод специфических колонок таблицы

Поиск нужных процессов

ps -axu | grep вхождение pgrep -U user

pgrep -G students pidof bash

Сигналы

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

Сигнал 15 TERM – сигнал по умолчанию, чистое завершение Сигнал 9 KILL – немедленное завершение

Сигнал 1 HUP – перечитать конфиги man 7 signal – подробная документация

Передача сигналов процессу

По PID: kill [sidnal] pid

По имени: killall [signal] command

По параметрам: pkill [signal] param (так же как в pgrep)

Университетский кластер

знакомство с Linux

Инициализация системы и службы.

Последовательность процесса загрузки

POST

MBR

GRUB

Ядро системы

init

inittab rc.sysinit init.d

login

Уровень загрузки

Определяется в файле /etc/inittab

#Default runlevel. The runlevels used by RHS are:

#0 - halt (Do NOT set initdefault to this)

#1 - Single user mode

#2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#3 - Full multiuser mode

#4 - unused

#5 - X11

#6 - reboot (Do NOT set initdefault to this)

#

id:5:initdefault:

Определяет набор загруженных/остановленных сервисов. Можно задать при загрузке.

Скрипты запуска сервисов.

Расположены в /etc/rc.d/init.d/

Служат для запуска, остановки и перезапуска сервисов.

Понимают параметры start stop restart status reload

Запуск сервисов

Обращение к ним идет через папки /etc/rc.d/rcX.d/ где Х – уровень загрузки.

lrwxrwxrwx

1 root

root

13 Feb 17

2003

K60lpd -> ../init.d/lpd

lrwxrwxrwx

1 root

root

14 Feb 17

2003

K74ntpd -> ../init.d/ntpd

lrwxrwxrwx

1 root

root

13 Feb 17

2003

K85gpm -> ../init.d/gpm

lrwxrwxrwx

1 root

root

19 Feb 17

2003

K95firstboot -> ../init.d/firstboot

lrwxrwxrwx

1 root

root

15 Feb 17

2003

S05kudzu -> ../init.d/kudzu

lrwxrwxrwx

1 root

root

17 Feb 17

2003

S10network -> ../init.d/network

lrwxrwxrwx

1 root

root

16 Feb 17

2003

S12syslog -> ../init.d/syslog

lrwxrwxrwx

1 root

root

17 Feb 17

2003

S13portmap -> ../init.d/portmap

Ссылки начинающиеся с К – остановка сервиса Ссылки начинающиеся с S – запуск сервиса

Число в имени ссылки задает порядок запуска/остановки

Университетский кластер

знакомство с Linux

Управление сервисами

Для управления сервисами можно использовать сами скрипты:

/etc/init.d/httpd start\stop\restart

Существует специальная команда service httpd restart(stop\start...)

Управление сервисами при загрузке chkconfig

Настройка сети. Сетевые клиенты.

Настройка сетевых интерфейсов

Команда ifconfig

Команды ifup/ifdown

Настройки при загрузке

/etc/sysconfig/network-scripts/ifcfg-eth0

Глобальные настройки

/etc/sysconfig/network

Сетевые клиенты - web

Firefox

Другие браузеры Консольные браузеры ( links)

wget

Сетевые клиенты - почта и месенджеры

Evolution

Thunderbird

Консольные почтовые клиенты

Gaim (AIM, MSN, ICQ, Yahoo, Jabber, Gadu-Gadu, SILC, IRC)

OpenSSH – безопасный удаленный шелл

ssh user@hostname удаленный шелл

ssh user@hostname command– удаленное выполнение команды

scp

– защищенное копирование по сети

rsync

– синхронизация на базе ssh

OpenSSH – вход без пароля

На клиенте создаем пару ключей (открытый и закрытый)

>ssh-keygen -t rsa1

Пересылаем ключ на машину - сервер

>ssh-copy-id user@server

Университетский кластер

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