🔍 Как рекурсивно найти все файлы в текущей и поддиректориях с использованием шаблонов?
Если ты ищешь способ найти все файлы, соответствующие определенному шаблону, в текущей директории и всех поддиректориях, используй команду
Объяснение:
-
-
Дополнительные возможности:
- Для поиска без учета регистра используй:
- Если ты не хочешь получать уведомления об ошибках доступа к директориям, используй:
- Чтобы искать только файлы, исключая директории, добавь
Советы:
- Обязательно используй кавычки вокруг шаблона, чтобы избежать его расширения оболочкой перед передачей в
- Если у тебя есть символические ссылки, и ты хочешь их обрабатывать, добавь опцию
Ветка: https://stackoverflow.com/questions/5905054/how-can-i-recursively-find-all-files-in-current-and-subfolders-based-on-wildcard
📩 Завтра: Darling: Запускай MacOS приложения на Linux как профи!
Включи 🔔 чтобы не пропустить!
________________
Дополнительный материал:
🧠 - Linux Deep Dive: Разбираемся с UID и группами
🧠 - Как использовать команду basename для упрощения ваших скриптов Bash
🧠 - От простого до грандиозного: Путешествие Kubernetes в мире контейнеризации
tags: #linux #find #search #tips #stackoverflow @LinuxSkill
Если ты ищешь способ найти все файлы, соответствующие определенному шаблону, в текущей директории и всех поддиректориях, используй команду
find:
find . -name "foo*"
Объяснение:
-
find требует начальную точку поиска, поэтому . (точка) указывает на текущую директорию.-
"foo*" — это шаблон, который указывает find искать все файлы, начинающиеся с "foo".Дополнительные возможности:
- Для поиска без учета регистра используй:
find . -iname "foo*"
- Если ты не хочешь получать уведомления об ошибках доступа к директориям, используй:
find . -name "foo*" 2>/dev/null
- Чтобы искать только файлы, исключая директории, добавь
-type f:
find . -name "foo*" -type f
Советы:
- Обязательно используй кавычки вокруг шаблона, чтобы избежать его расширения оболочкой перед передачей в
find.- Если у тебя есть символические ссылки, и ты хочешь их обрабатывать, добавь опцию
-L.Ветка: https://stackoverflow.com/questions/5905054/how-can-i-recursively-find-all-files-in-current-and-subfolders-based-on-wildcard
📩 Завтра: Darling: Запускай MacOS приложения на Linux как профи!
Включи 🔔 чтобы не пропустить!
________________
Дополнительный материал:
🧠 - Linux Deep Dive: Разбираемся с UID и группами
🧠 - Как использовать команду basename для упрощения ваших скриптов Bash
🧠 - От простого до грандиозного: Путешествие Kubernetes в мире контейнеризации
tags: #linux #find #search #tips #stackoverflow @LinuxSkill
👍19🔥2
🎨 Как изменить цвет вывода команды echo в Linux?
Хочешь добавить немного цвета в свои скрипты? Используй ANSI escape-коды, чтобы изменить цвет текста в терминале! Вот как это сделать:
Коды цветов:
- Черный:
- Красный:
- Зеленый:
- Коричневый/Оранжевый:
- Синий:
- Фиолетовый:
- Голубой:
- Светло-серый:
Пример использования:
Совет: Если используешь
Замечания:
- Используй кавычки, чтобы избежать расширения шаблонов.
- На MacOSX вместо
- Цвета зависят от конфигурации терминала, так что результат может различаться.
Теперь ты знаешь, как добавить немного цвета в свои скрипты! 🎨
Ветка: https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
📩 Завтра: Неожиданные секреты Linux: 12 утилит, которые спасут твой сервер!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Освежаем Linux Skills: Как удалить особые режимы разрешений?
🧠 - Станьте мастером правописания в Linux с помощью команды Aspell
🧠 - Путь дистрибутивов на базе Gentoo от Calculate Linux до Sabayon
@LinuxSkill #echo #stackoverflow
Хочешь добавить немного цвета в свои скрипты? Используй ANSI escape-коды, чтобы изменить цвет текста в терминале! Вот как это сделать:
Коды цветов:
- Черный:
0;30, Темно-серый: 1;30- Красный:
0;31, Светло-красный: 1;31- Зеленый:
0;32, Светло-зеленый: 1;32- Коричневый/Оранжевый:
0;33, Желтый: 1;33- Синий:
0;34, Светло-синий: 1;34- Фиолетовый:
0;35, Светло-фиолетовый: 1;35- Голубой:
0;36, Светло-голубой: 1;36- Светло-серый:
0;37, Белый: 1;37Пример использования:
RED='\033[0;31m'
NC='\033[0m' # Без цвета
printf "I ${RED}love${NC} Stack Overflow\n"
Совет: Если используешь
echo, добавь флаг -e для обработки escape-последовательностей:echo -e "I ${RED}love${NC} Stack Overflow"
Замечания:
- Используй кавычки, чтобы избежать расширения шаблонов.
- На MacOSX вместо
\e используй \x1B.- Цвета зависят от конфигурации терминала, так что результат может различаться.
Теперь ты знаешь, как добавить немного цвета в свои скрипты! 🎨
Ветка: https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
📩 Завтра: Неожиданные секреты Linux: 12 утилит, которые спасут твой сервер!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Освежаем Linux Skills: Как удалить особые режимы разрешений?
🧠 - Станьте мастером правописания в Linux с помощью команды Aspell
🧠 - Путь дистрибутивов на базе Gentoo от Calculate Linux до Sabayon
@LinuxSkill #echo #stackoverflow
Stack Overflow
How to change the output color of echo in Linux
I am trying to print a text in a red color in the terminal using echo command.
How can I do that?
How can I do that?
👍8🔥7
🛠️ Как удалить экспортированную переменную окружения в Linux?
Если тебе нужно удалить экспортированную переменную окружения, команда
Важно знать:
- Эта команда удаляет переменную только для текущей сессии терминала. При открытии нового окна терминала переменные загружаются из таких файлов, как
- Если переменная автоматически устанавливается при каждом запуске терминала, попробуй найти её в скрытых файлах домашней директории. Используй команду:
Это может занять время, если у тебя много файлов.
Как сохранить значение переменной, но убрать экспорт:
- В bash можно использовать:
или
Удаление переменной в разных сессиях:
- Нет команды, которая бы удалила переменную во всех существующих сессиях. Лучше найти файл инициализации, где она устанавливается, и отредактировать его, чтобы переменная не устанавливалась в будущих сессиях.
Ветка: https://stackoverflow.com/questions/6877727/how-do-i-delete-an-exported-environment-variable
📩 Завтра: Твой незаменимый помощник: Скрипт для мониторинга Linux!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Улучшаем Linux Skills: Мастерство символического представления разрешений с chmod
🧠 - Знаете ли вы, как узнать архитектуру вашей машины в Linux
🧠 - Открытие Ansible: Как простой инструмент стал гигантом управления конфигурациями
#stackoverflow @LinuxSkill #Linux #EnvironmentVariables #Bash #Tips #Automation
Если тебе нужно удалить экспортированную переменную окружения, команда
unset — это то, что тебе нужно:unset GNUPLOT_DRIVER_DIR
Важно знать:
- Эта команда удаляет переменную только для текущей сессии терминала. При открытии нового окна терминала переменные загружаются из таких файлов, как
~/.bashrc или ~/.profile.- Если переменная автоматически устанавливается при каждом запуске терминала, попробуй найти её в скрытых файлах домашней директории. Используй команду:
grep -r <имя_переменной> ~
Это может занять время, если у тебя много файлов.
Как сохранить значение переменной, но убрать экспорт:
- В bash можно использовать:
typescriptdeclare +x MYVAR
или
export -n MYVAR
Удаление переменной в разных сессиях:
- Нет команды, которая бы удалила переменную во всех существующих сессиях. Лучше найти файл инициализации, где она устанавливается, и отредактировать его, чтобы переменная не устанавливалась в будущих сессиях.
Ветка: https://stackoverflow.com/questions/6877727/how-do-i-delete-an-exported-environment-variable
📩 Завтра: Твой незаменимый помощник: Скрипт для мониторинга Linux!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Улучшаем Linux Skills: Мастерство символического представления разрешений с chmod
🧠 - Знаете ли вы, как узнать архитектуру вашей машины в Linux
🧠 - Открытие Ansible: Как простой инструмент стал гигантом управления конфигурациями
#stackoverflow @LinuxSkill #Linux #EnvironmentVariables #Bash #Tips #Automation
👍13
🔍 Как найти различия между двумя деревьями каталогов в Linux?
Ты когда-нибудь задумывался, как быстро сравнить содержимое двух директорий и выявить различия? Сегодня мы расскажем, как это сделать с помощью команды
Чтобы сравнить два дерева каталогов и найти различия в содержимом файлов, используй команду
-
-
Если ты хочешь увидеть различия для файлов, которые могут отсутствовать в одной из директорий, добавь флаг
Используя эти команды, ты сможешь легко и быстро выявить различия между двумя директориями, что особенно полезно при управлении версиями и контроле изменений. Попробуй сам и убедись, насколько это удобно!
🌳 Ветка: https://stackoverflow.com/questions/4997693/given-two-directory-trees-how-can-i-find-out-which-files-differ-by-content
📩 Завтра: 18 команд которые должен знать каждый линуксоид!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Мастерство использования команды chown для смены владельца файлов и каталогов
🧠 - Станьте Мастером Календаря в Linux с Cal и NCal
🧠 - Станьте Мастером Управления Пользователями в Linux
#stackoverflow @LinuxSkill #Linux #Diff #DirectoryComparison #SysAdmin #DevOps
Ты когда-нибудь задумывался, как быстро сравнить содержимое двух директорий и выявить различия? Сегодня мы расскажем, как это сделать с помощью команды
diff в Linux.Чтобы сравнить два дерева каталогов и найти различия в содержимом файлов, используй команду
diff с флагами -qr:diff -qr dir1/ dir2/
-
-q или --brief — выводит только информацию о различиях, без детального сравнения.-
-r или --recursive — рекурсивно обходит все подкаталоги.Если ты хочешь увидеть различия для файлов, которые могут отсутствовать в одной из директорий, добавь флаг
-N:diff -qrN dir1/ dir2/
Используя эти команды, ты сможешь легко и быстро выявить различия между двумя директориями, что особенно полезно при управлении версиями и контроле изменений. Попробуй сам и убедись, насколько это удобно!
🌳 Ветка: https://stackoverflow.com/questions/4997693/given-two-directory-trees-how-can-i-find-out-which-files-differ-by-content
📩 Завтра: 18 команд которые должен знать каждый линуксоид!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Мастерство использования команды chown для смены владельца файлов и каталогов
🧠 - Станьте Мастером Календаря в Linux с Cal и NCal
🧠 - Станьте Мастером Управления Пользователями в Linux
#stackoverflow @LinuxSkill #Linux #Diff #DirectoryComparison #SysAdmin #DevOps
Stack Overflow
Given two directory trees, how can I find out which files differ by content?
If I want find the differences between two directory trees, I usually just execute:
diff -r dir1/ dir2/
This outputs exactly what the differences are between corresponding files. I'm interested i...
diff -r dir1/ dir2/
This outputs exactly what the differences are between corresponding files. I'm interested i...
👍23
⏱️ Как измерить время выполнения программы в Linux?
Хочешь узнать, сколько времени занимает выполнение твоих скриптов или команд в Linux? Сегодня мы расскажем, как использовать встроенную команду
Основная информация:
Команда
1. Использование команды
Просто добавь
Вывод будет примерно таким:
-
-
-
2. Измерение времени для нескольких команд:
Если нужно измерить время выполнения нескольких команд, используй группу команд:
Используя команду
🌳 Ветка: https://stackoverflow.com/questions/385408/get-program-execution-time-in-the-shell
📩 Завтра: Как не стать жертвой сниффинга паролей на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Открываем Мир b2-tools
🧠 - Открываем Все Тайны Команды Cat
🧠 - Разгадываем Загадки с Diff3
#stackoverflow @LinuxSkill #Linux #TimeCommand #Performance #SysAdmin #DevOps
Хочешь узнать, сколько времени занимает выполнение твоих скриптов или команд в Linux? Сегодня мы расскажем, как использовать встроенную команду
time для этого.Основная информация:
Команда
time позволяет измерить реальное время, затраченное на выполнение команды, а также время работы процессора. Вот как это сделать:1. Использование команды
time:Просто добавь
time перед командой, которую хочешь измерить. Например:time sleep 2
Вывод будет примерно таким:
real 0m2.009s
user 0m0.000s
sys 0m0.004s
-
real — общее время выполнения.-
user — время, затраченное на выполнение пользовательского кода.-
sys — время, затраченное на выполнение системного кода.2. Измерение времени для нескольких команд:
Если нужно измерить время выполнения нескольких команд, используй группу команд:
time { command1; command2; }
Используя команду
time, ты можешь легко измерять производительность своих скриптов и оптимизировать их. Попробуй сам и убедись, насколько это полезно!🌳 Ветка: https://stackoverflow.com/questions/385408/get-program-execution-time-in-the-shell
📩 Завтра: Как не стать жертвой сниффинга паролей на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Открываем Мир b2-tools
🧠 - Открываем Все Тайны Команды Cat
🧠 - Разгадываем Загадки с Diff3
#stackoverflow @LinuxSkill #Linux #TimeCommand #Performance #SysAdmin #DevOps
Stack Overflow
Get program execution time in the shell
I want to execute something in a linux shell under a few different conditions, and be able to output the execution time of each execution.
I know I could write a perl or python script that would d...
I know I could write a perl or python script that would d...
👍14
🛠️ Что означает $@ в shell скрипте?
Если ты когда-либо задавался вопросом, что такое
то
Когда внутри
каждый параметр будет передан в
Пример использования:
Если ты вызовешь:
то
Использование
🌳 Ветка: https://stackoverflow.com/questions/9994295/what-does-mean-in-a-shell-script
📩 Завтра: Защити свой сервер: Настройка безопасности SSH на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Текстовый редактор Nano — как работать с файлами на минималках и не страдать!
🧠 - Почувствуй себя цифровым рентгенологом — откроем файлы насквозь с Od!
🧠 - Давно занимался спортом? Нет? Ну вот, пора хотя бы пароли сменить!
#stackoverflow @LinuxSkill #Linux #ShellScripting #SysAdmin #DevOps
Если ты когда-либо задавался вопросом, что такое
$@ в shell скрипте, то сегодня мы разберем эту загадку и покажем, как использовать его для передачи параметров.$@ представляет собой все параметры, переданные скрипту. Например, если ты вызовешь скрипт так:./someScript.sh foo bar
то
$@ будет равно foo bar.Когда внутри
someScript.sh ты используешь:umbrella_corp_options "$@"
каждый параметр будет передан в
umbrella_corp_options в двойных кавычках. Это позволяет передавать параметры с пробелами, как единое целое.Пример использования:
Если ты вызовешь:
./someScript.sh foo bar "boo far"
то
$@ в двойных кавычках будет содержать три аргумента: "foo", "bar" и "boo far".Использование
$@ в shell скриптах позволяет легко и безопасно передавать параметры, включая те, которые содержат пробелы. Попробуй сам и убедись, насколько это удобно!🌳 Ветка: https://stackoverflow.com/questions/9994295/what-does-mean-in-a-shell-script
📩 Завтра: Защити свой сервер: Настройка безопасности SSH на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Текстовый редактор Nano — как работать с файлами на минималках и не страдать!
🧠 - Почувствуй себя цифровым рентгенологом — откроем файлы насквозь с Od!
🧠 - Давно занимался спортом? Нет? Ну вот, пора хотя бы пароли сменить!
#stackoverflow @LinuxSkill #Linux #ShellScripting #SysAdmin #DevOps
Stack Overflow
What does $@ mean in a shell script?
What does a dollar sign followed by an at-sign (@) mean in a shell script?
For example:
umbrella_corp_options $@
For example:
umbrella_corp_options $@
👍18🔥2
🧠 Нужно ли ставить кавычки вокруг переменных в shell-скриптах?
Привет, повелитель терминала! Если ты в скриптах пишешь
Давай разберёмся, когда и зачем переменные в shell-скриптах нужно оборачивать в кавычки.
### Общее правило:
> Оборачивай переменные в двойные кавычки, если не хочешь сюрпризов от пробелов, пустых значений и спецсимволов.
---
### Когда кавычки обязательны:
1. Значение может быть пустым:
2. Есть пробелы:
3. В переменной спецсимволы (
---
### Пример бага:
---
### Когда кавычки можно опустить:
-
- Внутри арифметических или логических выражений:
Вывод:
Используй кавычки по умолчанию. Это просто и защищает от десятков потенциальных багов.
🌳 Ветка: https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-shell-variable
📩 Завтра: Секреты Bash: Как тестировать порты без curl и wget!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Откройте для себя мир Управления Службами в Linux с нашей серией статей
🧠 - Контейнер в контейнере? Да это как матрёшка для айтишников: открываешь, а там ещё больше проблем… но зато все свои!
🧠 - Секретная Команда nsenter! Управляй Контейнерами как Хакер
#stackoverflow @LinuxSkill #Linux #ShellScripting #Quotes #SysAdmin #DevOps
Привет, повелитель терминала! Если ты в скриптах пишешь
$var без кавычек — скорее всего, ты (пока что) просто везучий. Давай разберёмся, когда и зачем переменные в shell-скриптах нужно оборачивать в кавычки.
### Общее правило:
> Оборачивай переменные в двойные кавычки, если не хочешь сюрпризов от пробелов, пустых значений и спецсимволов.
---
### Когда кавычки обязательны:
1. Значение может быть пустым:
[ "$var" = "value" ]
2. Есть пробелы:
xdg-open "$URL"
3. В переменной спецсимволы (
*, &, ?): wget "$link"
---
### Пример бага:
file="My documents/report.pdf"
rm $file # ❌ Попытка удалить два файла: 'My' и 'documents/report.pdf'
rm "$file" # ✅ Удаляется нужный файл
---
### Когда кавычки можно опустить:
-
$?, $#, $0 — безопасны без кавычек.- Внутри арифметических или логических выражений:
if [ "$?" -eq 0 ]; then ...
Вывод:
Используй кавычки по умолчанию. Это просто и защищает от десятков потенциальных багов.
🌳 Ветка: https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-shell-variable
📩 Завтра: Секреты Bash: Как тестировать порты без curl и wget!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Откройте для себя мир Управления Службами в Linux с нашей серией статей
🧠 - Контейнер в контейнере? Да это как матрёшка для айтишников: открываешь, а там ещё больше проблем… но зато все свои!
🧠 - Секретная Команда nsenter! Управляй Контейнерами как Хакер
#stackoverflow @LinuxSkill #Linux #ShellScripting #Quotes #SysAdmin #DevOps
Stack Overflow
When to wrap quotes around a shell variable?
Should or should I not wrap quotes around variables in a shell script?
For example, is the following correct:
xdg-open $URL
[ $? -eq 2 ]
or
xdg-open "$URL"
[ "$?" -eq "2&q...
For example, is the following correct:
xdg-open $URL
[ $? -eq 2 ]
or
xdg-open "$URL"
[ "$?" -eq "2&q...
👍14
🧯 Как удалить конкретные правила из iptables (а не всё подряд)?
Привет, линуксоид! Бывало такое: правила в iptables работают как часы, но внезапно нужно откатить одно-два, не трогая всё остальное. Ниже — короткий гайд, как это сделать аккуратно и по-взрослому.
✅ Способ 1. Удалить правило по содержимому
Повтори ту же команду, но с
💡 Работает, только если правило совпадает дословно.
🧩 Способ 2. Удалить по номеру
Сначала покажи номера правил:
Удаление:
Если правило в NAT:
🛠 Способ 3. Комментарии и iptables-restore
Добавляешь правило с комментарием:
Потом удаляешь всё с этим тегом:
🧼 Способ 4. Через
Показать все правила:
Удалить нужное вручную (заменив
⚠️ Не забудь:
- При удалении по номеру порядок важен: после удаления строки остальные смещаются.
- Не используй
🌳 Ветка: https://stackoverflow.com/questions/10197405/how-can-i-remove-specific-rules-from-iptables
📩 Завтра: iptables: доступ к порту 8000 только с одного IP
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Эй, ты в курсе, что с Grafana можно раз и навсегда забыть о хаосе в мониторинге серверов?
🧠 - Секретная связка Angie и Grafana для тотального контроля над серверами
🧠 - Неожиданно закончилась память? 3 секрета команды du -h
#stackoverflow @LinuxSkill #iptables #Linux #сетевоеадминистрирование #firewall #DevOps #SysAdmin #безопасность
Привет, линуксоид! Бывало такое: правила в iptables работают как часы, но внезапно нужно откатить одно-два, не трогая всё остальное. Ниже — короткий гайд, как это сделать аккуратно и по-взрослому.
✅ Способ 1. Удалить правило по содержимому
Повтори ту же команду, но с
-D вместо -A:iptables -D INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
💡 Работает, только если правило совпадает дословно.
🧩 Способ 2. Удалить по номеру
Сначала покажи номера правил:
iptables -L INPUT --line-numbers
Удаление:
iptables -D INPUT 3
Если правило в NAT:
iptables -t nat -L PREROUTING --line-numbers
iptables -t nat -D PREROUTING 1
🛠 Способ 3. Комментарии и iptables-restore
Добавляешь правило с комментарием:
iptables -A INPUT -s 1.2.3.4 -j DROP -m comment --comment "ban_temp"
Потом удаляешь всё с этим тегом:
iptables-save | grep -v "ban_temp" | iptables-restore
🧼 Способ 4. Через
iptables -SПоказать все правила:
iptables -S
Удалить нужное вручную (заменив
-A на -D):iptables -D INPUT -p tcp --dport 443 -j ACCEPT
⚠️ Не забудь:
- При удалении по номеру порядок важен: после удаления строки остальные смещаются.
- Не используй
iptables -F, если не хочешь снести всё подчистую.🌳 Ветка: https://stackoverflow.com/questions/10197405/how-can-i-remove-specific-rules-from-iptables
📩 Завтра: iptables: доступ к порту 8000 только с одного IP
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Эй, ты в курсе, что с Grafana можно раз и навсегда забыть о хаосе в мониторинге серверов?
🧠 - Секретная связка Angie и Grafana для тотального контроля над серверами
🧠 - Неожиданно закончилась память? 3 секрета команды du -h
#stackoverflow @LinuxSkill #iptables #Linux #сетевоеадминистрирование #firewall #DevOps #SysAdmin #безопасность
Stack Overflow
How can I remove specific rules from iptables?
I am hosting special HTTP and HTTPS services on the ports 8006 and 8007 respectively. I use iptables to "activate" the server; i.e. to route the incoming HTTP and HTTPS ports:
iptables -A INPUT -i...
iptables -A INPUT -i...
👍18🔥2
🔐 iptables: доступ к порту 8000 только с одного IP
Привет, хранитель сетей! Если ты хочешь открыть доступ к какому-либо сервису (например, веб-интерфейсу на порту 8000) только для одного IP, не трогая весь остальной трафик — вот как это делается через
🔧 Пример: разрешить доступ только для 1.2.3.4
Так ты явно разрешаешь доступ для IP
💡 Альтернатива: блокировать всех, кроме одного IP
Один простой вариант — одна строка, эффект тот же.
📌 Несколько полезных замечаний:
- Для диапазона IP используй:
- Чтобы снять правило, замени
- Не забудь сохранить конфигурацию, если не хочешь потерять правила после перезагрузки:
🌳 Ветка: https://stackoverflow.com/questions/7423309/iptables-block-access-to-port-8000-except-from-ip-address
📩 Завтра: Как управлять iptables на лету — без
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Не трать время на конфиги: как упростить работу с WireGuard
🧠 - Неожиданный способ взломать систему: что такое бинарный анализ в Linux?
#stackoverflow @LinuxSkill #iptables #Linux #firewall #порт #безопасность #SysAdmin #DevOps
Привет, хранитель сетей! Если ты хочешь открыть доступ к какому-либо сервису (например, веб-интерфейсу на порту 8000) только для одного IP, не трогая весь остальной трафик — вот как это делается через
iptables.🔧 Пример: разрешить доступ только для 1.2.3.4
iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP
Так ты явно разрешаешь доступ для IP
1.2.3.4, а все остальные — отсекаешь.💡 Альтернатива: блокировать всех, кроме одного IP
iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP
Один простой вариант — одна строка, эффект тот же.
📌 Несколько полезных замечаний:
- Для диапазона IP используй:
-s 1.2.3.0/24- Чтобы снять правило, замени
-A на -D (или используй iptables -S и удаляй по номерам).- Не забудь сохранить конфигурацию, если не хочешь потерять правила после перезагрузки:
iptables-save > /etc/iptables.rules
🌳 Ветка: https://stackoverflow.com/questions/7423309/iptables-block-access-to-port-8000-except-from-ip-address
📩 Завтра: Как управлять iptables на лету — без
sudo, без потерьВключи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Не трать время на конфиги: как упростить работу с WireGuard
🧠 - Неожиданный способ взломать систему: что такое бинарный анализ в Linux?
#stackoverflow @LinuxSkill #iptables #Linux #firewall #порт #безопасность #SysAdmin #DevOps
Stack Overflow
iptables block access to port 8000 except from IP address
I've never used iptables, and the documentation online seems a bit opaque.
I'd like to block all requests to port 8000 on my server except those coming from a specific IP address. How do I do that...
I'd like to block all requests to port 8000 on my server except those coming from a specific IP address. How do I do that...
👍14👀1
🧠 Как управлять iptables на лету — без
Привет, сетевой волшебник! Если ты хоть раз пытался автоматически обновлять правила iptables из приложения или скрипта — ты знаешь, насколько это боль.
Сегодня разберём, как это делать программно, безопасно и эффективно — даже без API.
🤯 Проблема: у iptables нет API
-
- Прямого, документированного API в C, Python, Rust и т.д. не существует.
📌 Официальный ответ от Netfilter:
> “Нет, API не предусмотрен. Используйте
Источник: Netfilter FAQ
✅ Что работает на практике:
#1. iptables-restore (атомарная загрузка правил)
Можно применять *весь ruleset сразу*, не теряя соединений:
✔️ Безопасно: правила применяются при
✔️ Работает из любой программы через stdin
#2. ipset — для добавления IP без пересборки
✔️ Отлично подходит для динамических списков
✔️ Есть поддержка
✔️ Работает быстро и без потерь
#3. rfw — REST API для iptables (open source)
Позволяет управлять правилами через HTTP-запросы:
👉 Проект: https://github.com/gluczywo/rfw
✔️ Поддерживает JSON,
✔️ Работает на
✔️ Подходит для распределённых систем
#4. python-iptables
Обёртка над
🔗 https://github.com/ldx/python-iptables
✔️ Удобен для скриптов
❗ Требует осторожности при работе с низкоуровневым API
🛑 Что не делать:
- Не пиши правила через
- Не используй
- Не забывай про
🌳 Ветка: https://stackoverflow.com/questions/109553/how-can-i-programmatically-manage-iptables-rules-on-the-fly
📩 Завтра: Вопрос №17 из теста Linux Essentials Certification
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Настрой cron за 5 минут и забудь о ручной работе навсегда!
🧠 - Ты больше никогда не запутаешься в systemd: разбор по шагам!
🧠 - 10 секретов команды ping, которые знают только сетевые гуру
#stackoverflow @LinuxSkill #iptables #ipset #Linux #SysAdmin #DevOps #firewall #rfw #сетибезопасность
sudo, без потерьПривет, сетевой волшебник! Если ты хоть раз пытался автоматически обновлять правила iptables из приложения или скрипта — ты знаешь, насколько это боль.
Сегодня разберём, как это делать программно, безопасно и эффективно — даже без API.
🤯 Проблема: у iptables нет API
-
libiptc не предназначена для использования — она нестабильна и может быть удалена в будущем. - Прямого, документированного API в C, Python, Rust и т.д. не существует.
📌 Официальный ответ от Netfilter:
> “Нет, API не предусмотрен. Используйте
system() или iptables-restore.” Источник: Netfilter FAQ
✅ Что работает на практике:
#1. iptables-restore (атомарная загрузка правил)
Можно применять *весь ruleset сразу*, не теряя соединений:
iptables-restore < my_ruleset.conf
✔️ Безопасно: правила применяются при
COMMIT, в один вызов ядра ✔️ Работает из любой программы через stdin
#2. ipset — для добавления IP без пересборки
ipset create allowlist hash:ip
ipset add allowlist 1.2.3.4
iptables -A INPUT -m set --match-set allowlist src -j ACCEPT
✔️ Отлично подходит для динамических списков
✔️ Есть поддержка
timeout и swap ✔️ Работает быстро и без потерь
#3. rfw — REST API для iptables (open source)
Позволяет управлять правилами через HTTP-запросы:
PUT /drop/input/eth0/11.22.33.44
👉 Проект: https://github.com/gluczywo/rfw
✔️ Поддерживает JSON,
GET, PUT, DELETE, сериализацию ✔️ Работает на
localhost без SSL ✔️ Подходит для распределённых систем
#4. python-iptables
Обёртка над
libiptc (но будь осторожен):🔗 https://github.com/ldx/python-iptables
✔️ Удобен для скриптов
❗ Требует осторожности при работе с низкоуровневым API
🛑 Что не делать:
- Не пиши правила через
iptables -A в цикле - Не используй
libiptc напрямую в проде - Не забывай про
iptables-save как бэкап перед внесением правок🌳 Ветка: https://stackoverflow.com/questions/109553/how-can-i-programmatically-manage-iptables-rules-on-the-fly
📩 Завтра: Вопрос №17 из теста Linux Essentials Certification
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Настрой cron за 5 минут и забудь о ручной работе навсегда!
🧠 - Ты больше никогда не запутаешься в systemd: разбор по шагам!
🧠 - 10 секретов команды ping, которые знают только сетевые гуру
#stackoverflow @LinuxSkill #iptables #ipset #Linux #SysAdmin #DevOps #firewall #rfw #сетибезопасность
👍14
🚀 Как работает
Привет, архитектор переменных и властелин скриптов! Задумывался, зачем вообще нужен
🧠 Что делает
Когда ты пишешь:
ты говоришь bash: “Эй, сделай эту переменную доступной для всех дочерних процессов.”
Например, твой скрипт вызывает
🤔 А если без
Вот так:
Переменная будет доступна только внутри текущего shell, но не в дочерних процессах.
Однако есть лайфхак:
Так переменная временно экспортируется только для выполнения
⚠️ Важное ограничение
Экспорт работает вниз по процессу, но не вверх.
Если ты экспортируешь переменную в скрипте, родительский терминал её не увидит.
🛠 Вывод
Хочешь, чтобы переменная работала в дочерних процессах? Используй
Пишешь скрипт с вызовом других программ? Без
Но если переменная нужна только внутри текущего скрипта — не трать лишние байты.
🌳 Ветка: https://stackoverflow.com/questions/1158091/defining-a-variable-with-or-without-export
📩 Завтра: Прокачай свой namei: секретная опция для идеального вывода!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Поднимем отказоустойчивое хранилище в Proxmox VE с Ceph
🧠 - Отключи ненужные конфиги в Apache за пару команд!
🧠 - Контролируй трафик в реальном времени! Три утилиты для мониторинга сети в Linux
#stackoverflow @LinuxSkill #Linux #ShellScripting #Export #SysAdmin #DevOps
export в bash и когда он реально нужен?Привет, архитектор переменных и властелин скриптов! Задумывался, зачем вообще нужен
export в bash и что он делает с переменными? Сегодня разложим по полочкам — коротко, чётко и с пользой!🧠 Что делает
exportКогда ты пишешь:
export MY_VAR=value
ты говоришь bash: “Эй, сделай эту переменную доступной для всех дочерних процессов.”
Например, твой скрипт вызывает
python, curl, node — они смогут использовать MY_VAR.🤔 А если без
export?Вот так:
MY_VAR=value
Переменная будет доступна только внутри текущего shell, но не в дочерних процессах.
Однако есть лайфхак:
MY_VAR=hello node script.js
Так переменная временно экспортируется только для выполнения
node script.js. Удобно? Да!⚠️ Важное ограничение
Экспорт работает вниз по процессу, но не вверх.
Если ты экспортируешь переменную в скрипте, родительский терминал её не увидит.
🛠 Вывод
Хочешь, чтобы переменная работала в дочерних процессах? Используй
export. Пишешь скрипт с вызовом других программ? Без
export будет больно. Но если переменная нужна только внутри текущего скрипта — не трать лишние байты.
🌳 Ветка: https://stackoverflow.com/questions/1158091/defining-a-variable-with-or-without-export
📩 Завтра: Прокачай свой namei: секретная опция для идеального вывода!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Поднимем отказоустойчивое хранилище в Proxmox VE с Ceph
🧠 - Отключи ненужные конфиги в Apache за пару команд!
🧠 - Контролируй трафик в реальном времени! Три утилиты для мониторинга сети в Linux
#stackoverflow @LinuxSkill #Linux #ShellScripting #Export #SysAdmin #DevOps
Stack Overflow
Defining a variable with or without export
What is export for?
What is the difference between:
export name=value
and
name=value
What is the difference between:
export name=value
and
name=value
👍19🔥1
💥 Почему
Привет, терминальный заклинатель! Кажется, ты добавил
🤔 Что вообще делает
> "Если любая команда завершится ошибкой, — останови скрипт немедленно".
Это полезно для CI/CD, бэкапов и всего, что не прощает ошибок. Но...
⚠️ Проблема: поведение
Вот типичный случай:
Скрипт завершится после
Но теперь внимание:
🎉 Здесь
🔍 Когда
Если ты используешь команды вроде:
Скрипт продолжит работу, даже если
✅ Как правильно использовать
1. Сначала — пойми, где оно действительно нужно (например, в CI/CD, деплое, тестах).
2. Используй его в отдельных функциях, а не во всём скрипте сразу.
3. Если обрабатываешь ошибку вручную — используй
👨💻 Итог:
🌳 Ветка: https://stackoverflow.com/questions/19622198/what-does-set-e-mean-in-a-bash-script
📩 Завтра: BTRFS: Продвинутые техники для настоящих гуру!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 -Настрой мониторинг сети в реальном времени с Prometheus и Grafana
🧠 - b2-tools — простое и быстрое резервное копирование в облако
🧠 - Ты не знал, что cat умеет это! Лайфхаки для работы с файлами в Linux
#stackoverflow @LinuxSkill #bash #linux #скрипты #автоматизация #devops #linuxskill #сетевые_лайфхаки #shell #ci_cd #ошибки
set -e в bash может сломать тебе всё!Привет, терминальный заклинатель! Кажется, ты добавил
set -e в свой bash-скрипт и думал, что теперь ошибки сами себя поймают? А потом скрипт резко перестал доходить до конца?.. Давай разберемся, в чём подвох.🤔 Что вообще делает
set -e?set -e говорит интерпретатору bash: > "Если любая команда завершится ошибкой, — останови скрипт немедленно".
Это полезно для CI/CD, бэкапов и всего, что не прощает ошибок. Но...
⚠️ Проблема: поведение
set -e — неочевидно!Вот типичный случай:
#!/bin/bash
set -e
false
echo "Я не выполнюсь!"
Скрипт завершится после
false, и echo даже не запустится. Всё логично. Но теперь внимание:
#!/bin/bash
set -e
if false; then
echo "Упс"
fi
echo "А вот и я!"
🎉 Здесь
echo выполнится! Потому что ошибки внутри if, while, until и &&/|| — игнорируются!🔍 Когда
set -e может навредить?Если ты используешь команды вроде:
grep "что-то" файл.txt || echo "не найдено"
Скрипт продолжит работу, даже если
grep вернёт ненулевой код. Но теперь представь, что ты этого не знал… 😬✅ Как правильно использовать
set -e?1. Сначала — пойми, где оно действительно нужно (например, в CI/CD, деплое, тестах).
2. Используй его в отдельных функциях, а не во всём скрипте сразу.
3. Если обрабатываешь ошибку вручную — используй
||, if, trap, set +e.👨💻 Итог:
set -e — не волшебная палочка. Это строгий сторож, который иногда рубит по-живому. Используй с умом, тестируй поведение и знай, где он тебя может подставить.🌳 Ветка: https://stackoverflow.com/questions/19622198/what-does-set-e-mean-in-a-bash-script
📩 Завтра: BTRFS: Продвинутые техники для настоящих гуру!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 -Настрой мониторинг сети в реальном времени с Prometheus и Grafana
🧠 - b2-tools — простое и быстрое резервное копирование в облако
🧠 - Ты не знал, что cat умеет это! Лайфхаки для работы с файлами в Linux
#stackoverflow @LinuxSkill #bash #linux #скрипты #автоматизация #devops #linuxskill #сетевые_лайфхаки #shell #ci_cd #ошибки
Stack Overflow
What does 'set -e' mean in a Bash script?
I'm studying the content of this preinst file that the script executes before that package is unpacked from its Debian archive (.deb) file.
The script has the following code:
#!/bin/bash
set -e
#
The script has the following code:
#!/bin/bash
set -e
#
👍18👀1