Недавно при включении компьютера, Ubuntu меня "порадовала" тем, что решила не загружаться и "свалилась" в busybox в момент инициализации пользовательского пространства (userspace) оно же initramfs. Немного ошарашенный начал разбираться. Оказалось, что мой старенький жёсткий диск дал небольшой сбой, и подпортил суперблок файловой системы. Впрочем, оказалось что это не смертельно, и проблема эта, довольно просто и быстро решается.

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

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

Для восстановления нам понадобится загрузочный диск или флэшка с Linux. Загружаемся, и запускаем терминал. В терминале пишем:

sudo fdisk -l|grep Linux|grep -Ev 'swap'

В результате выполнения команды, будет выведен список всех разделов:

/dev/sda2       371306496 976771071 605464576 288.7G 83 Linux

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

sudo dumpe2fs /dev/sda2 | grep superblock

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

Primary superblock at 0, Group descriptors at 1-19
Backup superblock at 32768, Group descriptors at 32769-32787
Backup superblock at 98304, Group descriptors at 98305-98323
Backup superblock at 163840, Group descriptors at 163841-163859
Backup superblock at 229376, Group descriptors at 229377-229395
Backup superblock at 294912, Group descriptors at 294913-294931
Backup superblock at 819200, Group descriptors at 819201-819219
Backup superblock at 884736, Group descriptors at 884737-884755
Backup superblock at 1605632, Group descriptors at 1605633-1605651
Backup superblock at 2654208, Group descriptors at 2654209-2654227
Backup superblock at 4096000, Group descriptors at 4096001-4096019
Backup superblock at 7962624, Group descriptors at 7962625-7962643
Backup superblock at 11239424, Group descriptors at 11239425-11239443
Backup superblock at 20480000, Group descriptors at 20480001-20480019
Backup superblock at 23887872, Group descriptors at 23887873-23887891
Backup superblock at 71663616, Group descriptors at 71663617-71663635

Из списка запасных суперблоков, выбираем любой кроме Primary и запускаем проверку диска с указанием запасного суперблока:

sudo fsck -b 32768 /dev/sda2 -y

Параметр -y необходим для того, чтобы fsck не спрашивал что делать с каждой найденной ошибкой, а вместо этого ее автоматически исправлял если это возможно. После того, как fsck закончит, результат выполнения будет примерно таким:

fsck 1.40.2 (23-March-2016)
e2fsck 1.40.2 (23-March-2016)
/dev/sda2 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong for group #241 (32254, counted=32253).
Fix? yes
Free blocks count wrong for group #362 (32254, counted=32248).
Fix? yes
Free blocks count wrong for group #368 (32254, counted=27774).
Fix? yes
..........
/dev/sda2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda2: 59586/605464576 files (0.6% non-contiguous), 3604682/605464576 blocks

После этого перезагружаемся, отключаем флэшку/вынимаем диск из привода, и всё должно работать. :)



https://the-bosha.ru/2016/03/25/vosstanavlivaem-svalivshiysya-v-busybox-iz-za-oshibki-initramfs-linux/
https://askubuntu.com/questions/137655/boot-drops-to-a-initramfs-prompts-busybox)
https://serverfault.com/questions/375090/using-fsck-to-check-and-repair-luks-encrypted-disk

https://github.com/sivel/speedtest-cli
https://pypi.org/project/speedtest-cli/
https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod +x и запустить в консоли



Тест скорости сети на busybox





посмотреть
очистка от предыдущей версии



(глянуть что сносит и нужное поставить опять)

можно конечно воспользоваться ppa:




добавление ppa репозитория в debian
как добавить ключ репозитория в debian или ubuntu
Добавление ключей репозитория, когда другие способы не помогли

добавить недостающие ключи




но мы пойдём другим путём:




или как сделано тут Простой способ установки самой новой версии LibreOffice на Linux




Краткая памятка по работе с архиваторами из консоли в Linux

поскольку нам необходимо чтобы программы LOO завускались из консоли, то добавим переменную в $PATH




проверим наличие




и создадим пакет, в котором будут ссылки на программы из /opt/libreoffice6.0/program/

структура пакета
DEBIAN/control и opt/libreoffice/bin/файлы




в каталоге /opt/libreoffice/bin будут лежать файлы следующего содержания:



делаем файлы исполняемыми




в случае изменения версии LOO




делаем бинарик для каждой программы из каталога




готовим пакет




вот результат, забирайте

этот пакет нужен если возникнет желание воспользоваться libreoffice в консоли, напр. для конвертации

libreoffice --headless --convert-to pdf:writer_pdf_Export --outdir $HOME/tmp/convert *.html

оптимизация pdf

http://linux-notes.org/poisk-i-zamena-slov-v-fajlah-linux/
http://forum.ubuntu.ru/index.php?topic=171497.0




подборка сисадмина 2
подборка сисадмина видео

раскрыть тему

Сайты



http://ru.manpages.org/
http://www.ciscolab.ru/
http://ciscomaster.ru/
https://nginxconfig.io/
https://technet.microsoft.com/ru-ru/
http://www.certification.ru/
http://nastroisam.ru/
http://winitpro.ru/
https://windowsnotes.ru/
http://www.vmgu.ru/
http://rsdn.org/
http://ab57.ru/
http://cmd4win.ru/
http://www.4its.ru/
http://zabrosov.ru/
http://www.f-notes.info/
http://system-administrators.info/
https://wiki.autosys.tk/doku.php
https://serveradmin.ru/
http://admin-vestnik.ru/
http://admin-gu.ru
http://www.adminia.ru/
http://freesource.info/wiki
http://it-inside.org/
http://mixed-spb.ru/
https://studylinux.ru/
http://www.zabrosov.ru/
http://wiki.dieg.info/
http://wiki.enchtex.info/
http://it-connection.ru/
https://litl-admin.ru/
https://habrahabr.ru/
https://xakep.ru/
http://www.linuxformat.ru/
https://codeby.net/
https://tproger.ru/
http://www.site-helper.ru/
http://www.oszone.net/
http://pyatilistnik.org/
http://rs232.net.ru
http://bog.pp.ru/map_full.html
http://ccienetlab.com/
http://www.script-coding.com/
https://academy.yandex.ru/


Блоги



http://uzverss.livejournal.com/tag
https://blogs.technet.microsoft.com/mark_russinovich/
http://gpo-planet.com/
http://itband.ru/
http://ixnfo.com/
http://eax.me/
http://olemskoi.ru/
https://debian.pro/
http://sysadminblog.ru/
http://www.vottak.info/
http://sonikelf.ru/
http://xaker-it.ru/
http://blogsisadmina.ru/
http://www.allwork.kiev.ua/
https://sergeysl.ru/
https://cdeblog.ru/
http://slusar.su/
http://fx-files.ru/
https://linkmeup.ru/
https://sysadminblog.ru/
https://andreyex.ru/
http://mikrotik-ukraine.blogspot.ru/
http://vladimir-stupin.blogspot.ru/
http://nosovdn-cisco.blogspot.ru/
http://prosto-seti.blogspot.ru/
https://yvoinov.blogspot.com/
https://bga68.livejournal.com/
https://interface31.ru/tech_it/index.html
https://vk.com/linuxbash
https://vk.com/sysodmins
https://vk.com/adminsclub
https://vk.com/yandex.academy

133 канала и чата в Telegram для программистов


Статьи



сеть
Сборник полезных ссылок для системного администратора
Еще раз про IP-адреса, маски подсетей и вообще
Каверзные сетевые вопросы
А вы хорошо знаете статическую маршрутизацию?
Так сколько же адресов IPv4 пропадет?
Специальные диапазоны IP адресов
------------------------------------------------------------------------
Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели
Основы компьютерных сетей. Тема №5. Понятие IP адресации, масок подсетей и их расчет
IP - адреса и разбиение на подсети
Самостоятельно готовимся к CCNA: практические советы
Конспект по материалам курса ICND1 100-101
Краткие заметки по Cisco CCNA (часть ICND1)
Пропавшие без вести (топ 10 полезных команд не попавших в курс CCNA)
------------------------------------------------------------------------
Сети для самых маленьких
Рассмотрим, создадим и заюзаем аппаратную петлю на порте коммутатора
Loopdetect своими руками
https://ru.wikipedia.org/wiki/IPv4
Эмулятор UNetLab — революционный прыжок
Лабораторная работа «Обучаемся настраивать сети в GNU/Linux»
http://xgu.ru/wiki/Cisco_ASA
Часто используемая терминология локальных сетей
Что роняет Ethernet-сеть
[Конспект админа] Домены, адреса и Windows: смешивать, но не взбалтывать
Настраиваем доменную аутентификацию на сетевом оборудовании

D-Link CLI
Основные команды для работы с коммутаторами D-Link серии DES и DXS
Cisco Dhcp relay и D-Link Разница
О построении провайдерской сети в небольшом городе. Часть 1
О построении провайдерской сети в небольшом городе. Часть 2

Проброс портов в Микротике — ликбез для начинающих
------------------------------------------------------------------------
Список портов TCP и UDP
Какие порты проверяются?
Скрытый канал поверх ICMP

Работа с почтой при помощи Python
Python для сетевых инженеров: начало пути
------------------------------------------------------------------------
Одна из причин потерь на сети 802.11
Как сделать Wi-Fi без роутера в Linux
------------------------------------------------------------------------
Обратная инженерия сетевого трафика

Первое знакомство с командой ss
Как узнать имена хостов для большого количества IP адресов
Сетевой pivoting: понятие, примеры, техники, инструменты


Systemd за пять минут
Шпаргалка по управлению сервисами CentOS 7 с systemd
https://wiki.archlinux.org/index.php/Systemd_(Русский)
коротко об systemd
Структура директорий Linux. Важные файлы Linux
Что такое файловая система /proc в Linux
57 инструментов командной строки для мониторинга производительности Linux
Какие есть полезные инструменты с интерфейсом командной строки для системных администраторов Linux
------------------------------------------------------------------------
Удаление большого количества файлов в директории
Создание "неудаляемой" папки или файла в Linux

Восстановление данных
Работа с теневыми копиями Windows. Предыдущие версии файлов.
Как пользоваться одной из легендарных программ по диагностике жёстких дисков под названием Victoria!
Восстановление повреждённых файлов на основе CRC32
------------------------------------------------------------------------
Сборник полезных ссылок для системного администратора
Подборка материала для начинающего linux-сисадмина
Что такое RFC?
Пасхалки в DNS
------------------------------------------------------------------------
Сложно о простом. Модель OSI и TCP/IP
Сложно о простом. Физический уровень (L1) модели OSI
Сложно о простом. Канальный уровень (L2) модели OSI
Сложно о простом. Сетевой уровень (L3) модели OSI
Сложно о простом. Транспортный уровень (L4) модели OSI
Сложно о простом. Сеансовый уровень (L5), представительный (L6) уровень и прикладной (L7) уровень
Сложно о простом. Самые популярные заголовки уровня L2 модели OSI в Ethernet
Сложно о простом. Самые популярные заголовки уровня L3 и L4 модели OSI
Сложно о простом. Самые популярные протоколы и принципы их работы. ARP, ICMP, IGMP, TCP, UDP, SCTP, DNS и DHCP. Часть 1
Сложно о простом. Самые популярные протоколы туннелирования, динамической маршрутизации и принципы их работы. Часть 2
Сложно о простом. Самые популярные протоколы и принципы их работы. HTTP, HTTPS, SSL и TLS. Часть 3
------------------------------------------------------------------------
Альт Сервер 8.0 Документация

AD LDAP SAMBA GPO
https://ru.bmstu.wiki/Microsoft_Active_Directory

статьи по Active Directory
Samba, LDAP, Ввод Linux в домен
восстановление AD

Настраиваем и автоматизируем развёртывание Active Directory
RDS НА ОСНОВЕ СЕАНСОВ В WINDOWS SERVER 2012 R2
Настройка удаленных приложений RemoteApp в Windows Server 2008 R2
Как перенести рабочую активированную Windows 10 на другой компьютер с другим «железом»
Включаем дедупликацию в Windows 10
Команды ms-settings для быстрого доступа к настройкам Windows 10

Анализ реестра Windows
powershell команды управления виртуальными машинами
------------------------------------------------------------------------
Cтроим инфраструктуру на базе продуктов MS
Почему я люблю Microsoft. Заметки зомби
Строим инфраструктуру на базе продуктов MS
------------------------------------------------------------------------

Отсылка писем с адреса другого пользователя
Подключение общего ящика Exchange 2010
Как обнаружить, включить и отключить протоколы SMB версий 1, 2 и 3 в Windows и Windows Server

Перекрестное опыление: управляем Linux из-под Windows, и наоборот
Ввод Linux в домен (инструкция от Eset)
Устанавливаем ALDPro Astra Linux


активация
Узнать ключ активации Windows

------------------------------------------------------------------------
Скандальная правда об отладке ядерного кода в Linux
Как понять, что происходит на сервере
Настройка Linux для высоконагруженных проектов и защиты от DDoS
Получение информации об аппаратном обеспечении Linux-компьютера без использования отвертки
Введение в ELK: собираем, фильтруем и анализируем большие данные
------------------------------------------------------------------------
HAPRoxy для Percona или Galera на CentOS. Его настройка и мониторинг в Zabbix
Разбираем методы проксирования на основе HAProxy
Универсальный https c использованием ГОСТ сертификата
USB over IP для личного использования: организовываем клиент-серверный комплекс на Linux и Windows
------------------------------------------------------------------------
Перестаем бояться виртуализации при помощи KVM
Управление виртуальными машинами с помощью virsh
Настройка LEMP-сервера с помощью Ansible для простых проектов. Часть первая: знакомство с Ansible
Установка и настройка VMmanager 5 на Linux

подборка по виртуализации и облакам
------------------------------------------------------------------------
Полное практическое руководство по Docker: с нуля до кластера на AWS

IceCash 2.0 Web АРМ Кассира и АИС по обмену данными с кассами под Linux на Python
http://docs.artix.su/
Как я настраивал новые утилиты по работе с электронной подписью в Linux
ЕГАИС. Устанавливаем УТМ на Debian (Ubuntu)
установка УТМ ЕГАИС на ubuntu и debian
------------------------------------------------------------------------

1C подборка
Публикация базы данных 1С Предприятия на WEB сервере Apache
Инструкция по установке и настройке SQL Server и 1С
Как правильно настроить MS SQL сервер для работы с 1С
Резервное копирование 1С средствами MS SQL
Зеркалирование баз данных на MS SQL
Bacula: для тех кому надо по-быстрому и в картинках
Пошаговая инструкция обновления платформы 1С версии 8.3
Часто встречающиеся ошибки 1С и общие способы их решения
Установка PostgreSQL 10 для 1С:Предприятие на Debian / Ubuntu (сборка от 1С)
http://1c.postgrespro.ru/
Экономим на «винде». Как оптимизировать затраты на софт на примере бухгалтерии


Поваренная книга миграции данных между БД или как перенести данные из одной БД в другую с минимальной болью
------------------------------------------------------------------------
Каталог биллинговых систем
первая установка и настройка оборудования Ubiquiti
------------------------------------------------------------------------
Создаем свой терминал в Google Colab для работ в GitHub, GDrive, NGrok и.т.д
https://github.com/demining/TerminalGoogleColab
Обзор современных систем веб-рабочих столов
LTSP: Терминальный сервер на Linux
LTSP: Терминальный сервер на Linux
установка сервера терминалов XRDP на Debian 9.
------------------------------------------------------------------------
curl ifconfig.co
curl eth0.me
curl 2ip.ru
curl ipinfo.io
curl ipinfo.io/ip
curl api.ipify.org
curl api.ipify.org?format=json

Как всегда знать свой адрес в сети и не платить за белый IP
http://v4.ipv6-test.com/api/myip.php
http://v6.ipv6-test.com/api/myip.php
http://v4v6.ipv6-test.com/api/myip.php

https://freedns.afraid.org/
https://libp2p.io/

Обход NAT с помощью IPv6 & CloudFlare
------------------------------------------------------------------------
99+ бесплатных инструментов для анализа зловредов
------------------------------------------------------------------------

Как держать 20 тысяч VPN клиентов на серверах за $5 (Отличительные черты убогого хостинга)

------------------------------------------------------------------------
http://xgu.ru/wiki/Zone-Based_Policy_Firewall
ZBFW для руководства устранения неполадок конфигурации XE IOS
http://help.ubuntu.ru/wiki/openvpn
http://linux-bash.ru/mcommand.html
------------------------------------------------------------------------
Дисковый массив HP EVA — все просто!

PhantomEx: Готовим почву (создание образа HDD и установка загрузчика GRUB2)
PhantomEx: Спецификация Multiboot - делаем заготовку ядра

Активация discard (TRIM) на Linux для SSD
------------------------------------------------------------------------
Самостоятельная настройка VDS / VPS
Установка и настройка Zabbix 3.0 на CentOS 7
Установка Debian через ssh.
help.ubuntu TFTP
https://help.ubuntu.com/community/TFTP
Установка и настройка vsFTPd на Ubuntu
Памятка по управлению пакетами в Debian и Ubuntu
------------------------------------------------------------------------
Как работают браузеры. Часть 1

Тюнинг сетевого стека Linux для ленивых

безопасность
https://ru.wikibooks.org/wiki/Iptables
ufw - простой Firewall
ipfw Примеры из жизни
Создание и тестирование Firewall в Linux, Часть 2.2. Таблицы Firewall. Доступ к TCP\IP структурам

21 пример использования iptables для администраторов.
firewall-cmd настройка брадмаузера
изменение времени файлов, удаление истории посещения и команд в linux

------------------------------------------------------------------------
Запуск сторонних форматов в Linux или разбираемся с binfmt
Основы работы с фреймворком Radare
Используем Google для взлома: 6 приемов

Виртуальные Wi-Fi интерфейсы для одновременного использования Wi-Fi адаптера в разных режимах
перехвата трафика в Wi-Fi сети.
Тестирование на проникновение и усиление безопасности Вашей WiFi сети. Kali Linux⁠⁠
Wifi_Jammer: как глушить WiFi⁠⁠

Отслеживание Bluetooth-устройств: эксперимент и выводы

Как узнать с каких IP заходили на мой сервер через удаленный рабочий стол (RDP)?
Как узнать, какие USB устройства подключались к Linux
Аудит безопасности IP камер
Анализ и разбивка составных файлов (прошивки, образы дисков)

Как перехватить пароль SSH. Атака человек-посередине на SSH

Инструменты Kali Linux
Hashcat
Практические примеры использования Hashcat
Как в Linux взламывать пароли видеокартой и центральным процессором
------------------------------------------------------------------------
уязвимости
https://www.debian.org/security/
https://people.canonical.com/~ubuntu-security/cve/
https://cve.mitre.org/data/refs/refmap/source-DEBIAN.html
https://cve.mitre.org/data/refs/index.html
https://access.redhat.com/security/security-updates/#/cve
https://www.openwall.com/lists/oss-security/
CVE-2014-0196
Как попасть на дачу президента в пять часов утра
Как СОРМ сливает наши с вами данные всем желающим
Китайские закладки: непридуманная история о виртуализации, безопасности и шпионах — «Хакер»

Клонируем бесконтактную карту с помощью мобильного приложения
Как украсть деньги с бесконтактной карты и Apple Pay
Мошенничество с картами с чипом по-бразильски

https://ru.wikipedia.org/wiki/AMD_Platform_Security_Processor
https://ru.wikipedia.org/wiki/Intel_Management_Engine
Безопасность прошивок на примере подсистемы Intel Management Engine
Intel ME. Как избежать восстания машин?

Анализ и разбивка составных файлов (прошивки, образы дисков)
Анализ вируса под Linux на Bash

------------------------------------------------------------------------
как мы нашли, проанализировали (с помощью Reddit) и в итоге поймали виновника вредоносного устройства в нашей сети
RogueOne: создание мошеннической точки доступа Wi-Fi с помощью Raspberry Pi
Доступ к журналу событий из командной строки
Использование RADIUS (Windows Network Policy Server) для аутентификации и авторизации на ИПБ APC (Web/SNMP Management Card)
LAN-party для пентестеров: прорываемся к домен контроллеру через розетку
------------------------------------------------------------------------
Как сбросить пароль администратора домена
Сброс или изменение пароля Windows с помощью Linux
Как сбросить пароль Windows
Как УЗНАТЬ пароль Windows?

Commando VM: Windows для хакеров
Утилиты NirSoft для извлечения информации из Windows

Обзор криминалистических артефактов Windows
Вертим логи как хотим ― анализ журналов в системах Windows
Повышение привилегий в Windows-среде
Как посмотреть логи windows
C:\Windows\System32\LogFiles\
C:\Users\User\AppData\Roaming\Microsoft\Windows\Recent
Log Parser Studio
Отчет о VPN подключениях в ISA
Как узнать с каких IP заходили на мой сервер через удаленный рабочий стол (RDP)?
Список кодов ошибок Windows BSoD

Как удалить из реестра все что нужно, даже если нельзя?
имени администратора и выполнить команду psexec.exe -i -s regedit.exe

Ошибка «Для сервера терминалов достигнуто максимально возможное число разрешенных подключений»
mstsc /admin

------------------------------------------------------------------------
Пространства имён
обзор пользовательских пространств имён Linux
user_namespaces
Глубокое погружение в Linux namespaces Часть 1
Глубокое погружение в Linux namespaces Часть 2
Глубокое погружение в Linux namespaces Часть 3
Глубокое погружение в Linux namespaces Часть 4

Методика безопасности, нейтрализующая угрозу эксплуатации уязвимости ядра linux
Для нейтрализации угрозы эксплуатации уязвимости ядра linux необходимо запретить непривилегированным пользователям создавать новые пространства имен пользователей, установив значение параметра ядра kernel.unprivileged_userns_clone равным "0". Чтобы проверить текущее значение параметра ядра необходимо выполнить команду:

sudo sysctl kernel.unprivileged_userns_clone
cat /proc/sys/kernel/unprivileged_userns_clone

Параметр ядра kernel.unprivileged_userns_clone может принимать следующие значения:
0 — в случае, когда непривилегированным пользователям запрещено создавать новые пространства имен пользователей;
1 — в случае, когда непривилегированным пользователям разрешено создавать новые пространства имен пользователей.
Для того чтобы временно (до перезагрузки системы) запретить непривилегированным пользователям создавать новые пространства имен пользователей, необходимо выполнить команду:

sudo sysctl -w kernel.unprivileged_userns_clone=0

Для того чтобы установленное значение параметра ядра сохранилось после перезагрузки, необходимо:

Добавить в файл /etc/sysctl.d/999-astra.conf следующую строку:

kernel.unprivileged_userns_clone = 0
Это можно сделать следующей командой:

echo "kernel.unprivileged_userns_clone = 0" | sudo tee -a /etc/sysctl.d/999-astra.conf
Перезагрузить параметры ядра, выполнив команду:

sudo sysctl --system

------------------------------------------------------------------------
Как принять участие в open source проекте Chromium
когда нету configure
Kali Linux в Windows
Insanity Framework. Взлом удаленного ПК с помошью PDF.
Как с помощью Linux сбросить пароль и получить права админа в Windows 7
Сброс пароля root (CentOS, Red Hat)
Скрытность в Linux. Заметаем следы
FAQ по восстановлению забытого пароля администратора в MySQL
Как взломать Telegram и WhatsApp: спецслужбы не нужны
Event Tracing for Windows на стороне зла. Но это не точно
DPI мобильных операторов: от бесплатного интернета до раскрытия номера и местоположения
Сейчас как заавтоматизирую Пишем скрипт который будет набирать пароли и команды за нас
Pexpect, терминалы и more ненависти
15 лучших и бесплатных инструментов компьютерного криминалиста
70+ бесплатных инструментов для компьютерной криминалистики (форензики)
uzverss Средства обеспечения безопасности в Linux
uzverss список доступных криптографических инструментов и децентрализованных сервисов.

------------------------------------------------------------------------
uzverss Как сделать простой веб-сайт за один час
Администрирование сообществ ВКонтакте
uzverss наиболее частые команды для коммутаторов
uzverss работа с сетевыми интерфейсами
------------------------------------------------------------------------

75 фактов, которые полезно знать перед тем, как выложить сайт
Опыт установки нейросети на домашний пк⁠⁠
http://torch.ch/docs/getting-started.html
Документы для фрилансеров

Файл дескриптор в Linux с примерами
Почему работать в консоли настолько приятно? Так задумано отцами-основателями Unix
Виртуальные твари и места их обитания: прошлое и настоящее TTY в Linux
Оболочка и терминал Unix — это одно и то же?
Hello, World! Глубокое погружение в Терминалы
Как Linux запускает процесс
Вперед в будущее: Wayland против X11
Назад к истокам: рулим компьютером прямо из MBR
Как работает хэширование
Схема распайки компьютерного порта COM - rs232, DE-9, DB-9, CANNON9
Виртуальный COM-порт на STM32 или как управлять контроллером через USB не привлекая внимания санитаров
Что означают флаги в / proc / cpuinfo?
Правильный выбор центрального процессора. Читаем прайс между строк
16-битная операционная система на коленках
Как написать и подключить драйвер звука
ЕРЕСЬ ЗВУКОЗАПИСИ (пособие по домашней звукозаписи и любительской звукорежиссуре)





подборка сисадмина 1
подборка сисадмина 2

Раздел Видео из подборки сисадмина

суть профессии

раскрыть тему
------------------------------------------------------------------------
JavaRush CS50 на русском (Гарвардский курс по основам программирования)
https://www.youtube.com/playlist?list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5
------------------------------------------------------------------------
Курсомир 6.00sc Основы программирования [MIT]
https://www.youtube.com/playlist?list=PLxZ7p55WWz1la38FHUrOqNEBCn7tZfKf3
------------------------------------------------------------------------
1000+ часов видео по Java на русском
------------------------------------------------------------------------
Tech Net Курсы информационных технологий
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kiTXSFVZvwI_GK-W7fy1tnA
Tech Net Введение в компьютерные сети, интернет и мультимедийные технологии
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kgsogMfMR5KZMqokOyA7jKF
Tech Net Основы операционных систем
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kh-Ohb1c1MZAeLUXQ52nbsL
Tech Net Локальная компьютерная сеть
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kgBquYFvIWDsXC8X6G_p4Pn
Tech Net DNS - Domain Name System (система доменных имён)
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kjN41Du3ywf9Cs3m0zZeGG7
Tech Net IPv6 Теория и Практика
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khzE8kLIAF2rmfmeVYQ7HTx
Tech Net Лекции по Linux
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kilreP3jNKwCKIYuorhjjgI
Tech Net Безопасность Linux
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khkUwuVfS-MpQDfAvAiqtzu
Tech Net Linux - 17 ИT технологий
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khvfzN1oJOPql_l3BiiaREv
Tech Net Безопасность Linux
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khkUwuVfS-MpQDfAvAiqtzu
Tech Net Курс Cisco ROUTE – Маршрутизация в сетях Cisco
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kjQk5TLih0NN-ysHqzIz54U
Tech Net Active Directory
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kiNq4OXLW-igZC8YZEix1U9
Tech Net SQL Server
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khzIDMZ65_ZcvhRsOj_U21S
Tech Net Основы администрирования БД Oracle
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kh6UDYX-wdKJiNn-xcZYpCT
Tech Net Пошаговое изучение радиоэлектроники с полного нуля
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khtGSvlpEkt2L041zeykkCJ
Tech Net Английский язык (Драгункин)
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khv4bllBbCRVrPcqWdIEeRf
------------------------------------------------------------------------
VIST Межсетевое взаимодействие в сетях на базе TCP/IP
https://www.youtube.com/playlist?list=PLL_npBLPrdmTgYvi1vUwFAUQaij0p8moB
VIST Администрирование Windows Server 2012
https://www.youtube.com/playlist?list=PLL_npBLPrdmSxAdYd75bN6dhaNEyPS58Z
VIST Службы Active Directory в Windows Server 2012 R2
https://www.youtube.com/playlist?list=PLL_npBLPrdmSTcrmNNrv88onW2zL8FAWt
VIST Linux (Ubuntu). Уровень 1. Основы администрирования и безопасности
https://www.youtube.com/playlist?list=PLL_npBLPrdmSfYSYT8RMwTqNuD9DexUmL
VIST Linux. Уровень 2. Использование систем на UNIX в качестве серверов
https://www.youtube.com/playlist?list=PLL_npBLPrdmRhQd4cfom7BTKggy8INkoF
VIST Администратор серверов Linux (Ubuntu). Уровень 1
https://www.youtube.com/playlist?list=PLL_npBLPrdmT1bMMgfWhI-urQMipMHSYF
VIST Администратор серверов Linux (Ubuntu). Уровень 2
https://www.youtube.com/playlist?list=PLL_npBLPrdmRQtnfsz8OjTF_QzDOWRkcO
VIST Корпоративная голосовая связь и онлайн сервисы Microsoft Lync Server 2013
https://www.youtube.com/playlist?list=PLL_npBLPrdmTjTKpEPAeTV7pv37Lktgt7
VIST Основы программирования в системе 1С
https://www.youtube.com/playlist?list=PLL_npBLPrdmSFiTVeIJ8jz6fhiy1BCLzb
VIST Разработка Windows приложений в Microsoft Visual Studio
https://www.youtube.com/playlist?list=PLL_npBLPrdmRuhB5Igai3DmsgWPz_xCor
VIST Основы администрирования Oracle 11g, часть I
https://www.youtube.com/playlist?list=PLL_npBLPrdmSHdki9TEgQgtpjSbOeEP36
VIST MySQL 5. Проектирование и создание баз данных для web
https://www.youtube.com/playlist?list=PLL_npBLPrdmQo3s_nG1ueCvt5FDeDwY6p
VIST Английский язык для начинающих (Beginner)
https://www.youtube.com/playlist?list=PLL_npBLPrdmRCFwtOIEcTwcdTuHFtLLQR
------------------------------------------------------------------------
Kontur Academy Hackerdom-01 Вводная лекция
https://www.youtube.com/playlist?list=PLU-TUGRFxOHgxyJSpAYiJaheMwkumGUTK
Kontur Academy Hackerdom-02 Криптография
https://www.youtube.com/playlist?list=PLU-TUGRFxOHjDvu4NHrpFdpYI20-zOG2-
Kontur Academy Hackerdom-03 Хеши и биткоины
https://www.youtube.com/playlist?list=PLU-TUGRFxOHju9zvTeX_E5xFfRcx9hYlG
https://www.youtube.com/playlist?list=PLU-TUGRFxOHhaF68Xo_oXE1nuRj5RiP1P
Kontur Academy Hackerdom-04 Стеганография
https://www.youtube.com/playlist?list=PLU-TUGRFxOHgt6RiS-f8vVLzbk8cpqhl9
Kontur Academy Hackerdom-05 Сети, часть 1
https://www.youtube.com/playlist?list=PLU-TUGRFxOHgDmoiAExzK0M1qM0RaBQ8f
Kontur Academy Hackerdom-06 Сети, часть 2
https://www.youtube.com/playlist?list=PLU-TUGRFxOHjGFH9FgsIatv0HB9fAcAgH
Kontur Academy Hackerdom-07 Протокол HTTP
https://www.youtube.com/playlist?list=PLU-TUGRFxOHhtOe_VW9yjW4dqCOG53UJX
Kontur Academy Hackerdom-08 Инъекции
https://www.youtube.com/playlist?list=PLU-TUGRFxOHj_MkCMp5LFv-AUuFMP2Opb
Kontur Academy Hackerdom-09 Linux
https://www.youtube.com/playlist?list=PLU-TUGRFxOHjfl2oMuOjWutiAn1HT9Xfe
Kontur Academy Hackerdom-10 Низкоуровневое программирование
https://www.youtube.com/playlist?list=PLU-TUGRFxOHhx-ml-r6oXuyCsLNUTeyUg
Kontur Academy Hackerdom-11 Reverse Engineering
https://www.youtube.com/playlist?list=PLU-TUGRFxOHix3dnJuSO5QqA2xCH22O3Q
Kontur Academy Hackerdom-12 Бинарные уязвимости
https://www.youtube.com/playlist?list=PLU-TUGRFxOHjDoi8FNb5l0jc7b1nhk_X5
Kontur Academy Testing-1 Методы тестирования
https://www.youtube.com/playlist?list=PLU-TUGRFxOHh5XXwxXRT8gR9YcUS42cw7
Kontur Academy Testing-2 Боекомплект тестировщика
https://www.youtube.com/playlist?list=PLU-TUGRFxOHhSlreTx-IfjruAaGSni5u8
Kontur Academy Testing-3 Методика тестирования
https://www.youtube.com/playlist?list=PLU-TUGRFxOHhRhoHJfZ-xqnRvkKhE7gA8
Kontur Academy Testing-4 Оформление багов
https://www.youtube.com/playlist?list=PLU-TUGRFxOHgGzXph44nkanfGFz7c6Ztm
------------------------------------------------------------------------
Pentestit Информационная безопасность: общие вопросы.
https://www.youtube.com/playlist?list=PLcjZpuUTN3-ixjRN42HOJ3YXps3I_kUbY
Pentestit Этичный хакинг и тестирование на проникновение.
https://www.youtube.com/playlist?list=PLcjZpuUTN3-j8dUWRIGmDB4mJrzjNW-My
Pentestit Корпоративные лаборатории Pentestit, 2015-2016
https://www.youtube.com/playlist?list=PLcjZpuUTN3-hvee3gx43vveuO2t_yiEyU
Pentestit Гости "Корпоративных лабораторий Pentestit"
https://www.youtube.com/playlist?list=PLcjZpuUTN3-iY82IE30Ff0XPl7_DzaOuI
Pentestit Zero Security: A. Демо-записи вебинаров.
https://www.youtube.com/playlist?list=PLcjZpuUTN3-i_1H0Df4mqMruZNLwVZW7k
Pentestit Корпоративные лаборатории. Демо-записи вебинаров.
https://www.youtube.com/playlist?list=PLcjZpuUTN3-jZs1sRIqe34DBQRiY6TmDf
------------------------------------------------------------------------
Learning TCP IP Межсетевое взаимодействие
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbyGW6wYyrd3yO-YPJFYJntl
Learning IPv6
https://www.youtube.com/playlist?list=PL1LeoQF_fJbyLME4h7aQeY4VJH38ki1wW
Learning About OSPF
https://www.youtube.com/playlist?list=PL1LeoQF_fJbxRbG2F2wOPLE4qfOK4V0Ws
Learning Cisco ICND1
Дополнительный материал
https://www.youtube.com/playlist?list=PL1LeoQF_fJbw3C-mSvbLkGYwdvSCWf0Pa
Learning Cisco TSHOOT 2.0
https://www.youtube.com/playlist?list=PL1LeoQF_fJbyJxEljEoPn27OiSNl4sFcK
Learning CEH: Certified Ethical Hacking
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbzOHndcGO_XyFDE6jRz1AM-
Learning Asterisk
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbwBLeP3qXoq1jcsw7gF1_aD
Learning Microsoft 20410D
курс является базовым для всех остальных курсов по Windows Server 2012 R2.
https://www.youtube.com/playlist?list=PL1LeoQF_fJbz0Cx8RDZLFZZo2jmPjapXK
Learning FreeBSD. Уровень 1.Основы администрирования
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbwjusdHa5qt5F4apNOclC-F
Learning FreeBSD. Уровень 2. Расширенное администрирование
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbyR6XhyAFRRWlt5IItD5stz
Learning FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbxI4W0mh6ZeeUI3eilX1OMd
Learning Основные механизмы платформы 1С 8.3
https://www.youtube.com/playlist?list=PL1LeoQF_fJbzTn_R8kZfCx8dGqOagsiPo
Learning Администрирование 1C8 с нуля 2014
https://www.youtube.com/playlist?list=PL1LeoQF_fJbxJ8ZynwEFaxKmoMFMScrHQ
Learning Разработка мобильных приложений в системе 1С Предприятие 8.3
https://www.youtube.com/playlist?list=PL1LeoQF_fJbzw4aZEGNb4So0a9snhyTD6
Learning MySQL 5
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbykyFsW4IBWiJcwMwz-t7Jw
Learning Администрирование Oracle
Дополнительная информация
https://www.youtube.com/playlist?list=PL1LeoQF_fJbzD7-mkP_-pNRfcoOpSUAS5
Learning SEO-2014
https://www.youtube.com/playlist?list=PL1LeoQF_fJbxWmnKSGJD0TrkF7zLPoPmP
------------------------------------------------------------------------
НОУ ИНТУИТ Компьютерные сети
https://www.youtube.com/playlist?list=PLDrmKwRSNx7IX9zmmGbviuX-ZZaDmhhwU
НОУ ИНТУИТ Сети Wi-Fi
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KdnCMrzXyeSqvP5JAuu1vE
НОУ ИНТУИТ Основы технологии локальных сетей
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KKEd9ig8rRUquMm5SJ2lM9
НОУ ИНТУИТ Основы организации локальных сетей
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KtPpeB5EFk0XlbhodREKFC
НОУ ИНТУИТ Web-технологии
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KOPMxupPxcOqjhRrdqbGVg
НОУ ИНТУИТ Web-технологии (Parallels-Acronis)
https://www.youtube.com/playlist?list=PLDrmKwRSNx7IL7ED0PTRZRgpXhrd2da4t
НОУ ИНТУИТ Модели поискового поведения и взаимодействия в Web
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KNjRhYBBvC9lXsH1ruf3ZP
НОУ ИНТУИТ Администрирование Internet Information Services 7.0
https://www.youtube.com/playlist?list=PLDrmKwRSNx7IlWaXUu7zKXQHxlCN8-LCU
НОУ ИНТУИТ Введение в цифровую электронику
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Lk8Lb2Cz2a2JqVXmwqCo6t
НОУ ИНТУИТ Принципы построения ЭВМ
https://www.youtube.com/playlist?list=PLDrmKwRSNx7IGKz-4r131uMl-RBa5wRTG
НОУ ИНТУИТ Теория информационных технологий и систем
https://www.youtube.com/playlist?list=PLDrmKwRSNx7JObKu6FavebrQ-W4-9bliL
НОУ ИНТУИТ Основы операционных систем
https://www.youtube.com/playlist?list=PLDrmKwRSNx7J5lxLL4U4cWqmCbChQ8gD1
НОУ ИНТУИТ Архитектура ЭВМ и язык ассемблера
https://www.youtube.com/playlist?list=PLDrmKwRSNx7I4QA6z2HlcDkjwW4fpNPva
НОУ ИНТУИТ Программирование
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Lqk77aPjB39BI92y8VLn74
НОУ ИНТУИТ Операционные среды, системы и оболочки
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KxTNHCJaJux6B4oAK7CdC9
НОУ ИНТУИТ Архитектура Windows. Программирование в ядре Windows
https://www.youtube.com/playlist?list=PLDrmKwRSNx7ILqmFaze6SFbPYQVO3XalX
НОУ ИНТУИТ Разработка приложений для Windows 8
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Khv5FwNaAsO261P7NZyk3T
НОУ ИНТУИТ Внутреннее устройство ядра Linux
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Ja7NAt21HgNAIlTvJJ4Kso
НОУ ИНТУИТ Производительность современных файловых систем
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Jb9V-vxNw9cZP9_nG0CODg
НОУ ИНТУИТ Оптимизация приложений с использованием компиляторов Intel
https://www.youtube.com/playlist?list=PLDrmKwRSNx7IYXmQeIPeXR-NNwfYmSLno
НОУ ИНТУИТ Базы данных для школьников
https://www.youtube.com/playlist?list=PLDrmKwRSNx7LI_umdfXOeOJWjoDn6qvgN
НОУ ИНТУИТ Базы данных
https://www.youtube.com/playlist?list=PLDrmKwRSNx7IevHyBKwgdDjP4Y6U74AGg
НОУ ИНТУИТ Хранилища данных
https://www.youtube.com/playlist?list=PLDrmKwRSNx7LdHyMkUGRbY-i3GoV8jD34
НОУ ИНТУИТ Введение в аналитику больших массивов данных
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KrGthfdhT_JUb4KhtQX_A7
НОУ ИНТУИТ Основы разработки прикладных решений для 1С:Предприятие 8.1
https://www.youtube.com/playlist?list=PLDrmKwRSNx7JZ363eo4HCsoz2jmdtLfB7
НОУ ИНТУИТ Основы разработки для платформы 1С:Предприятие 8.2 в режиме
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KPwRNNvBKPe9xYMMbeCCVr
НОУ ИНТУИТ Введение в интернет-маркетинг
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Ihh6tA7klQ5ZiwdP2GLbtY
------------------------------------------------------------------------
Технострим Mail.Ru Group Администрирование Linux (весна 2017)
https://www.youtube.com/playlist?list=PLrCZzMib1e9rx3HmaLQfLYb9ociIvYOY1
Технострим Mail.Ru Group Администрирование Linux (осень 2015)
https://www.youtube.com/playlist?list=PLrCZzMib1e9pun72f4KmFopzPs5pGB85_
Технострим Mail.Ru Group Качество и Тестирование ПО (весна 2015)
https://www.youtube.com/playlist?list=PLrCZzMib1e9pDKLsabJYuODdVJrHYc4Jd
Технострим Mail.Ru Group Web-технологии (осень 2016)
https://www.youtube.com/playlist?list=PLrCZzMib1e9qZwq95WVmGB-acnot5ka4a
Технострим Mail.Ru Group Web-технологии (2013)
https://www.youtube.com/playlist?list=PLrCZzMib1e9rtArVTA_fFBIlYteH23MIm
Технострим Mail.Ru Group HighLoad
https://www.youtube.com/playlist?list=PLrCZzMib1e9qozAkJm0-IyBO2pkUdBLlM
Технострим Mail.Ru Group Безопасность интернет-приложений
https://www.youtube.com/playlist?list=PLrCZzMib1e9qiiSWgZ6pI5HiQzFc4hhdo
Технострим Mail.Ru Group Анализ безопасности веб-проектов
https://stepik.org/course/Анализ-безопасности-веб-проектов-127/
https://www.youtube.com/playlist?list=PLrCZzMib1e9owORdnWTvZIkSCqRFFbHGA
Технострим Mail.Ru Group Базы данных (осень 2014)
https://www.youtube.com/playlist?list=PLrCZzMib1e9r6c-j8aW1JuETSyCBp9iAg
Технострим Mail.Ru Group Введение в анализ данных (весна 2016)
https://www.youtube.com/playlist?list=PLrCZzMib1e9p5F99rIOzugNgQP5KHHfK8
------------------------------------------------------------------------
Лекториум подбор видео
https://www.youtube.com/user/OpenLektorium/playlists
Лекториум Основы математики
https://www.youtube.com/playlist?list=PL-_cKNuVAYAUy7zMDOkS06_Pvn9OciImJ
Лекториум Математические основы Computer Science
https://www.youtube.com/playlist?list=PL-_cKNuVAYAVlOYg9MhZib2xVW8fOcrU4
Лекториум Основы дискретной математики
https://www.youtube.com/playlist?list=PL-_cKNuVAYAXrd5kC5hdppsBNDjuIFYbc
Лекториум Математический анализ | Сергей Кисляков
https://www.youtube.com/playlist?list=PL-_cKNuVAYAU1iqXkA388zr0c45dKvN5Q
Лекториум Математический анализ (часть 2) | Сергей Кисляков
https://www.youtube.com/playlist?list=PL-_cKNuVAYAXKd1VfOqFeL2p6UsiRMILz
Лекториум Математический анализ | Юрий Белов, Юрий Давыдов
https://www.youtube.com/playlist?list=PL-_cKNuVAYAWnvDJdtEOWwBPPL6EPRRxr
Лекториум Введение в метаматематику
https://www.youtube.com/playlist?list=PL-_cKNuVAYAXQgii13MSGdv21mrY1oqBi
Лекториум Английский язык для математиков | Николай Вавилов
https://www.youtube.com/playlist?list=PL-_cKNuVAYAUf_zZ4KK3Pb7hJdjjq5p7x
Лекториум Программное обеспечение GNU/Linux
https://www.youtube.com/playlist?list=PL-_cKNuVAYAUpajPpCyqYTuzx7j_28zps
------------------------------------------------------------------------
Академия Яндекса
https://academy.yandex.ru/
https://vk.com/yandex.academy
https://www.youtube.com/channel/UCTUyoZMfksbNIHfWJjwr5aQ/playlists
Академия Яндекса Системное администрирование
https://www.youtube.com/channel/UCTUyoZMfksbNIHfWJjwr5aQ/playlists?shelf_id=8&view=50&sort=dd
https://www.youtube.com/channel/UCkufieG4LoGkHNOGrgMx3Vg/playlists
------------------------------------------------------------------------
SpecialistTV Информационная безопасность
https://www.youtube.com/playlist?list=PLPNYkZcYUF4sQbZlBhbwnyD5UH2vdjVCk
SpecialistTV Сетевые технологии
https://www.youtube.com/playlist?list=PLPNYkZcYUF4tgamZDtrnIP_Ww2vSfKCPo
SpecialistTV Сетевые технологии Microsoft
https://www.youtube.com/playlist?list=PLPNYkZcYUF4t9_YJTJp2oddtd8GtEsR2C
SpecialistTV Виртуализация
https://www.youtube.com/playlist?list=PLPNYkZcYUF4uyBOlOSryWRDel-qO89REf
SpecialistTV SQL Server
https://www.youtube.com/playlist?list=PLPNYkZcYUF4uBTjKk4cJQLiFtZrz0KUuU
SpecialistTV 1С: Предприятие
https://www.youtube.com/playlist?list=PLPNYkZcYUF4tB0cgrsYAOwAQhUJ-z2dfY
SpecialistTV Ремонт ПК
https://www.youtube.com/playlist?list=PLPNYkZcYUF4szGwLuc8khMhRjyckJTQfW
------------------------------------------------------------------------

------------------------------------------------------------------------
eSyr's video [secsem] Сетевая безопасность
https://www.youtube.com/playlist?list=PL8A2FE0B13A88BBCD
eSyr's video [secsem] Введение в инфобез (2010)
https://www.youtube.com/playlist?list=PL6750663E3A56E96A
eSyr's video [secsem] Введение в инфобез (2011)
https://www.youtube.com/playlist?list=PLF34AC9A2E02C7817
eSyr's video [UNИX] ПО GNU/Linux
https://www.youtube.com/playlist?list=PL387B38E91536055B
eSyr's video [UNИX] Администрирование Linux
https://www.youtube.com/playlist?list=PL7F73C75F2940B94D
eSyr's video [extern][UNИX] Архитектура дистрибутивов Linux 2016
https://www.youtube.com/playlist?list=PL10YceNUOSNwzokMv4MOJtO6zzm-lW4UY
eSyr's video «СПО в высшей школе» 2012
https://www.youtube.com/playlist?list=PL83F92B3D7687E185
eSyr's video [secsem] Лекции специалистов из nginx
https://www.youtube.com/playlist?list=PL6555C9D539966144
------------------------------------------------------------------------
Образовательный IT-портал GeekBrains Системы и сети
https://www.youtube.com/playlist?list=PLmRNNqEA7JoPkUxApljmrVUxGJye01bex
Образовательный IT-портал GeekBrains Информационная безопасность
https://www.youtube.com/playlist?list=PLmRNNqEA7JoN2bp1VXDZcwVgKkiI94Oha
Образовательный IT-портал GeekBrains Курс "Git. Быстрый старт"
https://www.youtube.com/playlist?list=PLmRNNqEA7JoM77hOJkPrLOfJQGizCLR3P
Образовательный IT-портал GeekBrains Подборка видео
Сетевое оборудование [GeekBrains]
Основы сетей передачи данных. Модель OSI и стек протоколов TCP IP. Основы Ethernet. [GeekBrains]
Базы данных - это просто! [GeekBrains]
------------------------------------------------------------------------
Volodya Mozhenkov английский язык
https://www.youtube.com/playlist?list=PLY7PmJJFH5nQxGEA1wOI16DE8kkcEzkNR
Volodya Mozhenkov логика
https://www.youtube.com/playlist?list=PLY7PmJJFH5nRi2mjOdiS9N-eo5FB42MLH
Volodya Mozhenkov алгоритмы
https://www.youtube.com/playlist?list=PLY7PmJJFH5nSkAteyHnYQzi0FY4JniexT
Volodya Mozhenkov компьютерная архитектура
https://www.youtube.com/playlist?list=PLY7PmJJFH5nTGSMdHUMbidWAljuhfRFgJ
Volodya Mozhenkov ОС: оперативная память
https://www.youtube.com/playlist?list=PLY7PmJJFH5nRn3ClKiU-8EF1w46YWDhgc
Volodya Mozhenkov информационная безопасность
https://www.youtube.com/playlist?list=PLY7PmJJFH5nRbkcsNRJMCzzX_8xOtkkvL
Volodya Mozhenkov интернет
https://www.youtube.com/playlist?list=PLY7PmJJFH5nTjHhIWOwCiRdJR0NN1SrEY
Volodya Mozhenkov GNU/Linux
https://www.youtube.com/playlist?list=PLY7PmJJFH5nT--I1AOR42sUg2xOvwC3c0
Volodya Mozhenkov социальные сети
https://www.youtube.com/playlist?list=PLY7PmJJFH5nSCQeNylGrdEnLi7vDi9bR4
Volodya Mozhenkov базы данных
https://www.youtube.com/playlist?list=PLY7PmJJFH5nT-lbFKxfbp3rw5BBuq5Azo
------------------------------------------------------------------------
Антон Севостьянов Основы
https://www.youtube.com/playlist?list=PLgx3uXZgvvfigwZeKPqbMY7K-o3XPusvW
Антон Севостьянов Видеокурсы по информационным технологиям
https://www.youtube.com/playlist?list=PLE72DA2AACE4D473C
Антон Севостьянов Групповые политики Windows Server
https://www.youtube.com/playlist?list=PL3189A3FBC0955A61
Антон Севостьянов Windows Server 2008 R2 - установка и настройка
https://www.youtube.com/playlist?list=PLgx3uXZgvvfiT8l-EKntftEtByBWARie9
Антон Севостьянов Системному администратору
https://www.youtube.com/playlist?list=PL1039030B0F459480
Антон Севостьянов Информационная безопасность
https://www.youtube.com/playlist?list=PL67C40BF3801C71CF
Антон Севостьянов Разное
https://www.youtube.com/playlist?list=PL479E180277013086
Антон Севостьянов Обзор софта
https://www.youtube.com/playlist?list=PL94AC56CFA346E014
------------------------------------------------------------------------
Mihail Kozlov Microsoft
https://www.youtube.com/playlist?list=PL5KGx5_ykLX9NrfwMsw3sTvi151ez2oEk
Mihail Kozlov CISCO
https://www.youtube.com/playlist?list=PL5KGx5_ykLX8ZcczD-CgblvCrYy5w4PqL
Mihail Kozlov Linux, BSD, Asterisk
https://www.youtube.com/playlist?list=PL5KGx5_ykLX_1YM43xZPUZ_smapkeogPm
Mihail Kozlov ORACLE,MongoDB
https://www.youtube.com/playlist?list=PL5KGx5_ykLX89P6wEXZn7FYHwtT2LX-rX
Mihail Kozlov Запросы в MySQL
https://www.youtube.com/playlist?list=PL5KGx5_ykLX8NrmlQTutJ__TH7pnC4qXB
Mihail Kozlov TRANSACT-SQL 2012 - 2014
https://www.youtube.com/playlist?list=PL5KGx5_ykLX-85p7tePlNllR7MWA7h9P5
Mihail Kozlov TRANSACT-SQL 2008
https://www.youtube.com/playlist?list=PL5KGx5_ykLX8AHrmLQSES0WN1zC2j1eQr
------------------------------------------------------------------------
PracticU - онлайн IT курсы Основы сетевых технологий - Networking
https://www.youtube.com/playlist?list=PLrXcA7Ca3B83V8Eo8ck23nA-h9qgnMv_7
PracticU - онлайн IT курсы Курс компьютерной связи CCNA компании Cisco
https://www.youtube.com/playlist?list=PLrXcA7Ca3B82yt_gNjkfJzWF98J01TYIH
PracticU - онлайн IT курсы Курс Linux
https://www.youtube.com/playlist?list=PLrXcA7Ca3B82OQe1hrK5Ph5zMqKVNR3Aq
PracticU - онлайн IT курсы Курс системных администраторов MCSA и MCSE 2012
https://www.youtube.com/playlist?list=PLrXcA7Ca3B81lHrRIuc_zun2tKPlUZxVj
PracticU - онлайн IT курсы Курс техников - Администраторов Windows и сетей
https://www.youtube.com/playlist?list=PLrXcA7Ca3B80m1Tx3dDHV7ysgzKo4DZdi
PracticU - онлайн IT курсы Курс почтовых серверов Exchange 2010 / 2013
https://www.youtube.com/playlist?list=PLrXcA7Ca3B81y9z6Gtrgm2bsQIHKaUygl
PracticU - онлайн IT Курс виртуализации - VMware ESXi 6
https://www.youtube.com/playlist?list=PLrXcA7Ca3B80qDihTTA_i2j1JAQQ6MMi6
PracticU - онлайн IT курсы Курс PowerShell
https://www.youtube.com/playlist?list=PLrXcA7Ca3B82Qtthh9cRPLOr-oUKrs1jB
PracticU - онлайн IT курсы Курс DBA - язык SQL для программистов
https://www.youtube.com/playlist?list=PLrXcA7Ca3B836BfMeCM8Phj826_LptFne
https://www.youtube.com/playlist?list=PLrXcA7Ca3B826YaQ3fM6Wle_4T9sTGEnJ
------------------------------------------------------------------------
Andrey Sozykin Учебный курс "Компьютерные сети"
http://www.asozykin.ru/courses/networks_online
https://yadi.sk/d/I8TOPyldkM3oZ
https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiNMvYbOzCmWy6cRzYAh9B1
Andrey Sozykin Практики по курсу "Компьютерные сети"
https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiKPQ9GXOvntj44Eu8IGAJK
Andrey Sozykin Архив
https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiOpg7EVEpBre3OyrnNcN6N
------------------------------------------------------------------------
Yuriy Lebedev Перенос контроллеров домена в Hyper-V
https://www.youtube.com/watch?v=7G7xHj1Ffmc
Yuriy Lebedev Windows Server 2016
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1BM5-KDWWc5B3c-R5XQ_tJ6
Yuriy Lebedev SQL Server 2016
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1BKVuswU0LQHaxDyrPySuxc
Yuriy Lebedev Microsoft SQL Server 2012
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1A19n74LBUSm4y0cng9lebJ
Yuriy Lebedev Microsoft Windows SBS 2011
https://www.youtube.com/playlist?list=PL19C5E7D567EA4485
Yuriy Lebedev Citrix XenServer 6
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1DKPsTgXtkd3GORlryPB59w
Yuriy Lebedev Практическое использование Windows PowerShell 4.0
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1A-ikd6fM9ZdoqTUBSqJsAU
Yuriy Lebedev Microsoft Windows PowerShell 3.0
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1DWsDTaRD3D-zAtNzlPblf8
Yuriy Lebedev Microsoft Windows PowerShell 2.0
https://www.youtube.com/playlist?list=PL2FB974886B891D67
Yuriy Lebedev VMware vSphere 6.0
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1D2YQLG1QgwzLZLXltSEdku
Yuriy Lebedev Windows 10
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1BSmcEMAxfaJKWlFuhm3BZJ
Yuriy Lebedev Microsoft Windows 7
https://www.youtube.com/playlist?list=PLFD06E3A94DFED50F
Yuriy Lebedev CentOS 5
https://www.youtube.com/playlist?list=PL4915C26CBE8BF157
Yuriy Lebedev CentOS 6
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1DGHL0eDfvj2rXe2IEy7-II
Yuriy Lebedev CentOS 7
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1D5DsOhxgvrHS4ryBdpBD96
------------------------------------------------------------------------
Дни Решений Секреты строительства Wi-Fi сетей
https://www.youtube.com/playlist?list=PLe8r5bEnvnZNPL-LOxFi7EsZrXhrHPOAy
Дни Решений СКС/LAN: монтаж, диагностика и обслуживание
https://www.youtube.com/playlist?list=PLe8r5bEnvnZOEbF0J3SqGUYCbOlG4VwjJ
Дни Решений networkguru.ru
https://www.youtube.com/playlist?list=PLe8r5bEnvnZN0HTLGH-nxUJZd0h_eOq7g
Дни Решений Секреты работы с волоконной оптикой (ВОЛС)
https://www.youtube.com/playlist?list=PLe8r5bEnvnZOZLiKYHxNdFoK7waOUzNF1
Дни Решений Телефонные гарнитуры: все секреты!
https://www.youtube.com/playlist?list=PLe8r5bEnvnZNA9u2I6uqm2zcl6T94cI6z
Дни Решений Аудио и видео-конференц-связь, видеостены
https://www.youtube.com/playlist?list=PLe8r5bEnvnZNwSxqX0p_iDUAkOlAWytM7
Дни Решений IP телефония (VoIP)
https://www.youtube.com/playlist?list=PLe8r5bEnvnZP6yOWIYyyygqPvS58uMQBJ
Дни Решений Умный дом
https://www.youtube.com/playlist?list=PLe8r5bEnvnZN748WR37B1tXGcTLqTW3kC
Дни Решений Шумовые завесы
https://www.youtube.com/playlist?list=PLe8r5bEnvnZOY1LtqLEAxPxZxtL75jPV8
------------------------------------------------------------------------
it-inside.org Создание сайта на собственном сервере с нуля.
https://www.youtube.com/playlist?list=PLWeA3JK7qaiqowtTfzprN2x166106EiJc
it-inside.org Security
https://www.youtube.com/playlist?list=PLWeA3JK7qaiojdfgRF4iBrQJ0RPpk1V6L
it-inside.org Scripting
https://www.youtube.com/playlist?list=PLWeA3JK7qaiqH4vA78UxoUKsQpFp71bwQ
it-inside.org CCNP
https://www.youtube.com/playlist?list=PLWeA3JK7qaipZf1qMtkAFU7e6eeJy2aDt
it-inside.org Monitoring.
https://www.youtube.com/playlist?list=PLWeA3JK7qaioL-Q7IPatURDrh4E4X-Von
it-inside.org bug report
https://www.youtube.com/playlist?list=PLWeA3JK7qaioGvvnmDd-gnkEwPh4gg4kr
------------------------------------------------------------------------
Roman Brovko Операционные системы (2017)
https://www.youtube.com/playlist?list=PLwwk4BHih4fhjN33HkMEr63bvLfCJy6Lg
Roman Brovko Архитектура ЭВМ
https://www.youtube.com/playlist?list=PLwwk4BHih4fhAkCRHXK54t-KSqyuMzXW8
Roman Brovko Основы программирования для Linux
https://www.youtube.com/playlist?list=PLwwk4BHih4fgXqxB-T-0kb8gGHXiP73n1
Roman Brovko Алгоритмы
https://stepik.org/course/1547/
https://www.youtube.com/playlist?list=PLwwk4BHih4fhlc1aE0A_0Lw-LYNkXQyM6
Roman Brovko Алгоритмы и структуры данных
https://www.youtube.com/playlist?list=PLwwk4BHih4fh-y2G5gPm6gRlIjK8nvt2r
Roman Brovko Алгоритмы. Структуры данных
https://www.youtube.com/playlist?list=PLwwk4BHih4fhz7NtsPUbk7B3JXh_CPt3m
Roman Brovko Web-технологии
https://www.youtube.com/playlist?list=PLwwk4BHih4fjFaGMqZgSDKdPxEf4O1nDT
------------------------------------------------------------------------
JuniorDeveloper
https://www.youtube.com/channel/UC88QnQ7ENULaCirUkASudeg/playlists
JuniorDeveloper Верстка сайта из PSD макета
https://www.youtube.com/playlist?list=PLhSMKtAqXupGbc3fRUSb9ups_9hiwNMnT
------------------------------------------------------------------------
Хекслет Курс «Операционные системы»
https://www.youtube.com/playlist?list=PLo6puixMwuSPrKOCsJhrtr-m79mFthit9
Хекслет Вебинары Хекслета Что нужно изучать начинающему программисту
https://www.youtube.com/playlist?list=PLo6puixMwuSPfJVVXKhLkHCymzEQAKxjr
Хекслет Курс «Структура и интерпретация компьютерных программ» (SICP по-русски)
https://www.youtube.com/playlist?list=PLo6puixMwuSO8eB2uBH5lZy5kjNtdhTfT
------------------------------------------------------------------------
Sappise Лекции по ЦУиМП
https://www.youtube.com/playlist?list=PL8OgDYWys_b7YiX5rVMY2ol09WKkxwPyD
Sappise Лекции по ЦУиМП Версия 2
https://www.youtube.com/playlist?list=PL8OgDYWys_b6B9SE5D1jDFbGJ9WAmWYUl
------------------------------------------------------------------------
IFud Team Системный администратор
https://www.youtube.com/playlist?list=PLvmML5SbwhumXPtGoXyBAH1pMTFKA4ykL
IFud Team Администрирование Linux. Дистанционный курс
https://www.youtube.com/playlist?list=PLvmML5SbwhulMG1CmnBZT169LmxL21bJ4
IFud Team Администрирование linux
https://www.youtube.com/playlist?list=PLvmML5SbwhunCWc-8yAYIdoPiVfD0rNIj
IFud Team Межсетевое взаимодействие в сетях на базе TCP/IP
https://www.youtube.com/playlist?list=PLvmML5SbwhulDe5JDb46R69LJvDV7RKZN
IFud Team Поднимаем IPv6 прокси. Установка и настройка IPv6
https://www.youtube.com/playlist?list=PLvmML5Sbwhunx37mPDC8aRdmt46zhp_-q
IFud Team Безопасность в сети. Методы взлома и защиты
https://www.youtube.com/playlist?list=PLvmML5SbwhunT-nAfEX4s3tAjeMde25kO
IFud Team Продвижение сайта в Google
https://www.youtube.com/playlist?list=PLvmML5SbwhukEc2pQvJgQ1yMIYTp9A3Pq
------------------------------------------------------------------------
Sipteco. Технологии успеха. Учебный канал о Linux, Asterisk и IP-телефонии
Администрирование Linux. Курс подготовки к сертификату LPIC-1
https://www.youtube.com/playlist?list=PL2or2puF0mtWoE2aQDsbpszXcZCXWspTp
Курс системного администратора Linux LPIC-1: Linux Server Professional Certification
https://www.youtube.com/playlist?list=PL2or2puF0mtUD6-Me3prNufuZhD1wKNZ_
------------------------------------------------------------------------
Kirill Semaev Матчасть
https://www.youtube.com/playlist?list=PLmxB7JSpraieJLcnTyrytdUwm1ahOgSs3
Kirill Оффтоп
https://www.youtube.com/playlist?list=PLmxB7JSpraif2Gqqgk4YdmaR5O9-NiUME
Kirill Semaev Практическое системное администрирование
https://www.youtube.com/playlist?list=PLmxB7JSpraifsRUrtq2Y-il5NCLc3vKho
Kirill Semaev LPIC-1 (exam 101) или "Администрирование Linuх, первая ступень"
https://www.youtube.com/playlist?list=PLmxB7JSpraiep6kr802UDqiAIU-76nGfc
Kirill Semaev LPIC-1 (exam 102) или "Базовые навыки по администрированию Linux"
https://www.youtube.com/playlist?list=PLmxB7JSpraieH3aScuPs7h77cSEQvPi2A
Kirill Semaev DevOps
https://www.youtube.com/playlist?list=PLmxB7JSpraieS8C58ewR7fdTu5fS3z7HG
------------------------------------------------------------------------
Viktor Gorbachev Системный администратор
https://www.youtube.com/playlist?list=PL1QEYrJlCKDxoP-q01etpJ63IMLrvK88l
------------------------------------------------------------------------
Системное администрирование Курсы информационных технологий 2014
https://www.youtube.com/playlist?list=PLdJo1XilUTZN3jw6dalF9QyYhYjV2ZC56
------------------------------------------------------------------------
Sneaky Subnet CCNA Routing & Switching
https://www.youtube.com/playlist?list=PLto9y93q2lqgI4SkL-UcNkNGCb7h2nXCC
------------------------------------------------------------------------
NetSkills. Видеоуроки. Cisco, zabbix, linux. Курс молодого бойца
https://www.youtube.com/playlist?list=PLcDkQ2Au8aVNYsqGsxRQxYyQijILa94T9
------------------------------------------------------------------------
Students Days универ изнутри Сети, коротко о главном
https://www.youtube.com/playlist?list=PL7CmqnO_QydiukqgQ9-TuQXjSwQt2rXQT
Students Days универ изнутри IP сети шаг за шагом
https://www.youtube.com/playlist?list=PL7CmqnO_QydhIEjonf_xD3njzpFm-YeXQ
Students Days универ изнутри Сети Cisco шаг за шагом(Cisco Networks, Step by step)
https://www.youtube.com/playlist?list=PL7CmqnO_Qydj_7pzgQB4AWdF-SAxssH4l
Students Days универ изнутри Сети Mikrotik шаг за шагом (Mikrotik networks step by step)
https://www.youtube.com/playlist?list=PL7CmqnO_Qydjswm5E3iUYYzjFL0_MLVHD
Students Days универ изнутри Сети Huawei шаг за шагом (Networks based on Huawei routers step by step)
https://www.youtube.com/playlist?list=PL7CmqnO_Qydi3QWXMUFnBGUuYgIlRQd63
------------------------------------------------------------------------
techmovs Школа сисадмина
https://www.youtube.com/playlist?list=PL1eM6UUA7VFz4mKeFO5Y7-vIKP2cnN7sV
techmovs Администрирование Linux
https://www.youtube.com/playlist?list=PL1eM6UUA7VFysNtA0qflCDxpDiZEt7Bep
techmovs LFCS
https://www.youtube.com/playlist?list=PL1eM6UUA7VFycj34L1zgaCBWhh3Ci9Cp0
techmovs LPIC 101
https://www.youtube.com/playlist?list=PL1eM6UUA7VFzb_L6gSbYKnZYaXefGZDUs
techmovs KL10TCH
https://www.youtube.com/playlist?list=PL1eM6UUA7VFzpFGrX2gvFXaKbASvVhoQh
techmovs IPv6
https://www.youtube.com/playlist?list=PL1eM6UUA7VFwwLgriUiAGU1i9GBGjtoi1
techmovs Алгоритмы
https://www.youtube.com/playlist?list=PL1eM6UUA7VFzq4BF8Aprfg7gdAQ69j2KB
techmovs Тестирование ПО
https://www.youtube.com/playlist?list=PL1eM6UUA7VFyGCycBFhYbsk0Rp78QrCkN
------------------------------------------------------------------------
ieucariot Сети Для Самых Маленьких
https://www.youtube.com/playlist?list=PLHN9m7XN8U8HQ4KdjaLlWtSHQ3PYgQzmV
------------------------------------------------------------------------
Константин Малиновский Сети
https://www.youtube.com/playlist?list=PL5YDvN8xi9VLKte4Gv_16ciwQxh4XweCp
Константин Малиновский Базы данных
https://www.youtube.com/playlist?list=PL5YDvN8xi9VIjHXIND6dw3P14WS6Djeix
------------------------------------------------------------------------
TrainIT Hard Базовый курс. Основы ИТ.
https://www.youtube.com/playlist?list=PLUNgQQczUJbsLIiqvHVgy23nlwYnsEsn8
TrainIT Hard Windows Server 2012 Basics
https://www.youtube.com/playlist?list=PLUNgQQczUJbveKhzohlY4uNGZYkZm_VDZ
http://skill-admin.blogspot.ru/search/label/cisco
https://vk.com/wall-100479995_94
------------------------------------------------------------------------
Vladimer Gorgoshidze Как стать системным администратором?
https://www.youtube.com/playlist?list=PLB6zbXpf_RsjIUZcIbGGYhLasPYtus-A4
Vladimer Gorgoshidze Системный администратор
https://www.youtube.com/playlist?list=PLB6zbXpf_RsjPfb4X6NsQAh2QIHA1-GW9
------------------------------------------------------------------------
Основы администрирования и безопасности Linux. (5 лекций)
https://vk.com/wall-51126445_2580
------------------------------------------------------------------------
Video Channel linux
https://www.youtube.com/playlist?list=PLZ5OKxpfkh5IC7pzY0Jo3q_UVFvaFRG7H
------------------------------------------------------------------------
Логово системного администратора Программирование Мини АТС Панасоник
https://www.youtube.com/playlist?list=PLxVdPxr08ltOAfKa2VKbzRiE7kBxvRzf1
------------------------------------------------------------------------
fromsmolensk Информационная безопасность
https://www.youtube.com/playlist?list=PL7DC2D34B14C1936C
fromsmolensk Базы данных
https://www.youtube.com/playlist?list=PLGPJsTM9CNQMg1pXbue77S59-dbZNvTog
------------------------------------------------------------------------
Fanto Mask Spoofing
https://www.youtube.com/playlist?list=PL0bD2LE45OWY9y6I50qMT_nqtsbz8MG7f
------------------------------------------------------------------------
ADV-IT Взлом Хакерские атаки и способы защиты
https://www.youtube.com/playlist?list=PLg5SS_4L6LYueOJFm-IdWSuLiYwcASkH-
ADV-IT Полезные IT знания для IT интервью (RAID)
https://www.youtube.com/playlist?list=PLg5SS_4L6LYsRPYsxOzDnEynpuQVEjUPy
ADV-IT Linux для Начинающих
https://www.youtube.com/playlist?list=PLg5SS_4L6LYuE4z-3BgLYGkZrs-cF4Tep
ADV-IT Linux для НЕ Начинающих
https://www.youtube.com/playlist?list=PLg5SS_4L6LYsgy5qLYZtvoaV34zn5iKPe
ADV-IT AWS На Русском Языке
https://www.youtube.com/playlist?list=PLg5SS_4L6LYsxrZ_4xE_U95AtGsIB96k9
------------------------------------------------------------------------
Иван Глазков Полезные советы
https://www.youtube.com/playlist?list=PL2BaVmpX7hX_9zB1k7CgcCM4zRJmEdRm0
Иван Глазков Мои ремонты
https://www.youtube.com/playlist?list=PL2BaVmpX7hX8PxGr2KAXiUWt4qgK6i5PC
Иван Глазков Крякерство
https://www.youtube.com/playlist?list=PL2BaVmpX7hX8PX9bRaLcLgZfCEFtvyX5n
Иван Глазков PXE
https://www.youtube.com/playlist?list=PL2BaVmpX7hX9mS9H6phVs-Mi55hQp0zTn
Иван Глазков Linux
https://www.youtube.com/playlist?list=PL2BaVmpX7hX-3BFL4ndGi4LuF4NCCp6tM
Иван Глазков BSD
https://www.youtube.com/playlist?list=PL2BaVmpX7hX_hRZYNUQEfhmtVNo7i6O8t
Иван Глазков pFsense
https://www.youtube.com/playlist?list=PL2BaVmpX7hX8fJtOkTD7M_pUHryQzVl8v
------------------------------------------------------------------------
ETUSPB Цифровая связь
https://www.youtube.com/playlist?list=PLLC9rD5jg9Gt29QBFIXjcTqrI9YRHJDw1
ETUSPB Лекции по беспроводным сетям 2010
https://www.youtube.com/playlist?list=PLD386E8C2D58F648B
------------------------------------------------------------------------
ITVDN Видео курс SQL Essential
https://itvdn.com/ru/video/sql-essential
------------------------------------------------------------------------
Ivan Booravoi 1С
https://www.youtube.com/playlist?list=PLczo5nNDGlYS3TASK1YcV1z-7SJl5oZtr
Ivan Booravoi SQL
https://www.youtube.com/playlist?list=PLczo5nNDGlYQ9P8vWyTi_G2LrXQEUHxpl
Ivan Booravoi Oracle
https://www.youtube.com/playlist?list=PL290BFBB9251EEBA2
------------------------------------------------------------------------
Илья Леонтьев Обновление нетиповых конфигураций для самых маленьких
https://www.youtube.com/watch?v=4Th3ZIndvps
1С Бухгалтерия 8.3 - понятный самоучитель для начинающих (видео бесплатно)
https://www.youtube.com/playlist?list=PL6Nx1KDcurkCkGiG0hKWtBOQoDqnIBf9E
------------------------------------------------------------------------
Богдан Кухар Сервер терминалов на Linux для 1С
https://www.youtube.com/watch?v=2Zei0VJc77s
Богдан Кухар Подключаем информационные базы 1С всем пользователям сразу
https://www.youtube.com/watch?v=tldOqsaoLUY
Богдан Кухар Создаем VPN в облаке Microsoft Azure
https://www.youtube.com/watch?v=JUj7oJyGRxU
------------------------------------------------------------------------
q-group 1c8
https://www.youtube.com/playlist?list=PLdH7buQQUO6GgK9AKTCrBMfpjb7MdbPDA
------------------------------------------------------------------------
theatreoff tragedy 1C Администрирование
https://www.youtube.com/playlist?list=PLC0_t5ia8jP-FZ8QSHvoGkV_pGTM43Srt
theatreoff tragedy 1С 8.3. УФ. УРОКИ ПО ЗАПРОСАМ
https://www.youtube.com/playlist?list=PLC0_t5ia8jP8G3VLBYNQjNIGBV0-J8Nz-
theatreoff tragedy 1C 8.3. Введение в конфигурирование. Управляемые формы.
https://www.youtube.com/playlist?list=PLC0_t5ia8jP_sie_rwr4z3MVe4FYsnymW
https://www.youtube.com/playlist?list=PLC0_t5ia8jP91xjbME-3HotjuC781azOS
theatreoff tragedy 1C 8.3. Запросы. Управляемые формы.
https://www.youtube.com/playlist?list=PLC0_t5ia8jP84exAWe95aOvZw7QaYJ7AJ
theatreoff tragedy 1с 8.3 : Конвертация данных 2.1: Модуль1
https://www.youtube.com/playlist?list=PLC0_t5ia8jP-Xb9qHkFspasHB53CWzQnf
theatreoff tragedy 1с 8.3. Модуль 1. Доработка типовых и разработка собственных отчетов в УТ 11. Доработка и адаптация типовых конфигураций УТ 11, ERP 2 и КА 2
https://www.youtube.com/playlist?list=PLC0_t5ia8jP_EoQrEtR45pMvP8SdPVbVF
theatreoff tragedy 1с 8.3. Модуль 3. Работа с документами и регистрами в УТ 11. Доработка и адаптация типовых конфигураций УТ 11, ERP 2 и КА 2
https://www.youtube.com/playlist?list=PLC0_t5ia8jP8U8D-vnXoGEIciz3rOEKdJ
theatreoff tragedy 1с 8.3. Модуль 4. Доработка системы прав доступа в типовых решениях. Доработка и адаптация типовых конфигураций УТ 11, ERP 2 и КА 2
https://www.youtube.com/playlist?list=PLC0_t5ia8jP-OfbaMx380cVwHTG4vOpNQ
theatreoff tragedy 1с 8.3 : Конвертация данных 2.1: Модуль 3 . Планы Обмена
https://www.youtube.com/playlist?list=PLC0_t5ia8jP8GC_yBF9r4taCqg8g2wDzn
------------------------------------------------------------------------
Сергей Калинкин Общий для последовательного просмотра
https://www.youtube.com/playlist?list=PLMAh-CUbKvasfQ0mupac3vvWPCz-BeCca
Сергей Калинкин Программирование на платформе 1С:Предприятие 8.3 - введение
https://www.youtube.com/playlist?list=PLMAh-CUbKvav-IqIpbGW2UKDw_41SowLj
Сергей Калинкин Основы программирования 1с 8
https://www.youtube.com/playlist?list=PLMAh-CUbKvat3RisZIYMYhmcWLtYMyJhv
Сергей Калинкин Установка и обновление 1с 8
https://www.youtube.com/playlist?list=PLMAh-CUbKvavHzDjL1FnssjE0oO3lJozi
------------------------------------------------------------------------
Postgres Professional DBA1. Администрирование PostgreSQL 9.4 | Тверь 16-18 декабря 2015
https://postgrespro.ru/education/courses/DBA1
https://www.youtube.com/playlist?list=PLaFqU3KCWw6KzGwUubZm-9-vKsi6vh5qC
Postgres Professional DBA2. Администрирование PostgreSQL. Расширенный курс.
https://www.youtube.com/playlist?list=PLaFqU3KCWw6JgufXBiW4dEB2-tDpmOXPH
------------------------------------------------------------------------
Vitaly Pavlenko Веб-программирование на Физтехе
https://www.youtube.com/playlist?list=PLzQrZe3EemP5KsgWGnmC0QrOzQqjg3Kd5
------------------------------------------------------------------------
Михаил Базаров Видеоуроки по созданию сайтов на 1С-Битрикс
Михаил Базаров Создание сайта на битрикс
https://www.youtube.com/playlist?list=PL8CIWP7ylJEOcOeJwicciUhoNmQP8k9ut
Работа с контентом на готовом сайте 1С-Битрикс
------------------------------------------------------------------------
Ускорение Сайтов Защита от DDoS-атак
https://www.youtube.com/playlist?list=PLVGNbLVYLVSXLoHMB8iPQuoGSK86i0uxn
Ускорение Сайтов Nginx
https://www.youtube.com/playlist?list=PLVGNbLVYLVSUtbYBzuzigVyhWGuF_ABi7
Ускорение Сайтов Ускорение MySQL
https://www.youtube.com/playlist?list=PLVGNbLVYLVSWTiO_NApFISC7fjSennUAu
Ускорение Сайтов Результаты ускорения
https://www.youtube.com/playlist?list=PLVGNbLVYLVSUkvHP1T78RcADVMpNu15je
Ускорение Сайтов Тормозека
https://www.youtube.com/playlist?list=PLVGNbLVYLVSVQfQEY9ALNPRnDWLf6oM7w
------------------------------------------------------------------------
DesignerMix Уязвимости, взломы и способы защиты
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdGqm_L4e_CzQrIDtiopvL-Y
DesignerMix Вирусы и борьба с ними
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdEgd7O2I2wjwqD_KjxiPbuX
DesignerMix Ремонт и восстановление
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdGJ_vRUDsQSgV2we1ZtU7H_
DesignerMix Восстановление флешек и удаленных данных
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdGNd70VpYAarwCMNg_yrpcC
DesignerMix Разные инструкции
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdGluxMmWaCHqvgtbb8L7DwZ
DesignerMix Google Hack - Продвинутый поиск
https://www.youtube.com/playlist?list=PLE78A5BEC7DD924E7
DesignerMix SDR (Программно-определяемое радио)
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdFlesq9MH6aGf2TsQ8PAMw5
DesignerMix Переводы уроков Майкла Османа о программно-определяемом радио (SDR с HackRF)
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdF79OFOieprIjQHFEgxfNJ3
------------------------------------------------------------------------
loftblog SEO простым языком
https://www.youtube.com/playlist?list=PLY4rE9dstrJxGAhvT29VO70RsKuEvk87A
loftblog SEO
https://www.youtube.com/playlist?list=PLY4rE9dstrJxIHBstGandMnv_pYnFBlIV
loftblog SMM
https://www.youtube.com/playlist?list=PLY4rE9dstrJxh2iwPabJC4jDRmI6W3ajc
loftblog Продвижение в социальных сетях
https://www.youtube.com/playlist?list=PLY4rE9dstrJw_DOaRCpp65OcTTFIfrUAa
loftblog Основы SQL
https://www.youtube.com/playlist?list=PLY4rE9dstrJwFmPYd03vZU90-TvXEpVzD
------------------------------------------------------------------------
CMTV [Грани Hi-Tech] Изучение программирования. Суть ООП
https://www.youtube.com/playlist?list=PLDywto_IU4_5UdZeKaoe-JWSl9LoaWmH9
CMTV [Грани Hi-Tech] Изучение программирования. Основы
https://www.youtube.com/playlist?list=PLDywto_IU4_60HfZ4-JeqRRyTgcTntDsE
CMTV [Грани Hi-Tech] Нейронные сети. Просто
https://www.youtube.com/playlist?list=PLDywto_IU4_4nP7LUZRzQ5QKoglE-WBtT
------------------------------------------------------------------------
Компьютерная школа Hillel QA | Тестирование ПО
https://www.youtube.com/playlist?list=PLuEo4W0EBxtXzWG6fAy6uQ1BtdYK-w8yN
------------------------------------------------------------------------
Computer Science Center Введение в архитектуру ЭВМ и элементы ОС
https://www.youtube.com/playlist?list=PLlb7e2G7aSpRZ9wDzXI-VYpk59acLFOIr
------------------------------------------------------------------------
Yellow-Duck.net Основы основ программирования
https://www.youtube.com/playlist?list=PL6LDsbZOeyrwLLZYsBMT6zVS_0jqIf3E6
Yellow-Duck.net Основы объектно-ориентированного програмирования
https://www.youtube.com/playlist?list=PL6LDsbZOeyrx462VmH18qS0a9Dw9LwpSu
------------------------------------------------------------------------
LessonFirst Объектно-ориентированное программирование [завершен]
https://www.youtube.com/playlist?list=PLi3gxGWPyGGQvfcZZr04KToj3beWtOz6o
LessonFirst SQL для начинающих
https://www.youtube.com/playlist?list=PLi3gxGWPyGGQOBAp-n-zWaj6QZeFtXLHh
------------------------------------------------------------------------
Evgeniy Gryshko WEB development
https://www.youtube.com/playlist?list=PLAKxGhxbBWw_tDL45h-4UcePVNNpPNztW
Evgeniy Gryshko Git
https://www.youtube.com/playlist?list=PLAKxGhxbBWw8vK8GCqs4H8ddk3Vc86M8A
------------------------------------------------------------------------
Школа Будущего HTML CSS
https://www.youtube.com/playlist?list=PLr_VnTo6mvnQfXLXW_wTsZiXAVi2_sZIo
Школа Будущего Сео
https://www.youtube.com/playlist?list=PLr_VnTo6mvnToYUyaUIVMPuuPjl6WHpjq
------------------------------------------------------------------------
KNLNT Studio CSS
https://www.youtube.com/playlist?list=PL9EN4uxy2Zg2y1HlufX9MhBruypiTdbRi
KNLNT Studio Как сделать?
https://www.youtube.com/playlist?list=PL9EN4uxy2Zg1ah4ysUbfVL2YpoTNQ-31W
------------------------------------------------------------------------
Сергей Бердачук Бесплатный курс по SEO
https://www.youtube.com/playlist?list=PLtyhaRfmo_ciDvmAbBk7zuOuXZcIBzUy6
Сергей Бердачук SEO-Tool-Vision
https://www.youtube.com/playlist?list=PLtyhaRfmo_ci9GpwONtZQ6lIAzPQW_Pn_
------------------------------------------------------------------------
Нетология: университет интернет-профессий SEO
https://www.youtube.com/playlist?list=PLkC6D3H7QvstK8JpWbMAdzKGj-Mt6ylmH
https://www.youtube.com/playlist?list=PLkC6D3H7QvssTlrTuEf4u_GOcH8oVYbGt
Нетология: университет интернет-профессий SMM
https://www.youtube.com/playlist?list=PLkC6D3H7QvsubiUwGswFupaLPQnOQ3R3s
Нетология: университет интернет-профессий SMM-менеджер: как стать профи в социальных сетях
https://www.youtube.com/playlist?list=PLkC6D3H7QvssIjltb8ZncbLIyCqX7Q3s9
------------------------------------------------------------------------
OPC - Online Programming Courses Обучение SQL
https://www.youtube.com/playlist?list=PLOFNiVk8RnFf0SRmMpeKWzcFprd6m9utv
OPC - Online Programming Courses Обучение CSS
https://www.youtube.com/playlist?list=PLOFNiVk8RnFfH6kxPxWGAGMCs2PHB3M2A
OPC - Online Programming Courses Установка и настройка сайта на WordPress
https://www.youtube.com/playlist?list=PLOFNiVk8RnFd4704vKWwn908_19QxgBLk
OPC - Online Programming Courses Joomla
https://www.youtube.com/playlist?list=PLOFNiVk8RnFclUTCx5oIkmyQ3ihdXskXj
------------------------------------------------------------------------
Макс Шулин Сетевое программирование в UNIX
https://www.youtube.com/playlist?list=PL515CC9DC78708CF2
------------------------------------------------------------------------
ProgTeach TV Самоучитель C++ в Visual Studio
https://www.youtube.com/playlist?list=PLunH-tbnWczrnR76tF3c9sddcUbHIxpQR
------------------------------------------------------------------------
Как создать сайт. Основы Самостоятельного Сайтостроения
https://www.youtube.com/user/webformyself/playlists
------------------------------------------------------------------------
Лучший курс по GIT. Перевод курса от Lynda.com
Гайды по работе с Git
https://vk.com/wall-54530371_128906
------------------------------------------------------------------------
school-php.com Видео-блок. Тема: взлом и безопасность веб-сайтов
https://www.youtube.com/watch?v=ll9ZqAk70kk
------------------------------------------------------------------------
Linux - это просто! Замена сбойного жесткого диска в дисковом массиве RAID10
https://www.youtube.com/watch?v=AE2oIiTxiv0
------------------------------------------------------------------------
Filipp Ozinov Основы дизассемблирования
https://www.youtube.com/watch?v=LaBM8inpYoE
------------------------------------------------------------------------
Техподдержка
https://www.youtube.com/watch?v=8tUhvt3opLE
https://www.youtube.com/watch?v=-vJHsO4_uPA
------------------------------------------------------------------------




подборка сисадмина 1
подборка сисадмина видео

раскрыть тему

Книги



http://adm-lib.ru/sisadminu/index.php
http://it-ebooks.ru/
Большая поваренная книга программиста.
https://github.com/najomi/data
Системное и сетевое администрирование подборка 1
Системное и сетевое администрирование подборка 2
Основы конфигурирования корпоративных сетей Cisco Ермаков А.Е. 2013
Официальное руководство Cisco по подготовке к сертификационным экзаменам CCENT/CCNA ICND1 100-101 Уэнделл Одом 2015
Сетевая защита на базе технологий фирмы Cisco Systems Н. И. Синадский
Современные операционные системы Эндрю Таненбаум, Х. Бос 2016
В. Олифер Н. Олифер.Компьютерные сети.Принципы,технологии,протоколы(2016)
Эндрю Таненбаум, Дэвид Уэзеролл Компьютерные сети. 5-е изд.
Administrirovanie_Microsoft_Windows_Server_2012
Уильям Р. Станек. Microsoft Windows Server. 2012. Справочник администратора
Microsoft Windows Server 2012. Полное руководство
Самоучитель системного администратора Кенин А.М. 2012
Самоучитель системного администратора Кенин А.М. 4-е издание 2016
Администрирование ОС Linux С.В. Гончарук 2015
Внутреннее устройство Linux. 3-е изд. Брайан Уорд 2022
Практикум: модули ядра Linux Конспект с примерами и упражнения с задачами Олег Цилюрик 2015
Linux не для идиотов
Основы администрирования и безопасности Linux
Немет Э., Снайдер Г., Хейн Т., Уэйли Б. "Unix и Linux. Руководство системного администратора" 5 издание 2020
подборка книг по linux
Как на самом деле работают компьютеры. Практическое руководство по внутреннему устройству машины [Мэттью Джастис] (pdf)
Linux глазами хакера, 4-е издание Михаил Фленов 2016
Лаборатория хакера Сергей Бабин 2016
Хакинг. Искусство эксплойта. Джон Эриксон 2018
Этичный хакинг. Практическое руководство по взлому. Дэниел Г. Грэм 2022
Книги об информационной безопасности, этичном хакинге, тестировании на проникновение
Книга «Взлом Wi-Fi сетей с Kali Linux и BlackArch» (на русском языке)
Эффективное программирование TCP IP. 2002
TCP/IP Сетевое администрирование Третье издание Крэйг Хант 2008
Подборка книг по TCP/IP
Подборка книг по TCP/IP
Подборка книг по TCP/IP
TCP/IP КРУПНЫМ ПЛАНОМ
Компьютерные сети. Нисходящий подход Куроуз Джеймс, Росс Кит
Кенин А.М. - Практическое руководство системного администратора, 2-е издание 2013
system administration
Искусство командной строки
Командная строка Linux и автоматизация рутинных задач Колисниченко Денис 2012
Командная строка Linux и автоматизация рутинных задач Колисниченко Денис 2012
Командная строка Linux. Полное руководство Уильям Шоттс 2017
Блум, Ричард, Бреснахэн, Кристина. Командная строка Linux и сценарии оболочки. Библия пользователя, 2-е изд. 2012
Bash и кибербезопасность: атака, защита и анализ из командной строки Linux. 2020.
Практикум: модули ядра Linux Конспект с примерами и упражнения с задачами Олег Цилюрик 2015
UNIX TOOLBOX по русски
Linux From Scratch Версия 7.3
Руссинович М., Соломон Д., Ионеску А., Йосифович П. Внутреннее устройство Windows. 7-е изд. 2018.
SQL за 10 минут, 4-е издание Бен Форта 2014
SQL. Полное руководство. 3-е издание (2014) Джеймс Р. Грофф, Пол Н. Вайнберг, Эндрю Дж. Оппель
SEO: Поисковая Оптимизация от А до Я.
5 бесплатных проверенных способов прокачать SEO-уровень сайта Владимир Здор 2016
Git для профессионального программиста (2016)
Чакон С., Штрауб Б. - Git для профессионального программиста (Библиотека программиста) - 2016.pdf
Подборка книг по информационной безопасности 1
Подборка книг по информационной безопасности 2
Книги по информационной безопасности. Знакомимся ближе с ИБ
За пределами проекта. Linux с нуля Бикманс Жерар 2014
Linux API. Исчерпывающее руководство. Керриск Майкл 2019
поборка Книги по Linux
поборка Книги по Linux
Внутреннее устройство Linux Брайан Уорд 2016
Внутреннее устройство Linux Брайан Уорд 2016
Внутреннее устройство Linux Брайан Уорд 2016
Настольная книга администратора Debian Hertzog Raphaël, Mas Roland
UNIX изнутри Юреш Вахалия 2003
UNIX — универсальная среда программирования Брайан Уилсон Керниган Роб Пайк 1992 г
Прикладная и компьютерная лингвистика И. С. Николаев 2016
Инструментарий хакера Сергей Бабин 2014
Программирование: введение в профессию Андрей Викторович Столяров
Руководство администратора FreePBX на русском языке
PDF-версия статей про Bash-скрипты
Сценарии командной оболочки. Linux, OS X и Unix (2017)
Python 3 для сетевых инженеров
Cisco CCENT/CCNA ICND1 100-101. Официальное руководство по подготовке к сертификационным экзаменам.
https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books-ru.md
Андрей Столяров Программирование: введение в профессию. Том 1: азы программирования
Андрей Столяров Программирование: введение в профессию. II: низкоуровневое программирование
ftp://ftp.micronet-rostov.ru/pub/linux-support/books/system%20administration/
Андрей Столяров Программирование: введение в профессию. III: системы и сети
Андрей Столяров Программирование: введение в профессию. Том IV: парадигмы

ftp://ftp.micronet-rostov.ru/linux-support/books/system administration/
ftp://ftp.micronet-rostov.ru/linux-support/books/programming
https://дз.ею/tmp/Bibl_progr_Sb_187kn/

чтоб читалось везде


Подборки



http://www.outsidethebox.ms/category/windows/
Записки IT специалиста Active Directory
http://cb.vu/unixtoolbox.xhtml
http://admin-club.net/publ/
https://telegram.me/proglibrary
база знаний MyTetra
сборник полезных для программиста ссылок
Библиотека программиста Видеолекции и видеоуроки
Библиотека программиста Каталог книг
Бесплатные материалы для программистов
uzverss статьи по Active Directory
uzverss Mikrotik, RouterOS подборка
uzverss подборка по телефонии
uzverss работа с Git
полезное для серваков
uzverss Raspberry PI, Arduino, Python
uzverss Командная строка. справочник администратора
uzverss подборка по коммутаторам


Переводы



Искусство программирования на языке сценариев командной оболочки
Справочное руководство по виртуализации в Fedora
Драйверы устройств Linux, Третья редакция
Основы написания драйверов устройств для Linux
https://git-scm.com/book/ru/v1


Самоучители



Введение в SQL
Наиболее используемые команды MySQL
1C-Битрикс: Управление сайтом Документация для разработчиков
1C-Битрикс: Пользовательская документация
https://dev.1c-bitrix.ru/learning/
https://dev.1c-bitrix.ru/docs/php.php
http://learngitbranching.js.org/
http://ccnastepbystep.blogspot.ru/
http://www.cisco.com/web/RU/learning/le31/learning_learning_resources_home.html
Постоянный доступ к учебным материалам Cisco
http://linkmeup.ru/tag/сети%20для%20самых%20маленьких/
https://powerman.name/doc/Inferno/
Ассемблер в Linux для программистов C
Гайды по работе с Git
Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию
Как обучить джунов QA за 3 дня (сборник материалов)
Prompt-инженер как новый тренд. Требования и зарплаты у специалистов
Руководство по промпт-инжинирингу
https://gnulinux.pro/
https://basis.gnulinux.pro/ru/latest/
https://infra.gnulinux.pro/ru/latest/

Сети для самых маленьких
юзера eucariot
https://linkmeup.gitbook.io/sdsm
https://github.com/eucariot/SDSM
ieucariot Сети Для Самых Маленьких видео
ieucariot CCIE за год видео
15. Сети для самых матёрых. Часть пятнадцатая. QoS
14. Сети для самых матёрых. Часть четырнадцатая. Путь пакета
13. Сети для самых матёрых. Часть тринадцатая. MPLS Traffic Engineering
12.2. Сети для самых матёрых. Микровыпуск №8. EVPN Multihoming
12.1. Сети для самых матёрых. Микровыпуск №7. MPLS EVPN
12. Сети для самых матёрых. Часть двенадцатая. MPLS L2VPN
11.1. Сети для самых маленьких. Микровыпуск №6. MPLS L3VPN и доступ в Интернет
11. Сети для самых маленьких. Часть Одиннадцатая. MPLS L3VPN
10. Сети для самых маленьких. Часть десятая. Базовый MPLS
9. Сети для самых маленьких. Часть девятая. Мультикаст
8.1 Сети для Самых Маленьких. Микровыпуск №3. IBGP
8. Сети для самых маленьких. Часть восьмая. BGP и IP SLA
7. Сети для самых маленьких. Часть седьмая. VPN
6. Сети для самых маленьких. Часть шестая. Динамическая маршрутизация
5. Сети для самых маленьких: Часть пятая. NAT и ACL
4. Сети для самых маленьких: Часть четвёртая. STP
3. Сети для самых маленьких: Часть третья. Статическая маршрутизация
2. Сети для самых маленьких. Часть вторая. Коммутация
1. Сети для самых маленьких. Часть первая. Подключение к оборудованию cisco
0. Сети для самых маленьких. Часть нулевая. Планирование

Основы компьютерных сетей
Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели
Основы компьютерных сетей. Тема №2. Протоколы верхнего уровня
Основы компьютерных сетей. Тема №3. Протоколы нижних уровней (транспортного, сетевого и канального)
Основы компьютерных сетей. Тема №4. Сетевые устройства и виды применяемых кабелей
Основы компьютерных сетей. Тема №5. Понятие IP адресации, масок подсетей и их расчет
Основы компьютерных сетей. Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP
Основы компьютерных сетей. Тема №7. Протокол связующего дерева: STP
Основы компьютерных сетей. Тема №8. Протокол агрегирования каналов: Etherchannel
Основы компьютерных сетей. Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP


Эмуляторы



http://www.dlink.ru/ru/arts/84.html
Эмуляторы интерфейса оборудования D-Link
http://tp-link.com.ua/support/tp-link-simulator/
http://demo.mt.lv/webfig/
https://vfsync.org/u/os/buildroot-x86
https://de0.tux.io/


Курсы



https://mva.microsoft.com/
http://www.specialist.ru/profession/microsoft-admin
http://www.specialist.ru/section/network-administration
Компьютерные сети
Основы сетей передачи данных

Основные протоколы интернет
Построение коммутируемых компьютерных сетей
IPv6 для профессионалов
НОУ «ИНТУИТ» Технопарк Mail.ru Group: Web-технологии
Администрирование почтовых серверов sendmail
Основы конфигурирования в системе "1С:Предприятие 8.0"
Основы разработки прикладных решений для 1С:Предприятие 8.1
https://github.com/ustu
Каналы передачи данных
Сетевое программирование
Основы Веб-программирования
Базы данных
ITVDN Курс SQL для начинающих - бесплатно! Давид Бояров
ITVDN Видео курс SQL Essential Давид Бояров
1000+ часов видео по Java на русском
Учебные курсы Кирилла Семаева
LPIC-1 exam-101 LPIC-1 exam-102
Андрей Созыкин Онлайн курс "Компьютерные сети"
coursera Нейронные сети и глубокое обучение
skillfactory Специалист по нейронным сетям
Видео лекций всего курса первой Школы разработки интерфейсов Яндекса
Презентации видеолекций

Видео


Программное обеспечение



Вместо бубна: огромная подборка инструментов сисадмина
Более чем 80 средств мониторинга системы Linux
Эмулятор большого провайдера
http://www.freshports.org/
http://www.chiark.greenend.org.uk/~sgtatham/putty/
https://launchpad.net/~llyzs/+archive/ubuntu/ppa
https://launchpad.net/~webupd8team/+archive/ubuntu/haguichi
Если не TeamViewer, то кот: почти два десятка аналогов популярного сервиса удалённого доступа
https://www.teamviewer.com/ru/
https://rustdesk.com/docs/en/
https://github.com/rustdesk/rustdesk-server
https://github.com/dchapyshev/aspia
https://null.la/
https://github.com/immense/Remotely
https://www.meshcommander.com/meshcentral2
http://www.uvnc.com/
http://www.tightvnc.com/
https://winscp.net/
https://www.wireshark.org/
https://nmap.org/
http://angryip.org/
http://3proxy.ru/
http://www.squid-cache.org/
http://wapmmc.codeplex.com/
https://www.gns3.com/software
https://www.virtualbox.org/
http://wtware.ru/
https://github.com/scarygliders/X11RDP-o-Matic
http://www.handybackup.ru/
http://helpme1c.ru/bekuper-1s-rezervnye-kopii-buxgalterii
http://www.webmin.com/
http://webacula.sourceforge.net/
https://hdd.by/victoria.html
Windows USB/DVD Download Tool
https://www.hirensbootcd.org/old-versions/
http://www.ultimatebootcd.com/
ERD Commander (Microsoft DaRT)
Windows Sysinternals
Disk2vhd
Cisco Network Assistant
http://www.clonezilla.org/
http://www.storelab-rc.ru/programs.htm
http://www.mhdd.ru/download.html
https://sourceforge.net/projects/processhacker/
https://www.hwinfo.com/
http://adminpe.ru/
https://www.gns3.com/
http://www.unetlab.com/download/index.html
https://sourceforge.net/projects/netdisco/
https://metacpan.org/pod/App::Netdisco
http://sleuthkit.org/autopsy/v2/
http://www.runtime.org/data-recovery-products.htm
http://www.cgsecurity.org/wiki/TestDisk_Download
http://www.cgsecurity.org/wiki/PhotoRec_RU
https://www.gnu.org/software/ddrescue/
https://sourceforge.net/projects/foremost/
http://rlab.ru/tools/rsaver.html
https://github.com/deemru/chromium-gost
https://www.cryptopro.ru/products/cpfox
http://www.cryptopro.ru/products/cades/plugin
Quintum Tenor Configuration Manager
https://standardnotes.org/
https://pexpect.readthedocs.io/en/stable/examples.html
Утилиты на PowerShell для системных администраторов
https://github.com/lazywinadmin/LazyWinAdmin_GUI
AI-Bolit
61 репозиторий для хакеров на Github
PentestBox — портативная сборка популярных security утилит

https://www.openshift.com/
https://www.heroku.com/pricing

https://github.com/255kb/stack-on-a-budget

http://matrix.org/

https://bitbucket.org/

https://live.sysinternals.com/
https://www.microfocus.com/en-us/products/vm-server-backup/overview
https://www.veeam.com/ru
https://www.manageengine.com/ru/desktop-central/
https://www.dameware.com/


Консоль



https://c9.io/
https://www.tutorialspoint.com/codingground.htm
https://www.tutorialspoint.com/unix_terminal_online.php
https://www.python.org/shell/
http://melpon.org/wandbox
http://ellcc.org/demo/index.cgi
https://httpie.org/run
http://http-prompt.com/

консольная подборка


Вопросы, ответы, решения



Public Route Servers and Looking Glass sites
https://social.technet.microsoft.com/Forums/ru-ru/home
http://hosting101.ru/more-providers.html
http://www.commandlinefu.com/commands/browse
http://www.shell-fu.org/lister.php?top
http://sysadmins.ru/
http://forum.ru-board.com/
https://codeby.net/forum/
http://forum.infostart.ru/forum86/
https://www.youtube.com/html5
http://html5test.com/
https://2ch.hk/s/
https://2ch.hk/pr/
https://2ch.hk/hw/

http://uzverss.livejournal.com/tag/сисадм
http://uzverss.livejournal.com/tag/cmd
http://uzverss.livejournal.com/tag/cisco
http://uzverss.livejournal.com/tag


Изображения



http://i.imgur.com/Xpok31V.png
http://risovach.ru/upload/2014/10/mem/muzhik-bleat_64813883_orig_.jpg
http://risovach.ru/upload/2014/01/mem/tyzhprogrammist_41224540_orig_.jpeg
http://s00.yaplakal.com/pics/pics_preview/5/3/9/569935.jpg
http://www.it-ep.ru/files/2012/08/23/small_c_za_edu.jpg
http://www.b-port.com/mediafiles/items/2013/07/110046/318038bf0cfd1e19b4ef1f686e44ad0c_XL.jpg
https://pbs.twimg.com/media/B54YxL2CcAA2ZRb.jpg


Игры



проверь, какой ты сисадмин
https://universe.openai.com/
https://screeps.com/
https://checkio.org/
http://www.codewars.com/?language=javascript
http://www.cyber-dojo.org/setup/show_exercises/?language=Javascript
https://codecombat.com/play
https://www.codingame.com/start
http://play.elevatorsaga.com/
https://screeps.com/
http://pencilcode.net/
https://alexnisnevich.github.io/untrusted/
http://www.hexinvaders.com/
http://flexboxfroggy.com/#ru
http://www.flexboxdefense.com/
http://www.dungeonsanddevelopers.com/
http://pixact.ly/
http://flukeout.github.io/
https://xss-game.appspot.com/


Разное



http://lurkmore.to/Админ
проверь, какой ты сисадмин
Если бы водителей нанимали по тем же критериям как и сисадминов...
Новогодний пост — БЕГИТЕ, глупцы!
https://web.archive.org/web/20150607094738/http://www.linux.org.ru/books/BOFH/
http://ithappens.me/
Кто на самом деле является администратором Windows?
https://another-it.ru/




развернуть

1. Python


открыть в браузере адреса
http://0.0.0.0:8080/ или http://localhost:8080/ или http://127.0.0.1:8080/
без указания порта запустит сервер на порту 8000

python -m SimpleHTTPServer
python3 -m http.server

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

запустить HTTP для всех локальных интерфейсов на порту 8080

python -m SimpleHTTPServer 8080 # python2
python3 -m http.server 8080

запустить в папке, где находится каталог cgi-bin, со сценарием cgi

python3 -m http.server 8080 --cgi

запускает сервер SMTP на порту 1025
python -m smtpd -n -c DebuggingServer localhost:1025

запустить сервер SMTP на стандартном порту 25
sudo python -m smtpd -n -c DebuggingServer localhost:25

Привязка любого номера порта ниже 1024 требует привилегии root, в таком случае используйте sudo перед командой

Twisted (Python)
$ twistd -n web -p 8000 --path .
или
$ python -c 'from twisted.web.server import Site; from twisted.web.static import File; from twisted.internet import reactor; reactor.listenTCP(8000, Site(File("."))); reactor.run()'

2. busybox httpd web server


busybox httpd --help # show available options

busybox httpd -p 127.0.0.1:8080 -h /var/www/ # start httpd
# busybox httpd -f -v -p 8080 # вариант

pkill busybox # to stop busybox httpd

по умолчанию BusyBox httpd связывает порт 80 со всеми доступными сетевыми интерфейсами и читает /etc/httpd.conf конфигурационный файл.

3. webfsd HTTP server


конфигурации webfsd хранятся в файле /etc/webfsd.conf

sudo apt-get install webfs # install webfs in Debian/Ubuntu

sudo service webfs start # start the webfs server

$ webfsd -F -p 8000

По умолчанию webfsd связывает порт 8000 со всеми доступными сетевыми интерфейсами с /var/www/html как корневую папку документов в Debian.

4. netcat as a simple web server


Netcat используется в основном для обслуживания только текстовых файлов через HTTP, полезных в целях мониторинга
Сохраните скрипт с любым именем если вы хотите использовать в сценарии, изменить его в соответствии с вашими потребностями, сделайте его исполняемым с chmod +x и запустите его



напишите в cat /var/www/index.html с тем, что вы хотите сделать, как /sbin/ifconfig eth0
чтобы остановить скрипт нажмите CTRL+C

5. php inbuilt web server



php -S 127.0.0.1:8080

php -S 127.0.0.1:8080 -t $HOME/dev/www

Если есть index.html или index.php файл, то он будет выполнен с помощью этого простого сервера PHP, теперь проверить его можно в вашем веб-браузере.

########################################################################

JS + Node


http://www.nodebeginner.ru/
https://metanit.com/web/nodejs/3.1.php

Создайте файл server.js в корневой директории вашего проекта и поместите туда следующий код:



выполните ваш скрипт в Node.js:
node server.js

http-server (Node.js)
$ npm install -g http-server # install dependency
$ http-server -p 8000

Примечание: Этот сервер делает странные вещи с относительными путями. Например, если у вас есть файл /tests/index.html, он загрузит index.html, если вы перейдете в /test, но будет обрабатывать относительные пути так, как будто они исходят из /.

node-static (Node.js)
$ npm install -g node-static # install dependency
$ static -p 8000

Go


https://metanit.com/go/web/1.1.php
Базовый веб сервер на Go
Простейший веб-сайт на Go

Создайте файл server.go в корневой директории вашего проекта и поместите туда следующий код:



выполните ваш скрипт
go run server.go

https://funprojects.blog/2021/04/11/a-web-server-in-1-line-of-bash/

Bash




Веб-сервер Bash, вызывающий команды Bash



Пример использования заголовков figlet, а также датчиков и утилиты vmstat:




https://gist.github.com/willurd/5720255

Ruby


$ ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start'

Ruby 1.9.2+
$ ruby -run -ehttpd . -p8000

adsf (Ruby)
$ gem install adsf # install dependency
$ adsf -p 8000

Sinatra (Ruby)
$ gem install sinatra # install dependency
$ ruby -rsinatra -e'set :public_folder, "."; set :port, 8000'

Perl


$ cpan HTTP::Server::Brick # install dependency
$ perl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick->new(port=>8000); $s->mount("/"=>{path=>"."}); $s->start'

Plack (Perl)
$ cpan Plack # install dependency
$ plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root=>".");' -p 8000

Mojolicious (Perl)
$ cpan Mojolicious::Lite # install dependency
$ perl -MMojolicious::Lite -MCwd -e 'app->static->paths->[0]=getcwd; app->start' daemon -l http://*:8000

Erlang


$ erl -s inets -eval 'inets:start(httpd,[{server_name,"NAME"},{document_root, "."},{server_root, "."},{port, 8000},{mime_types,[{"html","text/html"},{"htm","text/html"},{"js","text/javascript"},{"css","text/css"},{"gif","image/gif"},{"jpg","image/jpeg"},{"jpeg","image/jpeg"},{"png","image/png"}]}]).'

Java


jwebserver -p 8080


IIS Express
C:\> "C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:C:\MyWeb /port:8000


https://fixmynix.com/create-instant-lightweight-web-server-command-line/
http://uzverss.livejournal.com/33187.html#www
Как сделать простой веб-сайт за один час
Расшариваем веб-сайт на localhost в глобальную сеть интернет.



1. Чтобы иметь возможность использовать скрипт, для начала установите библиотеки libnotify-bin (для того, чтобы скрипт мог отправлять оповещения рабочего стола), wget (для получения перевода фразы через Google) и xsel (для получения текущего выбранного текста). В Ubuntu, Linux Mint и прочих дистрибутивах вы можете установить их с помощью следующей команды в вашем терминале (чтобы открыть его, используйте комбинацию клавиш Ctrl+Alt+T):

sudo apt-get install libnotify-bin wget xsel
Read more... )




FreeBSD 10.2
Добавляем в файл /boot/loader.conf

kern.vty=vt

Добавляем в файл /etc/rc.conf способ переключения раскладки в консоли клавишами CTRL+SHIFT

keymap="ru.win"

Проверяем тип консоли в файле /etc/ttys, должно быть xterm

ttyv0 "/usr/libexec/getty Pc" xterm on secure

Редактируем класс «russian» в файле /etc/login.conf, должно получиться следующее:
russian|Russian Users Accounts:\
       :charset=UTF-8:\
       :lang=ru_RU.UTF-8:\
       :tc=default:

Обновляем /etc/login.conf.db командой:

cap_mkdb /etc/login.conf

Локализуем shell, я использую tcsh, для него редактируем файл ~/.cshrc, добавив в него две следующие строки:

setenv LANG ru_RU.UTF-8
setenv MM_CHARSET UTF-8

Пользователю необходимо прописать класс russian, командой:

pw user mod user_name -L russian

Где user_name — имя пользователя

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

pw useradd user_name -L russian

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

FreeBSD 12
https://alexnettm.com/freebsd/russifikatsiya-freebsd-perevodim-konsol-na-utf-8.html
В файле etc/ttys для каждого имени терминала ttyv0-ttyv7, указать тип cons25r, вместо xtermon (чтобы перечитался /etc/ttys)

/etc/rc.d/syscons restart
/etc/login.conf:

russian|Russian Users Accounts:
:charset=UTF-8:
:lang=ru_RU.UTF-8:
:tc=default:

login.conf — это база данных описывающая классы пользователей ОС. Если точнее, то это текстовый файл описывающий конфигурацию базы данных /etc/login.conf.db. Для применения изменений в login.conf.db необходимо после правки файла login.conf воспользоваться программой cap_mkdb:
# cap_mkdb /etc/login.conf

Изменяем данные пользователя root, применяем к нему класс russian
# pw usermod -n $username -L russian

Если используется другой шелл:
/etc/csh.cshrc:

setenv LANG ru_RU.UTF-8
setenv LC_CTYPE ru_RU.UTF-8
setenv LC_COLLATE POSIX
setenv LC_ALL ru_RU.UTF-8

/etc/profile:

(bash)
LANG="ru_RU.UTF-8"; export LANG
LC_CTYPE="ru_RU.UTF-8"; export LC_CTYPE
LC_COLLATE="POSIX"; export LC_COLLATE
LC_ALL="ru_RU.UTF-8"; export LC_ALL

/root/.cshrc:
(руту русификации не положены)

setenv LANG C
setenv LC_CTYPE C
setenv LC_COLLATE POSIX
setenv LC_ALL C

Если будем монтировать ntfs раздел /etc/fstab:
# NTFS data
/dev/ad0s4 /mnt/data1 ntfs-3g default,rw,locale=ru_RU.UTF-8 0 0

Из консоли можно так:
# mount_ntfs -C UTF-8 /dev/ad0s4 /mnt/data # только чтение
# mount_ntfs-3g /dev/ad0s4 /mnt/winda -o deafult,rw,locale=ru_RU.UTF-8 # чтение и запись

Перед подключением ntfs раздела нужно установить порт fusefs-ntfs

# cd /usr/ports/sysutils/fusefs-ntfs
# make install clean


Настройка раскладки клавиатуры в иксах
https://www.freebsd.org/doc/handbook/x-config.html

/usr/local/etc/X11/xorg.conf.d/kbd-layout-multi.conf



FreeBSD 12 xrdp
FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD
xrdp_keyboard.ini



В пользовательской директории создаем файл .startwm.sh с таким содержимым:



Добавляем в /etc/rc.conf

xrdp_enable="YES"
xrdp_sesman_enable="YES"

И запускаем, service xrdp allstart, которая запустит ещё и сервис xrdp_sessman.

ошибки
не видит мыши и тд
bsdconfig

http://huntzp.blogspot.com/2019/02/freebsd_4.html
Ошибка при запуске MC
common.c: unimplemented subshell type 1
read (subshell_pty...): ...
проверить
export $SHELL
если /bin/sh изменить на /bin/csh командой
chsh -s /bin/csh root
перезайти

pkg
https://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/pkgng-intro.html
https://eax.me/freebsd-packages/
при первом запуске pkg без параметров вы скорее всего увидите такое сообщение:
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]:
Отвечаем утвердительно, и ждем, пока pkg установится.

Затем читаем справку:
pkg help

Посмотреть справку по конкретной команде можно так:

pkg help update
Обновляем информацию о доступных пакетах:
pkg update

Смотрим список установленных пакетов:
pkg info

Обновляем установленные пакеты:
pkg upgrade

Ищем пакет по названию:
pkg search xorg

Установка пакета/пактетов и всех его/их зависимостей:
pkg install xorg
pkg install git-lite vim-lite sudo

Удаляем пакет:
pkg delete xorg

Удаляем пакеты, которые больше не нужны:
pkg autoremove

Смотрим, к какому пакету относится файл:
pkg which /usr/local/bin/git

Посмотреть полный список файлов в пакете можно так:
pkg info -l mesa-demos

Загружаем базу известных уязвимостей:
pkg audit -F

Проверяем установленные пакеты на предмет наличия известных уязвимостей, с ссылками на подробные отчеты:
pkg audit

Проверяем все установленные пакеты на предмет валидности контрольных сумм входящих в пакеты файлов:
pkg check -s -a

Проверяем все установленные пакеты на предмет отсутствия требуемых зависимостей:
pkg check -d -a

Удаляем из кэша старые пакеты:
pkg clean

Смотрим статистику:
pkg stats

Запрещаем/разрешаем обновление конкретного пакета:
pkg lock syncthing
pkg unlock syncthing

Посмотреть список «залоченых» пакетов:
pkg lock -l

Откатиться к более старой версии пакета:
sudo pkg remove chromium
sudo pkg install /var/cache/pkg/chromium-51.0.2704.106_2.txz

ссылки
https://alexnettm.com/freebsd/russifikatsiya-freebsd-perevodim-konsol-na-utf-8.html
https://forum.lissyara.su/pro-sajt-f14/freebsd-xrdp-wine-ili-terminal-nyj-server-dlya-1s--t45856.html
https://rtfm.co.ua/freebsd-start-stop-restart-network-and-routing-service/
https://www.freebsd.org/doc/handbook/x-config.html
http://blog.marvins.ru/administrirovanie/utf-8-v-konsoli-i-terminale-freebsd-10-2.html
http://www.linux.org.ru/forum/general/11209349/page1?lastmod=1423946536868#comment-11321679
http://unix1.jinr.ru/~lavr/vt/vtcons.html
http://pascal.tsu.ru/unix/syscons/russian.html
http://www.ntwk.ru/docs/freebsd/handbook/book.html
https://www.freebsd.org/cgi/man.cgi?query=vt&sektion=4
https://cooltrainer.org/a-freebsd-desktop-howto/

Сайт commandlinefu.com создан для сбора полезных команд Linux-терминала, которые хочется использоваться снова и снова. О многих вы могли даже ничего не знать, но увидев наверняка подумаете: «Круто! А что, так можно было?»

Read more... )
https://tproger.ru/articles/cool-linux-commands/



ProfHelp КОМАНДНАЯ СТРОКА. СПРАВОЧНИК АДМИНИСТРАТОРА
scriptcoding.ru Архивы рубрики Командная строка
Командная строка Microsoft Windows
Командная строка cmd
Командная строка Linux и сценарии оболочки Ричард Блум, Кристина Бреснахэн 2012
Командная строка Linux и автоматизация рутинных задач Колисниченко Денис 2012
Командная строка Linux. Полное руководство Уильям Шоттс 2017
habrahabr.ru Подводные камни Bash
Работа с архиваторами (tar, zip, gz, bzip2) из консоли Linux
youtube.com Lenar Bashirov Командная строка. Администрирование Windows
github.com Искусство командной строки
Очень полезные команды Linux на одном листе
Справочник основных команд Linux с примерами
http://uzverss.livejournal.com/58699.html
Соответствие команд MS DOS командам Linux
http://uzverss.livejournal.com/53228.html
ab57.ru Настройка командной строки Windows.
http://uzverss.livejournal.com/37412.html
ab57.ru Список команд Windows ( Windows CMD )
Самый полный справочник по параметрам командной строки Windows
Средства командной строки
Windows Script Host (WSH)

PDF-версия статей про Bash-скрипты
Скачать PDF-версию
доступ к переводу в GoogleDocs
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит
[в закладки] PDF-версия статей про Bash-скрипты

Оболочка Bash — шпаргалка для начинающих
Перенаправления в bash
Подводные камни Bash
18 отборных однострочных команд Linux
uzverss Искусство программирования на языке сценариев командной оболочки
uzverss Список команд Windows ( Windows CMD )
Разработка консольных приложений и автоматизация задач на PHP: старый добрый язык как знакомая замена Bash
uzverss консоль python в роли командной строки













http://www.linux.org.ru/forum/admin/4493387




консоль python в роли командной строки часть 1

заглянуть

Работа с WWW



сервер
запускает HTTP для всех локальных интерфейсов на порту 8080
python -m SimpleHTTPServer 8080 # python2
python3 -m http.server 8080

python3 -m http.server 8080 --cgi # запустить в папке, где находится каталог cgi-bin
# со сценарием cgi

открыть в браузере адреса
http://0.0.0.0:8080/ или http://localhost:8080/ или http://127.0.0.1:8080/

python -m SimpleHTTPServer # без указания порта запустит сервер на порту 8000
python3 -m http.server

запускает сервер SMTP на порту 1025
python -m smtpd -n -c DebuggingServer localhost:1025
запустить сервер SMTP на стандартном порту 25
sudo python -m smtpd -n -c DebuggingServer localhost:25

http://rus-linux.net/nlib.php?name=/MyLDP/consol/oneliners.html

работа с http

import webbrowser
webbrowser.open('http://www.habrahabr.ru/') # открыть ссылку в браузере
webbrowser.open(u'file://home/user/mysite.html')
webbrowser.open(u'mailto:foo@bar.com?subject=Feedback%20message') # открыть почтовый клиент создать письмо
http://habrahabr.ru/post/62383/
если нет модуля webbrowser то
apt-get install python-pip python3-pip
pip install webbrowser
http://rtfm.co.ua/python-utilita-pip-pypi/
http://asvetlov.blogspot.ru/2014/05/pip.html
import urllib2
urllib2.urlopen('http://www.example.com/').read()
# скачать файл по протоколу http

работа с ftp

from ftplib import FTP
f = FTP('ftp.gnu.org')
f.login('','') # f.login('login', 'password')
for x in f.nlst()[:9]: print(x)
L = []
f.dir(L.append)
for x in L[:15]: print(x)
f.nlst()
f.dir()
f.nlst()[17]
remotefiles=f.nlst()[17]
localdir = '/home/user/path/'
localpath = os.path.join(localdir, remotefiles)
localfile = open(localpath, 'wb')
f.retrbinary('RETR ' + remotefiles, localfile.write)
localfile.close()
import os
os.listdir()

pypi install wget
import wget
wget.download("http://www.python.org/")


Экранирование тегов html



>>> import cgi
>>> cgi.escape('a < b > c & d "spam"', 1)
'a &lt; b &gt; c &amp; d &quot;spam&quot;'
>>> s = cgi.escape("1<2 <b>hello</b>")
>>> s
'1&lt;2 &lt;b&gt;hello&lt;/b&gt;'
>>>
>>> import html
>>> html.escape('a < b > c & d "spam"', 1)
'a &lt; b &gt; c &amp; d &quot;spam&quot;'
>>> s = html.escape("1<2 <b>hello</b>")
>>> s
'1&lt;2 &lt;b&gt;hello&lt;/b&gt;'

>>> import cgi, html.parser
>>> s = cgi.escape("1<2 <b>hello</b>")
>>> s
'1&lt;2 &lt;b&gt;hello&lt;/b&gt;'
>>>
>>> html.parser.HTMLParser().unescape(s)
'1<2 <b>hello</b>'
>>>
>>> import html, html.parser
>>> s = html.escape("1<2 <b>hello</b>")
>>> s
'1&lt;2 &lt;b&gt;hello&lt;/b&gt;'
>>> html.parser.HTMLParser().unescape(s)
'1<2 <b>hello</b>'

>>> import urllib.parse
>>> urllib.parse.quote("a & b #! c")
'a%20%26%20b%20%23%21%20c'
>>> urllib.parse.quote_plus("C:\stuff\spam.txt")
'C%3A%5Cstuff%5Cspam.txt'
>>> x = urllib.parse.quote_plus("a & b #! c")
>>> x
'a+%26+b+%23%21+c'
>>> urllib.parse.unquote_plus(x)
'a & b #! c'


Экранирование адресов URL



>>> import urllib.parse
>>> b='http://lurkmore.to/Монти_Пайтон'
>>> urllib.parse.quote(b)
'http%3A//lurkmore.to/%D0%9C%D0%BE%D0%BD%D1%82%D0%B8_%D0%9F%D0%B0%D0%B9%D1%82%D0%BE%D0%BD'
>>> d=urllib.parse.quote(b)
>>> d
'http%3A//lurkmore.to/%D0%9C%D0%BE%D0%BD%D1%82%D0%B8_%D0%9F%D0%B0%D0%B9%D1%82%D0%BE%D0%BD'
>>> urllib.parse.unquote(d)
'http://lurkmore.to/Монти_Пайтон'


Экранирование адресов URL с якорями
python3
>>>
>>> import urllib.parse
>>> s='http://lurkmore.to/%D0%9A%D0%BE%D0%BF%D0%B8%D0%BF%D0%B0%D1%81%D1%82%D0%B0:Python#.D0.9E.D1.80.D0.B8.D0.B3.D0.B8.D0.BD.D0.B0.D0.BB'
>>> (a,b)=s.split('#')
>>> a
'http://lurkmore.to/%D0%9A%D0%BE%D0%BF%D0%B8%D0%BF%D0%B0%D1%81%D1%82%D0%B0:Python'
>>> b
'.D0.9E.D1.80.D0.B8.D0.B3.D0.B8.D0.BD.D0.B0.D0.BB' 
>>> b=b.replace('.','%')
>>> b
'%D0%9E%D1%80%D0%B8%D0%B3%D0%B8%D0%BD%D0%B0%D0%BB' 
>>> j=a+'#'+b
>>> j
'http://lurkmore.to/%D0%9A%D0%BE%D0%BF%D0%B8%D0%BF%D0%B0%D1%81%D1%82%D0%B0:Python#%D0%9E%D1%80%D0%B8%D0%B3%D0%B8%D0%BD%D0%B0%D0%BB'
>>> 
>>> l=urllib.parse.unquote(j)
>>> l
'http://lurkmore.to/Копипаста:Python#Оригинал'



Почтовые вложения и ссылки base64



>>> import base64
>>> base64.b64decode('aHR0cDovLzR1ZnJlZS50ay9tZWRpYTcyMzY0Ni9mdWVuZi8wMzYubXAz')
b'http://4ufree.tk/media723646/fuenf/036.mp3' 



Шифрование



a ^ b ^ b == a

>>> 1925^99
2022
>>> 2022^99
1925

шифрование искажение символов (простое)
sys.stderr.write('using simple\n')
adder = 1
def do_encode(pswd):
    pswd = 'vs' + pswd + '48'
    res = ''
    for char in pswd:
        res += chr(ord(char) + adder) # увеличить каждый код ASCII
    return str(res)
def do_decode(pswd):
    pswd = pswd[2:-2]
    res = ''
    for char in pswd:
        res += chr(ord(char) - adder)
    return res

http://pythonlearn.ru/без-рубрики/shifrovanie-strok-s-pomoshhyu-modulya-hashlib-python/
>>> import hashlib
>>> h = hashlib.sha1(b"password")
>>> h = hashlib.sha1()
>>> h.update(b"password")
>>> h = hashlib.sha1(b"password")
>>> h.digest()
'[\xaaa\xe4\xc9\xb9??\x06\x82%\x0bl\xf83\x1b~\xe6\x8f\xd8'
>>> h.hexdigest()
'5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8'

>>> import hashlib
>>> h = hashlib.md5(b"password")
>>> p = h.hexdigest()
>>> p
'5f4dcc3b5aa765d61d8327deb882cf99'
>>> p    # Пароль, сохраненный в базе
'5f4dcc3b5aa765d61d8327deb882cf99'
>>> h2 = hashlib.md5(b"password")   # Пароль, введенный пользователем
>>> if p == h2.hexdigest(): print("Пароль правильный")
... 
Пароль правильный

http://ivinside.blogspot.ru/2012/04/aes-pycrypto.html
from Crypto.Cipher import AES
import base64
import os
# размер блока шифрования
BLOCK_SIZE = 32
# символ, использующийся для дополнения шифруемых данных
# до размера, кратного 32 байтам
PADDING = '{'
# функция дополнения
pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING
# функции шифрования и расшифрования
# результат дополнительно обертывается в base64
EncodeAES = lambda c, s: base64.b64encode(c.encrypt(pad(s)))
DecodeAES = lambda c, e: c.decrypt(base64.b64decode(e)).rstrip(PADDING)
# генерируем ключ
secret = os.urandom(BLOCK_SIZE)
# создаем объект
cipher = AES.new(secret)
# шифруем строку
encoded = EncodeAES(cipher, 'password')
print 'Encrypted string:', encoded
# расшифровываем строку
decoded = DecodeAES(cipher, encoded)
print 'Decrypted string:', decoded


Простое шифрование с openssl
http://www.py-my.ru/post/554f1ca43ad2ff04ff2d41ba
Шифруем:
openssl aes-256-cbc -in input_file -out output_file
Дешифруем:
openssl aes-256-cbc -d -in input_file -out output_file
При выполнении запрашивается пароль.


Изображения



мануал

Pillow
$ pip install Pillow
from PIL import Image, ImageFilter
# Считываем изображение
im = Image.open( 'image.jpg' )
# Показываем изображение
im.show()
# Применяем фильтр к изображению
im_sharp = im.filter( ImageFilter.SHARPEN )
# Сохраняем отфильтрованное изображение в новый файл
im_sharp.save( 'image_sharpened.jpg', 'JPEG' )
# Разбиваем изображение на соответствующие bands (то есть на красный, зеленый # и синий для RGB) r,g,b = im_sharp.split()
# Просматриваем данные EXIF, встроенные в изображение
exif_data = im._getexif() exif_data

Как легко вырезать фон на изображении с помощью Python
# pip install rembg pillow
from rembg import remove
from PIL import Image
input_path = "in.png"
output_path = "out.png"
input = Image.open(input_path)
output = remove(input)
output.save(output_path)

python rembg - изменить цвет фона
это даст вам вывод с полностью красным фоном.
removeim = remove(im,bgcolor=[255,0,0,255])
измените bgcolor=[255,0,0,255] на bgcolor=[0,255,0,255], чтобы получить полностью зеленый фон.


cv2
распознавание лиц в реальном времени, видео в реальном времени
https://github.com/Itseez/opencv/blob/master/samples/python/facedetect.py

http://tinyurl.com/opencv3-py-tutorial
http://tinyurl.com/opencv3-py3-ubuntu
http://tinyurl.com/opencv3-py3-anaconda

from cv2 import * import numpy as np
# Считываем изображение img = cv2.imread('testimg.jpg')
# Показываем изображение
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
# Применяем к изображению фильтр Grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Сохраняем отфильтрованное изображение в новый файл
cv2.imwrite('graytest.jpg',gray)

Scikit-Image
http://scikit-image.org/docs/dev/auto_examples/


Разные модули



модуль Wget
https://pypi.python.org/pypi/wget
>>> import wget
>>> wget.download("http://www.python.org/")
или
python -m wget [options]

модуль xonsh
http://xon.sh/
Xonsh is a Python-ish, BASHwards-looking shell language and command prompt.


модуль sh
http://amoffat.github.io/sh/
>>> from sh import tar
>>> tar("cvf", "/tmp/test.tar", "/my/home/directory/")

>>> from sh import ls
>>> print(ls("/"))

>>> from sh import ifconfig
>>> print(ifconfig("wlan0"))

>>> from sh import find
>>> find("/tmp")

psutil
https://github.com/giampaolo/psutil
>>> import psutil
>>> psutil.cpu_times()
>>> psutil.virtual_memory()
>>> psutil.swap_memory()
>>> psutil.disk_partitions()
>>> psutil.disk_usage('/')
>>> psutil.net_io_counters(pernic=True)
>>> psutil.net_connections()
>>> psutil.net_if_addrs()
>>> psutil.net_if_stats()
>>> psutil.users()
....................

PyAutoGui модуль управления компьютером
pip install pyautogui

import pyautogui as pg

# Получение позиции мыши и вывод в консоль
print(pg.position())

# Передвижение мыши
pg.move(50, 50, duration=0.5)
pg.moveTo(150, 200, 0.5) # Передвигаем к точке относительно экрана

# Нажатие мышкой по определенной точке
pg.click(769, 101)
pg.doubleclick(769, 101) # двойное нажатие
pg.rightclick(769, 101) # нажатие правой кнопкной мыши
pg.leftclick(769, 101) # нажатие левой кнопкной мыши

# Ввод текста
pg.typewrite("itproger.com")
# Выполнения нажатия на клавишу
pg.typewrite(["enter"])

# Выполнения нажатия на сочетание клавиш
pg.hotkey("winleft")
pg.hotkey("winleft", "up")
pg.hotkey("ctrl", "t")

# Вызов различных всплывающих окон
pg.alert("Окно с информацией", "Название окна", button="Текст на кнопке")
age = pg.prompt("Укажите возраст: ", "Название окна")
print(age)
pg.confirm("Вам больше 18?", "Название окна", ("Да, точно", "Нет"))
pg.password("Введите пароль", "Название окна")

# Создание скриншота
pg.screenshot("yourPic.png")

# Мини программа
website = pg.prompt("Введите название сайта:", "Веб сайт", "https://")
pg.click(769, 101)
pg.typewrite(website)
pg.typewrite(["enter"])
pg.screenshot("yourPic.png")



Отладка в python через консоль



href="http://www.py-my.ru/post/4e37737b1d41c8451b000002

Запуск скрипта в отладчике

$ python -m pdb script.py

Либо можно прописать запуск отладчика в самом скрипте, для этого нужно добавить код

import pdb
pdb.set_trace()
Команды
help       Список команд
list	   Отображение листинга, отображает точки останова - "B" в начале строки
list s,e   Часть листинга: s - начальная строка, e - конечная строка
next	   Выполнить следующую команду текущего метода
step	   Выполнить следующую команду со входом внутрь методов
return	   Выполнить текущий метод до конца
until	   Выполнить до конца метода/цикла
args	   Вывести список локальных переменных
locals()   Отображение текущей области видимости (команда не отладчика)
quit	   Выйти из отладчика
where	   Определить текущее местоположение
up	   Перемещение по стеку вверх
down	   Перемещение по стеку вниз
p value	   Вывести на экран значение (print)
pp value   Более красивый вывод на экран
!command   Выполнить произвольную команду
jump       Перейти на строку (выполнить до строки)
run [ 'script.py', 'a', 'b', 'c']	Перезапуск скрипта с параметрами
alias pl pp %1	Создать алиас команды, %1 - входящий параметр
unalias pl	Удаление алиаса

Точки останова
break	        Просмотр установленных т.о. и их номеров
disable 1	Отключить т.о. по номеру
enable 1	Включить т.о. по номеру
break 15	Установить т.о. на указанной строке
break foo	Установить т.о. на методе
break ../script2.py:15	Установить т.о. в другом файле
break 15, i>7	Установить т.о. с условием
condition 1 i>0	Назначить условие на существующую т.о.
tbreak 15	Временная т.о., удаляется при достижении
continue	Продолжить выполнение скрипта
clear	        Удалить все т.о.
clear 1	        Удалить т.о. под номером 1
ignore 1 10	Установка счетчика "не срабатывания", для т.о. 1, пропустить 10 остановок
commands 1
...
end	        Создать сценарий для т.о. 1

Настройки по умолчанию можно сохранить в файле ~/.pdbrc и ./.pdbrc (последний переопределяет настройки первого)

Кратко в деталях
https://unixhow.com/3849/kak-zapustit-python-skript-v-rezhime-otladki
Вам нужно запустить ваш скрипт на пайтоне, используя модель pdb (Python Debug):

python -m pdb merge_lists.py

Увидите нечто такое:

python -m pdb merge_lists.py
> /Users/and3001/Documents/Personal/Coding/Python/merge_lists.py(3)()
-> my_list     = [3, 4, 6, 10, 11, 15]
(Pdb)

Что бы продолжить работу, нажмите n (next). Так пошагово разберете все шаги вашего скрипта.

(Pdb) n
> /Users/and3001/Documents/Personal/Coding/Python/merge_lists.py(4)()
-> alices_list = [1, 5, 8, 12, 14, 19]
(Pdb)

Что бы выйти, нажмите q


Разное



выполнение строки
python3 -c "print(bin(255))"
echo "print(bin(255))" |python3

документация по модулям
pydoc -p 8080
http://localhost:8080/

вывод AST и cкомпилированного кода в веб-интерфейсе
$ pip install instaviz
vi test.py


python3 test.py

printf
https://stackoverflow.com/questions/63627692/making-the-printf-function-of-c-into-python
https://stackoverflow.com/questions/19457227/how-to-print-like-printf-in-python3
импорт из Си

import ctypes
libc = ctypes.cdll.LoadLibrary("libc.so.6")
printf = libc.printf
printf(b'num: %d, txt: %s\n', 42, b'Hello World') # b' - обязательно

импорт из sys

import sys
def printf(format, *args):
    sys.stdout.write(format % args)

printf('num: %d, txt: %s\n', 42, 'Hello World')

сделать функцию

def printf(text, *args):
    print(text % args)

printf('num: %d, txt: %s\n', 42, 'Hello World')


привести код в порядок
python3 -m pip install flake8
flake8 myscript.py # проверить как и где именно нарушается стиль

python3 -m pip install black
black --check myscript.py # проверить будет ли black изменять файл
black --diff myscript.py # показать изменения
black myscript.py # отформатировать

показать текущее время с датой
>>> impotr time
>>> time.ctime(time.time())
>>> time.asctime()

Uuid

>>> import uuid
>>> print uuid.uuid4()
# e7bafa3d-274e-4b0a-b9cc-d898957b4b61

Progressbar


узнать все зарезервированные слова
>>> import keyword
>>> keyword.kwlist

li=[]
if not li: print "empty" # проверить список на пустоту

"12345".zfill(10) # дополнить строку нулями

hasattr(a,'attributename') # узнать имеет ли объект атрибут в Python?

сделать отсортированный список по значениям из cловаря

newlist = sorted(list_to_be_sorted, key=lambda k: k['name'])

разбить список на части одинакового размера
def chunks(l, n):
    for i in xrange(0, len(l), n):
        yield l[i:i+n]


выполнить код в зависимости от версии интерпретатора
import sys
import __future__

if sys.version_info[0] == 2:
    # Python 2 code
else:
    # Python 3 code

или
if sys.version[:1] == '2':
    # Python 2 code
else:
    # Python 3 code


найти файл либы
аналог
ldconfig -p |grep udev

import ctypes.util
ctypes.util.find_library("udev")

в сборке с musl не работает, поэтому патч
https://git.alpinelinux.org/aports/tree/main/python3/musl-find_library.patch

Поймать несколько исключений в одной строке
except (Exception1, Exception2) as e: pass

http://www.user.su/Основы_Python
http://jenyay.net/Programming/Python

легендарный FuzzBuzz
https://megamozg.ru/post/23556/
https://megamozg.ru/post/10308/
В поисках компактного FizzBuzz на Python
a = list(range(1, 101))
for i in a:
    if i%15 == 0: print(i, 'FuzzBuzz')
    if i%3 == 0 and i%15!=0: print(i, 'Fuzz')
    if i%5 == 0 and i%15!=0: print(i, 'Buzz')

Начнём со стандартного, классического решения:
for i in range(1, 101):
    if i%3==0 and i%5==0:
        print('FizzBuzz')
    elif i%3==0:
            print('Fizz')
    elif i%5==0:
            print('Buzz')
    else:
        print(i)

Укладываем стандартное решение в стандартный однострочник
print('\n'.join('FizzBuzz' if i%3==0 and i%5==0 else 'Fizz' if i%3==0 else 'Buzz' if i%5==0 else str(i) for i in range(1, 101)))

Избавляемся от Join, приручаем Print
[print('FizzBuzz' if i%3==0 and i%5==0 else 'Fizz' if i%3==0 else 'Buzz' if i%5==0 else i) for i in range(1, 101)]

Добавляем срез, укрощаем if else
[print('FizzBuzz'[4 if i%3 else 0:4 if i%5 else 8] or i) for i in range(1, 101)]

Оптимизируем срез, избавляемся от if else
[print('FizzBuzz'[i*i%3*4:8--i**4%5] or i) for i in range(1, 101)]

Сократили неплохо. Но, похоже с этой вариацией дальше не продвинуться. Пробуем иной вариант.
Заменяем срез конкатенацией, вертаем оператор modulo
[print('Fizz'*(i%3==0)+'Buzz'*(i%5==0) or i) for i in range(1, 101)]

Оптимизируем решение. Выравниваем по длине со срезом
[print((i%3<1)*'Fizz'+(i%5<1)*'Buzz' or i) for i in range(1, 101)]

Уходим в отрыв. Модифицируем окончательный вариант
[print(i%3//2*'Fizz'+i%5//4*'Buzz' or i+1) for i in range(100)]

А если избавиться от списка, будет ещё короче и, возможно, быстрее:
for i in range(100):print(i%3//2*'Fizz'+i%5//4*'Buzz'or i+1)




pyperclip
взято тут
видеоуроки по теме

pip3 install pyperclip




Занимательные фигуры на Python в одну строку
странности
(Link)
>>> type( {} ),type( { () } )
(, )

>>> 1, + 2,
(1, 2)

>>> (1,) + (2,)
(1, 2)

>>> (1,) + 2,
Traceback (most recent call last):
File "<input ... >", line 1, in 
(1,) + 2

>>> __ = [1,2]; _= range(5);[_ for _ in _ if _ not in __]
[0, 3, 4]

>>> __
[1, 2]



Кристиан Майер «Однострочники Python» 2022
https://github.com/finxter/PythonOneLiners



консоль python в роли командной строки часть 2

заглянуть

Модули



Шоу Энтони «Внутри CPython» 2023

узнать конфигурацию сборки python
python3 -m sysconfig

документация по модулям
pydoc -p 8080
http://localhost:8080/

импорт из github.com
https://github.com/nvbn/import_from_github_com
pip install import_from_github_com

чтобы загрузить модуль нужно его импортировать: import модуль, например
import os
удалить модуль (или переменную)
del os

узнать все модули:
pydoc3 -b
pydoc -b

или вбить в консоли python
help('modules')
pip freeze

узнать что входит в модуль:
import sys
sys. # нажать на Tab

узнать где расположен файл с модулем
import модуль
print(модуль.__file__)

Встроенные функции Python содержатся в модуле __builtin__(импортировать его для использования функций не нужно):
dir(__builtins__)
__builtins__. # нажать на Tab

В возвращаемом функцией dir() списке не содержится встроенных функций и переменных. Если вы хотите получить их список, то они определены в стандартном модуле builtins
builtins - встроенные модули, у которых отсутствует имя файла
>>> import builtins
>>> dir(builtins)
>>> import pprint, sys
>>> pprint.pprint(sys.modules)
>>> pprint.pprint(sys.path)

sys.path представляет собой список файловых путей, в которых лежат модули
интерпретарор ищет модули вначале в текущем каталоге, а затем в каталогах, указанных в переменной окружения PYTHONPATH

Получаем список переменных внутри функции
>>> print(locals())
>>> print(globals())
Функция locals() возвращает словарь переменных из текущего пространства имён Ключи словаря — названия переменных, а значения — это их значения.
С помощью похожей функции globals() можно получить все переменные конкретного модуля в таком же виде


пути загрузки модулей
import sys
print(sys.path)

автоматический путь к каталогу с модулями
import sys
sys.path.append(f"/usr/lib/python{sys.version_info.major}.{sys.version_info.minor}/mprdaemon")

import platform
print(f'/usr/lib/python{platform.python_version()[:3]}/distutils') # каталог distutils дан для примера
sys.path.append(f'/usr/lib/python{platform.python_version()[:3]}/distutils')

Откуда грузятся модули?
__import__
sys.modules
sys.path
.pth файлы
sys.meta_path
sys.path_hooks
sys.path_import_cache
http://pep8.ru/doc/tutorial-3.1/6.html
http://asvetlov.blogspot.ru/2010/05/2.html

Решение проблем с модулями и пакетами Python

impotr time
time.ctime(time.time()) # показать текущее время с датой
time.asctime()

import os
os.system('команда') # запустит команду, напр. os.system('mc')
os.getcwd() # узнать местонахождение
os.chdir('/home') # переместится в /home
os.listdir('/usr/src') # узнать что находится в /usr/src
print os.path.isfile('fname') # проверить, существует ли файл
os.stat('/home/user/2') # узнать сведения о файле или каталоге /home/user/2
os.path.getsize('/home/user/path/hello.txt') # узнать размер файла
list(os.popen('du -sh /home/user/path')) # узнать размер каталога path
os.mkdir('/home/user/path') # создать каталог /home/user/path
os.makedirs('/home/user/path/1/1/1/1') # Создать каталог и промежуточные каталоги
os.rmdir('/home/user/path') # удалить каталог /home/user/path
os.removedirs('/home/user/path/1/1/1/1') # автоматически удалит все пустые родительские каталоги (~/1/1/1)
os.remove('/home/user/path/hello.txt') # удалит файл hello.txt
os.rename('/home/user/path', '/home/user/tmp/path') # переименует (или перенесёт в существующий каталог) каатог или файл
os.symlink('/home/user/path', '/home/user/22') # создаст символическую ссылку с именем 22
os.system('id') # узнать свой id
os.chown('/home/user/path', uid, gid ) # сменить владельца -uid, группу - gid
uid root - 0, gid root - 0
os.chmod('/home/user/path' 0o100644) # дать права (в восьмеричной системе)

oct(число) # число в восьмеричной системе
hex(число) # в шестнадцатеричной
bin(число) # в двоичной
int(0o1000) # 512 в десятеричной
int(0b1000) # 8
int(0x1000) # 4096

import shutil
shutil.copyfile('/home/user/path/hello.txt', '/home/user/tmp/hel.txt') # cкопирует файл с именем hel.txt, метаданные (права и тд) не копирует
shutil.copy('/home/user/path/hello.txt', '/home/user/tmp/hel.txt') # cкопирует файл с именем hel.txt, копирует метаданные
shutil.copy2('/home/user/path/hello.txt', '/home/user/tmp/hel.txt') # cкопирует файл с именем hel.txt, полное копирование метаданных
shutil.move('/home/user/path', '/home/user/tmp/tmp/tmp') # переместить/переименовать каталог/файл если промежуточных каталогов нет, то создаст оные
shutil.move('/home/user/path/hello.txt', '/home/user/tmp') # перенесёт с тем же именем в каталог tmp
shutil.copytree('/home/user/path', '/home/user/tmp/new') # скопирует каталог path со всем содержимым (дерево каталогов) в tmp с именем new
shutil.rmtree('/home/user/tmp/new') # удалит каталог new со всем содержимым


Управление модулями, pip



wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

$ pip help # помощь по доступным командам.
$ pip install package_name # установка пакета(ов).
$ pip uninstall package_name # удаление пакета(ов).
$ pip-autoremove package_name # удаление пакета(ов), с установленными зависимостями
$ pip install -U # обновление пакета(ов).
$ pip install --force-reinstall # при обновлении, переустановить пакет, даже если он последней версии.
$ pip list # Смотрим на список установленных (доступных) библиотек
$ pip list -o # узнать, какие библиотеки можно обновить
$ pip show package_name # узнать версию, местонахождение на диске и зависимости.
$ pip search pycp # покажет список всех пакетов, в названии которых есть pycp
$ pip --proxy user:passwd@proxy.server:port # использование с прокси.
$ pip completion --bash >> ~/.bashrc # Автодополнение
http://asvetlov.blogspot.ru/2014/05/pip.html

Как обновить существующие пакеты? (пользоваться осторожно, лучше в virtualenv или pyenv )

$ pip install pip-review
$ pip-review --local --interactive
или
$ pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
$ for i in $(pip list -o | awk 'NR > 2 {print $1}'); do sudo pip install -U $i; done
$ sudo pip install -U $(pip freeze | awk '{split($0, a, "=="); print a[1]}')
$ sudo pip install -U $(pip freeze | cut -d '=' -f 1)

http://python.cx/blog/article/3
http://xgu.ru/wiki/Работа_с_модулями_в_Python

Удаление ненужных пакетов

$ pip install pip-autoremove
$ pip install Flask Sphinx
$ pip-autoremove Flask Sphinx -y
http://python.cx/blog/article/PyPi_pip_python


Проверка наличия



Проверка существования переменной в локальной видимости
if 'myVar' in locals():
# myVar exists

Проверка существования переменной в глобальной видимости
if 'myVar' in globals():
# myVar exists

Проверка существования переменной используя исключения
try:
myVar
except NameError:
myVar = None

Проверка существования ключа в словаре способ 1
if key in dictname:
# key exists in dictname

Проверка существования ключа в словаре способ 2
try:
dictname['key']
except KeyError:
dictname['key'] = None

Проверка существования индекса в списке
try:
dictname['1']
except IndexError:
dictname['1'] = None

Проверка наличия метода, свойства в объекте
if hasattr(obj, 'attr_name'):
# obj.attr_name exists


Оболочки, библиотеки



https://ipython.org/
http://xon.sh/
https://amoffat.github.io/sh/
https://github.com/selectel/pyte
https://github.com/eliangcs/http-prompt
http://bpython-interpreter.org/
https://github.com/jonathanslenders/ptpython
https://github.com/jonathanslenders/pymux/
https://github.com/jonathanslenders/python-prompt-toolkit


Исходный код



Посмотреть код функции:
>>> import inspect
>>> import abc
>>> print(inspect.getsourcefile(abc))
/usr/lib/python3.4/abc.py
>>> print(inspect.getsource(abc))
# Copyright 2007 Google, Inc. All Rights Reserved.
# Licensed to PSF under a Contributor Agreement.

"""Abstract Base Classes (ABCs) according to PEP 3119."""

from _weakrefset import WeakSet
.................
>>> print(inspect.getmodule(abc))
<module 'abc' from '/usr/lib/python3.4/abc.py'>
при попытке посмотреть код созданной в интерпретаторе функции выдаст ошибку:
 
>>> def object():
...     print("hello")
... 
>>> print(inspect.getsource(object))
..................
OSError: could not get source code

но это возможно в IPython:

In [1]: def object():
   ...:     print("hello")
   ...:     

In [2]: import inspect

In [3]: print(inspect.getsource(object))
def object():
    print("hello")

или с помощью сторонних модулей:
нужно установить dill
sudo apt install python3-dill
или
sudo pip3 install dill

>>> def object():
...     print("hello")
... 
>>> import dill
>>> print(dill.source.getsource(object))
def object():
    print("hello")

>>> import dis
>>> dis.dis(object)
  2           0 LOAD_GLOBAL              0 (print)
              3 LOAD_CONST               1 ('hello')
              6 CALL_FUNCTION            1 (1 positional, 0 keyword pair)
              9 POP_TOP
             10 LOAD_CONST               0 (None)
             13 RETURN_VALUE
>>> 


Операции с числами



round(632.742774, 3) # округлит до 632.743 (3 - сколько знаков после запятой)

a=[1, 2, 3, 4]
for x in a: print(x + 3, end = ',')
list(map((lambda x: x + 3), a))

from math import *
D={'S':sin, 'C':cos, 'E':exp}
D['S'](pi/2)
D['C'](pi)
D['E'](1)

http://ru_python.livejournal.com/337028.html
>>> from decimal import Decimal
>>> Decimal('0.1')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3')
Decimal('0.0')
>>> from fractions import Fraction
>>> Fraction(1,10)+Fraction(1,10)+Fraction(1,10)-Fraction(3,10)
Fraction(0, 1)

from fractions import Fraction as fr
>>> fr('1/3') + fr('1/3') + fr('1/3')
Fraction(1, 1)
>>> fr('9/7') - fr('20/21')
Fraction(1, 3)
>>>
>>> from sympy import *
>>> x = Symbol('x')
>>> y = Symbol('y')
>>> x + x + y*3 -y
2*x + 2*y
>>> expand((x+1)*(y-1)**3)
x*y**3 - 3*x*y**2 + 3*x*y - x + y**3 - 3*y**2 + 3*y - 1
>>> expand(cos(x+y), trig=True)
-sin(x)*sin(y) + cos(x)*cos(y)
>>> simplify((x+x*x*y)/x)
x*y + 1
>>> solve(x**2 - y, x)
[-sqrt(y), sqrt(y)]
>>> solve(exp(x)+1, x)
[I*pi]

особенности двоичной математики
>>> 0.1+0.1+0.1-0.3
5.551115123125783e-17
>>> 0.7-0.5-0.2
-5.551115123125783e-17
>>> (0.1+0.1+0.1-0.3)-(0.7-0.5-0.2)
1.1102230246251565e-16
>>> (0.7-0.5-0.2)-(0.1+0.1+0.1-0.3)
-1.1102230246251565e-16

зато тут магия куда то делась
>>> (0.1+0.1+0.1-0.3)+(0.7-0.5-0.2)
0.0

>>> 0.1 + 0.1 + 0.1 - 0.3 == 1.0 / (2**54)
True
>>> 0.7-0.5-0.2 == -1.0 / (2**54)
True
>>> 5.551115123125783e-17 == 1.0 / (2**54)
True
>>> 0.1 + 0.1 + 0.1 - 0.3 == math.pow(2, -54)
True


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



open('/home/user/path/hello.txt', 'w') # создаст пустой файл (аналог touch hello.txt)

f=open('/home/user/path/hello.txt', 'w') # создать или открыть существующий файл hello.txt на запись
'r' открытие на чтение (является значением по умолчанию).
'w' открытие на запись, содержимое файла удаляется, если файла не существует, создается новый.
'x' открытие на запись, если файла не существует, иначе исключение.
'a' открытие на дозапись, информация добавляется в конец файла.
'b' открытие в двоичном режиме.
't' открытие в текстовом режиме (является значением по умолчанию).
'+' открытие на чтение и запись
'r+' означает, что файл доступен как для чтения, так и  для записи,
при этом содержимое существующих файлов сохраняется
'w+', позволяет выполнять операции чтения и записи, но создает файл заново,
уничтожая прежнее его содержимое

f.write('Привет, всё норм.')
f.close()# закрыть файл

f=open('/home/user/path/hello.txt', 'r') # открыть файл на чтение

f.read(8) # читает 8 символов
f.readline() # читает построчно
f.__next__()
next(f)
f.readlines() # читает файл целиком
f.readlines(200) # читает 200 символов
f.seek(0) # перейти в начало файла # цифры - позиция
f.close()

f=open('/home/user/path/hello.txt', 'a') # открыть файл на дозапись
ABC='очень,очень,многобукав' # создание переменной ABC

f.writelines('ABC') # допишет в файл буквы ABC
f.writelines(ABC) # допишет в файл очень,очень,многобукав

for line in output.splitlines(): print(line) # разбить текст на отдельные строки

file.writelines(['Hello file world!\n', 'Bye file world.\n']) # записывает все строки из списка

list(map(str.rstrip, open('/home/user/path/hello.txt').readlines(200))) # прочтёт 200 символов, без /n перевода строки

list(map(str.splitlines, open('/home/user/path/hello.txt').readlines(200)))

open('somefile.txt', 'w').write("G'day Bruce\n") # записать во временный файл
open('somefile.txt', 'r').read() # прочитать временный файл

После окончания работы с файлом его обязательно нужно закрыть с помощью метода close:
file.close()
with open(filename) as myfile # с применением менеджера контекста (гарантировано закрыть файл после использования)

пример передачи данных с текстового файла в переменную
cat /path/to/file
NAME="file1"
VERSION=1.1.1

def get_version():
    with open('/path/to/file','r') as myfile:
        content = myfile.read()
        values = content.split("\n")
        get_version_file = str(content.split("\n")[content.count('VERSION')]).split('=')[-1]
    return get_version_file

#file_src = get_version()
file_src = '"{0}"'.format(str(get_version())) # чтоб в кавычках было
print("version = ", file_src )

поиск файлов

import glob
glob.glob('/usr/src/*.deb') # покажет список deb пакетов в /usr/src, поиск файлов по маске
os.system('grep -r /usr/lib/python3 -e __all__ ')

сравнение файлов

import filecmp
filecmp('/home/user/path/hello.txt', '/home/user/tmp/hello.txt') # сравнение файлов True - совпадают, False - нет

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

filecmp.dircmp('/home/user/path', '/home/user/tmp').report() # сравнение каталогов
diff_files - сообщает о разнице меж одноимёнными файлами
same_files - сообщает о идентичных файлах в двух каталогах
common - выводит список общих имён и каталогов
report() - подробный отчёт о сравнении каталогов
report_full_closure() - подробный отчёт сравнения всех каталогов, вложенных файлов и каталогов

http://iakovlev.org/index.html?p=577&m=1&l1=2

Сортируем файлы с помощью Python
https://github.com/lesskop/file-sorter


Работа с БД



C:\...\PP4E\Dbase> python
>>> import dbm                  # получить интерфейс: bsddb, gnu, ndbm, dumb
>>> file = dbm.open('movie', 'c') # создать файл DBM с именем 'movie'
>>> file['Batman'] = 'Pow!'        # сохранить строку с ключом 'Batman'
>>> file.keys()                    # получить список ключей в файле
[b'Batman']
>>> file['Batman']                 # извлечь значение по ключу 'Batman'
b'Pow!'
>>> who = ['Robin', 'Cat-woman', 'Joker']
>>> what = ['Bang!', 'Splat!', 'Wham!']
>>> for i in range(len(who)):
...     file[who[i]] = what[i]     # добавить еще 3 "записи"
...
>>> file.keys()
[b'Cat-woman', b'Batman', b'Joker', b'Robin']
>>> len(file), 'Robin' in file, file['Joker']
(4, True, b'Wham!')
>>> for key in file.keys(): print(key, file[key])
>>> for key in file: print(key.decode(), file[key].decode())
>>> file['Batman'] = 'Ka-Boom!' # изменить значение ключа Batman
>>> del file['Robin']            # удалить запись Robin
>>> file.close()                   # иногда требуется закрывать явно


упаковка объектов

pickle
>>> table = {'a': [1, 2, 3],
             'b': ['spam', 'eggs'],
             'c': {'name':'bob'}}
>>>
>>> import pickle
>>> mydb = open('dbase', 'wb')
>>> pickle.dump(table, mydb)

C:\...\PP4E\Dbase> python
>>> import pickle
>>> mydb = open('dbase', 'rb')
>>> table = pickle.load(mydb)
>>> table
{'a': [1, 2, 3], 'c': {'name': 'bob'}, 'b': ['spam', 'eggs']}


shelve
import shelve
dbase = shelve.open("mydbase")
dbase['key'] = object # сохранить объект
value = dbase['key'] # извлечь объект
len(dbase) # количество хранящихся элементов
dbase.keys() # список ключей хранящихся элементов


JSON
http://python-lab.ru/documentation/27/stdlib/json.html
https://pythonworld.ru/moduli/modul-json.html
Кодирование JSON
>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'

>>> import json
>>> json.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',',':'))
'[1,2,3,{"4":5,"6":7}]'

Красивый вывод:
>>> import json
>>> print json.dumps({'4': 5, '6': 7}, sort_keys=True,
...                  indent=4, separators=(',', ': '))
{
    "4": 5,
    "6": 7
}

Декодироние JSON

>>> import json
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
[u'foo', {u'bar': [u'baz', None, 1.0, 2]}]

Использование json.tool из шелла для проверки и красивого вывода:
$ echo '{"json":"obj"}' | python -mjson.tool
{
    "json": "obj"
}


sqlite3
>>> import sqlite3
>>> conn = sqlite3.connect('dbase1') # при необходимости используйте полный путь к файлу
# мож­но пе­ре­дать спе­ци­аль­ную стро­ку «:memory:», что­бы соз­дать вре­мен­ную ба­зу дан­ных в па­мя­ти
>>> curs = conn.cursor()
>>> tblcmd = 'create table people (name char(30), job char(10), pay int(4))'
>>> curs.execute(tblcmd)
>>> curs.executemany('insert into people values (?, ?, ?)',
...          [ ('Sue', 'mus', '70000'),
...            ('Ann', 'mus', '60000')])
>>> rows = [['Tom', 'mgr', 100000],
...         ['Kim', 'adm', 30000],
...         ['pat', 'dev', 90000]]
>>> for row in rows:
...     curs.execute('insert into people values (? , ?, ?)', row)
...
>>> conn.commit() # сохранить изменения в базе
>>> curs.execute('select * from people') # выбрать записи
>>> curs.fetchall() # из­влечь записи
[('Bob', 'dev', 5000), ('Sue', 'mus', 70000), ('Ann', 'mus', 60000), ('Tom',
'mgr', 100000), ('Kim', 'adm', 30000), ('pat', 'dev', 90000)]

>>> for (name, job, pay) in curs.fetchall():
...     print(name, ':', pay)

>>> curs.execute('select * from people')
>>> colnames = [desc[0] for desc in curs.description]
>>> colnames
['name', 'job', 'pay']
>>> for row in curs.fetchall():
...     for name, value in zip(colnames, row):
...        print(name, '\t=>', value)
...    print()

>>> curs.execute('delete from people where name = ?', ['Bob'])
>>> curs.execute('delete from people where pay >= ?',(90000,))
>>> curs.execute('select * from people')
>>> curs.fetchall()
[('Sue', 'mus', 70000), ('Ann', 'mus', 65000), ('Kim', 'adm', 65000)]
>>> conn.commit()

>>> curs.execute('select * from people')
>>> colnames = [desc[0] for desc in curs.description]
>>> rowdicts = [dict(zip(colnames, row)) for row in curs.fetchall()]
>>> rowdicts[0]
{'pay': 70000, 'job': 'mus', 'name': 'Sue'}

>>> from sqlite3 import connect
>>> conn = connect('dbase1')
>>> curs = conn.cursor()
>>> curs.execute('delete from people')      # очистить таблицу
>>> curs.execute('select * from people')
>>> curs.fetchall()
[]
>>> file = open('data.txt')
>>> rows = [line.rstrip().split(',') for line in file]
>>> rows[0]
['bob', 'devel', '50000']

>>> curs.execute("select sum(pay), avg(pay) from people where job = 'devel'")
>>> curs.fetchall()
[(150000, 50000.0)]

http://www.internet-technologies.ru/articles/article_2190.html


records
>>> import records 
>>> db = records.Database('sqlite:///mydb.db') 
>>> 
>>> rows = db.query('SELECT * FROM cheese') 
>>> print(rows.dataset) 
name         |price 
-------------|----- 
red leicester|1.0 
wensleydale  |2.2 
>>> 
>>> print(rows.export('json')) 
[{"name": "red leicester", "price": 1.0}, {"name": "wensleydale", "price": 2.2}]

$ records 'SELECT * FROM cheese' yaml --url=sqlite:///mydb.db 
- {name: red leicester, price: 1.0} 
- {name: wensleydale, price: 2.2} 
$ records 'SELECT * FROM cheese' xlsx --url=sqlite:///mydb.db > cheeses.xlsx



Работа с архивами



создание архива
$ python3
>>> import shutil
>>> shutil.make_archive('/home/user/каталог/имя_архива', 'zip', '/home/user/path')

сделает архив содержимого каталога path и положит в указанном месте с указанным именем,
добавив расширение сжатия (zip), форматы сжатия zip gztar bztar xz

распаковка архива
$ python3
>>> import zipfile
>>> zipfile.ZipFile('/home/user/file.zip').extractall('/home/user/tmp/new')

распакует архив в папку new, папка будет создана, если её нет

или просто в консоли использовать модули python:
https://docs.python.org/3/library/tarfile.html

$ python3 -m tarfile -c $HOME/tmp/new_archiv.tar.bz2 $HOME/tmp/rt/ - создать архив
$ python3 -m tarfile -e $HOME/tmp/new_archiv.tar.bz2 $HOME/tmp/rt/1 - распаковать архив

аналогично для форматов tar.gz и tar.xz


Работа со строками



Строки. Функции и методы строк
Использование регулярных выражений в Python для новичков
41 вопрос о работе со строками в Python
в python3 достаточно просто присвоить строку
$ python3
>>> str='Самой используемой кодировкой в мире является utf8'
>>> str
'Самой используемой кодировкой в мире является utf8'

в python2 чуть больше телодвижений
$ python
>>> str=u'Самой используемой кодировкой в мире является utf8'
>>> print str
Самой используемой кодировкой в мире является utf8

Кодировки в python

Методы строк
str.find(substr)
Вы­пол­ня­ет по­иск под­стро­ки.
str.replace(old, new)
Вы­пол­ня­ет под­ста­нов­ку под­стро­ки.
str.split(delimiter)
Раз­би­ва­ет стро­ку по ука­зан­но­му раз­де­ли­те­лю или про­бель­ным сим­во­лам.
str.join(iterable)
Объ­еди­ня­ет под­стро­ки, встав­ляя раз­де­ли­те­ли ме­ж­ду ни­ми.
str.strip()
Уда­ля­ет ве­ду­щие и за­вер­шаю­щие про­бель­ные сим­во­лы.
str.rstrip()
Уда­ля­ет толь­ко за­вер­шаю­щие про­бель­ные сим­во­лы, ес­ли они име­ют­ся.
str.rjust(width)
Вы­рав­ни­ва­ет стро­ку по пра­во­му краю в по­ле фик­си­ро­ван­ной ши­ри­ны.
str.upper()
Пе­ре­во­дит все сим­во­лы в верх­ний ре­гистр.
str.isupper()
Про­ве­ря­ет – все ли сим­во­лы в стро­ке яв­ля­ют­ся сим­во­ла­ми верх­не­го ре­ги­ст­ра.
str.isdigit()
Про­ве­ря­ет – все ли сим­во­лы в стро­ке яв­ля­ют­ся циф­ра­ми.
str.endswith(substr-or-tuple)
Про­ве­ря­ет при­сут­ст­вие под­стро­ки (или од­но­го из ва­ри­ан­тов в кор­те­же) в кон­це дан­ной стро­ки.
str.startswith(substr-or-tuple)
Про­ве­ря­ет при­сут­ст­вие под­стро­ки (или од­но­го из ва­ри­ан­тов в кор­те­же) в на­ча­ле дан­ной стро­ки.


преобразование строк в кортеж, список и обратно
>>> 'spam eggs ham'.split()
['spam', 'eggs', 'ham']
>>> tuple(['spam', 'eggs', 'ham'])
('spam', 'eggs', 'ham')
>>> list(('spam', 'eggs', 'ham'))
['spam', 'eggs', 'ham']
>>> list('spam eggs ham')
['s', 'p', 'a', 'm', ' ', 'e', 'g', 'g', 's', ' ', 'h', 'a', 'm']
>>> ''.join(['s', 'p', 'a', 'm', ' ', 'e', 'g', 'g', 's', ' ', 'h', 'a', 'm'])
'spam eggs ham'
>>> '*'.join('spam eggs ham')
's*p*a*m* *e*g*g*s* *h*a*m'
>>> 's*p*a*m* *e*g*g*s* *h*a*m'.split('*')
['s', 'p', 'a', 'm', ' ', 'e', 'g', 'g', 's', ' ', 'h', 'a', 'm']
>>> ''.join(['s', 'p', 'a', 'm', ' ', 'e', 'g', 'g', 's', ' ', 'h', 'a', 'm'])
'spam eggs ham'

вредный совет
выпрямить вложенные списки с помощью функции sum()
>>> l=[['a', 'b', 'c'], ['1', '2'], ['#']]
>>> sum(l, [])
['a', 'b', 'c', '1', '2', '#']



столбик
типа 
perl -pa0e'$_=join",",@F' 1.txt > 2.txt
sed ':a;N;$!ba;s/\n/ /g' my.txt > my1.txt

>>> s="""
... Keujiuz8 
... ze5iiFee 
... chuF7hae 
... Quah8equ 
... UZiloh9A 
... quiWin0d 
... Fael9uo8 
... pheeph7M
... """
>>> s
'\nKeujiuz8 \nze5iiFee \nchuF7hae \nQuah8equ \nUZiloh9A \nquiWin0d \nFael9uo8 \npheeph7M\n'
>>> ' '.join(s.split())
'Keujiuz8 ze5iiFee chuF7hae Quah8equ UZiloh9A quiWin0d Fael9uo8 pheeph7M'

>>> d=s.split()
>>> for i in range(len(d)): print(d[i])
... 
Keujiuz8
ze5iiFee
chuF7hae
Quah8equ
UZiloh9A
quiWin0d
Fael9uo8
pheeph7M

>>> a=['sjdej', 'jsjjjsj', 'jdeechfeo']
>>> for i in a: print(i)
... 
sjdej
jsjjjsj
jdeechfeo

>>> for i in range(1,4): print ("abc"*i)
... 
abc
abcabc
abcabcabc

>>> for i in range(2, 22, 3): print('Номер ('+ str(i)+')')
... 
Номер (2)
Номер (5)
Номер (8)
Номер (11)
Номер (14)
Номер (17)
Номер (20)

>>> supplers = ['pens', 'staplers', 'binders']
>>> for i in range(len(supplers)):
...     print('Index ' + str(i) + ' in supplers is: ' + supplers[i])
... 
Index 0 in supplers is: pens
Index 1 in supplers is: staplers
Index 2 in supplers is: binders


регистр строки
>>> str='blablabla'
>>> str=str.upper()
>>> str
'BLABLABLA'
>>> str=str.lower()
>>> str
'blablabla'
>>> str=str.capitalize()
>>> str
'Blablabla'
>>> str=str.swapcase()
>>> str
'bLABLABLA'
>>> str=str.title()
>>> str
'Blablabla'
>>> 'bLABLABLA'.casefold()
'blablabla'


перевернуть строку
>>> a=list('habrahabr')
>>> a.reverse()
>>> ''.join(a)
'rbaharbah'

>>> 'hanrahabr'[::-1]
'rbaharnah'


Работа с ошибками
>>> import difflib 
>>> capitals = ('Montgomery', 'Juneau', 'Phoenix', 'Little Rock') 
>>> difflib.get_close_matches('Fenix', capitals) 
['Phoenix']


разные манипуляции
>>> 'spam eggs ham'[5:10]            # извлечение среза: подстрока
'eggs '
>>> 'spam ' + 'eggs ham'             # конкатенация (и *, len(), [ix])
'spam eggs ham'
>>> 'spam %s %s' % ('eggs', 'ham') # выражение форматирования: подстановка
'spam eggs ham'
>>> 'spam {} {}'.format('eggs', 'ham') # метод форматирования: альтернатива %
'spam eggs ham'
>>> 'spam = "%-5s", %+06d' % ('ham', 99) # более сложное форматирование
'spam = "ham ", +00099'
>>> 'spam = "{0:<5}", {1:+06}'.format('ham', 99)
'spam = "ham ", +00099'

>>> '-'.join([str(i) for i in range(10)])
'0-1-2-3-4-5-6-7-8-9'
>>> "bla {} blabl {} lala {}".format(1,2,3) 
'bla 1 blabl 2 lala 3'
>>> "bla {2} blabl {0:=10} lala {1}".format(1,2,3) 
'bla 3 blabl          1 lala 2'
>>> "bla   blabl  lala ".split()
['bla', 'blabl', 'lala']
>>> "blahblablhlala".split('h')
['bla', 'blabl', 'lala']
>>> "blahblablhlala".replace('a','z')
'blzhblzblhlzlz'
>>> '_'.join([str(i) for i in range(10)])
'0_1_2_3_4_5_6_7_8_9'

>>> y = {c.upper() * 4 for c in 'spamham'} # генератор множеств
>>> y
{'SSSS', 'AAAA', 'MMMM', 'HHHH', 'PPPP'}
>>>
>>> list(set([1, 2, 3, 1, 2]))             # удалит дубликаты из списка
[1, 2, 3]

>>> L = [{'n':3}, {'n':20}, {'n':0}, {'n':9}]
>>> L.sort(key=lambda x: x['n'])
>>> L
[{'n': 0}, {'n': 3}, {'n': 9}, {'n': 20}]

>>> L = [2, 4, 1, 3, 5]
>>> L.reverse()
>>> L
[5, 3, 1, 4, 2]
>>> L = [2, 4, 1, 3, 5]
>>> list(reversed(L))
[5, 3, 1, 4, 2]

>>> 'A B C D'.split()
['A', 'B', 'C', 'D']
>>> 'A+B+C+D'.split('+')
['A', 'B', 'C', 'D']
>>> '--'.join(['a', 'b', 'c'])
'a--b--c'

>>> 'aaa--bbb--ccc'.split('--')
['aaa', 'bbb', 'ccc']
>>> 'aaa--bbb--ccc'.replace('--', '...') 
'aaa...bbb...ccc' 

>>> x=[34,56]
>>> print((''.join(list(map(str,x)))),)
3456

удалить общие строки из двух списков

>>> a="abb bbb ccc eee".split()
>>> b="aab bbb ccd eee".split()
>>> aa=set(a)
>>> bb=set(b)
>>> c = bb.difference(aa)
>>> print(c)
{'aab', 'ccd'}

удаление повторяющихся в списке значений:

>>> nums = [1, 3, 2, 3, 1, 2, 3, 1, 2]
>>> unique_nums = list(set(nums))
>>> unique_nums
[1, 2, 3]



замена символов
Замена в строке с помощью Python

аналог sed 's/Windows/Linux/g'
>>> s='Windows Windows Windows'
>>> s.replace('Windows', 'Linux')
'Linux Linux Linux'

аналог sed -i 's/Windows/Linux/g' text
>>> old="Windows"
>>> new="Linux"
>>> text="Windows Windows Windows"
>>> import re
>>> print(re.sub(r'\bWindows\b', 'Linux', line))


бы­ст­ро за­ме­нить в фай­ле ка­ж­дый сим­вол та­бу­ля­ции че­тырь­мя точ­ка­ми
from sys import *
stdout.write(('.' * 4).join(stdin.read().split('\t'))) 

[a-zA-Z0-9_]+ со­от­вет­ст­ву­ет са­мой длин­ной стро­ке из од­но­го или бо­лее сим­во­лов букв, цифр или под­чер­ки­ва­ний. 
\w Лю­бой ал­фа­вит­но-циф­ро­вой сим­вол ([a-zA-Z0-9_] для ASCII)
[\t ]* со­от­вет­ст­ву­ет ну­лю или бо­лее та­бу­ля­ций и про­бе­лов        

>>> table = "".maketrans('12', '34', 'cs')
>>> '1212cs 5612cs cscs'.translate(table)
'3434 5634 '

>>> intab = "aeiou"
>>> outtab = "12345"
>>> trantab = str.maketrans(intab, outtab)
>>> str = "this is string example....wow!!!"
>>> print (str.translate(trantab))
th3s 3s str3ng 2x1mpl2....w4w!!!

strip() удаляет начальные и конечные пробелы
replace() удаляет все пробелы из строки
translate() избавиться от всех пробелов, а также от символов новой строки
" ".join(s.split()) избавиться от всех повторяющихся пробелов и символов новой строки
'строка'[1:] удалить первый символ строки

добавить символы в начало и конец строки
yourstring = "L{0}LL".format(yourstring) 
yourstring = ''.join(('L','yourstring','LL'))
yourstring = "L%sLL" % yourstring
yourstring = "L" + yourstring + "LL"

yourstring = '"'{0}'"'.format(yourstring) добавить кавычки в начало и конец строки



Очистка входных строковых данных
Полезные советы по Python, которых вы ещё не встречали
user_input = "This\nstring has\tsome whitespaces...\r\n"

character_map = {
 ord('\n') : ' ',
 ord('\t') : ' ',
 ord('\r') : None
}
user_input.translate(character_map)  # This string has some whitespaces... "


модуль re
аналог sed -i 's/Windows/Linux/g' text
>>> old="Windows"
>>> new="Linux"
>>> text="Windows Windows Windows"
>>> import re
>>> print(re.sub(r'\bWindows\b', 'Linux', line))

>>> import re
>>> re.split('--', 'aaa--bbb--ccc')
['aaa', 'bbb', 'ccc']
>>> re.sub('--', '...', 'aaa--bbb--ccc')    # случай с единственным разделителем
'aaa...bbb...ccc'
>>> re.split('--|==', 'aaa--bbb==ccc')      # разбить по -- или ==
['aaa', 'bbb', 'ccc']
>>> re.sub('--|==', '...', 'aaa--bbb==ccc') # заменить -- или ==
'aaa...bbb...ccc'
>>> re.split('[-=]', 'aaa-bbb=ccc')      # односимвольные альтернативы
['aaa', 'bbb', 'ccc']
>>> re.split('(--)|(==)', 'aaa--bbb==ccc')     # результат разбиения
['aaa', '--', None, 'bbb', None, '==', 'ccc'] # включает группы
>>> re.split('(?:--)|(?:==)', 'aaa--bbb==ccc') # часть выражения, не группы
['aaa', 'bbb', 'ccc']


использование обратного слэша
>>> a='Это не будет развернуто: \nновая строка'
>>> print(a)
Это не будет развернуто: 
новая строка
>>> a='Это не будет развернуто: \tновая строка'
>>> print(a)
Это не будет развернуто: 	новая строка
>>> a='Это не будет развернуто: \vновая строка'
>>> print(a)
Это не будет развернуто: 
                         новая строка
>>> a='Это не будет развернуто: \fновая строка'
>>> print(a)
Это не будет развернуто: 
                         новая строка
>>> a='Однажды Арнольд сказал: "I\'ll be back"'
>>> print(a)
Однажды Арнольд сказал: "I'll be back"


5 СПОСОБОВ ФОРМАТИРОВАНИЯ СТРОК
https://shultais.education/blog/python-f-strings

>>> name = "User"
>>> age = 100
>>> print("Меня зовут " + name + ". Мне " + str(age) + " лет.")
>>> Меня зовут User. Мне 100 лет.

>>> name = "User"
>>> age = 100
>>> print("Меня зовут %s. Мне %d лет." % (name, age))
>>> Меня зовут User. Мне 100 лет.
>>> print("Меня зовут %(name)s. Мне %(age)d лет." % {"name": name, "age": age})
>>> Меня зовут User. Мне 100 лет.

>>> from string import Template
>>> name = "User"
>>> age = 100
>>> s = Template('Меня зовут $name. Мне $age лет.')
>>> print(s.substitute(name=name, age=age))
>>> Меня зовут User. Мне 100 лет.

>>> name = "User"
>>> age = 100
>>> print("Меня зовут {}. Мне {} лет.".format(name, age)
>>> Меня зовут User. Мне 100 лет.
>>> print("Меня зовут {name} Мне {age} лет.".format(age=age, name=name)
>>> Меня зовут User. Мне 100 лет.

# начиная с Python 3.6
>>> name = "User" 
>>> age = 100
>>> print(f"Меня зовут {name} Мне {age} лет.")
>>> Меня зовут User. Мне 100 лет.


ПОГРУЖЕНЕ В F-СТРОКИ
>>> "обычная строка"
>>> f"f-строка"

f-строки также поддерживают расширенное форматирование чисел:
>>> from math import pi
>>> print(f"Значение числа pi: {pi:.2f}")
>>> Значение числа pi: 3.14

С помощью f-строк можно форматировать дату без вызова метода strftime():
>>> from datetime import datetime as dt
>>> now = dt.now()
>>> print(f"Текущее время {now:%d.%m.%Y %H:%M}")
>>> Текущее время 24.02.2017 15:51

Они поддерживают базовые арифметические операции. Да, прямо в строках:
>>> x = 10
>>> y = 5
>>> print(f"{x} x {y} / 2 = {x * y / 2}")
>>> 10 x 5 / 2 = 25.0

Позволяют обращаться к значениям списков по индексу:
>>> planets = ["Меркурий", "Венера", "Земля", "Марс"]
>>> print(f"Мы живим не планете {planets[2]}")
>>> Мы живим не планете Земля

А также к элементам словаря по ключу:
>>> planet = {"name": "Земля", "radius": 6378000}
>>> print(f"Планета {planet['name']}. Радиус {planet['radius']/1000} км.")
>>> Планета Земля. Радиус 6378.0 км. 

Причем вы можете использовать как строковые, так и числовые ключи. Точно также как в обычном Python коде:
>>> digits = {0: 'ноль', 'one': 'один'}
>>> print(f"0 - {digits[0]}, 1 - {digits['one']}")
>>> 0 - ноль, 1 - один

Вы можете вызывать в f-строках методы объектов:
>>> name = "User"
>>> print(f"Имя: {name.upper()}")
>>> Имя: User

А также вызывать функции:
>>> print(f"13 / 3 = {round(13/3)}")
>>> 13 / 3 = 4


zip + list

http://blog.lerner.co.il/implementing-zip-list-comprehensions/
>>> s = 'abc'
>>> t = (10, 20, 30)
>>> u = (-5, -10, -15)
>>> list(zip(s,t,u))
[('a', 10, -5), ('b', 20, -10), ('c', 30, -15)]
>>> [(s[i], t[i]) for i in range(len(s))] 
[('a', 10), ('b', 20), ('c', 30)]
>>> [(s[i], t[i]) for i in range(len(sorted((s,t), key=len)[0]))]
[('a', 10), ('b', 20), ('c', 30)]
>>> def shortest_sequence_range(*args):
...     return range(len(sorted(args, key=len)[0]))
... 
>>> [(s[i], t[i]) for i in shortest_sequence_range(s,t) ]
[('a', 10), ('b', 20), ('c', 30)]
>>> g = ((s[i], t[i]) for i in shortest_sequence_range(s,t) )
>>> for item in g: print(item)
... 
('a', 10)
('b', 20)
('c', 30)

>>> names = ['Tom', 'Dick', 'Harry']
>>> ages = [50, 35, 60]
>>> dict(zip(names, ages))
{'Harry': 60, 'Dick': 35, 'Tom': 50}



Работа с текстом




Сравнение содержания двух текстовых файлов
http://www.cyberforum.ru/python/thread1452346.html
http://aidalinux.ru/w/Grep
grep: коллекция примеров использования
вместо
grep -F -f 2.txt 1.txt > 3.txt (все совпадающие)
grep -Fv -f 2.txt 1.txt > 3.txt (разница)
grep -i -Fv -f 2.txt 1.txt > 3.txt (разница без учёта регистра)
pcregrep -vFf 2.txt 1.txt

эти точнее
diff --old-line-format=$'%l\n' --new-line-format='' --unchanged-line-format='' <(sort -u 2.txt) <(sort -u 1.txt)
comm -23 1.txt 2.txt
comm -13 <(sort -u 1.txt) <(sort -u 2.txt)|cat > output
Compare-Object (gc 1.txt) (gc 2.txt)  -PassThru


$ cat 1.txt
one two three four
$ cat 2.txt
two three one

вначале привести к одинаковому регистру 
типа
$ tr '[:upper:]' '[:lower:]'  lower.txt

Все буквы будут большими:
$ sed -i 's/.*/\U&/' 1.txt

Все буквы будут маленькими:
$ sed -i 's/.*/\L&/' 1.txt

>>> with open('1.txt', 'r',  encoding='utf-8-sig') as fileinput: fileinput.read().lower();

>>> data = [set(open(i).read().split()) for i in ('1.txt', '2.txt')]
>>> print(data[0].difference(data[1]))

nano diff_files1.py


python3 -m diff_files1


# запись
with open("filename.txt", "w") as file: file.write("hello world")

# чтение целиком
for line in open('filename.txt'): print(line)


# построчное чтение

for line in open('filename.txt').xreadlines(): print(line)
# в python2x

for line in open('filename.txt').readlines(): print(line, end='') # в python3x

B = 'spamspamspam'
open('savetree.txt', 'w').write(str(B))
# Сохранить в файл для последующего просмотра
open('latindata', 'w', encoding='latin-1').write(B) # Запись в latin-1
open('utf8data', 'w', encoding='utf-8').write(B) # Запись в utf-8
open('latindata', 'r', encoding='latin-1').read() # Декодирование выполняется при чтении
open('utf8data', 'r', encoding='utf-8').read() # в соответствии с названием кодировки
open('latindata', 'rb').read() # Прочитать двоичные данные


import pysed
print(pysed.replace("очень очень много букв", 'о', '!!!!'))
http://rtfm.co.ua/python-modul-pysed-rasshirennyj-analog-redaktora-sed/
https://pypi.python.org/pypi/pysed

правильное чтение



найти слово в тексте
https://pynative.com/python-search-for-a-string-in-text-files/



транслитерация

pip install transliterate
>>> from transliterate import translit
>>> print(translit(u"всякий разный текст", 'ru', reversed=True))



Кодировки



# -*- coding: utf-8 -*-
или
# coding: utf8

import sys
sys.getdefaultencoding() # Кодировка по умолчанию
import encodings.aliases
list(encodings.aliases.aliases)
print(encodings.aliases.aliases)
import encodings.aliases
arr = encodings.aliases.aliases
keys = list(arr.keys())
keys.sort() 
for key in keys: 
    print("%s => %s"% (key, arr[key]))

>>> from encodings.aliases import aliases
>>> def find(q):
...     return [(k,v) for k, v in aliases.items() if q in k or q in v]
...
>>> find('1252') # multiple aliases
[('1252', 'cp1252'), ('windows_1252', 'cp1252')]
>>> find('koi')
[('cskoi8r', 'koi8_r')]
>>> a=find('')
>>> a.sort()
>>> print(a)
[большой список]

import pkgutil
import encodings
false_positives = set(["aliases"])
found = set(name for imp, name, ispkg in pkgutil.iter_modules(encodings.__path__) if not ispkg)
found.difference_update(false_positives)
print(found)

>>> import chardet
>>> s = '\xe2\x98\x83' # ☃
>>> chardet.detect(s)
{'confidence': 0.505, 'encoding': 'utf-8'}

from encodings.aliases import aliases
print aliases.keys()

import os
import encodings
os.listdir(os.path.dirname(encodings.__file__))

https://docs.python.org/3/library/codecs.html#standard-encodings
https://docs.python.org/3/library/codecs.html#python-specific-encodings
http://stackoverflow.com/questions/1728376/get-a-list-of-all-the-encodings-python-can-encode-to


Ше­ст­на­дца­терич­ное зна­че­ние ко­да ASCII



>>> hex(ord('&'))
'0x26'
>>> hex(ord('+'))
'0x2b'




развернуть


В этой публикации я расскажу о некоторых трюках, которые украсят будни любого системного администратора Linux (и не только). Все они связаны с переменной PS1 оболочки bash. Переменная PS1 определяет, как будет выглядеть приглашение для ввода новых команд. И каждый пользователь может переопределять её как пожелает, например, в файле ~/.bashrc (который выполняется при запуске bash и используется для в том числе для конфигурации).



Для начала рассмотрим простой вариант, мой любимый формат командной строки.



PS1='\t j\j \u@\h:\w\n\$ '


Результат будет вот такой:

17:42:46 j0 olleg@petrel:~
$


Это обычное использование переменной PS1, но если бы я не начал с этого — рассказ был бы неполным. Обычно в переменной PS1 с помощью специальных последовательностей символов определяют формат приглашения для ввода команд. Подробный список этих последовательностей можно почитать в документации к bash, в данном примере:




  • \t — вывод «текущего времени», на самом деле это получается время завершения выполнения предыдущей команды, удобно когда перед глазами.

  • j\j — выводит символ j и после него количество запущенных job, т.е. процессов в фоне. Это тоже удобно иметь перед глазами чтобы случаем про них не забыть когда соберешься закрыть терминал.

  • \u@\h — имя пользователя и название сервера. Если работаете с несколькими серверами через удаленные терминалы — чтобы не путаться.

  • \w — после двоеточия — рабочая директория.

  • \n — поскольку строка получилась хоть и информативной (что-то вроде статус бара), но длинной, то приглашаем вводить команды с новой строки, а эта верхняя строка будет наглядно отделять от результата работы предыдущей команды.

  • \$ — на новой строке будет выводится символ либо $ для обычного пользователя либо # для root'а и отделив его пробелом можно приглашать вводить новую команду.



Казалось бы, чего еще желать… Но дальше будет интереснее. Дело в том, что с помощью специальных управляющих символов можно задавать цвет выводимого текста, цвет курсора и даже переопределять title bar у таких графических терминалов, как Gnome2. И, на мой взгляд, довольно удобно когда цветом отделяются терминалы запущенные на различных серверах. Для меня каждый сервер ассоциируется с каким-то цветом и в этот цвет мы будем красить командную строку и курсор на каждом сервере.



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




# .bash_local
# change cursor and prompt color
cursor_color='#0087FF'
prompt_color='33'


Просто заношу коды цвета в переменные. Но, как вы заметили, что способ задания цвета для курсора и для текста командной строки — разный. Почему-то так исторический получилось. Чтобы понять, какой цвет каким кодом кодируется, есть подходящая картинка.



image



Посредине — обозначение цвета для цвета курсора, снизу — обозначение цвета для текста. Как вы можете увидеть, что я для текста и курсора использую цвет морской волны. Т.к. название сервера petrel («буревестник»), то он ассоциируется у меня с этим цветом.



Теперь .bashrc, тоже показываю его не полностью, а только то что имеет отношение к теме:




# .bashrc
# local stuff
[[ -f ~/.bash_local ]] && . ~/.bash_local


Тут я вставляю код из .bash_local в общий файл. Таким образом определяться ранее описанные переменные с цветом сервера.




# set to red
root_cursor_color='#FF0000'
root_prompt_color='196'


Еще две переменные определяю с чисто красным цветом, он будет использоваться для маркировки терминалов привелигированного пользователя (root'а).




#my favorite PS1
case "$TERM" in
xterm*|rxvt*)
   PS1='\[\e[38;5;'$prompt_color'm\]\t j\j \u@\h:\w\n'
   [[ $UID == 0 ]] && { prompt_color=$root_prompt_color;cursor_color=$root_cursor_color; }
   PS1="$PS1"'\[\e[m\e]12;'$cursor_color'\a\e[38;5;'$prompt_color'm\]\$ \[\e[m\]'
   ;;
*)
   PS1='\t j\j \u@\h:\w\n\$ '
   ;;
esac


Тут проверяется какой используется терминал. Для любого неизвестного или неподдерживающего цвета будет использоваться приглашение без цвета (PS1='\t j\j \u@\h:\w\n\$ ') так, как я это описал в начале статьи. Но если имя терминала начинается на xterm или rxvt, например, так себя позиционирует терминал Gnome, начинаем кудесить с цветом. Первая строчка — задаем цвет текста — цвет сервера и выводим первую строку приглашения ввода команд. Она всегда будет окрашена в цвет сервера. Вторая строчка — проверяем, работаем ли мы под непривелигированным или привелигированным пользователем (root'ом). Если root — то переопределяем цвета на красный. Третья строчка — формируем вторую строчку приглашения и определяем цвет курсора в терминале. Т.е. там у нас получится либо $ и через пробел курсор, оба покрашенные в цвет сервера, если пользователь обычный. Либо красный # и через пробел красный курсор, если это root.




# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac


А это, если честно, один в один скопированно из первоначального .bashrc от Дебиана. Знаю, что этот код видоизменяет title bar у окна, размещает там информацию об пользователе, сервере и домашней директории. Но поскольку этот код придумал не я, комментировать его не буду.



В результате у нас должно получится так, как на картинке в самом начале публикации.






Разноцветные терминалы
http://wiki.rosalab.com/ru/index.php/Цветная_консоль_(Bash)
Как "раскрасить" терминал в Ubuntu
http://pingvinus.ru/note/colorize-console-output
http://www.linux.org.ru/gallery/screenshots/5930877
Ёлочка в командной строке
Пользовательские настройки Bash

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Syndicate

RSS Atom

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 18th, 2025 05:43 pm
Powered by Dreamwidth Studios