Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Как работает Linux
Обзорная иллюстрация компонент и интерфейсов Linux
Основы Linux: пользователи и вход в систему
Основы Linux: командная строка
Основы Linux: дерево каталогов, файловые системы и файлы
Основы Linux: разграничение прав доступа и потоки ввода-вывода
Основы Linux: процессы и их свойства
Основы Linux: сигналы и управление процессами
Загрузка и дерево процессов Linux и Windows. Параллельные программы: процессы, нити и волокна
Программирование на bash в Linux
Команды bash: ветвеления, условия, циклы, функции
источник
👉 @i_linux
Обзорная иллюстрация компонент и интерфейсов Linux
Основы Linux: пользователи и вход в систему
Основы Linux: командная строка
Основы Linux: дерево каталогов, файловые системы и файлы
Основы Linux: разграничение прав доступа и потоки ввода-вывода
Основы Linux: процессы и их свойства
Основы Linux: сигналы и управление процессами
Загрузка и дерево процессов Linux и Windows. Параллельные программы: процессы, нити и волокна
Программирование на bash в Linux
Команды bash: ветвеления, условия, циклы, функции
источник
👉 @i_linux
👍7🔥2
Основные команды Linux: Управление пользователями и группами
аналогичны всем вышеуказанным для useradd
👉 @i_linux
-b – Базовый каталог по умолчанию, в котором создаются домашние каталоги пользователей. Обычно это / home, а пользовательские каталоги — /home/$ USER.-c “text text” – Текстовая строка для описания id, содержащая, например, полное имя пользователя.-e YYYY-MM_DD – Дата, когда учетная запись потеряет силу или будет заблокирована.-G gr1,gr2,gr3 – Список дополнительных групп, которым принадлежит пользователь.-o – Позволяет создать пользователя с неуникальным id.-u – Неотрицательное цифровое значение id пользователя, которое должно быть уникальным, если не определено иначе опцией -o. По умолчанию используется самое маленькое значение, не меньше, чем UID_MIN, причем больше, чем id любого из существующих пользователей.usermod user – изменение настроек пользователя с именем user в системеаналогичны всем вышеуказанным для useradd
-L – блокировка учетной записи-U – разблокировка учетной записиuserdel user – удаляет пользователя user из системы-r – удаление домашнего каталога пользователяusers – Выдаются имена пользователей, которые в текущий момент зарегистрированы в системеgroupadd group – добавление (создание) новой группы group в системе-f – Выйти со статусом успешного выполнения, если группа уже существует. Удобна при написании скриптов, когда нет необходимости проверять, существует ли группа, прежде чем пытаться ее создавать.-g – Задать id группы вручную.-o – Разрешить группу с неуникальным id.groupmod group – изменение информации о группе group в системе-n group2 задание нового имени group2groupdel group – удаление группы group из системыpasswd user – изменяет/устанавливает пароль пользователя user-l – блокирование учетной записи-d – удаление пароля учетной записи (блокирование)-f – установка даты прекращения полномочий-n – минимальное время действия пароля в днях-x – максимальное время действие пароля в днях-w – число дней появления предупреждения об окончании действия пароля-i – число дней, после которых пароль потеряет силу и учетка заблокируется.-S – вывод сообщения о статусе пользователяgpasswd group – изменяет/устанавливает пароль группы group (Наличие пароля группы позволяет пользователям временно войти в группу при помощи команды newgrp, если им известен пароль группы.)id who – просмотр информации о пользователе/группе who (принадлежность к группам, UID, GID)ulimit – ограничение пользовательских ресурсов:-a – отображение всех возможных ресурсов-f – ограничение размера файла-t – процессорное время👉 @i_linux
👍4
Cамые нужные команд SSH
Запускай команды быстро
Чтобы выполнить всего одну удаленную команду, совсем не обязательно подключаться к SSH, вводить команду, а затем отключаться. Можно сделать это сразу. Например, так можно посмотреть заполненность ФС удаленной машины:
А так — перезагрузить ее:
Составляй списки команд и запускай их разом
Если у тебя есть целый список команд, которые следует выполнить, их можно записать в файл и скормить этот файл SSH:
Редактируй удаленные файлы локальным редактором
Чтобы отредактировать файл на удаленной машине, не требуется заходить на нее и использовать консольный редактор. На самом деле файл можно открыть в твоем любимом текстовом редакторе на локальной машине (gvim заменяем на свой редактор):
Копируй содержимое удаленного файла в буфер обмена
Если необходимо скопировать содержимое удаленного файла или вывод команды в буфер обмена, не обязательно выводить его на экран или открывать в текстовом редакторе и копировать вручную. Можно использовать следующую команду:
А так можно скопировать вывод команды:
Сравнивай удаленный и локальный файл без копирования
Похожий прием можно использовать для сравнения двух файлов:
Работай с удаленными файлами с помощью локального файлового менеджера
Не всегда удобно работать с большим количеством файлов с помощью консольных команд или mc, запущенного на удаленной машине. Но всегда можно подключить любой каталог удаленной машины как сетевой диск. Для этого достаточно установить sshfs:
Создать каталог для подключения «сетевого диска»:
И подключить его:
Теперь все файлы удаленного каталога /home/user будут видны в каталоге ~/remote_files/ и с ними можно работать, как с обычными.
Копируй ключи быстро
Хоть и копирование публичного ключа на удаленный сервер — задача простая, но она требует выполнения нескольких действий вручную. Если тебя это напpягает, скопировать ключ можно в автоматическом режиме:
При этом не обязательно копировать основной ключ, с помощью флага -i можно указать любой другой:
Создай постоянное соединение с машиной
Если в течение дня ты часто подключаешься к одной машине, в том числе на несколько минут или секунд (чтобы просто запустить одну команду, например), есть смысл создать с ней постоянное соединение. Твой комп будет держать соединение открытым и использовать его для каждого подключения к машине. Это намного быстрее и экономичнее с точки зрения трафика и нагрузки на процессор.
Добавь следующие строки в ~/.ssh/config:
А затем создай соединение:
👉 @i_linux
Запускай команды быстро
Чтобы выполнить всего одну удаленную команду, совсем не обязательно подключаться к SSH, вводить команду, а затем отключаться. Можно сделать это сразу. Например, так можно посмотреть заполненность ФС удаленной машины:
$ ssh user@host df -hА так — перезагрузить ее:
$ ssh user@host sudo rebootСоставляй списки команд и запускай их разом
Если у тебя есть целый список команд, которые следует выполнить, их можно записать в файл и скормить этот файл SSH:
$ ssh user@host "`cat file.txt`"Редактируй удаленные файлы локальным редактором
Чтобы отредактировать файл на удаленной машине, не требуется заходить на нее и использовать консольный редактор. На самом деле файл можно открыть в твоем любимом текстовом редакторе на локальной машине (gvim заменяем на свой редактор):
$ gvim scp://user@host//путь/к/файлуКопируй содержимое удаленного файла в буфер обмена
Если необходимо скопировать содержимое удаленного файла или вывод команды в буфер обмена, не обязательно выводить его на экран или открывать в текстовом редакторе и копировать вручную. Можно использовать следующую команду:
$ ssh user@host cat /путь/к/файлу | xclipА так можно скопировать вывод команды:
$ ssh user@host uname -a | xclipСравнивай удаленный и локальный файл без копирования
Похожий прием можно использовать для сравнения двух файлов:
$ ssh user@host cat /путь/к/удаленному/файлу | diff /путь/к/лoкальному/файлу -Работай с удаленными файлами с помощью локального файлового менеджера
Не всегда удобно работать с большим количеством файлов с помощью консольных команд или mc, запущенного на удаленной машине. Но всегда можно подключить любой каталог удаленной машины как сетевой диск. Для этого достаточно установить sshfs:
$ sudo apt-get install sshfsСоздать каталог для подключения «сетевого диска»:
$ mkdir remote_filesИ подключить его:
$ sshfs user@host:/home/user ~/remote_files/Теперь все файлы удаленного каталога /home/user будут видны в каталоге ~/remote_files/ и с ними можно работать, как с обычными.
Копируй ключи быстро
Хоть и копирование публичного ключа на удаленный сервер — задача простая, но она требует выполнения нескольких действий вручную. Если тебя это напpягает, скопировать ключ можно в автоматическом режиме:
$ ssh-copy-id user@hostПри этом не обязательно копировать основной ключ, с помощью флага -i можно указать любой другой:
$ ssh-copy-id -i ~/my_key.pub user@hostСоздай постоянное соединение с машиной
Если в течение дня ты часто подключаешься к одной машине, в том числе на несколько минут или секунд (чтобы просто запустить одну команду, например), есть смысл создать с ней постоянное соединение. Твой комп будет держать соединение открытым и использовать его для каждого подключения к машине. Это намного быстрее и экономичнее с точки зрения трафика и нагрузки на процессор.
Добавь следующие строки в ~/.ssh/config:
Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster noА затем создай соединение:
$ ssh -MNf user@host👉 @i_linux
👍3
Media is too big
VIEW IN TELEGRAM
Systemd. Мир IT с Антоном Павленко.
Процесс загрузки Linux. Systemd, Kernel, GRUB2, Bios
Что такое systemd? Управление демонами linux c помощью systemctl
Основные параметры unit systemd linux. Создание unit systemd.
Изменение и создание unit systemd. Как написать свою службу в Linux?
Все видео на youtube
👉 @i_linux
Процесс загрузки Linux. Systemd, Kernel, GRUB2, Bios
Что такое systemd? Управление демонами linux c помощью systemctl
Основные параметры unit systemd linux. Создание unit systemd.
Изменение и создание unit systemd. Как написать свою службу в Linux?
Все видео на youtube
👉 @i_linux
👍1
🔥6👍3
This media is not supported in your browser
VIEW IN TELEGRAM
🎥Bash Scripting Essentials
01 - Getting Started
02 - Hello World
03 - Intro to Variables
04 - Executing Commands
05 - Basic Math Functions
06 - A Simple "If" Statement
07 - Checking the Existence of Files
08 - Universal Update Script
09 - Standard Input, Output, & Error
10 - Creating a While Loop
11 - Correcting Laptop Insomnia
12 - Filesystem Locations For Bash Scripts
13 - The Case Statement
14 - Sending Email with sendEmail
15 - Sending Email (Part 2)
16 - Sending Email (Part 3)
Все видео доступны на youtube
👉 @i_linux
01 - Getting Started
02 - Hello World
03 - Intro to Variables
04 - Executing Commands
05 - Basic Math Functions
06 - A Simple "If" Statement
07 - Checking the Existence of Files
08 - Universal Update Script
09 - Standard Input, Output, & Error
10 - Creating a While Loop
11 - Correcting Laptop Insomnia
12 - Filesystem Locations For Bash Scripts
13 - The Case Statement
14 - Sending Email with sendEmail
15 - Sending Email (Part 2)
16 - Sending Email (Part 3)
Все видео доступны на youtube
👉 @i_linux
👍2
Скрипт проверки активности всех ppp-соединений Mikrotik
если нужно проверять только определенный вид ppp замените строку :
на строку, например
Для использования поставьте этот скрипт в Планировщик с нужным интервалом (оптимально не менее 30 сек).
👉 @i_linux
# если по тоннелю пинга нет, то осуществляется разрыв тоннеля для переподключения
# внимание ! скрипт будет отключать активное vpn-соединение с админом, т.к. до него пинга не будет !
# поэтому в скрипте сделан обход удаления данного соединения (задаётся в adminClient, должен соответствовать ppp secret)
:local adminClient "you ppp secret admins` name"
:local pppTest value=[/ppp active find];
:local pingNumber value=2;
:local pingMin value=1;
:foreach userTest in=$pppTest do={
:local pingOk value=[:ping [/ppp active get $userTest value-name=address] count=$pingNumber]
:if (($pingOk < $pingMin) && ([/ppp active get $userTest value-name=name]!=$adminClient)) do={
:log warning message=([/ppp active get $userTest value-name=service] . " auto disconnected: ". $pingOk . " ping ok over " . $pingNumber . " " . [/ppp active get $userTest value-name=name] . " " . [/ppp active get $userTest value-name=address])
/ppp active remove $userTest
}
}
если нужно проверять только определенный вид ppp замените строку :
# :local pppTest value=[/ppp active find];на строку, например
# :local pppTest value=[/ppp active find where service=pptp];Для использования поставьте этот скрипт в Планировщик с нужным интервалом (оптимально не менее 30 сек).
👉 @i_linux
👍3
Media is too big
VIEW IN TELEGRAM
Sniffer - современный альтернативный сниффер сетевого трафика.
Sniffer предназначен для поиска и устранения неисправностей в сети. Он может быть запущен в любое время для анализа процессов или соединений, вызывающих увеличение сетевого трафика, без загрузки каких-либо модулей ядра. Кстати, пользовательский интерфейс программы отзывчив, что позволяет автоматически подстраиваться под терминалы любого размера.
Sniffer использует библиотеку
Debian/Ubuntu
CentOS/Fedora
Windows
После этого установите sniffer командой go get
MacOS
$ brew install sniffer
Использование
❯
https://github.com/chenjiandongx/sniffer
👉 @i_linux
Sniffer предназначен для поиска и устранения неисправностей в сети. Он может быть запущен в любое время для анализа процессов или соединений, вызывающих увеличение сетевого трафика, без загрузки каких-либо модулей ядра. Кстати, пользовательский интерфейс программы отзывчив, что позволяет автоматически подстраиваться под терминалы любого размера.
Sniffer использует библиотеку
libpcap для перехвата пакетов пользовательского уровня, поэтому сначала необходимо установить ее.Debian/Ubuntu
$ sudo apt-get install libpcap-devCentOS/Fedora
$ sudo yum install libpcap libpcap-develWindows
https://npcap.com/После этого установите sniffer командой go get
$ go get -u github.com/chenjiandongx/snifferMacOS
$ brew install sniffer
Использование
❯
sniffer -h
# A modern alternative network traffic sniffer.
Usage:
sniffer [flags]
Examples:
# bytes mode in MB unit
$ sniffer -u MB
# only capture the TCP protocol packets with lo,eth prefixed devices
$ sniffer -b tcp -d lo -d eth
Flags:
-a, --all-devices listen all devices if present
-b, --bpf string specify string pcap filter with the BPF syntax (default "tcp or udp")
-d, --devices-prefix stringArray prefixed devices to monitor (default [en,lo,eth,em,bond])
-h, --help help for sniffer
-i, --interval int interval for refresh rate in seconds (default 1)
-l, --list list all devices name
-m, --mode int view mode of sniffer (0: bytes 1: packets 2: plot)
-n, --no-dns-resolve disable the DNS resolution
-u, --unit string unit of traffic stats, optional: B, Kb, KB, Mb, MB, Gb, GB (default "KB")
-v, --version version for sniffer
https://github.com/chenjiandongx/sniffer
👉 @i_linux
👍6
Как отлаживать bash-noscript-ы по шагам
Мне всегда хотелось иметь возможность отлаживать bash-noscripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.
Волшебная строчка, которую нужно добавить после
Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.
Если понимаем, что что-то пошло не так, нажимаем
Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды
команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо
переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.
👉 @i_linux
Мне всегда хотелось иметь возможность отлаживать bash-noscripts так же, как и любой другой код, т.е. по шагам, и 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 noscript 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";
👉 @i_linux
👍8