Рубрики
Конспект: Linux

Конспект: программирование C/C++

Ссылка:

0. hello world

1. Мульти файловое программирование

1. automake make

3. Модель КИС:

4. Пример статической библиотеки:

Пример совместно используемой библиотеки

Окружение:

Массив environ

Чтение окружения: getenv()

Запись окружения: setenv()

Сырая модификация окружения: putenv()

Удаление переменной окружения: unsetenv()

Очистка окружения: clearenv()

Механизмов ввода-вывода в Linux:

Файловые дескрипторы

Открытие файла: системный вызов open()

Закрытие файла: системный вызов close()

Чтение файла: системный вызов read()

Запись в файл: системный вызов write()

Произвольный доступ: системный вызов lseek()

Основы многозадачности в Linux

Использование getpid() и getppid()

Порождение процесса

Замена образа процесса

Таблица 1. Флаги общего режима

Флаг Восьмиричное представление RWX-представление
S_IRWXU 00700 rwx — —
S_IRUSR 00400 r— — —
S_IREAD 00400 r— — —
S_IWUSR 00200 -w- — —
S_IWRITE 00200 -w- — —
S_IXUSR 00100 —x — —
S_IEXEC 00100 —x — —
S_IRWXG

00070

— rwx —
S_IRGRP 00040 — r— —
S_IWGRP 00020 — -w- —
S_IXGRP 00010 — —x —
S_IRWXO 00007 — — rwx
S_IROTH 00004 — — r—
S_IWOTH 00002 — — -w-
S_IXOTH 00001 — — —x

Таблица 2. Флаги расширенного режима

Флаг Восьмиричное представление Описание
S_IFMT 0170000 Двоичная маска определения типа файла (побитовое ИЛИ всех
следующих ниже флагов)
S_IFDIR 0040000 Каталог
S_IFCHR 0020000 Символьное устройство
S_IFBLK 0060000 Блочное устройство
S_IFREG 0100000 Обычный файл
S_IFIFO 0010000 Канал FIFO
S_IFLNK 0120000 Символическая ссылка

Таблица 3. Дополнительные флаги

Флаг Восьмиричное представление Описание
S_ISUID 0004000 Бит SETUID
S_ISGID 0002000 Бит SETGID
S_ISVTX 0001000 Липкий (sticky) бит

Таблица 4. Флаги режима открытия файла

Флаг Описание
O_RDONLY Только чтение (0)
O_WRONLY Только запись (1)
O_RDWR Чтение и запись (2)
O_CREAT Создать файл, если не существует
O_TRUNC Стереть файл, если существует
O_APPEND Дописывать в конец
O_EXCL Выдать ошибку, если файл существует при использовании O_CREAT
O_DSYNC Принудительная синхронизация записи
O_RSYNC Принудительная синхронизация перед чтением
O_SYNC Принудительная полная синхронизация записи
O_NONBLOCK Открыть файл в неблокируемом режиме, если это возможно
O_NDELAY То же, что и O_NONBLOCK
O_NOCTTY Если открываемый файл — терминальное устройство, не делать его
управляющим терминалом процесса
O_NOFOLLOW Выдать ошибку, если открываемый файл является символической
ссылкой
O_DIRECTORY Выдать ошибку, если открываемый файл не является каталогом
O_DIRECT Попытаться минимизировать кэширование чтения/записи файла
O_ASYNC Генерировать сигнал, когда появляется возможность чтения или
записи в файл
O_LARGEFILE Разрешить большие файлы (размер которых не может быть
представлен в 31 бите (для систем с поддержкой LFS)
Рубрики
archlinux Конспект: Linux

Конспект: Archlinux / arch / pacman / keyring / archinstall / kde / ovs / libvirt / kvm

Ссылки:

Скрипт для установки archlinux

iwd / iwctl / wi-fi

pacman — установка софта

yay

zsh

цвет консоли и репы

консоль в стиле quake

locale — русский язык

iptables + route

/etc/iptables/iptable.4

/etc/iptables/iptable.6

qemu + kvm

ovs

ping bash

systemd network

systemd network ovsbr0

update keyring

GnuPG-2.1 and the pacman keyring

Шрифты:

Не работает переключение ALT+Shift:

Восстановление загрузки

zerotier

ноут / планшет

Тестовая samba с пользователем guest

Жизнь без archinstall, ставим arch руками:

iptables.service

Рубрики
Конспект: Linux

Конспект: linux ubuntu часть 2

Первая лабораторная подготовка шлюза

Памятка по файлу /etc/network/interfaces

Установка программ из исходников на примере браузера links

Лабораторная вторая скрипты, программирование

Лабораторная третья, время, NTP, сервер NTPD

Лабораторная четвертая, FTP, демон ftpd

DNS

Сервер DNS — bind9

Пример скрипта проверки хостов № 1

Пример скрипта проверки хостов № 2

Пример скрипта проверки хостов № 3

Сервер DNS — bind9 — добавление slave зоны

Сервер DNS — bind9 — добавление зоны обратного преобразования (ptr запись)

bind очистка кэша:

DHCP

DHCP установка сервера (isc-dhcp-server)

DHCP настройка сервера (isc-dhcp-server)

Включение IP Forward

NAT

DHCP настроим имя для хоста + IP address

Bind дополнительные настройки

Электронная почта

Пример отправки почты (SMTP):

Протоколы получения / хранения почты клиентом (АД):

Настройка postfix / виртуальные хосты

Настройка dovecot

Создадим скрипты создания пользователей для dovecot, скрипты adddovecotuser и mkdovecotpasswd

Создание учетных записей для devcot используя скрипты adddovecotuser и mkdovecotpasswd

Тестирование почты \ проверка приема и отправки

Частичная расшифровки конфига /etc/posfix/main.cf

Перечитать alias, vmaps

Почтовые псевдонимы \ алиасы \ alias

Почтовый антивирус \ clamav

Proxy и NAT

Прокси сервер \ SQUID

Squid настройка аутентификации

SQUID ограничение ширины канала

SQUID ограничение ширины канала пример

squid анализ логов

Сетевой фильтр \ firewall

PPTP / VPN / сервер / PPTD / PPPD

PPTP / VPN / клиент

NFS

Apache2

Рубрики
Конспект: Linux

Конспект: linux ubuntu часть 1

Введение:

консоль

переменные

экранирование

спец символы / шаблоны для командной строки

перенаправление ввода/вывода

поиск команд оболочкой / переменные окружения

ключи

определяем файл / команду / тип

файловые системы

файлы / типы файлов

каталоги

Полезные устройства из каталога /dev

Стандартные ввод, вывод и вывод ошибок

Основные команды для работы с файлами:

Дополнительные команды для работы с файлами

Полезные клавиши в консоли

История команд \ history

Буфер FIFO \ Сокеты \ Socket

Подсистема magic

Pagers \ Читалки

Документация \ man \ info

Символьные ссылки

каталоги \ mkdir

текстовые редакторы \ vi \ vim \ emacs \ nano \ ee

Работа с жесткие диски \ MBR

поиск \ find \ locate \ which

Программные фильтры

место на диске \ du \ df \ dd

grep поиск по шаблону

Процессы

Управление пользователями

Права

Загрузка системы и ПО

Сеть

kill, сигналы

Архивы и сжатие файлов

Управление пакетами:

Установка/сборка пакетов из исходников

Рубрики
Конспект: Linux

Конспект: Linux / 2020.03.05

Дистрибутив для новичка

0. Знакомство с терминалом

1. Перемещение по каталогам / по файловой системе

2. Чтение файлов \ Создание директорий \ Создание файлов

3. Линки

4. Команды find

5. Команды wc

6. Команды sort

7. Команды cut

8. Регулярные выражения

8.1 grep

9. Пере направление ввода и вывода \ stdout \ stdin \ stderr \ Pipe

10. Архивирование \ Сжатие

11. Процессы \ память \ логи

lsof

11.2 Маленький бенчмарк

12. Варианты редактирования файлов

13. типы аккаунтов и виды файлов (ubuntu)

14. Пользователи и группы

15. Права доступа и владения файлами

16. Сетевые команды

16.1 iptables

17. Скачивание файлов wget

18. Установка и удаление программ APT (Debian, Ubuntu)

19. Установка и удаление программ RPM (RedHat, CentOS)

20. Bash скрипты переменные \ параметры \ запуск программ

21. Скрипты bash \ if \ else \ case \ for \ while

Рубрики
Конспект: Linux

Конспект: Linux 2017

Начало:

Железо:

Модули ядра:

Загрузка системы:

Загрузка системы init:

Ядра и runlevel

Жесткие диски и файловые системы:

Загрузчики

Библиотеки

Работа с пакетами debian DEB

Работа с пакетами redhat / CentOS RPM

Работа в командной строке

Рубрики
Конспект: Linux

Конспект: admin linux cmd script auto / то еще подолее

00. Клавиши переключения между консолями и графическим режимом

01. Команды poweroff, halt, reboot, shutdown

01. Оболочка csh

02. Оболочка ksh

03. Оболочка bash

04. Оболочка zsh

05. Оболочка tcsh

06. Оболочка ash

07. Выбор оболочки

08. Базовые команды Linux

09. Команда arch: сведения об архитектуре компьютера

10. Команда banner: текстовый баннер

11. Команда chsh: изменение командного интерпретатора

12. Команды cksum и md5sum: вычисление контрольной суммы файла

13. Команда clear: очистка экрана

14. Команда date: вывод даты и времени

15. Команда echo: вывод сообщения

16. Команда exit: выход из системы

17. Команда env: установка переменных окружения

18. Команды man и info: вывод справки

19. Команда printenv: вывод значения переменной окружения

20. Команда reset: сброс терминала

21. Команда sleep: пора спать

22. Команда startx: запуск графического интерфейса X.Org

23. Команда tee: перенаправление ввода

24. Команда true: успешное завершение

25. Команда yes: возвращает y

26. Команда uname: название и версия дистрибутива Linux

27. Конвертирование кодировок, звуковых и графических файлов

28. Файловые системы / FS

29. Имена файлов в Linux

30. Файлы и устройства

31. Стандартные каталоги Linux

32. Работа с файлами

33. Работа с каталогами

34. Команда ln: создание ссылок

35. Команда chmod: права доступа к файлам и каталогам

36. Команда chown: смена владельца файла

37. Специальные права доступа (SUID и SGID)

38. Команда chattr: атрибуты файла, запрет изменения файла

39. Команды mount и umount

40. Переход на ext4

41. Команда chroot: смена корневой файловой системы

42. Команды поиска файлов

43. Команды kill, killall, xkill и ps

44. Команды nice и renice: изменение приоритета процесса

45. Команда fuser: кто открыл ресурс?

46. Команда cmp: сравнение двух файлов

47. Команда column: разбивка текста на столбцы

48. Команда comm: еще одна команда для сравнения файлов

49. Команда diff: сравнение файлов

50. Команда diff3: сравнение трех файлов

51. Команда egrep: расширенный текстовый фильтр

52. Команда expand: замена символов табуляции пробелами

53. Команда fmt

54. Команда fold

55. Команды head и tail: вывод начала и хвоста файла

56. Команда sort: сортировка файлов

57. Команда split: разбиение файлов на несколько частей

58. Команда unexpand: замена пробелов символами табуляции

59. Команда wc: подсчет слов в файле

60. маршрутизация

61. Команда pppoeconf: настройка DSL-соединения

62. Команда pppconfig: настройка модемного (PPP) соединения

63. Команда wvdial: настройка PPP-соединения

64. Текстовые браузеры

65. Команда ftp: FTP-клиент

66. Команда wget: загрузка файлов

67. Сеть. Конфигурационные файлы.

68. Команда mii-tool

69. Сетевой сканер nmap

70. информация о пользователях

71. Мониторинг работы системы

72. Планировщик at

73. Планировщик crond

74. Команды free и df: информация о системных ресурсах

75. Команда ssh: удаленный вход в систему

76. Устройства и драйверы

77. Конфигурационный файл GRUB2

78. Системы инициализации Linux

79. Система инициализации init

80. Система инициализации systemd

81. Команды системного администратора

82. Пользователь root

83. sudo \ su \ gksudo \ gksu \ Как работать без root.

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

85. Команда usermod

86. Команда userdel

87. Подробно о создании пользователей

88. Группы пользователей

89. Команды квотирования

90. Команда dmesg: вывод сообщений ядра

91. Параметры ядра

92. Разделы опций ядра

93. Компиляция ядра

94. Программирование на языке C.

95. Команда make: сборка проекта

96. Команды из пакета binutils

97. Еще полезные программы для программиста:

98. Команда gdb: отладка программ

99. Настройка bash

100. Первый сценарий на bash «Привет, мир!»

101. Использование переменных в собственных сценариях

102. Передача параметров сценарию

103. Массивы и bash

104. Циклы

105. Условные операторы

106. Функции

107. Сценарий мониторинга журнала

108. Переименование файлов

109. Преобразование чисел dec в hex

110. Проверка прав пользователя

111. Генератор имени временного файла

112. Чтение ввода пользователя

113. Оператор foreach

114. Оператор switch

115. Автоматизация обработки задач средствами gawk

116. Web-сервер. Установка Apache и PHP

117. Сервер баз данных MySQL

118 FTP-сервер

119. Программы для управления пакетами

Рубрики
Конспект: Linux

Конспект: записки из книги «admin gnu linux»

00. Структура командной строки

01. Популярные оболочки GNU/Linux

02. Файл /etc/shells — описаны все доступные оболочки:

03. Встроенные и системные команды

04. Для многих встроенных команд имеются системные аналоги.

05. Клавиатурные сочетания Bash

06. Ввод нескольких команд в одной командной строке

07. Переменные оболочки и окружения переменной VAR1 присваивается значение Privet!

08. Важнейшие переменные окружения

09. Переменная окружения PS1

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

11. Настройки, специфичные для конкретных пользователей, хранятся в одном из файлов домашнего каталога пользователя

12. История команд

13. Команда alias

14. Вычисление арифметических выражений.

15. Шаблоны подстановки и перечисление

16. Помощь и документация

17. Источники информации в Интернете

18. Система файлов и каталогов

19. Создание и удаление файлов и каталогов

20. Поиск файлов

21. Быстрый поиск файлов locate

22. Определение содержимого файла

23. Копирование, перемещение и переименование файлов

24. Устройство файловой системы

25. Использование жестких связей

26. Использование символических ссылок

27. Процессы

28. Фоновый режим выполнения заданий

29. Жизненный цикл процесса

30. Мониторинг процессов

31. Файловая система /proc

32. fuser

33. pstree

34. Сигналы

35. Перехват и обработка сигналов в Bash

36. Управление приоритетом процессов

37. Права доступа и права владения

38. Права доступа, устанавливаемые на файлы

39. Права доступа к каталогам

40. Изменение прав владения

41. Автоматическая установка прав доступа к вновь создаваемым файлам

42. Специальные биты прав доступа: SUID, SGID и sticky bit

Редактор vi:

43. Текстовые файлы и потоки

44. Конвейеры и фильтры

45. Команда echo

46. Просмотр файлов с помощью more и less

47. head / tail / cut / awk / sed

48. Сравнение файлов и каталогов команды diff и patch

49. Отличия файлов / разные файлы

50. Замена символов табуляции на пробелы

51. Простое форматирование текста

52. Сортировка строк

53. Вывод неповторяющихся строк

54. Объединение строк двух файлов по общему полю

55. Подсчет количества и нумерация строк

56. Нумерация строк

57. Замена символов с помощью команды tr

58. Слияние строк

59. Получение дампа

60. Разделение файлов на части

61. Команда xargs

62. Регулярные выражения

63. Поиск текста с помощью grep

64. Позиционные параметры

65. Команда test

66. Условное исполнение команд

67. Команда if

68. Команда if допускает использование команды elif для выполнения дополнительной проверки

69. Команда else

70. Команда case

71. Циклы

72. Функции

73. Физическая структура накопителя на жестких магнитных дисках

74. FS / File System / файловая система

74. Проверка целостности файловой системы

75. Монтирование файловых систем

76. Работа с разделом подкачки

77. Файл информации о файловых системах /etc/fstab

78. Мониторинг дисковых ресурсов

79. Резервное копирование

80. Команда dd

81. Утилиты для сжатия файлов / Команда tar

82. Программы dump и restore

83. dump / rdump / restore /rrestore

84. Системные журналы syslog

85. Служба ротации журналов / logrotate

86. Хранение учетных записей пользователей

87. Регистрация, удаление и блокирование учетных записей пользователей

88. Профили пользователей

89. Установка нового оборудования:

90. Модули ядра

91. Файлы устройств и udev

92. Устройства PCI

93. SCSI-устройств

94. Работа со звуковыми картами

95. USB устройства

96. Сборка и установка ядра Linux

98. Сеть. протокол TCP/IP , UDP

99. Адресация IPv6

100. Настройка сетевого интерфейса Ethernet

101. Разрешения имен / резолв / DNS

102. Поиск и устранение проблем с сетью

103. Сервисы сети

104. tcpd