3309
Канал для программистов работающих с Linux. Почти все Python девелоперы с нами ну и другие тоже подтянутся. По рекламе: @jannytg @anothertechrock
👩💻 Команда watch в Linux
Вам знакома ситуация, когда ждешь чего-то важного, будь то подключение пользователя или копирование файлов по FTP? Постоянно приходится вводить одну и ту же команду для проверки результата. А это порой бывает утомительно.
Для таких случаев и пригодится команда watch. Она используется для периодического запуска другой команды и отображения её вывода в терминале с обновлением через заданный интервал времени. Это удобно для "живого мониторинга" изменений в системе.
⚙️ Синтаксис:
watch [опции] команда
watch запускает команду каждые 2 секунды.-n <сек> — задать интервал обновления в секундах (по умолчанию 2).-d — подсвечивать изменения между обновлениями.-t — убрать заголовок (без отображения времени и команды).-g — завершить выполнение, когда вывод изменится.watch -n 5 df -h
watch -n 2 ps aux | grep apache
watch -d cat /proc/meminfo
watch -n 1 "ps -C firefox -o %cpu,%mem,cmd"
watch -g ls -l file.txtЧитать полностью…
Эта команда находит 10 наиболее часто встречающихся IP-адресов в файле access.log:
grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' access.log | sort | uniq -c | sort -nr | head
🔥 Что такое демоны (daemons) в Linux?
Демоны, или "daemons", в операционных системах работают в фоновом режиме и следят за различными аспектами системы для обеспечения ее нормальной работы.
Они могут контролировать различные подсистемы, такие как печать или сеть.
В Linux они подобны службам в Windows и выполняют определенные задачи в определенное время или в ответ на события.
Демоны могут быть запущены при старте системы и продолжают работу в качестве системных служб.
Они не требуют вмешательства пользователя для своего запуска и работают в фоновом режиме.
Создаются они процессом инициализации системы при загрузке с помощью метода fork(), создавая копию существующего процесса.
Демоны могут быть идентифицированы в системе по их процессам, их имена обычно заканчиваются на "d".
Их можно отслеживать с помощью различных команд, таких как ps, top, htop и pstree. Команда pstree отображает процессы в виде древовидной диаграммы, что помогает лучше понять, какие демоны работают в системе.
ℹ️ В системе могут работать различные демоны, вот некоторые из них:
🔴 systemd: родитель всех процессов с PID=1, аналог init.
🔴 rsyslogd: регистрирует системные сообщения с дополнительными функциями по сравнению с syslogd.
🔴 udisksd: обрабатывает операции с устройствами хранения данных, такие как монтирование и размонтирование.
🔴 logind: управляет входом пользователей в систему.
Гринатом — ИТ-интегратор Росатома — ищет эксперта инфраструктуры Linux в Санкт-Петербурге!
👨💻Вам предстоит администрирование ОС Linux и Windows, управление виртуализацией, поддержка ключевых сервисов и обеспечение их стабильности, настройка и сопровождение систем мониторинга и централизованного логирования, автоматизация развертывания и конфигурации сервисов и задач, а также организация систем резервного копирования и восстановления.
🤝Мы предложим работу в аккредитованной ИТ-компании, «белую зарплату» 2 раза в месяц, обучение за счёт компании, оформление по ТК и ДМС (со стоматологией) с первого дня. От кандидатов ждём навыки работы с операционными системами и опыт в импортозамещении и развитии отечественных решений.
Что такое /dev/null и почему туда направляют данные?
Если вы активно работаете в командной строке, то, вероятно, использовали файл /dev/null для следующих целей:
1️⃣ Убрать из вывода всю ненужную инфу (предупреждения, ошибки и т.д.):
$ find / -name "*.conf" 2>/dev/null
$ picom --config /dev/null
$ cat /dev/null > bigfile
$ ls -l
crw-rw-rw- 1 root root 1, 3 Sep 6 08:37 null
c "character". $ stat /dev/null
File: /dev/null
Size: 0 Blocks: 0 IO Block: 4096 character special file
Access: (0666/crw-rw-rw-) Uid: (0/ root) Gid: (0/ root)
Access: 2025-01-25 14:42:20.101000002 +0300
...
$ who -b
system boot 2025-01-25 14:42
$ echo hello | /dev/null
-bash2: /dev/null: Permission denied
|. Единственный способ — использовать перенаправление файлов >, >>.
Читать полностью…
😱 Как вернуть удалённый скрипт
Рассмотрим ситуацию, когда случайно/специально удалился исполняющийся bash-скрипт.
Чтобы не попадать в такие ситуации, всегда храните исходники в git — это избыточно, но бекапы никто не отменял.
Скрипт удалён с диска, но продолжает работать в фоне, значит его можно как-нибудь восстановить.
Создадим подопытный скрипт. touch /tmp/script.sh:
#!/bin/bash
sleep 1000
exit
chmod +x /tmp/script.sh и запускаем в фоне /tmp/script.sh &.& может служить разделителем между командами command & command, две команды выполнятся параллельно.rm -f /tmp/script.sh -f позволит удалить без лишних вопросов.lsof -c 'script.sh'
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
script.sh 261899 root 255r REG 8,1 51 130773 /tmp/script.sh
cat /proc/261899/fd/255
File: /proc/261899/fd/255
#!/bin/bash
sleep 1000
exit
👩💻 Команда killall
Если у вас будет открыто несколько окон с одинаковыми приложениями, то команда killall уничтожит их все. При этом не обязательно знать PID, в отличии от команды kill.killall — команда, которая останавливает процессы с одним и тем же названием.
Команда ищет все подходящие в папке /proc
killall gcalctool
killall -s 1 gcalctool
man, чтобы получить справку по их применению:man killall
ps aux | grep
pidof
pgrep
Как освободить оперативную память в Linux
sync
echo 1 > /proc/sys/vm/drop\_caches
Очищает кэши страниц, инодов и дэнджлиста в оперативной памяти. Потребуются права администратора.sudo sysctl -w vm.drop_caches=3
sudo systemctl restart systemd-journald
sudo systemctl restart rsyslog
umount или fdisk.kill или killall для их завершения и освобождения памяти, которую они занимают.
Читать полностью…
👩💻 Команда ps
Как правило, команда перечисляет и отображает все запущенные процессы в ядре Linux. Основная функциональность заключается в отображении информации о процессе, включая уникальный идентификатор процесса (PID), терминал или пользователя, связанного с процессом, и команду, запускающую процесс.
1️⃣ Список процессов, связанных с текущей оболочкой
Использование простой команды ps выводит список запущенных в данный момент процессов в оболочке.
ps
ps -A
ps -e
ps -T
ps -a
ps -axЧитать полностью…
❓ Как быстро создать много однотипных файлов в одной директории?
Речь идет о файлах типа file1,txt, file2.txt, file3.txt ... file100.txt или app.html, app.css, app.js.
Ответ через час.
#вопросы
❓ Что такое chroot?
CHROOT – это системный вызов, который временно перемещает root каталог в новую папку.
Как правило, root-каталог находится в «/». Но при помощи chroot можно задать другой каталог, который будет служить как root-каталог в окружении chroot.
Любые приложения, которые запускаются внутри изолированного окружения, в принципе не могут взаимодействовать с остальной операционной системой. Кроме того, не-рутовый пользователь (non-root), помещённый в chroot-окружение, не сможет перемещаться по иерархии каталогов
📎 Зачем оно нужно?
Chroot-окружение необходимо в самых различных ситуациях. К примеру, оно позволяет собирать, устанавливать и тестировать программное обеспечение в среде, которая отделена от остальной операционной системы. Также его можно использовать для запуска 32-битных приложений в 64-битной среде.
В целом, chroot – это способ временно воссоздать окружение операционной системы из подмножества файловой системы. Это позволяет временно перейти с привычных утилит на их экспериментальные версии, посмотреть, как приложения ведут себя в чистом окружении. Также chroot может помочь выполнить операции по восстановлению, развернуть систему или создать дополнительный барьер, чтобы предотвратить потенциальный взлом системы.
📎 Недостатки chroot
Основным недостатком chroot является неудобство в работе, вызванное тем, что в системе могут существовать приличное количество окружений и разных архитектур. Ну и стоит помнить, что даже этот способ не является 100%-тно безопасным и не защищает систему от кривых рук пользователя.
Удобный "справочник" по любой команде в Linux.
ExplainShell представляет удобный интерфейс для поиска справочной информации по любой команде. Просто вбиваете нужную вам команду со всеми аргументами в поисковую строку — и получаете подробное объяснение, что конкретно делает каждый аргумент.
Крч, нереально годная вещь!
❓Как разбить текстовый файл на несколько по 100 строк в каждом?
Ответ через час.
#вопросы
🚫 Блокировка или скрытие файлов в Linux
Когда вам нужно заблокировать доступ к файлу или каталогу, то самый простой способ сделать это - использовать права доступа.
Если вы являетесь владельцем файла или каталога, вы можете заблокировать доступ к нему для остальных пользователей путем снятия прав на чтение, запись и выполнение. Для этого используйте:
chmod 700 path_to_file
# или
chmod go-rwx path_to_file
(.). Например:mv file .filenameЧитать полностью…
Необходимость групповых действий с файлами возникает довольно часто. При помощи команды mmv можно копировать, перемещать, переименовывать несколько файлов одновременно.
Например, можно:
- изменить расширение файлов с .jpeg на .jpg
mmv '*.jpeg' '#1.jpg'
mmv '*abc*' '#1xyz#2'
mmv '*.html.??' '#1.#2#3.html'
-c команда будет не переименовывать, а копировать файлы.
Читать полностью…
Приведенная команда cat дает такой вывод ⬆️
❓ Как найти самые часто встречающиеся IP-адреса в логах?
Ответ через час.
#вопросы
👩💻 Команда shred
Обычно для удаления файлов в Linux используется команда rm. Но файлы, удаленные с помощью этой команды, не удаляются окончательно с диска. Их содержимое остается на диске до тех пор, пока занятое ими пространство не будет перезаписано другими данными. Поэтому информацию возможно восстановить.
Но что, если нам нужно удалить файлы так, чтобы их никто не восстановил? Для этого существует команда shred.
Она перезаписывает содержимое файла случайными данными несколько раз, а затем по желанию удаляет его. Это делает восстановление практически невозможным.
⚙️ Команда:
shred [опции] файл
-n — перезаписать файл n раз-z — делает финальную перезапись нулями, чтобы скрыть сам факт использования shred.-u, --remove — после перезаписи удаляет файл (по умолчанию файл не удаляется).-v — выводит прогресс в терминал-f — принудительно снимает защиту от записи (если файл read-only).shred secret.txt
shred -n 5 -u secret.txt
shred -n 1 -z -u secret.txtЧитать полностью…
💻 Что означает 2>&1?
Это про стандартные потоки вывода. Они имеют файловые дескрипторы:
stdout — 1 (общий поток вывода)
stderr — 2 (поток с ошибками)
Получается (2>&1) = stderr > stdout — направляем поток с ошибками в стандартный поток вывода. Ошибки будут выводиться на экран в терминале.
🤔 Логичным было бы сделать конструкцию 2>1. Но увы, эта схема отработает другую логическую операцию. Поток с ошибками stderr будет писать все данные в файл, у которого название будет 1.
Для этого и требуется указать символ & (амперсанд) перед stdout. Это будет интерпретировано как файловый дескриптор, а не обычный файл.
🤔 А почему тогда не &2>&1 ?
Символ & интерпретируется как файловый дескриптор только в контексте перенаправления.
Операция command &2>&1 анализируется следующим образом. command & 2>&1 — команда command будет выполнятся в фоновом режиме. А затем начнет выполнятся команда 2 с перенаправлением на стандартный вывод stdout.
Есть альтернатива с оператором |&.|& это сокращенный вариант от 2>&1 |
Пример:
script.sh |& tee -a /var/log/script.log
script.sh выведет в потоки stdout и stderr, будет перенаправлено в файл script.log.
👩💻 Команда rsyncrsync - один из самых популярных инструментов командной строки для резервного копирования. Он позволяет осуществлять быструю инкрементную передачу и синхронизацию файлов.
✔️ Как сделать локальный бэкап:
rsync -av /source/directory/ /destination/directory/
rsync -av -e ssh /source/directory/ user@remote_host:/destination/directory/
sudo apt install rsync
man.
Читать полностью…
🎛Основные логи в Linux
Основные логи в Linux содержат информацию о различных событиях, происходящих в операционной системе, включая процесс загрузки, работу приложений, действия пользователей и сообщения ядра.
Эти логи, хранящиеся в специальных файлах, могут быть полезны для выявления и устранения проблем.
Основные категории логов в Linux включают: системные лог-файлы, лог-файлы событий, лог-файлы служб и лог-файлы приложений.
Многие из них располагаются в каталоге var/log.
Наиболее распространенными логами являются:
1️⃣ /var/log/boot.log — журнал загрузки системы (в нем хранится вся информация, связанная с этапами загрузки ОС).
2️⃣ /var/log/kern.log — журнал ядра (в нем хранятся сообщения и предупреждения, поступающие непосредственно из ядра Linux.
3️⃣ /var/log/syslog или /var/log/messages — журналы, в которых хранится информация об общей активности в системе (включая сообщения этапа загрузки).
4️⃣ /var/log/auth.log или /var/log/secure — журналы аутентификации и безопасности (в них хранятся записи обо всех попытках входа в систему, включая как успешные, так и неудачные).
5️⃣ /var/log/debug — журнал отладки (в нем хранится подробная отладочная информация системы и приложений).
6️⃣ /var/log/daemon.log — журнал демонов (содержит информацию о событиях, связанных с различными запущенными в системе демонами/службами).
7️⃣ /var/log/maillog или /var/log/mail.log — журналы почтовых серверов (в них хранится информация, относящаяся к почтовым серверам и архивированию электронных писем).
💡 Короткий совет по Linux
Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:
$ find . -type d -empty -exec rmdir -v {} +-type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.rmdir гарантирует, что каталог пуст перед его удалением.$ find . -type d -empty -deleteЧитать полностью…
👩💻 Что такое командная оболочка (shell) в Linux?
Shell или командная оболочка представляет собой не только командный интерпретатор, обеспечивающий взаимодействие пользователя с ядром операционной системы, но и язык программирования, включающий операторы условного ветвления, циклы, переменные и другие конструкции.
При входе пользователя в систему или открытии терминала операционная система запускает командную оболочку.
Пользователь увидит приглашение оболочки, состоящее из имени пользователя, имени хоста, текущего пути и символа $ или #, отражающего его привилегии.
Вводимые пользователем команды бывают внутренними (встроенными в оболочку) и внешними (выполняемыми как отдельные программы).
⚡️При необходимости определить тип команды, пользователь может использовать команду type <имя_команды>.
В nix-системах существует два основных типа оболочек:
• оболочки на основе Bourne shell
• оболочки на основе C shell.
Типичными представителями оболочек типа Bourne shell являются:
- sh (Bourne shell)
- bash (Bourne Again shell)
- ksh (Korn shell)
- zsh (Z Shell)
- csh (C shell)Читать полностью…
- tcsh (TENEX/TOPS C shell)
Нужно использовать фигурные скобки:
touch file{1..100}.txt
touch app.{html,css,js}
rm ./*.{jpg,jpeg,png,gif}
Читать полностью…
⚙️ Используй майские праздники наилучшим образом!
Изучай новые технологии или закрой пробелы в знаниях по своему стеку.
🤩 Admin Books – техническая литература для сетевых и системных администраторов и ИБ специалистов.
Ссылка для своих: /channel/+-MOgvZlaKGc0ODYy
❗️Шорткаты: Alt+T и Esc+T
Позволяют поменять местами два слова в строке. Меняются местами слова, между которыми стоит курсор. Если курсор стоит в конце строки, то два последних слова. Похоже на Ctrl+T, который позволяет менять местами символы.
split -l 100 имя_файла 100-
100-aa, 100-ab…, содержащие по 100 строк из исходного файла. Если исходный файл содержал число строк, не кратное 100, то в последнем файле будет меньше ста строк.
Читать полностью…
⭐️🚀 Пройдите вступительный тест и получите доступ к бесплатным урокам курса "Administrator Linux. Professional".
👉 Пройти тест
Хотите стать экспертом в администрировании Linux? У нас для вас отличная новость!
Представьте, как вы:
- Освоите настройку и управление сетевыми сервисами на Linux.
- Научитесь автоматизировать задачи с помощью Ansible.
- Сможете эффективно управлять дисковыми подсистемами и файловыми системами.
- Настроите и будете администрировать веб-серверы (Nginx, Apache) и базы данных (MySQL, PostgreSQL).
- Повысите уровень безопасности своих серверов с помощью SELinux и брандмауэров.
- Получите навыки мониторинга и логирования с использованием Prometheus и Zabbix.
Наш курс включает в себя все необходимые знания и практические задания, чтобы вы стали настоящим профессионалом.
❗️После успешного прохождения теста вам будут доступны уроки на лендинге курса, и скидка на обучение "Administrator Linux. Professional".
👉 Пройти тест
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👩💻 Команды su и sudo
Когда речь заходит о администрировании Linux-систем, две команды, которые часто используются, это su и sudo.
Обе команды позволяют выполнить команды с привилегиями суперпользователя, но они имеют некоторые различия в использовании и функциональности.
Команда su
⏺"su" означает "подставить пользователя" (substitute user) и используется для смены пользователя на другого, включая суперпользователя (root).
⏺Использование. Команда su без аргументов позволяет войти в систему под суперпользователем. Например, su root попросит ввести пароль суперпользователя и переключит вас на учетную запись root.
⏺Привилегии. При использовании su вся командная строка выполняется с привилегиями суперпользователя, что может быть опасно, особенно при выполнении неизвестных или рискованных команд.
Команда sudo
⏺"sudo" означает "выполнить как другой пользователь" (superuser do) и позволяет выполнить одну команду с привилегиями суперпользователя.
⏺Использование. sudo перед командой позволяет выполнить эту команду с привилегиями суперпользователя. Например, sudo apt-get update попросит ввести ваш пароль пользователя, а не суперпользователя, и затем выполнит команду.
⏺Привилегии. sudo предоставляет более гибкий и безопасный способ выполнения команд с привилегиями суперпользователя, так как он ограничивает доступ только к выполнению одной команды, а не к полной сессии как su.
⚡️Команды su и sudo предоставляют доступ к привилегиям суперпользователя, но их использование и функциональность немного различаются. В большинстве случаев sudo является более безопасным и предпочтительным выбором для выполнения команд с привилегиями суперпользователя.
❓ Как быстро изменить что-то в именах всех однотипных файлов в одной директории?
Ответ через час.
#вопросы