170+ вакансий, где упоминается «Linux” : https://talanto.work/jobs/25417942-422f-482e-a0a8-b926e4645104
Посмотреть все вакансии: https://talanto.work/?sort=newest&period=month&offset=0&search_in=title&q=Linux
Посмотреть все вакансии: https://talanto.work/?sort=newest&period=month&offset=0&search_in=title&q=Linux
❤3🔥2
ncdu (NCurses Disk Usage) — это консольная утилита Linux для анализа использования дискового пространства. Она похожа на du, но имеет интерактивный, удобный интерфейс прямо в терминале.sudo apt install ncdu # Debian/Ubuntu
sudo dnf install ncdu # Fedora
sudo pacman -S ncdu # Arch
ncdu показывает, какие каталоги и файлы занимают больше всего места на диске, и позволяет:Результаты сканирования можно сохранить в файл (
ncdu -o out.json) и потом просмотреть (ncdu -f out.json).ncdu без параметров, чтобы проанализировать текущий каталог:ncdu
ncdu /var/log
--exclude:ncdu --exclude '*.log' /var/log
ncdu для сканирования дискового пространства на удалённом сервере через SSH:ssh user@remote-server "ncdu /"
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤1👏1
column — это небольшая, но очень удобная консольная команда Linux, предназначенная для форматирования текста в столбцы. column берет текстовый ввод (обычно строки, разделённые пробелами, табами или другим символом) и выравнивает его в табличный формат.Это особенно удобно при работе с командами вроде
cat, awk, grep, ls, mount, ps и др.column [опции] [файл]
-t — создаёт таблицу, выравнивая столбцы по ширине (самый частый вариант)-s <символ> — указывает разделитель полей (по умолчанию — пробел или таб)-n — не объединяет несколько разделителей, идущих подряд (считает их отдельными)-c <число> — устанавливает максимальную ширину вывода-x — заполняет таблицу построчно, а не по столбцам-o <строка> — задаёт строку-разделитель между столбцамиcat /etc/passwd | column -t -s :
Разделитель в файле /etc/passwd — двоеточие, поэтому с
-s : получаем аккуратную таблицу пользователей.ls -l | column -t
Выравнивает стандартный "грязный" вывод
ls -l в читаемые столбцы.cat data.csv | column -t -s ,
Преобразует CSV-файл в выровненную таблицу прямо в терминале.
mount | column -t
Вывод монтированных файловых систем становится удобнее для восприятия.
echo -e "Name Score\nAlice 90\nBob 85\nCarol 95" | column -t
Создаёт простую таблицу с двумя выровненными столбцами:
Name Score
Alice 90
Bob 85
Carol 95
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1🥰1
symlinks — это консольный инструмент в Linux, который помогает управлять символьными ссылками (symbolic links, или "ярлыками" в файловой системе). Она позволяет искать, проверять и исправлять ссылки в заданном каталоге.На большинстве систем утилита ставится пакетом
symlinks:sudo apt install symlinks # Ubuntu, Debian
sudo dnf install symlinks # Fedora
sudo pacman -S symlinks # Arch
symlinks [опции] [каталог]
-c — заменить абсолютные / беспорядочные ссылки на относительные-d — удалить битые ссылки-o — предупреждать о ссылках между файловыми системами-r — проверять рекурсивно подкаталоги-s — сокращать длинные ссылки (отображаются в выводе только если не указан параметр -c)-t — показывать, что будет сделано с помощью -c-v — показывать подробный отчет (выводит все ссылки)symlinks -v /usr/local/bin
Команда выведет список ссылок и покажет, какие из них "good" — рабочие, а какие "dangling" — битые (ведут в несуществующий файл).
sudo symlinks -rd /opt/
symlinks -rv /home/user/projects
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
В Linux всё — это файл: обычные файлы, сокеты, устройства, каталоги, процессы. "lsof" расшифровывается как List Open Files — "список открытых файлов".
Соответвенно, команда
lsof позволяет просматривать информацию об открытых файлах и связанных с ними процессах:Эта утилита вам пригодится, если вы сталкиваетесь с ошибками доступа к файлам, например, при монтировании, удалении или использовании разделов.
lsof [опции]
lsof -i :80
Покажет процесс (PID), который слушает порт 80.
lsof /path/to/file
Если файл нельзя удалить или смонтировать диск — это поможет выяснить, кто его использует.
lsof -i
Выведет список всех TCP/UDP подключений (локальные и удалённые адреса, PID, программа).
lsof +L1
Полезно, если диск "заполнен", но место не освобождается — это покажет процессы, держащие "удалённые" файлы открытыми.
lsof -p 1234
Покажет, какие файлы, сокеты и устройства открыты у процесса с PID 1234.
lsof +D /var/log/
Полезно при попытке размонтировать диск или директорию — можно увидеть, кто удерживает файлы внутри.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥5
fd — это современная, быстрая и удобная альтернатива стандартной команде find. Она делает то же самое — ищет файлы и каталоги, — но проще в использовании, работает быстрее и выдает чистый, цветной, читаемый вывод.В большинстве дистрибутивов Linux
fd доступна в официальных репозиториях:sudo apt install fd-find # Для Debian/Ubuntu
sudo dnf install fd-find # Для Fedora
sudo pacman -S fd # Для Arch Linux
fd [паттерн] [директория]
fd filename
Найдёт все файлы, имя которых содержит “filename”.
fd 'pattern'
Поддерживаются регулярные выражения для шаблонов.
fd filename /path/to/dir
fd 'filename'
fd ищет только в текстовых файлах, игнорируя двоичные.
• Только файлы:
fd -t f• Только директории:
fd -t dfd -l
Показывает подробные пути к найденным объектам.
fd -s filename
Найти все файлы с расширением .rs в текущем каталоге и его подкаталогах:
fd '\.rs$'
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🆒1
Проект tldr-pages — это сборник поддерживаемых сообществом справочных страниц для инструментов командной строки, который призван стать более простым и доступным дополнением к традиционным справочным страницам
man.TL; DR - это аббревиатура, используемая в Интернете, чтобы сказать, что публикация, статья, комментарий или страница руководства слишком длинные, и поэтому написавший "TL; DR" их не читал.
Команда tldr позволяет выводить максимально сжатую сводку информации по консольным утилитам (назначение и список самых популярных опций).
sudo apt install tldr # Для Ubuntu/Debian
sudo pacman -S tldr # Для Arch
tldr tar
В результате получите наглядные примеры: как распаковать архив, добавить файлы и так далее.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Какая команда собирает переданные ей аргументы в строку и выполняет эту строку, как если бы это была команда, введённая прямо в оболочке?
Anonymous Quiz
6%
fc
36%
eval
39%
exec
6%
getopts
12%
Посмотреть ответ
В Linux существуют два основных типа ссылок на файлы: жесткие (hard) и символьные (soft / symlink).
Они похожи тем, что позволяют обращаться к одному файлу через несколько имен, но работают по-разному и имеют свои особенности.
Особенности:
Пример использования:
$ echo "Hello World" > original.txt
$ ln original.txt hardlink.txt
$ ls -li
123456 -rw-r--r-- 2 user user 12 Oct 22 12:00 original.txt
123456 -rw-r--r-- 2 user user 12 Oct 22 12:00 hardlink.txt
$ echo "Added line" >> hardlink.txt
$ cat original.txt
Hello World
Added line
Здесь видно, что hardlink.txt и original.txt имеют один и тот же inode (123456), и изменения в одном отражаются на другом.
Особенности:
Пример использования:
$ ln -s /home/user/Documents/original.txt symlink.txt
$ ls -l
lrwxrwxrwx 1 user user 29 Oct 22 12:05 symlink.txt -> /home/user/Documents/original.txt
$ echo "Another line" >> /home/user/Documents/original.txt
$ cat symlink.txt
Hello World
Added line
Another line
$ rm symlink.txt
$ ls /home/user/Documents/original.txt
original.txt
Символьная ссылка указывает на путь, а не на данные. Удаление ссылки не затрагивает исходный файл.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Вы, вероятно знакомы с
multitail — он умеет следить за несколькими логами сразу. Но:Не беда: с этим справится и обычный
tail:tail -f /var/logs/*.log
На сервере с приложением часто работают несколько разработчиков или тестировщиков. Все смотрят логи через
tail -f.Когда приложение перезапускают, старые процессы
tail остаются в фоне — иногда на дни или даже недели. Это не критично, но выглядит неаккуратно и засоряет список процессов:ps aux | grep tail
🔧 Решение: tail с автозавершением
Можно сделать алиас, который будет следить за логом только пока жив процесс приложения:
alias TFapplog='tail -f --pid=$(cat /opt/app/tmp/app.pid) /opt/app/logs/app.log'
Как это работает:
--pid=$(cat /opt/app/tmp/app.pid) — tail будет автоматически завершён, когда процесс приложения умрёт.Добавьте этот алиас в ~/.bashrc или ~/.bash_profile.
Теперь, даже если кто-то забудет завершить tail, он сам корректно закроется при рестарте приложения.
Можно сделать несколько алиасов для разных приложений или логов — удобно и безопасно.
Для нескольких файлов и с PID можно использовать и так:
tail -f --pid=$(cat /opt/app/tmp/app.pid) /opt/app/logs/app1.log /opt/app/logs/app2.log
Все логи будут отображаться одновременно, и tail закроется при завершении процесса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Команда uniq предназначена для поиска одинаковых строк в массивах текста. Как вывести только уникальные строки (не имеющие дубликатов)?
Anonymous Quiz
49%
uniq -u
12%
uniq -d
11%
uniq -c
9%
uniq –I
19%
Посмотреть ответ
❤1
Помимо изменения прав доступа с помощью
chmod, иногда нужно изменить владельца файла или группу, которой он принадлежит.Для этих операций обычно требуются права суперпользователя (root), поэтому используем
sudo.Команда
chown (от change owner) позволяет назначить нового владельца файла:sudo chown [имя_пользователя] [имя_файла]
Пример:
sudo chown john report.txt
Теперь владельцем файла report.txt станет пользователь john.
Чтобы изменить владельца и группу файла или каталога, используем двоеточие:
sudo chown [имя_пользователя]:[группа] [имя_файла]
Пример:
sudo chown root:root /home/diego/Документы/Адреса.txt
После этого владелец и группа файла будут root:root.
Если нужно изменить только группу, а владельца оставить прежним, можно:
sudo chown :[группа] [имя_файла]
или использовать специализированную команду
chgrp (от change group):sudo chgrp [группа] [имя_файла]
Пример:
sudo chgrp staff /home/diego/Документы/Адреса.txt
Теперь владельцем остаётся прежний пользователь, а группа меняется на staff.
Сменим владельца и группу файла Адреса.txt на root:root:
diego@debian:~$ sudo chown root:root /home/diego/Документы/Адреса.txt
[sudo] пароль для diego:
diego@debian:~$ ls -la /home/diego/Документы/Адреса.txt
-rw-r----- 1 root root 2 фев 17 21:15 /home/diego/Документы/Адреса.txt
Как видно, владелец и группа изменились с diego:diego на root:root.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2