TGViewer
Channel Public Channel
🐧 Linux Junior. Программирование под Linux.

🐧 Linux Junior. Программирование под Linux.

@juniorlinux

Канал для программистов работающих с Linux.
Почти все Python девелоперы с нами ну и другие тоже подтянутся.

По рекламе: @jannytg
@anothertechrock
Subscribers
3.08K
Photos
159
Videos
2
Links
92

Showing posts older than #511 · Back to latest

Older Posts 20 shown
Post #510 1.4K
Приведенная команда cat дает такой вывод ⬆️
Post #509 1.72K
Эта команда находит 10 наиболее часто встречающихся IP-адресов в файле access.log:

grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' access.log | sort | uniq -c | sort -nr | head

Покажет топ IP по количеству обращений. Незаменимо для анализа веб-серверов.

#вопросы
  • 👍 7
Post #508 1.59K
❓ Как найти самые часто встречающиеся IP-адреса в логах?

Ответ через час.

#вопросы
Post #507 1.71K
🔥 Что такое демоны (daemons) в Linux?

Демоны, или "daemons", в операционных системах работают в фоновом режиме и следят за различными аспектами системы для обеспечения ее нормальной работы.

Они могут контролировать различные подсистемы, такие как печать или сеть.

В Linux они подобны службам в Windows и выполняют определенные задачи в определенное время или в ответ на события.

Демоны могут быть запущены при старте системы и продолжают работу в качестве системных служб.

Они не требуют вмешательства пользователя для своего запуска и работают в фоновом режиме.

Создаются они процессом инициализации системы при загрузке с помощью метода fork(), создавая копию существующего процесса.

Демоны могут быть идентифицированы в системе по их процессам, их имена обычно заканчиваются на "d".

Их можно отслеживать с помощью различных команд, таких как ps, top, htop и pstree. Команда pstree отображает процессы в виде древовидной диаграммы, что помогает лучше понять, какие демоны работают в системе.

ℹ️ В системе могут работать различные демоны, вот некоторые из них:

🔴 systemd: родитель всех процессов с PID=1, аналог init.
🔴 rsyslogd: регистрирует системные сообщения с дополнительными функциями по сравнению с syslogd.
🔴 udisksd: обрабатывает операции с устройствами хранения данных, такие как монтирование и размонтирование.
🔴 logind: управляет входом пользователей в систему.
  • ❤ 8
Post #506 1.54K
  • 🤣 23
  • 😁 2
  • 🥴 1
Post #505 1.74K
👩‍💻 Команда shred

Обычно для удаления файлов в Linux используется команда rm. Но файлы, удаленные с помощью этой команды, не удаляются окончательно с диска. Их содержимое остается на диске до тех пор, пока занятое ими пространство не будет перезаписано другими данными. Поэтому информацию возможно восстановить.

Но что, если нам нужно удалить файлы так, чтобы их никто не восстановил? Для этого существует команда shred.

Она перезаписывает содержимое файла случайными данными несколько раз, а затем по желанию удаляет его. Это делает восстановление практически невозможным.

⚙️ Команда:

shred [опции] файл


Опции:
-n — перезаписать файл n раз
-z — делает финальную перезапись нулями, чтобы скрыть сам факт использования shred.
-u, --remove — после перезаписи удаляет файл (по умолчанию файл не удаляется).
-v — выводит прогресс в терминал
-f — принудительно снимает защиту от записи (если файл read-only).

⚙️ Примеры использования:

1️⃣ Перезаписать файл и оставить его на месте:
shred secret.txt


2️⃣ Перезаписать файл 5 раз и удалить его:
shred -n 5 -u secret.txt


3️⃣ Перезаписать файл 1 раз, затем заполнить нулями и удалить:

shred -n 1 -z -u secret.txt
  • 🔥 5
  • ❤ 2
  • 👀 1
Post #503 2.02K
  • 🤣 12
Post #499 2.26K
💻 Что означает 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.

В официальной документации можно подробнее изучить эту штуку.
  • 🔥 23
Post #495 2.5K
  • 😁 16
  • 🔥 1
Post #494 2.13K
  • 🤣 4
Post #493 2.08K
  • 😁 14
  • 🔥 4
Post #492 1.95K
  • 👍 3
  • ❤ 1
Post #491 1.71K
Что такое /dev/null и почему туда направляют данные?

Если вы активно работаете в командной строке, то, вероятно, использовали файл /dev/null для следующих целей:

1️⃣ Убрать из вывода всю ненужную инфу (предупреждения, ошибки и т.д.):

$ find / -name "*.conf" 2>/dev/null


2️⃣ Передать утилите пустой ресурс в качестве аргумента. Делаться это может с целью исключения пользовательских и системных конфигов и применения дефолтных настроек на стороне программы:

$ picom --config /dev/null


3️⃣ Полностью очистить файл:

$ cat /dev/null > bigfile   


❓ Окей, принято, а чем является этот самый /dev/null?

В сущности - это cимвольное псевдо-устройство, которое создается на этапе запуска системы и работает с потоками данных:
$ ls -l
crw-rw-rw- 1 root root 1, 3 Sep 6 08:37 null


О типе устройства говорит первый бит режима файла - c "character".

Ресурс удаляет все записанное в него и возвращает при чтении EOF (End of File). Когда мы взаимодействуем с /dev/null, неявно отрабатывает специальный драйвер ядра, в который и зашита логика.

Если интересно, можно порыться в исходниках с реализацией: drivers/char/mem.c. Код имеет отношение не только к /dev/null, но и к другим символьным устройствам.

Развернем более подробную информацию:

$ 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
...


Этот вывод показывает, что файл имеет размер 0 байт, для него выделено 0 блоков на диске, дата создания = дата запуска системы:

$ who -b  
system boot  2025-01-25 14:42


Права доступа установлены таким образом, что любой может читать и записывать в него, но никто не может его выполнять:

$ echo hello | /dev/null
-bash2: /dev/null: Permission denied


Поскольку файл не исполняемый, мы не можем использовать конвейер |. Единственный способ — использовать перенаправление файлов >, >>.
  • ❤ 7
  • 👍 2
  • 🔥 2
Post #490 1.4K
  • ❤ 6
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →