Выводим список файлов в домашней директории без использования ls или его алиасов
1. dir
2. printf
3. echo
3. vim
4. rm
5. rsync
6. grep
7. file
8. stat
9. head
10. getfacl
11. git
12. cat
13. lsattr
1. dir
dir -aA ~
2. printf
printf "%s\n" ~/* ~/.*
3. echo
echo -e 'echo \t\ty\b\b\b\b\b\b\b' | bash -i
echo -e 'echo \t\ty\b\b\b\b\b\b\b' | sh -i
3. vim
vim ~
4. rm
yes "n" | rm -i $HOME/* $HOME/.* 2>&1|grep -o "$HOME[^']*"
(echo y; yes n) | rm -ir ~ 2>&1 | sed -E -e "s/(rm:[^']+)|\?//g"
5. rsync
rsync --list-only ~/
6. grep
grep -l '.*' ~/* ~/.* 2>/dev/null || grep -L '.*' ~/* ~/.* 2>/dev/null
7. file
file ~/* ~/.*
8. stat
stat ~/* ~/.*|grep "/home"|awk '{print $2}'
stat -c "%A %G:%U %s %x %n" * \.*
stat *|awk '/File:/{print $2}'
9. head
head -n 0 -v ~/* ~/.*|awk '{print $2}'
10. getfacl
getfacl ~/* ~/.* | grep "# file" | awk '{print $3}'
11. git
git init ~/ ; curr=`pwd`; cd ~ ; git status; rm -rf .git; cd $curr ; curr=''
12. cat
cat ~ |strings |xargs -IX sh -c 'test -e X && echo X'
13. lsattr
lsattr ~/* ~/.* 2>&1 | grep -Po '/.*'
❤2👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Dockly
Это интерактивный терминальный интерфейс для управления контейнерами Docker. Утилита позволяет в режиме реального времени просматривать активные контейнеры, образы и сети, выполнять команды, такие как перезапуск или удаление контейнеров, а также получать доступ к их логам и ресурсам. Подходит для разработчиков и администраторов, которым нужен быстрый и удобный способ мониторинга и управления Docker-средами.
https://github.com/lirantal/dockly
Это интерактивный терминальный интерфейс для управления контейнерами Docker. Утилита позволяет в режиме реального времени просматривать активные контейнеры, образы и сети, выполнять команды, такие как перезапуск или удаление контейнеров, а также получать доступ к их логам и ресурсам. Подходит для разработчиков и администраторов, которым нужен быстрый и удобный способ мониторинга и управления Docker-средами.
https://github.com/lirantal/dockly
❤1
Шпаргалка по
grep — это мощный инструмент для поиска текста в файлах на основе регулярных выражений.
Основные команды:
1. Поиск строки в файле:
Ищет указанную строку в файле.
2. Поиск в нескольких файлах:
3. Поиск рекурсивно:
Ищет строку во всех файлах указанного каталога.
4. Игнорирование регистра:
5. Показать номер строки:
6. Вывод строк, не содержащих шаблон:
7. Подсветка совпадений:
8. Подсчитать количество совпадений:
Расширенные команды:
1. Использование регулярных выражений:
Или:
2. Поиск с указанием количества строк до и после совпадения:
3. Поиск только имени файла:
4. Инвертированный поиск файлов:
Показывает файлы, в которых не найдено совпадений.
Полезные опции:
-
-
-
Примеры:
1. Поиск строки "error" в логах:
2. Поиск строк с IP-адресами:
3. Поиск строки и запись результата в файл:
grep
grep — это мощный инструмент для поиска текста в файлах на основе регулярных выражений.
Основные команды:
1. Поиск строки в файле:
grep "строка" имя_файла
Ищет указанную строку в файле.
2. Поиск в нескольких файлах:
grep "строка" файл1 файл2
3. Поиск рекурсивно:
grep -r "строка" /путь/к/каталогу
Ищет строку во всех файлах указанного каталога.
4. Игнорирование регистра:
grep -i "строка" имя_файла
5. Показать номер строки:
grep -n "строка" имя_файла
6. Вывод строк, не содержащих шаблон:
grep -v "строка" имя_файла
7. Подсветка совпадений:
grep --color "строка" имя_файла
8. Подсчитать количество совпадений:
grep -c "строка" имя_файла
Расширенные команды:
1. Использование регулярных выражений:
grep -E "регулярное_выражение" имя_файла
Или:
egrep "регулярное_выражение" имя_файла
2. Поиск с указанием количества строк до и после совпадения:
grep -A 3 -B 2 "строка" имя_файла
-A
(after) и -B
(before) указывают количество строк, которые будут выведены до и после найденной строки.3. Поиск только имени файла:
grep -l "строка" *
4. Инвертированный поиск файлов:
grep -L "строка" *
Показывает файлы, в которых не найдено совпадений.
Полезные опции:
-
-w
— ищет полные слова.-
-o
— выводит только совпавшие строки.-
-q
— тихий режим, без вывода в терминал, используется для проверки совпадений.Примеры:
1. Поиск строки "error" в логах:
grep "error" /var/log/syslog
2. Поиск строк с IP-адресами:
grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' имя_файла
3. Поиск строки и запись результата в файл:
grep "pattern" имя_файла > output.txt
❤1
Программа проверки истечения срока действия SSL-сертификатов
ssl-cert-check - это скрипт оболочки Bourne, который можно использовать для оповещения об истечении срока действия SSL-сертификатов. Сценарий был разработан для запуска из cron и может рассылать уведомления по электронной почте или регистрировать предупреждения через nagios.
https://github.com/Matty9191/ssl-cert-check
ssl-cert-check - это скрипт оболочки Bourne, который можно использовать для оповещения об истечении срока действия SSL-сертификатов. Сценарий был разработан для запуска из cron и может рассылать уведомления по электронной почте или регистрировать предупреждения через nagios.
https://github.com/Matty9191/ssl-cert-check
❤1👍1
Пример правильного использования Chmod
Правила доступа по умолчанию для каталогов
Ниже пример того, как в каталоге
Первой командой переходим в нужную директорию, далее с помощью команды
Правила доступа по умолчанию для каталогов
755
, для файлов 644
. Поэтому, в подавляющем большинстве случаев, вам понадобятся только эти права.Ниже пример того, как в каталоге
/var/www/i_odmin_book
на все файлы рекурсивно поставить права 0644
, а на все каталоги и подкаталоги 0755
cd /var/www/i_odmin_book
find ./ -type f -exec chmod 0644 {} \;
find ./ -type d -exec chmod 0755 {} \;
Первой командой переходим в нужную директорию, далее с помощью команды
find
ищем нужный тип: файлы -f (files)
и каталоги -d (directories)
— и запускаем chmod
с нужными правами.❤2
Полезные команды Linux. Манипуляции с текстом
#
Вывести содержимое файла, нумеруя выводимые строки
#
Вывести только не четные строки файла
#
Вывести первую и третью колонки. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
Вывести первую колонку содержимого файла. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
Сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
#
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file1
#
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file2
#
Отобрать и вывести строки содержащие цифровые символы из файла /var/log/messages
#
Отобрать и вывести строки, начинающиеся с сочетания символов "Aug", из файла /var/log/messages
#
Отобрать и вывести строки, содержащие сочетание символов "Aug" из файла /var/log/messages
#
Отобрать и вывести строки, содержащие сочетание символов "Aug", из всех файлов, расположенных в директории /var/log и ниже
#
Объединить содержимое file1 и file2 в виде таблицы с разделителем "+"
#
Объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
#
Сравнить содержимое двух файлов
#
Заменить string1 на string2 в файле example.txt и вывести содержимое
#
Удалить пустые строки и комментарии из файла example.txt
#
Удалить пустые строки и комментарии из файла example.txt
#
Удалить первую строку из файла example.txt
#
Отобразить только строки содержащие string1
#
Удалить строку string1 из текста файла example.txt не изменяя всего остального
#
Удалить пустые символы в конце каждой строки файла example.txt
#
Вывести пятую строку
#
Вывести строки со второй по пятую
#
Заменить последовательность из любого количества нулей одним нулём
#
Вывести отсортированное содержимое двух файлов
#
Вывести отсортированное содержимое двух файлов исключая повторные значения
#
Вывести уникальные значения из отсортированного содержимого двух файлов
#
Вывести только повторяющиеся значения из отсортированного содержимого двух файлов
#
Перевести символы нижнего регистра в верхний
#
cat -n file1
Вывести содержимое файла, нумеруя выводимые строки
#
cat example.txt | awk 'NR%2==1'
Вывести только не четные строки файла
#
echo a b c | awk '{print $1,$3}'
Вывести первую и третью колонки. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
echo a b c | awk '{print $1}'
Вывести первую колонку содержимого файла. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
comm -3 file1 file2
Сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
#
comm -1 file1 file2
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file1
#
comm -2 file1 file2
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file2
#
grep [0-9] /var/log/messages
Отобрать и вывести строки содержащие цифровые символы из файла /var/log/messages
#
grep ^Aug /var/log/messages
Отобрать и вывести строки, начинающиеся с сочетания символов "Aug", из файла /var/log/messages
#
grep Aug /var/log/messages
Отобрать и вывести строки, содержащие сочетание символов "Aug" из файла /var/log/messages
#
grep Aug -R /var/log/*
Отобрать и вывести строки, содержащие сочетание символов "Aug", из всех файлов, расположенных в директории /var/log и ниже
#
paste -d '+' file1 file2
Объединить содержимое file1 и file2 в виде таблицы с разделителем "+"
#
paste file1 file2
Объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
#
sdiff file1 file2
Сравнить содержимое двух файлов
#
sed 's/string1/string2/g' example.txt
Заменить string1 на string2 в файле example.txt и вывести содержимое
#
sed '/ *#/d; /^$/d' example.txt
Удалить пустые строки и комментарии из файла example.txt
#
sed '/^$/d' example.txt
Удалить пустые строки и комментарии из файла example.txt
#
sed -e '1d' exampe.txt
Удалить первую строку из файла example.txt
#
sed -n '/string1/p'
Отобразить только строки содержащие string1
#
sed -e 's/string//g' example.txt
Удалить строку string1 из текста файла example.txt не изменяя всего остального
#
sed -e 's/ *$//' example.txt
Удалить пустые символы в конце каждой строки файла example.txt
#
sed -n '5p;5q' example.txt
Вывести пятую строку
#
sed -n '2,5p' example.txt
Вывести строки со второй по пятую
#
sed -e 's/00*/0/g' example.txt
Заменить последовательность из любого количества нулей одним нулём
#
sort file1 file2
Вывести отсортированное содержимое двух файлов
#
sort file1 file2 | uniq
Вывести отсортированное содержимое двух файлов исключая повторные значения
#
sort file1 file2 | uniq -u
Вывести уникальные значения из отсортированного содержимого двух файлов
#
sort file1 file2 | uniq -d
Вывести только повторяющиеся значения из отсортированного содержимого двух файлов
#
echo 'word' | tr '[:lower:]' '[:upper:]'
Перевести символы нижнего регистра в верхний
👍3❤2
Полезные Bash-скрипты для повседневных задач
Ниже — два скрипта, которые могут сэкономить тебе время и нервы.
Перемещение директории
Переименование файла
Ниже — два скрипта, которые могут сэкономить тебе время и нервы.
Перемещение директории
#!/bin/bash
# Проверка существования директории-источника
if [ ! -d "$1" ]; then
echo "$1 doesn't exist"
exit 1
fi
# Проверка существования директории-назначения
if [ ! -d "$2" ]; then
echo "$2 doesn't exist"
exit 1
fi
# Копирование и удаление исходной директории
if cp -r "$1" "$2" && rm -r "$1"; then
echo "Dir $1 was moved to dir $2 successfully"
exit 0
else
echo "Something went wrong"
exit 1
fi
Переименование файла
#!/bin/bash
# Проверка количества аргументов
if [ $# -ne 2 ]; then
echo "2 args needed: file to rename and new name"
exit 1
fi
# Проверка существования файла
if [ ! -f "$1" ]; then
echo "File $1 does not exist or it's not a file"
exit 1
fi
# Переименование через копирование и удаление
if cp "$1" "$2" && rm -f "$1"; then
echo "Name of file $1 was changed to $2"
exit 0
else
echo "Something went wrong!"
exit 1
fi
❤2👍1
Система доменных имён (DNS)
▪️Что такое DNS?
DNS (Domain Name System) — распределённая система, преобразующая доменные имена (например,
▪️Основные типы DNS-записей:
-
-
-
-
-
-
-
-
-
▪️Как работает DNS-запрос:
1. Пользователь вводит URL в браузере
2. Резолвер (обычно у провайдера или в системе) ищет в кэше
3. Если нет — запрос уходит на root-серверы
4. Затем на TLD-серверы (
5. Потом — на authoritative DNS (настоящий источник зоны)
6. Ответ возвращается через цепочку обратно
▪️Утилиты для работы с DNS:
-
-
-
-
-
▪️Типовые задачи админа:
- Настройка и обслуживание DNS-сервера (bind, PowerDNS, Unbound)
- Создание и поддержка зоны (
- Делегирование поддоменов
- Обратная зона (PTR-записи)
- Настройка SPF, DKIM, DMARC для почты
- Обновление TTL и проверка кэша
▪️Фишки и советы:
✔️ TTL влияет на скорость обновления записей — не ставь слишком большое значение при отладке
✔️ Используй
✔️ Смотри
✔️ Кэш можно сбросить:
▪️Что такое DNS?
DNS (Domain Name System) — распределённая система, преобразующая доменные имена (например,
example.com
) в IP-адреса (192.0.2.1
), необходимые для связи между устройствами в интернете.▪️Основные типы DNS-записей:
-
A
— IPv4-адрес (example.com → 93.184.216.34) -
AAAA
— IPv6-адрес -
CNAME
— алиас (псевдоним домена) -
MX
— почтовый сервер -
NS
— серверы имён (authority) -
TXT
— произвольные данные (например, SPF, DKIM) -
PTR
— обратная запись (IP → домен) -
SRV
— информация о службах (используется, например, в AD) -
SOA
— стартовая запись зоны (параметры зоны DNS)▪️Как работает DNS-запрос:
1. Пользователь вводит URL в браузере
2. Резолвер (обычно у провайдера или в системе) ищет в кэше
3. Если нет — запрос уходит на root-серверы
4. Затем на TLD-серверы (
.com
, .org
, .ru
и т.д.) 5. Потом — на authoritative DNS (настоящий источник зоны)
6. Ответ возвращается через цепочку обратно
▪️Утилиты для работы с DNS:
-
nslookup
— базовая диагностика -
dig
— гибкий и подробный инструмент (Linux/macOS/Windows) -
host
— простой просмотр записей -
whois
— инфа о владельце домена -
dnf check
/ systemd-resolve
/ resolvectl
— системные утилиты в Linux▪️Типовые задачи админа:
- Настройка и обслуживание DNS-сервера (bind, PowerDNS, Unbound)
- Создание и поддержка зоны (
zone file
) - Делегирование поддоменов
- Обратная зона (PTR-записи)
- Настройка SPF, DKIM, DMARC для почты
- Обновление TTL и проверка кэша
▪️Фишки и советы:
✔️ TTL влияет на скорость обновления записей — не ставь слишком большое значение при отладке
✔️ Используй
dig +trace
для пошагового анализа резолвинга ✔️ Смотри
dnstools.ws
или dnschecker.org
для глобальной проверки ✔️ Кэш можно сбросить:
systemd-resolve --flush-caches
или ipconfig /flushdns
👍2❤1
Руководство и шпаргалка по Wireshark
Даже поверхностное знание программы Wireshark и её фильтров на порядок сэкономит время при устранении проблем сетевого или прикладного уровня. Wireshark полезен для многих задач в работе сетевого инженера, специалиста по безопасности или системного администратора. Вот несколько примеров использования:
https://habr.com/ru/articles/436226/
Даже поверхностное знание программы Wireshark и её фильтров на порядок сэкономит время при устранении проблем сетевого или прикладного уровня. Wireshark полезен для многих задач в работе сетевого инженера, специалиста по безопасности или системного администратора. Вот несколько примеров использования:
https://habr.com/ru/articles/436226/
❤1
Основы Tcpdump
Я думаю, что наиболее важным элементом для отладки сетевой проблемы является инструмент захвата пакетов или сниффер, и наиболее распространенным в дистрибутивах Linux является tcpdump.
Tcpdump выводит описание содержимого пакетов в сетевом интерфейсе, соответствующее выражению; описанию предшествует отметка времени, по умолчанию печатаемая в виде часов, минут, секунд и долей секунды с полуночи.
https://telegra.ph/Osnovy-Tcpdump-08-09
Я думаю, что наиболее важным элементом для отладки сетевой проблемы является инструмент захвата пакетов или сниффер, и наиболее распространенным в дистрибутивах Linux является tcpdump.
Tcpdump выводит описание содержимого пакетов в сетевом интерфейсе, соответствующее выражению; описанию предшествует отметка времени, по умолчанию печатаемая в виде часов, минут, секунд и долей секунды с полуночи.
https://telegra.ph/Osnovy-Tcpdump-08-09
❤1
LVM логические тома
Создание логических томов LVM предполагает создание трех уровней в архитектуре LVM.
Уровень 1. Создание физического тома (PV).
Уровень 2. Создание группы томов (VG).
Уровень 3. Создание логических томов.
https://telegra.ph/LVM-logicheskie-toma-07-11
Создание логических томов LVM предполагает создание трех уровней в архитектуре LVM.
Уровень 1. Создание физического тома (PV).
Уровень 2. Создание группы томов (VG).
Уровень 3. Создание логических томов.
https://telegra.ph/LVM-logicheskie-toma-07-11
👍1
Полезные команды Linux. Атрибуты файлов
Разрешает только добавление данных в файл
Игнорировать данный файл при создании резервной копии с помощью программы dump
Разрешить ядру автоматически сжимать/разжимать содержимое файла
Защита файла от каких либо изменений или манипуляций: редактирование, перемещение, удаление, создание ссылок на него
Определяет, будет-ли при сохранении изменений, произведена синхронизация, как при использовании команды sync
При удалении файла с данным атрибутом, его будет сохранено, что-бы оставить пользователю возможность восстановить данные в случае необходимости
Позволяет безвозвратное удаление данного файла. При удалении файла с этим атрибутом, место на диске, занимаемое файлом, перезаписывается нулями, после чего файл уже не подлежит восстановлению
Листинг файлов с атрибутами
# chattr +a file
Разрешает только добавление данных в файл
# chattr +d file
Игнорировать данный файл при создании резервной копии с помощью программы dump
# chattr +c file
Разрешить ядру автоматически сжимать/разжимать содержимое файла
# chattr +i file1
Защита файла от каких либо изменений или манипуляций: редактирование, перемещение, удаление, создание ссылок на него
# chattr +S file1
Определяет, будет-ли при сохранении изменений, произведена синхронизация, как при использовании команды sync
# chattr +u file1
При удалении файла с данным атрибутом, его будет сохранено, что-бы оставить пользователю возможность восстановить данные в случае необходимости
# chattr +s file1
Позволяет безвозвратное удаление данного файла. При удалении файла с этим атрибутом, место на диске, занимаемое файлом, перезаписывается нулями, после чего файл уже не подлежит восстановлению
# lsattr
Листинг файлов с атрибутами
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Linux Kernel Manager and Activity Monitor
Утилита отображает информацию о текущем состоянии ядра, выводит данные о загруженных в ядро модулях и позволяет работать с ними.
https://github.com/orhun/kmon
Утилита отображает информацию о текущем состоянии ядра, выводит данные о загруженных в ядро модулях и позволяет работать с ними.
https://github.com/orhun/kmon
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
CKS
Открытая платформа для изучения kubernetes и aws eks и подготовки к экзаменам Certified Kubernetes Specialist (CKA , CKS , CKAD)
SRE Learning Platform - это центр с открытым исходным кодом, призванный помочь ИТ-инженерам эффективно подготовиться к экзаменам CKA (Certified Kubernetes Administrator), CKS (Certified Kubernetes Security Specialist) и CKAD (Certified Kubernetes Application Developer). Кроме того, данная платформа предлагает бесценный практический опыт работы с AWS EKS (Elastic Kubernetes Service), что позволяет пользователям получить практические знания для применения в реальных условиях. Если вы хотите подтвердить свои навыки, повысить карьерные перспективы в области администрирования Kubernetes, безопасности, разработки приложений или углубиться в изучение AWS EKS, эта платформа предоставляет практические лабораторные работы, практические тесты и рекомендации экспертов для успешного прохождения сертификации.
Подготовка к экзамену CKA: Certified Kubernetes Administrator
Повысьте свои навыки для экзамена CKS: Certified Kubernetes Security Specialist
Превосходно подготовиться к экзамену CKAD: Certified Kubernetes Application Developer Exam
https://github.com/ViktorUJ/cks
Открытая платформа для изучения kubernetes и aws eks и подготовки к экзаменам Certified Kubernetes Specialist (CKA , CKS , CKAD)
SRE Learning Platform - это центр с открытым исходным кодом, призванный помочь ИТ-инженерам эффективно подготовиться к экзаменам CKA (Certified Kubernetes Administrator), CKS (Certified Kubernetes Security Specialist) и CKAD (Certified Kubernetes Application Developer). Кроме того, данная платформа предлагает бесценный практический опыт работы с AWS EKS (Elastic Kubernetes Service), что позволяет пользователям получить практические знания для применения в реальных условиях. Если вы хотите подтвердить свои навыки, повысить карьерные перспективы в области администрирования Kubernetes, безопасности, разработки приложений или углубиться в изучение AWS EKS, эта платформа предоставляет практические лабораторные работы, практические тесты и рекомендации экспертов для успешного прохождения сертификации.
Подготовка к экзамену CKA: Certified Kubernetes Administrator
Повысьте свои навыки для экзамена CKS: Certified Kubernetes Security Specialist
Превосходно подготовиться к экзамену CKAD: Certified Kubernetes Application Developer Exam
https://github.com/ViktorUJ/cks
❤1