This media is not supported in your browser
VIEW IN TELEGRAM
Yoink.vim
Плагин Vim, который поддерживает историю yank для переключения между ними при вставке.
https://github.com/svermeulen/vim-yoink
Плагин Vim, который поддерживает историю yank для переключения между ними при вставке.
https://github.com/svermeulen/vim-yoink
Создание уведомлений и напоминаний на рабочем столе из Linux терминала
Иногда полезно получить визуальную обратную связь от скрипта. Например, когда завершается работа скрипта или задание cron, или, когда долгоиграющая сборка терпит неудачу. Или, когда во время выполнения скрипта возникает срочная проблема.
https://letsdebug.it/post/30-linux-desktop-notifications/
Иногда полезно получить визуальную обратную связь от скрипта. Например, когда завершается работа скрипта или задание cron, или, когда долгоиграющая сборка терпит неудачу. Или, когда во время выполнения скрипта возникает срочная проблема.
https://letsdebug.it/post/30-linux-desktop-notifications/
❤1
Libtree
Утилита, позволяющая получить список разделяемых библиотек (shared libraries) в виде дерева, либо в виде путей до этих библиотек в системе.
1. Скачиваем libtree:
2. Проверяем нужный нам файл:
При необходимости углубиться и получить зависимости для отображаемых библиотек просто добавляем
Отобразить полный путь до файла на сервере можно с помощью опции
По умолчанию, информация о некоторых библиотеках не выводится в libtree. Подробнее об этом в выводе команды:
https://github.com/haampie/libtree
Утилита, позволяющая получить список разделяемых библиотек (shared libraries) в виде дерева, либо в виде путей до этих библиотек в системе.
1. Скачиваем libtree:
$ wget https://github.com/haampie/libtree/releases/download/v3.0.1/libtree_x86_64 -O libtree
$ chmod +x libtree
2. Проверяем нужный нам файл:
$ ./libtree /bin/nano
/bin/nano
├── libmagic.so.1 [default path]
│ └── libz.so.1 [default path]
├── libtinfo.so.6 [default path]
└── libncursesw.so.6 [default path]
└── libtinfo.so.6 [default path]
При необходимости углубиться и получить зависимости для отображаемых библиотек просто добавляем
-v
, -vv
или -vvv
соответственно.
$ ./libtree -vvv /bin/nano
/bin/nano
├── libmagic.so.1 [default path]
│ ├── libz.so.1 [default path]
│ │ └── libc.so.6 [default path]
│ │ └── ld-linux-x86-64.so.2 [default path]
│ └── libc.so.6 [default path]
│ └── ld-linux-x86-64.so.2 [default path]
├── libc.so.6 [default path]
│ └── ld-linux-x86-64.so.2 [default path]
├── libtinfo.so.6 [default path]
│ └── libc.so.6 [default path]
│ └── ld-linux-x86-64.so.2 [default path]
└── libncursesw.so.6 [default path]
├── libtinfo.so.6 [default path]
│ └── libc.so.6 [default path]
│ └── ld-linux-x86-64.so.2 [default path]
└── libc.so.6 [default path]
└── ld-linux-x86-64.so.2 [default path]
Отобразить полный путь до файла на сервере можно с помощью опции
-p
:
$ ./libtree -p -vvv /bin/ping
/bin/ping
├── /lib64/libcap.so.2 [default path]
│ └── /lib64/libc.so.6 [default path]
│ └── /lib64/ld-linux-x86-64.so.2 [default path]
├── /lib64/libc.so.6 [default path]
│ └── /lib64/ld-linux-x86-64.so.2 [default path]
└── /lib64/libidn2.so.0 [default path]
├── /lib64/libunistring.so.2 [default path]
│ └── /lib64/libc.so.6 [default path]
│ └── /lib64/ld-linux-x86-64.so.2 [default path]
└── /lib64/libc.so.6 [default path]
└── /lib64/ld-linux-x86-64.so.2 [default path]
По умолчанию, информация о некоторых библиотеках не выводится в libtree. Подробнее об этом в выводе команды:
$ ./libtree --help
https://github.com/haampie/libtree
❤1
Как отлаживать bash-script-ы по шагам
Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.
Волшебная строчка, которую нужно добавить после #!/bin/bash, чтоб скрипт можно было отлаживать по шагам
Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.
Если понимаем, что что-то пошло не так, нажимаем Ctrl+C и выходим из отладки.
Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды
команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо Ctrl+C
переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.
Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.
Волшебная строчка, которую нужно добавить после #!/bin/bash, чтоб скрипт можно было отлаживать по шагам
#!/bin/bash
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.
Если понимаем, что что-то пошло не так, нажимаем Ctrl+C и выходим из отладки.
Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды
команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо Ctrl+C
переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.
# Online Bash Shell.
# Code, Compile, Run and Debug Bash script online.
# Write your code in this editor and press "Run" button to execute it.
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
echo "Hello World";
👍3❤1
Mikrotik Manual:System/Backup
Функция резервного копирования в RouterOS позволяет сохранить текущую конфигурацию вашего устройства, которую затем можно восстановить на том же или другом устройстве (с тем же названием/номером модели). Это очень удобно, так как позволяет легко восстановить конфигурацию устройства или повторно применить ту же конфигурацию на резервном устройстве. Файл резервного копирования системы также содержит MAC-адреса устройства, которые также восстанавливаются при загрузке файла резервного копирования.
❗️Предупреждение: если на маршрутизаторе установлены The Dude и user-manager, то системная резервная копия не будет содержать конфигурацию этих сервисов, поэтому необходимо дополнительно позаботиться о сохранении их конфигурации. Используйте предоставленные инструменты для сохранения/экспорта конфигурации, если хотите её сохранить.
📌Примечание: системные резервные копии содержат конфиденциальную информацию о вашем устройстве и его настройках, поэтому всегда рассматривайте возможность шифрования файла резервной копии и хранения его в безопасном месте.
Сохранение резервной копии
❗️Предупреждение: если пароль не указан в версиях RouterOS, предшествующих v6.43, то файл резервной копии будет зашифрован паролем текущего пользователя, за исключением случаев, когда используется свойство dont-encrypted или пароль текущего пользователя пуст.
Файл резервной копии будет доступен в меню /file и его можно скачать с помощью FTP или через Winbox.
Загрузка резервной копии
Пример
Чтобы сохранить конфигурацию маршрутизатора в файле test, введите пароль:
Чтобы просмотреть файлы, хранящиеся на маршрутизаторе:
Чтобы загрузить сохраненный файл резервной копии, выполните тест:
Облачное резервное копирование
Начиная с версии RouterOS v6.44, можно безопасно хранить файл резервной копии вашего устройства на облачных серверах MikroTik.
Функция резервного копирования в RouterOS позволяет сохранить текущую конфигурацию вашего устройства, которую затем можно восстановить на том же или другом устройстве (с тем же названием/номером модели). Это очень удобно, так как позволяет легко восстановить конфигурацию устройства или повторно применить ту же конфигурацию на резервном устройстве. Файл резервного копирования системы также содержит MAC-адреса устройства, которые также восстанавливаются при загрузке файла резервного копирования.
❗️Предупреждение: если на маршрутизаторе установлены The Dude и user-manager, то системная резервная копия не будет содержать конфигурацию этих сервисов, поэтому необходимо дополнительно позаботиться о сохранении их конфигурации. Используйте предоставленные инструменты для сохранения/экспорта конфигурации, если хотите её сохранить.
📌Примечание: системные резервные копии содержат конфиденциальную информацию о вашем устройстве и его настройках, поэтому всегда рассматривайте возможность шифрования файла резервной копии и хранения его в безопасном месте.
Сохранение резервной копии
Sub-menu: /system backup save
dont-encrypt
(yes | no; Default: no) Отключить шифрование файла резервной копии. Обратите внимание, что начиная с версии RouterOS v6.43, без указанного пароля файл резервной копии не будет зашифрован.encryption
(aes-sha256 | rc4; Default: aes-sha256) Алгоритм шифрования, используемый для шифрования файла резервной копии. Обратите внимание, что RC4 не считается безопасным методом шифрования и доступен только для обеспечения совместимости со старыми версиями RouterOS.name
(string; Default: [identity]-[date]-[time].backup) Имя файла для резервной копии.password
(string; Default: ) Пароль для зашифрованного файла резервной копии. Обратите внимание, что начиная с версии RouterOS v6.43, без указанного пароля файл резервной копии не будет зашифрован.❗️Предупреждение: если пароль не указан в версиях RouterOS, предшествующих v6.43, то файл резервной копии будет зашифрован паролем текущего пользователя, за исключением случаев, когда используется свойство dont-encrypted или пароль текущего пользователя пуст.
Файл резервной копии будет доступен в меню /file и его можно скачать с помощью FTP или через Winbox.
Загрузка резервной копии
Sub-menu: /system backup load
name
(string; Default: ) Имя файла резервной копии.password
(string; Default: ) Пароль для зашифрованного файла резервной копии.Пример
Чтобы сохранить конфигурацию маршрутизатора в файле test, введите пароль:
[admin@MikroTik] > /system backup save name=test password=<YOUR_PASSWORD>
Configuration backup saved
[admin@MikroTik] > /system backup
Чтобы просмотреть файлы, хранящиеся на маршрутизаторе:
[admin@MikroTik] > /file print
# NAME TYPE SIZE CREATION-TIME
0 test.backup backup 12567 sep/08/2018 21:07:50
[admin@MikroTik] >
Чтобы загрузить сохраненный файл резервной копии, выполните тест:
[admin@MikroTik] > /system backup load name=test
password: <YOUR_PASSWORD>
Restore and reboot? [y/N]:
y
Restoring system configuration
System configuration restored, rebooting now
Облачное резервное копирование
Начиная с версии RouterOS v6.44, можно безопасно хранить файл резервной копии вашего устройства на облачных серверах MikroTik.
👍3❤1
Копируем структуру директорий в Linux
В этой статье мы расскажем как в две команды скопировать структуру директорий без файлов через командрую строку Linux.
Сначала необходимо перейти в директорию, где находятся нужная структура
Затем выполняем команду, которая находит директории и сохраняет пути к ни в файл
Теперь необходимо перенести этот файл в директорию, где мы хотим воссоздать структуру
Переходим туда
И используя xargs читаем из файла пути и создаем по ним структуру директорий
В этой статье мы расскажем как в две команды скопировать структуру директорий без файлов через командрую строку Linux.
Сначала необходимо перейти в директорию, где находятся нужная структура
# cd /dir1
Затем выполняем команду, которая находит директории и сохраняет пути к ни в файл
# find . -type d > dirs.txt
Теперь необходимо перенести этот файл в директорию, где мы хотим воссоздать структуру
# mv ./dirs.txt /dir2
Переходим туда
# cd /dir2
И используя xargs читаем из файла пути и создаем по ним структуру директорий
# xargs mkdir -p < dirs.txt
❤2
Команда curl. Синтаксис. Примеры использования
Сurl – утилита командной строки для скачивания и загрузки данных. Она выросла из проекта шведского программиста Даниэля Стенберга. Изначально в середине 90-х, на заре развития Интернета, он разрабатывал бота, который должен был загружать с веб-страницы курсы валют и сообщать пользователям IRC эквивалент шведских крон в долларах США. Со временем проект развивался, появлялась поддержка различных протоколов и новые функции. Теперь curl используется для передачи любых данных и ряда других полезных задач. Рассмотрим основные моменты работы с этим инструментом.
https://telegra.ph/Komanda-curl-Sintaksis-Primery-ispolzovaniya-09-26
Сurl – утилита командной строки для скачивания и загрузки данных. Она выросла из проекта шведского программиста Даниэля Стенберга. Изначально в середине 90-х, на заре развития Интернета, он разрабатывал бота, который должен был загружать с веб-страницы курсы валют и сообщать пользователям IRC эквивалент шведских крон в долларах США. Со временем проект развивался, появлялась поддержка различных протоколов и новые функции. Теперь curl используется для передачи любых данных и ряда других полезных задач. Рассмотрим основные моменты работы с этим инструментом.
https://telegra.ph/Komanda-curl-Sintaksis-Primery-ispolzovaniya-09-26
https://gist.github.com/pcgeek86/336e08d1a09e3dd1a8f0a30a9fe61c8a
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Изменение порта для подключения по SSH
Чтобы изменить порт для подключения по SSH необходимо отредактировать файл конфигурации SSH демона. Откроем данный файл текстовым редактором:
Найдем строку Port 22 и изменим её, указав новый порт для подключения. Например Port 25022.
Выходим, сохраняем файл и перезагружаем SSH следующей командой:
После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной. Поэтому не отключаясь для проверки попробуем подключится по новому порту - если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 25022 наш новый порт):
Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
где 192.168.0.0/24 - IP адрес сети и маска сети, с которых разрешено подключение по SSH. Далее проверяем подключение по SSH на новом порту ssh <user>@<ip> -p <port> - если подключение выполняется, то можем удалить правило iptables подключения по SSH по старому порту:
Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно следующей командой:
Чтобы изменить порт для подключения по SSH необходимо отредактировать файл конфигурации SSH демона. Откроем данный файл текстовым редактором:
vim /etc/ssh/sshd_config
Найдем строку Port 22 и изменим её, указав новый порт для подключения. Например Port 25022.
Выходим, сохраняем файл и перезагружаем SSH следующей командой:
service sshd restart
После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной. Поэтому не отключаясь для проверки попробуем подключится по новому порту - если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 25022 наш новый порт):
iptables -A INPUT -p tcp --dport 25022 -j ACCEPT
Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 25022 -j ACCEPT
где 192.168.0.0/24 - IP адрес сети и маска сети, с которых разрешено подключение по SSH. Далее проверяем подключение по SSH на новом порту ssh <user>@<ip> -p <port> - если подключение выполняется, то можем удалить правило iptables подключения по SSH по старому порту:
iptables -D INPUT -p tcp --dport 22 -j ACCEPT
Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно следующей командой:
netstat -tulpan | grep ssh
👍3
Определение прошивки и версии драйвера устройств в ESXi
Очень часто у администратора vSphere возникает потребность проверить оборудование физического сервера (да и сам сервер) на предмет совместимости с определенной версией ESXi, удостовериться в совместимости версии Firmware определенного компонента, например сетевой карты с версией драйвера, присутствующего в ESXi ну или просто найти подходящий драйвер.
https://telegra.ph/Opredelenie-proshivki-i-versii-drajvera-ustrojstv-v-ESXi-07-03
Очень часто у администратора vSphere возникает потребность проверить оборудование физического сервера (да и сам сервер) на предмет совместимости с определенной версией ESXi, удостовериться в совместимости версии Firmware определенного компонента, например сетевой карты с версией драйвера, присутствующего в ESXi ну или просто найти подходящий драйвер.
https://telegra.ph/Opredelenie-proshivki-i-versii-drajvera-ustrojstv-v-ESXi-07-03
👍1
Автоматизация AWS SSO с помощью Terraform
Использование Terraform для автоматизации установки и настройки ресурсов SSO, упрощения управления пользователями и повышения уровня безопасности.
https://medium.com/cloud-native-daily/automate-aws-sso-using-terraform-2f219a45c16f
Использование Terraform для автоматизации установки и настройки ресурсов SSO, упрощения управления пользователями и повышения уровня безопасности.
https://medium.com/cloud-native-daily/automate-aws-sso-using-terraform-2f219a45c16f
❤2
Работа с архивами
Создать .tar.gz:
Распаковать .tar:
Распаковать gz:
Распаковать многотомный архив:
Получить листинг файлов в архиве:
Извлечь конкретный файл из архива:
Скопировать файл на сервер:
Создать .tar.gz:
tar -czvf file.tar.gz /full/path — создать .tar.gz
(архив)tar -cjvf file.tar.bz2 /full/path — создать .tar.bz2
(архив)Распаковать .tar:
tar -xvf file.tar.gz
Распаковать gz:
gunzip yourfile.gz
Распаковать многотомный архив:
7za x arch.7z.001
Получить листинг файлов в архиве:
tar -tf <path_to_tarfile>
Извлечь конкретный файл из архива:
tar -xf <path_to_tarfile> [<file_1_in_archive> <file_2_in_archive> ..]
Скопировать файл на сервер:
scp -P 12322 file.tar [email protected]:/home/user
❤3
🔥 Современный процесс загрузки Linux 🔥
Power On — Включение компьютера
1. Инициализация BIOS/UEFI
При включении компьютера загружается прошивка BIOS или UEFI из энергонезависимой памяти (NVRAM). Она отвечает за инициализацию оборудования, выполнение самотестирования (POST) и запуск процесса загрузки.
2. Поиск оборудования
BIOS/UEFI проверяет подключенные компоненты системы, такие как процессор, оперативная память, дисковые накопители и периферийные устройства.
3. Выбор загрузочного устройства (HDD, USB, PXE…)
После обнаружения оборудования BIOS/UEFI позволяет выбрать устройство, с которого будет загружена операционная система. Это может быть локальный диск, сеть или другой носитель.
4. Определение EFI-раздела (ESP)
Если используется UEFI, система определяет EFI System Partition (ESP) на загрузочном устройстве. Этот раздел содержит загрузочные файлы и другие важные данные для загрузки ОС.
5. Загрузка загрузчика (например, GRUB2)
BIOS/UEFI передает управление загрузчику, такому как GRUB (Grand Unified Bootloader). GRUB предоставляет меню выбора ОС или автоматически загружает установленный по умолчанию Linux.
6. Определение ядра Linux
GRUB или другой загрузчик выбирает ядро Linux, основываясь на конфигурационных файлах и версиях ядра.
7. Загрузка выбранного ядра
Загрузчик загружает выбранное ядро Linux в оперативную память. Ядро – это центральный компонент ОС, отвечающий за инициализацию оборудования и управление ресурсами системы.
8. Инициализация структур данных ядра
После загрузки ядро инициализирует свои структуры данных, систему управления памятью и подготавливается к передаче управления пользовательскому пространству.
9. Запуск Init/systemd (PID 1)
Ядро запускает инициализационную систему (init) или systemd, которая становится первым процессом в системе (PID 1). В современных дистрибутивах по умолчанию используется systemd, который управляет службами и процессами системы.
10. Выполнение стартовых скриптов
Init/systemd выполняет стартовые скрипты и инициализирует системные службы. Эти скрипты настраивают сеть, подключают файловые системы и выполняют другие важные задачи.
11. Готовая к работе система.
После завершения всех этапов загрузки система полностью загружена и готова к использованию. Вы можете войти в систему и запускать приложения, работать с файлами и выполнять другие задачи.
Power On — Включение компьютера
1. Инициализация BIOS/UEFI
При включении компьютера загружается прошивка BIOS или UEFI из энергонезависимой памяти (NVRAM). Она отвечает за инициализацию оборудования, выполнение самотестирования (POST) и запуск процесса загрузки.
2. Поиск оборудования
BIOS/UEFI проверяет подключенные компоненты системы, такие как процессор, оперативная память, дисковые накопители и периферийные устройства.
3. Выбор загрузочного устройства (HDD, USB, PXE…)
После обнаружения оборудования BIOS/UEFI позволяет выбрать устройство, с которого будет загружена операционная система. Это может быть локальный диск, сеть или другой носитель.
4. Определение EFI-раздела (ESP)
Если используется UEFI, система определяет EFI System Partition (ESP) на загрузочном устройстве. Этот раздел содержит загрузочные файлы и другие важные данные для загрузки ОС.
5. Загрузка загрузчика (например, GRUB2)
BIOS/UEFI передает управление загрузчику, такому как GRUB (Grand Unified Bootloader). GRUB предоставляет меню выбора ОС или автоматически загружает установленный по умолчанию Linux.
6. Определение ядра Linux
GRUB или другой загрузчик выбирает ядро Linux, основываясь на конфигурационных файлах и версиях ядра.
7. Загрузка выбранного ядра
Загрузчик загружает выбранное ядро Linux в оперативную память. Ядро – это центральный компонент ОС, отвечающий за инициализацию оборудования и управление ресурсами системы.
8. Инициализация структур данных ядра
После загрузки ядро инициализирует свои структуры данных, систему управления памятью и подготавливается к передаче управления пользовательскому пространству.
9. Запуск Init/systemd (PID 1)
Ядро запускает инициализационную систему (init) или systemd, которая становится первым процессом в системе (PID 1). В современных дистрибутивах по умолчанию используется systemd, который управляет службами и процессами системы.
10. Выполнение стартовых скриптов
Init/systemd выполняет стартовые скрипты и инициализирует системные службы. Эти скрипты настраивают сеть, подключают файловые системы и выполняют другие важные задачи.
11. Готовая к работе система.
После завершения всех этапов загрузки система полностью загружена и готова к использованию. Вы можете войти в систему и запускать приложения, работать с файлами и выполнять другие задачи.
👍1
Шпаргалка по Tmux: установка, настройка, работа
Tmux (ти-макс) — это менеджер терминалов, который позволяет работать с несколькими сессиями в одном окне. То есть вместо нескольких открытых окон терминала — вы используете одно, которое можно делить на несколько окон.
Установка и настройка Tmux
Устанавливается Tmux из стандартных репозиториев Linux:
После установки рекомендуем сразу отредактировать конфигурационный файл ти-макса (/etc/tmux.conf) и внести следующие изменения:
Эта строчка кода позволит свободно перемещать границы разделения окон с помощью курсора мышки.
Работа с Tmux
Для работы с ти-миксом используется широкий набор горячих клавиш, состоящих из базового сочетания Ctrl + b и отдельных целевых клавиш (n,p,w,b и т.д.).
Работа с сессиями в Tmux
Для создания рабочей сессии без идентификатора — достаточно ввести tmux в терминале. Будет создана сессия 0:
Идентификатор сессии отображается внизу слева в квадратных скобках. Для создания именной сессии достаточно ввести следующую команду:
Поскольку ти-макс завершает соединение с сохранением состояния сессии, правильным способом возобновить работу ти-макса будет его запуск командой:
Команда запускает проверку уже созданных сессий и если активных подключений нет — создается новое подключение.
Просмотреть список созданных сессий можно командой:
Команда вернёт список следующего вида:
Если в списке одна сессия, то командой tmux attach она будет автоматически восстановлена, а если в списке несколько сессий — необходимо ввести следующую команду:
В нашем случае сессия называется 0.
Сменить сессию можно также, находясь в другой сессии. Для этого нужно воспользоваться сочетанием клавиш
Выйти из сессии можно с помощью сочетания клавиш Ctrl + b, d. А завершить сессию командой:
Закрыть все сессии можно командой:
Tmux (ти-макс) — это менеджер терминалов, который позволяет работать с несколькими сессиями в одном окне. То есть вместо нескольких открытых окон терминала — вы используете одно, которое можно делить на несколько окон.
Установка и настройка Tmux
Устанавливается Tmux из стандартных репозиториев Linux:
apt-get install tmux
После установки рекомендуем сразу отредактировать конфигурационный файл ти-макса (/etc/tmux.conf) и внести следующие изменения:
set -g mouse on
Эта строчка кода позволит свободно перемещать границы разделения окон с помощью курсора мышки.
Работа с Tmux
Для работы с ти-миксом используется широкий набор горячих клавиш, состоящих из базового сочетания Ctrl + b и отдельных целевых клавиш (n,p,w,b и т.д.).
Работа с сессиями в Tmux
Для создания рабочей сессии без идентификатора — достаточно ввести tmux в терминале. Будет создана сессия 0:
Идентификатор сессии отображается внизу слева в квадратных скобках. Для создания именной сессии достаточно ввести следующую команду:
tmux new -s название сессии
Поскольку ти-макс завершает соединение с сохранением состояния сессии, правильным способом возобновить работу ти-макса будет его запуск командой:
tmux attach || tmux new
Команда запускает проверку уже созданных сессий и если активных подключений нет — создается новое подключение.
Просмотреть список созданных сессий можно командой:
tmux ls
Команда вернёт список следующего вида:
0: 1 windows (created Mon Aug 30 13:02:31 2021) (attached)
Если в списке одна сессия, то командой tmux attach она будет автоматически восстановлена, а если в списке несколько сессий — необходимо ввести следующую команду:
tmux attach -t наименование сессии
В нашем случае сессия называется 0.
Сменить сессию можно также, находясь в другой сессии. Для этого нужно воспользоваться сочетанием клавиш
Ctrl + b, s
.Выйти из сессии можно с помощью сочетания клавиш Ctrl + b, d. А завершить сессию командой:
tmux kill-session -t название сессии
Закрыть все сессии можно командой:
tmux kill-server
👍3❤1
📌Какая разница между командами GREP, AWK и SED
Команды
1.
- Используется для поиска строк, соответствующих заданному шаблону (обычно регулярному выражению).
- Выводит найденные строки или их части.
- Основная задача – фильтрация текста.
Примеры:
2.
- Позволяет заменять, удалять, изменять текст на основе шаблонов.
- Работает построчно, но может также обрабатывать многострочные паттерны.
- Может использоваться для быстрого редактирования файлов.
Примеры:
3.
- Используется для извлечения данных, обработки полей, манипуляции с текстом.
- Работает как мини-программа: может выполнять арифметические операции, фильтрацию и форматирование.
- Использует колонки (разделенные пробелами или другими разделителями) для обработки данных.
Примеры:
Основные отличия между grep, sed и awk
Когда использовать?
- Нужно просто найти строку в файле? →
- Нужно заменить или удалить текст? →
- Нужно обработать данные, работать с колонками? →
Каждая из этих утилит может быть использована совместно для более сложных задач, например:
(Ищем ошибки, берем 2-й и 5-й столбцы, заменяем
Команды
grep
, awk
и sed
– это мощные утилиты в Unix/Linux, которые используются для обработки и манипуляции текстом. Они имеют разные цели, хотя в некоторых случаях их можно использовать взаимозаменяемо.1.
grep
– Поиск строк- Используется для поиска строк, соответствующих заданному шаблону (обычно регулярному выражению).
- Выводит найденные строки или их части.
- Основная задача – фильтрация текста.
Примеры:
grep "error" log.txt # Найти строки, содержащие "error"
grep -i "warning" log.txt # Игнорировать регистр
grep -E "fail|error" log.txt # Использовать расширенные регулярные выражения (ERE)
grep -v "INFO" log.txt # Исключить строки, содержащие "INFO"
2.
sed
– Потоковый редактор- Позволяет заменять, удалять, изменять текст на основе шаблонов.
- Работает построчно, но может также обрабатывать многострочные паттерны.
- Может использоваться для быстрого редактирования файлов.
Примеры:
sed 's/apple/orange/' file.txt # Заменить первое вхождение "apple" на "orange" в каждой строке
sed 's/error/ERROR/g' file.txt # Заменить все вхождения "error" на "ERROR"
sed '/DEBUG/d' file.txt # Удалить строки, содержащие "DEBUG"
sed -i 's/foo/bar/g' file.txt # Редактировать файл на месте (без создания копии)
3.
awk
– Анализ и обработка текста- Используется для извлечения данных, обработки полей, манипуляции с текстом.
- Работает как мини-программа: может выполнять арифметические операции, фильтрацию и форматирование.
- Использует колонки (разделенные пробелами или другими разделителями) для обработки данных.
Примеры:
awk '{print $1, $3}' file.txt # Вывести 1-й и 3-й столбцы
awk -F ":" '{print $1}' /etc/passwd # Вывести имена пользователей (разделитель - двоеточие)
awk '$3 > 50 {print $1, $3}' file.txt # Вывести строки, где 3-й столбец > 50
awk '{sum+=$3} END {print "Sum:", sum}' file.txt # Подсчитать сумму 3-го столбца
Основные отличия между grep, sed и awk
grep
: основное назначение - поиск строк по шаблону grep
: что делает лучше всего? - фильтрация строк по регулярным выражениямsed
: основное назначение - поиск и замена текста sed
: что делает лучше всего? - удаление, вставка строк в файлеawk
: основное назначение - работа с колонками и даннымиawk
: что делает лучше всего? - анализ данных, извлечение полей, обработка значенийКогда использовать?
- Нужно просто найти строку в файле? →
grep
- Нужно заменить или удалить текст? →
sed
- Нужно обработать данные, работать с колонками? →
awk
Каждая из этих утилит может быть использована совместно для более сложных задач, например:
grep "error" log.txt | awk '{print $2, $5}' | sed 's/:/-/'
(Ищем ошибки, берем 2-й и 5-й столбцы, заменяем
:
на `-`)👍3
Static-get или портативные утилиты в Linux
Static-get — инструмент, с помощью которого можно скачать статически слинкованный бинарный файл нужной нам утилиты. Такой файл будет работать практически на любом дистрибутиве. В данный момент, в базе static-get доступно 930 пакетов и количество постепенно растёт.
Установка и использование.
Каких-то специфических шагов для установки делать не потребуется, но наличие wget (почему-то без него первый запуск скрипта не выполнялся корректно) и tar будет обязательным.
Исполняемый файл static-get — это по сути скрипт, так что достаточно будет просто клонировать репозиторий с ним, и он уже будет готов к использованию.
Итак, с помощью скрипта мы можем: выполнить поиск нужной программы, скачать архив с ней, обновить её при необходимости, установить программу в систему и удалить её.
Скрипту так же можно передать некоторые параметры для работы — в каком репозитории искать пакеты, для какой архитектуры, какого формата они должны быть. Имеется возможность выполнить dry-run запуск или выполнить установку в verbose режиме. Несколько примеров работы ниже:
— Скачиваем и запускаем nano:
— Устанавливаем qemu в систему:
— Удаляем qemu:
— Ищем gcc в репозитории:
В своей работе static-get базируется на нескольких проектах — bifrost-autobuild, morpheus-autobuild, rlsd2-autobuild, misc-autosync. Бинарные файлы описываются в специальных рецетах (предпочтительны рецепты для bifrost), а после сборки архивы с пакетами публикуются в репозитории s.minos.io, откуда скриптом и выполняется установка.
Static-get — инструмент, с помощью которого можно скачать статически слинкованный бинарный файл нужной нам утилиты. Такой файл будет работать практически на любом дистрибутиве. В данный момент, в базе static-get доступно 930 пакетов и количество постепенно растёт.
Установка и использование.
Каких-то специфических шагов для установки делать не потребуется, но наличие wget (почему-то без него первый запуск скрипта не выполнялся корректно) и tar будет обязательным.
# dnf install git wget tar
Исполняемый файл static-get — это по сути скрипт, так что достаточно будет просто клонировать репозиторий с ним, и он уже будет готов к использованию.
# git clone https://github.com/minos-org/minos-static
# cd minos-static/
# ./static-get
Итак, с помощью скрипта мы можем: выполнить поиск нужной программы, скачать архив с ней, обновить её при необходимости, установить программу в систему и удалить её.
Скрипту так же можно передать некоторые параметры для работы — в каком репозитории искать пакеты, для какой архитектуры, какого формата они должны быть. Имеется возможность выполнить dry-run запуск или выполнить установку в verbose режиме. Несколько примеров работы ниже:
— Скачиваем и запускаем nano:
# ./static-get --extract nano
# ./nano/bin/nano --version
GNU nano, version 2.4.2
(C) 1999..2015 Free Software Foundation, Inc.
Email: [email protected] Web: https://www.nano-editor.org/
Compiled options: --disable-libmagic --disable-nls --disable-utf8
— Устанавливаем qemu в систему:
# ./static-get --install qemu
qemu-1.4.0-1.tar.xz
# /bin/qemu-io --version
qemu-io version 0.0.1
— Удаляем qemu:
# ./static-get --remove qemu
# /bin/qemu-io --version
-bash: /bin/qemu-io: No such file or directory
— Ищем gcc в репозитории:
# ./static-get --search gcc
gcc-4.6.1-2.tar.xz:672ba63bc0dd505104f22e4c3295c0e6
В своей работе static-get базируется на нескольких проектах — bifrost-autobuild, morpheus-autobuild, rlsd2-autobuild, misc-autosync. Бинарные файлы описываются в специальных рецетах (предпочтительны рецепты для bifrost), а после сборки архивы с пакетами публикуются в репозитории s.minos.io, откуда скриптом и выполняется установка.
❤2
Проверка портов
Проверить порты можно с помощью следующих команд:
nmap: Nmap («Network Mapper») – это инструмент с открытым исходным кодом для исследования сети и аудита безопасности. Он был разработан для быстрого сканирования больших сетей.
netstat: Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения.
https://telegra.ph/Proverka-portov-09-17
Проверить порты можно с помощью следующих команд:
nc: Netcat
– простая утилита Unix, которая считывает и записывает данные через сетевые соединения, используя протокол TCP или UDP.nmap: Nmap («Network Mapper») – это инструмент с открытым исходным кодом для исследования сети и аудита безопасности. Он был разработан для быстрого сканирования больших сетей.
telnet
: Утилита telnet используется для интерактивного взаимодействия с другим хостом по протоколу TELNET.netstat: Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения.
ss
: Утилита ss — это современная альтернатива для команды netstat. В отличие от netstat, которая берет информацию из каталога /proc, утилита ss напрямую связывается со специальной подсистемой ядра Linuxlost
: Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые.https://telegra.ph/Proverka-portov-09-17
❤3