
Справочный материал / Bash-скрипты Теоретическая информация
.docТеоретическая информация
Linux - это операционная система, являющаяся одним из вариантов (клонов) операционной системы типа Unix. В своем первоначальном виде она была создана Линусом Торвальдсом (Linus Torvalds) как версия ОС UNIX для IBM-совместимых персональных ЭВМ. При этом Торвальдс опубликовал исходные коды своей системы и к развитию системы подключилось большое число независимых разработчиков. На всем протяжении своего развития разработка ведется в соответствии с требованиями международного стандарта на UNIX-совместимые системы IEEE POSIX. В настоящее время Linux используется как в качестве серверной ОС, так и на сетевых рабочих станциях или персонrouyальных компьютерах. Под операционную систему Linux существует множество приложений, предназначенных как для домашнего использования, так и для полностью функциональных рабочих станций UNIX и серверов Internet.
Некоторые особенности Linux
Linux изначально был спроектирован как многопользовательская система. При этом речь шла не о том: что вычислительной машиной под Linux могут пользоваться несколько человек по очереди, а о реальной многопользовательской системе, когда несколько человек одновременно запускают свои приложения на одном и том же компьютере.
Основную часть ОС Linux принято называть ядром. В ядро входит самый нижний уровень функций операционной системы, как то: контроль аппаратных средств, запуск драйверов устройств, управление файловыми системами, создание процессов, управление памятью и другие базовые функции. Ядро Linux во многом походит на ядро UNIX. Ядро Linux имеет некоторые особенности, которые являются совершенно уникальными:
-
ядро построено по модульному принципу
-
на одном компьютере может быть установлено сразу несколько ядер
-
разработка ядра Linux управляется централизовано
Способ хранения данных в Linux кардинально отличается от способа, принятого в Windows. Файловая структура в Linux представлена одним деревом, при этом различные типы разделов, в том числе разделы на удаленных устройствах, выглядят однотипно. Здесь нет букв, приписанных к дискам. Такой подход позволяет, например, придерживаться одной и той же логической структуры каталогов на всех клиентских машинах. Существенным отличием в обращении с файлами является существование ссылок в большинстве файловых систем, с которыми работает Linux. По сути ссылки являются указателями на файлы или на целые каталоги. Существуют два вида ссылок: жесткие ссылки и символьные ссылки. Жесткая ссылка является просто еще одним именем, связанным с файлом, а символьная ссылка — это отдельно стоящий указатель. В том случае, если удален файл, символьная ссылка на него не удаляется, но начинает указывать в пустоту. Если число жестких ссылок на файл больше одной, то удаление одного имени не повлечет удаление файла. Реально он будет удален только после удаления последней жесткой ссылки.
Основные сведения. Командный интерпретатор
В операционной системе Linux каждому пользователю предоставляется способ взаимодействия с системой: передача ей команд и получение от нее ответов. Для этой цели служит специальная программа - командная оболочка (или интерпретатор командной строки). Она должна быть запущена для каждого пользователя, который зарегистрировался в системе. Поскольку в Linux доступно несколько разных интерпретаторов командной строки, в учетной записи указано, какой из них нужно запустить для данного пользователя. Если специально не указывать командную оболочку при создании учетной записи, она будет назначена по умолчанию, вероятнее всего это будет bash. Знания и умения работы в командном интерпретаторе позволяют эффективно выполнять действия по управлению операционной системой.
Команда man
Доступ к интерактивной системе информации о системах, модулях, командах и утилитах осуществляется с помощью команды man
Команды для работы с файловой системой
ls — вывод на экран списка файлов и каталогов в текущем каталоге
pwd -вывод имени текущего каталога
cd - изменение текущего каталога
cp -копирование файлов и каталогов
mv -перемещение и переименовать файлов и каталогов
ln - создание ссылки (псевдонима) для файла или каталога
rm -удалиние файлов и каталогов
mkdir -создание нового каталога
rmdir -удаление пустого каталога
tar — утилита архивирования без сжатия
find — поиск файлов и каталогов по заданным критериям
gzip — утилита сжатия файлов
Работа с процессами
ps – отображает информацию о процессах
kill - посылка сигнала процессу
killall — посылка сигнала всем процессы по имени программы
pstree — построения дерева процессов
Средства работы с сетевым окружением
ping — проверка работоспособности при помощи пакетов ICMP и UDP
ifconfig — конфигурирование сетевых интерфейсов
arp – работа с таблицей ARP
tcpdump — программа сетевой анализатор
traceroute — трассировка пути следования до заданного хоста
netstat – информация о портах и соединениях
route – работа с таблицей маршрутизации
Работа с текстовыми данными
cat - вывод содержимого файла на стандартный вывод
more -просмотр содержимого текстового файла постранично
less -просмотр содержимого текстового файла с возможностью вернуться к предыдущим страницам
head/tail — отображение первые/последние несколько строк файла
vi – текстовый редактор
wc - подсчет количество строк, слов и символов в текстовом файле
file - вывод типа данных файла
diff - сравнение двух текстовых файла
Работа с регулярными выражениями
sed — потоковый текстовый редактор, применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных
awk - обработка входного потока по заданным шаблонам.
grep – поиск строк согласно заданным регулярным выражениям
Работа с командным интерпретатором
export – определение переменных окружения
set – вывод переменных окружения
alias – установка псевдонима для команды
<> - перенаправления ввода или вывода программы
| - организация конвейера, когда вывод одной команды подается на вход следующей
& - запуск программы в фоновом режиме
Системные утилиты
uname – вывод информации о хосте
uptime – время работы системы
init # - переход на заданный уровень выполнения
who – список активных пользователей системы
reboot – перезагрузка системы
shutdown- выключение системы
passwd – установка/изменение пароля
groupadd – добавление группы
useradd - добавление пользователя
id – вывод идентификатора пользователя
mount – монтирование файловых систем
dmesg – сообщения о ядра ОС
Команды диагностики системы
vmstat — статистика использования системной памяти
free — информация об используемой и свободной памяти
mpstat — статистика использования процессора
sar — статистика использования системных ресурсов
iostat — статистика использования подсистемы ввода-вывода
Работа с правами доступа
chmod — изменение прав доступа к файлам и каталогам
chgrp — изменения группы-владельца для файлов и каталогов
chown — изменение владельца для файлов и каталогов