🐧 Linux Junior. Программирование под Linux.
3.21K subscribers
168 photos
2 videos
1 file
100 links
Канал для программистов работающих с Linux.
Почти все Python девелоперы с нами ну и другие тоже подтянутся.

По рекламе: @jannytg
@anothertechrock
Download Telegram
Права на файл -rwxr--r-- иначе можно записать как:
Anonymous Quiz
12%
777
4%
666
50%
744
26%
711
8%
Посмотреть ответ
🤣4
Какая переменная содержит список переданных параметров?
Anonymous Quiz
12%
$#
30%
$*
13%
$?
28%
$$
17%
Посмотреть ответ
Какая команда используется для печати файлов (на принтере)?
Anonymous Quiz
23%
print
18%
ptr
28%
lpr
30%
Ничто из перечисленного
Пароль пользователя в зашифрованном виде хранится в:
Anonymous Quiz
42%
/etc/shadow
4%
/etc/enpasswwd
18%
/etc/.passwd
27%
/etc/passwd
9%
Посмотреть ответ
💻 Что означает 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.

В официальной документации можно подробнее изучить эту штуку.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23
Каким будет вывод этой программы?
Anonymous Quiz
1%
1
63%
3
10%
5
10%
Ошибка
16%
Посмотреть ответ
Сколько ссылок создается при создании директории?
Anonymous Quiz
33%
1
38%
2
6%
3
1%
4
22%
Посмотреть ответ
👩‍💻 Команда 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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52👀1
🔥 Что такое демоны (daemons) в Linux?

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

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

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

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

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

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

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

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

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

🔴 systemd: родитель всех процессов с PID=1, аналог init.
🔴 rsyslogd: регистрирует системные сообщения с дополнительными функциями по сравнению с syslogd.
🔴 udisksd: обрабатывает операции с устройствами хранения данных, такие как монтирование и размонтирование.
🔴 logind: управляет входом пользователей в систему.
Please open Telegram to view this post
VIEW IN TELEGRAM
7
Как найти самые часто встречающиеся IP-адреса в логах?

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

#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Эта команда находит 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
Приведенная команда cat дает такой вывод ⬆️
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Команда watch в Linux

Вам знакома ситуация, когда ждешь чего-то важного, будь то подключение пользователя или копирование файлов по FTP? Постоянно приходится вводить одну и ту же команду для проверки результата. А это порой бывает утомительно.

Для таких случаев и пригодится команда watch. Она используется для периодического запуска другой команды и отображения её вывода в терминале с обновлением через заданный интервал времени. Это удобно для "живого мониторинга" изменений в системе.

⚙️ Синтаксис:

watch [опции] команда


По умолчанию watch запускает команду каждые 2 секунды.

⚙️ Опции:
-n <сек> — задать интервал обновления в секундах (по умолчанию 2).
-d — подсвечивать изменения между обновлениями.
-t — убрать заголовок (без отображения времени и команды).
-g — завершить выполнение, когда вывод изменится.

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

1️⃣ Мониторинг свободного места на диске. Каждые 5 секунд обновляется информация о дисках:
watch -n 5 df -h


2️⃣ Наблюдение за процессами. Отслеживание процессов apache, обновление каждые 2 секунды:
watch -n 2 ps aux | grep apache


3️⃣ Подсветка изменений. При изменении значений в /proc/meminfo изменённые строки будут подсвечены:
watch -d cat /proc/meminfo


4️⃣ Отслеживание использования CPU конкретным процессом. Каждую секунду выводится загрузка CPU и памяти процессом firefox:
watch -n 1 "ps -C firefox -o %cpu,%mem,cmd"


5️⃣ Завершение при изменении. watch будет следить за состоянием файла и завершится, как только его атрибуты изменятся:
watch -g ls -l file.txt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6